diff --git a/OpenMetaverse/ParcelManager.cs b/OpenMetaverse/ParcelManager.cs
index 58ef4f11..61f5b128 100644
--- a/OpenMetaverse/ParcelManager.cs
+++ b/OpenMetaverse/ParcelManager.cs
@@ -669,7 +669,7 @@ namespace OpenMetaverse
///
public DateTime Time;
/// Flags for specific entry in white/black lists
- public uint Flags;
+ public AccessList Flags;
}
///
@@ -1568,7 +1568,7 @@ namespace OpenMetaverse
ParcelAccessEntry pae = new ParcelAccessEntry();
pae.AgentID = reply.List[i].ID;
pae.Time = Utils.UnixTimeToDateTime((uint)reply.List[i].Time);
- pae.Flags = reply.List[i].Flags;
+ pae.Flags = (AccessList)reply.List[i].Flags;
accessList.Add(pae);
}
diff --git a/OpenMetaverse/_Packets_.cs b/OpenMetaverse/_Packets_.cs
index 8e5a4e29..8361ea66 100644
--- a/OpenMetaverse/_Packets_.cs
+++ b/OpenMetaverse/_Packets_.cs
@@ -1224,6 +1224,403 @@ namespace OpenMetaverse.Packets
return PacketType.Default;
}
+ public static Packet BuildPacket(PacketType type)
+ {
+ if(type == PacketType.StartPingCheck) return new StartPingCheckPacket();
+ if(type == PacketType.CompletePingCheck) return new CompletePingCheckPacket();
+ if(type == PacketType.AgentUpdate) return new AgentUpdatePacket();
+ if(type == PacketType.AgentAnimation) return new AgentAnimationPacket();
+ if(type == PacketType.AgentRequestSit) return new AgentRequestSitPacket();
+ if(type == PacketType.AgentSit) return new AgentSitPacket();
+ if(type == PacketType.RequestImage) return new RequestImagePacket();
+ if(type == PacketType.ImageData) return new ImageDataPacket();
+ if(type == PacketType.ImagePacket) return new ImagePacketPacket();
+ if(type == PacketType.LayerData) return new LayerDataPacket();
+ if(type == PacketType.ObjectUpdate) return new ObjectUpdatePacket();
+ if(type == PacketType.ObjectUpdateCompressed) return new ObjectUpdateCompressedPacket();
+ if(type == PacketType.ObjectUpdateCached) return new ObjectUpdateCachedPacket();
+ if(type == PacketType.ImprovedTerseObjectUpdate) return new ImprovedTerseObjectUpdatePacket();
+ if(type == PacketType.KillObject) return new KillObjectPacket();
+ if(type == PacketType.TransferPacket) return new TransferPacketPacket();
+ if(type == PacketType.SendXferPacket) return new SendXferPacketPacket();
+ if(type == PacketType.ConfirmXferPacket) return new ConfirmXferPacketPacket();
+ if(type == PacketType.AvatarAnimation) return new AvatarAnimationPacket();
+ if(type == PacketType.AvatarSitResponse) return new AvatarSitResponsePacket();
+ if(type == PacketType.CameraConstraint) return new CameraConstraintPacket();
+ if(type == PacketType.ParcelProperties) return new ParcelPropertiesPacket();
+ if(type == PacketType.ChildAgentUpdate) return new ChildAgentUpdatePacket();
+ if(type == PacketType.ChildAgentAlive) return new ChildAgentAlivePacket();
+ if(type == PacketType.ChildAgentPositionUpdate) return new ChildAgentPositionUpdatePacket();
+ if(type == PacketType.SoundTrigger) return new SoundTriggerPacket();
+ if(type == PacketType.ObjectAdd) return new ObjectAddPacket();
+ if(type == PacketType.MultipleObjectUpdate) return new MultipleObjectUpdatePacket();
+ if(type == PacketType.RequestMultipleObjects) return new RequestMultipleObjectsPacket();
+ if(type == PacketType.ObjectPosition) return new ObjectPositionPacket();
+ if(type == PacketType.RequestObjectPropertiesFamily) return new RequestObjectPropertiesFamilyPacket();
+ if(type == PacketType.CoarseLocationUpdate) return new CoarseLocationUpdatePacket();
+ if(type == PacketType.CrossedRegion) return new CrossedRegionPacket();
+ if(type == PacketType.ConfirmEnableSimulator) return new ConfirmEnableSimulatorPacket();
+ if(type == PacketType.ObjectProperties) return new ObjectPropertiesPacket();
+ if(type == PacketType.ObjectPropertiesFamily) return new ObjectPropertiesFamilyPacket();
+ if(type == PacketType.ParcelPropertiesRequest) return new ParcelPropertiesRequestPacket();
+ if(type == PacketType.AttachedSound) return new AttachedSoundPacket();
+ if(type == PacketType.AttachedSoundGainChange) return new AttachedSoundGainChangePacket();
+ if(type == PacketType.PreloadSound) return new PreloadSoundPacket();
+ if(type == PacketType.ViewerEffect) return new ViewerEffectPacket();
+ if(type == PacketType.TestMessage) return new TestMessagePacket();
+ if(type == PacketType.UseCircuitCode) return new UseCircuitCodePacket();
+ if(type == PacketType.TelehubInfo) return new TelehubInfoPacket();
+ if(type == PacketType.EconomyDataRequest) return new EconomyDataRequestPacket();
+ if(type == PacketType.EconomyData) return new EconomyDataPacket();
+ if(type == PacketType.AvatarPickerRequest) return new AvatarPickerRequestPacket();
+ if(type == PacketType.AvatarPickerReply) return new AvatarPickerReplyPacket();
+ if(type == PacketType.PlacesQuery) return new PlacesQueryPacket();
+ if(type == PacketType.PlacesReply) return new PlacesReplyPacket();
+ if(type == PacketType.DirFindQuery) return new DirFindQueryPacket();
+ if(type == PacketType.DirPlacesQuery) return new DirPlacesQueryPacket();
+ if(type == PacketType.DirPlacesReply) return new DirPlacesReplyPacket();
+ if(type == PacketType.DirPeopleReply) return new DirPeopleReplyPacket();
+ if(type == PacketType.DirEventsReply) return new DirEventsReplyPacket();
+ if(type == PacketType.DirGroupsReply) return new DirGroupsReplyPacket();
+ if(type == PacketType.DirClassifiedQuery) return new DirClassifiedQueryPacket();
+ if(type == PacketType.DirClassifiedReply) return new DirClassifiedReplyPacket();
+ if(type == PacketType.AvatarClassifiedReply) return new AvatarClassifiedReplyPacket();
+ if(type == PacketType.ClassifiedInfoRequest) return new ClassifiedInfoRequestPacket();
+ if(type == PacketType.ClassifiedInfoReply) return new ClassifiedInfoReplyPacket();
+ if(type == PacketType.ClassifiedInfoUpdate) return new ClassifiedInfoUpdatePacket();
+ if(type == PacketType.ClassifiedDelete) return new ClassifiedDeletePacket();
+ if(type == PacketType.ClassifiedGodDelete) return new ClassifiedGodDeletePacket();
+ if(type == PacketType.DirLandQuery) return new DirLandQueryPacket();
+ if(type == PacketType.DirLandReply) return new DirLandReplyPacket();
+ if(type == PacketType.DirPopularQuery) return new DirPopularQueryPacket();
+ if(type == PacketType.DirPopularReply) return new DirPopularReplyPacket();
+ if(type == PacketType.ParcelInfoRequest) return new ParcelInfoRequestPacket();
+ if(type == PacketType.ParcelInfoReply) return new ParcelInfoReplyPacket();
+ if(type == PacketType.ParcelObjectOwnersRequest) return new ParcelObjectOwnersRequestPacket();
+ if(type == PacketType.ParcelObjectOwnersReply) return new ParcelObjectOwnersReplyPacket();
+ if(type == PacketType.GroupNoticesListRequest) return new GroupNoticesListRequestPacket();
+ if(type == PacketType.GroupNoticesListReply) return new GroupNoticesListReplyPacket();
+ if(type == PacketType.GroupNoticeRequest) return new GroupNoticeRequestPacket();
+ if(type == PacketType.TeleportRequest) return new TeleportRequestPacket();
+ if(type == PacketType.TeleportLocationRequest) return new TeleportLocationRequestPacket();
+ if(type == PacketType.TeleportLocal) return new TeleportLocalPacket();
+ if(type == PacketType.TeleportLandmarkRequest) return new TeleportLandmarkRequestPacket();
+ if(type == PacketType.TeleportProgress) return new TeleportProgressPacket();
+ if(type == PacketType.TeleportFinish) return new TeleportFinishPacket();
+ if(type == PacketType.StartLure) return new StartLurePacket();
+ if(type == PacketType.TeleportLureRequest) return new TeleportLureRequestPacket();
+ if(type == PacketType.TeleportCancel) return new TeleportCancelPacket();
+ if(type == PacketType.TeleportStart) return new TeleportStartPacket();
+ if(type == PacketType.TeleportFailed) return new TeleportFailedPacket();
+ if(type == PacketType.Undo) return new UndoPacket();
+ if(type == PacketType.Redo) return new RedoPacket();
+ if(type == PacketType.UndoLand) return new UndoLandPacket();
+ if(type == PacketType.AgentPause) return new AgentPausePacket();
+ if(type == PacketType.AgentResume) return new AgentResumePacket();
+ if(type == PacketType.ChatFromViewer) return new ChatFromViewerPacket();
+ if(type == PacketType.AgentThrottle) return new AgentThrottlePacket();
+ if(type == PacketType.AgentFOV) return new AgentFOVPacket();
+ if(type == PacketType.AgentHeightWidth) return new AgentHeightWidthPacket();
+ if(type == PacketType.AgentSetAppearance) return new AgentSetAppearancePacket();
+ if(type == PacketType.AgentQuitCopy) return new AgentQuitCopyPacket();
+ if(type == PacketType.ImageNotInDatabase) return new ImageNotInDatabasePacket();
+ if(type == PacketType.RebakeAvatarTextures) return new RebakeAvatarTexturesPacket();
+ if(type == PacketType.SetAlwaysRun) return new SetAlwaysRunPacket();
+ if(type == PacketType.ObjectDelete) return new ObjectDeletePacket();
+ if(type == PacketType.ObjectDuplicate) return new ObjectDuplicatePacket();
+ if(type == PacketType.ObjectDuplicateOnRay) return new ObjectDuplicateOnRayPacket();
+ if(type == PacketType.ObjectScale) return new ObjectScalePacket();
+ if(type == PacketType.ObjectRotation) return new ObjectRotationPacket();
+ if(type == PacketType.ObjectFlagUpdate) return new ObjectFlagUpdatePacket();
+ if(type == PacketType.ObjectClickAction) return new ObjectClickActionPacket();
+ if(type == PacketType.ObjectImage) return new ObjectImagePacket();
+ if(type == PacketType.ObjectMaterial) return new ObjectMaterialPacket();
+ if(type == PacketType.ObjectShape) return new ObjectShapePacket();
+ if(type == PacketType.ObjectExtraParams) return new ObjectExtraParamsPacket();
+ if(type == PacketType.ObjectOwner) return new ObjectOwnerPacket();
+ if(type == PacketType.ObjectGroup) return new ObjectGroupPacket();
+ if(type == PacketType.ObjectBuy) return new ObjectBuyPacket();
+ if(type == PacketType.BuyObjectInventory) return new BuyObjectInventoryPacket();
+ if(type == PacketType.DerezContainer) return new DerezContainerPacket();
+ if(type == PacketType.ObjectPermissions) return new ObjectPermissionsPacket();
+ if(type == PacketType.ObjectSaleInfo) return new ObjectSaleInfoPacket();
+ if(type == PacketType.ObjectName) return new ObjectNamePacket();
+ if(type == PacketType.ObjectDescription) return new ObjectDescriptionPacket();
+ if(type == PacketType.ObjectCategory) return new ObjectCategoryPacket();
+ if(type == PacketType.ObjectSelect) return new ObjectSelectPacket();
+ if(type == PacketType.ObjectDeselect) return new ObjectDeselectPacket();
+ if(type == PacketType.ObjectAttach) return new ObjectAttachPacket();
+ if(type == PacketType.ObjectDetach) return new ObjectDetachPacket();
+ if(type == PacketType.ObjectDrop) return new ObjectDropPacket();
+ if(type == PacketType.ObjectLink) return new ObjectLinkPacket();
+ if(type == PacketType.ObjectDelink) return new ObjectDelinkPacket();
+ if(type == PacketType.ObjectGrab) return new ObjectGrabPacket();
+ if(type == PacketType.ObjectGrabUpdate) return new ObjectGrabUpdatePacket();
+ if(type == PacketType.ObjectDeGrab) return new ObjectDeGrabPacket();
+ if(type == PacketType.ObjectSpinStart) return new ObjectSpinStartPacket();
+ if(type == PacketType.ObjectSpinUpdate) return new ObjectSpinUpdatePacket();
+ if(type == PacketType.ObjectSpinStop) return new ObjectSpinStopPacket();
+ if(type == PacketType.ObjectExportSelected) return new ObjectExportSelectedPacket();
+ if(type == PacketType.ModifyLand) return new ModifyLandPacket();
+ if(type == PacketType.VelocityInterpolateOn) return new VelocityInterpolateOnPacket();
+ if(type == PacketType.VelocityInterpolateOff) return new VelocityInterpolateOffPacket();
+ if(type == PacketType.StateSave) return new StateSavePacket();
+ if(type == PacketType.ReportAutosaveCrash) return new ReportAutosaveCrashPacket();
+ if(type == PacketType.SimWideDeletes) return new SimWideDeletesPacket();
+ if(type == PacketType.TrackAgent) return new TrackAgentPacket();
+ if(type == PacketType.ViewerStats) return new ViewerStatsPacket();
+ if(type == PacketType.ScriptAnswerYes) return new ScriptAnswerYesPacket();
+ if(type == PacketType.UserReport) return new UserReportPacket();
+ if(type == PacketType.AlertMessage) return new AlertMessagePacket();
+ if(type == PacketType.AgentAlertMessage) return new AgentAlertMessagePacket();
+ if(type == PacketType.MeanCollisionAlert) return new MeanCollisionAlertPacket();
+ if(type == PacketType.ViewerFrozenMessage) return new ViewerFrozenMessagePacket();
+ if(type == PacketType.HealthMessage) return new HealthMessagePacket();
+ if(type == PacketType.ChatFromSimulator) return new ChatFromSimulatorPacket();
+ if(type == PacketType.SimStats) return new SimStatsPacket();
+ if(type == PacketType.RequestRegionInfo) return new RequestRegionInfoPacket();
+ if(type == PacketType.RegionInfo) return new RegionInfoPacket();
+ if(type == PacketType.GodUpdateRegionInfo) return new GodUpdateRegionInfoPacket();
+ if(type == PacketType.NearestLandingRegionUpdated) return new NearestLandingRegionUpdatedPacket();
+ if(type == PacketType.RegionHandshake) return new RegionHandshakePacket();
+ if(type == PacketType.RegionHandshakeReply) return new RegionHandshakeReplyPacket();
+ if(type == PacketType.SimulatorViewerTimeMessage) return new SimulatorViewerTimeMessagePacket();
+ if(type == PacketType.EnableSimulator) return new EnableSimulatorPacket();
+ if(type == PacketType.DisableSimulator) return new DisableSimulatorPacket();
+ if(type == PacketType.TransferRequest) return new TransferRequestPacket();
+ if(type == PacketType.TransferInfo) return new TransferInfoPacket();
+ if(type == PacketType.TransferAbort) return new TransferAbortPacket();
+ if(type == PacketType.RequestXfer) return new RequestXferPacket();
+ if(type == PacketType.AbortXfer) return new AbortXferPacket();
+ if(type == PacketType.AvatarAppearance) return new AvatarAppearancePacket();
+ if(type == PacketType.SetFollowCamProperties) return new SetFollowCamPropertiesPacket();
+ if(type == PacketType.ClearFollowCamProperties) return new ClearFollowCamPropertiesPacket();
+ if(type == PacketType.RequestPayPrice) return new RequestPayPricePacket();
+ if(type == PacketType.PayPriceReply) return new PayPriceReplyPacket();
+ if(type == PacketType.KickUser) return new KickUserPacket();
+ if(type == PacketType.KickUserAck) return new KickUserAckPacket();
+ if(type == PacketType.GodKickUser) return new GodKickUserPacket();
+ if(type == PacketType.EjectUser) return new EjectUserPacket();
+ if(type == PacketType.FreezeUser) return new FreezeUserPacket();
+ if(type == PacketType.AvatarPropertiesRequest) return new AvatarPropertiesRequestPacket();
+ if(type == PacketType.AvatarPropertiesReply) return new AvatarPropertiesReplyPacket();
+ if(type == PacketType.AvatarInterestsReply) return new AvatarInterestsReplyPacket();
+ if(type == PacketType.AvatarGroupsReply) return new AvatarGroupsReplyPacket();
+ if(type == PacketType.AvatarPropertiesUpdate) return new AvatarPropertiesUpdatePacket();
+ if(type == PacketType.AvatarInterestsUpdate) return new AvatarInterestsUpdatePacket();
+ if(type == PacketType.AvatarNotesReply) return new AvatarNotesReplyPacket();
+ if(type == PacketType.AvatarNotesUpdate) return new AvatarNotesUpdatePacket();
+ if(type == PacketType.AvatarPicksReply) return new AvatarPicksReplyPacket();
+ if(type == PacketType.EventInfoRequest) return new EventInfoRequestPacket();
+ if(type == PacketType.EventInfoReply) return new EventInfoReplyPacket();
+ if(type == PacketType.EventNotificationAddRequest) return new EventNotificationAddRequestPacket();
+ if(type == PacketType.EventNotificationRemoveRequest) return new EventNotificationRemoveRequestPacket();
+ if(type == PacketType.EventGodDelete) return new EventGodDeletePacket();
+ if(type == PacketType.PickInfoReply) return new PickInfoReplyPacket();
+ if(type == PacketType.PickInfoUpdate) return new PickInfoUpdatePacket();
+ if(type == PacketType.PickDelete) return new PickDeletePacket();
+ if(type == PacketType.PickGodDelete) return new PickGodDeletePacket();
+ if(type == PacketType.ScriptQuestion) return new ScriptQuestionPacket();
+ if(type == PacketType.ScriptControlChange) return new ScriptControlChangePacket();
+ if(type == PacketType.ScriptDialog) return new ScriptDialogPacket();
+ if(type == PacketType.ScriptDialogReply) return new ScriptDialogReplyPacket();
+ if(type == PacketType.ForceScriptControlRelease) return new ForceScriptControlReleasePacket();
+ if(type == PacketType.RevokePermissions) return new RevokePermissionsPacket();
+ if(type == PacketType.LoadURL) return new LoadURLPacket();
+ if(type == PacketType.ScriptTeleportRequest) return new ScriptTeleportRequestPacket();
+ if(type == PacketType.ParcelOverlay) return new ParcelOverlayPacket();
+ if(type == PacketType.ParcelPropertiesRequestByID) return new ParcelPropertiesRequestByIDPacket();
+ if(type == PacketType.ParcelPropertiesUpdate) return new ParcelPropertiesUpdatePacket();
+ if(type == PacketType.ParcelReturnObjects) return new ParcelReturnObjectsPacket();
+ if(type == PacketType.ParcelSetOtherCleanTime) return new ParcelSetOtherCleanTimePacket();
+ if(type == PacketType.ParcelDisableObjects) return new ParcelDisableObjectsPacket();
+ if(type == PacketType.ParcelSelectObjects) return new ParcelSelectObjectsPacket();
+ if(type == PacketType.EstateCovenantRequest) return new EstateCovenantRequestPacket();
+ if(type == PacketType.EstateCovenantReply) return new EstateCovenantReplyPacket();
+ if(type == PacketType.ForceObjectSelect) return new ForceObjectSelectPacket();
+ if(type == PacketType.ParcelBuyPass) return new ParcelBuyPassPacket();
+ if(type == PacketType.ParcelDeedToGroup) return new ParcelDeedToGroupPacket();
+ if(type == PacketType.ParcelReclaim) return new ParcelReclaimPacket();
+ if(type == PacketType.ParcelClaim) return new ParcelClaimPacket();
+ if(type == PacketType.ParcelJoin) return new ParcelJoinPacket();
+ if(type == PacketType.ParcelDivide) return new ParcelDividePacket();
+ if(type == PacketType.ParcelRelease) return new ParcelReleasePacket();
+ if(type == PacketType.ParcelBuy) return new ParcelBuyPacket();
+ if(type == PacketType.ParcelGodForceOwner) return new ParcelGodForceOwnerPacket();
+ if(type == PacketType.ParcelAccessListRequest) return new ParcelAccessListRequestPacket();
+ if(type == PacketType.ParcelAccessListReply) return new ParcelAccessListReplyPacket();
+ if(type == PacketType.ParcelAccessListUpdate) return new ParcelAccessListUpdatePacket();
+ if(type == PacketType.ParcelDwellRequest) return new ParcelDwellRequestPacket();
+ if(type == PacketType.ParcelDwellReply) return new ParcelDwellReplyPacket();
+ if(type == PacketType.ParcelGodMarkAsContent) return new ParcelGodMarkAsContentPacket();
+ if(type == PacketType.ViewerStartAuction) return new ViewerStartAuctionPacket();
+ if(type == PacketType.UUIDNameRequest) return new UUIDNameRequestPacket();
+ if(type == PacketType.UUIDNameReply) return new UUIDNameReplyPacket();
+ if(type == PacketType.UUIDGroupNameRequest) return new UUIDGroupNameRequestPacket();
+ if(type == PacketType.UUIDGroupNameReply) return new UUIDGroupNameReplyPacket();
+ if(type == PacketType.ChildAgentDying) return new ChildAgentDyingPacket();
+ if(type == PacketType.ChildAgentUnknown) return new ChildAgentUnknownPacket();
+ if(type == PacketType.GetScriptRunning) return new GetScriptRunningPacket();
+ if(type == PacketType.ScriptRunningReply) return new ScriptRunningReplyPacket();
+ if(type == PacketType.SetScriptRunning) return new SetScriptRunningPacket();
+ if(type == PacketType.ScriptReset) return new ScriptResetPacket();
+ if(type == PacketType.ScriptSensorRequest) return new ScriptSensorRequestPacket();
+ if(type == PacketType.ScriptSensorReply) return new ScriptSensorReplyPacket();
+ if(type == PacketType.CompleteAgentMovement) return new CompleteAgentMovementPacket();
+ if(type == PacketType.AgentMovementComplete) return new AgentMovementCompletePacket();
+ if(type == PacketType.LogoutRequest) return new LogoutRequestPacket();
+ if(type == PacketType.LogoutReply) return new LogoutReplyPacket();
+ if(type == PacketType.ImprovedInstantMessage) return new ImprovedInstantMessagePacket();
+ if(type == PacketType.RetrieveInstantMessages) return new RetrieveInstantMessagesPacket();
+ if(type == PacketType.FindAgent) return new FindAgentPacket();
+ if(type == PacketType.RequestGodlikePowers) return new RequestGodlikePowersPacket();
+ if(type == PacketType.GrantGodlikePowers) return new GrantGodlikePowersPacket();
+ if(type == PacketType.GodlikeMessage) return new GodlikeMessagePacket();
+ if(type == PacketType.EstateOwnerMessage) return new EstateOwnerMessagePacket();
+ if(type == PacketType.GenericMessage) return new GenericMessagePacket();
+ if(type == PacketType.MuteListRequest) return new MuteListRequestPacket();
+ if(type == PacketType.UpdateMuteListEntry) return new UpdateMuteListEntryPacket();
+ if(type == PacketType.RemoveMuteListEntry) return new RemoveMuteListEntryPacket();
+ if(type == PacketType.CopyInventoryFromNotecard) return new CopyInventoryFromNotecardPacket();
+ if(type == PacketType.UpdateInventoryItem) return new UpdateInventoryItemPacket();
+ if(type == PacketType.UpdateCreateInventoryItem) return new UpdateCreateInventoryItemPacket();
+ if(type == PacketType.MoveInventoryItem) return new MoveInventoryItemPacket();
+ if(type == PacketType.CopyInventoryItem) return new CopyInventoryItemPacket();
+ if(type == PacketType.RemoveInventoryItem) return new RemoveInventoryItemPacket();
+ if(type == PacketType.ChangeInventoryItemFlags) return new ChangeInventoryItemFlagsPacket();
+ if(type == PacketType.SaveAssetIntoInventory) return new SaveAssetIntoInventoryPacket();
+ if(type == PacketType.CreateInventoryFolder) return new CreateInventoryFolderPacket();
+ if(type == PacketType.UpdateInventoryFolder) return new UpdateInventoryFolderPacket();
+ if(type == PacketType.MoveInventoryFolder) return new MoveInventoryFolderPacket();
+ if(type == PacketType.RemoveInventoryFolder) return new RemoveInventoryFolderPacket();
+ if(type == PacketType.FetchInventoryDescendents) return new FetchInventoryDescendentsPacket();
+ if(type == PacketType.InventoryDescendents) return new InventoryDescendentsPacket();
+ if(type == PacketType.FetchInventory) return new FetchInventoryPacket();
+ if(type == PacketType.FetchInventoryReply) return new FetchInventoryReplyPacket();
+ if(type == PacketType.BulkUpdateInventory) return new BulkUpdateInventoryPacket();
+ if(type == PacketType.RequestInventoryAsset) return new RequestInventoryAssetPacket();
+ if(type == PacketType.InventoryAssetResponse) return new InventoryAssetResponsePacket();
+ if(type == PacketType.RemoveInventoryObjects) return new RemoveInventoryObjectsPacket();
+ if(type == PacketType.PurgeInventoryDescendents) return new PurgeInventoryDescendentsPacket();
+ if(type == PacketType.UpdateTaskInventory) return new UpdateTaskInventoryPacket();
+ if(type == PacketType.RemoveTaskInventory) return new RemoveTaskInventoryPacket();
+ if(type == PacketType.MoveTaskInventory) return new MoveTaskInventoryPacket();
+ if(type == PacketType.RequestTaskInventory) return new RequestTaskInventoryPacket();
+ if(type == PacketType.ReplyTaskInventory) return new ReplyTaskInventoryPacket();
+ if(type == PacketType.DeRezObject) return new DeRezObjectPacket();
+ if(type == PacketType.DeRezAck) return new DeRezAckPacket();
+ if(type == PacketType.RezObject) return new RezObjectPacket();
+ if(type == PacketType.RezObjectFromNotecard) return new RezObjectFromNotecardPacket();
+ if(type == PacketType.AcceptFriendship) return new AcceptFriendshipPacket();
+ if(type == PacketType.DeclineFriendship) return new DeclineFriendshipPacket();
+ if(type == PacketType.FormFriendship) return new FormFriendshipPacket();
+ if(type == PacketType.TerminateFriendship) return new TerminateFriendshipPacket();
+ if(type == PacketType.OfferCallingCard) return new OfferCallingCardPacket();
+ if(type == PacketType.AcceptCallingCard) return new AcceptCallingCardPacket();
+ if(type == PacketType.DeclineCallingCard) return new DeclineCallingCardPacket();
+ if(type == PacketType.RezScript) return new RezScriptPacket();
+ if(type == PacketType.CreateInventoryItem) return new CreateInventoryItemPacket();
+ if(type == PacketType.CreateLandmarkForEvent) return new CreateLandmarkForEventPacket();
+ if(type == PacketType.RegionHandleRequest) return new RegionHandleRequestPacket();
+ if(type == PacketType.RegionIDAndHandleReply) return new RegionIDAndHandleReplyPacket();
+ if(type == PacketType.MoneyTransferRequest) return new MoneyTransferRequestPacket();
+ if(type == PacketType.MoneyBalanceRequest) return new MoneyBalanceRequestPacket();
+ if(type == PacketType.MoneyBalanceReply) return new MoneyBalanceReplyPacket();
+ if(type == PacketType.RoutedMoneyBalanceReply) return new RoutedMoneyBalanceReplyPacket();
+ if(type == PacketType.ActivateGestures) return new ActivateGesturesPacket();
+ if(type == PacketType.DeactivateGestures) return new DeactivateGesturesPacket();
+ if(type == PacketType.MuteListUpdate) return new MuteListUpdatePacket();
+ if(type == PacketType.UseCachedMuteList) return new UseCachedMuteListPacket();
+ if(type == PacketType.GrantUserRights) return new GrantUserRightsPacket();
+ if(type == PacketType.ChangeUserRights) return new ChangeUserRightsPacket();
+ if(type == PacketType.OnlineNotification) return new OnlineNotificationPacket();
+ if(type == PacketType.OfflineNotification) return new OfflineNotificationPacket();
+ if(type == PacketType.SetStartLocationRequest) return new SetStartLocationRequestPacket();
+ if(type == PacketType.AssetUploadRequest) return new AssetUploadRequestPacket();
+ if(type == PacketType.AssetUploadComplete) return new AssetUploadCompletePacket();
+ if(type == PacketType.CreateGroupRequest) return new CreateGroupRequestPacket();
+ if(type == PacketType.CreateGroupReply) return new CreateGroupReplyPacket();
+ if(type == PacketType.UpdateGroupInfo) return new UpdateGroupInfoPacket();
+ if(type == PacketType.GroupRoleChanges) return new GroupRoleChangesPacket();
+ if(type == PacketType.JoinGroupRequest) return new JoinGroupRequestPacket();
+ if(type == PacketType.JoinGroupReply) return new JoinGroupReplyPacket();
+ if(type == PacketType.EjectGroupMemberRequest) return new EjectGroupMemberRequestPacket();
+ if(type == PacketType.EjectGroupMemberReply) return new EjectGroupMemberReplyPacket();
+ if(type == PacketType.LeaveGroupRequest) return new LeaveGroupRequestPacket();
+ if(type == PacketType.LeaveGroupReply) return new LeaveGroupReplyPacket();
+ if(type == PacketType.InviteGroupRequest) return new InviteGroupRequestPacket();
+ if(type == PacketType.GroupProfileRequest) return new GroupProfileRequestPacket();
+ if(type == PacketType.GroupProfileReply) return new GroupProfileReplyPacket();
+ if(type == PacketType.GroupAccountSummaryRequest) return new GroupAccountSummaryRequestPacket();
+ if(type == PacketType.GroupAccountSummaryReply) return new GroupAccountSummaryReplyPacket();
+ if(type == PacketType.GroupAccountDetailsRequest) return new GroupAccountDetailsRequestPacket();
+ if(type == PacketType.GroupAccountDetailsReply) return new GroupAccountDetailsReplyPacket();
+ if(type == PacketType.GroupAccountTransactionsRequest) return new GroupAccountTransactionsRequestPacket();
+ if(type == PacketType.GroupAccountTransactionsReply) return new GroupAccountTransactionsReplyPacket();
+ if(type == PacketType.GroupActiveProposalsRequest) return new GroupActiveProposalsRequestPacket();
+ if(type == PacketType.GroupActiveProposalItemReply) return new GroupActiveProposalItemReplyPacket();
+ if(type == PacketType.GroupVoteHistoryRequest) return new GroupVoteHistoryRequestPacket();
+ if(type == PacketType.GroupVoteHistoryItemReply) return new GroupVoteHistoryItemReplyPacket();
+ if(type == PacketType.StartGroupProposal) return new StartGroupProposalPacket();
+ if(type == PacketType.GroupProposalBallot) return new GroupProposalBallotPacket();
+ if(type == PacketType.GroupMembersRequest) return new GroupMembersRequestPacket();
+ if(type == PacketType.GroupMembersReply) return new GroupMembersReplyPacket();
+ if(type == PacketType.ActivateGroup) return new ActivateGroupPacket();
+ if(type == PacketType.SetGroupContribution) return new SetGroupContributionPacket();
+ if(type == PacketType.SetGroupAcceptNotices) return new SetGroupAcceptNoticesPacket();
+ if(type == PacketType.GroupRoleDataRequest) return new GroupRoleDataRequestPacket();
+ if(type == PacketType.GroupRoleDataReply) return new GroupRoleDataReplyPacket();
+ if(type == PacketType.GroupRoleMembersRequest) return new GroupRoleMembersRequestPacket();
+ if(type == PacketType.GroupRoleMembersReply) return new GroupRoleMembersReplyPacket();
+ if(type == PacketType.GroupTitlesRequest) return new GroupTitlesRequestPacket();
+ if(type == PacketType.GroupTitlesReply) return new GroupTitlesReplyPacket();
+ if(type == PacketType.GroupTitleUpdate) return new GroupTitleUpdatePacket();
+ if(type == PacketType.GroupRoleUpdate) return new GroupRoleUpdatePacket();
+ if(type == PacketType.LiveHelpGroupRequest) return new LiveHelpGroupRequestPacket();
+ if(type == PacketType.LiveHelpGroupReply) return new LiveHelpGroupReplyPacket();
+ if(type == PacketType.AgentWearablesRequest) return new AgentWearablesRequestPacket();
+ if(type == PacketType.AgentWearablesUpdate) return new AgentWearablesUpdatePacket();
+ if(type == PacketType.AgentIsNowWearing) return new AgentIsNowWearingPacket();
+ if(type == PacketType.AgentCachedTexture) return new AgentCachedTexturePacket();
+ if(type == PacketType.AgentCachedTextureResponse) return new AgentCachedTextureResponsePacket();
+ if(type == PacketType.AgentDataUpdateRequest) return new AgentDataUpdateRequestPacket();
+ if(type == PacketType.AgentDataUpdate) return new AgentDataUpdatePacket();
+ if(type == PacketType.GroupDataUpdate) return new GroupDataUpdatePacket();
+ if(type == PacketType.AgentGroupDataUpdate) return new AgentGroupDataUpdatePacket();
+ if(type == PacketType.AgentDropGroup) return new AgentDropGroupPacket();
+ if(type == PacketType.CreateTrustedCircuit) return new CreateTrustedCircuitPacket();
+ if(type == PacketType.DenyTrustedCircuit) return new DenyTrustedCircuitPacket();
+ if(type == PacketType.RequestTrustedCircuit) return new RequestTrustedCircuitPacket();
+ if(type == PacketType.RezSingleAttachmentFromInv) return new RezSingleAttachmentFromInvPacket();
+ if(type == PacketType.RezMultipleAttachmentsFromInv) return new RezMultipleAttachmentsFromInvPacket();
+ if(type == PacketType.DetachAttachmentIntoInv) return new DetachAttachmentIntoInvPacket();
+ if(type == PacketType.CreateNewOutfitAttachments) return new CreateNewOutfitAttachmentsPacket();
+ if(type == PacketType.UserInfoRequest) return new UserInfoRequestPacket();
+ if(type == PacketType.UserInfoReply) return new UserInfoReplyPacket();
+ if(type == PacketType.UpdateUserInfo) return new UpdateUserInfoPacket();
+ if(type == PacketType.InitiateDownload) return new InitiateDownloadPacket();
+ if(type == PacketType.SystemMessage) return new SystemMessagePacket();
+ if(type == PacketType.MapLayerRequest) return new MapLayerRequestPacket();
+ if(type == PacketType.MapLayerReply) return new MapLayerReplyPacket();
+ if(type == PacketType.MapBlockRequest) return new MapBlockRequestPacket();
+ if(type == PacketType.MapNameRequest) return new MapNameRequestPacket();
+ if(type == PacketType.MapBlockReply) return new MapBlockReplyPacket();
+ if(type == PacketType.MapItemRequest) return new MapItemRequestPacket();
+ if(type == PacketType.MapItemReply) return new MapItemReplyPacket();
+ if(type == PacketType.SendPostcard) return new SendPostcardPacket();
+ if(type == PacketType.ParcelMediaCommandMessage) return new ParcelMediaCommandMessagePacket();
+ if(type == PacketType.ParcelMediaUpdate) return new ParcelMediaUpdatePacket();
+ if(type == PacketType.LandStatRequest) return new LandStatRequestPacket();
+ if(type == PacketType.LandStatReply) return new LandStatReplyPacket();
+ if(type == PacketType.Error) return new ErrorPacket();
+ if(type == PacketType.ObjectIncludeInSearch) return new ObjectIncludeInSearchPacket();
+ if(type == PacketType.PacketAck) return new PacketAckPacket();
+ if(type == PacketType.OpenCircuit) return new OpenCircuitPacket();
+ if(type == PacketType.CloseCircuit) return new CloseCircuitPacket();
+ return null;
+
+ }
+
public static Packet BuildPacket(byte[] packetBuffer, ref int packetEnd, byte[] zeroBuffer)
{
byte[] bytes; ushort id; PacketFrequency freq;
diff --git a/Programs/mapgenerator/mapgenerator.cs b/Programs/mapgenerator/mapgenerator.cs
index 0b3c9bc4..526e8f05 100644
--- a/Programs/mapgenerator/mapgenerator.cs
+++ b/Programs/mapgenerator/mapgenerator.cs
@@ -75,13 +75,13 @@ namespace mapgenerator
writer.WriteLine(" public byte[] " + field.Name + Environment.NewLine + " {");
writer.WriteLine(" get { return _" + field.Name.ToLower() + "; }");
writer.WriteLine(" set" + Environment.NewLine + " {");
- writer.WriteLine(" if (value == null) { _" +
+ writer.WriteLine(" if (value == null) { _" +
field.Name.ToLower() + " = null; return; }");
- writer.WriteLine(" if (value.Length > " +
- ((field.Count == 1) ? "255" : "1100") + ") { throw new OverflowException(" +
+ writer.WriteLine(" if (value.Length > " +
+ ((field.Count == 1) ? "255" : "1100") + ") { throw new OverflowException(" +
"\"Value exceeds " + ((field.Count == 1) ? "255" : "1100") + " characters\"); }");
writer.WriteLine(" else { _" + field.Name.ToLower() +
- " = new byte[value.Length]; Buffer.BlockCopy(value, 0, _" +
+ " = new byte[value.Length]; Buffer.BlockCopy(value, 0, _" +
field.Name.ToLower() + ", 0, value.Length); }");
writer.WriteLine(" }" + Environment.NewLine + " }");
}
@@ -110,7 +110,7 @@ namespace mapgenerator
break;
case FieldType.IPADDR:
case FieldType.U32:
- writer.WriteLine(" " + field.Name +
+ writer.WriteLine(" " + field.Name +
" = (uint)(bytes[i++] + (bytes[i++] << 8) + (bytes[i++] << 16) + (bytes[i++] << 24));");
break;
case FieldType.IPPORT:
@@ -119,7 +119,7 @@ namespace mapgenerator
" = (ushort)((bytes[i++] << 8) + bytes[i++]);");
break;
case FieldType.U16:
- writer.WriteLine(" " + field.Name +
+ writer.WriteLine(" " + field.Name +
" = (ushort)(bytes[i++] + (bytes[i++] << 8));");
break;
case FieldType.LLQuaternion:
@@ -195,7 +195,7 @@ namespace mapgenerator
writer.WriteLine("Utils.DoubleToBytes(" + field.Name + ", bytes, i); i += 8;");
break;
case FieldType.Fixed:
- writer.WriteLine("Buffer.BlockCopy(" + field.Name + ", 0, bytes, i, " + field.Count + ");" +
+ writer.WriteLine("Buffer.BlockCopy(" + field.Name + ", 0, bytes, i, " + field.Count + ");" +
"i += " + field.Count + ";");
break;
case FieldType.IPPORT:
@@ -247,10 +247,10 @@ namespace mapgenerator
else
{
writer.WriteLine("bytes[i++] = (byte)(" + field.Name + ".Length % 256);");
- writer.WriteLine(" bytes[i++] = (byte)((" +
+ writer.WriteLine(" bytes[i++] = (byte)((" +
field.Name + ".Length >> 8) % 256);");
}
- writer.WriteLine(" Buffer.BlockCopy(" + field.Name + ", 0, bytes, i, " +
+ writer.WriteLine(" Buffer.BlockCopy(" + field.Name + ", 0, bytes, i, " +
field.Name + ".Length); " + "i += " + field.Name + ".Length;");
break;
default:
@@ -261,7 +261,7 @@ namespace mapgenerator
static int GetFieldLength(TextWriter writer, MapField field)
{
- switch(field.Type)
+ switch (field.Type)
{
case FieldType.BOOL:
case FieldType.U8:
@@ -315,7 +315,7 @@ namespace mapgenerator
writer.WriteLine("");
//writer.WriteLine(" /// Length of this block serialized in bytes");
writer.WriteLine(" public override int Length" + Environment.NewLine +
- " {" + Environment.NewLine +
+ " {" + Environment.NewLine +
" get" + Environment.NewLine +
" {");
int length = 0;
@@ -354,13 +354,13 @@ namespace mapgenerator
// Constructor for building the class from bytes
//writer.WriteLine(" /// Constructor for building the block from a byte array");
- writer.WriteLine(" public " + block.Name + "Block(byte[] bytes, ref int i)" + Environment.NewLine +
- " {" + Environment.NewLine +
- " FromBytes(bytes, ref i);" + Environment.NewLine +
+ writer.WriteLine(" public " + block.Name + "Block(byte[] bytes, ref int i)" + Environment.NewLine +
+ " {" + Environment.NewLine +
+ " FromBytes(bytes, ref i);" + Environment.NewLine +
" }" + Environment.NewLine);
// Initiates instance variables from a byte message
- writer.WriteLine(" public override void FromBytes(byte[] bytes, ref int i)" + Environment.NewLine +
+ writer.WriteLine(" public override void FromBytes(byte[] bytes, ref int i)" + Environment.NewLine +
" {");
// Declare a length variable if we need it for variable fields in this constructor
@@ -374,15 +374,15 @@ namespace mapgenerator
WriteFieldFromBytes(writer, field);
}
- writer.WriteLine(" }" + Environment.NewLine +
+ writer.WriteLine(" }" + Environment.NewLine +
" catch (Exception)" + Environment.NewLine +
- " {" + Environment.NewLine +
+ " {" + Environment.NewLine +
" throw new MalformedDataException();" + Environment.NewLine +
" }" + Environment.NewLine + " }" + Environment.NewLine);
// ToBytes() function
//writer.WriteLine(" /// Serialize this block to a byte array");
- writer.WriteLine(" public override void ToBytes(byte[] bytes, ref int i)" + Environment.NewLine +
+ writer.WriteLine(" public override void ToBytes(byte[] bytes, ref int i)" + Environment.NewLine +
" {");
foreach (MapField field in block.Fields)
@@ -438,7 +438,7 @@ namespace mapgenerator
// PacketType member
//writer.WriteLine(" /// Will return PacketType." + packet.Name+ "");
- writer.WriteLine(" public override PacketType Type { get { return PacketType." +
+ writer.WriteLine(" public override PacketType Type { get { return PacketType." +
packet.Name + "; } }");
// Block members
@@ -534,7 +534,7 @@ namespace mapgenerator
else
{
// Multiple count block
- writer.WriteLine(" if(" + sanitizedName + ".Length < " + block.Count+") {");
+ writer.WriteLine(" if(" + sanitizedName + ".Length < " + block.Count + ") {");
writer.WriteLine(" " + sanitizedName + " = new " + block.Name + "Block[" + block.Count + "];");
writer.WriteLine(" for(int j = 0; j < " + block.Count + "; j++) " + sanitizedName + "[j] = new " + block.Name + "Block();");
writer.WriteLine(" }");
@@ -593,7 +593,7 @@ namespace mapgenerator
else
{
// Multiple count block
- writer.WriteLine(" if(" + sanitizedName + ".Length < " + block.Count+") {");
+ writer.WriteLine(" if(" + sanitizedName + ".Length < " + block.Count + ") {");
writer.WriteLine(" " + sanitizedName + " = new " + block.Name + "Block[" + block.Count + "];");
writer.WriteLine(" for(int j = 0; j < " + block.Count + "; j++) " + sanitizedName + "[j] = new " + block.Name + "Block();");
writer.WriteLine(" }");
@@ -687,9 +687,9 @@ namespace mapgenerator
if (block.Count == -1)
{
// Variable count block
- writer.WriteLine(" for (int j = 0; j < " +
+ writer.WriteLine(" for (int j = 0; j < " +
sanitizedName + ".Length; j++)" + Environment.NewLine + " {");
- writer.WriteLine(" output += " + sanitizedName +
+ writer.WriteLine(" output += " + sanitizedName +
"[j].ToString() + Environment.NewLine;" + Environment.NewLine + " }");
}
else if (block.Count == 1)
@@ -699,9 +699,9 @@ namespace mapgenerator
else
{
// Multiple count block
- writer.WriteLine(" for (int j = 0; j < " +
+ writer.WriteLine(" for (int j = 0; j < " +
block.Count + "; j++)" + Environment.NewLine + " {");
- writer.WriteLine(" output += " + sanitizedName +
+ writer.WriteLine(" output += " + sanitizedName +
"[j].ToString() + Environment.NewLine;" + Environment.NewLine + " }");
}
}
@@ -730,9 +730,9 @@ namespace mapgenerator
protocol = new ProtocolManager(args[0]);
// Build a list of unused packets
- using (StreamReader unusedReader = new StreamReader(args[2]))
+ using (StreamReader unusedReader = new StreamReader(args[2]))
{
- while (unusedReader.Peek() >= 0)
+ while (unusedReader.Peek() >= 0)
{
unused.Add(unusedReader.ReadLine().Trim());
}
@@ -780,7 +780,7 @@ namespace mapgenerator
" Default,");
foreach (MapPacket packet in protocol.LowMaps)
if (packet != null)
- writer.WriteLine(" " + packet.Name + " = " + (0x10000 | packet.ID) + ",");
+ writer.WriteLine(" " + packet.Name + " = " + (0x10000 | packet.ID) + ",");
foreach (MapPacket packet in protocol.MediumMaps)
if (packet != null)
writer.WriteLine(" " + packet.Name + " = " + (0x20000 | packet.ID) + ",");
@@ -791,10 +791,10 @@ namespace mapgenerator
// Write the base Packet class
writer.WriteLine(
- " public abstract partial class Packet" + Environment.NewLine + " {" + Environment.NewLine +
+ " public abstract partial class Packet" + Environment.NewLine + " {" + Environment.NewLine +
" public abstract Header Header { get; set; }" + Environment.NewLine +
" public abstract PacketType Type { get; }" + Environment.NewLine +
- " public abstract void FromBytes(byte[] bytes, ref int i, ref int packetEnd, byte[] zeroBuffer);" + Environment.NewLine +
+ " public abstract void FromBytes(byte[] bytes, ref int i, ref int packetEnd, byte[] zeroBuffer);" + Environment.NewLine +
" public abstract void FromBytes(Header header, byte[] bytes, ref int i, ref int packetEnd, byte[] zeroBuffer);" + Environment.NewLine +
" public abstract byte[] ToBytes();"
);
@@ -804,22 +804,22 @@ namespace mapgenerator
writer.WriteLine(
" public static PacketType GetType(ushort id, PacketFrequency frequency)" + Environment.NewLine +
" {" + Environment.NewLine +
- " switch (frequency)" + Environment.NewLine +
- " {" + Environment.NewLine +
+ " switch (frequency)" + Environment.NewLine +
+ " {" + Environment.NewLine +
" case PacketFrequency.Low:" + Environment.NewLine +
- " switch (id)" + Environment.NewLine +
+ " switch (id)" + Environment.NewLine +
" {");
foreach (MapPacket packet in protocol.LowMaps)
if (packet != null)
writer.WriteLine(" case " + packet.ID + ": return PacketType." + packet.Name + ";");
- writer.WriteLine(" }" + Environment.NewLine +
+ writer.WriteLine(" }" + Environment.NewLine +
" break;" + Environment.NewLine +
" case PacketFrequency.Medium:" + Environment.NewLine +
" switch (id)" + Environment.NewLine + " {");
foreach (MapPacket packet in protocol.MediumMaps)
if (packet != null)
writer.WriteLine(" case " + packet.ID + ": return PacketType." + packet.Name + ";");
- writer.WriteLine(" }" + Environment.NewLine +
+ writer.WriteLine(" }" + Environment.NewLine +
" break;" + Environment.NewLine +
" case PacketFrequency.High:" + Environment.NewLine +
" switch (id)" + Environment.NewLine + " {");
@@ -830,11 +830,26 @@ namespace mapgenerator
" break;" + Environment.NewLine + " }" + Environment.NewLine + Environment.NewLine +
" return PacketType.Default;" + Environment.NewLine + " }" + Environment.NewLine);
+ // Write the Packet.BuildPacket(PacketType) function
+ writer.WriteLine(" public static Packet BuildPacket(PacketType type)");
+ writer.WriteLine(" {");
+ foreach (MapPacket packet in protocol.HighMaps)
+ if (packet != null)
+ writer.WriteLine(" if(type == PacketType." + packet.Name + ") return new " + packet.Name + "Packet();");
+ foreach (MapPacket packet in protocol.MediumMaps)
+ if (packet != null)
+ writer.WriteLine(" if(type == PacketType." + packet.Name + ") return new " + packet.Name + "Packet();");
+ foreach (MapPacket packet in protocol.LowMaps)
+ if (packet != null)
+ writer.WriteLine(" if(type == PacketType." + packet.Name + ") return new " + packet.Name + "Packet();");
+ writer.WriteLine(" return null;" + Environment.NewLine);
+ writer.WriteLine(" }" + Environment.NewLine);
+
// Write the Packet.BuildPacket() function
writer.WriteLine(
" public static Packet BuildPacket(byte[] packetBuffer, ref int packetEnd, byte[] zeroBuffer)" + Environment.NewLine +
" {" + Environment.NewLine +
- " byte[] bytes; ushort id; PacketFrequency freq;" + Environment.NewLine +
+ " byte[] bytes; ushort id; PacketFrequency freq;" + Environment.NewLine +
" int i = 0;" + Environment.NewLine +
" Header header = Header.BuildHeader(packetBuffer, ref i, ref packetEnd);" + Environment.NewLine +
" if (header.Zerocoded)" + Environment.NewLine +
@@ -856,7 +871,7 @@ namespace mapgenerator
foreach (MapPacket packet in protocol.LowMaps)
if (packet != null)
writer.WriteLine(" case " + packet.ID + ": return new " + packet.Name + "Packet(header, bytes, ref i);");
- writer.WriteLine(" }" + Environment.NewLine + " }" + Environment.NewLine +
+ writer.WriteLine(" }" + Environment.NewLine + " }" + Environment.NewLine +
" else" + Environment.NewLine +
" {" + Environment.NewLine + " id = (ushort)bytes[7]; freq = PacketFrequency.Medium;" + Environment.NewLine +
" switch (id)" + Environment.NewLine + " {");