# ShowEQ Import Notes:
#  ZERO THE FILE first
#  perl -pi -e 's/0x[0-9a-fA-F]{4}/0x0000/g' opcodes.conf
# Unknown Mapping:
# OP_Action2 -> OP_Damage
# OP_EnvDamage -> OP_Damage ---> might have been a one time mistake
# Name Differences:
# OP_CancelInvite -> OP_GroupCancelInvite
# OP_GMFind -> OP_FindPersonRequest
# OP_CommonMessage -> OP_ChannelMessage

OP_Unknown=0x0000
OP_ExploreUnknown=0x0000			# used for unknown explorer

# V = Verified correct
# C = Most likely correct
# U = Unsure, but should be correct or close

# world packets
# Required to reach Char Select:
OP_SendLoginInfo=0x0ff4				# C
OP_ApproveWorld=0x701f				# C
OP_LogServer=0x4762					# C
OP_SendCharInfo=0x0f14				# C
OP_ExpansionInfo=0x7519				# C
OP_GuildsList=0x5b0b				# C
OP_EnterWorld=0x1c20				# C
OP_PostEnterWorld=0x7c94			# C
OP_World_Client_CRC1=0x0ca5			# C
OP_World_Client_CRC2=0x1cb3			# C
OP_SendSpellChecksum=0x5bad			# C
OP_SendSkillCapsChecksum=0x5d24		# C

# Character Select Related:
OP_DeleteCharacter=0x0254			# C
OP_CharacterCreateRequest=0x4463	# C
OP_CharacterCreate=0x1513			# C
OP_RandomNameGenerator=0x3604		# C
OP_ApproveName=0x413f				# C

OP_MOTD=0x192e						# C
OP_SetChatServer=0x7f2b				# C
OP_SetChatServer2=0x11f3			# C
OP_ZoneServerInfo=0x5da4			# C
OP_WorldComplete=0x37db				# C
OP_WorldUnknown001=0x2c4c			# C
OP_FloatListThing=0x10b5			# C

# Reasons for Disconnect:
OP_ZoneUnavail=0x7930				# C
OP_WorldClientReady=0x1a84			# C
OP_CharacterStillInZone=0x0000		#
OP_WorldChecksumFailure=0x0000		#
OP_WorldLoginFailed=0x0000			#
OP_WorldLogout=0x0000				#
OP_WorldLevelTooHigh=0x0000			#
OP_CharInacessable=0x0000			#
OP_UserCompInfo=0x0000				#
# OP_SendExeChecksum=0x0000			#
# OP_SendBaseDataChecksum=0x0000	#

# Zone in opcodes
OP_AckPacket=0x3594					# C
OP_ZoneEntry=0x5a6b					# C
OP_ReqNewZone=0x43ac				# C
OP_NewZone=0x5ca5					# C
OP_ZoneSpawns=0x72f8				# C
OP_PlayerProfile=0x6022				# C
OP_TimeOfDay=0x6015					# C
OP_LevelUpdate=0x6a99				# C
OP_Stamina=0x3e50					# C
OP_LockoutTimerInfo=0x0000			#
OP_ZoneServerReady=0x0000			#

OP_RequestClientZoneChange=0x4885	# C
OP_ZoneChange=0x051b				# C

OP_ZoneInUnknown=0x0000				#
OP_LogoutReply=0x0000				#
OP_PreLogoutReply=0x0000			#

# Required to fully log in
OP_SpawnAppearance=0x10b7			# C
OP_TributeUpdate=0x399b				# C
OP_TributeTimer=0x4423				# C
OP_TaskDescription=0x7b77			# C
OP_TaskActivity=0x0525				# C
OP_CompletedTasks=0x5412			# C
OP_Weather=0x2641					# C
OP_SendAATable=0x322f				# C
OP_UpdateAA=0x466c					# C
OP_RespondAA=0x0142					# C
OP_ReqClientSpawn=0x1436			# C
OP_SpawnDoor=0x102f					# C
OP_GroundSpawn=0x33e5				# C
OP_SendZonepoints=0x5821			# C
OP_SendAAStats=0x57a3				# C
OP_WorldObjectsSent=0x7b73			# C
OP_BlockedBuffs=0x0baa				# C
OP_SendExpZonein=0x69cd				# C
OP_SendTributes=0x4786				# C
OP_TributeInfo=0x4cc6				# C
OP_SendGuildTributes=0x26c4			# C
OP_AAExpUpdate=0x3088				# C
OP_ExpUpdate=0x0e98					# C
OP_HPUpdate=0x538f					# C
OP_ManaChange=0x50c2				# C
OP_TGB=0x2d74						# C
OP_SpecialMesg=0x074f				# C
OP_GuildMemberList=0x51bc			# C
OP_GuildMOTD=0xd677					# C
OP_CharInventory=0x709d				# C
OP_WearChange=0x231f				# C
OP_ClientUpdate=0x7062				# C
OP_ClientReady=0x6759				# C
OP_SetServerFilter=0x7312			# C

# Guild Opcodes
OP_GetGuildMOTD=0x189e				# C
OP_GetGuildMOTDReply=0x7a16			# C
OP_GuildMemberUpdate=0x41c0			# C
OP_GuildInvite=0x4843				# C
OP_GuildRemove=0x2b9d				# C
OP_GuildPeace=0x3f21				# C
OP_SetGuildMOTD=0x481f				# C
OP_GuildList=0x5b0b					# C
OP_GuildWar=0x7bfb					# C
OP_GuildLeader=0x1055				# C
OP_GuildDelete=0x75d0				# C
OP_GuildInviteAccept=0x5f25			# C
OP_GuildDemote=0x15b2				# C
OP_GuildPublicNote=0x2dbd			# C
OP_GuildManageBanker=0x11bc			# C
OP_GuildBank=0x0fce					# C
OP_SetGuildRank=0x4ffe				# C
OP_GuildUpdateURLAndChannel=0x5422
OP_GuildMemberLevelUpdate=0x0000	#
OP_ZoneGuildList=0x0000				#
OP_GetGuildsList=0x0000				#
# OP_GuildManageRemove=0x0000		#
# OP_GuildManageAdd=0x0000			#
# OP_GuildManageStatus=0x0000		#

# GM/guide opcodes
OP_GMServers=0x6989					# C
OP_GMBecomeNPC=0x56e7				# C
OP_GMZoneRequest=0x4578				# C
OP_GMZoneRequest2=0x1912			# C
OP_GMGoto=0x0402					# C
OP_GMSearchCorpse=0x7872			# C
OP_GMHideMe=0x34a1					# C
OP_GMDelCorpse=0x0dda				# C
OP_GMApproval=0x72fa				# C
OP_GMToggle=0x7566					# C
OP_GMSummon=0x596d					# C
OP_GMEmoteZone=0x3e7c				# C
OP_GMEmoteWorld=0x3e7c				# C
OP_GMFind=0x6e27					# C
OP_GMKick=0x799c					# C
OP_GMKill=0x6685					# C
OP_GMNameChange=0x565d				# C
OP_GMLastName=0x3563				# C

OP_InspectAnswer=0x4938				# C
OP_Action2=0x7e4d					# C OP_Damage?
OP_BeginCast=0x0d5a					# C
OP_BuffFadeMsg=0x569a				# C
OP_ConsentResponse=0x6e47			# C
OP_MemorizeSpell=0x8543				# C
OP_SwapSpell=0x3fd2					# C
OP_CastSpell=0x3582					# C
OP_Consider=0x6024					# C
OP_FormattedMessage=0x1318			# C
OP_SimpleMessage=0x5448				# C
OP_Buff=0x7ea8						# C
OP_Illusion=0x48f9					# C
OP_MoneyOnCorpse=0x6546				# C
OP_RandomReply=0x6cdc				# C
OP_DenyResponse=0x7ce7				# C
OP_SkillUpdate=0x7f01				# C
OP_GMTrainSkillConfirm=0x7ae1		# C
OP_RandomReq=0x777c					# C
OP_Death=0x1b85						# C
OP_Bind_Wound=0x3969				# C
OP_GMTraining=0x7b64				# C
OP_GMEndTraining=0x3c02				# C
OP_GMTrainSkill=0x7686				# C
OP_Animation=0x47d3					# C
OP_Begging=0x6d37					# C
OP_Consent=0x6bb9					# C
OP_ConsentDeny=0x01e3				# C
OP_AutoFire=0x1bd4					# C
OP_PetCommands=0x3ad6				# C
OP_DeleteSpell=0x0736				# C
OP_Surname=0x7547					# C
OP_ClearSurname=0x2edd				# C
OP_FaceChange=0x5658				# C
OP_SenseHeading=0x3887				# C
OP_Action=0x2c27					# C
OP_ConsiderCorpse=0x37a7			# C
OP_HideCorpse=0x1842
OP_Bug=0x02b						# C
OP_Feedback=0x0d1d					# C
OP_Report=0x6884					# C
OP_Damage=0x7e4d					# C or OP_Action2?
OP_ChannelMessage=0x2e79			# C
OP_Assist=0x2b59					# C
OP_AssistGroup=0x5af6				# C
OP_MoveCoin=0x1fcd					# C
OP_ZonePlayerToBind=0x1d3f			# C
OP_KeyRing=0x0a18					# C
OP_WhoAllRequest=0x177a				# C
OP_WhoAllResponse=0x31f3			# C
OP_FriendsWho=0x6a90				# C
OP_ConfirmDelete=0x3d00				# C
OP_Logout=0x66e0					# C
OP_Rewind=0x4b7b					# C
OP_TargetCommand=0x17f7				# C
OP_InspectRequest=0x4892			# C
OP_Hide=0x1d22						# C
OP_Jump=0x6c16						# C
OP_Camp=0x3eec						# C
OP_Emote=0x7434						# C
OP_SetRunMode=0x07fb				# C
OP_BankerChange=0x21e9				# C
OP_TargetMouse=0x7bbb				# C
OP_MobHealth=0x47ea					# C
OP_InitialMobHealth=0x2d25			# C
OP_TargetHoTT=0x3ec7				# C
OP_TargetBuffs=0x3df8
OP_DeleteSpawn=0x3164				# C
OP_AutoAttack=0x3d86				# C
OP_AutoAttack2=0x4ca1				# C
OP_Consume=0x7ce4					# C
OP_MoveItem=0x7f56					# C
OP_DeleteItem=0x36f8				# C
OP_DeleteCharge=0x1df9				# C
OP_ItemPacket=0x34f8				# C
OP_ItemLinkResponse=0x2bad			# C
OP_ItemLinkClick=0x3c66				# C
OP_NewSpawn=0x5c29					# C
OP_Track=0x4817						# C
OP_TrackTarget=0x7337				# C
OP_TrackUnknown=0x7b56				# C
OP_ClickDoor=0x1516					# C
OP_MoveDoor=0x6e97					# C
OP_EnvDamage=0x5ac4					# C
OP_BoardBoat=0x5cd3					# C
OP_Forage=0x7b05					# C
OP_LeaveBoat=0x7554					# C
OP_ControlBoat=0x5bd9				# C
OP_SafeFallSuccess=0x6ad2			# C
OP_RezzComplete=0x42d0				# C
OP_RezzRequest=0x0976				# C
OP_RezzAnswer=0x6e1c				# C
OP_Shielding=0x2f6a					# C
OP_RequestDuel=0x79e0				# C
OP_MobRename=0x0a1d					# C
OP_AugmentItem=0x0370				# C
OP_WeaponEquip1=0x719e				# C
OP_WeaponEquip2=0x7b6e				# C
OP_WeaponUnequip2=0x19a8			# C
OP_ApplyPoison=0x405b				# C
OP_Save=0x5c85						# C
OP_TestBuff=0x7309
OP_DestructableRelated=0x5ea1
OP_CustomTitles=0x1b26				# C
OP_Split=0x53f9						# C
OP_YellForHelp=0x6f79				# C
OP_LoadSpellSet=0x7113				# C
OP_Bandolier=0x441c					# C
OP_PotionBelt=0x5db5				# C
OP_DuelResponse=0x1ebb				# C
OP_SaveOnZoneReq=0x6eff				# C
OP_ReadBook=0xa53e
OP_Dye=0x3672						# C
OP_InterruptCast=0x072f				# C
OP_AAAction=0x50d0					# C
OP_LeadershipExpToggle=0x34c5		# C
OP_LeadershipExpUpdate=0x69d0		# C
OP_PurchaseLeadershipAA=0x07b3		# C
OP_UpdateLeadershipAA=0x6948		# C
OP_MarkNPC=0x0d4b					# C
OP_ClearNPCMarks=0x5033				# C
OP_DoGroupLeadershipAbility=0x540b	# C
OP_GroupLeadershipAAUpdate=0x0c33
OP_DelegateAbility=0x0322			# C
OP_SetGroupTarget=0x521c			# C
OP_DuelResponse2=0x52b5				# C
OP_Charm=0x7108						# C
OP_Stun=0x2a6d						# C
OP_SendFindableNPCs=0x5360
OP_FindPersonRequest=0x3168			# C
OP_FindPersonReply=0x1ac8			# C
OP_Sound=0x303e						# C
OP_PetBuffWindow=0x2dd3				# C
OP_LevelAppearance=0x6dc3			# C
OP_Translocate=0x2042				# C
OP_Sacrifice=0x5805					# C
OP_PopupResponse=0x2caf				# C
OP_OnLevelMessage=0x1154			# C
OP_AugmentInfo=0x3683				# C
OP_Petition=0x31d1					# C
OP_SomeItemPacketMaybe=0x54e8		# C
OP_PVPStats=0x6a37					# C
OP_PVPLeaderBoardRequest=0x24cb		# C
OP_PVPLeaderBoardReply=0x6ac2		# C
OP_PVPLeaderBoardDetailsRequest=0x2a99	# C
OP_PVPLeaderBoardDetailsReply=0x5156	# C
OP_RestState=0x292f					# C
OP_RespawnWindow=0x268c				# C	was 0x1643
OP_DisciplineTimer=0x684c			# C
OP_LDoNButton=0x41b5				# C
OP_SetStartCity=0x7bf6				# C
OP_VoiceMacroIn=0x31b1				# C
OP_VoiceMacroOut=0x7880				# C
OP_ItemViewUnknown=0x21c7			# C
OP_VetRewardsAvaliable=0x4e4e		# C
OP_VetClaimRequest=0x771f			# C
OP_VetClaimReply=0x2f95				# C
OP_CrystalCountUpdate=0x2d0e		# C
OP_DisciplineUpdate=0x0000			#
OP_BecomeCorpse=0x0000				#
OP_MobUpdate=0x4656					# Unused?
OP_NPCMoveUpdate=0x22a7				#

# New Opcodes
OP_SpawnPositionUpdate=0x4656		#
OP_ManaUpdate=0x4b61				#
OP_EnduranceUpdate=0x02d6			#
OP_MobManaUpdate=0x2ac1				#
OP_MobEnduranceUpdate=0x6c5f		#


# Looting
OP_LootRequest=0x2701				# C
OP_EndLootRequest=0x6ad7			# C
OP_LootItem=0x2b5a					# C
OP_LootComplete=0x41a6				# C

# bazaar trader stuff stuff:
OP_BazaarSearch=0x4675				# C
OP_TraderDelItem=0x63c8				# C
OP_BecomeTrader=0x528f				# C
OP_TraderShop=0x7598				# C
OP_TraderItemUpdate=0x0000			#
OP_Trader=0x7092					# C
OP_ShopItem=0x0000					#
OP_TraderBuy=0x053a					# C
OP_Barter=0x4b49					#
OP_BazaarInspect=0x0000				#
OP_Bazaar=0x0000					#

OP_MarketPlace1=0x367b
OP_MarketPlace2=0x0e1d

# pc/npc trading
OP_TradeRequest=0x47ae				# C
OP_TradeAcceptClick=0x064a			# C
OP_TradeRequestAck=0x606a			# C
OP_TradeCoins=0x0149				# C
OP_FinishTrade=0x3ff6				# C
OP_CancelTrade=0x527e				# C
OP_TradeMoneyUpdate=0x7452			# C
OP_MoneyUpdate=0x2d1d				# C

# Sent after canceling trade or after closing tradeskill object
OP_FinishWindow=0x3c27				# C
OP_FinishWindow2=0x2f5d				# C

# Sent on Live for what seems to be item existance verification
# Ex. Before Right Click Effect happens from items
OP_ItemVerifyRequest=0x032a			# C
OP_ItemVerifyReply=0x7866			# C

# merchant crap
OP_ShopPlayerSell=0x0b27			# C
OP_ShopRequest=0x4194				# C
OP_ShopEnd=0x3753					# C
OP_ShopEndConfirm=0x7114			# C
OP_ShopPlayerBuy=0x436a				# C
OP_ShopDelItem=0x63c8				# C

# tradeskill stuff:
OP_ClickObject=0x5f0d				# C
OP_ClickObjectAction=0x5dbc			# C
OP_ClearObject=0x0b80				# C
OP_RecipeDetails=0x49f4				# C
OP_RecipesFavorite=0x1150			# C
OP_RecipesSearch=0x55dd				# C
OP_RecipeReply=0x0643				# C
OP_RecipeAutoCombine=0x1564			# C
OP_TradeSkillCombine=0x4212			# C

# Tribute Packets:
OP_OpenGuildTributeMaster=0x6361	# C
OP_OpenTributeMaster=0x2daa			# C
OP_SelectTribute=0x38b0				# C
OP_TributeItem=0x416b				# C
OP_TributeMoney=0x0b89				# C
OP_TributeToggle=0x45b3				# C
OP_TributePointUpdate=0x7d05		# C
OP_TributeNPC=0x0000				#
OP_GuildTributeInfo=0x0000			#
OP_OpenTributeReply=0x0000			#
# OP_GuildTributeStatus=0x0000		#

# Adventure packets:
OP_LeaveAdventure=0x2ab6			# C
OP_AdventureFinish=0x624c			# C
OP_AdventureInfoRequest=0x3a75		# C
OP_AdventureInfo=0x3a28				# C
OP_AdventureRequest=0x5a55			# C
OP_AdventureDetails=0x5ed3			# C
OP_AdventureData=0x05				# C
OP_AdventureUpdate=0x0dcd			# C
OP_AdventureMerchantRequest=0x0989	# C
OP_AdventureMerchantResponse=0x6ade	# C
OP_AdventureMerchantPurchase=0x23fc	# C
OP_AdventureMerchantSell=0x5363		# C
OP_AdventurePointsUpdate=0x6b7f		# C
OP_AdventureStatsRequest=0x7e45		# C
OP_AdventureStatsReply=0x6a30		# C
OP_AdventureLeaderboardRequest=0x7537	# C
OP_AdventureLeaderboardReply=0x7c87	# C

# Group Opcodes
OP_GroupDisband=0x47e7				# C
OP_GroupInvite=0x5d32				# C
OP_GroupFollow=0x321a				# C
OP_GroupUpdate=0x21be
OP_GroupUpdateB=0x7351
OP_GroupCancelInvite=0x5251			# C - Same as OP_CancelInvite?
OP_GroupAcknowledge=0x3e22			# C
OP_GroupDelete=0x58e6				#
OP_CancelInvite=0x5251				# C
OP_GroupFollow2=0x2736				# C
OP_GroupInvite2=0x548c				# C
OP_GroupDisbandYou=0xc56c
OP_GroupDisbandOther=0x162d
OP_GroupLeaderChange=0x7545
OP_GroupRoles=0x6b67
# LFG/LFP Opcodes
OP_LFGCommand=0x3288				# C
OP_LFGGetMatchesRequest=0x5613		# C
OP_LFGGetMatchesResponse=0x7d90		# C
OP_LFPGetMatchesRequest=0x0479		# C
OP_LFPGetMatchesResponse=0x16f5		# C
OP_LFPCommand=0x710e				# C
OP_LFGAppearance=0x0000				#
OP_LFGResponse=0x0000				#

# Raid Opcodes
OP_RaidInvite=0x3b52				# C
OP_RaidUpdate=0x32c6				# C
OP_RaidJoin=0x0000					#

# Button-push commands
OP_Taunt=0x1418						# C
OP_CombatAbility=0x24c5				# C
OP_SenseTraps=0x1e04				# C
OP_PickPocket=0x25f0				# C
OP_DisarmTraps=0x0000				#
OP_Disarm=0x6def					# C
OP_Sneak=0x03e7						# C
OP_Fishing=0x7093					# C
OP_InstillDoubt=0x2d41				# C
OP_FeignDeath=0x3f49				# C
OP_Mend=0x221a						# C
OP_LDoNOpen=0x6129					# C

# Task packets
OP_TaskActivityComplete=0x4df0		# C
OP_TaskMemberList=0x34ed			# C
OP_OpenNewTasksWindow=0x4dd5		# C
OP_AvaliableTask=0x2136				# C
OP_AcceptNewTask=0x5832				# C
OP_TaskHistoryRequest=0x29d7		# C
OP_TaskHistoryReply=0x3d2a			# C
OP_CancelTask=0x726b				# C
OP_DeclineAllTasks=0x0000			#
OP_Shroud=0x6d1f
OP_ShroudRemove=0x17f6
OP_ShroudUnknown1=0x169a
OP_ShroudUnknown2=0x4292
OP_ShroudClearAA=0x3bef
OP_ShroudSelectionWindow=0x4d79
OP_ShroudRequestStats=0x28ce
OP_ShroudRespondStats=0x33f2
OP_ShroudSelect=0x194f
# Title opcodes
OP_NewTitlesAvailable=0x4399		# C
OP_RequestTitles=0x7327				# C
OP_SendTitleList=0x158f				# C
OP_SetTitle=0x698a					# C
OP_SetTitleReply=0x4d3e				# C

# mail opcodes
OP_Command=0x0000					#
OP_MailboxHeader=0x0000				#
OP_MailHeader=0x0000				#
OP_MailBody=0x0000					#
OP_NewMail=0x0000					#
OP_SentConfirm=0x0000				#

# # # # # # # # # # #  Below this point should not be needed		# # # # # # # # # # #

# This section are all unknown in Titanium
OP_ForceFindPerson=0x0000			#
OP_LocInfo=0x0000					#
OP_ReloadUI=0x0000					#
OP_ItemName=0x0000					#
OP_ItemLinkText=0x0000				#
OP_MultiLineMsg=0x0000				#
OP_MendHPUpdate=0x0000				#
OP_TargetReject=0x0000				#
OP_SafePoint=0x0000					#
OP_IncreaseStats=0x0000				#
OP_ApproveZone=0x0000				#
OP_ZoneComplete=0x0000				#
OP_ClientError=0x0000				#
OP_DumpName=0x0000					#
OP_Heartbeat=0x0000					#
OP_CrashDump=0x0000					#
OP_LoginComplete=0x0000				#

# discovered opcodes not yet used:
OP_PickLockSuccess=0x0000			#
OP_PlayMP3=0x0000					#
OP_ReclaimCrystals=0x0000			#
OP_DynamicWall=0x0000				#
OP_OpenDiscordMerchant=0x0000		#
OP_DiscordMerchantInventory=0x0000	#
OP_GiveMoney=0x0000					#
OP_RequestKnowledgeBase=0x0000		#
OP_KnowledgeBase=0x0000				#
OP_SlashAdventure=0x0000			# /adventure
OP_BecomePVPPrompt=0x0000			#
OP_MoveLogRequest=0x0000			# gone I think
OP_MoveLogDisregard=0x0000			# gone I think

# named unknowns, to make looking for real unknown easier
OP_AnnoyingZoneUnknown=0x0000		#
OP_Some6ByteHPUpdate=0x0000			# seems to happen when you target group members
OP_QueryResponseThing=0x0000		#


#  realityincarnate: these are just here to stop annoying several thousand byte packet dumps
#OP_LoginUnknown1=0x5bad			# U OP_SendSpellChecksum
#OP_LoginUnknown2=0x5d24			# U OP_SendSkillCapsChecksum

# Petition Opcodes
OP_PetitionSearch=0x0000			# search term for petition
OP_PetitionSearchResults=0x0000		# (list of?) matches from search
OP_PetitionSearchText=0x0000		# text results of search

OP_PetitionUpdate=0x0000			#
OP_PetitionCheckout=0x0000			#
OP_PetitionCheckIn=0x0000			#
OP_PetitionQue=0x0000				#
OP_PetitionUnCheckout=0x0000		#
OP_PetitionDelete=0x0000			#
OP_DeletePetition=0x0000			#
OP_PetitionResolve=0x0000			#
OP_PDeletePetition=0x0000			#
OP_PetitionBug=0x0000				#
OP_PetitionRefresh=0x0000			#
OP_PetitionCheckout2=0x0000			#
OP_PetitionViewPetition=0x0000		#

# Login opcodes
OP_SessionReady=0x0001				#
OP_Login=0x0002						#
OP_ServerListRequest=0x0004			#
OP_PlayEverquestRequest=0x000d		#
OP_PlayEverquestResponse=0x0021		#
OP_ChatMessage=0x0016				#
OP_LoginAccepted=0x0017				#
OP_ServerListResponse=0x0018		#
OP_Poll=0x0029						#
OP_EnterChat=0x000f					#
OP_PollResponse=0x0011				#

# raw opcodes
OP_RAWSessionRequest=0x0000			#
OP_RAWSessionResponse=0x0000		#
OP_RAWCombined=0x0000				#
OP_RAWSessionDisconnect=0x0000		#
OP_RAWKeepAlive=0x0000				#
OP_RAWSessionStatRequest=0x0000		#
OP_RAWSessionStatResponse=0x0000	#
OP_RAWPacket=0x0000					#
OP_RAWFragment=0x0000				#
OP_RAWOutOfOrderAck=0x0000			#
OP_RAWAck=0x0000					#
OP_RAWAppCombined=0x0000			#
OP_RAWOutOfSession=0x0000			#

# we need to document the differences between these packets to make identifying them easier
OP_Some3ByteHPUpdate=0x0000			# initial HP update for mobs
OP_InitialHPUpdate=0x0000			#

# Mercenary Opcodes
OP_MercenaryDataRequest=0x4717                  #
OP_MercenaryDataResponse=0x1715                 #
OP_MercenaryHire=0x0bfd                         #
OP_MercenaryAssign=0x6188                       #
OP_MercenaryTimer=0x116d                        #
OP_MercenaryUnknown1=0x28c7                     #
