From 0b8c79469276e25a50afaa4f2e59a7cd002661ea Mon Sep 17 00:00:00 2001 From: Sky Johnson Date: Sun, 31 Aug 2025 21:02:49 -0500 Subject: [PATCH] upload packet xml definitions and parser library --- structs/PARSER.md | 284 ++ structs/builder.go | 454 ++ structs/builder_test.go | 173 + structs/loader.go | 146 + structs/opcode_manager.go | 239 ++ structs/opcodes.go | 162 + structs/parser/context.go | 447 ++ structs/parser/parser.go | 1199 ++++++ structs/parser/parser_test.go | 933 ++++ structs/parser/structs.go | 135 + structs/parser_test.go | 370 ++ structs/reader.go | 255 ++ structs/xml/common/BadLanguageFilter.xml | 8 + structs/xml/common/CreateCharacter.xml | 744 ++++ structs/xml/common/CreateCharacterReply.xml | 7 + structs/xml/item/BaseItemDescription.xml | 1058 +++++ .../xml/item/BaseItemDescriptionGeneric.xml | 37 + .../xml/item/BaseItemDescriptionInspect.xml | 30 + .../xml/item/BaseMerchantItemDescription.xml | 597 +++ structs/xml/item/Item.xml | 305 ++ structs/xml/item/ItemAdornment.xml | 136 + structs/xml/item/ItemArmor.xml | 200 + structs/xml/item/ItemArmorDetails.xml | 6 + structs/xml/item/ItemArmorSet.xml | 129 + structs/xml/item/ItemBag.xml | 325 ++ structs/xml/item/ItemBagDetails.xml | 6 + structs/xml/item/ItemBauble.xml | 375 ++ structs/xml/item/ItemBook.xml | 106 + structs/xml/item/ItemDecoration.xml | 57 + structs/xml/item/ItemDescription.xml | 127 + structs/xml/item/ItemDescriptionGeneric.xml | 7 + structs/xml/item/ItemDescriptionInspect.xml | 7 + structs/xml/item/ItemDungeonMaker.xml | 46 + structs/xml/item/ItemFood.xml | 182 + structs/xml/item/ItemFooter.xml | 1787 ++++++++ structs/xml/item/ItemFooterInspect.xml | 5 + structs/xml/item/ItemGeneric.xml | 106 + structs/xml/item/ItemHouse.xml | 174 + structs/xml/item/ItemHouseContainer.xml | 242 ++ structs/xml/item/ItemInspect.xml | 6 + structs/xml/item/ItemMarketplace.xml | 111 + structs/xml/item/ItemPattern.xml | 244 ++ structs/xml/item/ItemProfile.xml | 57 + structs/xml/item/ItemRange.xml | 398 ++ structs/xml/item/ItemRangeDetails.xml | 20 + structs/xml/item/ItemRecipeBook.xml | 271 ++ structs/xml/item/ItemRecipeBookDetails.xml | 8 + structs/xml/item/ItemSet.xml | 170 + structs/xml/item/ItemShield.xml | 173 + structs/xml/item/ItemShieldDetails.xml | 6 + structs/xml/item/ItemSkill.xml | 203 + structs/xml/item/ItemThrown.xml | 202 + structs/xml/item/ItemWeapon.xml | 376 ++ structs/xml/item/ItemWeaponDetails.xml | 11 + structs/xml/item/LootItemDescription.xml | 42 + structs/xml/item/LootItemGeneric.xml | 78 + structs/xml/item/Loot_ItemFooter.xml | 114 + structs/xml/item/MerchantItemAdornment.xml | 123 + structs/xml/item/MerchantItemArmor.xml | 158 + structs/xml/item/MerchantItemArmorSet.xml | 259 ++ structs/xml/item/MerchantItemBag.xml | 249 ++ structs/xml/item/MerchantItemBauble.xml | 293 ++ structs/xml/item/MerchantItemBook.xml | 90 + structs/xml/item/MerchantItemDecoration.xml | 57 + structs/xml/item/MerchantItemDescription.xml | 102 + structs/xml/item/MerchantItemDungeonMaker.xml | 46 + structs/xml/item/MerchantItemFood.xml | 142 + structs/xml/item/MerchantItemGeneric.xml | 82 + structs/xml/item/MerchantItemHouse.xml | 148 + .../xml/item/MerchantItemHouseContainer.xml | 202 + structs/xml/item/MerchantItemMarketplace.xml | 123 + structs/xml/item/MerchantItemPattern.xml | 222 + structs/xml/item/MerchantItemProfile.xml | 57 + structs/xml/item/MerchantItemRange.xml | 314 ++ structs/xml/item/MerchantItemRecipeBook.xml | 224 + structs/xml/item/MerchantItemSet.xml | 156 + structs/xml/item/MerchantItemShield.xml | 134 + structs/xml/item/MerchantItemSkill.xml | 150 + structs/xml/item/MerchantItemThrown.xml | 162 + structs/xml/item/MerchantItemWeapon.xml | 294 ++ structs/xml/item/QuestItemDescription.xml | 12 + structs/xml/item/QuestItemRewards.xml | 10 + structs/xml/item/SkillItemFooter.xml | 6 + structs/xml/item/UpdateInventory.xml | 122 + structs/xml/login/CharSelectProfile.xml | 398 ++ structs/xml/login/CreateCharacterReply.xml | 19 + structs/xml/login/DeleteCharacterRequest.xml | 8 + structs/xml/login/DeleteCharacterResponse.xml | 10 + structs/xml/login/LoginReplyMsg.xml | 490 +++ structs/xml/login/LoginRequest.xml | 35 + structs/xml/login/PlayRequest.xml | 11 + structs/xml/login/PlayResponse.xml | 33 + structs/xml/login/WorldList.xml | 100 + structs/xml/login/WorldUpdate.xml | 9 + .../spawn/SignWidgetSpawnStruct_Footer.xml | 90 + structs/xml/spawn/SpawnInfoStruct.xml | 2098 +++++++++ structs/xml/spawn/SpawnPositionStruct.xml | 300 ++ structs/xml/spawn/SpawnStruct.xml | 107 + structs/xml/spawn/SpawnStruct_Footer.xml | 41 + structs/xml/spawn/SpawnStruct_Header.xml | 104 + .../spawn/SpawnVisualizationInfoStruct.xml | 142 + .../xml/spawn/WidgetSpawnStruct_Footer.xml | 54 + structs/xml/world/AchievementSpellInfo.xml | 810 ++++ structs/xml/world/AchievementUpdate.xml | 26 + structs/xml/world/AdvancementRequest.xml | 6 + structs/xml/world/AdventureList.xml | 3764 +++++++++++++++++ structs/xml/world/AfterInvSpellUpdate.xml | 7 + structs/xml/world/ArenaGameTypes.xml | 49 + structs/xml/world/AvailWorldChannels.xml | 15 + structs/xml/world/BagOptions.xml | 7 + structs/xml/world/BeginItemCreation.xml | 53 + structs/xml/world/BeginTracking.xml | 5 + structs/xml/world/BioUpdate.xml | 5 + structs/xml/world/BrokerBags.xml | 10 + structs/xml/world/BrokerItems.xml | 242 ++ structs/xml/world/BuyHouse.xml | 8 + .../xml/world/CSTicketHeaderRequestMsg.xml | 5 + structs/xml/world/CSToolsRequest.xml | 5 + structs/xml/world/Camp.xml | 20 + structs/xml/world/CampAbortedMsg.xml | 4 + structs/xml/world/CancelMoveObjectMode.xml | 5 + structs/xml/world/CannedEmote.xml | 18 + structs/xml/world/CharacterAchievements.xml | 111 + .../xml/world/CharacterCreatedDungeons.xml | 42 + structs/xml/world/CharacterCurrency.xml | 36 + structs/xml/world/CharacterHousingList.xml | 49 + structs/xml/world/CharacterMerc.xml | 421 ++ structs/xml/world/CharacterMounts.xml | 38 + structs/xml/world/CharacterPet.xml | 230 + structs/xml/world/CharacterSheet.xml | 1528 +++++++ structs/xml/world/ChatChannelUpdate.xml | 7 + structs/xml/world/ChatFiltersMsg.xml | 22 + structs/xml/world/ChatRelationship.xml | 12 + structs/xml/world/ChoiceWindow.xml | 30 + structs/xml/world/ClearForLanding.xml | 5 + structs/xml/world/ClearForTakeOff.xml | 10 + structs/xml/world/ClientFell.xml | 6 + structs/xml/world/CloseWindow.xml | 6 + structs/xml/world/CollectionFilter.xml | 16 + structs/xml/world/CollectionItem.xml | 7 + structs/xml/world/CollectionUpdate.xml | 63 + structs/xml/world/CommandName.xml | 9 + structs/xml/world/CommitAATemplate.xml | 6 + structs/xml/world/CreateBoatTransportMsg.xml | 5 + structs/xml/world/CreateFromRecipe.xml | 445 ++ structs/xml/world/CsCategoryRequestMsg.xml | 5 + structs/xml/world/CurrentPet.xml | 6 + structs/xml/world/DailyObjectives.xml | 16 + structs/xml/world/DeathWindow.xml | 14 + structs/xml/world/DefaultGroupOptions.xml | 26 + .../world/DefaultGroupOptionsRequestMsg.xml | 4 + structs/xml/world/DestroyGhostCmd.xml | 6 + structs/xml/world/DialogClose.xml | 5 + structs/xml/world/DialogOpen.xml | 47 + structs/xml/world/DialogSelect.xml | 6 + structs/xml/world/DietyAbilities.xml | 9 + structs/xml/world/DisplayHouseStatus.xml | 59 + structs/xml/world/DisplaySpellFailed.xml | 13 + structs/xml/world/DisplayText.xml | 12 + structs/xml/world/DisplayVisitScreen.xml | 57 + .../world/DoneLoadingEntityResourcesMsg.xml | 4 + .../xml/world/DoneLoadingUIResourcesMsg.xml | 4 + .../xml/world/DoneLoadingZoneResourcesMsg.xml | 9 + .../world/DoneSendingInitialEntitiesMsg.xml | 4 + structs/xml/world/DressingRoom.xml | 60 + structs/xml/world/DungeonMakerItemRequest.xml | 9 + structs/xml/world/EffectInfo.xml | 37 + structs/xml/world/EnableGameEvent.xml | 6 + structs/xml/world/EncounterBroken.xml | 11 + structs/xml/world/EnterCombat.xml | 5 + structs/xml/world/EnterHouse.xml | 9 + structs/xml/world/EntityVerbsRequest.xml | 5 + structs/xml/world/EntityVerbsResponse.xml | 13 + structs/xml/world/EntityVerbsVerb.xml | 6 + structs/xml/world/EntityVerbsVerbBackup.xml | 5 + structs/xml/world/EqShowBook.xml | 49 + structs/xml/world/EqTargetItemCmd.xml | 11 + structs/xml/world/EquipmentSets.xml | 13 + structs/xml/world/ExamineAASpellInfo.xml | 30 + structs/xml/world/ExamineEffectInfo.xml | 18 + structs/xml/world/ExamineInfoHeader.xml | 186 + .../xml/world/ExamineInfoItemLinkRequest.xml | 77 + structs/xml/world/ExamineInfoItemRequest.xml | 13 + structs/xml/world/ExamineInfoRequest.xml | 7 + structs/xml/world/ExamineInfoRequestMsg.xml | 46 + .../xml/world/ExamineInfoRequest_type3.xml | 19 + structs/xml/world/ExaminePartialSpellInfo.xml | 10 + structs/xml/world/ExamineRecipeInfo.xml | 30 + structs/xml/world/ExamineSpecialSpellInfo.xml | 38 + .../xml/world/ExamineSpellEffectRequest.xml | 12 + structs/xml/world/ExamineSpellInfo.xml | 58 + structs/xml/world/FactionUpdate.xml | 31 + structs/xml/world/FinishCastSpell.xml | 6 + structs/xml/world/FlashWindow.xml | 6 + structs/xml/world/FlightPathsMsg.xml | 41 + structs/xml/world/FogInit.xml | 179 + structs/xml/world/GameWorldTime.xml | 29 + structs/xml/world/GetMailHeader.xml | 113 + structs/xml/world/GlowPath.xml | 26 + structs/xml/world/GroupMember.xml | 202 + structs/xml/world/GuildBankEventList.xml | 10 + structs/xml/world/GuildEventAction.xml | 8 + structs/xml/world/GuildEventAdd.xml | 9 + structs/xml/world/GuildEventDetails.xml | 9 + structs/xml/world/GuildEventList.xml | 12 + structs/xml/world/GuildMembershipResponse.xml | 110 + structs/xml/world/GuildRecruiting.xml | 18 + structs/xml/world/GuildRecruitingDetails.xml | 22 + structs/xml/world/GuildRecruitingImage.xml | 9 + .../xml/world/GuildRecruitingMemberInfo.xml | 18 + structs/xml/world/GuildUpdate.xml | 426 ++ structs/xml/world/HearCastSpell.xml | 49 + structs/xml/world/HearChat.xml | 85 + structs/xml/world/HearDamage_Header.xml | 44 + structs/xml/world/HearDeath.xml | 13 + structs/xml/world/HearDispell.xml | 9 + structs/xml/world/HearHeal.xml | 53 + structs/xml/world/HearMultipleDamage.xml | 34 + structs/xml/world/HearRangeDamage.xml | 26 + structs/xml/world/HearRangeSpellDamage.xml | 32 + structs/xml/world/HearSimpleDamage.xml | 53 + structs/xml/world/HearSiphonSpellDamage.xml | 58 + structs/xml/world/HearSpellDamage.xml | 29 + structs/xml/world/HearThreatCmd.xml | 9 + structs/xml/world/HeritageMsg.xml | 13 + structs/xml/world/HeroicOpportunity.xml | 26 + structs/xml/world/HouseAccessRemoveMsg.xml | 7 + structs/xml/world/HouseAccessSetMsg.xml | 7 + .../xml/world/HouseDefaultAccessSetMsg.xml | 6 + structs/xml/world/HouseItemsList.xml | 77 + structs/xml/world/InspectPlayer.xml | 462 ++ structs/xml/world/InstanceCreated.xml | 50 + structs/xml/world/InstanceUpdate.xml | 20 + structs/xml/world/InstructionWindow.xml | 24 + structs/xml/world/InstructionWindowGoal.xml | 5 + structs/xml/world/Interrupt.xml | 10 + structs/xml/world/JoinGuildNotify.xml | 89 + structs/xml/world/JournalQuestStoryline.xml | 23 + structs/xml/world/JournalRewardData.xml | 261 ++ structs/xml/world/JournalStoryLines.xml | 21 + structs/xml/world/KeymapDataMsg.xml | 7 + structs/xml/world/KeymapNoneMsg.xml | 9 + structs/xml/world/KnowledgebaseRequestMsg.xml | 7 + .../xml/world/KnowledgebaseResponseMsg.xml | 18 + structs/xml/world/LFGGroupSearch.xml | 6 + structs/xml/world/Languages.xml | 10 + structs/xml/world/Launchpad.xml | 5 + structs/xml/world/LeaveGuildNotify.xml | 6 + structs/xml/world/LevelChanged.xml | 7 + structs/xml/world/LikeOption.xml | 7 + structs/xml/world/LoadCalendarEvents.xml | 48 + structs/xml/world/LoadWelcomeWindow.xml | 114 + structs/xml/world/LoginByNumRequest.xml | 23 + structs/xml/world/LoginResponse.xml | 189 + structs/xml/world/LootItem.xml | 31 + structs/xml/world/Lottery.xml | 16 + structs/xml/world/MacroInit.xml | 38 + structs/xml/world/MacroUpdate.xml | 29 + structs/xml/world/MailGetMessage.xml | 67 + structs/xml/world/MailSendMessage.xml | 12 + structs/xml/world/MailSendMessageReply.xml | 8 + structs/xml/world/MaintainedEffects.xml | 79 + structs/xml/world/MapData.xml | 63 + structs/xml/world/MapExploration.xml | 11 + structs/xml/world/MapFogDataUpdateMsg.xml | 18 + structs/xml/world/MapRequest.xml | 6 + structs/xml/world/MarketAddFundsRequest.xml | 10 + structs/xml/world/MarketFundsUpdate.xml | 11 + structs/xml/world/MarketPlacePrices.xml | 14 + structs/xml/world/ModifyGuild.xml | 14 + structs/xml/world/MoveClient.xml | 30 + structs/xml/world/MoveObjectMode.xml | 65 + .../world/MoveableObjectPlacementCriteri.xml | 7 + structs/xml/world/OfferQuest.xml | 216 + structs/xml/world/OnScreenMsg.xml | 19 + structs/xml/world/OpenCharCust.xml | 8 + structs/xml/world/PaperdollImage.xml | 24 + structs/xml/world/PartialSpellInfo.xml | 55 + structs/xml/world/PassiveEffects.xml | 13 + structs/xml/world/PayUpkeep.xml | 10 + structs/xml/world/PerformCameraShakeMsg.xml | 9 + structs/xml/world/PetOptions.xml | 14 + structs/xml/world/PetOptionsResponse.xml | 36 + structs/xml/world/PlaceMoveableObject.xml | 24 + structs/xml/world/Play3DSound.xml | 11 + structs/xml/world/PlayFlavor.xml | 54 + structs/xml/world/PlaySound.xml | 9 + structs/xml/world/PlayVoice.xml | 8 + .../xml/world/PlayerHouseAccessUpdateMsg.xml | 8 + structs/xml/world/PlayerHouseBaseScreen.xml | 355 ++ structs/xml/world/PlayerHousePurchase.xml | 27 + structs/xml/world/PlayerKnockback.xml | 12 + structs/xml/world/PlayerPosUpdate.xml | 91 + structs/xml/world/PlayerTrade.xml | 186 + structs/xml/world/PointOfInterest.xml | 8 + structs/xml/world/PredictionUpdateMsg.xml | 4 + structs/xml/world/PromoFlagsDetails.xml | 59 + structs/xml/world/QuestComplete.xml | 122 + structs/xml/world/QuestExamineInfoHeader.xml | 12 + structs/xml/world/QuestFactionRewards.xml | 10 + structs/xml/world/QuestJournalInspectMsg.xml | 9 + structs/xml/world/QuestJournalReply.xml | 970 +++++ .../world/QuestJournalReply_PARSER_ONLY.xml | 116 + structs/xml/world/QuestJournalUpdate.xml | 194 + structs/xml/world/QuestJournalVisible.xml | 7 + structs/xml/world/QuestJournalWaypoint.xml | 12 + structs/xml/world/QuestRewardPackMsg.xml | 11 + structs/xml/world/QuickBarInit.xml | 50 + structs/xml/world/QuickBarUpdateRequest.xml | 27 + structs/xml/world/RaidMember.xml | 82 + structs/xml/world/RaidUpdate.xml | 106 + structs/xml/world/ReadyForTakeOff.xml | 4 + structs/xml/world/ReadyToZoneMsg.xml | 4 + structs/xml/world/ReceiveOffer.xml | 15 + structs/xml/world/RecipeBook.xml | 5 + structs/xml/world/RecipeDetailList.xml | 33 + structs/xml/world/RecipeDetails.xml | 20 + structs/xml/world/RecipeInfo.xml | 508 +++ structs/xml/world/RecipeList.xml | 22 + structs/xml/world/RecipeListUnknown.xml | 5 + structs/xml/world/RemoteCmdMsg.xml | 10 + structs/xml/world/RequestCamp.xml | 20 + .../xml/world/RequestGuildEventDetails.xml | 14 + structs/xml/world/RequestGuildInfo.xml | 9 + structs/xml/world/RequestRecipeDetail.xml | 26 + structs/xml/world/Research.xml | 42 + structs/xml/world/Resurrected.xml | 5 + structs/xml/world/RewardPackMsg.xml | 12 + structs/xml/world/SatMsg.xml | 4 + structs/xml/world/SavageBar.xml | 8 + structs/xml/world/SelectTradeskill.xml | 73 + structs/xml/world/ServerControlFlags.xml | 19 + structs/xml/world/ServerDialogClose.xml | 5 + structs/xml/world/ServerUpdateTarget.xml | 6 + structs/xml/world/SetControlGhost.xml | 36 + structs/xml/world/SetDefaultCommand.xml | 7 + structs/xml/world/SetPOVGhostCmd.xml | 5 + structs/xml/world/SetRemoteCmdsMsg.xml | 8 + structs/xml/world/ShowItemCreation.xml | 117 + structs/xml/world/ShowRecipeBook.xml | 17 + structs/xml/world/ShowWindow.xml | 6 + structs/xml/world/Signal.xml | 5 + structs/xml/world/SkillInfoItemRequest.xml | 6 + structs/xml/world/SkillInfoItemResponse.xml | 7 + structs/xml/world/SkillInfoRequest.xml | 7 + structs/xml/world/SkillInfoResponse.xml | 8 + structs/xml/world/SkillInfoSpellRequest.xml | 7 + structs/xml/world/SkillMap.xml | 19 + structs/xml/world/SpecialSpellInfo.xml | 129 + structs/xml/world/SpellEffects.xml | 38 + structs/xml/world/SpellFizzle.xml | 10 + structs/xml/world/SpellGainedMsg.xml | 47 + structs/xml/world/SpellInfo.xml | 963 +++++ structs/xml/world/SpellNoLand.xml | 10 + structs/xml/world/SpellSlotMapping.xml | 9 + structs/xml/world/StartBroker.xml | 7 + structs/xml/world/StartCastSpell.xml | 6 + structs/xml/world/StateCmd.xml | 14 + structs/xml/world/StoppedLooting.xml | 5 + .../xml/world/SubStruct_UpdateSpellBook.xml | 188 + structs/xml/world/SubmitCharCust.xml | 42 + structs/xml/world/SupplyDepot.xml | 35 + structs/xml/world/SysClient.xml | 5 + structs/xml/world/TSEventReaction.xml | 5 + structs/xml/world/TargetSpellEffects.xml | 32 + structs/xml/world/TeleportDestination.xml | 8 + structs/xml/world/TeleportList.xml | 84 + structs/xml/world/TeleportWithinZone.xml | 7 + structs/xml/world/TintWidgetsMsg.xml | 8 + structs/xml/world/TitleUpdate.xml | 11 + structs/xml/world/TrackingUpdate.xml | 22 + structs/xml/world/TraitsList.xml | 582 +++ structs/xml/world/UIEvent.xml | 19 + structs/xml/world/UpdateBank.xml | 24 + structs/xml/world/UpdateCreateItem.xml | 26 + .../xml/world/UpdateHouseAccessDataMsg.xml | 14 + structs/xml/world/UpdateLoot.xml | 71 + structs/xml/world/UpdateMaintainedExamine.xml | 37 + structs/xml/world/UpdateMerchant.xml | 317 ++ structs/xml/world/UpdatePlayerMail.xml | 17 + structs/xml/world/UpdateRecipeBook.xml | 29 + structs/xml/world/UpdateSign.xml | 8 + structs/xml/world/UpdateSkillBook.xml | 61 + structs/xml/world/UpdateSpellBook.xml | 86 + structs/xml/world/UpdateTarget.xml | 6 + structs/xml/world/UpdateTitle.xml | 23 + structs/xml/world/VoiceChatServer.xml | 8 + structs/xml/world/WaypointReplyMsg.xml | 11 + structs/xml/world/WaypointSelect.xml | 14 + structs/xml/world/WaypointUpdate.xml | 21 + structs/xml/world/Weakness.xml | 6 + structs/xml/world/WhoChannelQueryReply.xml | 10 + structs/xml/world/WhoQueryReply.xml | 81 + structs/xml/world/ZoneBgInstanceList.xml | 33 + structs/xml/world/ZoneChangeMsg.xml | 8 + structs/xml/world/ZoneInfo.xml | 880 ++++ structs/xml/world/substruct_AASpellInfo.xml | 60 + structs/xml/world/substruct_info_template.xml | 15 + structs/xml/world/substruct_item_info.xml | 9 + structs/xml/world/substruct_node_info.xml | 66 + structs/xml/world/substruct_unknown5_info.xml | 14 + 401 files changed, 43556 insertions(+) create mode 100644 structs/PARSER.md create mode 100644 structs/builder.go create mode 100644 structs/builder_test.go create mode 100644 structs/loader.go create mode 100644 structs/opcode_manager.go create mode 100644 structs/opcodes.go create mode 100644 structs/parser/context.go create mode 100644 structs/parser/parser.go create mode 100644 structs/parser/parser_test.go create mode 100644 structs/parser/structs.go create mode 100644 structs/parser_test.go create mode 100644 structs/reader.go create mode 100644 structs/xml/common/BadLanguageFilter.xml create mode 100644 structs/xml/common/CreateCharacter.xml create mode 100644 structs/xml/common/CreateCharacterReply.xml create mode 100644 structs/xml/item/BaseItemDescription.xml create mode 100644 structs/xml/item/BaseItemDescriptionGeneric.xml create mode 100644 structs/xml/item/BaseItemDescriptionInspect.xml create mode 100644 structs/xml/item/BaseMerchantItemDescription.xml create mode 100644 structs/xml/item/Item.xml create mode 100644 structs/xml/item/ItemAdornment.xml create mode 100644 structs/xml/item/ItemArmor.xml create mode 100644 structs/xml/item/ItemArmorDetails.xml create mode 100644 structs/xml/item/ItemArmorSet.xml create mode 100644 structs/xml/item/ItemBag.xml create mode 100644 structs/xml/item/ItemBagDetails.xml create mode 100644 structs/xml/item/ItemBauble.xml create mode 100644 structs/xml/item/ItemBook.xml create mode 100644 structs/xml/item/ItemDecoration.xml create mode 100644 structs/xml/item/ItemDescription.xml create mode 100644 structs/xml/item/ItemDescriptionGeneric.xml create mode 100644 structs/xml/item/ItemDescriptionInspect.xml create mode 100644 structs/xml/item/ItemDungeonMaker.xml create mode 100644 structs/xml/item/ItemFood.xml create mode 100644 structs/xml/item/ItemFooter.xml create mode 100644 structs/xml/item/ItemFooterInspect.xml create mode 100644 structs/xml/item/ItemGeneric.xml create mode 100644 structs/xml/item/ItemHouse.xml create mode 100644 structs/xml/item/ItemHouseContainer.xml create mode 100644 structs/xml/item/ItemInspect.xml create mode 100644 structs/xml/item/ItemMarketplace.xml create mode 100644 structs/xml/item/ItemPattern.xml create mode 100644 structs/xml/item/ItemProfile.xml create mode 100644 structs/xml/item/ItemRange.xml create mode 100644 structs/xml/item/ItemRangeDetails.xml create mode 100644 structs/xml/item/ItemRecipeBook.xml create mode 100644 structs/xml/item/ItemRecipeBookDetails.xml create mode 100644 structs/xml/item/ItemSet.xml create mode 100644 structs/xml/item/ItemShield.xml create mode 100644 structs/xml/item/ItemShieldDetails.xml create mode 100644 structs/xml/item/ItemSkill.xml create mode 100644 structs/xml/item/ItemThrown.xml create mode 100644 structs/xml/item/ItemWeapon.xml create mode 100644 structs/xml/item/ItemWeaponDetails.xml create mode 100644 structs/xml/item/LootItemDescription.xml create mode 100644 structs/xml/item/LootItemGeneric.xml create mode 100644 structs/xml/item/Loot_ItemFooter.xml create mode 100644 structs/xml/item/MerchantItemAdornment.xml create mode 100644 structs/xml/item/MerchantItemArmor.xml create mode 100644 structs/xml/item/MerchantItemArmorSet.xml create mode 100644 structs/xml/item/MerchantItemBag.xml create mode 100644 structs/xml/item/MerchantItemBauble.xml create mode 100644 structs/xml/item/MerchantItemBook.xml create mode 100644 structs/xml/item/MerchantItemDecoration.xml create mode 100644 structs/xml/item/MerchantItemDescription.xml create mode 100644 structs/xml/item/MerchantItemDungeonMaker.xml create mode 100644 structs/xml/item/MerchantItemFood.xml create mode 100644 structs/xml/item/MerchantItemGeneric.xml create mode 100644 structs/xml/item/MerchantItemHouse.xml create mode 100644 structs/xml/item/MerchantItemHouseContainer.xml create mode 100644 structs/xml/item/MerchantItemMarketplace.xml create mode 100644 structs/xml/item/MerchantItemPattern.xml create mode 100644 structs/xml/item/MerchantItemProfile.xml create mode 100644 structs/xml/item/MerchantItemRange.xml create mode 100644 structs/xml/item/MerchantItemRecipeBook.xml create mode 100644 structs/xml/item/MerchantItemSet.xml create mode 100644 structs/xml/item/MerchantItemShield.xml create mode 100644 structs/xml/item/MerchantItemSkill.xml create mode 100644 structs/xml/item/MerchantItemThrown.xml create mode 100644 structs/xml/item/MerchantItemWeapon.xml create mode 100644 structs/xml/item/QuestItemDescription.xml create mode 100644 structs/xml/item/QuestItemRewards.xml create mode 100644 structs/xml/item/SkillItemFooter.xml create mode 100644 structs/xml/item/UpdateInventory.xml create mode 100644 structs/xml/login/CharSelectProfile.xml create mode 100644 structs/xml/login/CreateCharacterReply.xml create mode 100644 structs/xml/login/DeleteCharacterRequest.xml create mode 100644 structs/xml/login/DeleteCharacterResponse.xml create mode 100644 structs/xml/login/LoginReplyMsg.xml create mode 100644 structs/xml/login/LoginRequest.xml create mode 100644 structs/xml/login/PlayRequest.xml create mode 100644 structs/xml/login/PlayResponse.xml create mode 100644 structs/xml/login/WorldList.xml create mode 100644 structs/xml/login/WorldUpdate.xml create mode 100644 structs/xml/spawn/SignWidgetSpawnStruct_Footer.xml create mode 100644 structs/xml/spawn/SpawnInfoStruct.xml create mode 100644 structs/xml/spawn/SpawnPositionStruct.xml create mode 100644 structs/xml/spawn/SpawnStruct.xml create mode 100644 structs/xml/spawn/SpawnStruct_Footer.xml create mode 100644 structs/xml/spawn/SpawnStruct_Header.xml create mode 100644 structs/xml/spawn/SpawnVisualizationInfoStruct.xml create mode 100644 structs/xml/spawn/WidgetSpawnStruct_Footer.xml create mode 100644 structs/xml/world/AchievementSpellInfo.xml create mode 100644 structs/xml/world/AchievementUpdate.xml create mode 100644 structs/xml/world/AdvancementRequest.xml create mode 100644 structs/xml/world/AdventureList.xml create mode 100644 structs/xml/world/AfterInvSpellUpdate.xml create mode 100644 structs/xml/world/ArenaGameTypes.xml create mode 100644 structs/xml/world/AvailWorldChannels.xml create mode 100644 structs/xml/world/BagOptions.xml create mode 100644 structs/xml/world/BeginItemCreation.xml create mode 100644 structs/xml/world/BeginTracking.xml create mode 100644 structs/xml/world/BioUpdate.xml create mode 100644 structs/xml/world/BrokerBags.xml create mode 100644 structs/xml/world/BrokerItems.xml create mode 100644 structs/xml/world/BuyHouse.xml create mode 100644 structs/xml/world/CSTicketHeaderRequestMsg.xml create mode 100644 structs/xml/world/CSToolsRequest.xml create mode 100644 structs/xml/world/Camp.xml create mode 100644 structs/xml/world/CampAbortedMsg.xml create mode 100644 structs/xml/world/CancelMoveObjectMode.xml create mode 100644 structs/xml/world/CannedEmote.xml create mode 100644 structs/xml/world/CharacterAchievements.xml create mode 100644 structs/xml/world/CharacterCreatedDungeons.xml create mode 100644 structs/xml/world/CharacterCurrency.xml create mode 100644 structs/xml/world/CharacterHousingList.xml create mode 100644 structs/xml/world/CharacterMerc.xml create mode 100644 structs/xml/world/CharacterMounts.xml create mode 100644 structs/xml/world/CharacterPet.xml create mode 100644 structs/xml/world/CharacterSheet.xml create mode 100644 structs/xml/world/ChatChannelUpdate.xml create mode 100644 structs/xml/world/ChatFiltersMsg.xml create mode 100644 structs/xml/world/ChatRelationship.xml create mode 100644 structs/xml/world/ChoiceWindow.xml create mode 100644 structs/xml/world/ClearForLanding.xml create mode 100644 structs/xml/world/ClearForTakeOff.xml create mode 100644 structs/xml/world/ClientFell.xml create mode 100644 structs/xml/world/CloseWindow.xml create mode 100644 structs/xml/world/CollectionFilter.xml create mode 100644 structs/xml/world/CollectionItem.xml create mode 100644 structs/xml/world/CollectionUpdate.xml create mode 100644 structs/xml/world/CommandName.xml create mode 100644 structs/xml/world/CommitAATemplate.xml create mode 100644 structs/xml/world/CreateBoatTransportMsg.xml create mode 100644 structs/xml/world/CreateFromRecipe.xml create mode 100644 structs/xml/world/CsCategoryRequestMsg.xml create mode 100644 structs/xml/world/CurrentPet.xml create mode 100644 structs/xml/world/DailyObjectives.xml create mode 100644 structs/xml/world/DeathWindow.xml create mode 100644 structs/xml/world/DefaultGroupOptions.xml create mode 100644 structs/xml/world/DefaultGroupOptionsRequestMsg.xml create mode 100644 structs/xml/world/DestroyGhostCmd.xml create mode 100644 structs/xml/world/DialogClose.xml create mode 100644 structs/xml/world/DialogOpen.xml create mode 100644 structs/xml/world/DialogSelect.xml create mode 100644 structs/xml/world/DietyAbilities.xml create mode 100644 structs/xml/world/DisplayHouseStatus.xml create mode 100644 structs/xml/world/DisplaySpellFailed.xml create mode 100644 structs/xml/world/DisplayText.xml create mode 100644 structs/xml/world/DisplayVisitScreen.xml create mode 100644 structs/xml/world/DoneLoadingEntityResourcesMsg.xml create mode 100644 structs/xml/world/DoneLoadingUIResourcesMsg.xml create mode 100644 structs/xml/world/DoneLoadingZoneResourcesMsg.xml create mode 100644 structs/xml/world/DoneSendingInitialEntitiesMsg.xml create mode 100644 structs/xml/world/DressingRoom.xml create mode 100644 structs/xml/world/DungeonMakerItemRequest.xml create mode 100644 structs/xml/world/EffectInfo.xml create mode 100644 structs/xml/world/EnableGameEvent.xml create mode 100644 structs/xml/world/EncounterBroken.xml create mode 100644 structs/xml/world/EnterCombat.xml create mode 100644 structs/xml/world/EnterHouse.xml create mode 100644 structs/xml/world/EntityVerbsRequest.xml create mode 100644 structs/xml/world/EntityVerbsResponse.xml create mode 100644 structs/xml/world/EntityVerbsVerb.xml create mode 100644 structs/xml/world/EntityVerbsVerbBackup.xml create mode 100644 structs/xml/world/EqShowBook.xml create mode 100644 structs/xml/world/EqTargetItemCmd.xml create mode 100644 structs/xml/world/EquipmentSets.xml create mode 100644 structs/xml/world/ExamineAASpellInfo.xml create mode 100644 structs/xml/world/ExamineEffectInfo.xml create mode 100644 structs/xml/world/ExamineInfoHeader.xml create mode 100644 structs/xml/world/ExamineInfoItemLinkRequest.xml create mode 100644 structs/xml/world/ExamineInfoItemRequest.xml create mode 100644 structs/xml/world/ExamineInfoRequest.xml create mode 100644 structs/xml/world/ExamineInfoRequestMsg.xml create mode 100644 structs/xml/world/ExamineInfoRequest_type3.xml create mode 100644 structs/xml/world/ExaminePartialSpellInfo.xml create mode 100644 structs/xml/world/ExamineRecipeInfo.xml create mode 100644 structs/xml/world/ExamineSpecialSpellInfo.xml create mode 100644 structs/xml/world/ExamineSpellEffectRequest.xml create mode 100644 structs/xml/world/ExamineSpellInfo.xml create mode 100644 structs/xml/world/FactionUpdate.xml create mode 100644 structs/xml/world/FinishCastSpell.xml create mode 100644 structs/xml/world/FlashWindow.xml create mode 100644 structs/xml/world/FlightPathsMsg.xml create mode 100644 structs/xml/world/FogInit.xml create mode 100644 structs/xml/world/GameWorldTime.xml create mode 100644 structs/xml/world/GetMailHeader.xml create mode 100644 structs/xml/world/GlowPath.xml create mode 100644 structs/xml/world/GroupMember.xml create mode 100644 structs/xml/world/GuildBankEventList.xml create mode 100644 structs/xml/world/GuildEventAction.xml create mode 100644 structs/xml/world/GuildEventAdd.xml create mode 100644 structs/xml/world/GuildEventDetails.xml create mode 100644 structs/xml/world/GuildEventList.xml create mode 100644 structs/xml/world/GuildMembershipResponse.xml create mode 100644 structs/xml/world/GuildRecruiting.xml create mode 100644 structs/xml/world/GuildRecruitingDetails.xml create mode 100644 structs/xml/world/GuildRecruitingImage.xml create mode 100644 structs/xml/world/GuildRecruitingMemberInfo.xml create mode 100644 structs/xml/world/GuildUpdate.xml create mode 100644 structs/xml/world/HearCastSpell.xml create mode 100644 structs/xml/world/HearChat.xml create mode 100644 structs/xml/world/HearDamage_Header.xml create mode 100644 structs/xml/world/HearDeath.xml create mode 100644 structs/xml/world/HearDispell.xml create mode 100644 structs/xml/world/HearHeal.xml create mode 100644 structs/xml/world/HearMultipleDamage.xml create mode 100644 structs/xml/world/HearRangeDamage.xml create mode 100644 structs/xml/world/HearRangeSpellDamage.xml create mode 100644 structs/xml/world/HearSimpleDamage.xml create mode 100644 structs/xml/world/HearSiphonSpellDamage.xml create mode 100644 structs/xml/world/HearSpellDamage.xml create mode 100644 structs/xml/world/HearThreatCmd.xml create mode 100644 structs/xml/world/HeritageMsg.xml create mode 100644 structs/xml/world/HeroicOpportunity.xml create mode 100644 structs/xml/world/HouseAccessRemoveMsg.xml create mode 100644 structs/xml/world/HouseAccessSetMsg.xml create mode 100644 structs/xml/world/HouseDefaultAccessSetMsg.xml create mode 100644 structs/xml/world/HouseItemsList.xml create mode 100644 structs/xml/world/InspectPlayer.xml create mode 100644 structs/xml/world/InstanceCreated.xml create mode 100644 structs/xml/world/InstanceUpdate.xml create mode 100644 structs/xml/world/InstructionWindow.xml create mode 100644 structs/xml/world/InstructionWindowGoal.xml create mode 100644 structs/xml/world/Interrupt.xml create mode 100644 structs/xml/world/JoinGuildNotify.xml create mode 100644 structs/xml/world/JournalQuestStoryline.xml create mode 100644 structs/xml/world/JournalRewardData.xml create mode 100644 structs/xml/world/JournalStoryLines.xml create mode 100644 structs/xml/world/KeymapDataMsg.xml create mode 100644 structs/xml/world/KeymapNoneMsg.xml create mode 100644 structs/xml/world/KnowledgebaseRequestMsg.xml create mode 100644 structs/xml/world/KnowledgebaseResponseMsg.xml create mode 100644 structs/xml/world/LFGGroupSearch.xml create mode 100644 structs/xml/world/Languages.xml create mode 100644 structs/xml/world/Launchpad.xml create mode 100644 structs/xml/world/LeaveGuildNotify.xml create mode 100644 structs/xml/world/LevelChanged.xml create mode 100644 structs/xml/world/LikeOption.xml create mode 100644 structs/xml/world/LoadCalendarEvents.xml create mode 100644 structs/xml/world/LoadWelcomeWindow.xml create mode 100644 structs/xml/world/LoginByNumRequest.xml create mode 100644 structs/xml/world/LoginResponse.xml create mode 100644 structs/xml/world/LootItem.xml create mode 100644 structs/xml/world/Lottery.xml create mode 100644 structs/xml/world/MacroInit.xml create mode 100644 structs/xml/world/MacroUpdate.xml create mode 100644 structs/xml/world/MailGetMessage.xml create mode 100644 structs/xml/world/MailSendMessage.xml create mode 100644 structs/xml/world/MailSendMessageReply.xml create mode 100644 structs/xml/world/MaintainedEffects.xml create mode 100644 structs/xml/world/MapData.xml create mode 100644 structs/xml/world/MapExploration.xml create mode 100644 structs/xml/world/MapFogDataUpdateMsg.xml create mode 100644 structs/xml/world/MapRequest.xml create mode 100644 structs/xml/world/MarketAddFundsRequest.xml create mode 100644 structs/xml/world/MarketFundsUpdate.xml create mode 100644 structs/xml/world/MarketPlacePrices.xml create mode 100644 structs/xml/world/ModifyGuild.xml create mode 100644 structs/xml/world/MoveClient.xml create mode 100644 structs/xml/world/MoveObjectMode.xml create mode 100644 structs/xml/world/MoveableObjectPlacementCriteri.xml create mode 100644 structs/xml/world/OfferQuest.xml create mode 100644 structs/xml/world/OnScreenMsg.xml create mode 100644 structs/xml/world/OpenCharCust.xml create mode 100644 structs/xml/world/PaperdollImage.xml create mode 100644 structs/xml/world/PartialSpellInfo.xml create mode 100644 structs/xml/world/PassiveEffects.xml create mode 100644 structs/xml/world/PayUpkeep.xml create mode 100644 structs/xml/world/PerformCameraShakeMsg.xml create mode 100644 structs/xml/world/PetOptions.xml create mode 100644 structs/xml/world/PetOptionsResponse.xml create mode 100644 structs/xml/world/PlaceMoveableObject.xml create mode 100644 structs/xml/world/Play3DSound.xml create mode 100644 structs/xml/world/PlayFlavor.xml create mode 100644 structs/xml/world/PlaySound.xml create mode 100644 structs/xml/world/PlayVoice.xml create mode 100644 structs/xml/world/PlayerHouseAccessUpdateMsg.xml create mode 100644 structs/xml/world/PlayerHouseBaseScreen.xml create mode 100644 structs/xml/world/PlayerHousePurchase.xml create mode 100644 structs/xml/world/PlayerKnockback.xml create mode 100644 structs/xml/world/PlayerPosUpdate.xml create mode 100644 structs/xml/world/PlayerTrade.xml create mode 100644 structs/xml/world/PointOfInterest.xml create mode 100644 structs/xml/world/PredictionUpdateMsg.xml create mode 100644 structs/xml/world/PromoFlagsDetails.xml create mode 100644 structs/xml/world/QuestComplete.xml create mode 100644 structs/xml/world/QuestExamineInfoHeader.xml create mode 100644 structs/xml/world/QuestFactionRewards.xml create mode 100644 structs/xml/world/QuestJournalInspectMsg.xml create mode 100644 structs/xml/world/QuestJournalReply.xml create mode 100644 structs/xml/world/QuestJournalReply_PARSER_ONLY.xml create mode 100644 structs/xml/world/QuestJournalUpdate.xml create mode 100644 structs/xml/world/QuestJournalVisible.xml create mode 100644 structs/xml/world/QuestJournalWaypoint.xml create mode 100644 structs/xml/world/QuestRewardPackMsg.xml create mode 100644 structs/xml/world/QuickBarInit.xml create mode 100644 structs/xml/world/QuickBarUpdateRequest.xml create mode 100644 structs/xml/world/RaidMember.xml create mode 100644 structs/xml/world/RaidUpdate.xml create mode 100644 structs/xml/world/ReadyForTakeOff.xml create mode 100644 structs/xml/world/ReadyToZoneMsg.xml create mode 100644 structs/xml/world/ReceiveOffer.xml create mode 100644 structs/xml/world/RecipeBook.xml create mode 100644 structs/xml/world/RecipeDetailList.xml create mode 100644 structs/xml/world/RecipeDetails.xml create mode 100644 structs/xml/world/RecipeInfo.xml create mode 100644 structs/xml/world/RecipeList.xml create mode 100644 structs/xml/world/RecipeListUnknown.xml create mode 100644 structs/xml/world/RemoteCmdMsg.xml create mode 100644 structs/xml/world/RequestCamp.xml create mode 100644 structs/xml/world/RequestGuildEventDetails.xml create mode 100644 structs/xml/world/RequestGuildInfo.xml create mode 100644 structs/xml/world/RequestRecipeDetail.xml create mode 100644 structs/xml/world/Research.xml create mode 100644 structs/xml/world/Resurrected.xml create mode 100644 structs/xml/world/RewardPackMsg.xml create mode 100644 structs/xml/world/SatMsg.xml create mode 100644 structs/xml/world/SavageBar.xml create mode 100644 structs/xml/world/SelectTradeskill.xml create mode 100644 structs/xml/world/ServerControlFlags.xml create mode 100644 structs/xml/world/ServerDialogClose.xml create mode 100644 structs/xml/world/ServerUpdateTarget.xml create mode 100644 structs/xml/world/SetControlGhost.xml create mode 100644 structs/xml/world/SetDefaultCommand.xml create mode 100644 structs/xml/world/SetPOVGhostCmd.xml create mode 100644 structs/xml/world/SetRemoteCmdsMsg.xml create mode 100644 structs/xml/world/ShowItemCreation.xml create mode 100644 structs/xml/world/ShowRecipeBook.xml create mode 100644 structs/xml/world/ShowWindow.xml create mode 100644 structs/xml/world/Signal.xml create mode 100644 structs/xml/world/SkillInfoItemRequest.xml create mode 100644 structs/xml/world/SkillInfoItemResponse.xml create mode 100644 structs/xml/world/SkillInfoRequest.xml create mode 100644 structs/xml/world/SkillInfoResponse.xml create mode 100644 structs/xml/world/SkillInfoSpellRequest.xml create mode 100644 structs/xml/world/SkillMap.xml create mode 100644 structs/xml/world/SpecialSpellInfo.xml create mode 100644 structs/xml/world/SpellEffects.xml create mode 100644 structs/xml/world/SpellFizzle.xml create mode 100644 structs/xml/world/SpellGainedMsg.xml create mode 100644 structs/xml/world/SpellInfo.xml create mode 100644 structs/xml/world/SpellNoLand.xml create mode 100644 structs/xml/world/SpellSlotMapping.xml create mode 100644 structs/xml/world/StartBroker.xml create mode 100644 structs/xml/world/StartCastSpell.xml create mode 100644 structs/xml/world/StateCmd.xml create mode 100644 structs/xml/world/StoppedLooting.xml create mode 100644 structs/xml/world/SubStruct_UpdateSpellBook.xml create mode 100644 structs/xml/world/SubmitCharCust.xml create mode 100644 structs/xml/world/SupplyDepot.xml create mode 100644 structs/xml/world/SysClient.xml create mode 100644 structs/xml/world/TSEventReaction.xml create mode 100644 structs/xml/world/TargetSpellEffects.xml create mode 100644 structs/xml/world/TeleportDestination.xml create mode 100644 structs/xml/world/TeleportList.xml create mode 100644 structs/xml/world/TeleportWithinZone.xml create mode 100644 structs/xml/world/TintWidgetsMsg.xml create mode 100644 structs/xml/world/TitleUpdate.xml create mode 100644 structs/xml/world/TrackingUpdate.xml create mode 100644 structs/xml/world/TraitsList.xml create mode 100644 structs/xml/world/UIEvent.xml create mode 100644 structs/xml/world/UpdateBank.xml create mode 100644 structs/xml/world/UpdateCreateItem.xml create mode 100644 structs/xml/world/UpdateHouseAccessDataMsg.xml create mode 100644 structs/xml/world/UpdateLoot.xml create mode 100644 structs/xml/world/UpdateMaintainedExamine.xml create mode 100644 structs/xml/world/UpdateMerchant.xml create mode 100644 structs/xml/world/UpdatePlayerMail.xml create mode 100644 structs/xml/world/UpdateRecipeBook.xml create mode 100644 structs/xml/world/UpdateSign.xml create mode 100644 structs/xml/world/UpdateSkillBook.xml create mode 100644 structs/xml/world/UpdateSpellBook.xml create mode 100644 structs/xml/world/UpdateTarget.xml create mode 100644 structs/xml/world/UpdateTitle.xml create mode 100644 structs/xml/world/VoiceChatServer.xml create mode 100644 structs/xml/world/WaypointReplyMsg.xml create mode 100644 structs/xml/world/WaypointSelect.xml create mode 100644 structs/xml/world/WaypointUpdate.xml create mode 100644 structs/xml/world/Weakness.xml create mode 100644 structs/xml/world/WhoChannelQueryReply.xml create mode 100644 structs/xml/world/WhoQueryReply.xml create mode 100644 structs/xml/world/ZoneBgInstanceList.xml create mode 100644 structs/xml/world/ZoneChangeMsg.xml create mode 100644 structs/xml/world/ZoneInfo.xml create mode 100644 structs/xml/world/substruct_AASpellInfo.xml create mode 100644 structs/xml/world/substruct_info_template.xml create mode 100644 structs/xml/world/substruct_item_info.xml create mode 100644 structs/xml/world/substruct_node_info.xml create mode 100644 structs/xml/world/substruct_unknown5_info.xml diff --git a/structs/PARSER.md b/structs/PARSER.md new file mode 100644 index 0000000..8d2e394 --- /dev/null +++ b/structs/PARSER.md @@ -0,0 +1,284 @@ +# Packet Definition Parser + +Fast XML-like parser for binary packet structures with versioning and conditional fields. + +## Basic Syntax + +```xml + + + + + + + +``` + +## Field Types + +| Type | Size | Description | +|------|------|-------------| +| `u8`, `u16`, `u32`, `u64` | 1-8 bytes | Unsigned integers | +| `i8`, `i16`, `i32`, `i64` | 1-8 bytes | Signed integers | +| `f32`, `f64`, `double` | 4-8 bytes | Floating point | +| `str8`, `str16`, `str32` | Variable | Length-prefixed strings | +| `char` | Fixed | Fixed-size byte array | +| `color` | 3 bytes | RGB color (r,g,b) | +| `equip` | 8 bytes | Equipment item | +| `array` | Variable | Array of substructures | + +## Multiple Field Names + +```xml + + +``` + +## Conditional Fields + +```xml + + + + +``` + +### Condition Types + +**Flag Conditions:** +- `flag:name` - Flag is set +- `!flag:name` - Flag not set + +**Variable Conditions:** +- `var:name` - Variable exists and is non-zero +- `!var:name` - Variable doesn't exist or is zero + +**Version Conditions:** +- `version>=562` - Version comparisons +- `version<1200` - Supports `>=`, `<=`, `>`, `<` + +**Value Comparisons:** +- `field>=value` - Numeric comparisons +- `field!=0` - Supports `>=`, `<=`, `>`, `<`, `==`, `!=` + +**String Length:** +- `name!>5` - String longer than 5 chars +- `name!<=100` - String 100 chars or less +- Supports `!>`, `!<`, `!>=`, `!<=`, `!=` + +**Bitwise Operations:** +- `field&0x01` - Bitwise AND with hex value + +**Complex Logic:** +- `cond1,cond2` - OR logic (comma-separated) +- `cond1&cond2` - AND logic (ampersand) +- `version>=562&level>10` - Multiple conditions + +**Array Context:** +- `item_type_%i!=0` - `%i` substitutes current array index + +## Groups + +Organize related fields with automatic prefixing: + +```xml + + + + + + +``` + +## Templates + +Define reusable field groups that can be injected into packets: + +```xml + + + + + + + + + +