wireshark/epan/dissectors/packet-woww.c

20337 lines
906 KiB
C

/* packet-woww.c
* Routines for World of Warcraft World dissection
* Copyright 2021, Gtker <woww@gtker.com>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
/*
* The protocol is used for World of Warcraft World packets.
* These are seen when a client is connected to a world server and plays the game.
* The WOW protocol (no extra W) packets are Login packets, and they are handled in
* the packet-wow.c file.
*
* More info on world packets and login packets:
* https://wowdev.wiki/World_Packet
* https://wowdev.wiki/Login_Packet
*
* Currently this dissector is valid for 1.12.x, the most popular Vanilla version.
*
* All World packets contain a header with:
* * A 16 bit big endian size field.
* * A (32 or 16 bit) little endian opcode field.
* Server to client opcodes are 16 bits while client to server opcodes are 32 bits.
*
* All world packets other than SMSG_AUTH_CHALLENGE and CMSG_AUTH_SESSION have
* "encrypted" headers based on a 40 byte session key, however it is relatively
* easily broken.
*
* SMSG packets are Server messages (from server) and CMSG packets are Client messages
* (from client). MSG packets can be either.
*
* # SESSION KEY DEDUCTION:
*
* The header is encrypted through the formula `E = (x ^ S) + L` where:
* * E is the encrypted value.
* * x is the plain unencrypted value.
* * S is a byte of the session key.
* * L is the last encrypted value.
*
* The header is decrypted through the formula `x = (E - L) ^ S` with the same values.
*
* Notably, this allows us to deduce the session key value S if we know what the
* unencrypted value x is. The L value is simply the last encrypted value sent.
*
* Fortunately, the client sends opcodes as 32bit little endian values, but there are no
* opcodes that use the two most significant bytes meaning we can always count on them being 0.
* This means we can now deduce the session key value S through `S = 0 ^ (E - L)` (where 0 is x).
* Because of this we can deduce 2 bytes of the session key every client packet.
*/
#include <config.h>
#include <epan/packet.h>
#include <epan/conversation.h>
#include <epan/wmem_scopes.h>
#include <ptvcursor.h>
void proto_reg_handoff_woww(void);
void proto_register_woww(void);
static int proto_woww = -1;
/* Fields that all packets have */
static int hf_woww_size = -1;
static int hf_woww_opcode = -1;
static int hf_woww_string_length = -1;
static int hf_woww_aura_mask = -1;
static int hf_woww_aura = -1;
static int hf_woww_amount_of_masks = -1;
static int hf_woww_update_mask = -1;
static int hf_woww_update_mask_value = -1;
/* AUTOGENERATED_START_HF */
static int hf_woww_absorb = -1;
static int hf_woww_absorbed = -1;
static int hf_woww_absorbed_damage = -1;
static int hf_woww_action = -1;
static int hf_woww_action_bar = -1;
static int hf_woww_action_bars = -1;
static int hf_woww_action_type = -1;
static int hf_woww_activate_taxi_reply = -1;
static int hf_woww_actual_roll = -1;
static int hf_woww_addon_crc = -1;
static int hf_woww_addon_extra_crc = -1;
static int hf_woww_addon_has_signature = -1;
static int hf_woww_addon_name = -1;
static int hf_woww_addon_type = -1;
static int hf_woww_agility = -1;
static int hf_woww_ai_reaction = -1;
static int hf_woww_allow_movement = -1;
static int hf_woww_allowed_class = -1;
static int hf_woww_allowed_classes = -1;
static int hf_woww_allowed_genders = -1;
static int hf_woww_allowed_guild_id = -1;
static int hf_woww_allowed_maximum_level = -1;
static int hf_woww_allowed_minimum_level = -1;
static int hf_woww_allowed_race = -1;
static int hf_woww_allowed_races = -1;
static int hf_woww_ammo_display_id = -1;
static int hf_woww_ammo_inventory_type = -1;
static int hf_woww_ammo_type = -1;
static int hf_woww_amount = -1;
static int hf_woww_amount_bought = -1;
static int hf_woww_amount_for_sale = -1;
static int hf_woww_amount_of_accounts_in_guild = -1;
static int hf_woww_amount_of_auras = -1;
static int hf_woww_amount_of_carriers = -1;
static int hf_woww_amount_of_characters = -1;
static int hf_woww_amount_of_characters_in_guild = -1;
static int hf_woww_amount_of_choice_item_rewards = -1;
static int hf_woww_amount_of_cooldowns = -1;
static int hf_woww_amount_of_damages = -1;
static int hf_woww_amount_of_effects = -1;
static int hf_woww_amount_of_emotes = -1;
static int hf_woww_amount_of_entries = -1;
static int hf_woww_amount_of_events = -1;
static int hf_woww_amount_of_extra_fields = -1;
static int hf_woww_amount_of_factions = -1;
static int hf_woww_amount_of_friends = -1;
static int hf_woww_amount_of_gossip_items = -1;
static int hf_woww_amount_of_hits = -1;
static int hf_woww_amount_of_ignored = -1;
static int hf_woww_amount_of_item_rewards = -1;
static int hf_woww_amount_of_items = -1;
static int hf_woww_amount_of_logs = -1;
static int hf_woww_amount_of_mails = -1;
static int hf_woww_amount_of_members = -1;
static int hf_woww_amount_of_misses = -1;
static int hf_woww_amount_of_nodes = -1;
static int hf_woww_amount_of_objects = -1;
static int hf_woww_amount_of_outbid_items = -1;
static int hf_woww_amount_of_petitions = -1;
static int hf_woww_amount_of_pets = -1;
static int hf_woww_amount_of_players = -1;
static int hf_woww_amount_of_quests = -1;
static int hf_woww_amount_of_raid_infos = -1;
static int hf_woww_amount_of_reactions = -1;
static int hf_woww_amount_of_records = -1;
static int hf_woww_amount_of_required_items = -1;
static int hf_woww_amount_of_rights = -1;
static int hf_woww_amount_of_signatures = -1;
static int hf_woww_amount_of_spells = -1;
static int hf_woww_amount_of_states = -1;
static int hf_woww_amount_of_strings = -1;
static int hf_woww_amount_of_targets = -1;
static int hf_woww_amount_of_teammates = -1;
static int hf_woww_amount_of_zones = -1;
static int hf_woww_angle = -1;
static int hf_woww_animation_id = -1;
static int hf_woww_answer = -1;
static int hf_woww_answer_comment = -1;
static int hf_woww_apply = -1;
static int hf_woww_arcane_resistance = -1;
static int hf_woww_area = -1;
static int hf_woww_armor = -1;
static int hf_woww_attacker = -1;
static int hf_woww_attacker_guid = -1;
static int hf_woww_auction_duration_in_minutes = -1;
static int hf_woww_auction_house_id = -1;
static int hf_woww_auction_id = -1;
static int hf_woww_auction_main_category = -1;
static int hf_woww_auction_out_bid = -1;
static int hf_woww_auction_slot_id = -1;
static int hf_woww_auction_sub_category = -1;
static int hf_woww_auctioneer = -1;
static int hf_woww_auctioneer_guid = -1;
static int hf_woww_aura_duration = -1;
static int hf_woww_aura_slot = -1;
static int hf_woww_aura_type = -1;
static int hf_woww_auto_decline_time_in_msecs = -1;
static int hf_woww_auto_finish = -1;
static int hf_woww_average_wait_time_in_ms = -1;
static int hf_woww_background_color = -1;
static int hf_woww_backwards_running_speed = -1;
static int hf_woww_backwards_swimming_speed = -1;
static int hf_woww_bag = -1;
static int hf_woww_bag_family = -1;
static int hf_woww_bag_guid = -1;
static int hf_woww_bag_index = -1;
static int hf_woww_bag_slot = -1;
static int hf_woww_bag_type_subclass = -1;
static int hf_woww_battlefield_port_action = -1;
static int hf_woww_battleground_bracket = -1;
static int hf_woww_battleground_end_status = -1;
static int hf_woww_battleground_winner = -1;
static int hf_woww_battlegrounds = -1;
static int hf_woww_battlemaster = -1;
static int hf_woww_bg_type_id = -1;
static int hf_woww_bid = -1;
static int hf_woww_bidder = -1;
static int hf_woww_billing_flags = -1;
static int hf_woww_billing_rested = -1;
static int hf_woww_billing_time = -1;
static int hf_woww_block = -1;
static int hf_woww_blocked = -1;
static int hf_woww_blocked_amount = -1;
static int hf_woww_body = -1;
static int hf_woww_body_text = -1;
static int hf_woww_bonding = -1;
static int hf_woww_bonus_honor = -1;
static int hf_woww_border_color = -1;
static int hf_woww_border_style = -1;
static int hf_woww_bug_type = -1;
static int hf_woww_build = -1;
static int hf_woww_button = -1;
static int hf_woww_buy_bank_slot_result = -1;
static int hf_woww_buy_price = -1;
static int hf_woww_buy_result = -1;
static int hf_woww_buyback_slot = -1;
static int hf_woww_buyout = -1;
static int hf_woww_buyout_amount = -1;
static int hf_woww_cash_on_delivery_amount = -1;
static int hf_woww_cast_failure_reason = -1;
static int hf_woww_cast_flags = -1;
static int hf_woww_cast_item = -1;
static int hf_woww_caster = -1;
static int hf_woww_caster_guid = -1;
static int hf_woww_caster_is_spirit_healer = -1;
static int hf_woww_category_cooldown_in_msecs = -1;
static int hf_woww_channel = -1;
static int hf_woww_channel_flags = -1;
static int hf_woww_channel_member_flags = -1;
static int hf_woww_channel_name = -1;
static int hf_woww_channel_password = -1;
static int hf_woww_character_flags = -1;
static int hf_woww_character_guid = -1;
static int hf_woww_character_name = -1;
static int hf_woww_charter_display_id = -1;
static int hf_woww_charter_entry = -1;
static int hf_woww_charter_owner = -1;
static int hf_woww_chat_credit = -1;
static int hf_woww_chat_data_line_count = -1;
static int hf_woww_chat_data_size_uncompressed = -1;
static int hf_woww_chat_notify = -1;
static int hf_woww_chat_type = -1;
static int hf_woww_checked_timestamp = -1;
static int hf_woww_cinematic_sequence_id = -1;
static int hf_woww_civilian = -1;
static int hf_woww_class = -1;
static int hf_woww_class_mask = -1;
static int hf_woww_client_instance_id = -1;
static int hf_woww_client_proof = -1;
static int hf_woww_client_seed = -1;
static int hf_woww_code = -1;
static int hf_woww_coded = -1;
static int hf_woww_comment = -1;
static int hf_woww_compressed_chat_data = -1;
static int hf_woww_container_slots = -1;
static int hf_woww_content = -1;
static int hf_woww_cooldown_count = -1;
static int hf_woww_cooldown_in_msecs = -1;
static int hf_woww_cooldown_time_in_msecs = -1;
static int hf_woww_corpse_query_result = -1;
static int hf_woww_corpse_target_ally = -1;
static int hf_woww_corpse_target_enemy = -1;
static int hf_woww_cos_angle = -1;
static int hf_woww_cost_in_copper = -1;
static int hf_woww_count = -1;
static int hf_woww_countdown_time = -1;
static int hf_woww_counter = -1;
static int hf_woww_create_id = -1;
static int hf_woww_created_day = -1;
static int hf_woww_created_month = -1;
static int hf_woww_created_year = -1;
static int hf_woww_creature = -1;
static int hf_woww_creature_entry = -1;
static int hf_woww_creature_family = -1;
static int hf_woww_creature_guid = -1;
static int hf_woww_creature_id = -1;
static int hf_woww_creature_rank = -1;
static int hf_woww_creature_type = -1;
static int hf_woww_critical = -1;
static int hf_woww_current_health = -1;
static int hf_woww_current_power = -1;
static int hf_woww_damage = -1;
static int hf_woww_damage_float = -1;
static int hf_woww_damage_maximum = -1;
static int hf_woww_damage_minimum = -1;
static int hf_woww_damage_state = -1;
static int hf_woww_damage_type = -1;
static int hf_woww_damage_uint = -1;
static int hf_woww_data = -1;
static int hf_woww_data_type = -1;
static int hf_woww_datetime = -1;
static int hf_woww_days_since_last_updated = -1;
static int hf_woww_days_since_oldest_ticket_creation = -1;
static int hf_woww_days_since_ticket_creation = -1;
static int hf_woww_deadline = -1;
static int hf_woww_deaths = -1;
static int hf_woww_decompressed_addon_info_size = -1;
static int hf_woww_delay = -1;
static int hf_woww_delay_in_seconds = -1;
static int hf_woww_delay_time = -1;
static int hf_woww_description = -1;
static int hf_woww_destination_bag = -1;
static int hf_woww_destination_node = -1;
static int hf_woww_destination_position_x = -1;
static int hf_woww_destination_position_y = -1;
static int hf_woww_destination_position_z = -1;
static int hf_woww_destination_slot = -1;
static int hf_woww_destionation_slot = -1;
static int hf_woww_details = -1;
static int hf_woww_display_id = -1;
static int hf_woww_duel_winner_reason = -1;
static int hf_woww_durability = -1;
static int hf_woww_duration = -1;
static int hf_woww_eff = -1;
static int hf_woww_emblem_color = -1;
static int hf_woww_emblem_style = -1;
static int hf_woww_emote_delay = -1;
static int hf_woww_emote_delay_in_msecs = -1;
static int hf_woww_emote_enum = -1;
static int hf_woww_emote_int = -1;
static int hf_woww_enable_next = -1;
static int hf_woww_enable_pvp = -1;
static int hf_woww_enabled = -1;
static int hf_woww_enchantment = -1;
static int hf_woww_end_text = -1;
static int hf_woww_ended_without_interruption = -1;
static int hf_woww_enemy = -1;
static int hf_woww_energy = -1;
static int hf_woww_entry = -1;
static int hf_woww_entry_id = -1;
static int hf_woww_environmental_damage_type = -1;
static int hf_woww_equipment_display_id = -1;
static int hf_woww_equipped_item_class = -1;
static int hf_woww_equipped_item_inventory_type_mask = -1;
static int hf_woww_equipped_item_subclass_mask = -1;
static int hf_woww_event_descriptions = -1;
static int hf_woww_exp_group_bonus = -1;
static int hf_woww_experience = -1;
static int hf_woww_experience_award_type = -1;
static int hf_woww_experience_reward = -1;
static int hf_woww_experience_without_rested = -1;
static int hf_woww_expiration_time = -1;
static int hf_woww_extend_flag = -1;
static int hf_woww_face = -1;
static int hf_woww_facial_hair = -1;
static int hf_woww_faction_flag = -1;
static int hf_woww_faction_id = -1;
static int hf_woww_fall_time = -1;
static int hf_woww_far_sight_operation = -1;
static int hf_woww_fields = -1;
static int hf_woww_fire_resistance = -1;
static int hf_woww_first_bag_display_id = -1;
static int hf_woww_first_bag_inventory_id = -1;
static int hf_woww_first_login = -1;
static int hf_woww_first_rank = -1;
static int hf_woww_flags = -1;
static int hf_woww_focus = -1;
static int hf_woww_friend_name = -1;
static int hf_woww_friend_result = -1;
static int hf_woww_friend_status = -1;
static int hf_woww_frost_resistance = -1;
static int hf_woww_gain_multiplier = -1;
static int hf_woww_gender = -1;
static int hf_woww_gift_bag_index = -1;
static int hf_woww_gift_slot = -1;
static int hf_woww_gift_wrapper = -1;
static int hf_woww_gm_ticket_escalation_status = -1;
static int hf_woww_gm_ticket_queue_status = -1;
static int hf_woww_gm_ticket_response = -1;
static int hf_woww_gm_ticket_status = -1;
static int hf_woww_gm_ticket_status_response = -1;
static int hf_woww_gm_ticket_type = -1;
static int hf_woww_gold = -1;
static int hf_woww_gossip_list_id = -1;
static int hf_woww_grade = -1;
static int hf_woww_greeting = -1;
static int hf_woww_group_loot_setting = -1;
static int hf_woww_group_member_online_status = -1;
static int hf_woww_group_number = -1;
static int hf_woww_group_type = -1;
static int hf_woww_group_update_flags = -1;
static int hf_woww_guid = -1;
static int hf_woww_guids = -1;
static int hf_woww_guild = -1;
static int hf_woww_guild_charter_cost = -1;
static int hf_woww_guild_command = -1;
static int hf_woww_guild_command_result = -1;
static int hf_woww_guild_emblem_result = -1;
static int hf_woww_guild_event = -1;
static int hf_woww_guild_guid = -1;
static int hf_woww_guild_id = -1;
static int hf_woww_guild_info = -1;
static int hf_woww_guild_member_status = -1;
static int hf_woww_guild_name = -1;
static int hf_woww_hair_color = -1;
static int hf_woww_hair_style = -1;
static int hf_woww_happiness = -1;
static int hf_woww_has_been_saved = -1;
static int hf_woww_has_transport = -1;
static int hf_woww_health = -1;
static int hf_woww_highest_bid = -1;
static int hf_woww_highest_bidder = -1;
static int hf_woww_hit_info = -1;
static int hf_woww_hits = -1;
static int hf_woww_holy_resistance = -1;
static int hf_woww_homebind_timer = -1;
static int hf_woww_honor_points = -1;
static int hf_woww_honorable_kills = -1;
static int hf_woww_horizontal_speed = -1;
static int hf_woww_icon = -1;
static int hf_woww_id = -1;
static int hf_woww_ignore_name = -1;
static int hf_woww_ignored = -1;
static int hf_woww_inactive = -1;
static int hf_woww_index = -1;
static int hf_woww_info_block = -1;
static int hf_woww_info_type = -1;
static int hf_woww_initiator_guid = -1;
static int hf_woww_initiator_name = -1;
static int hf_woww_instance_id = -1;
static int hf_woww_instance_reset_failed_reason = -1;
static int hf_woww_intellect = -1;
static int hf_woww_interrupted_spell = -1;
static int hf_woww_inventory_result = -1;
static int hf_woww_inventory_type = -1;
static int hf_woww_invited_player = -1;
static int hf_woww_is_applied = -1;
static int hf_woww_is_frozen = -1;
static int hf_woww_is_online = -1;
static int hf_woww_is_wrapped = -1;
static int hf_woww_issue_date = -1;
static int hf_woww_item = -1;
static int hf_woww_item_bag_index = -1;
static int hf_woww_item_charges = -1;
static int hf_woww_item_class = -1;
static int hf_woww_item_count = -1;
static int hf_woww_item_creator = -1;
static int hf_woww_item_display_id = -1;
static int hf_woww_item_display_info = -1;
static int hf_woww_item_enchant_id = -1;
static int hf_woww_item_enchantment = -1;
static int hf_woww_item_entry = -1;
static int hf_woww_item_guid = -1;
static int hf_woww_item_icon = -1;
static int hf_woww_item_id = -1;
static int hf_woww_item_level = -1;
static int hf_woww_item_limit_category_id = -1;
static int hf_woww_item_name = -1;
static int hf_woww_item_owner = -1;
static int hf_woww_item_quality = -1;
static int hf_woww_item_random_properties_id = -1;
static int hf_woww_item_random_property_id = -1;
static int hf_woww_item_random_suffix = -1;
static int hf_woww_item_random_suffix_id = -1;
static int hf_woww_item_set = -1;
static int hf_woww_item_slot = -1;
static int hf_woww_item_spell_charges = -1;
static int hf_woww_item_stack_count = -1;
static int hf_woww_item_stack_size = -1;
static int hf_woww_item_stat_type = -1;
static int hf_woww_item_stat_value = -1;
static int hf_woww_item_sub_class = -1;
static int hf_woww_item_sub_class_mask = -1;
static int hf_woww_item_suffix_factor = -1;
static int hf_woww_item_target = -1;
static int hf_woww_item_target_entry = -1;
static int hf_woww_item_template = -1;
static int hf_woww_item_text_id = -1;
static int hf_woww_item_trade_target = -1;
static int hf_woww_items_required = -1;
static int hf_woww_join_as_group = -1;
static int hf_woww_key_version = -1;
static int hf_woww_kill_count = -1;
static int hf_woww_killing_blows = -1;
static int hf_woww_lag = -1;
static int hf_woww_language = -1;
static int hf_woww_language_id = -1;
static int hf_woww_last_week_honor = -1;
static int hf_woww_last_week_honorable = -1;
static int hf_woww_leader = -1;
static int hf_woww_level = -1;
static int hf_woww_level_played_time = -1;
static int hf_woww_lifetime_dishonorable = -1;
static int hf_woww_lifetime_honorable = -1;
static int hf_woww_list_from = -1;
static int hf_woww_list_start_item = -1;
static int hf_woww_listed_players = -1;
static int hf_woww_living_orientation = -1;
static int hf_woww_location_name = -1;
static int hf_woww_lock_id = -1;
static int hf_woww_log_format = -1;
static int hf_woww_logout_result = -1;
static int hf_woww_logout_speed = -1;
static int hf_woww_loot = -1;
static int hf_woww_loot_master = -1;
static int hf_woww_loot_method = -1;
static int hf_woww_loot_slot = -1;
static int hf_woww_looted_target_guid = -1;
static int hf_woww_loyalty = -1;
static int hf_woww_mail_id = -1;
static int hf_woww_mail_template_id = -1;
static int hf_woww_mail_type = -1;
static int hf_woww_mailbox = -1;
static int hf_woww_mailbox_guid = -1;
static int hf_woww_mailbox_id = -1;
static int hf_woww_mana = -1;
static int hf_woww_map = -1;
static int hf_woww_master_loot = -1;
static int hf_woww_material = -1;
static int hf_woww_max_count = -1;
static int hf_woww_max_durability = -1;
static int hf_woww_max_health = -1;
static int hf_woww_max_items = -1;
static int hf_woww_max_level_money_reward = -1;
static int hf_woww_max_power = -1;
static int hf_woww_maximum = -1;
static int hf_woww_maximum_level = -1;
static int hf_woww_maximum_signatures = -1;
static int hf_woww_meeting_stone_failure = -1;
static int hf_woww_meeting_stone_status = -1;
static int hf_woww_member = -1;
static int hf_woww_message = -1;
static int hf_woww_message_id = -1;
static int hf_woww_message_of_the_day = -1;
static int hf_woww_minimum = -1;
static int hf_woww_minimum_bid = -1;
static int hf_woww_minimum_level = -1;
static int hf_woww_minimum_signatures = -1;
static int hf_woww_misc = -1;
static int hf_woww_misc_value = -1;
static int hf_woww_money = -1;
static int hf_woww_money_in_trade = -1;
static int hf_woww_money_reward = -1;
static int hf_woww_monster = -1;
static int hf_woww_monster_move_type = -1;
static int hf_woww_monster_name = -1;
static int hf_woww_motd = -1;
static int hf_woww_mount_result = -1;
static int hf_woww_move_event = -1;
static int hf_woww_movement_counter = -1;
static int hf_woww_movement_flags = -1;
static int hf_woww_name = -1;
static int hf_woww_nature_resistance = -1;
static int hf_woww_nearest_node = -1;
static int hf_woww_new_guild_leader_name = -1;
static int hf_woww_new_item_chat_alert = -1;
static int hf_woww_new_item_creation_type = -1;
static int hf_woww_new_item_source = -1;
static int hf_woww_new_level = -1;
static int hf_woww_new_name = -1;
static int hf_woww_new_owner = -1;
static int hf_woww_new_speed = -1;
static int hf_woww_new_spell_id = -1;
static int hf_woww_next_page_id = -1;
static int hf_woww_next_quest_in_chain = -1;
static int hf_woww_next_resurrect_time = -1;
static int hf_woww_node_count = -1;
static int hf_woww_nodes = -1;
static int hf_woww_note = -1;
static int hf_woww_notification = -1;
static int hf_woww_npc = -1;
static int hf_woww_npc_guid = -1;
static int hf_woww_number_of_battlegrounds = -1;
static int hf_woww_number_of_choices = -1;
static int hf_woww_object_target = -1;
static int hf_woww_object_target_locked = -1;
static int hf_woww_object_type = -1;
static int hf_woww_objective_text = -1;
static int hf_woww_objective_texts = -1;
static int hf_woww_objectives = -1;
static int hf_woww_offer_reward_text = -1;
static int hf_woww_officer_note = -1;
static int hf_woww_old_mover = -1;
static int hf_woww_old_spell_id = -1;
static int hf_woww_online_players = -1;
static int hf_woww_op = -1;
static int hf_woww_opponent_name = -1;
static int hf_woww_orientation = -1;
static int hf_woww_out_bid = -1;
static int hf_woww_outbid_item_ids = -1;
static int hf_woww_outfit_id = -1;
static int hf_woww_own_flags = -1;
static int hf_woww_owner_guid = -1;
static int hf_woww_padding = -1;
static int hf_woww_page_id = -1;
static int hf_woww_page_material = -1;
static int hf_woww_page_text = -1;
static int hf_woww_party_operation = -1;
static int hf_woww_party_result = -1;
static int hf_woww_party_status = -1;
static int hf_woww_periodic_log = -1;
static int hf_woww_pet = -1;
static int hf_woww_pet_command_state = -1;
static int hf_woww_pet_current_health = -1;
static int hf_woww_pet_current_power = -1;
static int hf_woww_pet_display_id = -1;
static int hf_woww_pet_enabled = -1;
static int hf_woww_pet_family = -1;
static int hf_woww_pet_feedback = -1;
static int hf_woww_pet_guid = -1;
static int hf_woww_pet_level = -1;
static int hf_woww_pet_max_health = -1;
static int hf_woww_pet_max_power = -1;
static int hf_woww_pet_name = -1;
static int hf_woww_pet_name_timestamp = -1;
static int hf_woww_pet_number = -1;
static int hf_woww_pet_react_state = -1;
static int hf_woww_pet_slot = -1;
static int hf_woww_pet_talk_reason = -1;
static int hf_woww_pet_tame_failure_reason = -1;
static int hf_woww_petition = -1;
static int hf_woww_petition_guid = -1;
static int hf_woww_petition_result = -1;
static int hf_woww_pitch = -1;
static int hf_woww_player = -1;
static int hf_woww_player_chat_tag = -1;
static int hf_woww_player_guid = -1;
static int hf_woww_player_name = -1;
static int hf_woww_player_rank = -1;
static int hf_woww_player_with_killing_blow = -1;
static int hf_woww_point_map_id = -1;
static int hf_woww_point_opt = -1;
static int hf_woww_position = -1;
static int hf_woww_position_x = -1;
static int hf_woww_position_x_int = -1;
static int hf_woww_position_y = -1;
static int hf_woww_position_y_int = -1;
static int hf_woww_power = -1;
static int hf_woww_power_type = -1;
static int hf_woww_price = -1;
static int hf_woww_probability = -1;
static int hf_woww_public_key = -1;
static int hf_woww_public_note = -1;
static int hf_woww_pvp_rank = -1;
static int hf_woww_quest_completable = -1;
static int hf_woww_quest_failed_reason = -1;
static int hf_woww_quest_flags = -1;
static int hf_woww_quest_giver_status = -1;
static int hf_woww_quest_icon = -1;
static int hf_woww_quest_id = -1;
static int hf_woww_quest_level = -1;
static int hf_woww_quest_method = -1;
static int hf_woww_quest_party_message = -1;
static int hf_woww_quest_title = -1;
static int hf_woww_quest_type = -1;
static int hf_woww_question_id = -1;
static int hf_woww_queue_position = -1;
static int hf_woww_queue_slot = -1;
static int hf_woww_race = -1;
static int hf_woww_race_mask = -1;
static int hf_woww_racial_leader = -1;
static int hf_woww_rage = -1;
static int hf_woww_raid_group_error = -1;
static int hf_woww_raid_instance_message = -1;
static int hf_woww_raid_target_index = -1;
static int hf_woww_raid_target_update_type = -1;
static int hf_woww_random_property = -1;
static int hf_woww_random_property_id = -1;
static int hf_woww_ranged_range_modification = -1;
static int hf_woww_rank = -1;
static int hf_woww_rank_id = -1;
static int hf_woww_rank_name = -1;
static int hf_woww_rank_names = -1;
static int hf_woww_rank_progress_bar = -1;
static int hf_woww_raw_data = -1;
static int hf_woww_read_by_gm = -1;
static int hf_woww_realm_name = -1;
static int hf_woww_receiver = -1;
static int hf_woww_records = -1;
static int hf_woww_reputation_id = -1;
static int hf_woww_reputation_list_id = -1;
static int hf_woww_reputation_objective_faction = -1;
static int hf_woww_reputation_objective_value = -1;
static int hf_woww_reputation_rank = -1;
static int hf_woww_request_items_text = -1;
static int hf_woww_requested_rank = -1;
static int hf_woww_required_city_rank = -1;
static int hf_woww_required_honor_rank = -1;
static int hf_woww_required_item_count = -1;
static int hf_woww_required_item_id = -1;
static int hf_woww_required_kill_count = -1;
static int hf_woww_required_level = -1;
static int hf_woww_required_money = -1;
static int hf_woww_required_opposite_faction = -1;
static int hf_woww_required_opposite_reputation_value = -1;
static int hf_woww_required_reputation_faction = -1;
static int hf_woww_required_reputation_rank = -1;
static int hf_woww_required_skill = -1;
static int hf_woww_required_skill_rank = -1;
static int hf_woww_required_skill_value = -1;
static int hf_woww_required_spell = -1;
static int hf_woww_required_spell_focus = -1;
static int hf_woww_reserved_for_future_use = -1;
static int hf_woww_reset_time = -1;
static int hf_woww_resist = -1;
static int hf_woww_resisted = -1;
static int hf_woww_respect_resurrection_timer = -1;
static int hf_woww_reward = -1;
static int hf_woww_reward_spell = -1;
static int hf_woww_reward_spell_cast = -1;
static int hf_woww_rights = -1;
static int hf_woww_roll_number = -1;
static int hf_woww_roll_vote = -1;
static int hf_woww_round_time_in_ms = -1;
static int hf_woww_running_speed = -1;
static int hf_woww_scale = -1;
static int hf_woww_search_strings = -1;
static int hf_woww_searched_name = -1;
static int hf_woww_self_player = -1;
static int hf_woww_sell_item_result = -1;
static int hf_woww_sell_price = -1;
static int hf_woww_sender = -1;
static int hf_woww_sender_id = -1;
static int hf_woww_sender_name = -1;
static int hf_woww_sequence_id = -1;
static int hf_woww_server_id = -1;
static int hf_woww_server_message_type = -1;
static int hf_woww_server_seed = -1;
static int hf_woww_set_assistant = -1;
static int hf_woww_shadow_resistance = -1;
static int hf_woww_sheath = -1;
static int hf_woww_sheath_state = -1;
static int hf_woww_signer = -1;
static int hf_woww_simple_spell_cast_result = -1;
static int hf_woww_sin_angle = -1;
static int hf_woww_skill_id = -1;
static int hf_woww_skin = -1;
static int hf_woww_skin_color = -1;
static int hf_woww_slot = -1;
static int hf_woww_slot_id = -1;
static int hf_woww_slot_index = -1;
static int hf_woww_sound_id = -1;
static int hf_woww_source_bag = -1;
static int hf_woww_source_item_id = -1;
static int hf_woww_source_node = -1;
static int hf_woww_source_position_x = -1;
static int hf_woww_source_position_y = -1;
static int hf_woww_source_position_z = -1;
static int hf_woww_source_slot = -1;
static int hf_woww_speech_bubble_credit = -1;
static int hf_woww_speed = -1;
static int hf_woww_spell = -1;
static int hf_woww_spell_art_kit = -1;
static int hf_woww_spell_cast_result = -1;
static int hf_woww_spell_cast_target_flags = -1;
static int hf_woww_spell_category = -1;
static int hf_woww_spell_category_cooldown = -1;
static int hf_woww_spell_chain_previous = -1;
static int hf_woww_spell_chain_required = -1;
static int hf_woww_spell_charges = -1;
static int hf_woww_spell_cooldown = -1;
static int hf_woww_spell_cost = -1;
static int hf_woww_spell_count = -1;
static int hf_woww_spell_data_id = -1;
static int hf_woww_spell_effect = -1;
static int hf_woww_spell_effect_item_type = -1;
static int hf_woww_spell_id = -1;
static int hf_woww_spell_index = -1;
static int hf_woww_spell_miss_info = -1;
static int hf_woww_spell_on_lowest_slot = -1;
static int hf_woww_spell_ppm_rate = -1;
static int hf_woww_spell_school = -1;
static int hf_woww_spell_school_mask = -1;
static int hf_woww_spell_trigger = -1;
static int hf_woww_spell_visual_kit = -1;
static int hf_woww_spells = -1;
static int hf_woww_spirit = -1;
static int hf_woww_spline_elevation = -1;
static int hf_woww_spline_flag = -1;
static int hf_woww_spline_id = -1;
static int hf_woww_stable_result = -1;
static int hf_woww_stable_slots = -1;
static int hf_woww_stack_count = -1;
static int hf_woww_stackable = -1;
static int hf_woww_stamina = -1;
static int hf_woww_standing = -1;
static int hf_woww_start_bid = -1;
static int hf_woww_start_from_page = -1;
static int hf_woww_start_quest = -1;
static int hf_woww_starting_bid = -1;
static int hf_woww_state = -1;
static int hf_woww_stationery = -1;
static int hf_woww_status = -1;
static int hf_woww_status_id = -1;
static int hf_woww_strength = -1;
static int hf_woww_string = -1;
static int hf_woww_sub_name = -1;
static int hf_woww_subject = -1;
static int hf_woww_suggestion = -1;
static int hf_woww_summoner_guid = -1;
static int hf_woww_survey_id = -1;
static int hf_woww_swap_with_name = -1;
static int hf_woww_swimming_speed = -1;
static int hf_woww_talent_id = -1;
static int hf_woww_talent_point_cost = -1;
static int hf_woww_talent_reset_cost = -1;
static int hf_woww_target = -1;
static int hf_woww_target_error = -1;
static int hf_woww_target_guid = -1;
static int hf_woww_target_player = -1;
static int hf_woww_target_string = -1;
static int hf_woww_targets = -1;
static int hf_woww_taxi_mask_node_known = -1;
static int hf_woww_text = -1;
static int hf_woww_text_emote = -1;
static int hf_woww_text_id = -1;
static int hf_woww_texts = -1;
static int hf_woww_this_week_honor = -1;
static int hf_woww_this_week_honorable = -1;
static int hf_woww_time = -1;
static int hf_woww_time_in_msec = -1;
static int hf_woww_time_in_msecs = -1;
static int hf_woww_time_in_queue_in_ms = -1;
static int hf_woww_time_in_seconds = -1;
static int hf_woww_time_left = -1;
static int hf_woww_time_left_in_msecs = -1;
static int hf_woww_time_offline = -1;
static int hf_woww_time_passed = -1;
static int hf_woww_time_remaining = -1;
static int hf_woww_time_to_bg_autoleave_in_ms = -1;
static int hf_woww_time_to_bg_start_in_ms = -1;
static int hf_woww_time_to_remove_in_queue_in_ms = -1;
static int hf_woww_timer = -1;
static int hf_woww_timer_type = -1;
static int hf_woww_timescale = -1;
static int hf_woww_timestamp = -1;
static int hf_woww_title = -1;
static int hf_woww_title_text_id = -1;
static int hf_woww_today_honorable_and_dishonorable = -1;
static int hf_woww_todo_amount_of_signers = -1;
static int hf_woww_total_amount_of_auctions = -1;
static int hf_woww_total_cost = -1;
static int hf_woww_total_damage = -1;
static int hf_woww_total_exp = -1;
static int hf_woww_total_played_time = -1;
static int hf_woww_trade_slot = -1;
static int hf_woww_trade_slot_count = -1;
static int hf_woww_trade_slot_number = -1;
static int hf_woww_trade_status = -1;
static int hf_woww_trainer_spell_state = -1;
static int hf_woww_trainer_type = -1;
static int hf_woww_training_failure_reason = -1;
static int hf_woww_transfer_abort_reason = -1;
static int hf_woww_transport = -1;
static int hf_woww_transport_progress_in_ms = -1;
static int hf_woww_trigger_id = -1;
static int hf_woww_turn_rate = -1;
static int hf_woww_tutorial_data = -1;
static int hf_woww_tutorial_flag = -1;
static int hf_woww_type_flags = -1;
static int hf_woww_unimplemented = -1;
static int hf_woww_unit_enemy_target = -1;
static int hf_woww_unit_stand_state = -1;
static int hf_woww_unit_target = -1;
static int hf_woww_unknown_bytes = -1;
static int hf_woww_unknown_flags = -1;
static int hf_woww_unknown_float = -1;
static int hf_woww_unknown_guid = -1;
static int hf_woww_unknown_int = -1;
static int hf_woww_unread_mails = -1;
static int hf_woww_unused = -1;
static int hf_woww_update_available_flag = -1;
static int hf_woww_update_flag = -1;
static int hf_woww_update_type = -1;
static int hf_woww_url = -1;
static int hf_woww_url_info = -1;
static int hf_woww_usable = -1;
static int hf_woww_username = -1;
static int hf_woww_v_cos = -1;
static int hf_woww_v_sin = -1;
static int hf_woww_value = -1;
static int hf_woww_vendor = -1;
static int hf_woww_vendor_guid = -1;
static int hf_woww_vendor_slot = -1;
static int hf_woww_vertical_speed = -1;
static int hf_woww_victim = -1;
static int hf_woww_victim_guid = -1;
static int hf_woww_walking_speed = -1;
static int hf_woww_weather_change_type = -1;
static int hf_woww_weather_type = -1;
static int hf_woww_winning_player_guid = -1;
static int hf_woww_winning_roll = -1;
static int hf_woww_wiping_npc = -1;
static int hf_woww_won = -1;
static int hf_woww_world_result = -1;
static int hf_woww_x = -1;
static int hf_woww_xy_speed = -1;
static int hf_woww_y = -1;
static int hf_woww_yesterday_honor = -1;
static int hf_woww_yesterday_honorable = -1;
static int hf_woww_z = -1;
static int hf_woww_z_speed = -1;
static int hf_woww_zone_id = -1;
static int hf_woww_zone_or_sort = -1;
static int hf_woww_zones = -1;
/* AUTOGENERATED_END_HF */
#define WOWW_CLIENT_TO_SERVER pinfo->srcport > pinfo->destport
#define WOWW_SERVER_TO_CLIENT pinfo->srcport < pinfo->destport
// Allocate 8 because tree wants 32 bit aligned data
#define WOWW_HEADER_ARRAY_ALLOC_SIZE 8
// The session key is the result of two SHA-1 hashes appended, so it is
// _always_ 40 bytes.
#define WOWW_SESSION_KEY_LENGTH 40
static gint ett_woww = -1;
static gint ett_message = -1;
static gint ett_character = -1;
// Packets that do not have at least a u16 size field and a u16 opcode field are not valid.
#define WOWW_MIN_LENGTH 4
// A participant can either be the server or a client.
typedef struct WowwParticipant {
// The previous encrypted value sent. Persists through headers.
guint8 last_encrypted_value;
// Index into the session key. Must always be in [0; WOWW_SESSION_KEY_LENGTH - 1].
// Named idx because there's a check for 'index'
guint8 idx;
// The first header is unencrypted. Tracks if that header has been encountered.
gboolean unencrypted_packet_encountered;
// If a server message is unable to be fully decrypted we stop decrypting any
// any more, since it's impossible to know if the PDU contains multiple messages
// and thus how many times the session key index should be incremented.
guint64 stopped_at;
} WowwParticipant_t;
typedef struct WowwConversation {
// Secret session key known to the client and host.
guint8 session_key[WOWW_SESSION_KEY_LENGTH];
// Which values of the session key have been deduced.
bool known_indices[WOWW_SESSION_KEY_LENGTH];
// Cache headers that have already been decrypted to save time
// as well as reduce headaches from out of order packets.
wmem_map_t* decrypted_headers;
// Packets that are not fully decryptable when received will need
// to be decrypted later.
wmem_map_t* headers_need_decryption;
// The client and server will have different indices/last values
// because they send different amounts of packets and with different
// header lengths.
WowwParticipant_t client;
WowwParticipant_t server;
} WowwConversation_t;
typedef struct {
// Index into the session key, named idx because there's a check for 'index'
guint8 idx;
guint8 last_encrypted_value;
} WowwPreviousValues_t;
typedef struct {
guint8 size[2];
guint8 opcode[];
} WowwDecryptedHeader_t;
/* AUTOGENERATED_START_ENUM */
typedef enum {
ADDON_TYPE_BANNED = 0x0,
ADDON_TYPE_ENABLED = 0x1,
ADDON_TYPE_BLIZZARD = 0x2,
} e_addon_type;
static const value_string e_addon_type_strings[] = {
{ ADDON_TYPE_BANNED, "Banned" },
{ ADDON_TYPE_ENABLED, "Enabled" },
{ ADDON_TYPE_BLIZZARD, "Blizzard" },
{ 0, NULL }
};
typedef enum {
INFO_BLOCK_UNAVAILABLE = 0x0,
INFO_BLOCK_AVAILABLE = 0x1,
} e_info_block;
static const value_string e_info_block_strings[] = {
{ INFO_BLOCK_UNAVAILABLE, "Unavailable" },
{ INFO_BLOCK_AVAILABLE, "Available" },
{ 0, NULL }
};
typedef enum {
KEY_VERSION_ZERO = 0x0,
KEY_VERSION_ONE = 0x1,
KEY_VERSION_TWO = 0x2,
KEY_VERSION_THREE = 0x3,
KEY_VERSION_FOUR = 0x4,
KEY_VERSION_FIVE = 0x5,
KEY_VERSION_SIX = 0x6,
KEY_VERSION_SEVEN = 0x7,
KEY_VERSION_EIGHT = 0x8,
KEY_VERSION_NINE = 0x9,
} e_key_version;
static const value_string e_key_version_strings[] = {
{ KEY_VERSION_ZERO, "Zero" },
{ KEY_VERSION_ONE, "One" },
{ KEY_VERSION_TWO, "Two" },
{ KEY_VERSION_THREE, "Three" },
{ KEY_VERSION_FOUR, "Four" },
{ KEY_VERSION_FIVE, "Five" },
{ KEY_VERSION_SIX, "Six" },
{ KEY_VERSION_SEVEN, "Seven" },
{ KEY_VERSION_EIGHT, "Eight" },
{ KEY_VERSION_NINE, "Nine" },
{ 0, NULL }
};
typedef enum {
URL_INFO_UNAVAILABLE = 0x0,
URL_INFO_AVAILABLE = 0x1,
} e_url_info;
static const value_string e_url_info_strings[] = {
{ URL_INFO_UNAVAILABLE, "Unavailable" },
{ URL_INFO_AVAILABLE, "Available" },
{ 0, NULL }
};
typedef enum {
AURA_TYPE_NONE = 0x00,
AURA_TYPE_BIND_SIGHT = 0x01,
AURA_TYPE_MOD_POSSESS = 0x02,
AURA_TYPE_PERIODIC_DAMAGE = 0x03,
AURA_TYPE_DUMMY = 0x04,
AURA_TYPE_MOD_CONFUSE = 0x05,
AURA_TYPE_MOD_CHARM = 0x06,
AURA_TYPE_MOD_FEAR = 0x07,
AURA_TYPE_PERIODIC_HEAL = 0x08,
AURA_TYPE_MOD_ATTACKSPEED = 0x09,
AURA_TYPE_MOD_THREAT = 0x0A,
AURA_TYPE_MOD_TAUNT = 0x0B,
AURA_TYPE_MOD_STUN = 0x0C,
AURA_TYPE_MOD_DAMAGE_DONE = 0x0D,
AURA_TYPE_MOD_DAMAGE_TAKEN = 0x0E,
AURA_TYPE_DAMAGE_SHIELD = 0x0F,
AURA_TYPE_MOD_STEALTH = 0x10,
AURA_TYPE_MOD_STEALTH_DETECT = 0x11,
AURA_TYPE_MOD_INVISIBILITY = 0x12,
AURA_TYPE_MOD_INVISIBILITY_DETECTION = 0x13,
AURA_TYPE_OBS_MOD_HEALTH = 0x14,
AURA_TYPE_OBS_MOD_MANA = 0x15,
AURA_TYPE_MOD_RESISTANCE = 0x16,
AURA_TYPE_PERIODIC_TRIGGER_SPELL = 0x17,
AURA_TYPE_PERIODIC_ENERGIZE = 0x18,
AURA_TYPE_MOD_PACIFY = 0x19,
AURA_TYPE_MOD_ROOT = 0x1A,
AURA_TYPE_MOD_SILENCE = 0x1B,
AURA_TYPE_REFLECT_SPELLS = 0x1C,
AURA_TYPE_MOD_STAT = 0x1D,
AURA_TYPE_MOD_SKILL = 0x1E,
AURA_TYPE_MOD_INCREASE_SPEED = 0x1F,
AURA_TYPE_MOD_INCREASE_MOUNTED_SPEED = 0x20,
AURA_TYPE_MOD_DECREASE_SPEED = 0x21,
AURA_TYPE_MOD_INCREASE_HEALTH = 0x22,
AURA_TYPE_MOD_INCREASE_ENERGY = 0x23,
AURA_TYPE_MOD_SHAPESHIFT = 0x24,
AURA_TYPE_EFFECT_IMMUNITY = 0x25,
AURA_TYPE_STATE_IMMUNITY = 0x26,
AURA_TYPE_SCHOOL_IMMUNITY = 0x27,
AURA_TYPE_DAMAGE_IMMUNITY = 0x28,
AURA_TYPE_DISPEL_IMMUNITY = 0x29,
AURA_TYPE_PROC_TRIGGER_SPELL = 0x2A,
AURA_TYPE_PROC_TRIGGER_DAMAGE = 0x2B,
AURA_TYPE_TRACK_CREATURES = 0x2C,
AURA_TYPE_TRACK_RESOURCES = 0x2D,
AURA_TYPE_UNKNOWN46 = 0x2E,
AURA_TYPE_MOD_PARRY_PERCENT = 0x2F,
AURA_TYPE_UNKNOWN48 = 0x30,
AURA_TYPE_MOD_DODGE_PERCENT = 0x31,
AURA_TYPE_MOD_BLOCK_SKILL = 0x32,
AURA_TYPE_MOD_BLOCK_PERCENT = 0x33,
AURA_TYPE_MOD_CRIT_PERCENT = 0x34,
AURA_TYPE_PERIODIC_LEECH = 0x35,
AURA_TYPE_MOD_HIT_CHANCE = 0x36,
AURA_TYPE_MOD_SPELL_HIT_CHANCE = 0x37,
AURA_TYPE_TRANSFORM = 0x38,
AURA_TYPE_MOD_SPELL_CRIT_CHANCE = 0x39,
AURA_TYPE_MOD_INCREASE_SWIM_SPEED = 0x3A,
AURA_TYPE_MOD_DAMAGE_DONE_CREATURE = 0x3B,
AURA_TYPE_MOD_PACIFY_SILENCE = 0x3C,
AURA_TYPE_MOD_SCALE = 0x3D,
AURA_TYPE_PERIODIC_HEALTH_FUNNEL = 0x3E,
AURA_TYPE_PERIODIC_MANA_FUNNEL = 0x3F,
AURA_TYPE_PERIODIC_MANA_LEECH = 0x40,
AURA_TYPE_MOD_CASTING_SPEED_NOT_STACK = 0x41,
AURA_TYPE_FEIGN_DEATH = 0x42,
AURA_TYPE_MOD_DISARM = 0x43,
AURA_TYPE_MOD_STALKED = 0x44,
AURA_TYPE_SCHOOL_ABSORB = 0x45,
AURA_TYPE_EXTRA_ATTACKS = 0x46,
AURA_TYPE_MOD_SPELL_CRIT_CHANCE_SCHOOL = 0x47,
AURA_TYPE_MOD_POWER_COST_SCHOOL_PCT = 0x48,
AURA_TYPE_MOD_POWER_COST_SCHOOL = 0x49,
AURA_TYPE_REFLECT_SPELLS_SCHOOL = 0x4A,
AURA_TYPE_MOD_LANGUAGE = 0x4B,
AURA_TYPE_FAR_SIGHT = 0x4C,
AURA_TYPE_MECHANIC_IMMUNITY = 0x4D,
AURA_TYPE_MOUNTED = 0x4E,
AURA_TYPE_MOD_DAMAGE_PERCENT_DONE = 0x4F,
AURA_TYPE_MOD_PERCENT_STAT = 0x50,
AURA_TYPE_SPLIT_DAMAGE_PCT = 0x51,
AURA_TYPE_WATER_BREATHING = 0x52,
AURA_TYPE_MOD_BASE_RESISTANCE = 0x53,
AURA_TYPE_MOD_REGEN = 0x54,
AURA_TYPE_MOD_POWER_REGEN = 0x55,
AURA_TYPE_CHANNEL_DEATH_ITEM = 0x56,
AURA_TYPE_MOD_DAMAGE_PERCENT_TAKEN = 0x57,
AURA_TYPE_MOD_HEALTH_REGEN_PERCENT = 0x58,
AURA_TYPE_PERIODIC_DAMAGE_PERCENT = 0x59,
AURA_TYPE_MOD_RESIST_CHANCE = 0x5A,
AURA_TYPE_MOD_DETECT_RANGE = 0x5B,
AURA_TYPE_PREVENTS_FLEEING = 0x5C,
AURA_TYPE_MOD_UNATTACKABLE = 0x5D,
AURA_TYPE_INTERRUPT_REGEN = 0x5E,
AURA_TYPE_GHOST = 0x5F,
AURA_TYPE_SPELL_MAGNET = 0x60,
AURA_TYPE_MANA_SHIELD = 0x61,
AURA_TYPE_MOD_SKILL_TALENT = 0x62,
AURA_TYPE_MOD_ATTACK_POWER = 0x63,
AURA_TYPE_AURAS_VISIBLE = 0x64,
AURA_TYPE_MOD_RESISTANCE_PCT = 0x65,
AURA_TYPE_MOD_MELEE_ATTACK_POWER_VERSUS = 0x66,
AURA_TYPE_MOD_TOTAL_THREAT = 0x67,
AURA_TYPE_WATER_WALK = 0x68,
AURA_TYPE_FEATHER_FALL = 0x69,
AURA_TYPE_HOVER = 0x6A,
AURA_TYPE_ADD_FLAT_MODIFIER = 0x6B,
AURA_TYPE_ADD_PCT_MODIFIER = 0x6C,
AURA_TYPE_ADD_TARGET_TRIGGER = 0x6D,
AURA_TYPE_MOD_POWER_REGEN_PERCENT = 0x6E,
AURA_TYPE_ADD_CASTER_HIT_TRIGGER = 0x6F,
AURA_TYPE_OVERRIDE_CLASS_SCRIPTS = 0x70,
AURA_TYPE_MOD_RANGED_DAMAGE_TAKEN = 0x71,
AURA_TYPE_MOD_RANGED_DAMAGE_TAKEN_PCT = 0x72,
AURA_TYPE_MOD_HEALING = 0x73,
AURA_TYPE_MOD_REGEN_DURING_COMBAT = 0x74,
AURA_TYPE_MOD_MECHANIC_RESISTANCE = 0x75,
AURA_TYPE_MOD_HEALING_PCT = 0x76,
AURA_TYPE_SHARE_PET_TRACKING = 0x77,
AURA_TYPE_UNTRACKABLE = 0x78,
AURA_TYPE_EMPATHY = 0x79,
AURA_TYPE_MOD_OFFHAND_DAMAGE_PCT = 0x7A,
AURA_TYPE_MOD_TARGET_RESISTANCE = 0x7B,
AURA_TYPE_MOD_RANGED_ATTACK_POWER = 0x7C,
AURA_TYPE_MOD_MELEE_DAMAGE_TAKEN = 0x7D,
AURA_TYPE_MOD_MELEE_DAMAGE_TAKEN_PCT = 0x7E,
AURA_TYPE_RANGED_ATTACK_POWER_ATTACKER_BONUS = 0x7F,
AURA_TYPE_MOD_POSSESS_PET = 0x80,
AURA_TYPE_MOD_SPEED_ALWAYS = 0x81,
AURA_TYPE_MOD_MOUNTED_SPEED_ALWAYS = 0x82,
AURA_TYPE_MOD_RANGED_ATTACK_POWER_VERSUS = 0x83,
AURA_TYPE_MOD_INCREASE_ENERGY_PERCENT = 0x84,
AURA_TYPE_MOD_INCREASE_HEALTH_PERCENT = 0x85,
AURA_TYPE_MOD_MANA_REGEN_INTERRUPT = 0x86,
AURA_TYPE_MOD_HEALING_DONE = 0x87,
AURA_TYPE_MOD_HEALING_DONE_PERCENT = 0x88,
AURA_TYPE_MOD_TOTAL_STAT_PERCENTAGE = 0x89,
AURA_TYPE_MOD_MELEE_HASTE = 0x8A,
AURA_TYPE_FORCE_REACTION = 0x8B,
AURA_TYPE_MOD_RANGED_HASTE = 0x8C,
AURA_TYPE_MOD_RANGED_AMMO_HASTE = 0x8D,
AURA_TYPE_MOD_BASE_RESISTANCE_PCT = 0x8E,
AURA_TYPE_MOD_RESISTANCE_EXCLUSIVE = 0x8F,
AURA_TYPE_SAFE_FALL = 0x90,
AURA_TYPE_CHARISMA = 0x91,
AURA_TYPE_PERSUADED = 0x92,
AURA_TYPE_MECHANIC_IMMUNITY_MASK = 0x93,
AURA_TYPE_RETAIN_COMBO_POINTS = 0x94,
AURA_TYPE_RESIST_PUSHBACK = 0x95,
AURA_TYPE_MOD_SHIELD_BLOCKVALUE_PCT = 0x96,
AURA_TYPE_TRACK_STEALTHED = 0x97,
AURA_TYPE_MOD_DETECTED_RANGE = 0x98,
AURA_TYPE_SPLIT_DAMAGE_FLAT = 0x99,
AURA_TYPE_MOD_STEALTH_LEVEL = 0x9A,
AURA_TYPE_MOD_WATER_BREATHING = 0x9B,
AURA_TYPE_MOD_REPUTATION_GAIN = 0x9C,
AURA_TYPE_PET_DAMAGE_MULTI = 0x9D,
AURA_TYPE_MOD_SHIELD_BLOCKVALUE = 0x9E,
AURA_TYPE_NO_PVP_CREDIT = 0x9F,
AURA_TYPE_MOD_AOE_AVOIDANCE = 0xA0,
AURA_TYPE_MOD_HEALTH_REGEN_IN_COMBAT = 0xA1,
AURA_TYPE_POWER_BURN_MANA = 0xA2,
AURA_TYPE_MOD_CRIT_DAMAGE_BONUS = 0xA3,
AURA_TYPE_UNKNOWN164 = 0xA4,
AURA_TYPE_MELEE_ATTACK_POWER_ATTACKER_BONUS = 0xA5,
AURA_TYPE_MOD_ATTACK_POWER_PCT = 0xA6,
AURA_TYPE_MOD_RANGED_ATTACK_POWER_PCT = 0xA7,
AURA_TYPE_MOD_DAMAGE_DONE_VERSUS = 0xA8,
AURA_TYPE_MOD_CRIT_PERCENT_VERSUS = 0xA9,
AURA_TYPE_DETECT_AMORE = 0xAA,
AURA_TYPE_MOD_SPEED_NOT_STACK = 0xAB,
AURA_TYPE_MOD_MOUNTED_SPEED_NOT_STACK = 0xAC,
AURA_TYPE_ALLOW_CHAMPION_SPELLS = 0xAD,
AURA_TYPE_MOD_SPELL_DAMAGE_OF_STAT_PERCENT = 0xAE,
AURA_TYPE_MOD_SPELL_HEALING_OF_STAT_PERCENT = 0xAF,
AURA_TYPE_SPIRIT_OF_REDEMPTION = 0xB0,
AURA_TYPE_AOE_CHARM = 0xB1,
AURA_TYPE_MOD_DEBUFF_RESISTANCE = 0xB2,
AURA_TYPE_MOD_ATTACKER_SPELL_CRIT_CHANCE = 0xB3,
AURA_TYPE_MOD_FLAT_SPELL_DAMAGE_VERSUS = 0xB4,
AURA_TYPE_MOD_FLAT_SPELL_CRIT_DAMAGE_VERSUS = 0xB5,
AURA_TYPE_MOD_RESISTANCE_OF_STAT_PERCENT = 0xB6,
AURA_TYPE_MOD_CRITICAL_THREAT = 0xB7,
AURA_TYPE_MOD_ATTACKER_MELEE_HIT_CHANCE = 0xB8,
AURA_TYPE_MOD_ATTACKER_RANGED_HIT_CHANCE = 0xB9,
AURA_TYPE_MOD_ATTACKER_SPELL_HIT_CHANCE = 0xBA,
AURA_TYPE_MOD_ATTACKER_MELEE_CRIT_CHANCE = 0xBB,
AURA_TYPE_MOD_ATTACKER_RANGED_CRIT_CHANCE = 0xBC,
AURA_TYPE_MOD_RATING = 0xBD,
AURA_TYPE_MOD_FACTION_REPUTATION_GAIN = 0xBE,
AURA_TYPE_USE_NORMAL_MOVEMENT_SPEED = 0xBF,
} e_aura_type;
static const value_string e_aura_type_strings[] = {
{ AURA_TYPE_NONE, "None" },
{ AURA_TYPE_BIND_SIGHT, "Bind Sight" },
{ AURA_TYPE_MOD_POSSESS, "Mod Possess" },
{ AURA_TYPE_PERIODIC_DAMAGE, "Periodic Damage" },
{ AURA_TYPE_DUMMY, "Dummy" },
{ AURA_TYPE_MOD_CONFUSE, "Mod Confuse" },
{ AURA_TYPE_MOD_CHARM, "Mod Charm" },
{ AURA_TYPE_MOD_FEAR, "Mod Fear" },
{ AURA_TYPE_PERIODIC_HEAL, "Periodic Heal" },
{ AURA_TYPE_MOD_ATTACKSPEED, "Mod Attackspeed" },
{ AURA_TYPE_MOD_THREAT, "Mod Threat" },
{ AURA_TYPE_MOD_TAUNT, "Mod Taunt" },
{ AURA_TYPE_MOD_STUN, "Mod Stun" },
{ AURA_TYPE_MOD_DAMAGE_DONE, "Mod Damage Done" },
{ AURA_TYPE_MOD_DAMAGE_TAKEN, "Mod Damage Taken" },
{ AURA_TYPE_DAMAGE_SHIELD, "Damage Shield" },
{ AURA_TYPE_MOD_STEALTH, "Mod Stealth" },
{ AURA_TYPE_MOD_STEALTH_DETECT, "Mod Stealth Detect" },
{ AURA_TYPE_MOD_INVISIBILITY, "Mod Invisibility" },
{ AURA_TYPE_MOD_INVISIBILITY_DETECTION, "Mod Invisibility Detection" },
{ AURA_TYPE_OBS_MOD_HEALTH, "Obs Mod Health" },
{ AURA_TYPE_OBS_MOD_MANA, "Obs Mod Mana" },
{ AURA_TYPE_MOD_RESISTANCE, "Mod Resistance" },
{ AURA_TYPE_PERIODIC_TRIGGER_SPELL, "Periodic Trigger Spell" },
{ AURA_TYPE_PERIODIC_ENERGIZE, "Periodic Energize" },
{ AURA_TYPE_MOD_PACIFY, "Mod Pacify" },
{ AURA_TYPE_MOD_ROOT, "Mod Root" },
{ AURA_TYPE_MOD_SILENCE, "Mod Silence" },
{ AURA_TYPE_REFLECT_SPELLS, "Reflect Spells" },
{ AURA_TYPE_MOD_STAT, "Mod Stat" },
{ AURA_TYPE_MOD_SKILL, "Mod Skill" },
{ AURA_TYPE_MOD_INCREASE_SPEED, "Mod Increase Speed" },
{ AURA_TYPE_MOD_INCREASE_MOUNTED_SPEED, "Mod Increase Mounted Speed" },
{ AURA_TYPE_MOD_DECREASE_SPEED, "Mod Decrease Speed" },
{ AURA_TYPE_MOD_INCREASE_HEALTH, "Mod Increase Health" },
{ AURA_TYPE_MOD_INCREASE_ENERGY, "Mod Increase Energy" },
{ AURA_TYPE_MOD_SHAPESHIFT, "Mod Shapeshift" },
{ AURA_TYPE_EFFECT_IMMUNITY, "Effect Immunity" },
{ AURA_TYPE_STATE_IMMUNITY, "State Immunity" },
{ AURA_TYPE_SCHOOL_IMMUNITY, "School Immunity" },
{ AURA_TYPE_DAMAGE_IMMUNITY, "Damage Immunity" },
{ AURA_TYPE_DISPEL_IMMUNITY, "Dispel Immunity" },
{ AURA_TYPE_PROC_TRIGGER_SPELL, "Proc Trigger Spell" },
{ AURA_TYPE_PROC_TRIGGER_DAMAGE, "Proc Trigger Damage" },
{ AURA_TYPE_TRACK_CREATURES, "Track Creatures" },
{ AURA_TYPE_TRACK_RESOURCES, "Track Resources" },
{ AURA_TYPE_UNKNOWN46, "Unknown46" },
{ AURA_TYPE_MOD_PARRY_PERCENT, "Mod Parry Percent" },
{ AURA_TYPE_UNKNOWN48, "Unknown48" },
{ AURA_TYPE_MOD_DODGE_PERCENT, "Mod Dodge Percent" },
{ AURA_TYPE_MOD_BLOCK_SKILL, "Mod Block Skill" },
{ AURA_TYPE_MOD_BLOCK_PERCENT, "Mod Block Percent" },
{ AURA_TYPE_MOD_CRIT_PERCENT, "Mod Crit Percent" },
{ AURA_TYPE_PERIODIC_LEECH, "Periodic Leech" },
{ AURA_TYPE_MOD_HIT_CHANCE, "Mod Hit Chance" },
{ AURA_TYPE_MOD_SPELL_HIT_CHANCE, "Mod Spell Hit Chance" },
{ AURA_TYPE_TRANSFORM, "Transform" },
{ AURA_TYPE_MOD_SPELL_CRIT_CHANCE, "Mod Spell Crit Chance" },
{ AURA_TYPE_MOD_INCREASE_SWIM_SPEED, "Mod Increase Swim Speed" },
{ AURA_TYPE_MOD_DAMAGE_DONE_CREATURE, "Mod Damage Done Creature" },
{ AURA_TYPE_MOD_PACIFY_SILENCE, "Mod Pacify Silence" },
{ AURA_TYPE_MOD_SCALE, "Mod Scale" },
{ AURA_TYPE_PERIODIC_HEALTH_FUNNEL, "Periodic Health Funnel" },
{ AURA_TYPE_PERIODIC_MANA_FUNNEL, "Periodic Mana Funnel" },
{ AURA_TYPE_PERIODIC_MANA_LEECH, "Periodic Mana Leech" },
{ AURA_TYPE_MOD_CASTING_SPEED_NOT_STACK, "Mod Casting Speed Not Stack" },
{ AURA_TYPE_FEIGN_DEATH, "Feign Death" },
{ AURA_TYPE_MOD_DISARM, "Mod Disarm" },
{ AURA_TYPE_MOD_STALKED, "Mod Stalked" },
{ AURA_TYPE_SCHOOL_ABSORB, "School Absorb" },
{ AURA_TYPE_EXTRA_ATTACKS, "Extra Attacks" },
{ AURA_TYPE_MOD_SPELL_CRIT_CHANCE_SCHOOL, "Mod Spell Crit Chance School" },
{ AURA_TYPE_MOD_POWER_COST_SCHOOL_PCT, "Mod Power Cost School Pct" },
{ AURA_TYPE_MOD_POWER_COST_SCHOOL, "Mod Power Cost School" },
{ AURA_TYPE_REFLECT_SPELLS_SCHOOL, "Reflect Spells School" },
{ AURA_TYPE_MOD_LANGUAGE, "Mod Language" },
{ AURA_TYPE_FAR_SIGHT, "Far Sight" },
{ AURA_TYPE_MECHANIC_IMMUNITY, "Mechanic Immunity" },
{ AURA_TYPE_MOUNTED, "Mounted" },
{ AURA_TYPE_MOD_DAMAGE_PERCENT_DONE, "Mod Damage Percent Done" },
{ AURA_TYPE_MOD_PERCENT_STAT, "Mod Percent Stat" },
{ AURA_TYPE_SPLIT_DAMAGE_PCT, "Split Damage Pct" },
{ AURA_TYPE_WATER_BREATHING, "Water Breathing" },
{ AURA_TYPE_MOD_BASE_RESISTANCE, "Mod Base Resistance" },
{ AURA_TYPE_MOD_REGEN, "Mod Regen" },
{ AURA_TYPE_MOD_POWER_REGEN, "Mod Power Regen" },
{ AURA_TYPE_CHANNEL_DEATH_ITEM, "Channel Death Item" },
{ AURA_TYPE_MOD_DAMAGE_PERCENT_TAKEN, "Mod Damage Percent Taken" },
{ AURA_TYPE_MOD_HEALTH_REGEN_PERCENT, "Mod Health Regen Percent" },
{ AURA_TYPE_PERIODIC_DAMAGE_PERCENT, "Periodic Damage Percent" },
{ AURA_TYPE_MOD_RESIST_CHANCE, "Mod Resist Chance" },
{ AURA_TYPE_MOD_DETECT_RANGE, "Mod Detect Range" },
{ AURA_TYPE_PREVENTS_FLEEING, "Prevents Fleeing" },
{ AURA_TYPE_MOD_UNATTACKABLE, "Mod Unattackable" },
{ AURA_TYPE_INTERRUPT_REGEN, "Interrupt Regen" },
{ AURA_TYPE_GHOST, "Ghost" },
{ AURA_TYPE_SPELL_MAGNET, "Spell Magnet" },
{ AURA_TYPE_MANA_SHIELD, "Mana Shield" },
{ AURA_TYPE_MOD_SKILL_TALENT, "Mod Skill Talent" },
{ AURA_TYPE_MOD_ATTACK_POWER, "Mod Attack Power" },
{ AURA_TYPE_AURAS_VISIBLE, "Auras Visible" },
{ AURA_TYPE_MOD_RESISTANCE_PCT, "Mod Resistance Pct" },
{ AURA_TYPE_MOD_MELEE_ATTACK_POWER_VERSUS, "Mod Melee Attack Power Versus" },
{ AURA_TYPE_MOD_TOTAL_THREAT, "Mod Total Threat" },
{ AURA_TYPE_WATER_WALK, "Water Walk" },
{ AURA_TYPE_FEATHER_FALL, "Feather Fall" },
{ AURA_TYPE_HOVER, "Hover" },
{ AURA_TYPE_ADD_FLAT_MODIFIER, "Add Flat Modifier" },
{ AURA_TYPE_ADD_PCT_MODIFIER, "Add Pct Modifier" },
{ AURA_TYPE_ADD_TARGET_TRIGGER, "Add Target Trigger" },
{ AURA_TYPE_MOD_POWER_REGEN_PERCENT, "Mod Power Regen Percent" },
{ AURA_TYPE_ADD_CASTER_HIT_TRIGGER, "Add Caster Hit Trigger" },
{ AURA_TYPE_OVERRIDE_CLASS_SCRIPTS, "Override Class Scripts" },
{ AURA_TYPE_MOD_RANGED_DAMAGE_TAKEN, "Mod Ranged Damage Taken" },
{ AURA_TYPE_MOD_RANGED_DAMAGE_TAKEN_PCT, "Mod Ranged Damage Taken Pct" },
{ AURA_TYPE_MOD_HEALING, "Mod Healing" },
{ AURA_TYPE_MOD_REGEN_DURING_COMBAT, "Mod Regen During Combat" },
{ AURA_TYPE_MOD_MECHANIC_RESISTANCE, "Mod Mechanic Resistance" },
{ AURA_TYPE_MOD_HEALING_PCT, "Mod Healing Pct" },
{ AURA_TYPE_SHARE_PET_TRACKING, "Share Pet Tracking" },
{ AURA_TYPE_UNTRACKABLE, "Untrackable" },
{ AURA_TYPE_EMPATHY, "Empathy" },
{ AURA_TYPE_MOD_OFFHAND_DAMAGE_PCT, "Mod Offhand Damage Pct" },
{ AURA_TYPE_MOD_TARGET_RESISTANCE, "Mod Target Resistance" },
{ AURA_TYPE_MOD_RANGED_ATTACK_POWER, "Mod Ranged Attack Power" },
{ AURA_TYPE_MOD_MELEE_DAMAGE_TAKEN, "Mod Melee Damage Taken" },
{ AURA_TYPE_MOD_MELEE_DAMAGE_TAKEN_PCT, "Mod Melee Damage Taken Pct" },
{ AURA_TYPE_RANGED_ATTACK_POWER_ATTACKER_BONUS, "Ranged Attack Power Attacker Bonus" },
{ AURA_TYPE_MOD_POSSESS_PET, "Mod Possess Pet" },
{ AURA_TYPE_MOD_SPEED_ALWAYS, "Mod Speed Always" },
{ AURA_TYPE_MOD_MOUNTED_SPEED_ALWAYS, "Mod Mounted Speed Always" },
{ AURA_TYPE_MOD_RANGED_ATTACK_POWER_VERSUS, "Mod Ranged Attack Power Versus" },
{ AURA_TYPE_MOD_INCREASE_ENERGY_PERCENT, "Mod Increase Energy Percent" },
{ AURA_TYPE_MOD_INCREASE_HEALTH_PERCENT, "Mod Increase Health Percent" },
{ AURA_TYPE_MOD_MANA_REGEN_INTERRUPT, "Mod Mana Regen Interrupt" },
{ AURA_TYPE_MOD_HEALING_DONE, "Mod Healing Done" },
{ AURA_TYPE_MOD_HEALING_DONE_PERCENT, "Mod Healing Done Percent" },
{ AURA_TYPE_MOD_TOTAL_STAT_PERCENTAGE, "Mod Total Stat Percentage" },
{ AURA_TYPE_MOD_MELEE_HASTE, "Mod Melee Haste" },
{ AURA_TYPE_FORCE_REACTION, "Force Reaction" },
{ AURA_TYPE_MOD_RANGED_HASTE, "Mod Ranged Haste" },
{ AURA_TYPE_MOD_RANGED_AMMO_HASTE, "Mod Ranged Ammo Haste" },
{ AURA_TYPE_MOD_BASE_RESISTANCE_PCT, "Mod Base Resistance Pct" },
{ AURA_TYPE_MOD_RESISTANCE_EXCLUSIVE, "Mod Resistance Exclusive" },
{ AURA_TYPE_SAFE_FALL, "Safe Fall" },
{ AURA_TYPE_CHARISMA, "Charisma" },
{ AURA_TYPE_PERSUADED, "Persuaded" },
{ AURA_TYPE_MECHANIC_IMMUNITY_MASK, "Mechanic Immunity Mask" },
{ AURA_TYPE_RETAIN_COMBO_POINTS, "Retain Combo Points" },
{ AURA_TYPE_RESIST_PUSHBACK, "Resist Pushback" },
{ AURA_TYPE_MOD_SHIELD_BLOCKVALUE_PCT, "Mod Shield Blockvalue Pct" },
{ AURA_TYPE_TRACK_STEALTHED, "Track Stealthed" },
{ AURA_TYPE_MOD_DETECTED_RANGE, "Mod Detected Range" },
{ AURA_TYPE_SPLIT_DAMAGE_FLAT, "Split Damage Flat" },
{ AURA_TYPE_MOD_STEALTH_LEVEL, "Mod Stealth Level" },
{ AURA_TYPE_MOD_WATER_BREATHING, "Mod Water Breathing" },
{ AURA_TYPE_MOD_REPUTATION_GAIN, "Mod Reputation Gain" },
{ AURA_TYPE_PET_DAMAGE_MULTI, "Pet Damage Multi" },
{ AURA_TYPE_MOD_SHIELD_BLOCKVALUE, "Mod Shield Blockvalue" },
{ AURA_TYPE_NO_PVP_CREDIT, "No Pvp Credit" },
{ AURA_TYPE_MOD_AOE_AVOIDANCE, "Mod Aoe Avoidance" },
{ AURA_TYPE_MOD_HEALTH_REGEN_IN_COMBAT, "Mod Health Regen In Combat" },
{ AURA_TYPE_POWER_BURN_MANA, "Power Burn Mana" },
{ AURA_TYPE_MOD_CRIT_DAMAGE_BONUS, "Mod Crit Damage Bonus" },
{ AURA_TYPE_UNKNOWN164, "Unknown164" },
{ AURA_TYPE_MELEE_ATTACK_POWER_ATTACKER_BONUS, "Melee Attack Power Attacker Bonus" },
{ AURA_TYPE_MOD_ATTACK_POWER_PCT, "Mod Attack Power Pct" },
{ AURA_TYPE_MOD_RANGED_ATTACK_POWER_PCT, "Mod Ranged Attack Power Pct" },
{ AURA_TYPE_MOD_DAMAGE_DONE_VERSUS, "Mod Damage Done Versus" },
{ AURA_TYPE_MOD_CRIT_PERCENT_VERSUS, "Mod Crit Percent Versus" },
{ AURA_TYPE_DETECT_AMORE, "Detect Amore" },
{ AURA_TYPE_MOD_SPEED_NOT_STACK, "Mod Speed Not Stack" },
{ AURA_TYPE_MOD_MOUNTED_SPEED_NOT_STACK, "Mod Mounted Speed Not Stack" },
{ AURA_TYPE_ALLOW_CHAMPION_SPELLS, "Allow Champion Spells" },
{ AURA_TYPE_MOD_SPELL_DAMAGE_OF_STAT_PERCENT, "Mod Spell Damage Of Stat Percent" },
{ AURA_TYPE_MOD_SPELL_HEALING_OF_STAT_PERCENT, "Mod Spell Healing Of Stat Percent" },
{ AURA_TYPE_SPIRIT_OF_REDEMPTION, "Spirit Of Redemption" },
{ AURA_TYPE_AOE_CHARM, "Aoe Charm" },
{ AURA_TYPE_MOD_DEBUFF_RESISTANCE, "Mod Debuff Resistance" },
{ AURA_TYPE_MOD_ATTACKER_SPELL_CRIT_CHANCE, "Mod Attacker Spell Crit Chance" },
{ AURA_TYPE_MOD_FLAT_SPELL_DAMAGE_VERSUS, "Mod Flat Spell Damage Versus" },
{ AURA_TYPE_MOD_FLAT_SPELL_CRIT_DAMAGE_VERSUS, "Mod Flat Spell Crit Damage Versus" },
{ AURA_TYPE_MOD_RESISTANCE_OF_STAT_PERCENT, "Mod Resistance Of Stat Percent" },
{ AURA_TYPE_MOD_CRITICAL_THREAT, "Mod Critical Threat" },
{ AURA_TYPE_MOD_ATTACKER_MELEE_HIT_CHANCE, "Mod Attacker Melee Hit Chance" },
{ AURA_TYPE_MOD_ATTACKER_RANGED_HIT_CHANCE, "Mod Attacker Ranged Hit Chance" },
{ AURA_TYPE_MOD_ATTACKER_SPELL_HIT_CHANCE, "Mod Attacker Spell Hit Chance" },
{ AURA_TYPE_MOD_ATTACKER_MELEE_CRIT_CHANCE, "Mod Attacker Melee Crit Chance" },
{ AURA_TYPE_MOD_ATTACKER_RANGED_CRIT_CHANCE, "Mod Attacker Ranged Crit Chance" },
{ AURA_TYPE_MOD_RATING, "Mod Rating" },
{ AURA_TYPE_MOD_FACTION_REPUTATION_GAIN, "Mod Faction Reputation Gain" },
{ AURA_TYPE_USE_NORMAL_MOVEMENT_SPEED, "Use Normal Movement Speed" },
{ 0, NULL }
};
typedef enum {
SPELL_SCHOOL_NORMAL = 0x0,
SPELL_SCHOOL_HOLY = 0x1,
SPELL_SCHOOL_FIRE = 0x2,
SPELL_SCHOOL_NATURE = 0x3,
SPELL_SCHOOL_FROST = 0x4,
SPELL_SCHOOL_SHADOW = 0x5,
SPELL_SCHOOL_ARCANE = 0x6,
} e_spell_school;
static const value_string e_spell_school_strings[] = {
{ SPELL_SCHOOL_NORMAL, "Normal" },
{ SPELL_SCHOOL_HOLY, "Holy" },
{ SPELL_SCHOOL_FIRE, "Fire" },
{ SPELL_SCHOOL_NATURE, "Nature" },
{ SPELL_SCHOOL_FROST, "Frost" },
{ SPELL_SCHOOL_SHADOW, "Shadow" },
{ SPELL_SCHOOL_ARCANE, "Arcane" },
{ 0, NULL }
};
typedef enum {
PVP_RANK_NO_RANK = 0x00,
PVP_RANK_PARIAH = 0x01,
PVP_RANK_OUTLAW = 0x02,
PVP_RANK_EXILED = 0x03,
PVP_RANK_DISHONORED = 0x04,
PVP_RANK_RANK1 = 0x05,
PVP_RANK_RANK2 = 0x06,
PVP_RANK_RANK3 = 0x07,
PVP_RANK_RANK4 = 0x08,
PVP_RANK_RANK5 = 0x09,
PVP_RANK_RANK6 = 0x0A,
PVP_RANK_RANK7 = 0x0B,
PVP_RANK_RANK8 = 0x0C,
PVP_RANK_RANK9 = 0x0D,
PVP_RANK_RANK10 = 0x0E,
PVP_RANK_RANK11 = 0x0F,
PVP_RANK_RANK12 = 0x10,
PVP_RANK_RANK13 = 0x11,
PVP_RANK_RANK14 = 0x12,
PVP_RANK_FACTION_LEADER = 0x13,
} e_pvp_rank;
static const value_string e_pvp_rank_strings[] = {
{ PVP_RANK_NO_RANK, "No Rank" },
{ PVP_RANK_PARIAH, "Pariah" },
{ PVP_RANK_OUTLAW, "Outlaw" },
{ PVP_RANK_EXILED, "Exiled" },
{ PVP_RANK_DISHONORED, "Dishonored" },
{ PVP_RANK_RANK1, "Rank1" },
{ PVP_RANK_RANK2, "Rank2" },
{ PVP_RANK_RANK3, "Rank3" },
{ PVP_RANK_RANK4, "Rank4" },
{ PVP_RANK_RANK5, "Rank5" },
{ PVP_RANK_RANK6, "Rank6" },
{ PVP_RANK_RANK7, "Rank7" },
{ PVP_RANK_RANK8, "Rank8" },
{ PVP_RANK_RANK9, "Rank9" },
{ PVP_RANK_RANK10, "Rank10" },
{ PVP_RANK_RANK11, "Rank11" },
{ PVP_RANK_RANK12, "Rank12" },
{ PVP_RANK_RANK13, "Rank13" },
{ PVP_RANK_RANK14, "Rank14" },
{ PVP_RANK_FACTION_LEADER, "Faction Leader" },
{ 0, NULL }
};
typedef enum {
RACE_HUMAN = 0x1,
RACE_ORC = 0x2,
RACE_DWARF = 0x3,
RACE_NIGHT_ELF = 0x4,
RACE_UNDEAD = 0x5,
RACE_TAUREN = 0x6,
RACE_GNOME = 0x7,
RACE_TROLL = 0x8,
RACE_GOBLIN = 0x9,
} e_race;
static const value_string e_race_strings[] = {
{ RACE_HUMAN, "Human" },
{ RACE_ORC, "Orc" },
{ RACE_DWARF, "Dwarf" },
{ RACE_NIGHT_ELF, "Night Elf" },
{ RACE_UNDEAD, "Undead" },
{ RACE_TAUREN, "Tauren" },
{ RACE_GNOME, "Gnome" },
{ RACE_TROLL, "Troll" },
{ RACE_GOBLIN, "Goblin" },
{ 0, NULL }
};
typedef enum {
CLASS_WARRIOR = 0x1,
CLASS_PALADIN = 0x2,
CLASS_HUNTER = 0x3,
CLASS_ROGUE = 0x4,
CLASS_PRIEST = 0x5,
CLASS_SHAMAN = 0x7,
CLASS_MAGE = 0x8,
CLASS_WARLOCK = 0x9,
CLASS_DRUID = 0xB,
} e_class;
static const value_string e_class_strings[] = {
{ CLASS_WARRIOR, "Warrior" },
{ CLASS_PALADIN, "Paladin" },
{ CLASS_HUNTER, "Hunter" },
{ CLASS_ROGUE, "Rogue" },
{ CLASS_PRIEST, "Priest" },
{ CLASS_SHAMAN, "Shaman" },
{ CLASS_MAGE, "Mage" },
{ CLASS_WARLOCK, "Warlock" },
{ CLASS_DRUID, "Druid" },
{ 0, NULL }
};
typedef enum {
GENDER_MALE = 0x0,
GENDER_FEMALE = 0x1,
GENDER_NONE = 0x2,
} e_gender;
static const value_string e_gender_strings[] = {
{ GENDER_MALE, "Male" },
{ GENDER_FEMALE, "Female" },
{ GENDER_NONE, "None" },
{ 0, NULL }
};
typedef enum {
AREA_DUN_MOROGH = 0x001,
AREA_LONGSHORE = 0x002,
AREA_BADLANDS = 0x003,
AREA_BLASTED_LANDS = 0x004,
AREA_BLACKWATER_COVE = 0x007,
AREA_SWAMP_OF_SORROWS = 0x008,
AREA_NORTHSHIRE_VALLEY = 0x009,
AREA_DUSKWOOD = 0x00A,
AREA_WETLANDS = 0x00B,
AREA_ELWYNN_FOREST = 0x00C,
AREA_THE_WORLD_TREE = 0x00D,
AREA_DUROTAR = 0x00E,
AREA_DUSTWALLOW_MARSH = 0x00F,
AREA_AZSHARA = 0x010,
AREA_THE_BARRENS = 0x011,
AREA_CRYSTAL_LAKE = 0x012,
AREA_ZUL_GURUB0 = 0x013,
AREA_MOONBROOK = 0x014,
AREA_KUL_TIRAS = 0x015,
AREA_PROGRAMMER_ISLE = 0x016,
AREA_NORTHSHIRE_RIVER = 0x017,
AREA_NORTHSHIRE_ABBEY = 0x018,
AREA_BLACKROCK_MOUNTAIN0 = 0x019,
AREA_LIGHTHOUSE = 0x01A,
AREA_WESTERN_PLAGUELANDS = 0x01C,
AREA_NINE = 0x01E,
AREA_THE_CEMETARY = 0x020,
AREA_STRANGLETHORN_VALE = 0x021,
AREA_ECHO_RIDGE_MINE = 0x022,
AREA_BOOTY_BAY = 0x023,
AREA_ALTERAC_MOUNTAINS = 0x024,
AREA_LAKE_NAZFERITI = 0x025,
AREA_LOCH_MODAN = 0x026,
AREA_WESTFALL0 = 0x028,
AREA_DEADWIND_PASS = 0x029,
AREA_DARKSHIRE = 0x02A,
AREA_WILD_SHORE = 0x02B,
AREA_REDRIDGE_MOUNTAINS = 0x02C,
AREA_ARATHI_HIGHLANDS = 0x02D,
AREA_BURNING_STEPPES = 0x02E,
AREA_THE_HINTERLANDS = 0x02F,
AREA_DEAD_MANS_HOLE = 0x031,
AREA_SEARING_GORGE = 0x033,
AREA_THIEVES_CAMP = 0x035,
AREA_JASPERLODE_MINE = 0x036,
AREA_VALLEY_OF_HEROES_UNUSED = 0x037,
AREA_HEROES_VIGIL = 0x038,
AREA_FARGODEEP_MINE = 0x039,
AREA_NORTHSHIRE_VINEYARDS = 0x03B,
AREA_FORESTS_EDGE = 0x03C,
AREA_THUNDER_FALLS = 0x03D,
AREA_BRACKWELL_PUMPKIN_PATCH = 0x03E,
AREA_THE_STONEFIELD_FARM = 0x03F,
AREA_THE_MACLURE_VINEYARDS = 0x040,
AREA_ON_MAP_DUNGEON0 = 0x041,
AREA_ON_MAP_DUNGEON1 = 0x042,
AREA_ON_MAP_DUNGEON2 = 0x043,
AREA_LAKE_EVERSTILL = 0x044,
AREA_LAKESHIRE = 0x045,
AREA_STONEWATCH = 0x046,
AREA_STONEWATCH_FALLS = 0x047,
AREA_THE_DARK_PORTAL = 0x048,
AREA_THE_TAINTED_SCAR = 0x049,
AREA_POOL_OF_TEARS = 0x04A,
AREA_STONARD = 0x04B,
AREA_FALLOW_SANCTUARY = 0x04C,
AREA_ANVILMAR = 0x04D,
AREA_STORMWIND_MOUNTAINS = 0x050,
AREA_JEFF_NE_QUADRANT_CHANGED = 0x051,
AREA_JEFF_NW_QUADRANT = 0x052,
AREA_JEFF_SE_QUADRANT = 0x053,
AREA_JEFF_SW_QUADRANT = 0x054,
AREA_TIRISFAL_GLADES = 0x055,
AREA_STONE_CAIRN_LAKE = 0x056,
AREA_GOLDSHIRE = 0x057,
AREA_EASTVALE_LOGGING_CAMP = 0x058,
AREA_MIRROR_LAKE_ORCHARD = 0x059,
AREA_TOWER_OF_AZORA = 0x05B,
AREA_MIRROR_LAKE = 0x05C,
AREA_VUL_GOL_OGRE_MOUND = 0x05D,
AREA_RAVEN_HILL = 0x05E,
AREA_REDRIDGE_CANYONS = 0x05F,
AREA_TOWER_OF_ILGALAR = 0x060,
AREA_ALTHERS_MILL = 0x061,
AREA_RETHBAN_CAVERNS = 0x062,
AREA_REBEL_CAMP = 0x063,
AREA_NESINGWARYS_EXPEDITION = 0x064,
AREA_KURZENS_COMPOUND = 0x065,
AREA_RUINS_OF_ZUL_KUNDA = 0x066,
AREA_RUINS_OF_ZUL_MAMWE = 0x067,
AREA_THE_VILE_REEF = 0x068,
AREA_MOSH_OGG_OGRE_MOUND = 0x069,
AREA_THE_STOCKPILE = 0x06A,
AREA_SALDEANS_FARM = 0x06B,
AREA_SENTINEL_HILL = 0x06C,
AREA_FURLBROWS_PUMPKIN_FARM = 0x06D,
AREA_JANGOLODE_MINE = 0x06F,
AREA_GOLD_COAST_QUARRY = 0x071,
AREA_WESTFALL_LIGHTHOUSE = 0x073,
AREA_MISTY_VALLEY = 0x074,
AREA_GROMGOL_BASE_CAMP = 0x075,
AREA_WHELGARS_EXCAVATION_SITE = 0x076,
AREA_WESTBROOK_GARRISON = 0x078,
AREA_TRANQUIL_GARDENS_CEMETERY = 0x079,
AREA_ZUULDAIA_RUINS = 0x07A,
AREA_BALLAL_RUINS = 0x07B,
AREA_KALAI_RUINS = 0x07D,
AREA_TKASHI_RUINS = 0x07E,
AREA_BALIAMAH_RUINS = 0x07F,
AREA_ZIATAJAI_RUINS = 0x080,
AREA_MIZJAH_RUINS = 0x081,
AREA_SILVERPINE_FOREST = 0x082,
AREA_KHARANOS = 0x083,
AREA_COLDRIDGE_VALLEY = 0x084,
AREA_GNOMEREGAN0 = 0x085,
AREA_GOL_BOLAR_QUARRY = 0x086,
AREA_FROSTMANE_HOLD = 0x087,
AREA_THE_GRIZZLED_DEN = 0x088,
AREA_BREWNALL_VILLAGE = 0x089,
AREA_MISTY_PINE_REFUGE = 0x08A,
AREA_EASTERN_PLAGUELANDS = 0x08B,
AREA_TELDRASSIL = 0x08D,
AREA_IRONBANDS_EXCAVATION_SITE = 0x08E,
AREA_MOGROSH_STRONGHOLD = 0x08F,
AREA_THELSAMAR = 0x090,
AREA_ALGAZ_GATE = 0x091,
AREA_STONEWROUGHT_DAM = 0x092,
AREA_THE_FARSTRIDER_LODGE = 0x093,
AREA_DARKSHORE = 0x094,
AREA_SILVER_STREAM_MINE = 0x095,
AREA_MENETHIL_HARBOR = 0x096,
AREA_DESIGNER_ISLAND = 0x097,
AREA_THE_BULWARK0 = 0x098,
AREA_RUINS_OF_LORDAERON = 0x099,
AREA_DEATHKNELL = 0x09A,
AREA_NIGHT_WEBS_HOLLOW = 0x09B,
AREA_SOLLIDEN_FARMSTEAD = 0x09C,
AREA_AGAMAND_MILLS = 0x09D,
AREA_AGAMAND_FAMILY_CRYPT = 0x09E,
AREA_BRILL = 0x09F,
AREA_WHISPERING_GARDENS = 0x0A0,
AREA_TERRACE_OF_REPOSE = 0x0A1,
AREA_BRIGHTWATER_LAKE = 0x0A2,
AREA_GUNTHERS_RETREAT = 0x0A3,
AREA_GARRENS_HAUNT = 0x0A4,
AREA_BALNIR_FARMSTEAD = 0x0A5,
AREA_COLD_HEARTH_MANOR = 0x0A6,
AREA_CRUSADER_OUTPOST = 0x0A7,
AREA_THE_NORTH_COAST = 0x0A8,
AREA_WHISPERING_SHORE = 0x0A9,
AREA_LORDAMERE_LAKE0 = 0x0AA,
AREA_FENRIS_ISLE = 0x0AC,
AREA_FAOLS_REST = 0x0AD,
AREA_DOLANAAR = 0x0BA,
AREA_DARNASSUS_UNUSED = 0x0BB,
AREA_SHADOWGLEN = 0x0BC,
AREA_STEELGRILLS_DEPOT = 0x0BD,
AREA_HEARTHGLEN = 0x0BE,
AREA_NORTHRIDGE_LUMBER_CAMP = 0x0C0,
AREA_RUINS_OF_ANDORHAL = 0x0C1,
AREA_SCHOOL_OF_NECROMANCY = 0x0C3,
AREA_UTHERS_TOMB = 0x0C4,
AREA_SORROW_HILL = 0x0C5,
AREA_THE_WEEPING_CAVE = 0x0C6,
AREA_FELSTONE_FIELD = 0x0C7,
AREA_DALSONS_TEARS = 0x0C8,
AREA_GAHRRONS_WITHERING = 0x0C9,
AREA_THE_WRITHING_HAUNT = 0x0CA,
AREA_MARDENHOLDE_KEEP = 0x0CB,
AREA_PYREWOOD_VILLAGE = 0x0CC,
AREA_DUN_MODR = 0x0CD,
AREA_WESTFALL1 = 0x0CE,
AREA_THE_GREAT_SEA0 = 0x0CF,
AREA_UNUSED_IRONCLADCOVE = 0x0D0,
AREA_SHADOWFANG_KEEP0 = 0x0D1,
AREA_ON_MAP_DUNGEON3 = 0x0D2,
AREA_ICEFLOW_LAKE = 0x0D3,
AREA_HELMS_BED_LAKE = 0x0D4,
AREA_DEEP_ELEM_MINE = 0x0D5,
AREA_THE_GREAT_SEA1 = 0x0D6,
AREA_MULGORE = 0x0D7,
AREA_ALEXSTON_FARMSTEAD = 0x0DB,
AREA_RED_CLOUD_MESA = 0x0DC,
AREA_CAMP_NARACHE = 0x0DD,
AREA_BLOODHOOF_VILLAGE = 0x0DE,
AREA_STONEBULL_LAKE = 0x0DF,
AREA_RAVAGED_CARAVAN = 0x0E0,
AREA_RED_ROCKS = 0x0E1,
AREA_THE_SKITTERING_DARK = 0x0E2,
AREA_VALGANS_FIELD = 0x0E3,
AREA_THE_SEPULCHER = 0x0E4,
AREA_OLSENS_FARTHING = 0x0E5,
AREA_THE_GREYMANE_WALL = 0x0E6,
AREA_BERENS_PERIL = 0x0E7,
AREA_THE_DAWNING_ISLES = 0x0E8,
AREA_AMBERMILL = 0x0E9,
AREA_FENRIS_KEEP = 0x0EB,
AREA_SHADOWFANG_KEEP1 = 0x0EC,
AREA_THE_DECREPIT_FERRY = 0x0ED,
AREA_MALDENS_ORCHARD = 0x0EE,
AREA_THE_IVAR_PATCH = 0x0EF,
AREA_THE_DEAD_FIELD = 0x0F0,
AREA_THE_ROTTING_ORCHARD = 0x0F1,
AREA_BRIGHTWOOD_GROVE = 0x0F2,
AREA_FORLORN_ROWE = 0x0F3,
AREA_THE_WHIPPLE_ESTATE = 0x0F4,
AREA_THE_YORGEN_FARMSTEAD = 0x0F5,
AREA_THE_CAULDRON = 0x0F6,
AREA_GRIMESILT_DIG_SITE = 0x0F7,
AREA_DREADMAUL_ROCK = 0x0F9,
AREA_RUINS_OF_THAURISSAN = 0x0FA,
AREA_FLAME_CREST = 0x0FB,
AREA_BLACKROCK_STRONGHOLD = 0x0FC,
AREA_THE_PILLAR_OF_ASH = 0x0FD,
AREA_BLACKROCK_MOUNTAIN1 = 0x0FE,
AREA_ALTAR_OF_STORMS0 = 0x0FF,
AREA_ALDRASSIL = 0x100,
AREA_SHADOWTHREAD_CAVE = 0x101,
AREA_FEL_ROCK = 0x102,
AREA_LAKE_AL_AMETH = 0x103,
AREA_STARBREEZE_VILLAGE = 0x104,
AREA_GNARLPINE_HOLD = 0x105,
AREA_BANETHIL_BARROW_DEN = 0x106,
AREA_THE_CLEFT = 0x107,
AREA_THE_ORACLE_GLADE = 0x108,
AREA_WELLSPRING_RIVER = 0x109,
AREA_WELLSPRING_LAKE = 0x10A,
AREA_HILLSBRAD_FOOTHILLS = 0x10B,
AREA_AZSHARA_CRATER = 0x10C,
AREA_DUN_ALGAZ0 = 0x10D,
AREA_SOUTHSHORE0 = 0x10F,
AREA_TARREN_MILL0 = 0x110,
AREA_DURNHOLDE_KEEP0 = 0x113,
AREA_UNUSED_STONEWROUGHT_PASS = 0x114,
AREA_THE_FOOTHILL_CAVERNS = 0x115,
AREA_LORDAMERE_INTERNMENT_CAMP = 0x116,
AREA_DALARAN = 0x117,
AREA_STRAHNBRAD = 0x118,
AREA_RUINS_OF_ALTERAC = 0x119,
AREA_CRUSHRIDGE_HOLD = 0x11A,
AREA_SLAUGHTER_HOLLOW = 0x11B,
AREA_THE_UPLANDS = 0x11C,
AREA_SOUTHPOINT_TOWER0 = 0x11D,
AREA_HILLSBRAD_FIELDS0 = 0x11E,
AREA_HILLSBRAD = 0x11F,
AREA_AZURELODE_MINE0 = 0x120,
AREA_NETHANDER_STEAD0 = 0x121,
AREA_DUN_GAROK0 = 0x122,
AREA_THORADINS_WALL0 = 0x125,
AREA_EASTERN_STRAND0 = 0x126,
AREA_WESTERN_STRAND0 = 0x127,
AREA_SOUTH_SEAS_UNUSED = 0x128,
AREA_JAGUERO_ISLE = 0x129,
AREA_BARADIN_BAY = 0x12A,
AREA_MENETHIL_BAY = 0x12B,
AREA_MISTY_REED_STRAND = 0x12C,
AREA_THE_SAVAGE_COAST = 0x12D,
AREA_THE_CRYSTAL_SHORE = 0x12E,
AREA_SHELL_BEACH = 0x12F,
AREA_NORTH_TIDES_RUN = 0x131,
AREA_SOUTH_TIDES_RUN = 0x132,
AREA_THE_OVERLOOK_CLIFFS = 0x133,
AREA_THE_FORBIDDING_SEA0 = 0x134,
AREA_IRONBEARDS_TOMB = 0x135,
AREA_CRYSTALVEIN_MINE = 0x136,
AREA_RUINS_OF_ABORAZ = 0x137,
AREA_JANEIROS_POINT = 0x138,
AREA_NORTHFOLD_MANOR = 0x139,
AREA_GO_SHEK_FARM = 0x13A,
AREA_DABYRIES_FARMSTEAD = 0x13B,
AREA_BOULDERFIST_HALL = 0x13C,
AREA_WITHERBARK_VILLAGE = 0x13D,
AREA_DRYWHISKER_GORGE = 0x13E,
AREA_REFUGE_POINTE = 0x140,
AREA_HAMMERFALL = 0x141,
AREA_BLACKWATER_SHIPWRECKS = 0x142,
AREA_O_BREENS_CAMP = 0x143,
AREA_STROMGARDE_KEEP = 0x144,
AREA_THE_TOWER_OF_ARATHOR = 0x145,
AREA_THE_SANCTUM = 0x146,
AREA_FALDIRS_COVE = 0x147,
AREA_THE_DROWNED_REEF = 0x148,
AREA_THANDOL_SPAN0 = 0x14A,
AREA_ASHENVALE = 0x14B,
AREA_THE_GREAT_SEA2 = 0x14C,
AREA_CIRCLE_OF_EAST_BINDING = 0x14D,
AREA_CIRCLE_OF_WEST_BINDING = 0x14E,
AREA_CIRCLE_OF_INNER_BINDING = 0x14F,
AREA_CIRCLE_OF_OUTER_BINDING = 0x150,
AREA_APOCRYPHANS_REST = 0x151,
AREA_ANGOR_FORTRESS = 0x152,
AREA_LETHLOR_RAVINE = 0x153,
AREA_KARGATH = 0x154,
AREA_CAMP_KOSH = 0x155,
AREA_CAMP_BOFF = 0x156,
AREA_CAMP_WURG = 0x157,
AREA_CAMP_CAGG = 0x158,
AREA_AGMONDS_END = 0x159,
AREA_HAMMERTOES_DIGSITE = 0x15A,
AREA_DUSTBELCH_GROTTO = 0x15B,
AREA_AERIE_PEAK = 0x15C,
AREA_WILDHAMMER_KEEP = 0x15D,
AREA_QUEL_DANIL_LODGE = 0x15E,
AREA_SKULK_ROCK = 0x15F,
AREA_ZUNWATHA = 0x160,
AREA_SHADRA_ALOR = 0x161,
AREA_JINTHA_ALOR = 0x162,
AREA_THE_ALTAR_OF_ZUL = 0x163,
AREA_SERADANE = 0x164,
AREA_FERALAS = 0x165,
AREA_BRAMBLEBLADE_RAVINE = 0x166,
AREA_BAEL_MODAN = 0x167,
AREA_THE_VENTURE_CO_MINE = 0x168,
AREA_FELWOOD = 0x169,
AREA_RAZOR_HILL = 0x16A,
AREA_VALLEY_OF_TRIALS = 0x16B,
AREA_THE_DEN = 0x16C,
AREA_BURNING_BLADE_COVEN = 0x16D,
AREA_KOLKAR_CRAG = 0x16E,
AREA_SENJIN_VILLAGE = 0x16F,
AREA_ECHO_ISLES = 0x170,
AREA_THUNDER_RIDGE = 0x171,
AREA_DRYGULCH_RAVINE = 0x172,
AREA_DUSTWIND_CAVE = 0x173,
AREA_TIRAGARDE_KEEP = 0x174,
AREA_SCUTTLE_COAST = 0x175,
AREA_BLADEFIST_BAY = 0x176,
AREA_DEADEYE_SHORE = 0x177,
AREA_SOUTHFURY_RIVER0 = 0x179,
AREA_CAMP_TAURAJO = 0x17A,
AREA_FAR_WATCH_POST = 0x17B,
AREA_THE_CROSSROADS = 0x17C,
AREA_BOULDER_LODE_MINE = 0x17D,
AREA_THE_SLUDGE_FEN = 0x17E,
AREA_THE_DRY_HILLS = 0x17F,
AREA_DREADMIST_PEAK = 0x180,
AREA_NORTHWATCH_HOLD = 0x181,
AREA_THE_FORGOTTEN_POOLS = 0x182,
AREA_LUSHWATER_OASIS = 0x183,
AREA_THE_STAGNANT_OASIS = 0x184,
AREA_FIELD_OF_GIANTS = 0x186,
AREA_THE_MERCHANT_COAST = 0x187,
AREA_RATCHET = 0x188,
AREA_DARKSPEAR_STRAND = 0x189,
AREA_DARROWMERE_LAKE_UNUSED = 0x18A,
AREA_CAER_DARROW_UNUSED = 0x18B,
AREA_WINTERHOOF_WATER_WELL = 0x18C,
AREA_THUNDERHORN_WATER_WELL = 0x18D,
AREA_WILDMANE_WATER_WELL = 0x18E,
AREA_SKYLINE_RIDGE = 0x18F,
AREA_THOUSAND_NEEDLES = 0x190,
AREA_THE_TIDUS_STAIR = 0x191,
AREA_SHADY_REST_INN = 0x193,
AREA_BAELDUN_DIGSITE = 0x194,
AREA_DESOLACE = 0x195,
AREA_STONETALON_MOUNTAINS = 0x196,
AREA_ORGRIMMAR_UNUSED = 0x197,
AREA_GILLIJIMS_ISLE = 0x198,
AREA_ISLAND_OF_DOCTOR_LAPIDIS = 0x199,
AREA_RAZORWIND_CANYON = 0x19A,
AREA_BATHRANS_HAUNT = 0x19B,
AREA_THE_RUINS_OF_ORDIL_ARAN = 0x19C,
AREA_MAESTRAS_POST = 0x19D,
AREA_THE_ZORAM_STRAND = 0x19E,
AREA_ASTRANAAR = 0x19F,
AREA_THE_SHRINE_OF_AESSINA = 0x1A0,
AREA_FIRE_SCAR_SHRINE = 0x1A1,
AREA_THE_RUINS_OF_STARDUST = 0x1A2,
AREA_THE_HOWLING_VALE = 0x1A3,
AREA_SILVERWIND_REFUGE = 0x1A4,
AREA_MYSTRAL_LAKE = 0x1A5,
AREA_FALLEN_SKY_LAKE = 0x1A6,
AREA_IRIS_LAKE = 0x1A8,
AREA_MOONWELL = 0x1A9,
AREA_RAYNEWOOD_RETREAT = 0x1AA,
AREA_THE_SHADY_NOOK = 0x1AB,
AREA_NIGHT_RUN = 0x1AC,
AREA_XAVIAN = 0x1AD,
AREA_SATYRNAAR = 0x1AE,
AREA_SPLINTERTREE_POST = 0x1AF,
AREA_THE_DOR_DANIL_BARROW_DEN = 0x1B0,
AREA_FALFARREN_RIVER = 0x1B1,
AREA_FELFIRE_HILL = 0x1B2,
AREA_DEMON_FALL_CANYON = 0x1B3,
AREA_DEMON_FALL_RIDGE = 0x1B4,
AREA_WARSONG_LUMBER_CAMP = 0x1B5,
AREA_BOUGH_SHADOW = 0x1B6,
AREA_THE_SHIMMERING_FLATS = 0x1B7,
AREA_TANARIS = 0x1B8,
AREA_LAKE_FALATHIM = 0x1B9,
AREA_AUBERDINE = 0x1BA,
AREA_RUINS_OF_MATHYSTRA = 0x1BB,
AREA_TOWER_OF_ALTHALAXX = 0x1BC,
AREA_CLIFFSPRING_FALLS = 0x1BD,
AREA_BASHAL_ARAN = 0x1BE,
AREA_AMETH_ARAN = 0x1BF,
AREA_GROVE_OF_THE_ANCIENTS = 0x1C0,
AREA_THE_MASTERS_GLAIVE = 0x1C1,
AREA_REMTRAVELS_EXCAVATION = 0x1C2,
AREA_MISTS_EDGE = 0x1C4,
AREA_THE_LONG_WASH = 0x1C5,
AREA_WILDBEND_RIVER = 0x1C6,
AREA_BLACKWOOD_DEN = 0x1C7,
AREA_CLIFFSPRING_RIVER = 0x1C8,
AREA_THE_VEILED_SEA0 = 0x1C9,
AREA_GOLD_ROAD = 0x1CA,
AREA_SCARLET_WATCH_POST = 0x1CB,
AREA_SUN_ROCK_RETREAT = 0x1CC,
AREA_WINDSHEAR_CRAG = 0x1CD,
AREA_CRAGPOOL_LAKE = 0x1CF,
AREA_MIRKFALLON_LAKE = 0x1D0,
AREA_THE_CHARRED_VALE = 0x1D1,
AREA_VALLEY_OF_THE_BLOODFURIES = 0x1D2,
AREA_STONETALON_PEAK = 0x1D3,
AREA_THE_TALON_DEN = 0x1D4,
AREA_GREATWOOD_VALE = 0x1D5,
AREA_THUNDER_BLUFF_UNUSED = 0x1D6,
AREA_BRAVE_WIND_MESA = 0x1D7,
AREA_FIRE_STONE_MESA = 0x1D8,
AREA_MANTLE_ROCK = 0x1D9,
AREA_HUNTER_RISE_UNUSED = 0x1DA,
AREA_SPIRIT_RISE_UNUSED = 0x1DB,
AREA_ELDER_RISE_UNUSED = 0x1DC,
AREA_RUINS_OF_JUBUWAL = 0x1DD,
AREA_POOLS_OF_ARLITHRIEN = 0x1DE,
AREA_THE_RUSTMAUL_DIG_SITE = 0x1DF,
AREA_CAMP_ETHOK = 0x1E0,
AREA_SPLITHOOF_CRAG = 0x1E1,
AREA_HIGHPERCH = 0x1E2,
AREA_THE_SCREECHING_CANYON = 0x1E3,
AREA_FREEWIND_POST = 0x1E4,
AREA_THE_GREAT_LIFT0 = 0x1E5,
AREA_GALAK_HOLD = 0x1E6,
AREA_ROGUEFEATHER_DEN = 0x1E7,
AREA_THE_WEATHERED_NOOK = 0x1E8,
AREA_THALANAAR = 0x1E9,
AREA_UN_GORO_CRATER = 0x1EA,
AREA_RAZORFEN_KRAUL0 = 0x1EB,
AREA_RAVEN_HILL_CEMETERY = 0x1EC,
AREA_MOONGLADE = 0x1ED,
AREA_DELETE_ME0 = 0x1EF,
AREA_BRACKENWALL_VILLAGE = 0x1F0,
AREA_SWAMPLIGHT_MANOR = 0x1F1,
AREA_BLOODFEN_BURROW = 0x1F2,
AREA_DARKMIST_CAVERN = 0x1F3,
AREA_MOGGLE_POINT = 0x1F4,
AREA_BEEZILS_WRECK = 0x1F5,
AREA_WITCH_HILL = 0x1F6,
AREA_SENTRY_POINT = 0x1F7,
AREA_NORTH_POINT_TOWER = 0x1F8,
AREA_WEST_POINT_TOWER = 0x1F9,
AREA_LOST_POINT = 0x1FA,
AREA_BLUEFEN = 0x1FB,
AREA_STONEMAUL_RUINS = 0x1FC,
AREA_THE_DEN_OF_FLAME = 0x1FD,
AREA_THE_DRAGONMURK = 0x1FE,
AREA_WYRMBOG = 0x1FF,
AREA_ONYXIAS_LAIR_UNUSED = 0x200,
AREA_THERAMORE_ISLE = 0x201,
AREA_FOOTHOLD_CITADEL = 0x202,
AREA_IRONCLAD_PRISON = 0x203,
AREA_DUSTWALLOW_BAY = 0x204,
AREA_TIDEFURY_COVE = 0x205,
AREA_DREADMURK_SHORE = 0x206,
AREA_ADDLES_STEAD = 0x218,
AREA_FIRE_PLUME_RIDGE = 0x219,
AREA_LAKKARI_TAR_PITS = 0x21A,
AREA_TERROR_RUN = 0x21B,
AREA_THE_SLITHERING_SCAR = 0x21C,
AREA_MARSHALS_REFUGE = 0x21D,
AREA_FUNGAL_ROCK = 0x21E,
AREA_GOLAKKA_HOT_SPRINGS = 0x21F,
AREA_THE_LOCH = 0x22C,
AREA_BEGGARS_HAUNT = 0x240,
AREA_KODO_GRAVEYARD = 0x254,
AREA_GHOST_WALKER_POST = 0x255,
AREA_SARTHERIS_STRAND = 0x256,
AREA_THUNDER_AXE_FORTRESS = 0x257,
AREA_BOLGANS_HOLE = 0x258,
AREA_MANNOROC_COVEN = 0x25A,
AREA_SARGERON = 0x25B,
AREA_MAGRAM_VILLAGE = 0x25C,
AREA_GELKIS_VILLAGE = 0x25E,
AREA_VALLEY_OF_SPEARS = 0x25F,
AREA_NIJELS_POINT = 0x260,
AREA_KOLKAR_VILLAGE = 0x261,
AREA_HYJAL = 0x268,
AREA_WINTERSPRING = 0x26A,
AREA_BLACKWOLF_RIVER = 0x27C,
AREA_KODO_ROCK = 0x27D,
AREA_HIDDEN_PATH = 0x27E,
AREA_SPIRIT_ROCK = 0x27F,
AREA_SHRINE_OF_THE_DORMANT_FLAME = 0x280,
AREA_LAKE_ELUNEARA = 0x290,
AREA_THE_HARBORAGE = 0x291,
AREA_OUTLAND = 0x2A4,
AREA_CRAFTSMENS_TERRACE_UNUSED = 0x2B8,
AREA_TRADESMENS_TERRACE_UNUSED = 0x2B9,
AREA_THE_TEMPLE_GARDENS_UNUSED = 0x2BA,
AREA_TEMPLE_OF_ELUNE_UNUSED = 0x2BB,
AREA_CENARION_ENCLAVE_UNUSED = 0x2BC,
AREA_WARRIORS_TERRACE_UNUSED = 0x2BD,
AREA_RUTTHERAN_VILLAGE = 0x2BE,
AREA_IRONBANDS_COMPOUND = 0x2CC,
AREA_THE_STOCKADE = 0x2CD,
AREA_WAILING_CAVERNS = 0x2CE,
AREA_BLACKFATHOM_DEEPS0 = 0x2CF,
AREA_FRAY_ISLAND = 0x2D0,
AREA_GNOMEREGAN1 = 0x2D1,
AREA_RAZORFEN_DOWNS0 = 0x2D2,
AREA_BANETHIL_HOLLOW = 0x2E0,
AREA_SCARLET_MONASTERY = 0x31C,
AREA_JERODS_LANDING = 0x31D,
AREA_RIDGEPOINT_TOWER = 0x31E,
AREA_THE_DARKENED_BANK = 0x31F,
AREA_COLDRIDGE_PASS = 0x320,
AREA_CHILL_BREEZE_VALLEY = 0x321,
AREA_SHIMMER_RIDGE = 0x322,
AREA_AMBERSTILL_RANCH = 0x323,
AREA_THE_TUNDRID_HILLS = 0x324,
AREA_SOUTH_GATE_PASS0 = 0x325,
AREA_SOUTH_GATE_OUTPOST = 0x326,
AREA_NORTH_GATE_PASS0 = 0x327,
AREA_NORTH_GATE_OUTPOST = 0x328,
AREA_GATES_OF_IRONFORGE = 0x329,
AREA_STILLWATER_POND = 0x32A,
AREA_NIGHTMARE_VALE = 0x32B,
AREA_VENOMWEB_VALE = 0x32C,
AREA_THE_BULWARK1 = 0x32D,
AREA_SOUTHFURY_RIVER1 = 0x32E,
AREA_SOUTHFURY_RIVER2 = 0x32F,
AREA_RAZORMANE_GROUNDS = 0x330,
AREA_SKULL_ROCK = 0x331,
AREA_PALEMANE_ROCK = 0x332,
AREA_WINDFURY_RIDGE = 0x333,
AREA_THE_GOLDEN_PLAINS = 0x334,
AREA_THE_ROLLING_PLAINS = 0x335,
AREA_DUN_ALGAZ1 = 0x344,
AREA_DUN_ALGAZ2 = 0x345,
AREA_NORTH_GATE_PASS1 = 0x346,
AREA_SOUTH_GATE_PASS1 = 0x347,
AREA_TWILIGHT_GROVE = 0x358,
AREA_GM_ISLAND = 0x36C,
AREA_DELETE_ME1 = 0x36D,
AREA_SOUTHFURY_RIVER3 = 0x36E,
AREA_SOUTHFURY_RIVER4 = 0x36F,
AREA_THANDOL_SPAN1 = 0x370,
AREA_THANDOL_SPAN2 = 0x371,
AREA_PURGATION_ISLE = 0x380,
AREA_THE_JANSEN_STEAD = 0x394,
AREA_THE_DEAD_ACRE = 0x395,
AREA_THE_MOLSEN_FARM = 0x396,
AREA_STENDELS_POND = 0x397,
AREA_THE_DAGGER_HILLS = 0x398,
AREA_DEMONTS_PLACE = 0x399,
AREA_THE_DUST_PLAINS = 0x39A,
AREA_STONESPLINTER_VALLEY = 0x39B,
AREA_VALLEY_OF_KINGS = 0x39C,
AREA_ALGAZ_STATION = 0x39D,
AREA_BUCKLEBREE_FARM = 0x39E,
AREA_THE_SHINING_STRAND = 0x39F,
AREA_NORTH_TIDES_HOLLOW = 0x3A0,
AREA_GRIZZLEPAW_RIDGE = 0x3A8,
AREA_THE_VERDANT_FIELDS = 0x3BC,
AREA_GADGETZAN = 0x3D0,
AREA_STEAMWHEEDLE_PORT = 0x3D1,
AREA_ZUL_FARRAK0 = 0x3D2,
AREA_SANDSORROW_WATCH = 0x3D3,
AREA_THISTLESHRUB_VALLEY = 0x3D4,
AREA_THE_GAPING_CHASM = 0x3D5,
AREA_THE_NOXIOUS_LAIR = 0x3D6,
AREA_DUNEMAUL_COMPOUND = 0x3D7,
AREA_EASTMOON_RUINS = 0x3D8,
AREA_WATERSPRING_FIELD = 0x3D9,
AREA_ZALASHJIS_DEN = 0x3DA,
AREA_LANDS_END_BEACH = 0x3DB,
AREA_WAVESTRIDER_BEACH = 0x3DC,
AREA_ULDUM = 0x3DD,
AREA_VALLEY_OF_THE_WATCHERS = 0x3DE,
AREA_GUNSTANS_POST = 0x3DF,
AREA_SOUTHMOON_RUINS = 0x3E0,
AREA_RENDERS_CAMP = 0x3E4,
AREA_RENDERS_VALLEY = 0x3E5,
AREA_RENDERS_ROCK = 0x3E6,
AREA_STONEWATCH_TOWER = 0x3E7,
AREA_GALARDELL_VALLEY = 0x3E8,
AREA_LAKERIDGE_HIGHWAY = 0x3E9,
AREA_THREE_CORNERS = 0x3EA,
AREA_DIREFORGE_HILL = 0x3F8,
AREA_RAPTOR_RIDGE = 0x3F9,
AREA_BLACK_CHANNEL_MARSH = 0x3FA,
AREA_THE_GREEN_BELT0 = 0x3FB,
AREA_MOSSHIDE_FEN = 0x3FC,
AREA_THELGEN_ROCK = 0x3FD,
AREA_BLUEGILL_MARSH = 0x3FE,
AREA_SALTSPRAY_GLEN = 0x3FF,
AREA_SUNDOWN_MARSH = 0x400,
AREA_THE_GREEN_BELT1 = 0x401,
AREA_ANGERFANG_ENCAMPMENT = 0x40C,
AREA_GRIM_BATOL = 0x40D,
AREA_DRAGONMAW_GATES = 0x40E,
AREA_THE_LOST_FLEET = 0x40F,
AREA_DARROW_HILL0 = 0x420,
AREA_THORADINS_WALL1 = 0x421,
AREA_WEBWINDER_PATH = 0x434,
AREA_THE_HUSHED_BANK = 0x449,
AREA_MANOR_MISTMANTLE = 0x44A,
AREA_CAMP_MOJACHE = 0x44B,
AREA_GRIMTOTEM_COMPOUND = 0x44C,
AREA_THE_WRITHING_DEEP = 0x44D,
AREA_WILDWIND_LAKE = 0x44E,
AREA_GORDUNNI_OUTPOST = 0x44F,
AREA_MOK_GORDUN = 0x450,
AREA_FERAL_SCAR_VALE = 0x451,
AREA_FRAYFEATHER_HIGHLANDS = 0x452,
AREA_IDLEWIND_LAKE = 0x453,
AREA_THE_FORGOTTEN_COAST = 0x454,
AREA_EAST_PILLAR = 0x455,
AREA_WEST_PILLAR = 0x456,
AREA_DREAM_BOUGH = 0x457,
AREA_JADEMIR_LAKE = 0x458,
AREA_ONEIROS = 0x459,
AREA_RUINS_OF_RAVENWIND = 0x45A,
AREA_RAGE_SCAR_HOLD = 0x45B,
AREA_FEATHERMOON_STRONGHOLD = 0x45C,
AREA_RUINS_OF_SOLARSAL = 0x45D,
AREA_LOWER_WILDS_UNUSED = 0x45E,
AREA_THE_TWIN_COLOSSALS = 0x45F,
AREA_SARDOR_ISLE = 0x460,
AREA_ISLE_OF_DREAD = 0x461,
AREA_HIGH_WILDERNESS = 0x470,
AREA_LOWER_WILDS = 0x471,
AREA_SOUTHERN_BARRENS = 0x484,
AREA_SOUTHERN_GOLD_ROAD = 0x485,
AREA_ZUL_FARRAK1 = 0x498,
AREA_UNUSED_ALCAZ_ISLAND = 0x4AC,
AREA_TIMBERMAW_HOLD0 = 0x4C0,
AREA_VANNDIR_ENCAMPMENT = 0x4C1,
AREA_TEST_AZSHARA = 0x4C2,
AREA_LEGASH_ENCAMPMENT = 0x4C3,
AREA_THALASSIAN_BASE_CAMP = 0x4C4,
AREA_RUINS_OF_ELDARATH = 0x4C5,
AREA_HETAERAS_CLUTCH = 0x4C6,
AREA_TEMPLE_OF_ZIN_MALOR = 0x4C7,
AREA_BEARS_HEAD = 0x4C8,
AREA_URSOLAN = 0x4C9,
AREA_TEMPLE_OF_ARKKORAN = 0x4CA,
AREA_BAY_OF_STORMS = 0x4CB,
AREA_THE_SHATTERED_STRAND = 0x4CC,
AREA_TOWER_OF_ELDARA = 0x4CD,
AREA_JAGGED_REEF = 0x4CE,
AREA_SOUTHRIDGE_BEACH = 0x4CF,
AREA_RAVENCREST_MONUMENT = 0x4D0,
AREA_FORLORN_RIDGE = 0x4D1,
AREA_LAKE_MENNAR = 0x4D2,
AREA_SHADOWSONG_SHRINE = 0x4D3,
AREA_HALDARR_ENCAMPMENT = 0x4D4,
AREA_VALORMOK = 0x4D5,
AREA_THE_RUINED_REACHES = 0x4E8,
AREA_THE_TALONDEEP_PATH0 = 0x4FC,
AREA_THE_TALONDEEP_PATH1 = 0x4FD,
AREA_ROCKTUSK_FARM = 0x510,
AREA_JAGGEDSWINE_FARM = 0x511,
AREA_RAZORFEN_DOWNS1 = 0x524,
AREA_LOST_RIGGER_COVE = 0x538,
AREA_ULDAMAN0 = 0x539,
AREA_LORDAMERE_LAKE1 = 0x53A,
AREA_LORDAMERE_LAKE2 = 0x53B,
AREA_GALLOWS_CORNER = 0x54D,
AREA_SILITHUS = 0x561,
AREA_EMERALD_FOREST = 0x575,
AREA_SUNKEN_TEMPLE = 0x589,
AREA_DREADMAUL_HOLD = 0x59D,
AREA_NETHERGARDE_KEEP = 0x59E,
AREA_DREADMAUL_POST = 0x59F,
AREA_SERPENTS_COIL = 0x5A0,
AREA_ALTAR_OF_STORMS1 = 0x5A1,
AREA_FIREWATCH_RIDGE = 0x5A2,
AREA_THE_SLAG_PIT = 0x5A3,
AREA_THE_SEA_OF_CINDERS = 0x5A4,
AREA_BLACKROCK_MOUNTAIN2 = 0x5A5,
AREA_THORIUM_POINT = 0x5A6,
AREA_GARRISON_ARMORY = 0x5B1,
AREA_THE_TEMPLE_OF_ATAL_HAKKAR = 0x5C5,
AREA_UNDERCITY = 0x5D9,
AREA_ULDAMAN1 = 0x5ED,
AREA_NOT_USED_DEADMINES = 0x5EE,
AREA_STORMWIND_CITY = 0x5EF,
AREA_IRONFORGE = 0x601,
AREA_SPLITHOOF_HOLD = 0x615,
AREA_THE_CAPE_OF_STRANGLETHORN = 0x629,
AREA_SOUTHERN_SAVAGE_COAST = 0x62A,
AREA_UNUSED_THE_DEADMINES_002 = 0x62B,
AREA_UNUSED_IRONCLAD_COVE_003 = 0x62C,
AREA_THE_DEADMINES = 0x62D,
AREA_IRONCLAD_COVE = 0x62E,
AREA_BLACKROCK_SPIRE = 0x62F,
AREA_BLACKROCK_DEPTHS = 0x630,
AREA_RAPTOR_GROUNDS_UNUSED = 0x63D,
AREA_GROLDOM_FARM_UNUSED = 0x63E,
AREA_MORSHAN_BASE_CAMP = 0x63F,
AREA_HONORS_STAND_UNUSED = 0x640,
AREA_BLACKTHORN_RIDGE_UNUSED = 0x641,
AREA_BRAMBLESCAR_UNUSED = 0x642,
AREA_AGAMAGOR_UNUSED = 0x643,
AREA_VALLEY_OF_HEROES = 0x651,
AREA_ORGRIMMAR = 0x665,
AREA_THUNDER_BLUFF = 0x666,
AREA_ELDER_RISE = 0x667,
AREA_SPIRIT_RISE = 0x668,
AREA_HUNTER_RISE = 0x669,
AREA_DARNASSUS = 0x679,
AREA_CENARION_ENCLAVE = 0x67A,
AREA_CRAFTSMENS_TERRACE = 0x67B,
AREA_WARRIORS_TERRACE = 0x67C,
AREA_THE_TEMPLE_GARDENS = 0x67D,
AREA_TRADESMENS_TERRACE = 0x67E,
AREA_GAVINS_NAZE = 0x68D,
AREA_SOFERAS_NAZE = 0x68E,
AREA_CORRAHNS_DAGGER = 0x68F,
AREA_THE_HEADLAND = 0x690,
AREA_MISTY_SHORE = 0x691,
AREA_DANDREDS_FOLD = 0x692,
AREA_GROWLESS_CAVE = 0x693,
AREA_CHILLWIND_POINT = 0x694,
AREA_RAPTOR_GROUNDS = 0x6A1,
AREA_BRAMBLESCAR = 0x6A2,
AREA_THORN_HILL = 0x6A3,
AREA_AGAMAGOR = 0x6A4,
AREA_BLACKTHORN_RIDGE = 0x6A5,
AREA_HONORS_STAND = 0x6A6,
AREA_THE_MORSHAN_RAMPART = 0x6A7,
AREA_GROLDOM_FARM = 0x6A8,
AREA_RAZORFEN_KRAUL1 = 0x6B5,
AREA_THE_GREAT_LIFT1 = 0x6B6,
AREA_MISTVALE_VALLEY = 0x6C9,
AREA_NEKMANI_WELLSPRING = 0x6CA,
AREA_BLOODSAIL_COMPOUND = 0x6CB,
AREA_VENTURE_CO_BASE_CAMP = 0x6CC,
AREA_GURUBASHI_ARENA = 0x6CD,
AREA_SPIRIT_DEN = 0x6CE,
AREA_THE_CRIMSON_VEIL = 0x6DD,
AREA_THE_RIPTIDE = 0x6DE,
AREA_THE_DAMSELS_LUCK = 0x6DF,
AREA_VENTURE_CO_OPERATIONS_CENTER = 0x6E0,
AREA_DEADWOOD_VILLAGE = 0x6E1,
AREA_FELPAW_VILLAGE = 0x6E2,
AREA_JAEDENAR = 0x6E3,
AREA_BLOODVENOM_RIVER = 0x6E4,
AREA_BLOODVENOM_FALLS = 0x6E5,
AREA_SHATTER_SCAR_VALE = 0x6E6,
AREA_IRONTREE_WOODS = 0x6E7,
AREA_IRONTREE_CAVERN = 0x6E8,
AREA_TIMBERMAW_HOLD1 = 0x6E9,
AREA_SHADOW_HOLD = 0x6EA,
AREA_SHRINE_OF_THE_DECEIVER = 0x6EB,
AREA_ITHARIUSS_CAVE = 0x6F1,
AREA_SORROWMURK = 0x6F2,
AREA_DRAENILDUR_VILLAGE = 0x6F3,
AREA_SPLINTERSPEAR_JUNCTION = 0x6F4,
AREA_STAGALBOG = 0x705,
AREA_THE_SHIFTING_MIRE = 0x706,
AREA_STAGALBOG_CAVE = 0x719,
AREA_WITHERBARK_CAVERNS = 0x72D,
AREA_THORADINS_WALL2 = 0x741,
AREA_BOULDERGOR = 0x742,
AREA_VALLEY_OF_FANGS = 0x755,
AREA_THE_DUSTBOWL = 0x756,
AREA_MIRAGE_FLATS = 0x757,
AREA_FEATHERBEARDS_HOVEL = 0x758,
AREA_SHINDIGGERS_CAMP = 0x759,
AREA_PLAGUEMIST_RAVINE = 0x75A,
AREA_VALORWIND_LAKE = 0x75B,
AREA_AGOLWATHA = 0x75C,
AREA_HIRIWATHA = 0x75D,
AREA_THE_CREEPING_RUIN = 0x75E,
AREA_BOGENS_LEDGE = 0x75F,
AREA_THE_MAKERS_TERRACE = 0x769,
AREA_DUSTWIND_GULCH = 0x76A,
AREA_SHAOLWATHA = 0x77D,
AREA_NOONSHADE_RUINS = 0x791,
AREA_BROKEN_PILLAR = 0x792,
AREA_ABYSSAL_SANDS = 0x793,
AREA_SOUTHBREAK_SHORE = 0x794,
AREA_CAVERNS_OF_TIME0 = 0x795,
AREA_THE_MARSHLANDS = 0x796,
AREA_IRONSTONE_PLATEAU = 0x797,
AREA_BLACKCHAR_CAVE = 0x7A5,
AREA_TANNER_CAMP = 0x7A6,
AREA_DUSTFIRE_VALLEY = 0x7A7,
AREA_ZUL_GURUB1 = 0x7B9,
AREA_MISTY_REED_POST = 0x7BA,
AREA_BLOODVENOM_POST = 0x7CD,
AREA_TALONBRANCH_GLADE = 0x7CE,
AREA_STRATHOLME0 = 0x7E1,
AREA_UNUSED_SHADOWFANG_KEEP_003 = 0x7F5,
AREA_SCHOLOMANCE = 0x809,
AREA_TWILIGHT_VALE = 0x81D,
AREA_TWILIGHT_SHORE = 0x81E,
AREA_ALCAZ_ISLAND = 0x81F,
AREA_DARKCLOUD_PINNACLE = 0x831,
AREA_DAWNING_WOOD_CATACOMBS = 0x832,
AREA_STONEWATCH_KEEP = 0x833,
AREA_MARAUDON = 0x834,
AREA_STOUTLAGER_INN = 0x835,
AREA_THUNDERBREW_DISTILLERY = 0x836,
AREA_MENETHIL_KEEP = 0x837,
AREA_DEEPWATER_TAVERN = 0x838,
AREA_SHADOW_GRAVE = 0x845,
AREA_BRILL_TOWN_HALL = 0x846,
AREA_GALLOWS_END_TAVERN = 0x847,
AREA_THE_POOLS_OF_VISION_UNUSED = 0x859,
AREA_DREADMIST_DEN = 0x85A,
AREA_BAELDUN_KEEP = 0x86D,
AREA_EMBERSTRIFES_DEN = 0x86E,
AREA_ONYXIAS_LAIR = 0x86F,
AREA_WINDSHEAR_MINE = 0x870,
AREA_ROLANDS_DOOM = 0x871,
AREA_BATTLE_RING = 0x881,
AREA_THE_POOLS_OF_VISION = 0x895,
AREA_SHADOWBREAK_RAVINE = 0x896,
AREA_BROKEN_SPEAR_VILLAGE = 0x8A9,
AREA_WHITEREACH_POST = 0x8BD,
AREA_GORNIA = 0x8BE,
AREA_ZANES_EYE_CRATER = 0x8BF,
AREA_MIRAGE_RACEWAY = 0x8C0,
AREA_FROSTSABER_ROCK = 0x8C1,
AREA_THE_HIDDEN_GROVE = 0x8C2,
AREA_TIMBERMAW_POST = 0x8C3,
AREA_WINTERFALL_VILLAGE = 0x8C4,
AREA_MAZTHORIL = 0x8C5,
AREA_FROSTFIRE_HOT_SPRINGS = 0x8C6,
AREA_ICE_THISTLE_HILLS = 0x8C7,
AREA_DUN_MANDARR = 0x8C8,
AREA_FROSTWHISPER_GORGE = 0x8C9,
AREA_OWL_WING_THICKET = 0x8CA,
AREA_LAKE_KEL_THERIL = 0x8CB,
AREA_THE_RUINS_OF_KEL_THERIL = 0x8CC,
AREA_STARFALL_VILLAGE = 0x8CD,
AREA_BAN_THALLOW_BARROW_DEN = 0x8CE,
AREA_EVERLOOK = 0x8CF,
AREA_DARKWHISPER_GORGE = 0x8D0,
AREA_DEEPRUN_TRAM = 0x8D1,
AREA_THE_FUNGAL_VALE = 0x8D2,
AREA_UNUSED_THE_MARRIS_STEAD = 0x8D3,
AREA_THE_MARRIS_STEAD = 0x8D4,
AREA_THE_UNDERCROFT = 0x8D5,
AREA_DARROWSHIRE = 0x8D6,
AREA_CROWN_GUARD_TOWER = 0x8D7,
AREA_CORINS_CROSSING = 0x8D8,
AREA_SCARLET_BASE_CAMP = 0x8D9,
AREA_TYRS_HAND = 0x8DA,
AREA_THE_SCARLET_BASILICA = 0x8DB,
AREA_LIGHTS_HOPE_CHAPEL = 0x8DC,
AREA_BROWMAN_MILL = 0x8DD,
AREA_THE_NOXIOUS_GLADE = 0x8DE,
AREA_EASTWALL_TOWER = 0x8DF,
AREA_NORTHDALE = 0x8E0,
AREA_ZUL_MASHAR = 0x8E1,
AREA_MAZRA_ALOR = 0x8E2,
AREA_NORTHPASS_TOWER = 0x8E3,
AREA_QUEL_LITHIEN_LODGE = 0x8E4,
AREA_PLAGUEWOOD = 0x8E5,
AREA_SCOURGEHOLD = 0x8E6,
AREA_STRATHOLME1 = 0x8E7,
AREA_UNUSED_STRATHOLME = 0x8E8,
AREA_DARROWMERE_LAKE0 = 0x8F9,
AREA_CAER_DARROW = 0x8FA,
AREA_DARROWMERE_LAKE1 = 0x8FB,
AREA_CAVERNS_OF_TIME1 = 0x8FC,
AREA_THISTLEFUR_VILLAGE = 0x8FD,
AREA_THE_QUAGMIRE = 0x8FE,
AREA_WINDBREAK_CANYON = 0x8FF,
AREA_SOUTH_SEAS0 = 0x90D,
AREA_THE_GREAT_SEA3 = 0x90E,
AREA_THE_GREAT_SEA4 = 0x90F,
AREA_THE_GREAT_SEA5 = 0x910,
AREA_THE_GREAT_SEA6 = 0x911,
AREA_THE_VEILED_SEA1 = 0x912,
AREA_THE_VEILED_SEA2 = 0x913,
AREA_THE_VEILED_SEA3 = 0x914,
AREA_THE_VEILED_SEA4 = 0x915,
AREA_THE_VEILED_SEA5 = 0x916,
AREA_RAZOR_HILL_BARRACKS = 0x921,
AREA_SOUTH_SEAS1 = 0x922,
AREA_THE_GREAT_SEA7 = 0x923,
AREA_BLOODTOOTH_CAMP = 0x935,
AREA_FOREST_SONG = 0x936,
AREA_GREENPAW_VILLAGE = 0x937,
AREA_SILVERWING_OUTPOST = 0x938,
AREA_NIGHTHAVEN = 0x939,
AREA_SHRINE_OF_REMULOS = 0x93A,
AREA_STORMRAGE_BARROW_DENS = 0x93B,
AREA_THE_GREAT_SEA8 = 0x93C,
AREA_THE_GREAT_SEA9 = 0x93D,
AREA_THE_BLACK_MORASS = 0x93E,
AREA_OLD_HILLSBRAD_FOOTHILLS = 0x93F,
AREA_TARREN_MILL1 = 0x940,
AREA_SOUTHSHORE1 = 0x941,
AREA_DURNHOLDE_KEEP1 = 0x942,
AREA_DUN_GAROK1 = 0x943,
AREA_HILLSBRAD_FIELDS1 = 0x944,
AREA_EASTERN_STRAND1 = 0x945,
AREA_NETHANDER_STEAD1 = 0x946,
AREA_DARROW_HILL1 = 0x947,
AREA_SOUTHPOINT_TOWER1 = 0x948,
AREA_THORADINS_WALL3 = 0x949,
AREA_WESTERN_STRAND1 = 0x94A,
AREA_AZURELODE_MINE1 = 0x94B,
AREA_THE_GREAT_SEA10 = 0x95D,
AREA_THE_GREAT_SEA11 = 0x95E,
AREA_THE_GREAT_SEA12 = 0x95F,
AREA_THE_FORBIDDING_SEA1 = 0x960,
AREA_THE_FORBIDDING_SEA2 = 0x961,
AREA_THE_FORBIDDING_SEA3 = 0x962,
AREA_THE_FORBIDDING_SEA4 = 0x963,
AREA_TETHRIS_ARAN = 0x964,
AREA_ETHEL_RETHOR = 0x965,
AREA_RANAZJAR_ISLE = 0x966,
AREA_KORMEKS_HUT = 0x967,
AREA_SHADOWPREY_VILLAGE = 0x968,
AREA_BLACKROCK_PASS = 0x971,
AREA_MORGANS_VIGIL = 0x972,
AREA_SLITHER_ROCK = 0x973,
AREA_TERROR_WING_PATH = 0x974,
AREA_DRACODAR = 0x975,
AREA_RAGEFIRE_CHASM = 0x985,
AREA_NIGHTSONG_WOODS = 0x999,
AREA_THE_VEILED_SEA6 = 0x9AD,
AREA_MORLOS_ARAN = 0x9AE,
AREA_EMERALD_SANCTUARY = 0x9AF,
AREA_JADEFIRE_GLEN = 0x9B0,
AREA_RUINS_OF_CONSTELLAS = 0x9B1,
AREA_BITTER_REACHES = 0x9C1,
AREA_RISE_OF_THE_DEFILER = 0x9D5,
AREA_LARISS_PAVILION = 0x9D6,
AREA_WOODPAW_HILLS = 0x9D7,
AREA_WOODPAW_DEN = 0x9D8,
AREA_VERDANTIS_RIVER = 0x9D9,
AREA_RUINS_OF_ISILDIEN = 0x9DA,
AREA_GRIMTOTEM_POST = 0x9E9,
AREA_CAMP_APARAJE = 0x9EA,
AREA_MALAKAJIN = 0x9EB,
AREA_BOULDERSLIDE_RAVINE = 0x9EC,
AREA_SISHIR_CANYON = 0x9ED,
AREA_DIRE_MAUL0 = 0x9FD,
AREA_DEADWIND_RAVINE = 0x9FE,
AREA_DIAMONDHEAD_RIVER = 0x9FF,
AREA_ARIDENS_CAMP = 0xA00,
AREA_THE_VICE = 0xA01,
AREA_KARAZHAN = 0xA02,
AREA_MORGANS_PLOT = 0xA03,
AREA_DIRE_MAUL1 = 0xA11,
AREA_ALTERAC_VALLEY0 = 0xA25,
AREA_SCRABBLESCREWS_CAMP = 0xA39,
AREA_JADEFIRE_RUN = 0xA3A,
AREA_THONDRORIL_RIVER0 = 0xA3B,
AREA_THONDRORIL_RIVER1 = 0xA3C,
AREA_LAKE_MERELDAR = 0xA3D,
AREA_PESTILENT_SCAR = 0xA3E,
AREA_THE_INFECTIS_SCAR = 0xA3F,
AREA_BLACKWOOD_LAKE = 0xA40,
AREA_EASTWALL_GATE = 0xA41,
AREA_TERRORWEB_TUNNEL = 0xA42,
AREA_TERRORDALE = 0xA43,
AREA_KARGATHIA_KEEP = 0xA4D,
AREA_VALLEY_OF_BONES = 0xA61,
AREA_BLACKWING_LAIR = 0xA75,
AREA_DEADMANS_CROSSING = 0xA89,
AREA_MOLTEN_CORE = 0xA9D,
AREA_THE_SCARAB_WALL = 0xAB1,
AREA_SOUTHWIND_VILLAGE = 0xAB2,
AREA_TWILIGHT_BASE_CAMP = 0xAB3,
AREA_THE_CRYSTAL_VALE = 0xAB4,
AREA_THE_SCARAB_DAIS = 0xAB5,
AREA_HIVE_ASHI = 0xAB6,
AREA_HIVE_ZORA = 0xAB7,
AREA_HIVE_REGAL = 0xAB8,
AREA_SHRINE_OF_THE_FALLEN_WARRIOR = 0xAC5,
AREA_UNUSED_ALTERAC_VALLEY = 0xAD9,
AREA_BLACKFATHOM_DEEPS1 = 0xAED,
AREA_ON_MAP_DUNGEON4 = 0xB01,
AREA_THE_MASTERS_CELLAR = 0xB15,
AREA_STONEWROUGHT_PASS = 0xB16,
AREA_ALTERAC_VALLEY1 = 0xB17,
AREA_THE_RUMBLE_CAGE = 0xB29,
AREA_CHUNK_TEST = 0xB3D,
AREA_ZORAMGAR_OUTPOST = 0xB51,
AREA_HALL_OF_LEGENDS = 0xB65,
AREA_CHAMPIONS_HALL = 0xB66,
AREA_GROSHGOK_COMPOUND = 0xB79,
AREA_SLEEPING_GORGE = 0xB7A,
AREA_IRONDEEP_MINE = 0xB8D,
AREA_STONEHEARTH_OUTPOST = 0xB8E,
AREA_DUN_BALDAR = 0xB8F,
AREA_ICEWING_PASS = 0xB90,
AREA_FROSTWOLF_VILLAGE = 0xB91,
AREA_TOWER_POINT = 0xB92,
AREA_COLDTOOTH_MINE = 0xB93,
AREA_WINTERAX_HOLD = 0xB94,
AREA_ICEBLOOD_GARRISON = 0xBA1,
AREA_FROSTWOLF_KEEP = 0xBA2,
AREA_TORKREN_FARM = 0xBA3,
AREA_FROST_DAGGER_PASS = 0xBC9,
AREA_IRONSTONE_CAMP = 0xBDD,
AREA_WEAZELS_CRATER = 0xBDE,
AREA_TAHONDA_RUINS = 0xBDF,
AREA_FIELD_OF_STRIFE = 0xBF1,
AREA_ICEWING_CAVERN = 0xBF2,
AREA_VALORS_REST = 0xC05,
AREA_THE_SWARMING_PILLAR = 0xC19,
AREA_TWILIGHT_POST = 0xC1A,
AREA_TWILIGHT_OUTPOST = 0xC1B,
AREA_RAVAGED_TWILIGHT_CAMP = 0xC1C,
AREA_SHALZARUS_LAIR = 0xC2D,
AREA_TALRENDIS_POINT = 0xC41,
AREA_RETHRESS_SANCTUM = 0xC42,
AREA_MOON_HORROR_DEN = 0xC43,
AREA_SCALEBEARDS_CAVE = 0xC44,
AREA_BOULDERSLIDE_CAVERN = 0xC55,
AREA_WARSONG_LABOR_CAMP = 0xC69,
AREA_CHILLWIND_CAMP = 0xC7D,
AREA_THE_MAUL = 0xC91,
AREA_THE_MAUL_UNUSED = 0xCA5,
AREA_BONES_OF_GRAKKAROND = 0xCB9,
AREA_WARSONG_GULCH = 0xCCD,
AREA_FROSTWOLF_GRAVEYARD = 0xCE1,
AREA_FROSTWOLF_PASS = 0xCE2,
AREA_DUN_BALDAR_PASS = 0xCE3,
AREA_ICEBLOOD_GRAVEYARD = 0xCE4,
AREA_SNOWFALL_GRAVEYARD = 0xCE5,
AREA_STONEHEARTH_GRAVEYARD = 0xCE6,
AREA_STORMPIKE_GRAVEYARD = 0xCE7,
AREA_ICEWING_BUNKER = 0xCE8,
AREA_STONEHEARTH_BUNKER = 0xCE9,
AREA_WILDPAW_RIDGE = 0xCEA,
AREA_REVANTUSK_VILLAGE = 0xCF5,
AREA_ROCK_OF_DUROTAN = 0xCF6,
AREA_SILVERWING_GROVE = 0xCF7,
AREA_WARSONG_LUMBER_MILL = 0xCF8,
AREA_SILVERWING_HOLD = 0xCF9,
AREA_WILDPAW_CAVERN = 0xD09,
AREA_THE_VEILED_CLEFT = 0xD0A,
AREA_YOJAMBA_ISLE = 0xD1D,
AREA_ARATHI_BASIN = 0xD1E,
AREA_THE_COIL = 0xD31,
AREA_ALTAR_OF_HIREEK = 0xD32,
AREA_SHADRAZAAR = 0xD33,
AREA_HAKKARI_GROUNDS = 0xD34,
AREA_NAZE_OF_SHIRVALLAH = 0xD35,
AREA_TEMPLE_OF_BETHEKK = 0xD36,
AREA_THE_BLOODFIRE_PIT = 0xD37,
AREA_ALTAR_OF_THE_BLOOD_GOD = 0xD38,
AREA_ZANZAS_RISE = 0xD45,
AREA_EDGE_OF_MADNESS = 0xD46,
AREA_TROLLBANE_HALL = 0xD59,
AREA_DEFILERS_DEN = 0xD5A,
AREA_PAGLES_POINTE = 0xD5B,
AREA_FARM = 0xD5C,
AREA_BLACKSMITH = 0xD5D,
AREA_LUMBER_MILL = 0xD5E,
AREA_GOLD_MINE = 0xD5F,
AREA_STABLES = 0xD60,
AREA_CENARION_HOLD = 0xD61,
AREA_STAGHELM_POINT = 0xD62,
AREA_BRONZEBEARD_ENCAMPMENT = 0xD63,
AREA_AHN_QIRAJ = 0xD64,
AREA_RUINS_OF_AHN_QIRAJ0 = 0xD65,
AREA_TWILIGHTS_RUN = 0xD76,
AREA_ORTELLS_HIDEOUT = 0xD77,
AREA_SCARAB_TERRACE = 0xD78,
AREA_GENERALS_TERRACE = 0xD79,
AREA_THE_RESERVOIR = 0xD7A,
AREA_THE_HATCHERY = 0xD7B,
AREA_THE_COMB = 0xD7C,
AREA_WATCHERS_TERRACE = 0xD7D,
AREA_RUINS_OF_AHN_QIRAJ1 = 0xD7E,
AREA_NAXXRAMAS = 0xD80,
AREA_CITY = 0xD83,
AREA_GATES_OF_AHN_QIRAJ = 0xD96,
AREA_RAVENHOLDT_MANOR = 0xD9E,
} e_area;
static const value_string e_area_strings[] = {
{ AREA_DUN_MOROGH, "Dun Morogh" },
{ AREA_LONGSHORE, "Longshore" },
{ AREA_BADLANDS, "Badlands" },
{ AREA_BLASTED_LANDS, "Blasted Lands" },
{ AREA_BLACKWATER_COVE, "Blackwater Cove" },
{ AREA_SWAMP_OF_SORROWS, "Swamp Of Sorrows" },
{ AREA_NORTHSHIRE_VALLEY, "Northshire Valley" },
{ AREA_DUSKWOOD, "Duskwood" },
{ AREA_WETLANDS, "Wetlands" },
{ AREA_ELWYNN_FOREST, "Elwynn Forest" },
{ AREA_THE_WORLD_TREE, "The World Tree" },
{ AREA_DUROTAR, "Durotar" },
{ AREA_DUSTWALLOW_MARSH, "Dustwallow Marsh" },
{ AREA_AZSHARA, "Azshara" },
{ AREA_THE_BARRENS, "The Barrens" },
{ AREA_CRYSTAL_LAKE, "Crystal Lake" },
{ AREA_ZUL_GURUB0, "Zul Gurub0" },
{ AREA_MOONBROOK, "Moonbrook" },
{ AREA_KUL_TIRAS, "Kul Tiras" },
{ AREA_PROGRAMMER_ISLE, "Programmer Isle" },
{ AREA_NORTHSHIRE_RIVER, "Northshire River" },
{ AREA_NORTHSHIRE_ABBEY, "Northshire Abbey" },
{ AREA_BLACKROCK_MOUNTAIN0, "Blackrock Mountain0" },
{ AREA_LIGHTHOUSE, "Lighthouse" },
{ AREA_WESTERN_PLAGUELANDS, "Western Plaguelands" },
{ AREA_NINE, "Nine" },
{ AREA_THE_CEMETARY, "The Cemetary" },
{ AREA_STRANGLETHORN_VALE, "Stranglethorn Vale" },
{ AREA_ECHO_RIDGE_MINE, "Echo Ridge Mine" },
{ AREA_BOOTY_BAY, "Booty Bay" },
{ AREA_ALTERAC_MOUNTAINS, "Alterac Mountains" },
{ AREA_LAKE_NAZFERITI, "Lake Nazferiti" },
{ AREA_LOCH_MODAN, "Loch Modan" },
{ AREA_WESTFALL0, "Westfall0" },
{ AREA_DEADWIND_PASS, "Deadwind Pass" },
{ AREA_DARKSHIRE, "Darkshire" },
{ AREA_WILD_SHORE, "Wild Shore" },
{ AREA_REDRIDGE_MOUNTAINS, "Redridge Mountains" },
{ AREA_ARATHI_HIGHLANDS, "Arathi Highlands" },
{ AREA_BURNING_STEPPES, "Burning Steppes" },
{ AREA_THE_HINTERLANDS, "The Hinterlands" },
{ AREA_DEAD_MANS_HOLE, "Dead Mans Hole" },
{ AREA_SEARING_GORGE, "Searing Gorge" },
{ AREA_THIEVES_CAMP, "Thieves Camp" },
{ AREA_JASPERLODE_MINE, "Jasperlode Mine" },
{ AREA_VALLEY_OF_HEROES_UNUSED, "Valley Of Heroes Unused" },
{ AREA_HEROES_VIGIL, "Heroes Vigil" },
{ AREA_FARGODEEP_MINE, "Fargodeep Mine" },
{ AREA_NORTHSHIRE_VINEYARDS, "Northshire Vineyards" },
{ AREA_FORESTS_EDGE, "Forests Edge" },
{ AREA_THUNDER_FALLS, "Thunder Falls" },
{ AREA_BRACKWELL_PUMPKIN_PATCH, "Brackwell Pumpkin Patch" },
{ AREA_THE_STONEFIELD_FARM, "The Stonefield Farm" },
{ AREA_THE_MACLURE_VINEYARDS, "The Maclure Vineyards" },
{ AREA_ON_MAP_DUNGEON0, "On Map Dungeon0" },
{ AREA_ON_MAP_DUNGEON1, "On Map Dungeon1" },
{ AREA_ON_MAP_DUNGEON2, "On Map Dungeon2" },
{ AREA_LAKE_EVERSTILL, "Lake Everstill" },
{ AREA_LAKESHIRE, "Lakeshire" },
{ AREA_STONEWATCH, "Stonewatch" },
{ AREA_STONEWATCH_FALLS, "Stonewatch Falls" },
{ AREA_THE_DARK_PORTAL, "The Dark Portal" },
{ AREA_THE_TAINTED_SCAR, "The Tainted Scar" },
{ AREA_POOL_OF_TEARS, "Pool Of Tears" },
{ AREA_STONARD, "Stonard" },
{ AREA_FALLOW_SANCTUARY, "Fallow Sanctuary" },
{ AREA_ANVILMAR, "Anvilmar" },
{ AREA_STORMWIND_MOUNTAINS, "Stormwind Mountains" },
{ AREA_JEFF_NE_QUADRANT_CHANGED, "Jeff Ne Quadrant Changed" },
{ AREA_JEFF_NW_QUADRANT, "Jeff Nw Quadrant" },
{ AREA_JEFF_SE_QUADRANT, "Jeff Se Quadrant" },
{ AREA_JEFF_SW_QUADRANT, "Jeff Sw Quadrant" },
{ AREA_TIRISFAL_GLADES, "Tirisfal Glades" },
{ AREA_STONE_CAIRN_LAKE, "Stone Cairn Lake" },
{ AREA_GOLDSHIRE, "Goldshire" },
{ AREA_EASTVALE_LOGGING_CAMP, "Eastvale Logging Camp" },
{ AREA_MIRROR_LAKE_ORCHARD, "Mirror Lake Orchard" },
{ AREA_TOWER_OF_AZORA, "Tower Of Azora" },
{ AREA_MIRROR_LAKE, "Mirror Lake" },
{ AREA_VUL_GOL_OGRE_MOUND, "Vul Gol Ogre Mound" },
{ AREA_RAVEN_HILL, "Raven Hill" },
{ AREA_REDRIDGE_CANYONS, "Redridge Canyons" },
{ AREA_TOWER_OF_ILGALAR, "Tower Of Ilgalar" },
{ AREA_ALTHERS_MILL, "Althers Mill" },
{ AREA_RETHBAN_CAVERNS, "Rethban Caverns" },
{ AREA_REBEL_CAMP, "Rebel Camp" },
{ AREA_NESINGWARYS_EXPEDITION, "Nesingwarys Expedition" },
{ AREA_KURZENS_COMPOUND, "Kurzens Compound" },
{ AREA_RUINS_OF_ZUL_KUNDA, "Ruins Of Zul Kunda" },
{ AREA_RUINS_OF_ZUL_MAMWE, "Ruins Of Zul Mamwe" },
{ AREA_THE_VILE_REEF, "The Vile Reef" },
{ AREA_MOSH_OGG_OGRE_MOUND, "Mosh Ogg Ogre Mound" },
{ AREA_THE_STOCKPILE, "The Stockpile" },
{ AREA_SALDEANS_FARM, "Saldeans Farm" },
{ AREA_SENTINEL_HILL, "Sentinel Hill" },
{ AREA_FURLBROWS_PUMPKIN_FARM, "Furlbrows Pumpkin Farm" },
{ AREA_JANGOLODE_MINE, "Jangolode Mine" },
{ AREA_GOLD_COAST_QUARRY, "Gold Coast Quarry" },
{ AREA_WESTFALL_LIGHTHOUSE, "Westfall Lighthouse" },
{ AREA_MISTY_VALLEY, "Misty Valley" },
{ AREA_GROMGOL_BASE_CAMP, "Gromgol Base Camp" },
{ AREA_WHELGARS_EXCAVATION_SITE, "Whelgars Excavation Site" },
{ AREA_WESTBROOK_GARRISON, "Westbrook Garrison" },
{ AREA_TRANQUIL_GARDENS_CEMETERY, "Tranquil Gardens Cemetery" },
{ AREA_ZUULDAIA_RUINS, "Zuuldaia Ruins" },
{ AREA_BALLAL_RUINS, "Ballal Ruins" },
{ AREA_KALAI_RUINS, "Kalai Ruins" },
{ AREA_TKASHI_RUINS, "Tkashi Ruins" },
{ AREA_BALIAMAH_RUINS, "Baliamah Ruins" },
{ AREA_ZIATAJAI_RUINS, "Ziatajai Ruins" },
{ AREA_MIZJAH_RUINS, "Mizjah Ruins" },
{ AREA_SILVERPINE_FOREST, "Silverpine Forest" },
{ AREA_KHARANOS, "Kharanos" },
{ AREA_COLDRIDGE_VALLEY, "Coldridge Valley" },
{ AREA_GNOMEREGAN0, "Gnomeregan0" },
{ AREA_GOL_BOLAR_QUARRY, "Gol Bolar Quarry" },
{ AREA_FROSTMANE_HOLD, "Frostmane Hold" },
{ AREA_THE_GRIZZLED_DEN, "The Grizzled Den" },
{ AREA_BREWNALL_VILLAGE, "Brewnall Village" },
{ AREA_MISTY_PINE_REFUGE, "Misty Pine Refuge" },
{ AREA_EASTERN_PLAGUELANDS, "Eastern Plaguelands" },
{ AREA_TELDRASSIL, "Teldrassil" },
{ AREA_IRONBANDS_EXCAVATION_SITE, "Ironbands Excavation Site" },
{ AREA_MOGROSH_STRONGHOLD, "Mogrosh Stronghold" },
{ AREA_THELSAMAR, "Thelsamar" },
{ AREA_ALGAZ_GATE, "Algaz Gate" },
{ AREA_STONEWROUGHT_DAM, "Stonewrought Dam" },
{ AREA_THE_FARSTRIDER_LODGE, "The Farstrider Lodge" },
{ AREA_DARKSHORE, "Darkshore" },
{ AREA_SILVER_STREAM_MINE, "Silver Stream Mine" },
{ AREA_MENETHIL_HARBOR, "Menethil Harbor" },
{ AREA_DESIGNER_ISLAND, "Designer Island" },
{ AREA_THE_BULWARK0, "The Bulwark0" },
{ AREA_RUINS_OF_LORDAERON, "Ruins Of Lordaeron" },
{ AREA_DEATHKNELL, "Deathknell" },
{ AREA_NIGHT_WEBS_HOLLOW, "Night Webs Hollow" },
{ AREA_SOLLIDEN_FARMSTEAD, "Solliden Farmstead" },
{ AREA_AGAMAND_MILLS, "Agamand Mills" },
{ AREA_AGAMAND_FAMILY_CRYPT, "Agamand Family Crypt" },
{ AREA_BRILL, "Brill" },
{ AREA_WHISPERING_GARDENS, "Whispering Gardens" },
{ AREA_TERRACE_OF_REPOSE, "Terrace Of Repose" },
{ AREA_BRIGHTWATER_LAKE, "Brightwater Lake" },
{ AREA_GUNTHERS_RETREAT, "Gunthers Retreat" },
{ AREA_GARRENS_HAUNT, "Garrens Haunt" },
{ AREA_BALNIR_FARMSTEAD, "Balnir Farmstead" },
{ AREA_COLD_HEARTH_MANOR, "Cold Hearth Manor" },
{ AREA_CRUSADER_OUTPOST, "Crusader Outpost" },
{ AREA_THE_NORTH_COAST, "The North Coast" },
{ AREA_WHISPERING_SHORE, "Whispering Shore" },
{ AREA_LORDAMERE_LAKE0, "Lordamere Lake0" },
{ AREA_FENRIS_ISLE, "Fenris Isle" },
{ AREA_FAOLS_REST, "Faols Rest" },
{ AREA_DOLANAAR, "Dolanaar" },
{ AREA_DARNASSUS_UNUSED, "Darnassus Unused" },
{ AREA_SHADOWGLEN, "Shadowglen" },
{ AREA_STEELGRILLS_DEPOT, "Steelgrills Depot" },
{ AREA_HEARTHGLEN, "Hearthglen" },
{ AREA_NORTHRIDGE_LUMBER_CAMP, "Northridge Lumber Camp" },
{ AREA_RUINS_OF_ANDORHAL, "Ruins Of Andorhal" },
{ AREA_SCHOOL_OF_NECROMANCY, "School Of Necromancy" },
{ AREA_UTHERS_TOMB, "Uthers Tomb" },
{ AREA_SORROW_HILL, "Sorrow Hill" },
{ AREA_THE_WEEPING_CAVE, "The Weeping Cave" },
{ AREA_FELSTONE_FIELD, "Felstone Field" },
{ AREA_DALSONS_TEARS, "Dalsons Tears" },
{ AREA_GAHRRONS_WITHERING, "Gahrrons Withering" },
{ AREA_THE_WRITHING_HAUNT, "The Writhing Haunt" },
{ AREA_MARDENHOLDE_KEEP, "Mardenholde Keep" },
{ AREA_PYREWOOD_VILLAGE, "Pyrewood Village" },
{ AREA_DUN_MODR, "Dun Modr" },
{ AREA_WESTFALL1, "Westfall1" },
{ AREA_THE_GREAT_SEA0, "The Great Sea0" },
{ AREA_UNUSED_IRONCLADCOVE, "Unused Ironcladcove" },
{ AREA_SHADOWFANG_KEEP0, "Shadowfang Keep0" },
{ AREA_ON_MAP_DUNGEON3, "On Map Dungeon3" },
{ AREA_ICEFLOW_LAKE, "Iceflow Lake" },
{ AREA_HELMS_BED_LAKE, "Helms Bed Lake" },
{ AREA_DEEP_ELEM_MINE, "Deep Elem Mine" },
{ AREA_THE_GREAT_SEA1, "The Great Sea1" },
{ AREA_MULGORE, "Mulgore" },
{ AREA_ALEXSTON_FARMSTEAD, "Alexston Farmstead" },
{ AREA_RED_CLOUD_MESA, "Red Cloud Mesa" },
{ AREA_CAMP_NARACHE, "Camp Narache" },
{ AREA_BLOODHOOF_VILLAGE, "Bloodhoof Village" },
{ AREA_STONEBULL_LAKE, "Stonebull Lake" },
{ AREA_RAVAGED_CARAVAN, "Ravaged Caravan" },
{ AREA_RED_ROCKS, "Red Rocks" },
{ AREA_THE_SKITTERING_DARK, "The Skittering Dark" },
{ AREA_VALGANS_FIELD, "Valgans Field" },
{ AREA_THE_SEPULCHER, "The Sepulcher" },
{ AREA_OLSENS_FARTHING, "Olsens Farthing" },
{ AREA_THE_GREYMANE_WALL, "The Greymane Wall" },
{ AREA_BERENS_PERIL, "Berens Peril" },
{ AREA_THE_DAWNING_ISLES, "The Dawning Isles" },
{ AREA_AMBERMILL, "Ambermill" },
{ AREA_FENRIS_KEEP, "Fenris Keep" },
{ AREA_SHADOWFANG_KEEP1, "Shadowfang Keep1" },
{ AREA_THE_DECREPIT_FERRY, "The Decrepit Ferry" },
{ AREA_MALDENS_ORCHARD, "Maldens Orchard" },
{ AREA_THE_IVAR_PATCH, "The Ivar Patch" },
{ AREA_THE_DEAD_FIELD, "The Dead Field" },
{ AREA_THE_ROTTING_ORCHARD, "The Rotting Orchard" },
{ AREA_BRIGHTWOOD_GROVE, "Brightwood Grove" },
{ AREA_FORLORN_ROWE, "Forlorn Rowe" },
{ AREA_THE_WHIPPLE_ESTATE, "The Whipple Estate" },
{ AREA_THE_YORGEN_FARMSTEAD, "The Yorgen Farmstead" },
{ AREA_THE_CAULDRON, "The Cauldron" },
{ AREA_GRIMESILT_DIG_SITE, "Grimesilt Dig Site" },
{ AREA_DREADMAUL_ROCK, "Dreadmaul Rock" },
{ AREA_RUINS_OF_THAURISSAN, "Ruins Of Thaurissan" },
{ AREA_FLAME_CREST, "Flame Crest" },
{ AREA_BLACKROCK_STRONGHOLD, "Blackrock Stronghold" },
{ AREA_THE_PILLAR_OF_ASH, "The Pillar Of Ash" },
{ AREA_BLACKROCK_MOUNTAIN1, "Blackrock Mountain1" },
{ AREA_ALTAR_OF_STORMS0, "Altar Of Storms0" },
{ AREA_ALDRASSIL, "Aldrassil" },
{ AREA_SHADOWTHREAD_CAVE, "Shadowthread Cave" },
{ AREA_FEL_ROCK, "Fel Rock" },
{ AREA_LAKE_AL_AMETH, "Lake Al Ameth" },
{ AREA_STARBREEZE_VILLAGE, "Starbreeze Village" },
{ AREA_GNARLPINE_HOLD, "Gnarlpine Hold" },
{ AREA_BANETHIL_BARROW_DEN, "Banethil Barrow Den" },
{ AREA_THE_CLEFT, "The Cleft" },
{ AREA_THE_ORACLE_GLADE, "The Oracle Glade" },
{ AREA_WELLSPRING_RIVER, "Wellspring River" },
{ AREA_WELLSPRING_LAKE, "Wellspring Lake" },
{ AREA_HILLSBRAD_FOOTHILLS, "Hillsbrad Foothills" },
{ AREA_AZSHARA_CRATER, "Azshara Crater" },
{ AREA_DUN_ALGAZ0, "Dun Algaz0" },
{ AREA_SOUTHSHORE0, "Southshore0" },
{ AREA_TARREN_MILL0, "Tarren Mill0" },
{ AREA_DURNHOLDE_KEEP0, "Durnholde Keep0" },
{ AREA_UNUSED_STONEWROUGHT_PASS, "Unused Stonewrought Pass" },
{ AREA_THE_FOOTHILL_CAVERNS, "The Foothill Caverns" },
{ AREA_LORDAMERE_INTERNMENT_CAMP, "Lordamere Internment Camp" },
{ AREA_DALARAN, "Dalaran" },
{ AREA_STRAHNBRAD, "Strahnbrad" },
{ AREA_RUINS_OF_ALTERAC, "Ruins Of Alterac" },
{ AREA_CRUSHRIDGE_HOLD, "Crushridge Hold" },
{ AREA_SLAUGHTER_HOLLOW, "Slaughter Hollow" },
{ AREA_THE_UPLANDS, "The Uplands" },
{ AREA_SOUTHPOINT_TOWER0, "Southpoint Tower0" },
{ AREA_HILLSBRAD_FIELDS0, "Hillsbrad Fields0" },
{ AREA_HILLSBRAD, "Hillsbrad" },
{ AREA_AZURELODE_MINE0, "Azurelode Mine0" },
{ AREA_NETHANDER_STEAD0, "Nethander Stead0" },
{ AREA_DUN_GAROK0, "Dun Garok0" },
{ AREA_THORADINS_WALL0, "Thoradins Wall0" },
{ AREA_EASTERN_STRAND0, "Eastern Strand0" },
{ AREA_WESTERN_STRAND0, "Western Strand0" },
{ AREA_SOUTH_SEAS_UNUSED, "South Seas Unused" },
{ AREA_JAGUERO_ISLE, "Jaguero Isle" },
{ AREA_BARADIN_BAY, "Baradin Bay" },
{ AREA_MENETHIL_BAY, "Menethil Bay" },
{ AREA_MISTY_REED_STRAND, "Misty Reed Strand" },
{ AREA_THE_SAVAGE_COAST, "The Savage Coast" },
{ AREA_THE_CRYSTAL_SHORE, "The Crystal Shore" },
{ AREA_SHELL_BEACH, "Shell Beach" },
{ AREA_NORTH_TIDES_RUN, "North Tides Run" },
{ AREA_SOUTH_TIDES_RUN, "South Tides Run" },
{ AREA_THE_OVERLOOK_CLIFFS, "The Overlook Cliffs" },
{ AREA_THE_FORBIDDING_SEA0, "The Forbidding Sea0" },
{ AREA_IRONBEARDS_TOMB, "Ironbeards Tomb" },
{ AREA_CRYSTALVEIN_MINE, "Crystalvein Mine" },
{ AREA_RUINS_OF_ABORAZ, "Ruins Of Aboraz" },
{ AREA_JANEIROS_POINT, "Janeiros Point" },
{ AREA_NORTHFOLD_MANOR, "Northfold Manor" },
{ AREA_GO_SHEK_FARM, "Go Shek Farm" },
{ AREA_DABYRIES_FARMSTEAD, "Dabyries Farmstead" },
{ AREA_BOULDERFIST_HALL, "Boulderfist Hall" },
{ AREA_WITHERBARK_VILLAGE, "Witherbark Village" },
{ AREA_DRYWHISKER_GORGE, "Drywhisker Gorge" },
{ AREA_REFUGE_POINTE, "Refuge Pointe" },
{ AREA_HAMMERFALL, "Hammerfall" },
{ AREA_BLACKWATER_SHIPWRECKS, "Blackwater Shipwrecks" },
{ AREA_O_BREENS_CAMP, "O Breens Camp" },
{ AREA_STROMGARDE_KEEP, "Stromgarde Keep" },
{ AREA_THE_TOWER_OF_ARATHOR, "The Tower Of Arathor" },
{ AREA_THE_SANCTUM, "The Sanctum" },
{ AREA_FALDIRS_COVE, "Faldirs Cove" },
{ AREA_THE_DROWNED_REEF, "The Drowned Reef" },
{ AREA_THANDOL_SPAN0, "Thandol Span0" },
{ AREA_ASHENVALE, "Ashenvale" },
{ AREA_THE_GREAT_SEA2, "The Great Sea2" },
{ AREA_CIRCLE_OF_EAST_BINDING, "Circle Of East Binding" },
{ AREA_CIRCLE_OF_WEST_BINDING, "Circle Of West Binding" },
{ AREA_CIRCLE_OF_INNER_BINDING, "Circle Of Inner Binding" },
{ AREA_CIRCLE_OF_OUTER_BINDING, "Circle Of Outer Binding" },
{ AREA_APOCRYPHANS_REST, "Apocryphans Rest" },
{ AREA_ANGOR_FORTRESS, "Angor Fortress" },
{ AREA_LETHLOR_RAVINE, "Lethlor Ravine" },
{ AREA_KARGATH, "Kargath" },
{ AREA_CAMP_KOSH, "Camp Kosh" },
{ AREA_CAMP_BOFF, "Camp Boff" },
{ AREA_CAMP_WURG, "Camp Wurg" },
{ AREA_CAMP_CAGG, "Camp Cagg" },
{ AREA_AGMONDS_END, "Agmonds End" },
{ AREA_HAMMERTOES_DIGSITE, "Hammertoes Digsite" },
{ AREA_DUSTBELCH_GROTTO, "Dustbelch Grotto" },
{ AREA_AERIE_PEAK, "Aerie Peak" },
{ AREA_WILDHAMMER_KEEP, "Wildhammer Keep" },
{ AREA_QUEL_DANIL_LODGE, "Quel Danil Lodge" },
{ AREA_SKULK_ROCK, "Skulk Rock" },
{ AREA_ZUNWATHA, "Zunwatha" },
{ AREA_SHADRA_ALOR, "Shadra Alor" },
{ AREA_JINTHA_ALOR, "Jintha Alor" },
{ AREA_THE_ALTAR_OF_ZUL, "The Altar Of Zul" },
{ AREA_SERADANE, "Seradane" },
{ AREA_FERALAS, "Feralas" },
{ AREA_BRAMBLEBLADE_RAVINE, "Brambleblade Ravine" },
{ AREA_BAEL_MODAN, "Bael Modan" },
{ AREA_THE_VENTURE_CO_MINE, "The Venture Co Mine" },
{ AREA_FELWOOD, "Felwood" },
{ AREA_RAZOR_HILL, "Razor Hill" },
{ AREA_VALLEY_OF_TRIALS, "Valley Of Trials" },
{ AREA_THE_DEN, "The Den" },
{ AREA_BURNING_BLADE_COVEN, "Burning Blade Coven" },
{ AREA_KOLKAR_CRAG, "Kolkar Crag" },
{ AREA_SENJIN_VILLAGE, "Senjin Village" },
{ AREA_ECHO_ISLES, "Echo Isles" },
{ AREA_THUNDER_RIDGE, "Thunder Ridge" },
{ AREA_DRYGULCH_RAVINE, "Drygulch Ravine" },
{ AREA_DUSTWIND_CAVE, "Dustwind Cave" },
{ AREA_TIRAGARDE_KEEP, "Tiragarde Keep" },
{ AREA_SCUTTLE_COAST, "Scuttle Coast" },
{ AREA_BLADEFIST_BAY, "Bladefist Bay" },
{ AREA_DEADEYE_SHORE, "Deadeye Shore" },
{ AREA_SOUTHFURY_RIVER0, "Southfury River0" },
{ AREA_CAMP_TAURAJO, "Camp Taurajo" },
{ AREA_FAR_WATCH_POST, "Far Watch Post" },
{ AREA_THE_CROSSROADS, "The Crossroads" },
{ AREA_BOULDER_LODE_MINE, "Boulder Lode Mine" },
{ AREA_THE_SLUDGE_FEN, "The Sludge Fen" },
{ AREA_THE_DRY_HILLS, "The Dry Hills" },
{ AREA_DREADMIST_PEAK, "Dreadmist Peak" },
{ AREA_NORTHWATCH_HOLD, "Northwatch Hold" },
{ AREA_THE_FORGOTTEN_POOLS, "The Forgotten Pools" },
{ AREA_LUSHWATER_OASIS, "Lushwater Oasis" },
{ AREA_THE_STAGNANT_OASIS, "The Stagnant Oasis" },
{ AREA_FIELD_OF_GIANTS, "Field Of Giants" },
{ AREA_THE_MERCHANT_COAST, "The Merchant Coast" },
{ AREA_RATCHET, "Ratchet" },
{ AREA_DARKSPEAR_STRAND, "Darkspear Strand" },
{ AREA_DARROWMERE_LAKE_UNUSED, "Darrowmere Lake Unused" },
{ AREA_CAER_DARROW_UNUSED, "Caer Darrow Unused" },
{ AREA_WINTERHOOF_WATER_WELL, "Winterhoof Water Well" },
{ AREA_THUNDERHORN_WATER_WELL, "Thunderhorn Water Well" },
{ AREA_WILDMANE_WATER_WELL, "Wildmane Water Well" },
{ AREA_SKYLINE_RIDGE, "Skyline Ridge" },
{ AREA_THOUSAND_NEEDLES, "Thousand Needles" },
{ AREA_THE_TIDUS_STAIR, "The Tidus Stair" },
{ AREA_SHADY_REST_INN, "Shady Rest Inn" },
{ AREA_BAELDUN_DIGSITE, "Baeldun Digsite" },
{ AREA_DESOLACE, "Desolace" },
{ AREA_STONETALON_MOUNTAINS, "Stonetalon Mountains" },
{ AREA_ORGRIMMAR_UNUSED, "Orgrimmar Unused" },
{ AREA_GILLIJIMS_ISLE, "Gillijims Isle" },
{ AREA_ISLAND_OF_DOCTOR_LAPIDIS, "Island Of Doctor Lapidis" },
{ AREA_RAZORWIND_CANYON, "Razorwind Canyon" },
{ AREA_BATHRANS_HAUNT, "Bathrans Haunt" },
{ AREA_THE_RUINS_OF_ORDIL_ARAN, "The Ruins Of Ordil Aran" },
{ AREA_MAESTRAS_POST, "Maestras Post" },
{ AREA_THE_ZORAM_STRAND, "The Zoram Strand" },
{ AREA_ASTRANAAR, "Astranaar" },
{ AREA_THE_SHRINE_OF_AESSINA, "The Shrine Of Aessina" },
{ AREA_FIRE_SCAR_SHRINE, "Fire Scar Shrine" },
{ AREA_THE_RUINS_OF_STARDUST, "The Ruins Of Stardust" },
{ AREA_THE_HOWLING_VALE, "The Howling Vale" },
{ AREA_SILVERWIND_REFUGE, "Silverwind Refuge" },
{ AREA_MYSTRAL_LAKE, "Mystral Lake" },
{ AREA_FALLEN_SKY_LAKE, "Fallen Sky Lake" },
{ AREA_IRIS_LAKE, "Iris Lake" },
{ AREA_MOONWELL, "Moonwell" },
{ AREA_RAYNEWOOD_RETREAT, "Raynewood Retreat" },
{ AREA_THE_SHADY_NOOK, "The Shady Nook" },
{ AREA_NIGHT_RUN, "Night Run" },
{ AREA_XAVIAN, "Xavian" },
{ AREA_SATYRNAAR, "Satyrnaar" },
{ AREA_SPLINTERTREE_POST, "Splintertree Post" },
{ AREA_THE_DOR_DANIL_BARROW_DEN, "The Dor Danil Barrow Den" },
{ AREA_FALFARREN_RIVER, "Falfarren River" },
{ AREA_FELFIRE_HILL, "Felfire Hill" },
{ AREA_DEMON_FALL_CANYON, "Demon Fall Canyon" },
{ AREA_DEMON_FALL_RIDGE, "Demon Fall Ridge" },
{ AREA_WARSONG_LUMBER_CAMP, "Warsong Lumber Camp" },
{ AREA_BOUGH_SHADOW, "Bough Shadow" },
{ AREA_THE_SHIMMERING_FLATS, "The Shimmering Flats" },
{ AREA_TANARIS, "Tanaris" },
{ AREA_LAKE_FALATHIM, "Lake Falathim" },
{ AREA_AUBERDINE, "Auberdine" },
{ AREA_RUINS_OF_MATHYSTRA, "Ruins Of Mathystra" },
{ AREA_TOWER_OF_ALTHALAXX, "Tower Of Althalaxx" },
{ AREA_CLIFFSPRING_FALLS, "Cliffspring Falls" },
{ AREA_BASHAL_ARAN, "Bashal Aran" },
{ AREA_AMETH_ARAN, "Ameth Aran" },
{ AREA_GROVE_OF_THE_ANCIENTS, "Grove Of The Ancients" },
{ AREA_THE_MASTERS_GLAIVE, "The Masters Glaive" },
{ AREA_REMTRAVELS_EXCAVATION, "Remtravels Excavation" },
{ AREA_MISTS_EDGE, "Mists Edge" },
{ AREA_THE_LONG_WASH, "The Long Wash" },
{ AREA_WILDBEND_RIVER, "Wildbend River" },
{ AREA_BLACKWOOD_DEN, "Blackwood Den" },
{ AREA_CLIFFSPRING_RIVER, "Cliffspring River" },
{ AREA_THE_VEILED_SEA0, "The Veiled Sea0" },
{ AREA_GOLD_ROAD, "Gold Road" },
{ AREA_SCARLET_WATCH_POST, "Scarlet Watch Post" },
{ AREA_SUN_ROCK_RETREAT, "Sun Rock Retreat" },
{ AREA_WINDSHEAR_CRAG, "Windshear Crag" },
{ AREA_CRAGPOOL_LAKE, "Cragpool Lake" },
{ AREA_MIRKFALLON_LAKE, "Mirkfallon Lake" },
{ AREA_THE_CHARRED_VALE, "The Charred Vale" },
{ AREA_VALLEY_OF_THE_BLOODFURIES, "Valley Of The Bloodfuries" },
{ AREA_STONETALON_PEAK, "Stonetalon Peak" },
{ AREA_THE_TALON_DEN, "The Talon Den" },
{ AREA_GREATWOOD_VALE, "Greatwood Vale" },
{ AREA_THUNDER_BLUFF_UNUSED, "Thunder Bluff Unused" },
{ AREA_BRAVE_WIND_MESA, "Brave Wind Mesa" },
{ AREA_FIRE_STONE_MESA, "Fire Stone Mesa" },
{ AREA_MANTLE_ROCK, "Mantle Rock" },
{ AREA_HUNTER_RISE_UNUSED, "Hunter Rise Unused" },
{ AREA_SPIRIT_RISE_UNUSED, "Spirit Rise Unused" },
{ AREA_ELDER_RISE_UNUSED, "Elder Rise Unused" },
{ AREA_RUINS_OF_JUBUWAL, "Ruins Of Jubuwal" },
{ AREA_POOLS_OF_ARLITHRIEN, "Pools Of Arlithrien" },
{ AREA_THE_RUSTMAUL_DIG_SITE, "The Rustmaul Dig Site" },
{ AREA_CAMP_ETHOK, "Camp Ethok" },
{ AREA_SPLITHOOF_CRAG, "Splithoof Crag" },
{ AREA_HIGHPERCH, "Highperch" },
{ AREA_THE_SCREECHING_CANYON, "The Screeching Canyon" },
{ AREA_FREEWIND_POST, "Freewind Post" },
{ AREA_THE_GREAT_LIFT0, "The Great Lift0" },
{ AREA_GALAK_HOLD, "Galak Hold" },
{ AREA_ROGUEFEATHER_DEN, "Roguefeather Den" },
{ AREA_THE_WEATHERED_NOOK, "The Weathered Nook" },
{ AREA_THALANAAR, "Thalanaar" },
{ AREA_UN_GORO_CRATER, "Un Goro Crater" },
{ AREA_RAZORFEN_KRAUL0, "Razorfen Kraul0" },
{ AREA_RAVEN_HILL_CEMETERY, "Raven Hill Cemetery" },
{ AREA_MOONGLADE, "Moonglade" },
{ AREA_DELETE_ME0, "Delete Me0" },
{ AREA_BRACKENWALL_VILLAGE, "Brackenwall Village" },
{ AREA_SWAMPLIGHT_MANOR, "Swamplight Manor" },
{ AREA_BLOODFEN_BURROW, "Bloodfen Burrow" },
{ AREA_DARKMIST_CAVERN, "Darkmist Cavern" },
{ AREA_MOGGLE_POINT, "Moggle Point" },
{ AREA_BEEZILS_WRECK, "Beezils Wreck" },
{ AREA_WITCH_HILL, "Witch Hill" },
{ AREA_SENTRY_POINT, "Sentry Point" },
{ AREA_NORTH_POINT_TOWER, "North Point Tower" },
{ AREA_WEST_POINT_TOWER, "West Point Tower" },
{ AREA_LOST_POINT, "Lost Point" },
{ AREA_BLUEFEN, "Bluefen" },
{ AREA_STONEMAUL_RUINS, "Stonemaul Ruins" },
{ AREA_THE_DEN_OF_FLAME, "The Den Of Flame" },
{ AREA_THE_DRAGONMURK, "The Dragonmurk" },
{ AREA_WYRMBOG, "Wyrmbog" },
{ AREA_ONYXIAS_LAIR_UNUSED, "Onyxias Lair Unused" },
{ AREA_THERAMORE_ISLE, "Theramore Isle" },
{ AREA_FOOTHOLD_CITADEL, "Foothold Citadel" },
{ AREA_IRONCLAD_PRISON, "Ironclad Prison" },
{ AREA_DUSTWALLOW_BAY, "Dustwallow Bay" },
{ AREA_TIDEFURY_COVE, "Tidefury Cove" },
{ AREA_DREADMURK_SHORE, "Dreadmurk Shore" },
{ AREA_ADDLES_STEAD, "Addles Stead" },
{ AREA_FIRE_PLUME_RIDGE, "Fire Plume Ridge" },
{ AREA_LAKKARI_TAR_PITS, "Lakkari Tar Pits" },
{ AREA_TERROR_RUN, "Terror Run" },
{ AREA_THE_SLITHERING_SCAR, "The Slithering Scar" },
{ AREA_MARSHALS_REFUGE, "Marshals Refuge" },
{ AREA_FUNGAL_ROCK, "Fungal Rock" },
{ AREA_GOLAKKA_HOT_SPRINGS, "Golakka Hot Springs" },
{ AREA_THE_LOCH, "The Loch" },
{ AREA_BEGGARS_HAUNT, "Beggars Haunt" },
{ AREA_KODO_GRAVEYARD, "Kodo Graveyard" },
{ AREA_GHOST_WALKER_POST, "Ghost Walker Post" },
{ AREA_SARTHERIS_STRAND, "Sartheris Strand" },
{ AREA_THUNDER_AXE_FORTRESS, "Thunder Axe Fortress" },
{ AREA_BOLGANS_HOLE, "Bolgans Hole" },
{ AREA_MANNOROC_COVEN, "Mannoroc Coven" },
{ AREA_SARGERON, "Sargeron" },
{ AREA_MAGRAM_VILLAGE, "Magram Village" },
{ AREA_GELKIS_VILLAGE, "Gelkis Village" },
{ AREA_VALLEY_OF_SPEARS, "Valley Of Spears" },
{ AREA_NIJELS_POINT, "Nijels Point" },
{ AREA_KOLKAR_VILLAGE, "Kolkar Village" },
{ AREA_HYJAL, "Hyjal" },
{ AREA_WINTERSPRING, "Winterspring" },
{ AREA_BLACKWOLF_RIVER, "Blackwolf River" },
{ AREA_KODO_ROCK, "Kodo Rock" },
{ AREA_HIDDEN_PATH, "Hidden Path" },
{ AREA_SPIRIT_ROCK, "Spirit Rock" },
{ AREA_SHRINE_OF_THE_DORMANT_FLAME, "Shrine Of The Dormant Flame" },
{ AREA_LAKE_ELUNEARA, "Lake Eluneara" },
{ AREA_THE_HARBORAGE, "The Harborage" },
{ AREA_OUTLAND, "Outland" },
{ AREA_CRAFTSMENS_TERRACE_UNUSED, "Craftsmens Terrace Unused" },
{ AREA_TRADESMENS_TERRACE_UNUSED, "Tradesmens Terrace Unused" },
{ AREA_THE_TEMPLE_GARDENS_UNUSED, "The Temple Gardens Unused" },
{ AREA_TEMPLE_OF_ELUNE_UNUSED, "Temple Of Elune Unused" },
{ AREA_CENARION_ENCLAVE_UNUSED, "Cenarion Enclave Unused" },
{ AREA_WARRIORS_TERRACE_UNUSED, "Warriors Terrace Unused" },
{ AREA_RUTTHERAN_VILLAGE, "Ruttheran Village" },
{ AREA_IRONBANDS_COMPOUND, "Ironbands Compound" },
{ AREA_THE_STOCKADE, "The Stockade" },
{ AREA_WAILING_CAVERNS, "Wailing Caverns" },
{ AREA_BLACKFATHOM_DEEPS0, "Blackfathom Deeps0" },
{ AREA_FRAY_ISLAND, "Fray Island" },
{ AREA_GNOMEREGAN1, "Gnomeregan1" },
{ AREA_RAZORFEN_DOWNS0, "Razorfen Downs0" },
{ AREA_BANETHIL_HOLLOW, "Banethil Hollow" },
{ AREA_SCARLET_MONASTERY, "Scarlet Monastery" },
{ AREA_JERODS_LANDING, "Jerods Landing" },
{ AREA_RIDGEPOINT_TOWER, "Ridgepoint Tower" },
{ AREA_THE_DARKENED_BANK, "The Darkened Bank" },
{ AREA_COLDRIDGE_PASS, "Coldridge Pass" },
{ AREA_CHILL_BREEZE_VALLEY, "Chill Breeze Valley" },
{ AREA_SHIMMER_RIDGE, "Shimmer Ridge" },
{ AREA_AMBERSTILL_RANCH, "Amberstill Ranch" },
{ AREA_THE_TUNDRID_HILLS, "The Tundrid Hills" },
{ AREA_SOUTH_GATE_PASS0, "South Gate Pass0" },
{ AREA_SOUTH_GATE_OUTPOST, "South Gate Outpost" },
{ AREA_NORTH_GATE_PASS0, "North Gate Pass0" },
{ AREA_NORTH_GATE_OUTPOST, "North Gate Outpost" },
{ AREA_GATES_OF_IRONFORGE, "Gates Of Ironforge" },
{ AREA_STILLWATER_POND, "Stillwater Pond" },
{ AREA_NIGHTMARE_VALE, "Nightmare Vale" },
{ AREA_VENOMWEB_VALE, "Venomweb Vale" },
{ AREA_THE_BULWARK1, "The Bulwark1" },
{ AREA_SOUTHFURY_RIVER1, "Southfury River1" },
{ AREA_SOUTHFURY_RIVER2, "Southfury River2" },
{ AREA_RAZORMANE_GROUNDS, "Razormane Grounds" },
{ AREA_SKULL_ROCK, "Skull Rock" },
{ AREA_PALEMANE_ROCK, "Palemane Rock" },
{ AREA_WINDFURY_RIDGE, "Windfury Ridge" },
{ AREA_THE_GOLDEN_PLAINS, "The Golden Plains" },
{ AREA_THE_ROLLING_PLAINS, "The Rolling Plains" },
{ AREA_DUN_ALGAZ1, "Dun Algaz1" },
{ AREA_DUN_ALGAZ2, "Dun Algaz2" },
{ AREA_NORTH_GATE_PASS1, "North Gate Pass1" },
{ AREA_SOUTH_GATE_PASS1, "South Gate Pass1" },
{ AREA_TWILIGHT_GROVE, "Twilight Grove" },
{ AREA_GM_ISLAND, "Gm Island" },
{ AREA_DELETE_ME1, "Delete Me1" },
{ AREA_SOUTHFURY_RIVER3, "Southfury River3" },
{ AREA_SOUTHFURY_RIVER4, "Southfury River4" },
{ AREA_THANDOL_SPAN1, "Thandol Span1" },
{ AREA_THANDOL_SPAN2, "Thandol Span2" },
{ AREA_PURGATION_ISLE, "Purgation Isle" },
{ AREA_THE_JANSEN_STEAD, "The Jansen Stead" },
{ AREA_THE_DEAD_ACRE, "The Dead Acre" },
{ AREA_THE_MOLSEN_FARM, "The Molsen Farm" },
{ AREA_STENDELS_POND, "Stendels Pond" },
{ AREA_THE_DAGGER_HILLS, "The Dagger Hills" },
{ AREA_DEMONTS_PLACE, "Demonts Place" },
{ AREA_THE_DUST_PLAINS, "The Dust Plains" },
{ AREA_STONESPLINTER_VALLEY, "Stonesplinter Valley" },
{ AREA_VALLEY_OF_KINGS, "Valley Of Kings" },
{ AREA_ALGAZ_STATION, "Algaz Station" },
{ AREA_BUCKLEBREE_FARM, "Bucklebree Farm" },
{ AREA_THE_SHINING_STRAND, "The Shining Strand" },
{ AREA_NORTH_TIDES_HOLLOW, "North Tides Hollow" },
{ AREA_GRIZZLEPAW_RIDGE, "Grizzlepaw Ridge" },
{ AREA_THE_VERDANT_FIELDS, "The Verdant Fields" },
{ AREA_GADGETZAN, "Gadgetzan" },
{ AREA_STEAMWHEEDLE_PORT, "Steamwheedle Port" },
{ AREA_ZUL_FARRAK0, "Zul Farrak0" },
{ AREA_SANDSORROW_WATCH, "Sandsorrow Watch" },
{ AREA_THISTLESHRUB_VALLEY, "Thistleshrub Valley" },
{ AREA_THE_GAPING_CHASM, "The Gaping Chasm" },
{ AREA_THE_NOXIOUS_LAIR, "The Noxious Lair" },
{ AREA_DUNEMAUL_COMPOUND, "Dunemaul Compound" },
{ AREA_EASTMOON_RUINS, "Eastmoon Ruins" },
{ AREA_WATERSPRING_FIELD, "Waterspring Field" },
{ AREA_ZALASHJIS_DEN, "Zalashjis Den" },
{ AREA_LANDS_END_BEACH, "Lands End Beach" },
{ AREA_WAVESTRIDER_BEACH, "Wavestrider Beach" },
{ AREA_ULDUM, "Uldum" },
{ AREA_VALLEY_OF_THE_WATCHERS, "Valley Of The Watchers" },
{ AREA_GUNSTANS_POST, "Gunstans Post" },
{ AREA_SOUTHMOON_RUINS, "Southmoon Ruins" },
{ AREA_RENDERS_CAMP, "Renders Camp" },
{ AREA_RENDERS_VALLEY, "Renders Valley" },
{ AREA_RENDERS_ROCK, "Renders Rock" },
{ AREA_STONEWATCH_TOWER, "Stonewatch Tower" },
{ AREA_GALARDELL_VALLEY, "Galardell Valley" },
{ AREA_LAKERIDGE_HIGHWAY, "Lakeridge Highway" },
{ AREA_THREE_CORNERS, "Three Corners" },
{ AREA_DIREFORGE_HILL, "Direforge Hill" },
{ AREA_RAPTOR_RIDGE, "Raptor Ridge" },
{ AREA_BLACK_CHANNEL_MARSH, "Black Channel Marsh" },
{ AREA_THE_GREEN_BELT0, "The Green Belt0" },
{ AREA_MOSSHIDE_FEN, "Mosshide Fen" },
{ AREA_THELGEN_ROCK, "Thelgen Rock" },
{ AREA_BLUEGILL_MARSH, "Bluegill Marsh" },
{ AREA_SALTSPRAY_GLEN, "Saltspray Glen" },
{ AREA_SUNDOWN_MARSH, "Sundown Marsh" },
{ AREA_THE_GREEN_BELT1, "The Green Belt1" },
{ AREA_ANGERFANG_ENCAMPMENT, "Angerfang Encampment" },
{ AREA_GRIM_BATOL, "Grim Batol" },
{ AREA_DRAGONMAW_GATES, "Dragonmaw Gates" },
{ AREA_THE_LOST_FLEET, "The Lost Fleet" },
{ AREA_DARROW_HILL0, "Darrow Hill0" },
{ AREA_THORADINS_WALL1, "Thoradins Wall1" },
{ AREA_WEBWINDER_PATH, "Webwinder Path" },
{ AREA_THE_HUSHED_BANK, "The Hushed Bank" },
{ AREA_MANOR_MISTMANTLE, "Manor Mistmantle" },
{ AREA_CAMP_MOJACHE, "Camp Mojache" },
{ AREA_GRIMTOTEM_COMPOUND, "Grimtotem Compound" },
{ AREA_THE_WRITHING_DEEP, "The Writhing Deep" },
{ AREA_WILDWIND_LAKE, "Wildwind Lake" },
{ AREA_GORDUNNI_OUTPOST, "Gordunni Outpost" },
{ AREA_MOK_GORDUN, "Mok Gordun" },
{ AREA_FERAL_SCAR_VALE, "Feral Scar Vale" },
{ AREA_FRAYFEATHER_HIGHLANDS, "Frayfeather Highlands" },
{ AREA_IDLEWIND_LAKE, "Idlewind Lake" },
{ AREA_THE_FORGOTTEN_COAST, "The Forgotten Coast" },
{ AREA_EAST_PILLAR, "East Pillar" },
{ AREA_WEST_PILLAR, "West Pillar" },
{ AREA_DREAM_BOUGH, "Dream Bough" },
{ AREA_JADEMIR_LAKE, "Jademir Lake" },
{ AREA_ONEIROS, "Oneiros" },
{ AREA_RUINS_OF_RAVENWIND, "Ruins Of Ravenwind" },
{ AREA_RAGE_SCAR_HOLD, "Rage Scar Hold" },
{ AREA_FEATHERMOON_STRONGHOLD, "Feathermoon Stronghold" },
{ AREA_RUINS_OF_SOLARSAL, "Ruins Of Solarsal" },
{ AREA_LOWER_WILDS_UNUSED, "Lower Wilds Unused" },
{ AREA_THE_TWIN_COLOSSALS, "The Twin Colossals" },
{ AREA_SARDOR_ISLE, "Sardor Isle" },
{ AREA_ISLE_OF_DREAD, "Isle Of Dread" },
{ AREA_HIGH_WILDERNESS, "High Wilderness" },
{ AREA_LOWER_WILDS, "Lower Wilds" },
{ AREA_SOUTHERN_BARRENS, "Southern Barrens" },
{ AREA_SOUTHERN_GOLD_ROAD, "Southern Gold Road" },
{ AREA_ZUL_FARRAK1, "Zul Farrak1" },
{ AREA_UNUSED_ALCAZ_ISLAND, "Unused Alcaz Island" },
{ AREA_TIMBERMAW_HOLD0, "Timbermaw Hold0" },
{ AREA_VANNDIR_ENCAMPMENT, "Vanndir Encampment" },
{ AREA_TEST_AZSHARA, "Test Azshara" },
{ AREA_LEGASH_ENCAMPMENT, "Legash Encampment" },
{ AREA_THALASSIAN_BASE_CAMP, "Thalassian Base Camp" },
{ AREA_RUINS_OF_ELDARATH, "Ruins Of Eldarath" },
{ AREA_HETAERAS_CLUTCH, "Hetaeras Clutch" },
{ AREA_TEMPLE_OF_ZIN_MALOR, "Temple Of Zin Malor" },
{ AREA_BEARS_HEAD, "Bears Head" },
{ AREA_URSOLAN, "Ursolan" },
{ AREA_TEMPLE_OF_ARKKORAN, "Temple Of Arkkoran" },
{ AREA_BAY_OF_STORMS, "Bay Of Storms" },
{ AREA_THE_SHATTERED_STRAND, "The Shattered Strand" },
{ AREA_TOWER_OF_ELDARA, "Tower Of Eldara" },
{ AREA_JAGGED_REEF, "Jagged Reef" },
{ AREA_SOUTHRIDGE_BEACH, "Southridge Beach" },
{ AREA_RAVENCREST_MONUMENT, "Ravencrest Monument" },
{ AREA_FORLORN_RIDGE, "Forlorn Ridge" },
{ AREA_LAKE_MENNAR, "Lake Mennar" },
{ AREA_SHADOWSONG_SHRINE, "Shadowsong Shrine" },
{ AREA_HALDARR_ENCAMPMENT, "Haldarr Encampment" },
{ AREA_VALORMOK, "Valormok" },
{ AREA_THE_RUINED_REACHES, "The Ruined Reaches" },
{ AREA_THE_TALONDEEP_PATH0, "The Talondeep Path0" },
{ AREA_THE_TALONDEEP_PATH1, "The Talondeep Path1" },
{ AREA_ROCKTUSK_FARM, "Rocktusk Farm" },
{ AREA_JAGGEDSWINE_FARM, "Jaggedswine Farm" },
{ AREA_RAZORFEN_DOWNS1, "Razorfen Downs1" },
{ AREA_LOST_RIGGER_COVE, "Lost Rigger Cove" },
{ AREA_ULDAMAN0, "Uldaman0" },
{ AREA_LORDAMERE_LAKE1, "Lordamere Lake1" },
{ AREA_LORDAMERE_LAKE2, "Lordamere Lake2" },
{ AREA_GALLOWS_CORNER, "Gallows Corner" },
{ AREA_SILITHUS, "Silithus" },
{ AREA_EMERALD_FOREST, "Emerald Forest" },
{ AREA_SUNKEN_TEMPLE, "Sunken Temple" },
{ AREA_DREADMAUL_HOLD, "Dreadmaul Hold" },
{ AREA_NETHERGARDE_KEEP, "Nethergarde Keep" },
{ AREA_DREADMAUL_POST, "Dreadmaul Post" },
{ AREA_SERPENTS_COIL, "Serpents Coil" },
{ AREA_ALTAR_OF_STORMS1, "Altar Of Storms1" },
{ AREA_FIREWATCH_RIDGE, "Firewatch Ridge" },
{ AREA_THE_SLAG_PIT, "The Slag Pit" },
{ AREA_THE_SEA_OF_CINDERS, "The Sea Of Cinders" },
{ AREA_BLACKROCK_MOUNTAIN2, "Blackrock Mountain2" },
{ AREA_THORIUM_POINT, "Thorium Point" },
{ AREA_GARRISON_ARMORY, "Garrison Armory" },
{ AREA_THE_TEMPLE_OF_ATAL_HAKKAR, "The Temple Of Atal Hakkar" },
{ AREA_UNDERCITY, "Undercity" },
{ AREA_ULDAMAN1, "Uldaman1" },
{ AREA_NOT_USED_DEADMINES, "Not Used Deadmines" },
{ AREA_STORMWIND_CITY, "Stormwind City" },
{ AREA_IRONFORGE, "Ironforge" },
{ AREA_SPLITHOOF_HOLD, "Splithoof Hold" },
{ AREA_THE_CAPE_OF_STRANGLETHORN, "The Cape Of Stranglethorn" },
{ AREA_SOUTHERN_SAVAGE_COAST, "Southern Savage Coast" },
{ AREA_UNUSED_THE_DEADMINES_002, "Unused The Deadmines 002" },
{ AREA_UNUSED_IRONCLAD_COVE_003, "Unused Ironclad Cove 003" },
{ AREA_THE_DEADMINES, "The Deadmines" },
{ AREA_IRONCLAD_COVE, "Ironclad Cove" },
{ AREA_BLACKROCK_SPIRE, "Blackrock Spire" },
{ AREA_BLACKROCK_DEPTHS, "Blackrock Depths" },
{ AREA_RAPTOR_GROUNDS_UNUSED, "Raptor Grounds Unused" },
{ AREA_GROLDOM_FARM_UNUSED, "Groldom Farm Unused" },
{ AREA_MORSHAN_BASE_CAMP, "Morshan Base Camp" },
{ AREA_HONORS_STAND_UNUSED, "Honors Stand Unused" },
{ AREA_BLACKTHORN_RIDGE_UNUSED, "Blackthorn Ridge Unused" },
{ AREA_BRAMBLESCAR_UNUSED, "Bramblescar Unused" },
{ AREA_AGAMAGOR_UNUSED, "Agamagor Unused" },
{ AREA_VALLEY_OF_HEROES, "Valley Of Heroes" },
{ AREA_ORGRIMMAR, "Orgrimmar" },
{ AREA_THUNDER_BLUFF, "Thunder Bluff" },
{ AREA_ELDER_RISE, "Elder Rise" },
{ AREA_SPIRIT_RISE, "Spirit Rise" },
{ AREA_HUNTER_RISE, "Hunter Rise" },
{ AREA_DARNASSUS, "Darnassus" },
{ AREA_CENARION_ENCLAVE, "Cenarion Enclave" },
{ AREA_CRAFTSMENS_TERRACE, "Craftsmens Terrace" },
{ AREA_WARRIORS_TERRACE, "Warriors Terrace" },
{ AREA_THE_TEMPLE_GARDENS, "The Temple Gardens" },
{ AREA_TRADESMENS_TERRACE, "Tradesmens Terrace" },
{ AREA_GAVINS_NAZE, "Gavins Naze" },
{ AREA_SOFERAS_NAZE, "Soferas Naze" },
{ AREA_CORRAHNS_DAGGER, "Corrahns Dagger" },
{ AREA_THE_HEADLAND, "The Headland" },
{ AREA_MISTY_SHORE, "Misty Shore" },
{ AREA_DANDREDS_FOLD, "Dandreds Fold" },
{ AREA_GROWLESS_CAVE, "Growless Cave" },
{ AREA_CHILLWIND_POINT, "Chillwind Point" },
{ AREA_RAPTOR_GROUNDS, "Raptor Grounds" },
{ AREA_BRAMBLESCAR, "Bramblescar" },
{ AREA_THORN_HILL, "Thorn Hill" },
{ AREA_AGAMAGOR, "Agamagor" },
{ AREA_BLACKTHORN_RIDGE, "Blackthorn Ridge" },
{ AREA_HONORS_STAND, "Honors Stand" },
{ AREA_THE_MORSHAN_RAMPART, "The Morshan Rampart" },
{ AREA_GROLDOM_FARM, "Groldom Farm" },
{ AREA_RAZORFEN_KRAUL1, "Razorfen Kraul1" },
{ AREA_THE_GREAT_LIFT1, "The Great Lift1" },
{ AREA_MISTVALE_VALLEY, "Mistvale Valley" },
{ AREA_NEKMANI_WELLSPRING, "Nekmani Wellspring" },
{ AREA_BLOODSAIL_COMPOUND, "Bloodsail Compound" },
{ AREA_VENTURE_CO_BASE_CAMP, "Venture Co Base Camp" },
{ AREA_GURUBASHI_ARENA, "Gurubashi Arena" },
{ AREA_SPIRIT_DEN, "Spirit Den" },
{ AREA_THE_CRIMSON_VEIL, "The Crimson Veil" },
{ AREA_THE_RIPTIDE, "The Riptide" },
{ AREA_THE_DAMSELS_LUCK, "The Damsels Luck" },
{ AREA_VENTURE_CO_OPERATIONS_CENTER, "Venture Co Operations Center" },
{ AREA_DEADWOOD_VILLAGE, "Deadwood Village" },
{ AREA_FELPAW_VILLAGE, "Felpaw Village" },
{ AREA_JAEDENAR, "Jaedenar" },
{ AREA_BLOODVENOM_RIVER, "Bloodvenom River" },
{ AREA_BLOODVENOM_FALLS, "Bloodvenom Falls" },
{ AREA_SHATTER_SCAR_VALE, "Shatter Scar Vale" },
{ AREA_IRONTREE_WOODS, "Irontree Woods" },
{ AREA_IRONTREE_CAVERN, "Irontree Cavern" },
{ AREA_TIMBERMAW_HOLD1, "Timbermaw Hold1" },
{ AREA_SHADOW_HOLD, "Shadow Hold" },
{ AREA_SHRINE_OF_THE_DECEIVER, "Shrine Of The Deceiver" },
{ AREA_ITHARIUSS_CAVE, "Ithariuss Cave" },
{ AREA_SORROWMURK, "Sorrowmurk" },
{ AREA_DRAENILDUR_VILLAGE, "Draenildur Village" },
{ AREA_SPLINTERSPEAR_JUNCTION, "Splinterspear Junction" },
{ AREA_STAGALBOG, "Stagalbog" },
{ AREA_THE_SHIFTING_MIRE, "The Shifting Mire" },
{ AREA_STAGALBOG_CAVE, "Stagalbog Cave" },
{ AREA_WITHERBARK_CAVERNS, "Witherbark Caverns" },
{ AREA_THORADINS_WALL2, "Thoradins Wall2" },
{ AREA_BOULDERGOR, "Bouldergor" },
{ AREA_VALLEY_OF_FANGS, "Valley Of Fangs" },
{ AREA_THE_DUSTBOWL, "The Dustbowl" },
{ AREA_MIRAGE_FLATS, "Mirage Flats" },
{ AREA_FEATHERBEARDS_HOVEL, "Featherbeards Hovel" },
{ AREA_SHINDIGGERS_CAMP, "Shindiggers Camp" },
{ AREA_PLAGUEMIST_RAVINE, "Plaguemist Ravine" },
{ AREA_VALORWIND_LAKE, "Valorwind Lake" },
{ AREA_AGOLWATHA, "Agolwatha" },
{ AREA_HIRIWATHA, "Hiriwatha" },
{ AREA_THE_CREEPING_RUIN, "The Creeping Ruin" },
{ AREA_BOGENS_LEDGE, "Bogens Ledge" },
{ AREA_THE_MAKERS_TERRACE, "The Makers Terrace" },
{ AREA_DUSTWIND_GULCH, "Dustwind Gulch" },
{ AREA_SHAOLWATHA, "Shaolwatha" },
{ AREA_NOONSHADE_RUINS, "Noonshade Ruins" },
{ AREA_BROKEN_PILLAR, "Broken Pillar" },
{ AREA_ABYSSAL_SANDS, "Abyssal Sands" },
{ AREA_SOUTHBREAK_SHORE, "Southbreak Shore" },
{ AREA_CAVERNS_OF_TIME0, "Caverns Of Time0" },
{ AREA_THE_MARSHLANDS, "The Marshlands" },
{ AREA_IRONSTONE_PLATEAU, "Ironstone Plateau" },
{ AREA_BLACKCHAR_CAVE, "Blackchar Cave" },
{ AREA_TANNER_CAMP, "Tanner Camp" },
{ AREA_DUSTFIRE_VALLEY, "Dustfire Valley" },
{ AREA_ZUL_GURUB1, "Zul Gurub1" },
{ AREA_MISTY_REED_POST, "Misty Reed Post" },
{ AREA_BLOODVENOM_POST, "Bloodvenom Post" },
{ AREA_TALONBRANCH_GLADE, "Talonbranch Glade" },
{ AREA_STRATHOLME0, "Stratholme0" },
{ AREA_UNUSED_SHADOWFANG_KEEP_003, "Unused Shadowfang Keep 003" },
{ AREA_SCHOLOMANCE, "Scholomance" },
{ AREA_TWILIGHT_VALE, "Twilight Vale" },
{ AREA_TWILIGHT_SHORE, "Twilight Shore" },
{ AREA_ALCAZ_ISLAND, "Alcaz Island" },
{ AREA_DARKCLOUD_PINNACLE, "Darkcloud Pinnacle" },
{ AREA_DAWNING_WOOD_CATACOMBS, "Dawning Wood Catacombs" },
{ AREA_STONEWATCH_KEEP, "Stonewatch Keep" },
{ AREA_MARAUDON, "Maraudon" },
{ AREA_STOUTLAGER_INN, "Stoutlager Inn" },
{ AREA_THUNDERBREW_DISTILLERY, "Thunderbrew Distillery" },
{ AREA_MENETHIL_KEEP, "Menethil Keep" },
{ AREA_DEEPWATER_TAVERN, "Deepwater Tavern" },
{ AREA_SHADOW_GRAVE, "Shadow Grave" },
{ AREA_BRILL_TOWN_HALL, "Brill Town Hall" },
{ AREA_GALLOWS_END_TAVERN, "Gallows End Tavern" },
{ AREA_THE_POOLS_OF_VISION_UNUSED, "The Pools Of Vision Unused" },
{ AREA_DREADMIST_DEN, "Dreadmist Den" },
{ AREA_BAELDUN_KEEP, "Baeldun Keep" },
{ AREA_EMBERSTRIFES_DEN, "Emberstrifes Den" },
{ AREA_ONYXIAS_LAIR, "Onyxias Lair" },
{ AREA_WINDSHEAR_MINE, "Windshear Mine" },
{ AREA_ROLANDS_DOOM, "Rolands Doom" },
{ AREA_BATTLE_RING, "Battle Ring" },
{ AREA_THE_POOLS_OF_VISION, "The Pools Of Vision" },
{ AREA_SHADOWBREAK_RAVINE, "Shadowbreak Ravine" },
{ AREA_BROKEN_SPEAR_VILLAGE, "Broken Spear Village" },
{ AREA_WHITEREACH_POST, "Whitereach Post" },
{ AREA_GORNIA, "Gornia" },
{ AREA_ZANES_EYE_CRATER, "Zanes Eye Crater" },
{ AREA_MIRAGE_RACEWAY, "Mirage Raceway" },
{ AREA_FROSTSABER_ROCK, "Frostsaber Rock" },
{ AREA_THE_HIDDEN_GROVE, "The Hidden Grove" },
{ AREA_TIMBERMAW_POST, "Timbermaw Post" },
{ AREA_WINTERFALL_VILLAGE, "Winterfall Village" },
{ AREA_MAZTHORIL, "Mazthoril" },
{ AREA_FROSTFIRE_HOT_SPRINGS, "Frostfire Hot Springs" },
{ AREA_ICE_THISTLE_HILLS, "Ice Thistle Hills" },
{ AREA_DUN_MANDARR, "Dun Mandarr" },
{ AREA_FROSTWHISPER_GORGE, "Frostwhisper Gorge" },
{ AREA_OWL_WING_THICKET, "Owl Wing Thicket" },
{ AREA_LAKE_KEL_THERIL, "Lake Kel Theril" },
{ AREA_THE_RUINS_OF_KEL_THERIL, "The Ruins Of Kel Theril" },
{ AREA_STARFALL_VILLAGE, "Starfall Village" },
{ AREA_BAN_THALLOW_BARROW_DEN, "Ban Thallow Barrow Den" },
{ AREA_EVERLOOK, "Everlook" },
{ AREA_DARKWHISPER_GORGE, "Darkwhisper Gorge" },
{ AREA_DEEPRUN_TRAM, "Deeprun Tram" },
{ AREA_THE_FUNGAL_VALE, "The Fungal Vale" },
{ AREA_UNUSED_THE_MARRIS_STEAD, "Unused The Marris Stead" },
{ AREA_THE_MARRIS_STEAD, "The Marris Stead" },
{ AREA_THE_UNDERCROFT, "The Undercroft" },
{ AREA_DARROWSHIRE, "Darrowshire" },
{ AREA_CROWN_GUARD_TOWER, "Crown Guard Tower" },
{ AREA_CORINS_CROSSING, "Corins Crossing" },
{ AREA_SCARLET_BASE_CAMP, "Scarlet Base Camp" },
{ AREA_TYRS_HAND, "Tyrs Hand" },
{ AREA_THE_SCARLET_BASILICA, "The Scarlet Basilica" },
{ AREA_LIGHTS_HOPE_CHAPEL, "Lights Hope Chapel" },
{ AREA_BROWMAN_MILL, "Browman Mill" },
{ AREA_THE_NOXIOUS_GLADE, "The Noxious Glade" },
{ AREA_EASTWALL_TOWER, "Eastwall Tower" },
{ AREA_NORTHDALE, "Northdale" },
{ AREA_ZUL_MASHAR, "Zul Mashar" },
{ AREA_MAZRA_ALOR, "Mazra Alor" },
{ AREA_NORTHPASS_TOWER, "Northpass Tower" },
{ AREA_QUEL_LITHIEN_LODGE, "Quel Lithien Lodge" },
{ AREA_PLAGUEWOOD, "Plaguewood" },
{ AREA_SCOURGEHOLD, "Scourgehold" },
{ AREA_STRATHOLME1, "Stratholme1" },
{ AREA_UNUSED_STRATHOLME, "Unused Stratholme" },
{ AREA_DARROWMERE_LAKE0, "Darrowmere Lake0" },
{ AREA_CAER_DARROW, "Caer Darrow" },
{ AREA_DARROWMERE_LAKE1, "Darrowmere Lake1" },
{ AREA_CAVERNS_OF_TIME1, "Caverns Of Time1" },
{ AREA_THISTLEFUR_VILLAGE, "Thistlefur Village" },
{ AREA_THE_QUAGMIRE, "The Quagmire" },
{ AREA_WINDBREAK_CANYON, "Windbreak Canyon" },
{ AREA_SOUTH_SEAS0, "South Seas0" },
{ AREA_THE_GREAT_SEA3, "The Great Sea3" },
{ AREA_THE_GREAT_SEA4, "The Great Sea4" },
{ AREA_THE_GREAT_SEA5, "The Great Sea5" },
{ AREA_THE_GREAT_SEA6, "The Great Sea6" },
{ AREA_THE_VEILED_SEA1, "The Veiled Sea1" },
{ AREA_THE_VEILED_SEA2, "The Veiled Sea2" },
{ AREA_THE_VEILED_SEA3, "The Veiled Sea3" },
{ AREA_THE_VEILED_SEA4, "The Veiled Sea4" },
{ AREA_THE_VEILED_SEA5, "The Veiled Sea5" },
{ AREA_RAZOR_HILL_BARRACKS, "Razor Hill Barracks" },
{ AREA_SOUTH_SEAS1, "South Seas1" },
{ AREA_THE_GREAT_SEA7, "The Great Sea7" },
{ AREA_BLOODTOOTH_CAMP, "Bloodtooth Camp" },
{ AREA_FOREST_SONG, "Forest Song" },
{ AREA_GREENPAW_VILLAGE, "Greenpaw Village" },
{ AREA_SILVERWING_OUTPOST, "Silverwing Outpost" },
{ AREA_NIGHTHAVEN, "Nighthaven" },
{ AREA_SHRINE_OF_REMULOS, "Shrine Of Remulos" },
{ AREA_STORMRAGE_BARROW_DENS, "Stormrage Barrow Dens" },
{ AREA_THE_GREAT_SEA8, "The Great Sea8" },
{ AREA_THE_GREAT_SEA9, "The Great Sea9" },
{ AREA_THE_BLACK_MORASS, "The Black Morass" },
{ AREA_OLD_HILLSBRAD_FOOTHILLS, "Old Hillsbrad Foothills" },
{ AREA_TARREN_MILL1, "Tarren Mill1" },
{ AREA_SOUTHSHORE1, "Southshore1" },
{ AREA_DURNHOLDE_KEEP1, "Durnholde Keep1" },
{ AREA_DUN_GAROK1, "Dun Garok1" },
{ AREA_HILLSBRAD_FIELDS1, "Hillsbrad Fields1" },
{ AREA_EASTERN_STRAND1, "Eastern Strand1" },
{ AREA_NETHANDER_STEAD1, "Nethander Stead1" },
{ AREA_DARROW_HILL1, "Darrow Hill1" },
{ AREA_SOUTHPOINT_TOWER1, "Southpoint Tower1" },
{ AREA_THORADINS_WALL3, "Thoradins Wall3" },
{ AREA_WESTERN_STRAND1, "Western Strand1" },
{ AREA_AZURELODE_MINE1, "Azurelode Mine1" },
{ AREA_THE_GREAT_SEA10, "The Great Sea10" },
{ AREA_THE_GREAT_SEA11, "The Great Sea11" },
{ AREA_THE_GREAT_SEA12, "The Great Sea12" },
{ AREA_THE_FORBIDDING_SEA1, "The Forbidding Sea1" },
{ AREA_THE_FORBIDDING_SEA2, "The Forbidding Sea2" },
{ AREA_THE_FORBIDDING_SEA3, "The Forbidding Sea3" },
{ AREA_THE_FORBIDDING_SEA4, "The Forbidding Sea4" },
{ AREA_TETHRIS_ARAN, "Tethris Aran" },
{ AREA_ETHEL_RETHOR, "Ethel Rethor" },
{ AREA_RANAZJAR_ISLE, "Ranazjar Isle" },
{ AREA_KORMEKS_HUT, "Kormeks Hut" },
{ AREA_SHADOWPREY_VILLAGE, "Shadowprey Village" },
{ AREA_BLACKROCK_PASS, "Blackrock Pass" },
{ AREA_MORGANS_VIGIL, "Morgans Vigil" },
{ AREA_SLITHER_ROCK, "Slither Rock" },
{ AREA_TERROR_WING_PATH, "Terror Wing Path" },
{ AREA_DRACODAR, "Dracodar" },
{ AREA_RAGEFIRE_CHASM, "Ragefire Chasm" },
{ AREA_NIGHTSONG_WOODS, "Nightsong Woods" },
{ AREA_THE_VEILED_SEA6, "The Veiled Sea6" },
{ AREA_MORLOS_ARAN, "Morlos Aran" },
{ AREA_EMERALD_SANCTUARY, "Emerald Sanctuary" },
{ AREA_JADEFIRE_GLEN, "Jadefire Glen" },
{ AREA_RUINS_OF_CONSTELLAS, "Ruins Of Constellas" },
{ AREA_BITTER_REACHES, "Bitter Reaches" },
{ AREA_RISE_OF_THE_DEFILER, "Rise Of The Defiler" },
{ AREA_LARISS_PAVILION, "Lariss Pavilion" },
{ AREA_WOODPAW_HILLS, "Woodpaw Hills" },
{ AREA_WOODPAW_DEN, "Woodpaw Den" },
{ AREA_VERDANTIS_RIVER, "Verdantis River" },
{ AREA_RUINS_OF_ISILDIEN, "Ruins Of Isildien" },
{ AREA_GRIMTOTEM_POST, "Grimtotem Post" },
{ AREA_CAMP_APARAJE, "Camp Aparaje" },
{ AREA_MALAKAJIN, "Malakajin" },
{ AREA_BOULDERSLIDE_RAVINE, "Boulderslide Ravine" },
{ AREA_SISHIR_CANYON, "Sishir Canyon" },
{ AREA_DIRE_MAUL0, "Dire Maul0" },
{ AREA_DEADWIND_RAVINE, "Deadwind Ravine" },
{ AREA_DIAMONDHEAD_RIVER, "Diamondhead River" },
{ AREA_ARIDENS_CAMP, "Aridens Camp" },
{ AREA_THE_VICE, "The Vice" },
{ AREA_KARAZHAN, "Karazhan" },
{ AREA_MORGANS_PLOT, "Morgans Plot" },
{ AREA_DIRE_MAUL1, "Dire Maul1" },
{ AREA_ALTERAC_VALLEY0, "Alterac Valley0" },
{ AREA_SCRABBLESCREWS_CAMP, "Scrabblescrews Camp" },
{ AREA_JADEFIRE_RUN, "Jadefire Run" },
{ AREA_THONDRORIL_RIVER0, "Thondroril River0" },
{ AREA_THONDRORIL_RIVER1, "Thondroril River1" },
{ AREA_LAKE_MERELDAR, "Lake Mereldar" },
{ AREA_PESTILENT_SCAR, "Pestilent Scar" },
{ AREA_THE_INFECTIS_SCAR, "The Infectis Scar" },
{ AREA_BLACKWOOD_LAKE, "Blackwood Lake" },
{ AREA_EASTWALL_GATE, "Eastwall Gate" },
{ AREA_TERRORWEB_TUNNEL, "Terrorweb Tunnel" },
{ AREA_TERRORDALE, "Terrordale" },
{ AREA_KARGATHIA_KEEP, "Kargathia Keep" },
{ AREA_VALLEY_OF_BONES, "Valley Of Bones" },
{ AREA_BLACKWING_LAIR, "Blackwing Lair" },
{ AREA_DEADMANS_CROSSING, "Deadmans Crossing" },
{ AREA_MOLTEN_CORE, "Molten Core" },
{ AREA_THE_SCARAB_WALL, "The Scarab Wall" },
{ AREA_SOUTHWIND_VILLAGE, "Southwind Village" },
{ AREA_TWILIGHT_BASE_CAMP, "Twilight Base Camp" },
{ AREA_THE_CRYSTAL_VALE, "The Crystal Vale" },
{ AREA_THE_SCARAB_DAIS, "The Scarab Dais" },
{ AREA_HIVE_ASHI, "Hive Ashi" },
{ AREA_HIVE_ZORA, "Hive Zora" },
{ AREA_HIVE_REGAL, "Hive Regal" },
{ AREA_SHRINE_OF_THE_FALLEN_WARRIOR, "Shrine Of The Fallen Warrior" },
{ AREA_UNUSED_ALTERAC_VALLEY, "Unused Alterac Valley" },
{ AREA_BLACKFATHOM_DEEPS1, "Blackfathom Deeps1" },
{ AREA_ON_MAP_DUNGEON4, "On Map Dungeon4" },
{ AREA_THE_MASTERS_CELLAR, "The Masters Cellar" },
{ AREA_STONEWROUGHT_PASS, "Stonewrought Pass" },
{ AREA_ALTERAC_VALLEY1, "Alterac Valley1" },
{ AREA_THE_RUMBLE_CAGE, "The Rumble Cage" },
{ AREA_CHUNK_TEST, "Chunk Test" },
{ AREA_ZORAMGAR_OUTPOST, "Zoramgar Outpost" },
{ AREA_HALL_OF_LEGENDS, "Hall Of Legends" },
{ AREA_CHAMPIONS_HALL, "Champions Hall" },
{ AREA_GROSHGOK_COMPOUND, "Groshgok Compound" },
{ AREA_SLEEPING_GORGE, "Sleeping Gorge" },
{ AREA_IRONDEEP_MINE, "Irondeep Mine" },
{ AREA_STONEHEARTH_OUTPOST, "Stonehearth Outpost" },
{ AREA_DUN_BALDAR, "Dun Baldar" },
{ AREA_ICEWING_PASS, "Icewing Pass" },
{ AREA_FROSTWOLF_VILLAGE, "Frostwolf Village" },
{ AREA_TOWER_POINT, "Tower Point" },
{ AREA_COLDTOOTH_MINE, "Coldtooth Mine" },
{ AREA_WINTERAX_HOLD, "Winterax Hold" },
{ AREA_ICEBLOOD_GARRISON, "Iceblood Garrison" },
{ AREA_FROSTWOLF_KEEP, "Frostwolf Keep" },
{ AREA_TORKREN_FARM, "Torkren Farm" },
{ AREA_FROST_DAGGER_PASS, "Frost Dagger Pass" },
{ AREA_IRONSTONE_CAMP, "Ironstone Camp" },
{ AREA_WEAZELS_CRATER, "Weazels Crater" },
{ AREA_TAHONDA_RUINS, "Tahonda Ruins" },
{ AREA_FIELD_OF_STRIFE, "Field Of Strife" },
{ AREA_ICEWING_CAVERN, "Icewing Cavern" },
{ AREA_VALORS_REST, "Valors Rest" },
{ AREA_THE_SWARMING_PILLAR, "The Swarming Pillar" },
{ AREA_TWILIGHT_POST, "Twilight Post" },
{ AREA_TWILIGHT_OUTPOST, "Twilight Outpost" },
{ AREA_RAVAGED_TWILIGHT_CAMP, "Ravaged Twilight Camp" },
{ AREA_SHALZARUS_LAIR, "Shalzarus Lair" },
{ AREA_TALRENDIS_POINT, "Talrendis Point" },
{ AREA_RETHRESS_SANCTUM, "Rethress Sanctum" },
{ AREA_MOON_HORROR_DEN, "Moon Horror Den" },
{ AREA_SCALEBEARDS_CAVE, "Scalebeards Cave" },
{ AREA_BOULDERSLIDE_CAVERN, "Boulderslide Cavern" },
{ AREA_WARSONG_LABOR_CAMP, "Warsong Labor Camp" },
{ AREA_CHILLWIND_CAMP, "Chillwind Camp" },
{ AREA_THE_MAUL, "The Maul" },
{ AREA_THE_MAUL_UNUSED, "The Maul Unused" },
{ AREA_BONES_OF_GRAKKAROND, "Bones Of Grakkarond" },
{ AREA_WARSONG_GULCH, "Warsong Gulch" },
{ AREA_FROSTWOLF_GRAVEYARD, "Frostwolf Graveyard" },
{ AREA_FROSTWOLF_PASS, "Frostwolf Pass" },
{ AREA_DUN_BALDAR_PASS, "Dun Baldar Pass" },
{ AREA_ICEBLOOD_GRAVEYARD, "Iceblood Graveyard" },
{ AREA_SNOWFALL_GRAVEYARD, "Snowfall Graveyard" },
{ AREA_STONEHEARTH_GRAVEYARD, "Stonehearth Graveyard" },
{ AREA_STORMPIKE_GRAVEYARD, "Stormpike Graveyard" },
{ AREA_ICEWING_BUNKER, "Icewing Bunker" },
{ AREA_STONEHEARTH_BUNKER, "Stonehearth Bunker" },
{ AREA_WILDPAW_RIDGE, "Wildpaw Ridge" },
{ AREA_REVANTUSK_VILLAGE, "Revantusk Village" },
{ AREA_ROCK_OF_DUROTAN, "Rock Of Durotan" },
{ AREA_SILVERWING_GROVE, "Silverwing Grove" },
{ AREA_WARSONG_LUMBER_MILL, "Warsong Lumber Mill" },
{ AREA_SILVERWING_HOLD, "Silverwing Hold" },
{ AREA_WILDPAW_CAVERN, "Wildpaw Cavern" },
{ AREA_THE_VEILED_CLEFT, "The Veiled Cleft" },
{ AREA_YOJAMBA_ISLE, "Yojamba Isle" },
{ AREA_ARATHI_BASIN, "Arathi Basin" },
{ AREA_THE_COIL, "The Coil" },
{ AREA_ALTAR_OF_HIREEK, "Altar Of Hireek" },
{ AREA_SHADRAZAAR, "Shadrazaar" },
{ AREA_HAKKARI_GROUNDS, "Hakkari Grounds" },
{ AREA_NAZE_OF_SHIRVALLAH, "Naze Of Shirvallah" },
{ AREA_TEMPLE_OF_BETHEKK, "Temple Of Bethekk" },
{ AREA_THE_BLOODFIRE_PIT, "The Bloodfire Pit" },
{ AREA_ALTAR_OF_THE_BLOOD_GOD, "Altar Of The Blood God" },
{ AREA_ZANZAS_RISE, "Zanzas Rise" },
{ AREA_EDGE_OF_MADNESS, "Edge Of Madness" },
{ AREA_TROLLBANE_HALL, "Trollbane Hall" },
{ AREA_DEFILERS_DEN, "Defilers Den" },
{ AREA_PAGLES_POINTE, "Pagles Pointe" },
{ AREA_FARM, "Farm" },
{ AREA_BLACKSMITH, "Blacksmith" },
{ AREA_LUMBER_MILL, "Lumber Mill" },
{ AREA_GOLD_MINE, "Gold Mine" },
{ AREA_STABLES, "Stables" },
{ AREA_CENARION_HOLD, "Cenarion Hold" },
{ AREA_STAGHELM_POINT, "Staghelm Point" },
{ AREA_BRONZEBEARD_ENCAMPMENT, "Bronzebeard Encampment" },
{ AREA_AHN_QIRAJ, "Ahn Qiraj" },
{ AREA_RUINS_OF_AHN_QIRAJ0, "Ruins Of Ahn Qiraj0" },
{ AREA_TWILIGHTS_RUN, "Twilights Run" },
{ AREA_ORTELLS_HIDEOUT, "Ortells Hideout" },
{ AREA_SCARAB_TERRACE, "Scarab Terrace" },
{ AREA_GENERALS_TERRACE, "Generals Terrace" },
{ AREA_THE_RESERVOIR, "The Reservoir" },
{ AREA_THE_HATCHERY, "The Hatchery" },
{ AREA_THE_COMB, "The Comb" },
{ AREA_WATCHERS_TERRACE, "Watchers Terrace" },
{ AREA_RUINS_OF_AHN_QIRAJ1, "Ruins Of Ahn Qiraj1" },
{ AREA_NAXXRAMAS, "Naxxramas" },
{ AREA_CITY, "City" },
{ AREA_GATES_OF_AHN_QIRAJ, "Gates Of Ahn Qiraj" },
{ AREA_RAVENHOLDT_MANOR, "Ravenholdt Manor" },
{ 0, NULL }
};
typedef enum {
MAP_EASTERN_KINGDOMS = 0x000,
MAP_KALIMDOR = 0x001,
MAP_TESTING = 0x00D,
MAP_SCOTT_TEST = 0x019,
MAP_CASH_TEST = 0x01D,
MAP_ALTERAC_VALLEY = 0x01E,
MAP_SHADOWFANG_KEEP = 0x021,
MAP_STORMWIND_STOCKADE = 0x022,
MAP_STORMWIND_PRISON = 0x023,
MAP_DEADMINES = 0x024,
MAP_AZSHARA_CRATER = 0x025,
MAP_COLLINS_TEST = 0x02A,
MAP_WAILING_CAVERNS = 0x02B,
MAP_MONASTERY = 0x02C,
MAP_RAZORFEN_KRAUL = 0x02F,
MAP_BLACKFATHOM_DEEPS = 0x030,
MAP_ULDAMAN = 0x046,
MAP_GNOMERAGON = 0x05A,
MAP_SUNKEN_TEMPLE = 0x06D,
MAP_RAZORFEN_DOWNS = 0x081,
MAP_EMERALD_DREAM = 0x0A9,
MAP_SCARLET_MONASTERY = 0x0BD,
MAP_ZUL_FARRAK = 0x0D1,
MAP_BLACKROCK_SPIRE = 0x0E5,
MAP_BLACKROCK_DEPTHS = 0x0E6,
MAP_ONYXIAS_LAIR = 0x0F9,
MAP_CAVERNS_OF_TIME = 0x10D,
MAP_SCHOLOMANCE = 0x121,
MAP_ZUL_GURUB = 0x135,
MAP_STRATHOLME = 0x149,
MAP_MAURADON = 0x15D,
MAP_DEEPRUN_TRAM = 0x171,
MAP_RAGEFIRE_CHASM = 0x185,
MAP_MOLTEN_CORE = 0x199,
MAP_DIRE_MAUL = 0x1AD,
MAP_ALLIANCE_PVP_BARRACKS = 0x1C1,
MAP_HORDE_PVP_BARRACKS = 0x1C2,
MAP_DEVELOPMENT_LAND = 0x1C3,
MAP_BLACKWING_LAIR = 0x1D5,
MAP_WARSONG_GULCH = 0x1E9,
MAP_RUINS_OF_AHN_QIRAJ = 0x1FD,
MAP_ARATHI_BASIN = 0x211,
MAP_AHN_QIRAJ_TEMPLE = 0x213,
MAP_NAXXRAMAS = 0x215,
} e_map;
static const value_string e_map_strings[] = {
{ MAP_EASTERN_KINGDOMS, "Eastern Kingdoms" },
{ MAP_KALIMDOR, "Kalimdor" },
{ MAP_TESTING, "Testing" },
{ MAP_SCOTT_TEST, "Scott Test" },
{ MAP_CASH_TEST, "Cash Test" },
{ MAP_ALTERAC_VALLEY, "Alterac Valley" },
{ MAP_SHADOWFANG_KEEP, "Shadowfang Keep" },
{ MAP_STORMWIND_STOCKADE, "Stormwind Stockade" },
{ MAP_STORMWIND_PRISON, "Stormwind Prison" },
{ MAP_DEADMINES, "Deadmines" },
{ MAP_AZSHARA_CRATER, "Azshara Crater" },
{ MAP_COLLINS_TEST, "Collins Test" },
{ MAP_WAILING_CAVERNS, "Wailing Caverns" },
{ MAP_MONASTERY, "Monastery" },
{ MAP_RAZORFEN_KRAUL, "Razorfen Kraul" },
{ MAP_BLACKFATHOM_DEEPS, "Blackfathom Deeps" },
{ MAP_ULDAMAN, "Uldaman" },
{ MAP_GNOMERAGON, "Gnomeragon" },
{ MAP_SUNKEN_TEMPLE, "Sunken Temple" },
{ MAP_RAZORFEN_DOWNS, "Razorfen Downs" },
{ MAP_EMERALD_DREAM, "Emerald Dream" },
{ MAP_SCARLET_MONASTERY, "Scarlet Monastery" },
{ MAP_ZUL_FARRAK, "Zul Farrak" },
{ MAP_BLACKROCK_SPIRE, "Blackrock Spire" },
{ MAP_BLACKROCK_DEPTHS, "Blackrock Depths" },
{ MAP_ONYXIAS_LAIR, "Onyxias Lair" },
{ MAP_CAVERNS_OF_TIME, "Caverns Of Time" },
{ MAP_SCHOLOMANCE, "Scholomance" },
{ MAP_ZUL_GURUB, "Zul Gurub" },
{ MAP_STRATHOLME, "Stratholme" },
{ MAP_MAURADON, "Mauradon" },
{ MAP_DEEPRUN_TRAM, "Deeprun Tram" },
{ MAP_RAGEFIRE_CHASM, "Ragefire Chasm" },
{ MAP_MOLTEN_CORE, "Molten Core" },
{ MAP_DIRE_MAUL, "Dire Maul" },
{ MAP_ALLIANCE_PVP_BARRACKS, "Alliance Pvp Barracks" },
{ MAP_HORDE_PVP_BARRACKS, "Horde Pvp Barracks" },
{ MAP_DEVELOPMENT_LAND, "Development Land" },
{ MAP_BLACKWING_LAIR, "Blackwing Lair" },
{ MAP_WARSONG_GULCH, "Warsong Gulch" },
{ MAP_RUINS_OF_AHN_QIRAJ, "Ruins Of Ahn Qiraj" },
{ MAP_ARATHI_BASIN, "Arathi Basin" },
{ MAP_AHN_QIRAJ_TEMPLE, "Ahn Qiraj Temple" },
{ MAP_NAXXRAMAS, "Naxxramas" },
{ 0, NULL }
};
typedef enum {
INVENTORY_TYPE_NON_EQUIP = 0x00,
INVENTORY_TYPE_HEAD = 0x01,
INVENTORY_TYPE_NECK = 0x02,
INVENTORY_TYPE_SHOULDERS = 0x03,
INVENTORY_TYPE_BODY = 0x04,
INVENTORY_TYPE_CHEST = 0x05,
INVENTORY_TYPE_WAIST = 0x06,
INVENTORY_TYPE_LEGS = 0x07,
INVENTORY_TYPE_FEET = 0x08,
INVENTORY_TYPE_WRISTS = 0x09,
INVENTORY_TYPE_HANDS = 0x0A,
INVENTORY_TYPE_FINGER = 0x0B,
INVENTORY_TYPE_TRINKET = 0x0C,
INVENTORY_TYPE_WEAPON = 0x0D,
INVENTORY_TYPE_SHIELD = 0x0E,
INVENTORY_TYPE_RANGED = 0x0F,
INVENTORY_TYPE_CLOAK = 0x10,
INVENTORY_TYPE_TWO_HANDED_WEAPON = 0x11,
INVENTORY_TYPE_BAG = 0x12,
INVENTORY_TYPE_TABARD = 0x13,
INVENTORY_TYPE_ROBE = 0x14,
INVENTORY_TYPE_WEAPON_MAIN_HAND = 0x15,
INVENTORY_TYPE_WEAPON_OFF_HAND = 0x16,
INVENTORY_TYPE_HOLDABLE = 0x17,
INVENTORY_TYPE_AMMO = 0x18,
INVENTORY_TYPE_THROWN = 0x19,
INVENTORY_TYPE_RANGED_RIGHT = 0x1A,
INVENTORY_TYPE_QUIVER = 0x1B,
INVENTORY_TYPE_RELIC = 0x1C,
} e_inventory_type;
static const value_string e_inventory_type_strings[] = {
{ INVENTORY_TYPE_NON_EQUIP, "Non Equip" },
{ INVENTORY_TYPE_HEAD, "Head" },
{ INVENTORY_TYPE_NECK, "Neck" },
{ INVENTORY_TYPE_SHOULDERS, "Shoulders" },
{ INVENTORY_TYPE_BODY, "Body" },
{ INVENTORY_TYPE_CHEST, "Chest" },
{ INVENTORY_TYPE_WAIST, "Waist" },
{ INVENTORY_TYPE_LEGS, "Legs" },
{ INVENTORY_TYPE_FEET, "Feet" },
{ INVENTORY_TYPE_WRISTS, "Wrists" },
{ INVENTORY_TYPE_HANDS, "Hands" },
{ INVENTORY_TYPE_FINGER, "Finger" },
{ INVENTORY_TYPE_TRINKET, "Trinket" },
{ INVENTORY_TYPE_WEAPON, "Weapon" },
{ INVENTORY_TYPE_SHIELD, "Shield" },
{ INVENTORY_TYPE_RANGED, "Ranged" },
{ INVENTORY_TYPE_CLOAK, "Cloak" },
{ INVENTORY_TYPE_TWO_HANDED_WEAPON, "Two Handed Weapon" },
{ INVENTORY_TYPE_BAG, "Bag" },
{ INVENTORY_TYPE_TABARD, "Tabard" },
{ INVENTORY_TYPE_ROBE, "Robe" },
{ INVENTORY_TYPE_WEAPON_MAIN_HAND, "Weapon Main Hand" },
{ INVENTORY_TYPE_WEAPON_OFF_HAND, "Weapon Off Hand" },
{ INVENTORY_TYPE_HOLDABLE, "Holdable" },
{ INVENTORY_TYPE_AMMO, "Ammo" },
{ INVENTORY_TYPE_THROWN, "Thrown" },
{ INVENTORY_TYPE_RANGED_RIGHT, "Ranged Right" },
{ INVENTORY_TYPE_QUIVER, "Quiver" },
{ INVENTORY_TYPE_RELIC, "Relic" },
{ 0, NULL }
};
typedef enum {
FRIEND_STATUS_OFFLINE = 0x0,
FRIEND_STATUS_ONLINE = 0x1,
FRIEND_STATUS_AFK = 0x2,
FRIEND_STATUS_UNKNOWN3 = 0x3,
FRIEND_STATUS_DND = 0x4,
} e_friend_status;
static const value_string e_friend_status_strings[] = {
{ FRIEND_STATUS_OFFLINE, "Offline" },
{ FRIEND_STATUS_ONLINE, "Online" },
{ FRIEND_STATUS_AFK, "Afk" },
{ FRIEND_STATUS_UNKNOWN3, "Unknown3" },
{ FRIEND_STATUS_DND, "Dnd" },
{ 0, NULL }
};
typedef enum {
GUILD_MEMBER_STATUS_OFFLINE = 0x0,
GUILD_MEMBER_STATUS_ONLINE = 0x1,
} e_guild_member_status;
static const value_string e_guild_member_status_strings[] = {
{ GUILD_MEMBER_STATUS_OFFLINE, "Offline" },
{ GUILD_MEMBER_STATUS_ONLINE, "Online" },
{ 0, NULL }
};
typedef enum {
MAIL_TYPE_NORMAL = 0x0,
MAIL_TYPE_AUCTION = 0x2,
MAIL_TYPE_CREATURE = 0x3,
MAIL_TYPE_GAMEOBJECT = 0x4,
MAIL_TYPE_ITEM = 0x5,
} e_mail_type;
static const value_string e_mail_type_strings[] = {
{ MAIL_TYPE_NORMAL, "Normal" },
{ MAIL_TYPE_AUCTION, "Auction" },
{ MAIL_TYPE_CREATURE, "Creature" },
{ MAIL_TYPE_GAMEOBJECT, "Gameobject" },
{ MAIL_TYPE_ITEM, "Item" },
{ 0, NULL }
};
typedef enum {
LANGUAGE_UNIVERSAL = 0x00000000,
LANGUAGE_ORCISH = 0x00000001,
LANGUAGE_DARNASSIAN = 0x00000002,
LANGUAGE_TAURAHE = 0x00000003,
LANGUAGE_DWARVISH = 0x00000006,
LANGUAGE_COMMON = 0x00000007,
LANGUAGE_DEMONIC = 0x00000008,
LANGUAGE_TITAN = 0x00000009,
LANGUAGE_THALASSIAN = 0x0000000A,
LANGUAGE_DRACONIC = 0x0000000B,
LANGUAGE_KALIMAG = 0x0000000C,
LANGUAGE_GNOMISH = 0x0000000D,
LANGUAGE_TROLL = 0x0000000E,
LANGUAGE_GUTTERSPEAK = 0x00000021,
LANGUAGE_ADDON = -0x0000001,
} e_language;
static const value_string e_language_strings[] = {
{ LANGUAGE_UNIVERSAL, "Universal" },
{ LANGUAGE_ORCISH, "Orcish" },
{ LANGUAGE_DARNASSIAN, "Darnassian" },
{ LANGUAGE_TAURAHE, "Taurahe" },
{ LANGUAGE_DWARVISH, "Dwarvish" },
{ LANGUAGE_COMMON, "Common" },
{ LANGUAGE_DEMONIC, "Demonic" },
{ LANGUAGE_TITAN, "Titan" },
{ LANGUAGE_THALASSIAN, "Thalassian" },
{ LANGUAGE_DRACONIC, "Draconic" },
{ LANGUAGE_KALIMAG, "Kalimag" },
{ LANGUAGE_GNOMISH, "Gnomish" },
{ LANGUAGE_TROLL, "Troll" },
{ LANGUAGE_GUTTERSPEAK, "Gutterspeak" },
{ LANGUAGE_ADDON, "Addon" },
{ 0, NULL }
};
typedef enum {
UPDATE_TYPE_VALUES = 0x0,
UPDATE_TYPE_MOVEMENT = 0x1,
UPDATE_TYPE_CREATE_OBJECT = 0x2,
UPDATE_TYPE_CREATE_OBJECT2 = 0x3,
UPDATE_TYPE_OUT_OF_RANGE_OBJECTS = 0x4,
UPDATE_TYPE_NEAR_OBJECTS = 0x5,
} e_update_type;
static const value_string e_update_type_strings[] = {
{ UPDATE_TYPE_VALUES, "Values" },
{ UPDATE_TYPE_MOVEMENT, "Movement" },
{ UPDATE_TYPE_CREATE_OBJECT, "Create Object" },
{ UPDATE_TYPE_CREATE_OBJECT2, "Create Object2" },
{ UPDATE_TYPE_OUT_OF_RANGE_OBJECTS, "Out Of Range Objects" },
{ UPDATE_TYPE_NEAR_OBJECTS, "Near Objects" },
{ 0, NULL }
};
typedef enum {
OBJECT_TYPE_OBJECT = 0x0,
OBJECT_TYPE_ITEM = 0x1,
OBJECT_TYPE_CONTAINER = 0x2,
OBJECT_TYPE_UNIT = 0x3,
OBJECT_TYPE_PLAYER = 0x4,
OBJECT_TYPE_GAME_OBJECT = 0x5,
OBJECT_TYPE_DYNAMIC_OBJECT = 0x6,
OBJECT_TYPE_CORPSE = 0x7,
} e_object_type;
static const value_string e_object_type_strings[] = {
{ OBJECT_TYPE_OBJECT, "Object" },
{ OBJECT_TYPE_ITEM, "Item" },
{ OBJECT_TYPE_CONTAINER, "Container" },
{ OBJECT_TYPE_UNIT, "Unit" },
{ OBJECT_TYPE_PLAYER, "Player" },
{ OBJECT_TYPE_GAME_OBJECT, "Game Object" },
{ OBJECT_TYPE_DYNAMIC_OBJECT, "Dynamic Object" },
{ OBJECT_TYPE_CORPSE, "Corpse" },
{ 0, NULL }
};
typedef enum {
RAID_TARGET_INDEX_UNKNOWN0 = 0x00,
RAID_TARGET_INDEX_UNKNOWN1 = 0x01,
RAID_TARGET_INDEX_UNKNOWN2 = 0x02,
RAID_TARGET_INDEX_UNKNOWN3 = 0x03,
RAID_TARGET_INDEX_UNKNOWN4 = 0x04,
RAID_TARGET_INDEX_UNKNOWN5 = 0x05,
RAID_TARGET_INDEX_UNKNOWN6 = 0x06,
RAID_TARGET_INDEX_UNKNOWN7 = 0x07,
RAID_TARGET_INDEX_UNKNOWN8 = 0x08,
RAID_TARGET_INDEX_REQUEST_ICONS = 0xFF,
} e_raid_target_index;
static const value_string e_raid_target_index_strings[] = {
{ RAID_TARGET_INDEX_UNKNOWN0, "Unknown0" },
{ RAID_TARGET_INDEX_UNKNOWN1, "Unknown1" },
{ RAID_TARGET_INDEX_UNKNOWN2, "Unknown2" },
{ RAID_TARGET_INDEX_UNKNOWN3, "Unknown3" },
{ RAID_TARGET_INDEX_UNKNOWN4, "Unknown4" },
{ RAID_TARGET_INDEX_UNKNOWN5, "Unknown5" },
{ RAID_TARGET_INDEX_UNKNOWN6, "Unknown6" },
{ RAID_TARGET_INDEX_UNKNOWN7, "Unknown7" },
{ RAID_TARGET_INDEX_UNKNOWN8, "Unknown8" },
{ RAID_TARGET_INDEX_REQUEST_ICONS, "Request Icons" },
{ 0, NULL }
};
typedef enum {
SPELL_EFFECT_NONE = 0x00,
SPELL_EFFECT_INSTAKILL = 0x01,
SPELL_EFFECT_SCHOOL_DAMAGE = 0x02,
SPELL_EFFECT_DUMMY = 0x03,
SPELL_EFFECT_PORTAL_TELEPORT = 0x04,
SPELL_EFFECT_TELEPORT_UNITS = 0x05,
SPELL_EFFECT_APPLY_AURA = 0x06,
SPELL_EFFECT_ENVIRONMENTAL_DAMAGE = 0x07,
SPELL_EFFECT_POWER_DRAIN = 0x08,
SPELL_EFFECT_HEALTH_LEECH = 0x09,
SPELL_EFFECT_HEAL = 0x0A,
SPELL_EFFECT_BIND = 0x0B,
SPELL_EFFECT_PORTAL = 0x0C,
SPELL_EFFECT_RITUAL_BASE = 0x0D,
SPELL_EFFECT_RITUAL_SPECIALIZE = 0x0E,
SPELL_EFFECT_RITUAL_ACTIVATE_PORTAL = 0x0F,
SPELL_EFFECT_QUEST_COMPLETE = 0x10,
SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL = 0x11,
SPELL_EFFECT_RESURRECT = 0x12,
SPELL_EFFECT_ADD_EXTRA_ATTACKS = 0x13,
SPELL_EFFECT_DODGE = 0x14,
SPELL_EFFECT_EVADE = 0x15,
SPELL_EFFECT_PARRY = 0x16,
SPELL_EFFECT_BLOCK = 0x17,
SPELL_EFFECT_CREATE_ITEM = 0x18,
SPELL_EFFECT_WEAPON = 0x19,
SPELL_EFFECT_DEFENSE = 0x1A,
SPELL_EFFECT_PERSISTENT_AREA_AURA = 0x1B,
SPELL_EFFECT_SUMMON = 0x1C,
SPELL_EFFECT_LEAP = 0x1D,
SPELL_EFFECT_ENERGIZE = 0x1E,
SPELL_EFFECT_WEAPON_PERCENT_DAMAGE = 0x1F,
SPELL_EFFECT_TRIGGER_MISSILE = 0x20,
SPELL_EFFECT_OPEN_LOCK = 0x21,
SPELL_EFFECT_SUMMON_CHANGE_ITEM = 0x22,
SPELL_EFFECT_APPLY_AREA_AURA_PARTY = 0x23,
SPELL_EFFECT_LEARN_SPELL = 0x24,
SPELL_EFFECT_SPELL_DEFENSE = 0x25,
SPELL_EFFECT_DISPEL = 0x26,
SPELL_EFFECT_LANGUAGE = 0x27,
SPELL_EFFECT_DUAL_WIELD = 0x28,
SPELL_EFFECT_SUMMON_WILD = 0x29,
SPELL_EFFECT_SUMMON_GUARDIAN = 0x2A,
SPELL_EFFECT_TELEPORT_UNITS_FACE_CASTER = 0x2B,
SPELL_EFFECT_SKILL_STEP = 0x2C,
SPELL_EFFECT_ADD_HONOR = 0x2D,
SPELL_EFFECT_SPAWN = 0x2E,
SPELL_EFFECT_TRADE_SKILL = 0x2F,
SPELL_EFFECT_STEALTH = 0x30,
SPELL_EFFECT_DETECT = 0x31,
SPELL_EFFECT_TRANS_DOOR = 0x32,
SPELL_EFFECT_FORCE_CRITICAL_HIT = 0x33,
SPELL_EFFECT_GUARANTEE_HIT = 0x34,
SPELL_EFFECT_ENCHANT_ITEM = 0x35,
SPELL_EFFECT_ENCHANT_ITEM_TEMPORARY = 0x36,
SPELL_EFFECT_TAMECREATURE = 0x37,
SPELL_EFFECT_SUMMON_PET = 0x38,
SPELL_EFFECT_LEARN_PET_SPELL = 0x39,
SPELL_EFFECT_WEAPON_DAMAGE = 0x3A,
SPELL_EFFECT_OPEN_LOCK_ITEM = 0x3B,
SPELL_EFFECT_PROFICIENCY = 0x3C,
SPELL_EFFECT_SEND_EVENT = 0x3D,
SPELL_EFFECT_POWER_BURN = 0x3E,
SPELL_EFFECT_THREAT = 0x3F,
SPELL_EFFECT_TRIGGER_SPELL = 0x40,
SPELL_EFFECT_HEALTH_FUNNEL = 0x41,
SPELL_EFFECT_POWER_FUNNEL = 0x42,
SPELL_EFFECT_HEAL_MAX_HEALTH = 0x43,
SPELL_EFFECT_INTERRUPT_CAST = 0x44,
SPELL_EFFECT_DISTRACT = 0x45,
SPELL_EFFECT_PULL = 0x46,
SPELL_EFFECT_PICKPOCKET = 0x47,
SPELL_EFFECT_ADD_FARSIGHT = 0x48,
SPELL_EFFECT_SUMMON_POSSESSED = 0x49,
SPELL_EFFECT_SUMMON_TOTEM = 0x4A,
SPELL_EFFECT_HEAL_MECHANICAL = 0x4B,
SPELL_EFFECT_SUMMON_OBJECT_WILD = 0x4C,
SPELL_EFFECT_SCRIPT_EFFECT = 0x4D,
SPELL_EFFECT_ATTACK = 0x4E,
SPELL_EFFECT_SANCTUARY = 0x4F,
SPELL_EFFECT_ADD_COMBO_POINTS = 0x50,
SPELL_EFFECT_CREATE_HOUSE = 0x51,
SPELL_EFFECT_BIND_SIGHT = 0x52,
SPELL_EFFECT_DUEL = 0x53,
SPELL_EFFECT_STUCK = 0x54,
SPELL_EFFECT_SUMMON_PLAYER = 0x55,
SPELL_EFFECT_ACTIVATE_OBJECT = 0x56,
SPELL_EFFECT_SUMMON_TOTEM_SLOT1 = 0x57,
SPELL_EFFECT_SUMMON_TOTEM_SLOT2 = 0x58,
SPELL_EFFECT_SUMMON_TOTEM_SLOT3 = 0x59,
SPELL_EFFECT_SUMMON_TOTEM_SLOT4 = 0x5A,
SPELL_EFFECT_THREAT_ALL = 0x5B,
SPELL_EFFECT_ENCHANT_HELD_ITEM = 0x5C,
SPELL_EFFECT_SUMMON_PHANTASM = 0x5D,
SPELL_EFFECT_SELF_RESURRECT = 0x5E,
SPELL_EFFECT_SKINNING = 0x5F,
SPELL_EFFECT_CHARGE = 0x60,
SPELL_EFFECT_SUMMON_CRITTER = 0x61,
SPELL_EFFECT_KNOCK_BACK = 0x62,
SPELL_EFFECT_DISENCHANT = 0x63,
SPELL_EFFECT_INEBRIATE = 0x64,
SPELL_EFFECT_FEED_PET = 0x65,
SPELL_EFFECT_DISMISS_PET = 0x66,
SPELL_EFFECT_REPUTATION = 0x67,
SPELL_EFFECT_SUMMON_OBJECT_SLOT1 = 0x68,
SPELL_EFFECT_SUMMON_OBJECT_SLOT2 = 0x69,
SPELL_EFFECT_SUMMON_OBJECT_SLOT3 = 0x6A,
SPELL_EFFECT_SUMMON_OBJECT_SLOT4 = 0x6B,
SPELL_EFFECT_DISPEL_MECHANIC = 0x6C,
SPELL_EFFECT_SUMMON_DEAD_PET = 0x6D,
SPELL_EFFECT_DESTROY_ALL_TOTEMS = 0x6E,
SPELL_EFFECT_DURABILITY_DAMAGE = 0x6F,
SPELL_EFFECT_SUMMON_DEMON = 0x70,
SPELL_EFFECT_RESURRECT_NEW = 0x71,
SPELL_EFFECT_ATTACK_ME = 0x72,
SPELL_EFFECT_DURABILITY_DAMAGE_PCT = 0x73,
SPELL_EFFECT_SKIN_PLAYER_CORPSE = 0x74,
SPELL_EFFECT_SPIRIT_HEAL = 0x75,
SPELL_EFFECT_SKILL = 0x76,
SPELL_EFFECT_APPLY_AREA_AURA_PET = 0x77,
SPELL_EFFECT_TELEPORT_GRAVEYARD = 0x78,
SPELL_EFFECT_NORMALIZED_WEAPON_DMG = 0x79,
SPELL_EFFECT_UNKNOWN122 = 0x7A,
SPELL_EFFECT_SEND_TAXI = 0x7B,
SPELL_EFFECT_PLAYER_PULL = 0x7C,
SPELL_EFFECT_MODIFY_THREAT_PERCENT = 0x7D,
SPELL_EFFECT_UNKNOWN126 = 0x7E,
SPELL_EFFECT_UNKNOWN127 = 0x7F,
} e_spell_effect;
static const value_string e_spell_effect_strings[] = {
{ SPELL_EFFECT_NONE, "None" },
{ SPELL_EFFECT_INSTAKILL, "Instakill" },
{ SPELL_EFFECT_SCHOOL_DAMAGE, "School Damage" },
{ SPELL_EFFECT_DUMMY, "Dummy" },
{ SPELL_EFFECT_PORTAL_TELEPORT, "Portal Teleport" },
{ SPELL_EFFECT_TELEPORT_UNITS, "Teleport Units" },
{ SPELL_EFFECT_APPLY_AURA, "Apply Aura" },
{ SPELL_EFFECT_ENVIRONMENTAL_DAMAGE, "Environmental Damage" },
{ SPELL_EFFECT_POWER_DRAIN, "Power Drain" },
{ SPELL_EFFECT_HEALTH_LEECH, "Health Leech" },
{ SPELL_EFFECT_HEAL, "Heal" },
{ SPELL_EFFECT_BIND, "Bind" },
{ SPELL_EFFECT_PORTAL, "Portal" },
{ SPELL_EFFECT_RITUAL_BASE, "Ritual Base" },
{ SPELL_EFFECT_RITUAL_SPECIALIZE, "Ritual Specialize" },
{ SPELL_EFFECT_RITUAL_ACTIVATE_PORTAL, "Ritual Activate Portal" },
{ SPELL_EFFECT_QUEST_COMPLETE, "Quest Complete" },
{ SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL, "Weapon Damage Noschool" },
{ SPELL_EFFECT_RESURRECT, "Resurrect" },
{ SPELL_EFFECT_ADD_EXTRA_ATTACKS, "Add Extra Attacks" },
{ SPELL_EFFECT_DODGE, "Dodge" },
{ SPELL_EFFECT_EVADE, "Evade" },
{ SPELL_EFFECT_PARRY, "Parry" },
{ SPELL_EFFECT_BLOCK, "Block" },
{ SPELL_EFFECT_CREATE_ITEM, "Create Item" },
{ SPELL_EFFECT_WEAPON, "Weapon" },
{ SPELL_EFFECT_DEFENSE, "Defense" },
{ SPELL_EFFECT_PERSISTENT_AREA_AURA, "Persistent Area Aura" },
{ SPELL_EFFECT_SUMMON, "Summon" },
{ SPELL_EFFECT_LEAP, "Leap" },
{ SPELL_EFFECT_ENERGIZE, "Energize" },
{ SPELL_EFFECT_WEAPON_PERCENT_DAMAGE, "Weapon Percent Damage" },
{ SPELL_EFFECT_TRIGGER_MISSILE, "Trigger Missile" },
{ SPELL_EFFECT_OPEN_LOCK, "Open Lock" },
{ SPELL_EFFECT_SUMMON_CHANGE_ITEM, "Summon Change Item" },
{ SPELL_EFFECT_APPLY_AREA_AURA_PARTY, "Apply Area Aura Party" },
{ SPELL_EFFECT_LEARN_SPELL, "Learn Spell" },
{ SPELL_EFFECT_SPELL_DEFENSE, "Spell Defense" },
{ SPELL_EFFECT_DISPEL, "Dispel" },
{ SPELL_EFFECT_LANGUAGE, "Language" },
{ SPELL_EFFECT_DUAL_WIELD, "Dual Wield" },
{ SPELL_EFFECT_SUMMON_WILD, "Summon Wild" },
{ SPELL_EFFECT_SUMMON_GUARDIAN, "Summon Guardian" },
{ SPELL_EFFECT_TELEPORT_UNITS_FACE_CASTER, "Teleport Units Face Caster" },
{ SPELL_EFFECT_SKILL_STEP, "Skill Step" },
{ SPELL_EFFECT_ADD_HONOR, "Add Honor" },
{ SPELL_EFFECT_SPAWN, "Spawn" },
{ SPELL_EFFECT_TRADE_SKILL, "Trade Skill" },
{ SPELL_EFFECT_STEALTH, "Stealth" },
{ SPELL_EFFECT_DETECT, "Detect" },
{ SPELL_EFFECT_TRANS_DOOR, "Trans Door" },
{ SPELL_EFFECT_FORCE_CRITICAL_HIT, "Force Critical Hit" },
{ SPELL_EFFECT_GUARANTEE_HIT, "Guarantee Hit" },
{ SPELL_EFFECT_ENCHANT_ITEM, "Enchant Item" },
{ SPELL_EFFECT_ENCHANT_ITEM_TEMPORARY, "Enchant Item Temporary" },
{ SPELL_EFFECT_TAMECREATURE, "Tamecreature" },
{ SPELL_EFFECT_SUMMON_PET, "Summon Pet" },
{ SPELL_EFFECT_LEARN_PET_SPELL, "Learn Pet Spell" },
{ SPELL_EFFECT_WEAPON_DAMAGE, "Weapon Damage" },
{ SPELL_EFFECT_OPEN_LOCK_ITEM, "Open Lock Item" },
{ SPELL_EFFECT_PROFICIENCY, "Proficiency" },
{ SPELL_EFFECT_SEND_EVENT, "Send Event" },
{ SPELL_EFFECT_POWER_BURN, "Power Burn" },
{ SPELL_EFFECT_THREAT, "Threat" },
{ SPELL_EFFECT_TRIGGER_SPELL, "Trigger Spell" },
{ SPELL_EFFECT_HEALTH_FUNNEL, "Health Funnel" },
{ SPELL_EFFECT_POWER_FUNNEL, "Power Funnel" },
{ SPELL_EFFECT_HEAL_MAX_HEALTH, "Heal Max Health" },
{ SPELL_EFFECT_INTERRUPT_CAST, "Interrupt Cast" },
{ SPELL_EFFECT_DISTRACT, "Distract" },
{ SPELL_EFFECT_PULL, "Pull" },
{ SPELL_EFFECT_PICKPOCKET, "Pickpocket" },
{ SPELL_EFFECT_ADD_FARSIGHT, "Add Farsight" },
{ SPELL_EFFECT_SUMMON_POSSESSED, "Summon Possessed" },
{ SPELL_EFFECT_SUMMON_TOTEM, "Summon Totem" },
{ SPELL_EFFECT_HEAL_MECHANICAL, "Heal Mechanical" },
{ SPELL_EFFECT_SUMMON_OBJECT_WILD, "Summon Object Wild" },
{ SPELL_EFFECT_SCRIPT_EFFECT, "Script Effect" },
{ SPELL_EFFECT_ATTACK, "Attack" },
{ SPELL_EFFECT_SANCTUARY, "Sanctuary" },
{ SPELL_EFFECT_ADD_COMBO_POINTS, "Add Combo Points" },
{ SPELL_EFFECT_CREATE_HOUSE, "Create House" },
{ SPELL_EFFECT_BIND_SIGHT, "Bind Sight" },
{ SPELL_EFFECT_DUEL, "Duel" },
{ SPELL_EFFECT_STUCK, "Stuck" },
{ SPELL_EFFECT_SUMMON_PLAYER, "Summon Player" },
{ SPELL_EFFECT_ACTIVATE_OBJECT, "Activate Object" },
{ SPELL_EFFECT_SUMMON_TOTEM_SLOT1, "Summon Totem Slot1" },
{ SPELL_EFFECT_SUMMON_TOTEM_SLOT2, "Summon Totem Slot2" },
{ SPELL_EFFECT_SUMMON_TOTEM_SLOT3, "Summon Totem Slot3" },
{ SPELL_EFFECT_SUMMON_TOTEM_SLOT4, "Summon Totem Slot4" },
{ SPELL_EFFECT_THREAT_ALL, "Threat All" },
{ SPELL_EFFECT_ENCHANT_HELD_ITEM, "Enchant Held Item" },
{ SPELL_EFFECT_SUMMON_PHANTASM, "Summon Phantasm" },
{ SPELL_EFFECT_SELF_RESURRECT, "Self Resurrect" },
{ SPELL_EFFECT_SKINNING, "Skinning" },
{ SPELL_EFFECT_CHARGE, "Charge" },
{ SPELL_EFFECT_SUMMON_CRITTER, "Summon Critter" },
{ SPELL_EFFECT_KNOCK_BACK, "Knock Back" },
{ SPELL_EFFECT_DISENCHANT, "Disenchant" },
{ SPELL_EFFECT_INEBRIATE, "Inebriate" },
{ SPELL_EFFECT_FEED_PET, "Feed Pet" },
{ SPELL_EFFECT_DISMISS_PET, "Dismiss Pet" },
{ SPELL_EFFECT_REPUTATION, "Reputation" },
{ SPELL_EFFECT_SUMMON_OBJECT_SLOT1, "Summon Object Slot1" },
{ SPELL_EFFECT_SUMMON_OBJECT_SLOT2, "Summon Object Slot2" },
{ SPELL_EFFECT_SUMMON_OBJECT_SLOT3, "Summon Object Slot3" },
{ SPELL_EFFECT_SUMMON_OBJECT_SLOT4, "Summon Object Slot4" },
{ SPELL_EFFECT_DISPEL_MECHANIC, "Dispel Mechanic" },
{ SPELL_EFFECT_SUMMON_DEAD_PET, "Summon Dead Pet" },
{ SPELL_EFFECT_DESTROY_ALL_TOTEMS, "Destroy All Totems" },
{ SPELL_EFFECT_DURABILITY_DAMAGE, "Durability Damage" },
{ SPELL_EFFECT_SUMMON_DEMON, "Summon Demon" },
{ SPELL_EFFECT_RESURRECT_NEW, "Resurrect New" },
{ SPELL_EFFECT_ATTACK_ME, "Attack Me" },
{ SPELL_EFFECT_DURABILITY_DAMAGE_PCT, "Durability Damage Pct" },
{ SPELL_EFFECT_SKIN_PLAYER_CORPSE, "Skin Player Corpse" },
{ SPELL_EFFECT_SPIRIT_HEAL, "Spirit Heal" },
{ SPELL_EFFECT_SKILL, "Skill" },
{ SPELL_EFFECT_APPLY_AREA_AURA_PET, "Apply Area Aura Pet" },
{ SPELL_EFFECT_TELEPORT_GRAVEYARD, "Teleport Graveyard" },
{ SPELL_EFFECT_NORMALIZED_WEAPON_DMG, "Normalized Weapon Dmg" },
{ SPELL_EFFECT_UNKNOWN122, "Unknown122" },
{ SPELL_EFFECT_SEND_TAXI, "Send Taxi" },
{ SPELL_EFFECT_PLAYER_PULL, "Player Pull" },
{ SPELL_EFFECT_MODIFY_THREAT_PERCENT, "Modify Threat Percent" },
{ SPELL_EFFECT_UNKNOWN126, "Unknown126" },
{ SPELL_EFFECT_UNKNOWN127, "Unknown127" },
{ 0, NULL }
};
typedef enum {
SPELL_MISS_INFO_NONE = 0x0,
SPELL_MISS_INFO_MISS = 0x1,
SPELL_MISS_INFO_RESIST = 0x2,
SPELL_MISS_INFO_DODGE = 0x3,
SPELL_MISS_INFO_PARRY = 0x4,
SPELL_MISS_INFO_BLOCK = 0x5,
SPELL_MISS_INFO_EVADE = 0x6,
SPELL_MISS_INFO_IMMUNE = 0x7,
SPELL_MISS_INFO_IMMUNE2 = 0x8,
SPELL_MISS_INFO_DEFLECT = 0x9,
SPELL_MISS_INFO_ABSORB = 0xA,
SPELL_MISS_INFO_REFLECT = 0xB,
} e_spell_miss_info;
static const value_string e_spell_miss_info_strings[] = {
{ SPELL_MISS_INFO_NONE, "None" },
{ SPELL_MISS_INFO_MISS, "Miss" },
{ SPELL_MISS_INFO_RESIST, "Resist" },
{ SPELL_MISS_INFO_DODGE, "Dodge" },
{ SPELL_MISS_INFO_PARRY, "Parry" },
{ SPELL_MISS_INFO_BLOCK, "Block" },
{ SPELL_MISS_INFO_EVADE, "Evade" },
{ SPELL_MISS_INFO_IMMUNE, "Immune" },
{ SPELL_MISS_INFO_IMMUNE2, "Immune2" },
{ SPELL_MISS_INFO_DEFLECT, "Deflect" },
{ SPELL_MISS_INFO_ABSORB, "Absorb" },
{ SPELL_MISS_INFO_REFLECT, "Reflect" },
{ 0, NULL }
};
typedef enum {
TRAINER_SPELL_STATE_GREEN = 0x0,
TRAINER_SPELL_STATE_RED = 0x1,
TRAINER_SPELL_STATE_GRAY = 0x2,
} e_trainer_spell_state;
static const value_string e_trainer_spell_state_strings[] = {
{ TRAINER_SPELL_STATE_GREEN, "Green" },
{ TRAINER_SPELL_STATE_RED, "Red" },
{ TRAINER_SPELL_STATE_GRAY, "Gray" },
{ 0, NULL }
};
typedef enum {
ITEM_QUALITY_POOR = 0x0,
ITEM_QUALITY_NORMAL = 0x1,
ITEM_QUALITY_UNCOMMON = 0x2,
ITEM_QUALITY_RARE = 0x3,
ITEM_QUALITY_EPIC = 0x4,
ITEM_QUALITY_LEGENDARY = 0x5,
ITEM_QUALITY_ARTIFACT = 0x6,
} e_item_quality;
static const value_string e_item_quality_strings[] = {
{ ITEM_QUALITY_POOR, "Poor" },
{ ITEM_QUALITY_NORMAL, "Normal" },
{ ITEM_QUALITY_UNCOMMON, "Uncommon" },
{ ITEM_QUALITY_RARE, "Rare" },
{ ITEM_QUALITY_EPIC, "Epic" },
{ ITEM_QUALITY_LEGENDARY, "Legendary" },
{ ITEM_QUALITY_ARTIFACT, "Artifact" },
{ 0, NULL }
};
typedef enum {
BATTLEFIELD_PORT_ACTION_LEAVE_QUEUE = 0x0,
BATTLEFIELD_PORT_ACTION_ENTER_BATTLE = 0x1,
} e_battlefield_port_action;
static const value_string e_battlefield_port_action_strings[] = {
{ BATTLEFIELD_PORT_ACTION_LEAVE_QUEUE, "Leave Queue" },
{ BATTLEFIELD_PORT_ACTION_ENTER_BATTLE, "Enter Battle" },
{ 0, NULL }
};
typedef enum {
BUYBACK_SLOT_SLOT1 = 0x45,
BUYBACK_SLOT_SLOT2 = 0x46,
BUYBACK_SLOT_SLOT3 = 0x47,
BUYBACK_SLOT_SLOT4 = 0x48,
BUYBACK_SLOT_SLOT5 = 0x49,
BUYBACK_SLOT_SLOT6 = 0x4A,
BUYBACK_SLOT_SLOT7 = 0x4B,
BUYBACK_SLOT_SLOT8 = 0x4C,
BUYBACK_SLOT_SLOT9 = 0x4D,
BUYBACK_SLOT_SLOT10 = 0x4E,
BUYBACK_SLOT_SLOT11 = 0x4F,
BUYBACK_SLOT_SLOT12 = 0x50,
BUYBACK_SLOT_SLOT13 = 0x51,
} e_buyback_slot;
static const value_string e_buyback_slot_strings[] = {
{ BUYBACK_SLOT_SLOT1, "Slot1" },
{ BUYBACK_SLOT_SLOT2, "Slot2" },
{ BUYBACK_SLOT_SLOT3, "Slot3" },
{ BUYBACK_SLOT_SLOT4, "Slot4" },
{ BUYBACK_SLOT_SLOT5, "Slot5" },
{ BUYBACK_SLOT_SLOT6, "Slot6" },
{ BUYBACK_SLOT_SLOT7, "Slot7" },
{ BUYBACK_SLOT_SLOT8, "Slot8" },
{ BUYBACK_SLOT_SLOT9, "Slot9" },
{ BUYBACK_SLOT_SLOT10, "Slot10" },
{ BUYBACK_SLOT_SLOT11, "Slot11" },
{ BUYBACK_SLOT_SLOT12, "Slot12" },
{ BUYBACK_SLOT_SLOT13, "Slot13" },
{ 0, NULL }
};
typedef enum {
EMOTE_ONESHOT_NONE = 0x000,
EMOTE_ONESHOT_TALK = 0x001,
EMOTE_ONESHOT_BOW = 0x002,
EMOTE_ONESHOT_WAVE = 0x003,
EMOTE_ONESHOT_CHEER = 0x004,
EMOTE_ONESHOT_EXCLAMATION = 0x005,
EMOTE_ONESHOT_QUESTION = 0x006,
EMOTE_ONESHOT_EAT = 0x007,
EMOTE_STATE_DANCE = 0x00A,
EMOTE_ONESHOT_LAUGH = 0x00B,
EMOTE_STATE_SLEEP = 0x00C,
EMOTE_STATE_SIT = 0x00D,
EMOTE_ONESHOT_RUDE = 0x00E,
EMOTE_ONESHOT_ROAR = 0x00F,
EMOTE_ONESHOT_KNEEL = 0x010,
EMOTE_ONESHOT_KISS = 0x011,
EMOTE_ONESHOT_CRY = 0x012,
EMOTE_ONESHOT_CHICKEN = 0x013,
EMOTE_ONESHOT_BEG = 0x014,
EMOTE_ONESHOT_APPLAUD = 0x015,
EMOTE_ONESHOT_SHOUT = 0x016,
EMOTE_ONESHOT_FLEX = 0x017,
EMOTE_ONESHOT_SHY = 0x018,
EMOTE_ONESHOT_POINT = 0x019,
EMOTE_STATE_STAND = 0x01A,
EMOTE_STATE_READYUNARMED = 0x01B,
EMOTE_STATE_WORK_SHEATHED = 0x01C,
EMOTE_STATE_POINT = 0x01D,
EMOTE_STATE_NONE = 0x01E,
EMOTE_ONESHOT_WOUND = 0x021,
EMOTE_ONESHOT_WOUNDCRITICAL = 0x022,
EMOTE_ONESHOT_ATTACKUNARMED = 0x023,
EMOTE_ONESHOT_ATTACK1H = 0x024,
EMOTE_ONESHOT_ATTACK2HTIGHT = 0x025,
EMOTE_ONESHOT_ATTACK2HLOOSE = 0x026,
EMOTE_ONESHOT_PARRYUNARMED = 0x027,
EMOTE_ONESHOT_PARRYSHIELD = 0x02B,
EMOTE_ONESHOT_READYUNARMED = 0x02C,
EMOTE_ONESHOT_READY1H = 0x02D,
EMOTE_ONESHOT_READYBOW = 0x030,
EMOTE_ONESHOT_SPELLPRECAST = 0x032,
EMOTE_ONESHOT_SPELLCAST = 0x033,
EMOTE_ONESHOT_BATTLEROAR = 0x035,
EMOTE_ONESHOT_SPECIALATTACK1H = 0x036,
EMOTE_ONESHOT_KICK = 0x03C,
EMOTE_ONESHOT_ATTACKTHROWN = 0x03D,
EMOTE_STATE_STUN = 0x040,
EMOTE_STATE_DEAD = 0x041,
EMOTE_ONESHOT_SALUTE = 0x042,
EMOTE_STATE_KNEEL = 0x044,
EMOTE_STATE_USESTANDING = 0x045,
EMOTE_ONESHOT_WAVE_NOSHEATHE = 0x046,
EMOTE_ONESHOT_CHEER_NOSHEATHE = 0x047,
EMOTE_ONESHOT_EAT_NOSHEATHE = 0x05C,
EMOTE_STATE_STUN_NOSHEATHE = 0x05D,
EMOTE_ONESHOT_DANCE = 0x05E,
EMOTE_ONESHOT_SALUTE_NOSHEATH = 0x071,
EMOTE_STATE_USESTANDING_NOSHEATHE = 0x085,
EMOTE_ONESHOT_LAUGH_NOSHEATHE = 0x099,
EMOTE_STATE_WORK = 0x0AD,
EMOTE_STATE_SPELLPRECAST = 0x0C1,
EMOTE_ONESHOT_READYRIFLE = 0x0D5,
EMOTE_STATE_READYRIFLE = 0x0D6,
EMOTE_STATE_WORK_MINING = 0x0E9,
EMOTE_STATE_WORK_CHOPWOOD = 0x0EA,
EMOTE_STATE_APPLAUD = 0x0FD,
EMOTE_ONESHOT_LIFTOFF = 0x0FE,
EMOTE_ONESHOT_YES = 0x111,
EMOTE_ONESHOT_NO = 0x112,
EMOTE_ONESHOT_TRAIN = 0x113,
EMOTE_ONESHOT_LAND = 0x125,
EMOTE_STATE_AT_EASE = 0x139,
EMOTE_STATE_READY1H = 0x14D,
EMOTE_STATE_SPELLKNEELSTART = 0x161,
EMOTE_STATE_SUBMERGED = 0x175,
EMOTE_ONESHOT_SUBMERGE = 0x176,
EMOTE_STATE_READY2H = 0x177,
EMOTE_STATE_READYBOW = 0x178,
EMOTE_ONESHOT_MOUNTSPECIAL = 0x179,
EMOTE_STATE_TALK = 0x17A,
EMOTE_STATE_FISHING = 0x17B,
EMOTE_ONESHOT_FISHING = 0x17C,
EMOTE_ONESHOT_LOOT = 0x17D,
EMOTE_STATE_WHIRLWIND = 0x17E,
EMOTE_STATE_DROWNED = 0x17F,
EMOTE_STATE_HOLD_BOW = 0x180,
EMOTE_STATE_HOLD_RIFLE = 0x181,
EMOTE_STATE_HOLD_THROWN = 0x182,
EMOTE_ONESHOT_DROWN = 0x183,
EMOTE_ONESHOT_STOMP = 0x184,
EMOTE_ONESHOT_ATTACKOFF = 0x185,
EMOTE_ONESHOT_ATTACKOFFPIERCE = 0x186,
EMOTE_STATE_ROAR = 0x187,
EMOTE_STATE_LAUGH = 0x188,
EMOTE_ONESHOT_CREATURE_SPECIAL = 0x189,
EMOTE_ONESHOT_JUMPLANDRUN = 0x18A,
EMOTE_ONESHOT_JUMPEND = 0x18B,
EMOTE_ONESHOT_TALK_NOSHEATHE = 0x18C,
EMOTE_ONESHOT_POINT_NOSHEATHE = 0x18D,
EMOTE_STATE_CANNIBALIZE = 0x18E,
EMOTE_ONESHOT_JUMPSTART = 0x18F,
EMOTE_STATE_DANCESPECIAL = 0x190,
EMOTE_ONESHOT_DANCESPECIAL = 0x191,
EMOTE_ONESHOT_CUSTOMSPELL01 = 0x192,
EMOTE_ONESHOT_CUSTOMSPELL02 = 0x193,
EMOTE_ONESHOT_CUSTOMSPELL03 = 0x194,
EMOTE_ONESHOT_CUSTOMSPELL04 = 0x195,
EMOTE_ONESHOT_CUSTOMSPELL05 = 0x196,
EMOTE_ONESHOT_CUSTOMSPELL06 = 0x197,
EMOTE_ONESHOT_CUSTOMSPELL07 = 0x198,
EMOTE_ONESHOT_CUSTOMSPELL08 = 0x199,
EMOTE_ONESHOT_CUSTOMSPELL09 = 0x19A,
EMOTE_ONESHOT_CUSTOMSPELL10 = 0x19B,
EMOTE_STATE_EXCLAIM = 0x19C,
EMOTE_STATE_SIT_CHAIR_MED = 0x19F,
EMOTE_STATE_SPELLEFFECT_HOLD = 0x1A6,
EMOTE_STATE_EAT_NO_SHEATHE = 0x1A7,
} e_emote;
static const value_string e_emote_strings[] = {
{ EMOTE_ONESHOT_NONE, "Oneshot None" },
{ EMOTE_ONESHOT_TALK, "Oneshot Talk" },
{ EMOTE_ONESHOT_BOW, "Oneshot Bow" },
{ EMOTE_ONESHOT_WAVE, "Oneshot Wave" },
{ EMOTE_ONESHOT_CHEER, "Oneshot Cheer" },
{ EMOTE_ONESHOT_EXCLAMATION, "Oneshot Exclamation" },
{ EMOTE_ONESHOT_QUESTION, "Oneshot Question" },
{ EMOTE_ONESHOT_EAT, "Oneshot Eat" },
{ EMOTE_STATE_DANCE, "State Dance" },
{ EMOTE_ONESHOT_LAUGH, "Oneshot Laugh" },
{ EMOTE_STATE_SLEEP, "State Sleep" },
{ EMOTE_STATE_SIT, "State Sit" },
{ EMOTE_ONESHOT_RUDE, "Oneshot Rude" },
{ EMOTE_ONESHOT_ROAR, "Oneshot Roar" },
{ EMOTE_ONESHOT_KNEEL, "Oneshot Kneel" },
{ EMOTE_ONESHOT_KISS, "Oneshot Kiss" },
{ EMOTE_ONESHOT_CRY, "Oneshot Cry" },
{ EMOTE_ONESHOT_CHICKEN, "Oneshot Chicken" },
{ EMOTE_ONESHOT_BEG, "Oneshot Beg" },
{ EMOTE_ONESHOT_APPLAUD, "Oneshot Applaud" },
{ EMOTE_ONESHOT_SHOUT, "Oneshot Shout" },
{ EMOTE_ONESHOT_FLEX, "Oneshot Flex" },
{ EMOTE_ONESHOT_SHY, "Oneshot Shy" },
{ EMOTE_ONESHOT_POINT, "Oneshot Point" },
{ EMOTE_STATE_STAND, "State Stand" },
{ EMOTE_STATE_READYUNARMED, "State Readyunarmed" },
{ EMOTE_STATE_WORK_SHEATHED, "State Work Sheathed" },
{ EMOTE_STATE_POINT, "State Point" },
{ EMOTE_STATE_NONE, "State None" },
{ EMOTE_ONESHOT_WOUND, "Oneshot Wound" },
{ EMOTE_ONESHOT_WOUNDCRITICAL, "Oneshot Woundcritical" },
{ EMOTE_ONESHOT_ATTACKUNARMED, "Oneshot Attackunarmed" },
{ EMOTE_ONESHOT_ATTACK1H, "Oneshot Attack1h" },
{ EMOTE_ONESHOT_ATTACK2HTIGHT, "Oneshot Attack2htight" },
{ EMOTE_ONESHOT_ATTACK2HLOOSE, "Oneshot Attack2hloose" },
{ EMOTE_ONESHOT_PARRYUNARMED, "Oneshot Parryunarmed" },
{ EMOTE_ONESHOT_PARRYSHIELD, "Oneshot Parryshield" },
{ EMOTE_ONESHOT_READYUNARMED, "Oneshot Readyunarmed" },
{ EMOTE_ONESHOT_READY1H, "Oneshot Ready1h" },
{ EMOTE_ONESHOT_READYBOW, "Oneshot Readybow" },
{ EMOTE_ONESHOT_SPELLPRECAST, "Oneshot Spellprecast" },
{ EMOTE_ONESHOT_SPELLCAST, "Oneshot Spellcast" },
{ EMOTE_ONESHOT_BATTLEROAR, "Oneshot Battleroar" },
{ EMOTE_ONESHOT_SPECIALATTACK1H, "Oneshot Specialattack1h" },
{ EMOTE_ONESHOT_KICK, "Oneshot Kick" },
{ EMOTE_ONESHOT_ATTACKTHROWN, "Oneshot Attackthrown" },
{ EMOTE_STATE_STUN, "State Stun" },
{ EMOTE_STATE_DEAD, "State Dead" },
{ EMOTE_ONESHOT_SALUTE, "Oneshot Salute" },
{ EMOTE_STATE_KNEEL, "State Kneel" },
{ EMOTE_STATE_USESTANDING, "State Usestanding" },
{ EMOTE_ONESHOT_WAVE_NOSHEATHE, "Oneshot Wave Nosheathe" },
{ EMOTE_ONESHOT_CHEER_NOSHEATHE, "Oneshot Cheer Nosheathe" },
{ EMOTE_ONESHOT_EAT_NOSHEATHE, "Oneshot Eat Nosheathe" },
{ EMOTE_STATE_STUN_NOSHEATHE, "State Stun Nosheathe" },
{ EMOTE_ONESHOT_DANCE, "Oneshot Dance" },
{ EMOTE_ONESHOT_SALUTE_NOSHEATH, "Oneshot Salute Nosheath" },
{ EMOTE_STATE_USESTANDING_NOSHEATHE, "State Usestanding Nosheathe" },
{ EMOTE_ONESHOT_LAUGH_NOSHEATHE, "Oneshot Laugh Nosheathe" },
{ EMOTE_STATE_WORK, "State Work" },
{ EMOTE_STATE_SPELLPRECAST, "State Spellprecast" },
{ EMOTE_ONESHOT_READYRIFLE, "Oneshot Readyrifle" },
{ EMOTE_STATE_READYRIFLE, "State Readyrifle" },
{ EMOTE_STATE_WORK_MINING, "State Work Mining" },
{ EMOTE_STATE_WORK_CHOPWOOD, "State Work Chopwood" },
{ EMOTE_STATE_APPLAUD, "State Applaud" },
{ EMOTE_ONESHOT_LIFTOFF, "Oneshot Liftoff" },
{ EMOTE_ONESHOT_YES, "Oneshot Yes" },
{ EMOTE_ONESHOT_NO, "Oneshot No" },
{ EMOTE_ONESHOT_TRAIN, "Oneshot Train" },
{ EMOTE_ONESHOT_LAND, "Oneshot Land" },
{ EMOTE_STATE_AT_EASE, "State At Ease" },
{ EMOTE_STATE_READY1H, "State Ready1h" },
{ EMOTE_STATE_SPELLKNEELSTART, "State Spellkneelstart" },
{ EMOTE_STATE_SUBMERGED, "State Submerged" },
{ EMOTE_ONESHOT_SUBMERGE, "Oneshot Submerge" },
{ EMOTE_STATE_READY2H, "State Ready2h" },
{ EMOTE_STATE_READYBOW, "State Readybow" },
{ EMOTE_ONESHOT_MOUNTSPECIAL, "Oneshot Mountspecial" },
{ EMOTE_STATE_TALK, "State Talk" },
{ EMOTE_STATE_FISHING, "State Fishing" },
{ EMOTE_ONESHOT_FISHING, "Oneshot Fishing" },
{ EMOTE_ONESHOT_LOOT, "Oneshot Loot" },
{ EMOTE_STATE_WHIRLWIND, "State Whirlwind" },
{ EMOTE_STATE_DROWNED, "State Drowned" },
{ EMOTE_STATE_HOLD_BOW, "State Hold Bow" },
{ EMOTE_STATE_HOLD_RIFLE, "State Hold Rifle" },
{ EMOTE_STATE_HOLD_THROWN, "State Hold Thrown" },
{ EMOTE_ONESHOT_DROWN, "Oneshot Drown" },
{ EMOTE_ONESHOT_STOMP, "Oneshot Stomp" },
{ EMOTE_ONESHOT_ATTACKOFF, "Oneshot Attackoff" },
{ EMOTE_ONESHOT_ATTACKOFFPIERCE, "Oneshot Attackoffpierce" },
{ EMOTE_STATE_ROAR, "State Roar" },
{ EMOTE_STATE_LAUGH, "State Laugh" },
{ EMOTE_ONESHOT_CREATURE_SPECIAL, "Oneshot Creature Special" },
{ EMOTE_ONESHOT_JUMPLANDRUN, "Oneshot Jumplandrun" },
{ EMOTE_ONESHOT_JUMPEND, "Oneshot Jumpend" },
{ EMOTE_ONESHOT_TALK_NOSHEATHE, "Oneshot Talk Nosheathe" },
{ EMOTE_ONESHOT_POINT_NOSHEATHE, "Oneshot Point Nosheathe" },
{ EMOTE_STATE_CANNIBALIZE, "State Cannibalize" },
{ EMOTE_ONESHOT_JUMPSTART, "Oneshot Jumpstart" },
{ EMOTE_STATE_DANCESPECIAL, "State Dancespecial" },
{ EMOTE_ONESHOT_DANCESPECIAL, "Oneshot Dancespecial" },
{ EMOTE_ONESHOT_CUSTOMSPELL01, "Oneshot Customspell01" },
{ EMOTE_ONESHOT_CUSTOMSPELL02, "Oneshot Customspell02" },
{ EMOTE_ONESHOT_CUSTOMSPELL03, "Oneshot Customspell03" },
{ EMOTE_ONESHOT_CUSTOMSPELL04, "Oneshot Customspell04" },
{ EMOTE_ONESHOT_CUSTOMSPELL05, "Oneshot Customspell05" },
{ EMOTE_ONESHOT_CUSTOMSPELL06, "Oneshot Customspell06" },
{ EMOTE_ONESHOT_CUSTOMSPELL07, "Oneshot Customspell07" },
{ EMOTE_ONESHOT_CUSTOMSPELL08, "Oneshot Customspell08" },
{ EMOTE_ONESHOT_CUSTOMSPELL09, "Oneshot Customspell09" },
{ EMOTE_ONESHOT_CUSTOMSPELL10, "Oneshot Customspell10" },
{ EMOTE_STATE_EXCLAIM, "State Exclaim" },
{ EMOTE_STATE_SIT_CHAIR_MED, "State Sit Chair Med" },
{ EMOTE_STATE_SPELLEFFECT_HOLD, "State Spelleffect Hold" },
{ EMOTE_STATE_EAT_NO_SHEATHE, "State Eat No Sheathe" },
{ 0, NULL }
};
typedef enum {
FAR_SIGHT_OPERATION_REMOVE = 0x0,
FAR_SIGHT_OPERATION_ADD = 0x1,
} e_far_sight_operation;
static const value_string e_far_sight_operation_strings[] = {
{ FAR_SIGHT_OPERATION_REMOVE, "Remove" },
{ FAR_SIGHT_OPERATION_ADD, "Add" },
{ 0, NULL }
};
typedef enum {
GM_TICKET_TYPE_STUCK = 0x1,
GM_TICKET_TYPE_BEHAVIOR_HARASSMENT = 0x2,
GM_TICKET_TYPE_GUILD = 0x3,
GM_TICKET_TYPE_ITEM = 0x4,
GM_TICKET_TYPE_ENVIRONMENTAL = 0x5,
GM_TICKET_TYPE_NONQUEST_CREEP = 0x6,
GM_TICKET_TYPE_QUEST_QUESTNPC = 0x7,
GM_TICKET_TYPE_TECHNICAL = 0x8,
GM_TICKET_TYPE_ACCOUNT_BILLING = 0x9,
GM_TICKET_TYPE_CHARACTER = 0xA,
} e_gm_ticket_type;
static const value_string e_gm_ticket_type_strings[] = {
{ GM_TICKET_TYPE_STUCK, "Stuck" },
{ GM_TICKET_TYPE_BEHAVIOR_HARASSMENT, "Behavior Harassment" },
{ GM_TICKET_TYPE_GUILD, "Guild" },
{ GM_TICKET_TYPE_ITEM, "Item" },
{ GM_TICKET_TYPE_ENVIRONMENTAL, "Environmental" },
{ GM_TICKET_TYPE_NONQUEST_CREEP, "Nonquest Creep" },
{ GM_TICKET_TYPE_QUEST_QUESTNPC, "Quest Questnpc" },
{ GM_TICKET_TYPE_TECHNICAL, "Technical" },
{ GM_TICKET_TYPE_ACCOUNT_BILLING, "Account Billing" },
{ GM_TICKET_TYPE_CHARACTER, "Character" },
{ 0, NULL }
};
typedef enum {
GROUP_LOOT_SETTING_FREE_FOR_ALL = 0x0,
GROUP_LOOT_SETTING_ROUND_ROBIN = 0x1,
GROUP_LOOT_SETTING_MASTER_LOOT = 0x2,
GROUP_LOOT_SETTING_GROUP_LOOT = 0x3,
GROUP_LOOT_SETTING_NEED_BEFORE_GREED = 0x4,
} e_group_loot_setting;
static const value_string e_group_loot_setting_strings[] = {
{ GROUP_LOOT_SETTING_FREE_FOR_ALL, "Free For All" },
{ GROUP_LOOT_SETTING_ROUND_ROBIN, "Round Robin" },
{ GROUP_LOOT_SETTING_MASTER_LOOT, "Master Loot" },
{ GROUP_LOOT_SETTING_GROUP_LOOT, "Group Loot" },
{ GROUP_LOOT_SETTING_NEED_BEFORE_GREED, "Need Before Greed" },
{ 0, NULL }
};
typedef enum {
ROLL_VOTE_PASS = 0x0,
ROLL_VOTE_NEED = 0x1,
ROLL_VOTE_GREED = 0x2,
} e_roll_vote;
static const value_string e_roll_vote_strings[] = {
{ ROLL_VOTE_PASS, "Pass" },
{ ROLL_VOTE_NEED, "Need" },
{ ROLL_VOTE_GREED, "Greed" },
{ 0, NULL }
};
typedef enum {
CHAT_TYPE_SAY = 0x00,
CHAT_TYPE_PARTY = 0x01,
CHAT_TYPE_RAID = 0x02,
CHAT_TYPE_GUILD = 0x03,
CHAT_TYPE_OFFICER = 0x04,
CHAT_TYPE_YELL = 0x05,
CHAT_TYPE_WHISPER = 0x06,
CHAT_TYPE_WHISPER_INFORM = 0x07,
CHAT_TYPE_EMOTE = 0x08,
CHAT_TYPE_TEXT_EMOTE = 0x09,
CHAT_TYPE_SYSTEM = 0x0A,
CHAT_TYPE_MONSTER_SAY = 0x0B,
CHAT_TYPE_MONSTER_YELL = 0x0C,
CHAT_TYPE_MONSTER_EMOTE = 0x0D,
CHAT_TYPE_CHANNEL = 0x0E,
CHAT_TYPE_CHANNEL_JOIN = 0x0F,
CHAT_TYPE_CHANNEL_LEAVE = 0x10,
CHAT_TYPE_CHANNEL_LIST = 0x11,
CHAT_TYPE_CHANNEL_NOTICE = 0x12,
CHAT_TYPE_CHANNEL_NOTICE_USER = 0x13,
CHAT_TYPE_AFK = 0x14,
CHAT_TYPE_DND = 0x15,
CHAT_TYPE_IGNORED = 0x16,
CHAT_TYPE_SKILL = 0x17,
CHAT_TYPE_LOOT = 0x18,
CHAT_TYPE_MONSTER_WHISPER = 0x1A,
CHAT_TYPE_BG_SYSTEM_NEUTRAL = 0x52,
CHAT_TYPE_BG_SYSTEM_ALLIANCE = 0x53,
CHAT_TYPE_BG_SYSTEM_HORDE = 0x54,
CHAT_TYPE_RAID_LEADER = 0x57,
CHAT_TYPE_RAID_WARNING = 0x58,
CHAT_TYPE_RAID_BOSS_WHISPER = 0x59,
CHAT_TYPE_RAID_BOSS_EMOTE = 0x5A,
CHAT_TYPE_BATTLEGROUND = 0x5C,
CHAT_TYPE_BATTLEGROUND_LEADER = 0x5D,
} e_chat_type;
static const value_string e_chat_type_strings[] = {
{ CHAT_TYPE_SAY, "Say" },
{ CHAT_TYPE_PARTY, "Party" },
{ CHAT_TYPE_RAID, "Raid" },
{ CHAT_TYPE_GUILD, "Guild" },
{ CHAT_TYPE_OFFICER, "Officer" },
{ CHAT_TYPE_YELL, "Yell" },
{ CHAT_TYPE_WHISPER, "Whisper" },
{ CHAT_TYPE_WHISPER_INFORM, "Whisper Inform" },
{ CHAT_TYPE_EMOTE, "Emote" },
{ CHAT_TYPE_TEXT_EMOTE, "Text Emote" },
{ CHAT_TYPE_SYSTEM, "System" },
{ CHAT_TYPE_MONSTER_SAY, "Monster Say" },
{ CHAT_TYPE_MONSTER_YELL, "Monster Yell" },
{ CHAT_TYPE_MONSTER_EMOTE, "Monster Emote" },
{ CHAT_TYPE_CHANNEL, "Channel" },
{ CHAT_TYPE_CHANNEL_JOIN, "Channel Join" },
{ CHAT_TYPE_CHANNEL_LEAVE, "Channel Leave" },
{ CHAT_TYPE_CHANNEL_LIST, "Channel List" },
{ CHAT_TYPE_CHANNEL_NOTICE, "Channel Notice" },
{ CHAT_TYPE_CHANNEL_NOTICE_USER, "Channel Notice User" },
{ CHAT_TYPE_AFK, "Afk" },
{ CHAT_TYPE_DND, "Dnd" },
{ CHAT_TYPE_IGNORED, "Ignored" },
{ CHAT_TYPE_SKILL, "Skill" },
{ CHAT_TYPE_LOOT, "Loot" },
{ CHAT_TYPE_MONSTER_WHISPER, "Monster Whisper" },
{ CHAT_TYPE_BG_SYSTEM_NEUTRAL, "Bg System Neutral" },
{ CHAT_TYPE_BG_SYSTEM_ALLIANCE, "Bg System Alliance" },
{ CHAT_TYPE_BG_SYSTEM_HORDE, "Bg System Horde" },
{ CHAT_TYPE_RAID_LEADER, "Raid Leader" },
{ CHAT_TYPE_RAID_WARNING, "Raid Warning" },
{ CHAT_TYPE_RAID_BOSS_WHISPER, "Raid Boss Whisper" },
{ CHAT_TYPE_RAID_BOSS_EMOTE, "Raid Boss Emote" },
{ CHAT_TYPE_BATTLEGROUND, "Battleground" },
{ CHAT_TYPE_BATTLEGROUND_LEADER, "Battleground Leader" },
{ 0, NULL }
};
typedef enum {
SHEATH_STATE_UNARMED = 0x0,
SHEATH_STATE_MELEE = 0x1,
SHEATH_STATE_RANGED = 0x2,
} e_sheath_state;
static const value_string e_sheath_state_strings[] = {
{ SHEATH_STATE_UNARMED, "Unarmed" },
{ SHEATH_STATE_MELEE, "Melee" },
{ SHEATH_STATE_RANGED, "Ranged" },
{ 0, NULL }
};
typedef enum {
UNIT_STAND_STATE_STAND = 0x0,
UNIT_STAND_STATE_SIT = 0x1,
UNIT_STAND_STATE_SIT_CHAIR = 0x2,
UNIT_STAND_STATE_SLEEP = 0x3,
UNIT_STAND_STATE_SIT_LOW_CHAIR = 0x4,
UNIT_STAND_STATE_SIT_MEDIUM_CHAIR = 0x5,
UNIT_STAND_STATE_SIT_HIGH_CHAIR = 0x6,
UNIT_STAND_STATE_DEAD = 0x7,
UNIT_STAND_STATE_KNEEL = 0x8,
UNIT_STAND_STATE_CUSTOM = 0x9,
} e_unit_stand_state;
static const value_string e_unit_stand_state_strings[] = {
{ UNIT_STAND_STATE_STAND, "Stand" },
{ UNIT_STAND_STATE_SIT, "Sit" },
{ UNIT_STAND_STATE_SIT_CHAIR, "Sit Chair" },
{ UNIT_STAND_STATE_SLEEP, "Sleep" },
{ UNIT_STAND_STATE_SIT_LOW_CHAIR, "Sit Low Chair" },
{ UNIT_STAND_STATE_SIT_MEDIUM_CHAIR, "Sit Medium Chair" },
{ UNIT_STAND_STATE_SIT_HIGH_CHAIR, "Sit High Chair" },
{ UNIT_STAND_STATE_DEAD, "Dead" },
{ UNIT_STAND_STATE_KNEEL, "Kneel" },
{ UNIT_STAND_STATE_CUSTOM, "Custom" },
{ 0, NULL }
};
typedef enum {
CORPSE_QUERY_RESULT_NOT_FOUND = 0x0,
CORPSE_QUERY_RESULT_FOUND = 0x1,
} e_corpse_query_result;
static const value_string e_corpse_query_result_strings[] = {
{ CORPSE_QUERY_RESULT_NOT_FOUND, "Not Found" },
{ CORPSE_QUERY_RESULT_FOUND, "Found" },
{ 0, NULL }
};
typedef enum {
BATTLEGROUND_END_STATUS_NOT_ENDED = 0x0,
BATTLEGROUND_END_STATUS_ENDED = 0x1,
} e_battleground_end_status;
static const value_string e_battleground_end_status_strings[] = {
{ BATTLEGROUND_END_STATUS_NOT_ENDED, "Not Ended" },
{ BATTLEGROUND_END_STATUS_ENDED, "Ended" },
{ 0, NULL }
};
typedef enum {
BATTLEGROUND_WINNER_HORDE = 0x0,
BATTLEGROUND_WINNER_ALLIANCE = 0x1,
BATTLEGROUND_WINNER_NONE = 0x2,
} e_battleground_winner;
static const value_string e_battleground_winner_strings[] = {
{ BATTLEGROUND_WINNER_HORDE, "Horde" },
{ BATTLEGROUND_WINNER_ALLIANCE, "Alliance" },
{ BATTLEGROUND_WINNER_NONE, "None" },
{ 0, NULL }
};
typedef enum {
QUEST_PARTY_MESSAGE_SHARING_QUEST = 0x0,
QUEST_PARTY_MESSAGE_CANT_TAKE_QUEST = 0x1,
QUEST_PARTY_MESSAGE_ACCEPT_QUEST = 0x2,
QUEST_PARTY_MESSAGE_DECLINE_QUEST = 0x3,
QUEST_PARTY_MESSAGE_TOO_FAR = 0x4,
QUEST_PARTY_MESSAGE_BUSY = 0x5,
QUEST_PARTY_MESSAGE_LOG_FULL = 0x6,
QUEST_PARTY_MESSAGE_HAVE_QUEST = 0x7,
QUEST_PARTY_MESSAGE_FINISH_QUEST = 0x8,
} e_quest_party_message;
static const value_string e_quest_party_message_strings[] = {
{ QUEST_PARTY_MESSAGE_SHARING_QUEST, "Sharing Quest" },
{ QUEST_PARTY_MESSAGE_CANT_TAKE_QUEST, "Cant Take Quest" },
{ QUEST_PARTY_MESSAGE_ACCEPT_QUEST, "Accept Quest" },
{ QUEST_PARTY_MESSAGE_DECLINE_QUEST, "Decline Quest" },
{ QUEST_PARTY_MESSAGE_TOO_FAR, "Too Far" },
{ QUEST_PARTY_MESSAGE_BUSY, "Busy" },
{ QUEST_PARTY_MESSAGE_LOG_FULL, "Log Full" },
{ QUEST_PARTY_MESSAGE_HAVE_QUEST, "Have Quest" },
{ QUEST_PARTY_MESSAGE_FINISH_QUEST, "Finish Quest" },
{ 0, NULL }
};
typedef enum {
RAID_TARGET_UPDATE_TYPE_PARTIAL = 0x0,
RAID_TARGET_UPDATE_TYPE_FULL = 0x1,
} e_raid_target_update_type;
static const value_string e_raid_target_update_type_strings[] = {
{ RAID_TARGET_UPDATE_TYPE_PARTIAL, "Partial" },
{ RAID_TARGET_UPDATE_TYPE_FULL, "Full" },
{ 0, NULL }
};
typedef enum {
GUILD_EMBLEM_RESULT_SUCCESS = 0x0,
GUILD_EMBLEM_RESULT_INVALID_TABARD_COLORS = 0x1,
GUILD_EMBLEM_RESULT_NO_GUILD = 0x2,
GUILD_EMBLEM_RESULT_NOT_GUILD_MASTER = 0x3,
GUILD_EMBLEM_RESULT_NOT_ENOUGH_MONEY = 0x4,
GUILD_EMBLEM_RESULT_NO_MESSAGE = 0x5,
} e_guild_emblem_result;
static const value_string e_guild_emblem_result_strings[] = {
{ GUILD_EMBLEM_RESULT_SUCCESS, "Success" },
{ GUILD_EMBLEM_RESULT_INVALID_TABARD_COLORS, "Invalid Tabard Colors" },
{ GUILD_EMBLEM_RESULT_NO_GUILD, "No Guild" },
{ GUILD_EMBLEM_RESULT_NOT_GUILD_MASTER, "Not Guild Master" },
{ GUILD_EMBLEM_RESULT_NOT_ENOUGH_MONEY, "Not Enough Money" },
{ GUILD_EMBLEM_RESULT_NO_MESSAGE, "No Message" },
{ 0, NULL }
};
typedef enum {
ACTIVATE_TAXI_REPLY_OK = 0x0,
ACTIVATE_TAXI_REPLY_UNSPECIFIEDSERVERERROR = 0x1,
ACTIVATE_TAXI_REPLY_NOSUCHPATH = 0x2,
ACTIVATE_TAXI_REPLY_NOTENOUGHMONEY = 0x3,
ACTIVATE_TAXI_REPLY_TOOFARAWAY = 0x4,
ACTIVATE_TAXI_REPLY_NOVENDORNEARBY = 0x5,
ACTIVATE_TAXI_REPLY_NOTVISITED = 0x6,
ACTIVATE_TAXI_REPLY_PLAYERBUSY = 0x7,
ACTIVATE_TAXI_REPLY_PLAYERALREADYMOUNTED = 0x8,
ACTIVATE_TAXI_REPLY_PLAYERSHAPESHIFTED = 0x9,
ACTIVATE_TAXI_REPLY_PLAYERMOVING = 0xA,
ACTIVATE_TAXI_REPLY_SAMENODE = 0xB,
ACTIVATE_TAXI_REPLY_NOTSTANDING = 0xC,
} e_activate_taxi_reply;
static const value_string e_activate_taxi_reply_strings[] = {
{ ACTIVATE_TAXI_REPLY_OK, "Ok" },
{ ACTIVATE_TAXI_REPLY_UNSPECIFIEDSERVERERROR, "Unspecifiedservererror" },
{ ACTIVATE_TAXI_REPLY_NOSUCHPATH, "Nosuchpath" },
{ ACTIVATE_TAXI_REPLY_NOTENOUGHMONEY, "Notenoughmoney" },
{ ACTIVATE_TAXI_REPLY_TOOFARAWAY, "Toofaraway" },
{ ACTIVATE_TAXI_REPLY_NOVENDORNEARBY, "Novendornearby" },
{ ACTIVATE_TAXI_REPLY_NOTVISITED, "Notvisited" },
{ ACTIVATE_TAXI_REPLY_PLAYERBUSY, "Playerbusy" },
{ ACTIVATE_TAXI_REPLY_PLAYERALREADYMOUNTED, "Playeralreadymounted" },
{ ACTIVATE_TAXI_REPLY_PLAYERSHAPESHIFTED, "Playershapeshifted" },
{ ACTIVATE_TAXI_REPLY_PLAYERMOVING, "Playermoving" },
{ ACTIVATE_TAXI_REPLY_SAMENODE, "Samenode" },
{ ACTIVATE_TAXI_REPLY_NOTSTANDING, "Notstanding" },
{ 0, NULL }
};
typedef enum {
AI_REACTION_ALERT = 0x0,
AI_REACTION_FRIENDLY = 0x1,
AI_REACTION_HOSTILE = 0x2,
AI_REACTION_AFRAID = 0x3,
AI_REACTION_DESTROY = 0x4,
} e_ai_reaction;
static const value_string e_ai_reaction_strings[] = {
{ AI_REACTION_ALERT, "Alert" },
{ AI_REACTION_FRIENDLY, "Friendly" },
{ AI_REACTION_HOSTILE, "Hostile" },
{ AI_REACTION_AFRAID, "Afraid" },
{ AI_REACTION_DESTROY, "Destroy" },
{ 0, NULL }
};
typedef enum {
HIT_INFO_NORMAL_SWING = 0x00000,
HIT_INFO_UNK1 = 0x00001,
HIT_INFO_AFFECTS_VICTIM = 0x00002,
HIT_INFO_LEFT_SWING = 0x00004,
HIT_INFO_EARLY_CRITICAL_HIT = 0x00008,
HIT_INFO_MISS = 0x00010,
HIT_INFO_ABSORB = 0x00020,
HIT_INFO_RESIST = 0x00040,
HIT_INFO_CRITICAL_HIT = 0x00080,
HIT_INFO_UNK9 = 0x00100,
HIT_INFO_UNK10 = 0x02000,
HIT_INFO_GLANCING = 0x04000,
HIT_INFO_CRUSHING = 0x08000,
HIT_INFO_NO_ACTION = 0x10000,
HIT_INFO_SWING_NO_HIT_SOUND = 0x80000,
} e_hit_info;
static const value_string e_hit_info_strings[] = {
{ HIT_INFO_NORMAL_SWING, "Normal Swing" },
{ HIT_INFO_UNK1, "Unk1" },
{ HIT_INFO_AFFECTS_VICTIM, "Affects Victim" },
{ HIT_INFO_LEFT_SWING, "Left Swing" },
{ HIT_INFO_EARLY_CRITICAL_HIT, "Early Critical Hit" },
{ HIT_INFO_MISS, "Miss" },
{ HIT_INFO_ABSORB, "Absorb" },
{ HIT_INFO_RESIST, "Resist" },
{ HIT_INFO_CRITICAL_HIT, "Critical Hit" },
{ HIT_INFO_UNK9, "Unk9" },
{ HIT_INFO_UNK10, "Unk10" },
{ HIT_INFO_GLANCING, "Glancing" },
{ HIT_INFO_CRUSHING, "Crushing" },
{ HIT_INFO_NO_ACTION, "No Action" },
{ HIT_INFO_SWING_NO_HIT_SOUND, "Swing No Hit Sound" },
{ 0, NULL }
};
typedef enum {
WORLD_RESULT_RESPONSE_SUCCESS = 0x00,
WORLD_RESULT_RESPONSE_FAILURE = 0x01,
WORLD_RESULT_RESPONSE_CANCELLED = 0x02,
WORLD_RESULT_RESPONSE_DISCONNECTED = 0x03,
WORLD_RESULT_RESPONSE_FAILED_TO_CONNECT = 0x04,
WORLD_RESULT_RESPONSE_CONNECTED = 0x05,
WORLD_RESULT_RESPONSE_VERSION_MISMATCH = 0x06,
WORLD_RESULT_CSTATUS_CONNECTING = 0x07,
WORLD_RESULT_CSTATUS_NEGOTIATING_SECURITY = 0x08,
WORLD_RESULT_CSTATUS_NEGOTIATION_COMPLETE = 0x09,
WORLD_RESULT_CSTATUS_NEGOTIATION_FAILED = 0x0A,
WORLD_RESULT_CSTATUS_AUTHENTICATING = 0x0B,
WORLD_RESULT_AUTH_OK = 0x0C,
WORLD_RESULT_AUTH_FAILED = 0x0D,
WORLD_RESULT_AUTH_REJECT = 0x0E,
WORLD_RESULT_AUTH_BAD_SERVER_PROOF = 0x0F,
WORLD_RESULT_AUTH_UNAVAILABLE = 0x10,
WORLD_RESULT_AUTH_SYSTEM_ERROR = 0x11,
WORLD_RESULT_AUTH_BILLING_ERROR = 0x12,
WORLD_RESULT_AUTH_BILLING_EXPIRED = 0x13,
WORLD_RESULT_AUTH_VERSION_MISMATCH = 0x14,
WORLD_RESULT_AUTH_UNKNOWN_ACCOUNT = 0x15,
WORLD_RESULT_AUTH_INCORRECT_PASSWORD = 0x16,
WORLD_RESULT_AUTH_SESSION_EXPIRED = 0x17,
WORLD_RESULT_AUTH_SERVER_SHUTTING_DOWN = 0x18,
WORLD_RESULT_AUTH_ALREADY_LOGGING_IN = 0x19,
WORLD_RESULT_AUTH_LOGIN_SERVER_NOT_FOUND = 0x1A,
WORLD_RESULT_AUTH_WAIT_QUEUE = 0x1B,
WORLD_RESULT_AUTH_BANNED = 0x1C,
WORLD_RESULT_AUTH_ALREADY_ONLINE = 0x1D,
WORLD_RESULT_AUTH_NO_TIME = 0x1E,
WORLD_RESULT_AUTH_DB_BUSY = 0x1F,
WORLD_RESULT_AUTH_SUSPENDED = 0x20,
WORLD_RESULT_AUTH_PARENTAL_CONTROL = 0x21,
WORLD_RESULT_REALM_LIST_IN_PROGRESS = 0x22,
WORLD_RESULT_REALM_LIST_SUCCESS = 0x23,
WORLD_RESULT_REALM_LIST_FAILED = 0x24,
WORLD_RESULT_REALM_LIST_INVALID = 0x25,
WORLD_RESULT_REALM_LIST_REALM_NOT_FOUND = 0x26,
WORLD_RESULT_ACCOUNT_CREATE_IN_PROGRESS = 0x27,
WORLD_RESULT_ACCOUNT_CREATE_SUCCESS = 0x28,
WORLD_RESULT_ACCOUNT_CREATE_FAILED = 0x29,
WORLD_RESULT_CHAR_LIST_RETRIEVING = 0x2A,
WORLD_RESULT_CHAR_LIST_RETRIEVED = 0x2B,
WORLD_RESULT_CHAR_LIST_FAILED = 0x2C,
WORLD_RESULT_CHAR_CREATE_IN_PROGRESS = 0x2D,
WORLD_RESULT_CHAR_CREATE_SUCCESS = 0x2E,
WORLD_RESULT_CHAR_CREATE_ERROR = 0x2F,
WORLD_RESULT_CHAR_CREATE_FAILED = 0x30,
WORLD_RESULT_CHAR_CREATE_NAME_IN_USE = 0x31,
WORLD_RESULT_CHAR_CREATE_DISABLED = 0x32,
WORLD_RESULT_CHAR_CREATE_PVP_TEAMS_VIOLATION = 0x33,
WORLD_RESULT_CHAR_CREATE_SERVER_LIMIT = 0x34,
WORLD_RESULT_CHAR_CREATE_ACCOUNT_LIMIT = 0x35,
WORLD_RESULT_CHAR_CREATE_SERVER_QUEUE = 0x36,
WORLD_RESULT_CHAR_CREATE_ONLY_EXISTING = 0x37,
WORLD_RESULT_CHAR_DELETE_IN_PROGRESS = 0x38,
WORLD_RESULT_CHAR_DELETE_SUCCESS = 0x39,
WORLD_RESULT_CHAR_DELETE_FAILED = 0x3A,
WORLD_RESULT_CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER = 0x3B,
WORLD_RESULT_CHAR_LOGIN_IN_PROGRESS = 0x3C,
WORLD_RESULT_CHAR_LOGIN_SUCCESS = 0x3D,
WORLD_RESULT_CHAR_LOGIN_NO_WORLD = 0x3E,
WORLD_RESULT_CHAR_LOGIN_DUPLICATE_CHARACTER = 0x3F,
WORLD_RESULT_CHAR_LOGIN_NO_INSTANCES = 0x40,
WORLD_RESULT_CHAR_LOGIN_FAILED = 0x41,
WORLD_RESULT_CHAR_LOGIN_DISABLED = 0x42,
WORLD_RESULT_CHAR_LOGIN_NO_CHARACTER = 0x43,
WORLD_RESULT_CHAR_LOGIN_LOCKED_FOR_TRANSFER = 0x44,
WORLD_RESULT_CHAR_NAME_NO_NAME = 0x45,
WORLD_RESULT_CHAR_NAME_TOO_SHORT = 0x46,
WORLD_RESULT_CHAR_NAME_TOO_LONG = 0x47,
WORLD_RESULT_CHAR_NAME_ONLY_LETTERS = 0x48,
WORLD_RESULT_CHAR_NAME_MIXED_LANGUAGES = 0x49,
WORLD_RESULT_CHAR_NAME_PROFANE = 0x4A,
WORLD_RESULT_CHAR_NAME_RESERVED = 0x4B,
WORLD_RESULT_CHAR_NAME_INVALID_APOSTROPHE = 0x4C,
WORLD_RESULT_CHAR_NAME_MULTIPLE_APOSTROPHES = 0x4D,
WORLD_RESULT_CHAR_NAME_THREE_CONSECUTIVE = 0x4E,
WORLD_RESULT_CHAR_NAME_INVALID_SPACE = 0x4F,
WORLD_RESULT_CHAR_NAME_SUCCESS = 0x50,
WORLD_RESULT_CHAR_NAME_FAILURE = 0x51,
} e_world_result;
static const value_string e_world_result_strings[] = {
{ WORLD_RESULT_RESPONSE_SUCCESS, "Response Success" },
{ WORLD_RESULT_RESPONSE_FAILURE, "Response Failure" },
{ WORLD_RESULT_RESPONSE_CANCELLED, "Response Cancelled" },
{ WORLD_RESULT_RESPONSE_DISCONNECTED, "Response Disconnected" },
{ WORLD_RESULT_RESPONSE_FAILED_TO_CONNECT, "Response Failed To Connect" },
{ WORLD_RESULT_RESPONSE_CONNECTED, "Response Connected" },
{ WORLD_RESULT_RESPONSE_VERSION_MISMATCH, "Response Version Mismatch" },
{ WORLD_RESULT_CSTATUS_CONNECTING, "Cstatus Connecting" },
{ WORLD_RESULT_CSTATUS_NEGOTIATING_SECURITY, "Cstatus Negotiating Security" },
{ WORLD_RESULT_CSTATUS_NEGOTIATION_COMPLETE, "Cstatus Negotiation Complete" },
{ WORLD_RESULT_CSTATUS_NEGOTIATION_FAILED, "Cstatus Negotiation Failed" },
{ WORLD_RESULT_CSTATUS_AUTHENTICATING, "Cstatus Authenticating" },
{ WORLD_RESULT_AUTH_OK, "Auth Ok" },
{ WORLD_RESULT_AUTH_FAILED, "Auth Failed" },
{ WORLD_RESULT_AUTH_REJECT, "Auth Reject" },
{ WORLD_RESULT_AUTH_BAD_SERVER_PROOF, "Auth Bad Server Proof" },
{ WORLD_RESULT_AUTH_UNAVAILABLE, "Auth Unavailable" },
{ WORLD_RESULT_AUTH_SYSTEM_ERROR, "Auth System Error" },
{ WORLD_RESULT_AUTH_BILLING_ERROR, "Auth Billing Error" },
{ WORLD_RESULT_AUTH_BILLING_EXPIRED, "Auth Billing Expired" },
{ WORLD_RESULT_AUTH_VERSION_MISMATCH, "Auth Version Mismatch" },
{ WORLD_RESULT_AUTH_UNKNOWN_ACCOUNT, "Auth Unknown Account" },
{ WORLD_RESULT_AUTH_INCORRECT_PASSWORD, "Auth Incorrect Password" },
{ WORLD_RESULT_AUTH_SESSION_EXPIRED, "Auth Session Expired" },
{ WORLD_RESULT_AUTH_SERVER_SHUTTING_DOWN, "Auth Server Shutting Down" },
{ WORLD_RESULT_AUTH_ALREADY_LOGGING_IN, "Auth Already Logging In" },
{ WORLD_RESULT_AUTH_LOGIN_SERVER_NOT_FOUND, "Auth Login Server Not Found" },
{ WORLD_RESULT_AUTH_WAIT_QUEUE, "Auth Wait Queue" },
{ WORLD_RESULT_AUTH_BANNED, "Auth Banned" },
{ WORLD_RESULT_AUTH_ALREADY_ONLINE, "Auth Already Online" },
{ WORLD_RESULT_AUTH_NO_TIME, "Auth No Time" },
{ WORLD_RESULT_AUTH_DB_BUSY, "Auth Db Busy" },
{ WORLD_RESULT_AUTH_SUSPENDED, "Auth Suspended" },
{ WORLD_RESULT_AUTH_PARENTAL_CONTROL, "Auth Parental Control" },
{ WORLD_RESULT_REALM_LIST_IN_PROGRESS, "Realm List In Progress" },
{ WORLD_RESULT_REALM_LIST_SUCCESS, "Realm List Success" },
{ WORLD_RESULT_REALM_LIST_FAILED, "Realm List Failed" },
{ WORLD_RESULT_REALM_LIST_INVALID, "Realm List Invalid" },
{ WORLD_RESULT_REALM_LIST_REALM_NOT_FOUND, "Realm List Realm Not Found" },
{ WORLD_RESULT_ACCOUNT_CREATE_IN_PROGRESS, "Account Create In Progress" },
{ WORLD_RESULT_ACCOUNT_CREATE_SUCCESS, "Account Create Success" },
{ WORLD_RESULT_ACCOUNT_CREATE_FAILED, "Account Create Failed" },
{ WORLD_RESULT_CHAR_LIST_RETRIEVING, "Char List Retrieving" },
{ WORLD_RESULT_CHAR_LIST_RETRIEVED, "Char List Retrieved" },
{ WORLD_RESULT_CHAR_LIST_FAILED, "Char List Failed" },
{ WORLD_RESULT_CHAR_CREATE_IN_PROGRESS, "Char Create In Progress" },
{ WORLD_RESULT_CHAR_CREATE_SUCCESS, "Char Create Success" },
{ WORLD_RESULT_CHAR_CREATE_ERROR, "Char Create Error" },
{ WORLD_RESULT_CHAR_CREATE_FAILED, "Char Create Failed" },
{ WORLD_RESULT_CHAR_CREATE_NAME_IN_USE, "Char Create Name In Use" },
{ WORLD_RESULT_CHAR_CREATE_DISABLED, "Char Create Disabled" },
{ WORLD_RESULT_CHAR_CREATE_PVP_TEAMS_VIOLATION, "Char Create Pvp Teams Violation" },
{ WORLD_RESULT_CHAR_CREATE_SERVER_LIMIT, "Char Create Server Limit" },
{ WORLD_RESULT_CHAR_CREATE_ACCOUNT_LIMIT, "Char Create Account Limit" },
{ WORLD_RESULT_CHAR_CREATE_SERVER_QUEUE, "Char Create Server Queue" },
{ WORLD_RESULT_CHAR_CREATE_ONLY_EXISTING, "Char Create Only Existing" },
{ WORLD_RESULT_CHAR_DELETE_IN_PROGRESS, "Char Delete In Progress" },
{ WORLD_RESULT_CHAR_DELETE_SUCCESS, "Char Delete Success" },
{ WORLD_RESULT_CHAR_DELETE_FAILED, "Char Delete Failed" },
{ WORLD_RESULT_CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER, "Char Delete Failed Locked For Transfer" },
{ WORLD_RESULT_CHAR_LOGIN_IN_PROGRESS, "Char Login In Progress" },
{ WORLD_RESULT_CHAR_LOGIN_SUCCESS, "Char Login Success" },
{ WORLD_RESULT_CHAR_LOGIN_NO_WORLD, "Char Login No World" },
{ WORLD_RESULT_CHAR_LOGIN_DUPLICATE_CHARACTER, "Char Login Duplicate Character" },
{ WORLD_RESULT_CHAR_LOGIN_NO_INSTANCES, "Char Login No Instances" },
{ WORLD_RESULT_CHAR_LOGIN_FAILED, "Char Login Failed" },
{ WORLD_RESULT_CHAR_LOGIN_DISABLED, "Char Login Disabled" },
{ WORLD_RESULT_CHAR_LOGIN_NO_CHARACTER, "Char Login No Character" },
{ WORLD_RESULT_CHAR_LOGIN_LOCKED_FOR_TRANSFER, "Char Login Locked For Transfer" },
{ WORLD_RESULT_CHAR_NAME_NO_NAME, "Char Name No Name" },
{ WORLD_RESULT_CHAR_NAME_TOO_SHORT, "Char Name Too Short" },
{ WORLD_RESULT_CHAR_NAME_TOO_LONG, "Char Name Too Long" },
{ WORLD_RESULT_CHAR_NAME_ONLY_LETTERS, "Char Name Only Letters" },
{ WORLD_RESULT_CHAR_NAME_MIXED_LANGUAGES, "Char Name Mixed Languages" },
{ WORLD_RESULT_CHAR_NAME_PROFANE, "Char Name Profane" },
{ WORLD_RESULT_CHAR_NAME_RESERVED, "Char Name Reserved" },
{ WORLD_RESULT_CHAR_NAME_INVALID_APOSTROPHE, "Char Name Invalid Apostrophe" },
{ WORLD_RESULT_CHAR_NAME_MULTIPLE_APOSTROPHES, "Char Name Multiple Apostrophes" },
{ WORLD_RESULT_CHAR_NAME_THREE_CONSECUTIVE, "Char Name Three Consecutive" },
{ WORLD_RESULT_CHAR_NAME_INVALID_SPACE, "Char Name Invalid Space" },
{ WORLD_RESULT_CHAR_NAME_SUCCESS, "Char Name Success" },
{ WORLD_RESULT_CHAR_NAME_FAILURE, "Char Name Failure" },
{ 0, NULL }
};
typedef enum {
BATTLEGROUND_BRACKET_TENS = 0x0,
BATTLEGROUND_BRACKET_TWENTIES = 0x1,
BATTLEGROUND_BRACKET_THIRTIES = 0x2,
BATTLEGROUND_BRACKET_FOURTIES = 0x3,
BATTLEGROUND_BRACKET_FIFTIES = 0x4,
BATTLEGROUND_BRACKET_SIXTY = 0x5,
} e_battleground_bracket;
static const value_string e_battleground_bracket_strings[] = {
{ BATTLEGROUND_BRACKET_TENS, "Tens" },
{ BATTLEGROUND_BRACKET_TWENTIES, "Twenties" },
{ BATTLEGROUND_BRACKET_THIRTIES, "Thirties" },
{ BATTLEGROUND_BRACKET_FOURTIES, "Fourties" },
{ BATTLEGROUND_BRACKET_FIFTIES, "Fifties" },
{ BATTLEGROUND_BRACKET_SIXTY, "Sixty" },
{ 0, NULL }
};
typedef enum {
STATUS_ID_NONE = 0x0,
STATUS_ID_WAIT_QUEUE = 0x1,
STATUS_ID_WAIT_JOIN = 0x2,
STATUS_ID_IN_PROGRESS = 0x3,
STATUS_ID_WAIT_LEAVE = 0x4,
} e_status_id;
static const value_string e_status_id_strings[] = {
{ STATUS_ID_NONE, "None" },
{ STATUS_ID_WAIT_QUEUE, "Wait Queue" },
{ STATUS_ID_WAIT_JOIN, "Wait Join" },
{ STATUS_ID_IN_PROGRESS, "In Progress" },
{ STATUS_ID_WAIT_LEAVE, "Wait Leave" },
{ 0, NULL }
};
typedef enum {
BUY_BANK_SLOT_RESULT_FAILED_TOO_MANY = 0x0,
BUY_BANK_SLOT_RESULT_INSUFFICIENT_FUNDS = 0x1,
BUY_BANK_SLOT_RESULT_NOT_BANKER = 0x2,
BUY_BANK_SLOT_RESULT_OK = 0x3,
} e_buy_bank_slot_result;
static const value_string e_buy_bank_slot_result_strings[] = {
{ BUY_BANK_SLOT_RESULT_FAILED_TOO_MANY, "Failed Too Many" },
{ BUY_BANK_SLOT_RESULT_INSUFFICIENT_FUNDS, "Insufficient Funds" },
{ BUY_BANK_SLOT_RESULT_NOT_BANKER, "Not Banker" },
{ BUY_BANK_SLOT_RESULT_OK, "Ok" },
{ 0, NULL }
};
typedef enum {
BUY_RESULT_CANT_FIND_ITEM = 0x0,
BUY_RESULT_ITEM_ALREADY_SOLD = 0x1,
BUY_RESULT_NOT_ENOUGHT_MONEY = 0x2,
BUY_RESULT_SELLER_DONT_LIKE_YOU = 0x4,
BUY_RESULT_DISTANCE_TOO_FAR = 0x5,
BUY_RESULT_ITEM_SOLD_OUT = 0x7,
BUY_RESULT_CANT_CARRY_MORE = 0x8,
BUY_RESULT_RANK_REQUIRE = 0xB,
BUY_RESULT_REPUTATION_REQUIRE = 0xC,
} e_buy_result;
static const value_string e_buy_result_strings[] = {
{ BUY_RESULT_CANT_FIND_ITEM, "Cant Find Item" },
{ BUY_RESULT_ITEM_ALREADY_SOLD, "Item Already Sold" },
{ BUY_RESULT_NOT_ENOUGHT_MONEY, "Not Enought Money" },
{ BUY_RESULT_SELLER_DONT_LIKE_YOU, "Seller Dont Like You" },
{ BUY_RESULT_DISTANCE_TOO_FAR, "Distance Too Far" },
{ BUY_RESULT_ITEM_SOLD_OUT, "Item Sold Out" },
{ BUY_RESULT_CANT_CARRY_MORE, "Cant Carry More" },
{ BUY_RESULT_RANK_REQUIRE, "Rank Require" },
{ BUY_RESULT_REPUTATION_REQUIRE, "Reputation Require" },
{ 0, NULL }
};
typedef enum {
SIMPLE_SPELL_CAST_RESULT_SUCCESS = 0x0,
SIMPLE_SPELL_CAST_RESULT_FAILURE = 0x2,
} e_simple_spell_cast_result;
static const value_string e_simple_spell_cast_result_strings[] = {
{ SIMPLE_SPELL_CAST_RESULT_SUCCESS, "Success" },
{ SIMPLE_SPELL_CAST_RESULT_FAILURE, "Failure" },
{ 0, NULL }
};
typedef enum {
CAST_FAILURE_REASON_AFFECTING_COMBAT = 0x00,
CAST_FAILURE_REASON_ALREADY_AT_FULL_HEALTH = 0x01,
CAST_FAILURE_REASON_ALREADY_AT_FULL_POWER = 0x02,
CAST_FAILURE_REASON_ALREADY_BEING_TAMED = 0x03,
CAST_FAILURE_REASON_ALREADY_HAVE_CHARM = 0x04,
CAST_FAILURE_REASON_ALREADY_HAVE_SUMMON = 0x05,
CAST_FAILURE_REASON_ALREADY_OPEN = 0x06,
CAST_FAILURE_REASON_AURA_BOUNCED = 0x07,
CAST_FAILURE_REASON_AUTOTRACK_INTERRUPTED = 0x08,
CAST_FAILURE_REASON_BAD_IMPLICIT_TARGETS = 0x09,
CAST_FAILURE_REASON_BAD_TARGETS = 0x0A,
CAST_FAILURE_REASON_CANT_BE_CHARMED = 0x0B,
CAST_FAILURE_REASON_CANT_BE_DISENCHANTED = 0x0C,
CAST_FAILURE_REASON_CANT_BE_PROSPECTED = 0x0D,
CAST_FAILURE_REASON_CANT_CAST_ON_TAPPED = 0x0E,
CAST_FAILURE_REASON_CANT_DUEL_WHILE_INVISIBLE = 0x0F,
CAST_FAILURE_REASON_CANT_DUEL_WHILE_STEALTHED = 0x10,
CAST_FAILURE_REASON_CANT_STEALTH = 0x11,
CAST_FAILURE_REASON_CASTER_AURASTATE = 0x12,
CAST_FAILURE_REASON_CASTER_DEAD = 0x13,
CAST_FAILURE_REASON_CHARMED = 0x14,
CAST_FAILURE_REASON_CHEST_IN_USE = 0x15,
CAST_FAILURE_REASON_CONFUSED = 0x16,
CAST_FAILURE_REASON_DONT_REPORT = 0x17,
CAST_FAILURE_REASON_EQUIPPED_ITEM = 0x18,
CAST_FAILURE_REASON_EQUIPPED_ITEM_CLASS = 0x19,
CAST_FAILURE_REASON_EQUIPPED_ITEM_CLASS_MAINHAND = 0x1A,
CAST_FAILURE_REASON_EQUIPPED_ITEM_CLASS_OFFHAND = 0x1B,
CAST_FAILURE_REASON_ERROR = 0x1C,
CAST_FAILURE_REASON_FIZZLE = 0x1D,
CAST_FAILURE_REASON_FLEEING = 0x1E,
CAST_FAILURE_REASON_FOOD_LOWLEVEL = 0x1F,
CAST_FAILURE_REASON_HIGHLEVEL = 0x20,
CAST_FAILURE_REASON_HUNGER_SATIATED = 0x21,
CAST_FAILURE_REASON_IMMUNE = 0x22,
CAST_FAILURE_REASON_INTERRUPTED = 0x23,
CAST_FAILURE_REASON_INTERRUPTED_COMBAT = 0x24,
CAST_FAILURE_REASON_ITEM_ALREADY_ENCHANTED = 0x25,
CAST_FAILURE_REASON_ITEM_GONE = 0x26,
CAST_FAILURE_REASON_ITEM_NOT_FOUND = 0x27,
CAST_FAILURE_REASON_ITEM_NOT_READY = 0x28,
CAST_FAILURE_REASON_LEVEL_REQUIREMENT = 0x29,
CAST_FAILURE_REASON_LINE_OF_SIGHT = 0x2A,
CAST_FAILURE_REASON_LOWLEVEL = 0x2B,
CAST_FAILURE_REASON_LOW_CASTLEVEL = 0x2C,
CAST_FAILURE_REASON_MAINHAND_EMPTY = 0x2D,
CAST_FAILURE_REASON_MOVING = 0x2E,
CAST_FAILURE_REASON_NEED_AMMO = 0x2F,
CAST_FAILURE_REASON_NEED_AMMO_POUCH = 0x30,
CAST_FAILURE_REASON_NEED_EXOTIC_AMMO = 0x31,
CAST_FAILURE_REASON_NOPATH = 0x32,
CAST_FAILURE_REASON_NOT_BEHIND = 0x33,
CAST_FAILURE_REASON_NOT_FISHABLE = 0x34,
CAST_FAILURE_REASON_NOT_HERE = 0x35,
CAST_FAILURE_REASON_NOT_INFRONT = 0x36,
CAST_FAILURE_REASON_NOT_IN_CONTROL = 0x37,
CAST_FAILURE_REASON_NOT_KNOWN = 0x38,
CAST_FAILURE_REASON_NOT_MOUNTED = 0x39,
CAST_FAILURE_REASON_NOT_ON_TAXI = 0x3A,
CAST_FAILURE_REASON_NOT_ON_TRANSPORT = 0x3B,
CAST_FAILURE_REASON_NOT_READY = 0x3C,
CAST_FAILURE_REASON_NOT_SHAPESHIFT = 0x3D,
CAST_FAILURE_REASON_NOT_STANDING = 0x3E,
CAST_FAILURE_REASON_NOT_TRADEABLE = 0x3F,
CAST_FAILURE_REASON_NOT_TRADING = 0x40,
CAST_FAILURE_REASON_NOT_UNSHEATHED = 0x41,
CAST_FAILURE_REASON_NOT_WHILE_GHOST = 0x42,
CAST_FAILURE_REASON_NO_AMMO = 0x43,
CAST_FAILURE_REASON_NO_CHARGES_REMAIN = 0x44,
CAST_FAILURE_REASON_NO_CHAMPION = 0x45,
CAST_FAILURE_REASON_NO_COMBO_POINTS = 0x46,
CAST_FAILURE_REASON_NO_DUELING = 0x47,
CAST_FAILURE_REASON_NO_ENDURANCE = 0x48,
CAST_FAILURE_REASON_NO_FISH = 0x49,
CAST_FAILURE_REASON_NO_ITEMS_WHILE_SHAPESHIFTED = 0x4A,
CAST_FAILURE_REASON_NO_MOUNTS_ALLOWED = 0x4B,
CAST_FAILURE_REASON_NO_PET = 0x4C,
CAST_FAILURE_REASON_NO_POWER = 0x4D,
CAST_FAILURE_REASON_NOTHING_TO_DISPEL = 0x4E,
CAST_FAILURE_REASON_NOTHING_TO_STEAL = 0x4F,
CAST_FAILURE_REASON_ONLY_ABOVEWATER = 0x50,
CAST_FAILURE_REASON_ONLY_DAYTIME = 0x51,
CAST_FAILURE_REASON_ONLY_INDOORS = 0x52,
CAST_FAILURE_REASON_ONLY_MOUNTED = 0x53,
CAST_FAILURE_REASON_ONLY_NIGHTTIME = 0x54,
CAST_FAILURE_REASON_ONLY_OUTDOORS = 0x55,
CAST_FAILURE_REASON_ONLY_SHAPESHIFT = 0x56,
CAST_FAILURE_REASON_ONLY_STEALTHED = 0x57,
CAST_FAILURE_REASON_ONLY_UNDERWATER = 0x58,
CAST_FAILURE_REASON_OUT_OF_RANGE = 0x59,
CAST_FAILURE_REASON_PACIFIED = 0x5A,
CAST_FAILURE_REASON_POSSESSED = 0x5B,
CAST_FAILURE_REASON_REAGENTS = 0x5C,
CAST_FAILURE_REASON_REQUIRES_AREA = 0x5D,
CAST_FAILURE_REASON_REQUIRES_SPELL_FOCUS = 0x5E,
CAST_FAILURE_REASON_ROOTED = 0x5F,
CAST_FAILURE_REASON_SILENCED = 0x60,
CAST_FAILURE_REASON_SPELL_IN_PROGRESS = 0x61,
CAST_FAILURE_REASON_SPELL_LEARNED = 0x62,
CAST_FAILURE_REASON_SPELL_UNAVAILABLE = 0x63,
CAST_FAILURE_REASON_STUNNED = 0x64,
CAST_FAILURE_REASON_TARGETS_DEAD = 0x65,
CAST_FAILURE_REASON_TARGET_AFFECTING_COMBAT = 0x66,
CAST_FAILURE_REASON_TARGET_AURASTATE = 0x67,
CAST_FAILURE_REASON_TARGET_DUELING = 0x68,
CAST_FAILURE_REASON_TARGET_ENEMY = 0x69,
CAST_FAILURE_REASON_TARGET_ENRAGED = 0x6A,
CAST_FAILURE_REASON_TARGET_FRIENDLY = 0x6B,
CAST_FAILURE_REASON_TARGET_IN_COMBAT = 0x6C,
CAST_FAILURE_REASON_TARGET_IS_PLAYER = 0x6D,
CAST_FAILURE_REASON_TARGET_NOT_DEAD = 0x6E,
CAST_FAILURE_REASON_TARGET_NOT_IN_PARTY = 0x6F,
CAST_FAILURE_REASON_TARGET_NOT_LOOTED = 0x70,
CAST_FAILURE_REASON_TARGET_NOT_PLAYER = 0x71,
CAST_FAILURE_REASON_TARGET_NO_POCKETS = 0x72,
CAST_FAILURE_REASON_TARGET_NO_WEAPONS = 0x73,
CAST_FAILURE_REASON_TARGET_UNSKINNABLE = 0x74,
CAST_FAILURE_REASON_THIRST_SATIATED = 0x75,
CAST_FAILURE_REASON_TOO_CLOSE = 0x76,
CAST_FAILURE_REASON_TOO_MANY_OF_ITEM = 0x77,
CAST_FAILURE_REASON_TOTEMS = 0x78,
CAST_FAILURE_REASON_TRAINING_POINTS = 0x79,
CAST_FAILURE_REASON_TRY_AGAIN = 0x7A,
CAST_FAILURE_REASON_UNIT_NOT_BEHIND = 0x7B,
CAST_FAILURE_REASON_UNIT_NOT_INFRONT = 0x7C,
CAST_FAILURE_REASON_WRONG_PET_FOOD = 0x7D,
CAST_FAILURE_REASON_NOT_WHILE_FATIGUED = 0x7E,
CAST_FAILURE_REASON_TARGET_NOT_IN_INSTANCE = 0x7F,
CAST_FAILURE_REASON_NOT_WHILE_TRADING = 0x80,
CAST_FAILURE_REASON_TARGET_NOT_IN_RAID = 0x81,
CAST_FAILURE_REASON_DISENCHANT_WHILE_LOOTING = 0x82,
CAST_FAILURE_REASON_PROSPECT_WHILE_LOOTING = 0x83,
CAST_FAILURE_REASON_PROSPECT_NEED_MORE = 0x84,
CAST_FAILURE_REASON_TARGET_FREEFORALL = 0x85,
CAST_FAILURE_REASON_NO_EDIBLE_CORPSES = 0x86,
CAST_FAILURE_REASON_ONLY_BATTLEGROUNDS = 0x87,
CAST_FAILURE_REASON_TARGET_NOT_GHOST = 0x88,
CAST_FAILURE_REASON_TOO_MANY_SKILLS = 0x89,
CAST_FAILURE_REASON_TRANSFORM_UNUSABLE = 0x8A,
CAST_FAILURE_REASON_WRONG_WEATHER = 0x8B,
CAST_FAILURE_REASON_DAMAGE_IMMUNE = 0x8C,
CAST_FAILURE_REASON_PREVENTED_BY_MECHANIC = 0x8D,
CAST_FAILURE_REASON_PLAY_TIME = 0x8E,
CAST_FAILURE_REASON_REPUTATION = 0x8F,
CAST_FAILURE_REASON_MIN_SKILL = 0x90,
CAST_FAILURE_REASON_UNKNOWN = 0x91,
} e_cast_failure_reason;
static const value_string e_cast_failure_reason_strings[] = {
{ CAST_FAILURE_REASON_AFFECTING_COMBAT, "Affecting Combat" },
{ CAST_FAILURE_REASON_ALREADY_AT_FULL_HEALTH, "Already At Full Health" },
{ CAST_FAILURE_REASON_ALREADY_AT_FULL_POWER, "Already At Full Power" },
{ CAST_FAILURE_REASON_ALREADY_BEING_TAMED, "Already Being Tamed" },
{ CAST_FAILURE_REASON_ALREADY_HAVE_CHARM, "Already Have Charm" },
{ CAST_FAILURE_REASON_ALREADY_HAVE_SUMMON, "Already Have Summon" },
{ CAST_FAILURE_REASON_ALREADY_OPEN, "Already Open" },
{ CAST_FAILURE_REASON_AURA_BOUNCED, "Aura Bounced" },
{ CAST_FAILURE_REASON_AUTOTRACK_INTERRUPTED, "Autotrack Interrupted" },
{ CAST_FAILURE_REASON_BAD_IMPLICIT_TARGETS, "Bad Implicit Targets" },
{ CAST_FAILURE_REASON_BAD_TARGETS, "Bad Targets" },
{ CAST_FAILURE_REASON_CANT_BE_CHARMED, "Cant Be Charmed" },
{ CAST_FAILURE_REASON_CANT_BE_DISENCHANTED, "Cant Be Disenchanted" },
{ CAST_FAILURE_REASON_CANT_BE_PROSPECTED, "Cant Be Prospected" },
{ CAST_FAILURE_REASON_CANT_CAST_ON_TAPPED, "Cant Cast On Tapped" },
{ CAST_FAILURE_REASON_CANT_DUEL_WHILE_INVISIBLE, "Cant Duel While Invisible" },
{ CAST_FAILURE_REASON_CANT_DUEL_WHILE_STEALTHED, "Cant Duel While Stealthed" },
{ CAST_FAILURE_REASON_CANT_STEALTH, "Cant Stealth" },
{ CAST_FAILURE_REASON_CASTER_AURASTATE, "Caster Aurastate" },
{ CAST_FAILURE_REASON_CASTER_DEAD, "Caster Dead" },
{ CAST_FAILURE_REASON_CHARMED, "Charmed" },
{ CAST_FAILURE_REASON_CHEST_IN_USE, "Chest In Use" },
{ CAST_FAILURE_REASON_CONFUSED, "Confused" },
{ CAST_FAILURE_REASON_DONT_REPORT, "Dont Report" },
{ CAST_FAILURE_REASON_EQUIPPED_ITEM, "Equipped Item" },
{ CAST_FAILURE_REASON_EQUIPPED_ITEM_CLASS, "Equipped Item Class" },
{ CAST_FAILURE_REASON_EQUIPPED_ITEM_CLASS_MAINHAND, "Equipped Item Class Mainhand" },
{ CAST_FAILURE_REASON_EQUIPPED_ITEM_CLASS_OFFHAND, "Equipped Item Class Offhand" },
{ CAST_FAILURE_REASON_ERROR, "Error" },
{ CAST_FAILURE_REASON_FIZZLE, "Fizzle" },
{ CAST_FAILURE_REASON_FLEEING, "Fleeing" },
{ CAST_FAILURE_REASON_FOOD_LOWLEVEL, "Food Lowlevel" },
{ CAST_FAILURE_REASON_HIGHLEVEL, "Highlevel" },
{ CAST_FAILURE_REASON_HUNGER_SATIATED, "Hunger Satiated" },
{ CAST_FAILURE_REASON_IMMUNE, "Immune" },
{ CAST_FAILURE_REASON_INTERRUPTED, "Interrupted" },
{ CAST_FAILURE_REASON_INTERRUPTED_COMBAT, "Interrupted Combat" },
{ CAST_FAILURE_REASON_ITEM_ALREADY_ENCHANTED, "Item Already Enchanted" },
{ CAST_FAILURE_REASON_ITEM_GONE, "Item Gone" },
{ CAST_FAILURE_REASON_ITEM_NOT_FOUND, "Item Not Found" },
{ CAST_FAILURE_REASON_ITEM_NOT_READY, "Item Not Ready" },
{ CAST_FAILURE_REASON_LEVEL_REQUIREMENT, "Level Requirement" },
{ CAST_FAILURE_REASON_LINE_OF_SIGHT, "Line Of Sight" },
{ CAST_FAILURE_REASON_LOWLEVEL, "Lowlevel" },
{ CAST_FAILURE_REASON_LOW_CASTLEVEL, "Low Castlevel" },
{ CAST_FAILURE_REASON_MAINHAND_EMPTY, "Mainhand Empty" },
{ CAST_FAILURE_REASON_MOVING, "Moving" },
{ CAST_FAILURE_REASON_NEED_AMMO, "Need Ammo" },
{ CAST_FAILURE_REASON_NEED_AMMO_POUCH, "Need Ammo Pouch" },
{ CAST_FAILURE_REASON_NEED_EXOTIC_AMMO, "Need Exotic Ammo" },
{ CAST_FAILURE_REASON_NOPATH, "Nopath" },
{ CAST_FAILURE_REASON_NOT_BEHIND, "Not Behind" },
{ CAST_FAILURE_REASON_NOT_FISHABLE, "Not Fishable" },
{ CAST_FAILURE_REASON_NOT_HERE, "Not Here" },
{ CAST_FAILURE_REASON_NOT_INFRONT, "Not Infront" },
{ CAST_FAILURE_REASON_NOT_IN_CONTROL, "Not In Control" },
{ CAST_FAILURE_REASON_NOT_KNOWN, "Not Known" },
{ CAST_FAILURE_REASON_NOT_MOUNTED, "Not Mounted" },
{ CAST_FAILURE_REASON_NOT_ON_TAXI, "Not On Taxi" },
{ CAST_FAILURE_REASON_NOT_ON_TRANSPORT, "Not On Transport" },
{ CAST_FAILURE_REASON_NOT_READY, "Not Ready" },
{ CAST_FAILURE_REASON_NOT_SHAPESHIFT, "Not Shapeshift" },
{ CAST_FAILURE_REASON_NOT_STANDING, "Not Standing" },
{ CAST_FAILURE_REASON_NOT_TRADEABLE, "Not Tradeable" },
{ CAST_FAILURE_REASON_NOT_TRADING, "Not Trading" },
{ CAST_FAILURE_REASON_NOT_UNSHEATHED, "Not Unsheathed" },
{ CAST_FAILURE_REASON_NOT_WHILE_GHOST, "Not While Ghost" },
{ CAST_FAILURE_REASON_NO_AMMO, "No Ammo" },
{ CAST_FAILURE_REASON_NO_CHARGES_REMAIN, "No Charges Remain" },
{ CAST_FAILURE_REASON_NO_CHAMPION, "No Champion" },
{ CAST_FAILURE_REASON_NO_COMBO_POINTS, "No Combo Points" },
{ CAST_FAILURE_REASON_NO_DUELING, "No Dueling" },
{ CAST_FAILURE_REASON_NO_ENDURANCE, "No Endurance" },
{ CAST_FAILURE_REASON_NO_FISH, "No Fish" },
{ CAST_FAILURE_REASON_NO_ITEMS_WHILE_SHAPESHIFTED, "No Items While Shapeshifted" },
{ CAST_FAILURE_REASON_NO_MOUNTS_ALLOWED, "No Mounts Allowed" },
{ CAST_FAILURE_REASON_NO_PET, "No Pet" },
{ CAST_FAILURE_REASON_NO_POWER, "No Power" },
{ CAST_FAILURE_REASON_NOTHING_TO_DISPEL, "Nothing To Dispel" },
{ CAST_FAILURE_REASON_NOTHING_TO_STEAL, "Nothing To Steal" },
{ CAST_FAILURE_REASON_ONLY_ABOVEWATER, "Only Abovewater" },
{ CAST_FAILURE_REASON_ONLY_DAYTIME, "Only Daytime" },
{ CAST_FAILURE_REASON_ONLY_INDOORS, "Only Indoors" },
{ CAST_FAILURE_REASON_ONLY_MOUNTED, "Only Mounted" },
{ CAST_FAILURE_REASON_ONLY_NIGHTTIME, "Only Nighttime" },
{ CAST_FAILURE_REASON_ONLY_OUTDOORS, "Only Outdoors" },
{ CAST_FAILURE_REASON_ONLY_SHAPESHIFT, "Only Shapeshift" },
{ CAST_FAILURE_REASON_ONLY_STEALTHED, "Only Stealthed" },
{ CAST_FAILURE_REASON_ONLY_UNDERWATER, "Only Underwater" },
{ CAST_FAILURE_REASON_OUT_OF_RANGE, "Out Of Range" },
{ CAST_FAILURE_REASON_PACIFIED, "Pacified" },
{ CAST_FAILURE_REASON_POSSESSED, "Possessed" },
{ CAST_FAILURE_REASON_REAGENTS, "Reagents" },
{ CAST_FAILURE_REASON_REQUIRES_AREA, "Requires Area" },
{ CAST_FAILURE_REASON_REQUIRES_SPELL_FOCUS, "Requires Spell Focus" },
{ CAST_FAILURE_REASON_ROOTED, "Rooted" },
{ CAST_FAILURE_REASON_SILENCED, "Silenced" },
{ CAST_FAILURE_REASON_SPELL_IN_PROGRESS, "Spell In Progress" },
{ CAST_FAILURE_REASON_SPELL_LEARNED, "Spell Learned" },
{ CAST_FAILURE_REASON_SPELL_UNAVAILABLE, "Spell Unavailable" },
{ CAST_FAILURE_REASON_STUNNED, "Stunned" },
{ CAST_FAILURE_REASON_TARGETS_DEAD, "Targets Dead" },
{ CAST_FAILURE_REASON_TARGET_AFFECTING_COMBAT, "Target Affecting Combat" },
{ CAST_FAILURE_REASON_TARGET_AURASTATE, "Target Aurastate" },
{ CAST_FAILURE_REASON_TARGET_DUELING, "Target Dueling" },
{ CAST_FAILURE_REASON_TARGET_ENEMY, "Target Enemy" },
{ CAST_FAILURE_REASON_TARGET_ENRAGED, "Target Enraged" },
{ CAST_FAILURE_REASON_TARGET_FRIENDLY, "Target Friendly" },
{ CAST_FAILURE_REASON_TARGET_IN_COMBAT, "Target In Combat" },
{ CAST_FAILURE_REASON_TARGET_IS_PLAYER, "Target Is Player" },
{ CAST_FAILURE_REASON_TARGET_NOT_DEAD, "Target Not Dead" },
{ CAST_FAILURE_REASON_TARGET_NOT_IN_PARTY, "Target Not In Party" },
{ CAST_FAILURE_REASON_TARGET_NOT_LOOTED, "Target Not Looted" },
{ CAST_FAILURE_REASON_TARGET_NOT_PLAYER, "Target Not Player" },
{ CAST_FAILURE_REASON_TARGET_NO_POCKETS, "Target No Pockets" },
{ CAST_FAILURE_REASON_TARGET_NO_WEAPONS, "Target No Weapons" },
{ CAST_FAILURE_REASON_TARGET_UNSKINNABLE, "Target Unskinnable" },
{ CAST_FAILURE_REASON_THIRST_SATIATED, "Thirst Satiated" },
{ CAST_FAILURE_REASON_TOO_CLOSE, "Too Close" },
{ CAST_FAILURE_REASON_TOO_MANY_OF_ITEM, "Too Many Of Item" },
{ CAST_FAILURE_REASON_TOTEMS, "Totems" },
{ CAST_FAILURE_REASON_TRAINING_POINTS, "Training Points" },
{ CAST_FAILURE_REASON_TRY_AGAIN, "Try Again" },
{ CAST_FAILURE_REASON_UNIT_NOT_BEHIND, "Unit Not Behind" },
{ CAST_FAILURE_REASON_UNIT_NOT_INFRONT, "Unit Not Infront" },
{ CAST_FAILURE_REASON_WRONG_PET_FOOD, "Wrong Pet Food" },
{ CAST_FAILURE_REASON_NOT_WHILE_FATIGUED, "Not While Fatigued" },
{ CAST_FAILURE_REASON_TARGET_NOT_IN_INSTANCE, "Target Not In Instance" },
{ CAST_FAILURE_REASON_NOT_WHILE_TRADING, "Not While Trading" },
{ CAST_FAILURE_REASON_TARGET_NOT_IN_RAID, "Target Not In Raid" },
{ CAST_FAILURE_REASON_DISENCHANT_WHILE_LOOTING, "Disenchant While Looting" },
{ CAST_FAILURE_REASON_PROSPECT_WHILE_LOOTING, "Prospect While Looting" },
{ CAST_FAILURE_REASON_PROSPECT_NEED_MORE, "Prospect Need More" },
{ CAST_FAILURE_REASON_TARGET_FREEFORALL, "Target Freeforall" },
{ CAST_FAILURE_REASON_NO_EDIBLE_CORPSES, "No Edible Corpses" },
{ CAST_FAILURE_REASON_ONLY_BATTLEGROUNDS, "Only Battlegrounds" },
{ CAST_FAILURE_REASON_TARGET_NOT_GHOST, "Target Not Ghost" },
{ CAST_FAILURE_REASON_TOO_MANY_SKILLS, "Too Many Skills" },
{ CAST_FAILURE_REASON_TRANSFORM_UNUSABLE, "Transform Unusable" },
{ CAST_FAILURE_REASON_WRONG_WEATHER, "Wrong Weather" },
{ CAST_FAILURE_REASON_DAMAGE_IMMUNE, "Damage Immune" },
{ CAST_FAILURE_REASON_PREVENTED_BY_MECHANIC, "Prevented By Mechanic" },
{ CAST_FAILURE_REASON_PLAY_TIME, "Play Time" },
{ CAST_FAILURE_REASON_REPUTATION, "Reputation" },
{ CAST_FAILURE_REASON_MIN_SKILL, "Min Skill" },
{ CAST_FAILURE_REASON_UNKNOWN, "Unknown" },
{ 0, NULL }
};
typedef enum {
CHAT_NOTIFY_JOINED_NOTICE = 0x00,
CHAT_NOTIFY_LEFT_NOTICE = 0x01,
CHAT_NOTIFY_YOU_JOINED_NOTICE = 0x02,
CHAT_NOTIFY_YOU_LEFT_NOTICE = 0x03,
CHAT_NOTIFY_WRONG_PASSWORD_NOTICE = 0x04,
CHAT_NOTIFY_NOT_MEMBER_NOTICE = 0x05,
CHAT_NOTIFY_NOT_MODERATOR_NOTICE = 0x06,
CHAT_NOTIFY_PASSWORD_CHANGED_NOTICE = 0x07,
CHAT_NOTIFY_OWNER_CHANGED_NOTICE = 0x08,
CHAT_NOTIFY_PLAYER_NOT_FOUND_NOTICE = 0x09,
CHAT_NOTIFY_NOT_OWNER_NOTICE = 0x0A,
CHAT_NOTIFY_CHANNEL_OWNER_NOTICE = 0x0B,
CHAT_NOTIFY_MODE_CHANGE_NOTICE = 0x0C,
CHAT_NOTIFY_ANNOUNCEMENTS_ON_NOTICE = 0x0D,
CHAT_NOTIFY_ANNOUNCEMENTS_OFF_NOTICE = 0x0E,
CHAT_NOTIFY_MODERATION_ON_NOTICE = 0x0F,
CHAT_NOTIFY_MODERATION_OFF_NOTICE = 0x10,
CHAT_NOTIFY_MUTED_NOTICE = 0x11,
CHAT_NOTIFY_PLAYER_KICKED_NOTICE = 0x12,
CHAT_NOTIFY_BANNED_NOTICE = 0x13,
CHAT_NOTIFY_PLAYER_BANNED_NOTICE = 0x14,
CHAT_NOTIFY_PLAYER_UNBANNED_NOTICE = 0x15,
CHAT_NOTIFY_PLAYER_NOT_BANNED_NOTICE = 0x16,
CHAT_NOTIFY_PLAYER_ALREADY_MEMBER_NOTICE = 0x17,
CHAT_NOTIFY_INVITE_NOTICE = 0x18,
CHAT_NOTIFY_INVITE_WRONG_FACTION_NOTICE = 0x19,
CHAT_NOTIFY_WRONG_FACTION_NOTICE = 0x1A,
CHAT_NOTIFY_INVALID_NAME_NOTICE = 0x1B,
CHAT_NOTIFY_NOT_MODERATED_NOTICE = 0x1C,
CHAT_NOTIFY_PLAYER_INVITED_NOTICE = 0x1D,
CHAT_NOTIFY_PLAYER_INVITE_BANNED_NOTICE = 0x1E,
CHAT_NOTIFY_THROTTLED_NOTICE = 0x1F,
} e_chat_notify;
static const value_string e_chat_notify_strings[] = {
{ CHAT_NOTIFY_JOINED_NOTICE, "Joined Notice" },
{ CHAT_NOTIFY_LEFT_NOTICE, "Left Notice" },
{ CHAT_NOTIFY_YOU_JOINED_NOTICE, "You Joined Notice" },
{ CHAT_NOTIFY_YOU_LEFT_NOTICE, "You Left Notice" },
{ CHAT_NOTIFY_WRONG_PASSWORD_NOTICE, "Wrong Password Notice" },
{ CHAT_NOTIFY_NOT_MEMBER_NOTICE, "Not Member Notice" },
{ CHAT_NOTIFY_NOT_MODERATOR_NOTICE, "Not Moderator Notice" },
{ CHAT_NOTIFY_PASSWORD_CHANGED_NOTICE, "Password Changed Notice" },
{ CHAT_NOTIFY_OWNER_CHANGED_NOTICE, "Owner Changed Notice" },
{ CHAT_NOTIFY_PLAYER_NOT_FOUND_NOTICE, "Player Not Found Notice" },
{ CHAT_NOTIFY_NOT_OWNER_NOTICE, "Not Owner Notice" },
{ CHAT_NOTIFY_CHANNEL_OWNER_NOTICE, "Channel Owner Notice" },
{ CHAT_NOTIFY_MODE_CHANGE_NOTICE, "Mode Change Notice" },
{ CHAT_NOTIFY_ANNOUNCEMENTS_ON_NOTICE, "Announcements On Notice" },
{ CHAT_NOTIFY_ANNOUNCEMENTS_OFF_NOTICE, "Announcements Off Notice" },
{ CHAT_NOTIFY_MODERATION_ON_NOTICE, "Moderation On Notice" },
{ CHAT_NOTIFY_MODERATION_OFF_NOTICE, "Moderation Off Notice" },
{ CHAT_NOTIFY_MUTED_NOTICE, "Muted Notice" },
{ CHAT_NOTIFY_PLAYER_KICKED_NOTICE, "Player Kicked Notice" },
{ CHAT_NOTIFY_BANNED_NOTICE, "Banned Notice" },
{ CHAT_NOTIFY_PLAYER_BANNED_NOTICE, "Player Banned Notice" },
{ CHAT_NOTIFY_PLAYER_UNBANNED_NOTICE, "Player Unbanned Notice" },
{ CHAT_NOTIFY_PLAYER_NOT_BANNED_NOTICE, "Player Not Banned Notice" },
{ CHAT_NOTIFY_PLAYER_ALREADY_MEMBER_NOTICE, "Player Already Member Notice" },
{ CHAT_NOTIFY_INVITE_NOTICE, "Invite Notice" },
{ CHAT_NOTIFY_INVITE_WRONG_FACTION_NOTICE, "Invite Wrong Faction Notice" },
{ CHAT_NOTIFY_WRONG_FACTION_NOTICE, "Wrong Faction Notice" },
{ CHAT_NOTIFY_INVALID_NAME_NOTICE, "Invalid Name Notice" },
{ CHAT_NOTIFY_NOT_MODERATED_NOTICE, "Not Moderated Notice" },
{ CHAT_NOTIFY_PLAYER_INVITED_NOTICE, "Player Invited Notice" },
{ CHAT_NOTIFY_PLAYER_INVITE_BANNED_NOTICE, "Player Invite Banned Notice" },
{ CHAT_NOTIFY_THROTTLED_NOTICE, "Throttled Notice" },
{ 0, NULL }
};
typedef enum {
MOUNT_RESULT_INVALIDMOUNTEE = 0x0,
MOUNT_RESULT_TOOFARAWAY = 0x1,
MOUNT_RESULT_ALREADYMOUNTED = 0x2,
MOUNT_RESULT_NOTMOUNTABLE = 0x3,
MOUNT_RESULT_NOTYOURPET = 0x4,
MOUNT_RESULT_OTHER = 0x5,
MOUNT_RESULT_LOOTING = 0x6,
MOUNT_RESULT_RACECANTMOUNT = 0x7,
MOUNT_RESULT_SHAPESHIFTED = 0x8,
MOUNT_RESULT_FORCEDDISMOUNT = 0x9,
MOUNT_RESULT_OK = 0xA,
} e_mount_result;
static const value_string e_mount_result_strings[] = {
{ MOUNT_RESULT_INVALIDMOUNTEE, "Invalidmountee" },
{ MOUNT_RESULT_TOOFARAWAY, "Toofaraway" },
{ MOUNT_RESULT_ALREADYMOUNTED, "Alreadymounted" },
{ MOUNT_RESULT_NOTMOUNTABLE, "Notmountable" },
{ MOUNT_RESULT_NOTYOURPET, "Notyourpet" },
{ MOUNT_RESULT_OTHER, "Other" },
{ MOUNT_RESULT_LOOTING, "Looting" },
{ MOUNT_RESULT_RACECANTMOUNT, "Racecantmount" },
{ MOUNT_RESULT_SHAPESHIFTED, "Shapeshifted" },
{ MOUNT_RESULT_FORCEDDISMOUNT, "Forceddismount" },
{ MOUNT_RESULT_OK, "Ok" },
{ 0, NULL }
};
typedef enum {
DUEL_WINNER_REASON_WON = 0x0,
DUEL_WINNER_REASON_FLED = 0x1,
} e_duel_winner_reason;
static const value_string e_duel_winner_reason_strings[] = {
{ DUEL_WINNER_REASON_WON, "Won" },
{ DUEL_WINNER_REASON_FLED, "Fled" },
{ 0, NULL }
};
typedef enum {
ENVIRONMENTAL_DAMAGE_TYPE_EXHAUSTED = 0x0,
ENVIRONMENTAL_DAMAGE_TYPE_DROWNING = 0x1,
ENVIRONMENTAL_DAMAGE_TYPE_FALL = 0x2,
ENVIRONMENTAL_DAMAGE_TYPE_LAVA = 0x3,
ENVIRONMENTAL_DAMAGE_TYPE_SLIME = 0x4,
ENVIRONMENTAL_DAMAGE_TYPE_FIRE = 0x5,
} e_environmental_damage_type;
static const value_string e_environmental_damage_type_strings[] = {
{ ENVIRONMENTAL_DAMAGE_TYPE_EXHAUSTED, "Exhausted" },
{ ENVIRONMENTAL_DAMAGE_TYPE_DROWNING, "Drowning" },
{ ENVIRONMENTAL_DAMAGE_TYPE_FALL, "Fall" },
{ ENVIRONMENTAL_DAMAGE_TYPE_LAVA, "Lava" },
{ ENVIRONMENTAL_DAMAGE_TYPE_SLIME, "Slime" },
{ ENVIRONMENTAL_DAMAGE_TYPE_FIRE, "Fire" },
{ 0, NULL }
};
typedef enum {
FRIEND_RESULT_DB_ERROR = 0x00,
FRIEND_RESULT_LIST_FULL = 0x01,
FRIEND_RESULT_ONLINE = 0x02,
FRIEND_RESULT_OFFLINE = 0x03,
FRIEND_RESULT_NOT_FOUND = 0x04,
FRIEND_RESULT_REMOVED = 0x05,
FRIEND_RESULT_ADDED_ONLINE = 0x06,
FRIEND_RESULT_ADDED_OFFLINE = 0x07,
FRIEND_RESULT_ALREADY = 0x08,
FRIEND_RESULT_SELF = 0x09,
FRIEND_RESULT_ENEMY = 0x0A,
FRIEND_RESULT_IGNORE_FULL = 0x0B,
FRIEND_RESULT_IGNORE_SELF = 0x0C,
FRIEND_RESULT_IGNORE_NOT_FOUND = 0x0D,
FRIEND_RESULT_IGNORE_ALREADY = 0x0E,
FRIEND_RESULT_IGNORE_ADDED = 0x0F,
FRIEND_RESULT_IGNORE_REMOVED = 0x10,
FRIEND_RESULT_IGNORE_AMBIGUOUS = 0x11,
FRIEND_RESULT_MUTE_FULL = 0x12,
FRIEND_RESULT_MUTE_SELF = 0x13,
FRIEND_RESULT_MUTE_NOT_FOUND = 0x14,
FRIEND_RESULT_MUTE_ALREADY = 0x15,
FRIEND_RESULT_MUTE_ADDED = 0x16,
FRIEND_RESULT_MUTE_REMOVED = 0x17,
FRIEND_RESULT_MUTE_AMBIGUOUS = 0x18,
FRIEND_RESULT_UNKNOWN19 = 0x19,
FRIEND_RESULT_UNKNOWN20 = 0x1A,
} e_friend_result;
static const value_string e_friend_result_strings[] = {
{ FRIEND_RESULT_DB_ERROR, "Db Error" },
{ FRIEND_RESULT_LIST_FULL, "List Full" },
{ FRIEND_RESULT_ONLINE, "Online" },
{ FRIEND_RESULT_OFFLINE, "Offline" },
{ FRIEND_RESULT_NOT_FOUND, "Not Found" },
{ FRIEND_RESULT_REMOVED, "Removed" },
{ FRIEND_RESULT_ADDED_ONLINE, "Added Online" },
{ FRIEND_RESULT_ADDED_OFFLINE, "Added Offline" },
{ FRIEND_RESULT_ALREADY, "Already" },
{ FRIEND_RESULT_SELF, "Self" },
{ FRIEND_RESULT_ENEMY, "Enemy" },
{ FRIEND_RESULT_IGNORE_FULL, "Ignore Full" },
{ FRIEND_RESULT_IGNORE_SELF, "Ignore Self" },
{ FRIEND_RESULT_IGNORE_NOT_FOUND, "Ignore Not Found" },
{ FRIEND_RESULT_IGNORE_ALREADY, "Ignore Already" },
{ FRIEND_RESULT_IGNORE_ADDED, "Ignore Added" },
{ FRIEND_RESULT_IGNORE_REMOVED, "Ignore Removed" },
{ FRIEND_RESULT_IGNORE_AMBIGUOUS, "Ignore Ambiguous" },
{ FRIEND_RESULT_MUTE_FULL, "Mute Full" },
{ FRIEND_RESULT_MUTE_SELF, "Mute Self" },
{ FRIEND_RESULT_MUTE_NOT_FOUND, "Mute Not Found" },
{ FRIEND_RESULT_MUTE_ALREADY, "Mute Already" },
{ FRIEND_RESULT_MUTE_ADDED, "Mute Added" },
{ FRIEND_RESULT_MUTE_REMOVED, "Mute Removed" },
{ FRIEND_RESULT_MUTE_AMBIGUOUS, "Mute Ambiguous" },
{ FRIEND_RESULT_UNKNOWN19, "Unknown19" },
{ FRIEND_RESULT_UNKNOWN20, "Unknown20" },
{ 0, NULL }
};
typedef enum {
GM_TICKET_RESPONSE_NOT_EXIST = 0x0,
GM_TICKET_RESPONSE_ALREADY_EXIST = 0x1,
GM_TICKET_RESPONSE_CREATE_SUCCESS = 0x2,
GM_TICKET_RESPONSE_CREATE_ERROR = 0x3,
GM_TICKET_RESPONSE_UPDATE_SUCCESS = 0x4,
GM_TICKET_RESPONSE_UPDATE_ERROR = 0x5,
GM_TICKET_RESPONSE_TICKET_DELETED = 0x9,
} e_gm_ticket_response;
static const value_string e_gm_ticket_response_strings[] = {
{ GM_TICKET_RESPONSE_NOT_EXIST, "Not Exist" },
{ GM_TICKET_RESPONSE_ALREADY_EXIST, "Already Exist" },
{ GM_TICKET_RESPONSE_CREATE_SUCCESS, "Create Success" },
{ GM_TICKET_RESPONSE_CREATE_ERROR, "Create Error" },
{ GM_TICKET_RESPONSE_UPDATE_SUCCESS, "Update Success" },
{ GM_TICKET_RESPONSE_UPDATE_ERROR, "Update Error" },
{ GM_TICKET_RESPONSE_TICKET_DELETED, "Ticket Deleted" },
{ 0, NULL }
};
typedef enum {
GM_TICKET_STATUS_DB_ERROR = 0x0,
GM_TICKET_STATUS_HAS_TEXT = 0x6,
GM_TICKET_STATUS_DEFAULT = 0xA,
} e_gm_ticket_status;
static const value_string e_gm_ticket_status_strings[] = {
{ GM_TICKET_STATUS_DB_ERROR, "Db Error" },
{ GM_TICKET_STATUS_HAS_TEXT, "Has Text" },
{ GM_TICKET_STATUS_DEFAULT, "Default" },
{ 0, NULL }
};
typedef enum {
GM_TICKET_ESCALATION_STATUS_GMTICKET_ASSIGNEDTOGM_STATUS_NOT_ASSIGNED = 0x0,
GM_TICKET_ESCALATION_STATUS_GMTICKET_ASSIGNEDTOGM_STATUS_ASSIGNED = 0x1,
GM_TICKET_ESCALATION_STATUS_GMTICKET_ASSIGNEDTOGM_STATUS_ESCALATED = 0x2,
} e_gm_ticket_escalation_status;
static const value_string e_gm_ticket_escalation_status_strings[] = {
{ GM_TICKET_ESCALATION_STATUS_GMTICKET_ASSIGNEDTOGM_STATUS_NOT_ASSIGNED, "Gmticket Assignedtogm Status Not Assigned" },
{ GM_TICKET_ESCALATION_STATUS_GMTICKET_ASSIGNEDTOGM_STATUS_ASSIGNED, "Gmticket Assignedtogm Status Assigned" },
{ GM_TICKET_ESCALATION_STATUS_GMTICKET_ASSIGNEDTOGM_STATUS_ESCALATED, "Gmticket Assignedtogm Status Escalated" },
{ 0, NULL }
};
typedef enum {
GM_TICKET_QUEUE_STATUS_ENABLED = 0x1,
GM_TICKET_QUEUE_STATUS_DISABLED = 0x0,
} e_gm_ticket_queue_status;
static const value_string e_gm_ticket_queue_status_strings[] = {
{ GM_TICKET_QUEUE_STATUS_ENABLED, "Enabled" },
{ GM_TICKET_QUEUE_STATUS_DISABLED, "Disabled" },
{ 0, NULL }
};
typedef enum {
GM_TICKET_STATUS_RESPONSE_UPDATED = 0x1,
GM_TICKET_STATUS_RESPONSE_CLOSED = 0x2,
GM_TICKET_STATUS_RESPONSE_SURVEY = 0x3,
} e_gm_ticket_status_response;
static const value_string e_gm_ticket_status_response_strings[] = {
{ GM_TICKET_STATUS_RESPONSE_UPDATED, "Updated" },
{ GM_TICKET_STATUS_RESPONSE_CLOSED, "Closed" },
{ GM_TICKET_STATUS_RESPONSE_SURVEY, "Survey" },
{ 0, NULL }
};
typedef enum {
BG_TYPE_ID_NOT_ELIGIBLE = 0x00000000,
BG_TYPE_ID_QUEUED_FOR_AV = 0x00000001,
BG_TYPE_ID_QUEUED_FOR_WSG = 0x00000002,
BG_TYPE_ID_QUEUED_FOR_AB = 0x00000003,
BG_TYPE_ID_REMOVE_FROM_QUEUE = -0x0000002,
} e_bg_type_id;
static const value_string e_bg_type_id_strings[] = {
{ BG_TYPE_ID_NOT_ELIGIBLE, "Not Eligible" },
{ BG_TYPE_ID_QUEUED_FOR_AV, "Queued For Av" },
{ BG_TYPE_ID_QUEUED_FOR_WSG, "Queued For Wsg" },
{ BG_TYPE_ID_QUEUED_FOR_AB, "Queued For Ab" },
{ BG_TYPE_ID_REMOVE_FROM_QUEUE, "Remove From Queue" },
{ 0, NULL }
};
typedef enum {
GROUP_TYPE_NORMAL = 0x0,
GROUP_TYPE_RAID = 0x1,
} e_group_type;
static const value_string e_group_type_strings[] = {
{ GROUP_TYPE_NORMAL, "Normal" },
{ GROUP_TYPE_RAID, "Raid" },
{ 0, NULL }
};
typedef enum {
GUILD_COMMAND_CREATE = 0x00,
GUILD_COMMAND_INVITE = 0x01,
GUILD_COMMAND_QUIT = 0x03,
GUILD_COMMAND_FOUNDER = 0x0E,
GUILD_COMMAND_UNKNOWN19 = 0x13,
GUILD_COMMAND_UNKNOWN20 = 0x14,
} e_guild_command;
static const value_string e_guild_command_strings[] = {
{ GUILD_COMMAND_CREATE, "Create" },
{ GUILD_COMMAND_INVITE, "Invite" },
{ GUILD_COMMAND_QUIT, "Quit" },
{ GUILD_COMMAND_FOUNDER, "Founder" },
{ GUILD_COMMAND_UNKNOWN19, "Unknown19" },
{ GUILD_COMMAND_UNKNOWN20, "Unknown20" },
{ 0, NULL }
};
typedef enum {
GUILD_COMMAND_RESULT_PLAYER_NO_MORE_IN_GUILD = 0x0,
GUILD_COMMAND_RESULT_GUILD_INTERNAL = 0x1,
GUILD_COMMAND_RESULT_ALREADY_IN_GUILD = 0x2,
GUILD_COMMAND_RESULT_ALREADY_IN_GUILD_S = 0x3,
GUILD_COMMAND_RESULT_INVITED_TO_GUILD = 0x4,
GUILD_COMMAND_RESULT_ALREADY_INVITED_TO_GUILD_S = 0x5,
GUILD_COMMAND_RESULT_GUILD_NAME_INVALID = 0x6,
GUILD_COMMAND_RESULT_GUILD_NAME_EXISTS_S = 0x7,
GUILD_COMMAND_RESULT_GUILD_PERMISSIONS_OR_LEADER = 0x8,
GUILD_COMMAND_RESULT_GUILD_PLAYER_NOT_IN_GUILD = 0x9,
GUILD_COMMAND_RESULT_GUILD_PLAYER_NOT_IN_GUILD_S = 0xA,
GUILD_COMMAND_RESULT_GUILD_PLAYER_NOT_FOUND_S = 0xB,
GUILD_COMMAND_RESULT_GUILD_NOT_ALLIED = 0xC,
GUILD_COMMAND_RESULT_GUILD_RANK_TOO_HIGH_S = 0xD,
GUILD_COMMAND_RESULT_GUILD_RANK_TOO_LOW_S = 0xE,
} e_guild_command_result;
static const value_string e_guild_command_result_strings[] = {
{ GUILD_COMMAND_RESULT_PLAYER_NO_MORE_IN_GUILD, "Player No More In Guild" },
{ GUILD_COMMAND_RESULT_GUILD_INTERNAL, "Guild Internal" },
{ GUILD_COMMAND_RESULT_ALREADY_IN_GUILD, "Already In Guild" },
{ GUILD_COMMAND_RESULT_ALREADY_IN_GUILD_S, "Already In Guild S" },
{ GUILD_COMMAND_RESULT_INVITED_TO_GUILD, "Invited To Guild" },
{ GUILD_COMMAND_RESULT_ALREADY_INVITED_TO_GUILD_S, "Already Invited To Guild S" },
{ GUILD_COMMAND_RESULT_GUILD_NAME_INVALID, "Guild Name Invalid" },
{ GUILD_COMMAND_RESULT_GUILD_NAME_EXISTS_S, "Guild Name Exists S" },
{ GUILD_COMMAND_RESULT_GUILD_PERMISSIONS_OR_LEADER, "Guild Permissions Or Leader" },
{ GUILD_COMMAND_RESULT_GUILD_PLAYER_NOT_IN_GUILD, "Guild Player Not In Guild" },
{ GUILD_COMMAND_RESULT_GUILD_PLAYER_NOT_IN_GUILD_S, "Guild Player Not In Guild S" },
{ GUILD_COMMAND_RESULT_GUILD_PLAYER_NOT_FOUND_S, "Guild Player Not Found S" },
{ GUILD_COMMAND_RESULT_GUILD_NOT_ALLIED, "Guild Not Allied" },
{ GUILD_COMMAND_RESULT_GUILD_RANK_TOO_HIGH_S, "Guild Rank Too High S" },
{ GUILD_COMMAND_RESULT_GUILD_RANK_TOO_LOW_S, "Guild Rank Too Low S" },
{ 0, NULL }
};
typedef enum {
GUILD_EVENT_PROMOTION = 0x0,
GUILD_EVENT_DEMOTION = 0x1,
GUILD_EVENT_MOTD = 0x2,
GUILD_EVENT_JOINED = 0x3,
GUILD_EVENT_LEFT = 0x4,
GUILD_EVENT_REMOVED = 0x5,
GUILD_EVENT_LEADER_IS = 0x6,
GUILD_EVENT_LEADER_CHANGED = 0x7,
GUILD_EVENT_DISBANDED = 0x8,
GUILD_EVENT_TABARD_CHANGED = 0x9,
GUILD_EVENT_UNKNOWN10 = 0xA,
GUILD_EVENT_ROSTER_UPDATE = 0xB,
GUILD_EVENT_SIGNED_ON = 0xC,
GUILD_EVENT_SIGNED_OFF = 0xD,
} e_guild_event;
static const value_string e_guild_event_strings[] = {
{ GUILD_EVENT_PROMOTION, "Promotion" },
{ GUILD_EVENT_DEMOTION, "Demotion" },
{ GUILD_EVENT_MOTD, "Motd" },
{ GUILD_EVENT_JOINED, "Joined" },
{ GUILD_EVENT_LEFT, "Left" },
{ GUILD_EVENT_REMOVED, "Removed" },
{ GUILD_EVENT_LEADER_IS, "Leader Is" },
{ GUILD_EVENT_LEADER_CHANGED, "Leader Changed" },
{ GUILD_EVENT_DISBANDED, "Disbanded" },
{ GUILD_EVENT_TABARD_CHANGED, "Tabard Changed" },
{ GUILD_EVENT_UNKNOWN10, "Unknown10" },
{ GUILD_EVENT_ROSTER_UPDATE, "Roster Update" },
{ GUILD_EVENT_SIGNED_ON, "Signed On" },
{ GUILD_EVENT_SIGNED_OFF, "Signed Off" },
{ 0, NULL }
};
typedef enum {
INSTANCE_RESET_FAILED_REASON_GENERAL = 0x0,
INSTANCE_RESET_FAILED_REASON_OFFLINE = 0x1,
INSTANCE_RESET_FAILED_REASON_ZONING = 0x2,
INSTANCE_RESET_FAILED_REASON_SILENTLY = 0x3,
} e_instance_reset_failed_reason;
static const value_string e_instance_reset_failed_reason_strings[] = {
{ INSTANCE_RESET_FAILED_REASON_GENERAL, "General" },
{ INSTANCE_RESET_FAILED_REASON_OFFLINE, "Offline" },
{ INSTANCE_RESET_FAILED_REASON_ZONING, "Zoning" },
{ INSTANCE_RESET_FAILED_REASON_SILENTLY, "Silently" },
{ 0, NULL }
};
typedef enum {
INVENTORY_RESULT_OK = 0x00,
INVENTORY_RESULT_CANT_EQUIP_LEVEL_I = 0x01,
INVENTORY_RESULT_CANT_EQUIP_SKILL = 0x02,
INVENTORY_RESULT_ITEM_DOESNT_GO_TO_SLOT = 0x03,
INVENTORY_RESULT_BAG_FULL = 0x04,
INVENTORY_RESULT_NONEMPTY_BAG_OVER_OTHER_BAG = 0x05,
INVENTORY_RESULT_CANT_TRADE_EQUIP_BAGS = 0x06,
INVENTORY_RESULT_ONLY_AMMO_CAN_GO_HERE = 0x07,
INVENTORY_RESULT_NO_REQUIRED_PROFICIENCY = 0x08,
INVENTORY_RESULT_NO_EQUIPMENT_SLOT_AVAILABLE = 0x09,
INVENTORY_RESULT_YOU_CAN_NEVER_USE_THAT_ITEM = 0x0A,
INVENTORY_RESULT_YOU_CAN_NEVER_USE_THAT_ITEM2 = 0x0B,
INVENTORY_RESULT_NO_EQUIPMENT_SLOT_AVAILABLE2 = 0x0C,
INVENTORY_RESULT_CANT_EQUIP_WITH_TWOHANDED = 0x0D,
INVENTORY_RESULT_CANT_DUAL_WIELD = 0x0E,
INVENTORY_RESULT_ITEM_DOESNT_GO_INTO_BAG = 0x0F,
INVENTORY_RESULT_ITEM_DOESNT_GO_INTO_BAG2 = 0x10,
INVENTORY_RESULT_CANT_CARRY_MORE_OF_THIS = 0x11,
INVENTORY_RESULT_NO_EQUIPMENT_SLOT_AVAILABLE3 = 0x12,
INVENTORY_RESULT_ITEM_CANT_STACK = 0x13,
INVENTORY_RESULT_ITEM_CANT_BE_EQUIPPED = 0x14,
INVENTORY_RESULT_ITEMS_CANT_BE_SWAPPED = 0x15,
INVENTORY_RESULT_SLOT_IS_EMPTY = 0x16,
INVENTORY_RESULT_ITEM_NOT_FOUND = 0x17,
INVENTORY_RESULT_CANT_DROP_SOULBOUND = 0x18,
INVENTORY_RESULT_OUT_OF_RANGE = 0x19,
INVENTORY_RESULT_TRIED_TO_SPLIT_MORE_THAN_COUNT = 0x1A,
INVENTORY_RESULT_COULDNT_SPLIT_ITEMS = 0x1B,
INVENTORY_RESULT_MISSING_REAGENT = 0x1C,
INVENTORY_RESULT_NOT_ENOUGH_MONEY = 0x1D,
INVENTORY_RESULT_NOT_A_BAG = 0x1E,
INVENTORY_RESULT_CAN_ONLY_DO_WITH_EMPTY_BAGS = 0x1F,
INVENTORY_RESULT_DONT_OWN_THAT_ITEM = 0x20,
INVENTORY_RESULT_CAN_EQUIP_ONLY1_QUIVER = 0x21,
INVENTORY_RESULT_MUST_PURCHASE_THAT_BAG_SLOT = 0x22,
INVENTORY_RESULT_TOO_FAR_AWAY_FROM_BANK = 0x23,
INVENTORY_RESULT_ITEM_LOCKED = 0x24,
INVENTORY_RESULT_YOU_ARE_STUNNED = 0x25,
INVENTORY_RESULT_YOU_ARE_DEAD = 0x26,
INVENTORY_RESULT_CANT_DO_RIGHT_NOW = 0x27,
INVENTORY_RESULT_INT_BAG_ERROR = 0x28,
INVENTORY_RESULT_CAN_EQUIP_ONLY1_BOLT = 0x29,
INVENTORY_RESULT_CAN_EQUIP_ONLY1_AMMOPOUCH = 0x2A,
INVENTORY_RESULT_STACKABLE_CANT_BE_WRAPPED = 0x2B,
INVENTORY_RESULT_EQUIPPED_CANT_BE_WRAPPED = 0x2C,
INVENTORY_RESULT_WRAPPED_CANT_BE_WRAPPED = 0x2D,
INVENTORY_RESULT_BOUND_CANT_BE_WRAPPED = 0x2E,
INVENTORY_RESULT_UNIQUE_CANT_BE_WRAPPED = 0x2F,
INVENTORY_RESULT_BAGS_CANT_BE_WRAPPED = 0x30,
INVENTORY_RESULT_ALREADY_LOOTED = 0x31,
INVENTORY_RESULT_INVENTORY_FULL = 0x32,
INVENTORY_RESULT_BANK_FULL = 0x33,
INVENTORY_RESULT_ITEM_IS_CURRENTLY_SOLD_OUT = 0x34,
INVENTORY_RESULT_BAG_FULL3 = 0x35,
INVENTORY_RESULT_ITEM_NOT_FOUND2 = 0x36,
INVENTORY_RESULT_ITEM_CANT_STACK2 = 0x37,
INVENTORY_RESULT_BAG_FULL4 = 0x38,
INVENTORY_RESULT_ITEM_SOLD_OUT = 0x39,
INVENTORY_RESULT_OBJECT_IS_BUSY = 0x3A,
INVENTORY_RESULT_NONE = 0x3B,
INVENTORY_RESULT_NOT_IN_COMBAT = 0x3C,
INVENTORY_RESULT_NOT_WHILE_DISARMED = 0x3D,
INVENTORY_RESULT_BAG_FULL6 = 0x3E,
INVENTORY_RESULT_CANT_EQUIP_RANK = 0x3F,
INVENTORY_RESULT_CANT_EQUIP_REPUTATION = 0x40,
INVENTORY_RESULT_TOO_MANY_SPECIAL_BAGS = 0x41,
INVENTORY_RESULT_LOOT_CANT_LOOT_THAT_NOW = 0x42,
} e_inventory_result;
static const value_string e_inventory_result_strings[] = {
{ INVENTORY_RESULT_OK, "Ok" },
{ INVENTORY_RESULT_CANT_EQUIP_LEVEL_I, "Cant Equip Level I" },
{ INVENTORY_RESULT_CANT_EQUIP_SKILL, "Cant Equip Skill" },
{ INVENTORY_RESULT_ITEM_DOESNT_GO_TO_SLOT, "Item Doesnt Go To Slot" },
{ INVENTORY_RESULT_BAG_FULL, "Bag Full" },
{ INVENTORY_RESULT_NONEMPTY_BAG_OVER_OTHER_BAG, "Nonempty Bag Over Other Bag" },
{ INVENTORY_RESULT_CANT_TRADE_EQUIP_BAGS, "Cant Trade Equip Bags" },
{ INVENTORY_RESULT_ONLY_AMMO_CAN_GO_HERE, "Only Ammo Can Go Here" },
{ INVENTORY_RESULT_NO_REQUIRED_PROFICIENCY, "No Required Proficiency" },
{ INVENTORY_RESULT_NO_EQUIPMENT_SLOT_AVAILABLE, "No Equipment Slot Available" },
{ INVENTORY_RESULT_YOU_CAN_NEVER_USE_THAT_ITEM, "You Can Never Use That Item" },
{ INVENTORY_RESULT_YOU_CAN_NEVER_USE_THAT_ITEM2, "You Can Never Use That Item2" },
{ INVENTORY_RESULT_NO_EQUIPMENT_SLOT_AVAILABLE2, "No Equipment Slot Available2" },
{ INVENTORY_RESULT_CANT_EQUIP_WITH_TWOHANDED, "Cant Equip With Twohanded" },
{ INVENTORY_RESULT_CANT_DUAL_WIELD, "Cant Dual Wield" },
{ INVENTORY_RESULT_ITEM_DOESNT_GO_INTO_BAG, "Item Doesnt Go Into Bag" },
{ INVENTORY_RESULT_ITEM_DOESNT_GO_INTO_BAG2, "Item Doesnt Go Into Bag2" },
{ INVENTORY_RESULT_CANT_CARRY_MORE_OF_THIS, "Cant Carry More Of This" },
{ INVENTORY_RESULT_NO_EQUIPMENT_SLOT_AVAILABLE3, "No Equipment Slot Available3" },
{ INVENTORY_RESULT_ITEM_CANT_STACK, "Item Cant Stack" },
{ INVENTORY_RESULT_ITEM_CANT_BE_EQUIPPED, "Item Cant Be Equipped" },
{ INVENTORY_RESULT_ITEMS_CANT_BE_SWAPPED, "Items Cant Be Swapped" },
{ INVENTORY_RESULT_SLOT_IS_EMPTY, "Slot Is Empty" },
{ INVENTORY_RESULT_ITEM_NOT_FOUND, "Item Not Found" },
{ INVENTORY_RESULT_CANT_DROP_SOULBOUND, "Cant Drop Soulbound" },
{ INVENTORY_RESULT_OUT_OF_RANGE, "Out Of Range" },
{ INVENTORY_RESULT_TRIED_TO_SPLIT_MORE_THAN_COUNT, "Tried To Split More Than Count" },
{ INVENTORY_RESULT_COULDNT_SPLIT_ITEMS, "Couldnt Split Items" },
{ INVENTORY_RESULT_MISSING_REAGENT, "Missing Reagent" },
{ INVENTORY_RESULT_NOT_ENOUGH_MONEY, "Not Enough Money" },
{ INVENTORY_RESULT_NOT_A_BAG, "Not A Bag" },
{ INVENTORY_RESULT_CAN_ONLY_DO_WITH_EMPTY_BAGS, "Can Only Do With Empty Bags" },
{ INVENTORY_RESULT_DONT_OWN_THAT_ITEM, "Dont Own That Item" },
{ INVENTORY_RESULT_CAN_EQUIP_ONLY1_QUIVER, "Can Equip Only1 Quiver" },
{ INVENTORY_RESULT_MUST_PURCHASE_THAT_BAG_SLOT, "Must Purchase That Bag Slot" },
{ INVENTORY_RESULT_TOO_FAR_AWAY_FROM_BANK, "Too Far Away From Bank" },
{ INVENTORY_RESULT_ITEM_LOCKED, "Item Locked" },
{ INVENTORY_RESULT_YOU_ARE_STUNNED, "You Are Stunned" },
{ INVENTORY_RESULT_YOU_ARE_DEAD, "You Are Dead" },
{ INVENTORY_RESULT_CANT_DO_RIGHT_NOW, "Cant Do Right Now" },
{ INVENTORY_RESULT_INT_BAG_ERROR, "Int Bag Error" },
{ INVENTORY_RESULT_CAN_EQUIP_ONLY1_BOLT, "Can Equip Only1 Bolt" },
{ INVENTORY_RESULT_CAN_EQUIP_ONLY1_AMMOPOUCH, "Can Equip Only1 Ammopouch" },
{ INVENTORY_RESULT_STACKABLE_CANT_BE_WRAPPED, "Stackable Cant Be Wrapped" },
{ INVENTORY_RESULT_EQUIPPED_CANT_BE_WRAPPED, "Equipped Cant Be Wrapped" },
{ INVENTORY_RESULT_WRAPPED_CANT_BE_WRAPPED, "Wrapped Cant Be Wrapped" },
{ INVENTORY_RESULT_BOUND_CANT_BE_WRAPPED, "Bound Cant Be Wrapped" },
{ INVENTORY_RESULT_UNIQUE_CANT_BE_WRAPPED, "Unique Cant Be Wrapped" },
{ INVENTORY_RESULT_BAGS_CANT_BE_WRAPPED, "Bags Cant Be Wrapped" },
{ INVENTORY_RESULT_ALREADY_LOOTED, "Already Looted" },
{ INVENTORY_RESULT_INVENTORY_FULL, "Inventory Full" },
{ INVENTORY_RESULT_BANK_FULL, "Bank Full" },
{ INVENTORY_RESULT_ITEM_IS_CURRENTLY_SOLD_OUT, "Item Is Currently Sold Out" },
{ INVENTORY_RESULT_BAG_FULL3, "Bag Full3" },
{ INVENTORY_RESULT_ITEM_NOT_FOUND2, "Item Not Found2" },
{ INVENTORY_RESULT_ITEM_CANT_STACK2, "Item Cant Stack2" },
{ INVENTORY_RESULT_BAG_FULL4, "Bag Full4" },
{ INVENTORY_RESULT_ITEM_SOLD_OUT, "Item Sold Out" },
{ INVENTORY_RESULT_OBJECT_IS_BUSY, "Object Is Busy" },
{ INVENTORY_RESULT_NONE, "None" },
{ INVENTORY_RESULT_NOT_IN_COMBAT, "Not In Combat" },
{ INVENTORY_RESULT_NOT_WHILE_DISARMED, "Not While Disarmed" },
{ INVENTORY_RESULT_BAG_FULL6, "Bag Full6" },
{ INVENTORY_RESULT_CANT_EQUIP_RANK, "Cant Equip Rank" },
{ INVENTORY_RESULT_CANT_EQUIP_REPUTATION, "Cant Equip Reputation" },
{ INVENTORY_RESULT_TOO_MANY_SPECIAL_BAGS, "Too Many Special Bags" },
{ INVENTORY_RESULT_LOOT_CANT_LOOT_THAT_NOW, "Loot Cant Loot That Now" },
{ 0, NULL }
};
typedef enum {
NEW_ITEM_SOURCE_LOOTED = 0x0,
NEW_ITEM_SOURCE_FROM_NPC = 0x1,
} e_new_item_source;
static const value_string e_new_item_source_strings[] = {
{ NEW_ITEM_SOURCE_LOOTED, "Looted" },
{ NEW_ITEM_SOURCE_FROM_NPC, "From Npc" },
{ 0, NULL }
};
typedef enum {
NEW_ITEM_CREATION_TYPE_RECEIVED = 0x0,
NEW_ITEM_CREATION_TYPE_CREATED = 0x1,
} e_new_item_creation_type;
static const value_string e_new_item_creation_type_strings[] = {
{ NEW_ITEM_CREATION_TYPE_RECEIVED, "Received" },
{ NEW_ITEM_CREATION_TYPE_CREATED, "Created" },
{ 0, NULL }
};
typedef enum {
NEW_ITEM_CHAT_ALERT_DO_NOT_SHOW = 0x0,
NEW_ITEM_CHAT_ALERT_SHOW = 0x1,
} e_new_item_chat_alert;
static const value_string e_new_item_chat_alert_strings[] = {
{ NEW_ITEM_CHAT_ALERT_DO_NOT_SHOW, "Do Not Show" },
{ NEW_ITEM_CHAT_ALERT_SHOW, "Show" },
{ 0, NULL }
};
typedef enum {
ITEM_CLASS_CONSUMABLE = 0x0,
ITEM_CLASS_CONTAINER = 0x1,
ITEM_CLASS_WEAPON = 0x2,
ITEM_CLASS_RESERVED_1 = 0x3,
ITEM_CLASS_ARMOR = 0x4,
ITEM_CLASS_REAGENT = 0x5,
ITEM_CLASS_PROJECTILE = 0x6,
ITEM_CLASS_TRADE_GOODS = 0x7,
ITEM_CLASS_RESERVED_2 = 0x8,
ITEM_CLASS_RECIPE = 0x9,
ITEM_CLASS_RESERVED_3 = 0xA,
ITEM_CLASS_QUIVER = 0xB,
ITEM_CLASS_QUEST = 0xC,
ITEM_CLASS_KEY = 0xD,
ITEM_CLASS_RESERVED_4 = 0xE,
ITEM_CLASS_MISC = 0xF,
} e_item_class;
static const value_string e_item_class_strings[] = {
{ ITEM_CLASS_CONSUMABLE, "Consumable" },
{ ITEM_CLASS_CONTAINER, "Container" },
{ ITEM_CLASS_WEAPON, "Weapon" },
{ ITEM_CLASS_RESERVED_1, "Reserved 1" },
{ ITEM_CLASS_ARMOR, "Armor" },
{ ITEM_CLASS_REAGENT, "Reagent" },
{ ITEM_CLASS_PROJECTILE, "Projectile" },
{ ITEM_CLASS_TRADE_GOODS, "Trade Goods" },
{ ITEM_CLASS_RESERVED_2, "Reserved 2" },
{ ITEM_CLASS_RECIPE, "Recipe" },
{ ITEM_CLASS_RESERVED_3, "Reserved 3" },
{ ITEM_CLASS_QUIVER, "Quiver" },
{ ITEM_CLASS_QUEST, "Quest" },
{ ITEM_CLASS_KEY, "Key" },
{ ITEM_CLASS_RESERVED_4, "Reserved 4" },
{ ITEM_CLASS_MISC, "Misc" },
{ 0, NULL }
};
typedef enum {
LOGOUT_RESULT_SUCCESS = 0x0,
LOGOUT_RESULT_FAILURE_IN_COMBAT = 0x1,
LOGOUT_RESULT_FAILURE_FROZEN_BY_GM = 0x2,
LOGOUT_RESULT_FAILURE_JUMPING_OR_FALLING = 0x3,
} e_logout_result;
static const value_string e_logout_result_strings[] = {
{ LOGOUT_RESULT_SUCCESS, "Success" },
{ LOGOUT_RESULT_FAILURE_IN_COMBAT, "Failure In Combat" },
{ LOGOUT_RESULT_FAILURE_FROZEN_BY_GM, "Failure Frozen By Gm" },
{ LOGOUT_RESULT_FAILURE_JUMPING_OR_FALLING, "Failure Jumping Or Falling" },
{ 0, NULL }
};
typedef enum {
LOGOUT_SPEED_DELAYED = 0x0,
LOGOUT_SPEED_INSTANT = 0x1,
} e_logout_speed;
static const value_string e_logout_speed_strings[] = {
{ LOGOUT_SPEED_DELAYED, "Delayed" },
{ LOGOUT_SPEED_INSTANT, "Instant" },
{ 0, NULL }
};
typedef enum {
EXPERIENCE_AWARD_TYPE_KILL = 0x0,
EXPERIENCE_AWARD_TYPE_NON_KILL = 0x1,
} e_experience_award_type;
static const value_string e_experience_award_type_strings[] = {
{ EXPERIENCE_AWARD_TYPE_KILL, "Kill" },
{ EXPERIENCE_AWARD_TYPE_NON_KILL, "Non Kill" },
{ 0, NULL }
};
typedef enum {
LOOT_METHOD_CORPSE = 0x01,
LOOT_METHOD_PICKPOCKETING = 0x02,
LOOT_METHOD_FISHING = 0x03,
LOOT_METHOD_DISENCHANTING = 0x04,
LOOT_METHOD_SKINNING = 0x06,
LOOT_METHOD_FISHINGHOLE = 0x14,
LOOT_METHOD_FISHING_FAIL = 0x15,
LOOT_METHOD_INSIGNIA = 0x16,
} e_loot_method;
static const value_string e_loot_method_strings[] = {
{ LOOT_METHOD_CORPSE, "Corpse" },
{ LOOT_METHOD_PICKPOCKETING, "Pickpocketing" },
{ LOOT_METHOD_FISHING, "Fishing" },
{ LOOT_METHOD_DISENCHANTING, "Disenchanting" },
{ LOOT_METHOD_SKINNING, "Skinning" },
{ LOOT_METHOD_FISHINGHOLE, "Fishinghole" },
{ LOOT_METHOD_FISHING_FAIL, "Fishing Fail" },
{ LOOT_METHOD_INSIGNIA, "Insignia" },
{ 0, NULL }
};
typedef enum {
MEETING_STONE_FAILURE_MEETINGSTONE_FAIL_PARTYLEADER = 0x1,
MEETING_STONE_FAILURE_MEETINGSTONE_FAIL_FULL_GROUP = 0x2,
MEETING_STONE_FAILURE_MEETINGSTONE_FAIL_RAID_GROUP = 0x3,
} e_meeting_stone_failure;
static const value_string e_meeting_stone_failure_strings[] = {
{ MEETING_STONE_FAILURE_MEETINGSTONE_FAIL_PARTYLEADER, "Meetingstone Fail Partyleader" },
{ MEETING_STONE_FAILURE_MEETINGSTONE_FAIL_FULL_GROUP, "Meetingstone Fail Full Group" },
{ MEETING_STONE_FAILURE_MEETINGSTONE_FAIL_RAID_GROUP, "Meetingstone Fail Raid Group" },
{ 0, NULL }
};
typedef enum {
MEETING_STONE_STATUS_LEAVE_QUEUE = 0x0,
MEETING_STONE_STATUS_JOINED_QUEUE = 0x1,
MEETING_STONE_STATUS_PARTY_MEMBER_LEFT_LFG = 0x2,
MEETING_STONE_STATUS_PARTY_MEMBER_REMOVED_PARTY_REMOVED = 0x3,
MEETING_STONE_STATUS_LOOKING_FOR_NEW_PARTY_IN_QUEUE = 0x4,
MEETING_STONE_STATUS_NONE = 0x5,
} e_meeting_stone_status;
static const value_string e_meeting_stone_status_strings[] = {
{ MEETING_STONE_STATUS_LEAVE_QUEUE, "Leave Queue" },
{ MEETING_STONE_STATUS_JOINED_QUEUE, "Joined Queue" },
{ MEETING_STONE_STATUS_PARTY_MEMBER_LEFT_LFG, "Party Member Left Lfg" },
{ MEETING_STONE_STATUS_PARTY_MEMBER_REMOVED_PARTY_REMOVED, "Party Member Removed Party Removed" },
{ MEETING_STONE_STATUS_LOOKING_FOR_NEW_PARTY_IN_QUEUE, "Looking For New Party In Queue" },
{ MEETING_STONE_STATUS_NONE, "None" },
{ 0, NULL }
};
typedef enum {
PLAYER_CHAT_TAG_NONE = 0x0,
PLAYER_CHAT_TAG_AFK = 0x1,
PLAYER_CHAT_TAG_DND = 0x2,
PLAYER_CHAT_TAG_GM = 0x3,
} e_player_chat_tag;
static const value_string e_player_chat_tag_strings[] = {
{ PLAYER_CHAT_TAG_NONE, "None" },
{ PLAYER_CHAT_TAG_AFK, "Afk" },
{ PLAYER_CHAT_TAG_DND, "Dnd" },
{ PLAYER_CHAT_TAG_GM, "Gm" },
{ 0, NULL }
};
typedef enum {
MONSTER_MOVE_TYPE_NORMAL = 0x0,
MONSTER_MOVE_TYPE_STOP = 0x1,
MONSTER_MOVE_TYPE_FACING_SPOT = 0x2,
MONSTER_MOVE_TYPE_FACING_TARGET = 0x3,
MONSTER_MOVE_TYPE_FACING_ANGLE = 0x4,
} e_monster_move_type;
static const value_string e_monster_move_type_strings[] = {
{ MONSTER_MOVE_TYPE_NORMAL, "Normal" },
{ MONSTER_MOVE_TYPE_STOP, "Stop" },
{ MONSTER_MOVE_TYPE_FACING_SPOT, "Facing Spot" },
{ MONSTER_MOVE_TYPE_FACING_TARGET, "Facing Target" },
{ MONSTER_MOVE_TYPE_FACING_ANGLE, "Facing Angle" },
{ 0, NULL }
};
typedef enum {
PARTY_OPERATION_INVITE = 0x0,
PARTY_OPERATION_LEAVE = 0x2,
} e_party_operation;
static const value_string e_party_operation_strings[] = {
{ PARTY_OPERATION_INVITE, "Invite" },
{ PARTY_OPERATION_LEAVE, "Leave" },
{ 0, NULL }
};
typedef enum {
PARTY_RESULT_SUCCESS = 0x0,
PARTY_RESULT_BAD_PLAYER_NAME = 0x1,
PARTY_RESULT_TARGET_NOT_IN_GROUP = 0x2,
PARTY_RESULT_GROUP_FULL = 0x3,
PARTY_RESULT_ALREADY_IN_GROUP = 0x4,
PARTY_RESULT_NOT_IN_GROUP = 0x5,
PARTY_RESULT_NOT_LEADER = 0x6,
PARTY_RESULT_PLAYER_WRONG_FACTION = 0x7,
PARTY_RESULT_IGNORING_YOU = 0x8,
} e_party_result;
static const value_string e_party_result_strings[] = {
{ PARTY_RESULT_SUCCESS, "Success" },
{ PARTY_RESULT_BAD_PLAYER_NAME, "Bad Player Name" },
{ PARTY_RESULT_TARGET_NOT_IN_GROUP, "Target Not In Group" },
{ PARTY_RESULT_GROUP_FULL, "Group Full" },
{ PARTY_RESULT_ALREADY_IN_GROUP, "Already In Group" },
{ PARTY_RESULT_NOT_IN_GROUP, "Not In Group" },
{ PARTY_RESULT_NOT_LEADER, "Not Leader" },
{ PARTY_RESULT_PLAYER_WRONG_FACTION, "Player Wrong Faction" },
{ PARTY_RESULT_IGNORING_YOU, "Ignoring You" },
{ 0, NULL }
};
typedef enum {
POWER_MANA = 0x00,
POWER_RAGE = 0x01,
POWER_FOCUS = 0x02,
POWER_ENERGY = 0x03,
POWER_HAPPINESS = 0x04,
POWER_HEALTH = 0xFE,
} e_power;
static const value_string e_power_strings[] = {
{ POWER_MANA, "Mana" },
{ POWER_RAGE, "Rage" },
{ POWER_FOCUS, "Focus" },
{ POWER_ENERGY, "Energy" },
{ POWER_HAPPINESS, "Happiness" },
{ POWER_HEALTH, "Health" },
{ 0, NULL }
};
typedef enum {
TIMER_TYPE_FATIGUE = 0x0,
TIMER_TYPE_BREATH = 0x1,
TIMER_TYPE_FEIGNDEATH = 0x2,
TIMER_TYPE_ENVIRONMENTAL = 0x3,
} e_timer_type;
static const value_string e_timer_type_strings[] = {
{ TIMER_TYPE_FATIGUE, "Fatigue" },
{ TIMER_TYPE_BREATH, "Breath" },
{ TIMER_TYPE_FEIGNDEATH, "Feigndeath" },
{ TIMER_TYPE_ENVIRONMENTAL, "Environmental" },
{ 0, NULL }
};
typedef enum {
PETITION_RESULT_OK = 0x0,
PETITION_RESULT_ALREADY_SIGNED = 0x1,
PETITION_RESULT_ALREADY_IN_GUILD = 0x2,
PETITION_RESULT_CANT_SIGN_OWN = 0x3,
PETITION_RESULT_NEED_MORE = 0x4,
PETITION_RESULT_NOT_SERVER = 0x5,
} e_petition_result;
static const value_string e_petition_result_strings[] = {
{ PETITION_RESULT_OK, "Ok" },
{ PETITION_RESULT_ALREADY_SIGNED, "Already Signed" },
{ PETITION_RESULT_ALREADY_IN_GUILD, "Already In Guild" },
{ PETITION_RESULT_CANT_SIGN_OWN, "Cant Sign Own" },
{ PETITION_RESULT_NEED_MORE, "Need More" },
{ PETITION_RESULT_NOT_SERVER, "Not Server" },
{ 0, NULL }
};
typedef enum {
PET_FEEDBACK_PET_DEAD = 0x1,
PET_FEEDBACK_NOTHING_TO_EAT = 0x2,
PET_FEEDBACK_CANT_ATTACK_TARGET = 0x3,
PET_FEEDBACK_NO_PATH_TO = 0x4,
} e_pet_feedback;
static const value_string e_pet_feedback_strings[] = {
{ PET_FEEDBACK_PET_DEAD, "Pet Dead" },
{ PET_FEEDBACK_NOTHING_TO_EAT, "Nothing To Eat" },
{ PET_FEEDBACK_CANT_ATTACK_TARGET, "Cant Attack Target" },
{ PET_FEEDBACK_NO_PATH_TO, "No Path To" },
{ 0, NULL }
};
typedef enum {
PET_TALK_REASON_SPECIAL_SPELL = 0x0,
PET_TALK_REASON_ATTACK = 0x1,
} e_pet_talk_reason;
static const value_string e_pet_talk_reason_strings[] = {
{ PET_TALK_REASON_SPECIAL_SPELL, "Special Spell" },
{ PET_TALK_REASON_ATTACK, "Attack" },
{ 0, NULL }
};
typedef enum {
SPELL_CAST_RESULT_AFFECTING_COMBAT = 0x00,
SPELL_CAST_RESULT_ALREADY_AT_FULL_HEALTH = 0x01,
SPELL_CAST_RESULT_ALREADY_AT_FULL_MANA = 0x02,
SPELL_CAST_RESULT_ALREADY_BEING_TAMED = 0x03,
SPELL_CAST_RESULT_ALREADY_HAVE_CHARM = 0x04,
SPELL_CAST_RESULT_ALREADY_HAVE_SUMMON = 0x05,
SPELL_CAST_RESULT_ALREADY_OPEN = 0x06,
SPELL_CAST_RESULT_MORE_POWERFUL_SPELL_ACTIVE = 0x07,
SPELL_CAST_RESULT_BAD_IMPLICIT_TARGETS = 0x09,
SPELL_CAST_RESULT_BAD_TARGETS = 0x0A,
SPELL_CAST_RESULT_CANT_BE_CHARMED = 0x0B,
SPELL_CAST_RESULT_CANT_BE_DISENCHANTED = 0x0C,
SPELL_CAST_RESULT_CANT_BE_PROSPECTED = 0x0D,
SPELL_CAST_RESULT_CANT_CAST_ON_TAPPED = 0x0E,
SPELL_CAST_RESULT_CANT_DUEL_WHILE_INVISIBLE = 0x0F,
SPELL_CAST_RESULT_CANT_DUEL_WHILE_STEALTHED = 0x10,
SPELL_CAST_RESULT_CANT_TOO_CLOSE_TO_ENEMY = 0x11,
SPELL_CAST_RESULT_CANT_DO_THAT_YET = 0x12,
SPELL_CAST_RESULT_CASTER_DEAD = 0x13,
SPELL_CAST_RESULT_CHARMED = 0x14,
SPELL_CAST_RESULT_CHEST_IN_USE = 0x15,
SPELL_CAST_RESULT_CONFUSED = 0x16,
SPELL_CAST_RESULT_DONT_REPORT = 0x17,
SPELL_CAST_RESULT_EQUIPPED_ITEM = 0x18,
SPELL_CAST_RESULT_EQUIPPED_ITEM_CLASS = 0x19,
SPELL_CAST_RESULT_EQUIPPED_ITEM_CLASS_MAINHAND = 0x1A,
SPELL_CAST_RESULT_EQUIPPED_ITEM_CLASS_OFFHAND = 0x1B,
SPELL_CAST_RESULT_ERROR = 0x1C,
SPELL_CAST_RESULT_FIZZLE = 0x1D,
SPELL_CAST_RESULT_FLEEING = 0x1E,
SPELL_CAST_RESULT_FOOD_LOWLEVEL = 0x1F,
SPELL_CAST_RESULT_HIGHLEVEL = 0x20,
SPELL_CAST_RESULT_IMMUNE = 0x22,
SPELL_CAST_RESULT_INTERRUPTED = 0x23,
SPELL_CAST_RESULT_INTERRUPTED_COMBAT = 0x24,
SPELL_CAST_RESULT_ITEM_ALREADY_ENCHANTED = 0x25,
SPELL_CAST_RESULT_ITEM_GONE = 0x26,
SPELL_CAST_RESULT_ENCHANT_NOT_EXISTING_ITEM = 0x27,
SPELL_CAST_RESULT_ITEM_NOT_READY = 0x28,
SPELL_CAST_RESULT_LEVEL_REQUIREMENT = 0x29,
SPELL_CAST_RESULT_LINE_OF_SIGHT = 0x2A,
SPELL_CAST_RESULT_LOWLEVEL = 0x2B,
SPELL_CAST_RESULT_SKILL_NOT_HIGH_ENOUGH = 0x2C,
SPELL_CAST_RESULT_MAINHAND_EMPTY = 0x2D,
SPELL_CAST_RESULT_MOVING = 0x2E,
SPELL_CAST_RESULT_NEED_AMMO = 0x2F,
SPELL_CAST_RESULT_NEED_REQUIRES_SOMETHING = 0x30,
SPELL_CAST_RESULT_NEED_EXOTIC_AMMO = 0x31,
SPELL_CAST_RESULT_NOPATH = 0x32,
SPELL_CAST_RESULT_NOT_BEHIND = 0x33,
SPELL_CAST_RESULT_NOT_FISHABLE = 0x34,
SPELL_CAST_RESULT_NOT_HERE = 0x35,
SPELL_CAST_RESULT_NOT_INFRONT = 0x36,
SPELL_CAST_RESULT_NOT_IN_CONTROL = 0x37,
SPELL_CAST_RESULT_NOT_KNOWN = 0x38,
SPELL_CAST_RESULT_NOT_MOUNTED = 0x39,
SPELL_CAST_RESULT_NOT_ON_TAXI = 0x3A,
SPELL_CAST_RESULT_NOT_ON_TRANSPORT = 0x3B,
SPELL_CAST_RESULT_NOT_READY = 0x3C,
SPELL_CAST_RESULT_NOT_SHAPESHIFT = 0x3D,
SPELL_CAST_RESULT_NOT_STANDING = 0x3E,
SPELL_CAST_RESULT_NOT_TRADEABLE = 0x3F,
SPELL_CAST_RESULT_NOT_TRADING = 0x40,
SPELL_CAST_RESULT_NOT_UNSHEATHED = 0x41,
SPELL_CAST_RESULT_NOT_WHILE_GHOST = 0x42,
SPELL_CAST_RESULT_NO_AMMO = 0x43,
SPELL_CAST_RESULT_NO_CHARGES_REMAIN = 0x44,
SPELL_CAST_RESULT_NO_CHAMPION = 0x45,
SPELL_CAST_RESULT_NO_COMBO_POINTS = 0x46,
SPELL_CAST_RESULT_NO_DUELING = 0x47,
SPELL_CAST_RESULT_NO_ENDURANCE = 0x48,
SPELL_CAST_RESULT_NO_FISH = 0x49,
SPELL_CAST_RESULT_NO_ITEMS_WHILE_SHAPESHIFTED = 0x4A,
SPELL_CAST_RESULT_NO_MOUNTS_ALLOWED = 0x4B,
SPELL_CAST_RESULT_NO_PET = 0x4C,
SPELL_CAST_RESULT_NO_POWER = 0x4D,
SPELL_CAST_RESULT_NOTHING_TO_DISPEL = 0x4E,
SPELL_CAST_RESULT_NOTHING_TO_STEAL = 0x4F,
SPELL_CAST_RESULT_ONLY_ABOVEWATER = 0x50,
SPELL_CAST_RESULT_ONLY_DAYTIME = 0x51,
SPELL_CAST_RESULT_ONLY_INDOORS = 0x52,
SPELL_CAST_RESULT_ONLY_MOUNTED = 0x53,
SPELL_CAST_RESULT_ONLY_NIGHTTIME = 0x54,
SPELL_CAST_RESULT_ONLY_OUTDOORS = 0x55,
SPELL_CAST_RESULT_ONLY_SHAPESHIFT = 0x56,
SPELL_CAST_RESULT_ONLY_STEALTHED = 0x57,
SPELL_CAST_RESULT_ONLY_UNDERWATER = 0x58,
SPELL_CAST_RESULT_OUT_OF_RANGE = 0x59,
SPELL_CAST_RESULT_PACIFIED = 0x5A,
SPELL_CAST_RESULT_POSSESSED = 0x5B,
SPELL_CAST_RESULT_REQUIRES_AREA = 0x5D,
SPELL_CAST_RESULT_REQUIRES_SPELL_FOCUS = 0x5E,
SPELL_CAST_RESULT_ROOTED = 0x5F,
SPELL_CAST_RESULT_SILENCED = 0x60,
SPELL_CAST_RESULT_SPELL_IN_PROGRESS = 0x61,
SPELL_CAST_RESULT_SPELL_LEARNED = 0x62,
SPELL_CAST_RESULT_SPELL_UNAVAILABLE = 0x63,
SPELL_CAST_RESULT_STUNNED = 0x64,
SPELL_CAST_RESULT_TARGETS_DEAD = 0x65,
SPELL_CAST_RESULT_TARGET_AFFECTING_COMBAT = 0x66,
SPELL_CAST_RESULT_TARGET_AURASTATE = 0x67,
SPELL_CAST_RESULT_TARGET_DUELING = 0x68,
SPELL_CAST_RESULT_TARGET_ENEMY = 0x69,
SPELL_CAST_RESULT_TARGET_ENRAGED = 0x6A,
SPELL_CAST_RESULT_TARGET_FRIENDLY = 0x6B,
SPELL_CAST_RESULT_TARGET_IN_COMBAT = 0x6C,
SPELL_CAST_RESULT_TARGET_IS_PLAYER = 0x6D,
SPELL_CAST_RESULT_TARGET_NOT_DEAD = 0x6E,
SPELL_CAST_RESULT_TARGET_NOT_IN_PARTY = 0x6F,
SPELL_CAST_RESULT_TARGET_NOT_LOOTED = 0x70,
SPELL_CAST_RESULT_TARGET_NOT_PLAYER = 0x71,
SPELL_CAST_RESULT_TARGET_NO_POCKETS = 0x72,
SPELL_CAST_RESULT_TARGET_NO_WEAPONS = 0x73,
SPELL_CAST_RESULT_TARGET_UNSKINNABLE = 0x74,
SPELL_CAST_RESULT_THIRST_SATIATED = 0x75,
SPELL_CAST_RESULT_TOO_CLOSE = 0x76,
SPELL_CAST_RESULT_TOO_MANY_OF_ITEM = 0x77,
SPELL_CAST_RESULT_TRAINING_POINTS = 0x79,
SPELL_CAST_RESULT_TRY_AGAIN = 0x7A,
SPELL_CAST_RESULT_UNIT_NOT_BEHIND = 0x7B,
SPELL_CAST_RESULT_UNIT_NOT_INFRONT = 0x7C,
SPELL_CAST_RESULT_WRONG_PET_FOOD = 0x7D,
SPELL_CAST_RESULT_NOT_WHILE_FATIGUED = 0x7E,
SPELL_CAST_RESULT_TARGET_NOT_IN_INSTANCE = 0x7F,
SPELL_CAST_RESULT_NOT_WHILE_TRADING = 0x80,
SPELL_CAST_RESULT_TARGET_NOT_IN_RAID = 0x81,
SPELL_CAST_RESULT_DISENCHANT_WHILE_LOOTING = 0x82,
SPELL_CAST_RESULT_PROSPECT_WHILE_LOOTING = 0x83,
SPELL_CAST_RESULT_TARGET_FREEFORALL = 0x85,
SPELL_CAST_RESULT_NO_EDIBLE_CORPSES = 0x86,
SPELL_CAST_RESULT_ONLY_BATTLEGROUNDS = 0x87,
SPELL_CAST_RESULT_TARGET_NOT_GHOST = 0x88,
SPELL_CAST_RESULT_TOO_MANY_SKILLS = 0x89,
SPELL_CAST_RESULT_CANT_USE_NEW_ITEM = 0x8A,
SPELL_CAST_RESULT_WRONG_WEATHER = 0x8B,
SPELL_CAST_RESULT_DAMAGE_IMMUNE = 0x8C,
SPELL_CAST_RESULT_PREVENTED_BY_MECHANIC = 0x8D,
SPELL_CAST_RESULT_PLAY_TIME = 0x8E,
SPELL_CAST_RESULT_REPUTATION = 0x8F,
SPELL_CAST_RESULT_MIN_SKILL = 0x90,
SPELL_CAST_RESULT_UNKNOWN = 0x91,
} e_spell_cast_result;
static const value_string e_spell_cast_result_strings[] = {
{ SPELL_CAST_RESULT_AFFECTING_COMBAT, "Affecting Combat" },
{ SPELL_CAST_RESULT_ALREADY_AT_FULL_HEALTH, "Already At Full Health" },
{ SPELL_CAST_RESULT_ALREADY_AT_FULL_MANA, "Already At Full Mana" },
{ SPELL_CAST_RESULT_ALREADY_BEING_TAMED, "Already Being Tamed" },
{ SPELL_CAST_RESULT_ALREADY_HAVE_CHARM, "Already Have Charm" },
{ SPELL_CAST_RESULT_ALREADY_HAVE_SUMMON, "Already Have Summon" },
{ SPELL_CAST_RESULT_ALREADY_OPEN, "Already Open" },
{ SPELL_CAST_RESULT_MORE_POWERFUL_SPELL_ACTIVE, "More Powerful Spell Active" },
{ SPELL_CAST_RESULT_BAD_IMPLICIT_TARGETS, "Bad Implicit Targets" },
{ SPELL_CAST_RESULT_BAD_TARGETS, "Bad Targets" },
{ SPELL_CAST_RESULT_CANT_BE_CHARMED, "Cant Be Charmed" },
{ SPELL_CAST_RESULT_CANT_BE_DISENCHANTED, "Cant Be Disenchanted" },
{ SPELL_CAST_RESULT_CANT_BE_PROSPECTED, "Cant Be Prospected" },
{ SPELL_CAST_RESULT_CANT_CAST_ON_TAPPED, "Cant Cast On Tapped" },
{ SPELL_CAST_RESULT_CANT_DUEL_WHILE_INVISIBLE, "Cant Duel While Invisible" },
{ SPELL_CAST_RESULT_CANT_DUEL_WHILE_STEALTHED, "Cant Duel While Stealthed" },
{ SPELL_CAST_RESULT_CANT_TOO_CLOSE_TO_ENEMY, "Cant Too Close To Enemy" },
{ SPELL_CAST_RESULT_CANT_DO_THAT_YET, "Cant Do That Yet" },
{ SPELL_CAST_RESULT_CASTER_DEAD, "Caster Dead" },
{ SPELL_CAST_RESULT_CHARMED, "Charmed" },
{ SPELL_CAST_RESULT_CHEST_IN_USE, "Chest In Use" },
{ SPELL_CAST_RESULT_CONFUSED, "Confused" },
{ SPELL_CAST_RESULT_DONT_REPORT, "Dont Report" },
{ SPELL_CAST_RESULT_EQUIPPED_ITEM, "Equipped Item" },
{ SPELL_CAST_RESULT_EQUIPPED_ITEM_CLASS, "Equipped Item Class" },
{ SPELL_CAST_RESULT_EQUIPPED_ITEM_CLASS_MAINHAND, "Equipped Item Class Mainhand" },
{ SPELL_CAST_RESULT_EQUIPPED_ITEM_CLASS_OFFHAND, "Equipped Item Class Offhand" },
{ SPELL_CAST_RESULT_ERROR, "Error" },
{ SPELL_CAST_RESULT_FIZZLE, "Fizzle" },
{ SPELL_CAST_RESULT_FLEEING, "Fleeing" },
{ SPELL_CAST_RESULT_FOOD_LOWLEVEL, "Food Lowlevel" },
{ SPELL_CAST_RESULT_HIGHLEVEL, "Highlevel" },
{ SPELL_CAST_RESULT_IMMUNE, "Immune" },
{ SPELL_CAST_RESULT_INTERRUPTED, "Interrupted" },
{ SPELL_CAST_RESULT_INTERRUPTED_COMBAT, "Interrupted Combat" },
{ SPELL_CAST_RESULT_ITEM_ALREADY_ENCHANTED, "Item Already Enchanted" },
{ SPELL_CAST_RESULT_ITEM_GONE, "Item Gone" },
{ SPELL_CAST_RESULT_ENCHANT_NOT_EXISTING_ITEM, "Enchant Not Existing Item" },
{ SPELL_CAST_RESULT_ITEM_NOT_READY, "Item Not Ready" },
{ SPELL_CAST_RESULT_LEVEL_REQUIREMENT, "Level Requirement" },
{ SPELL_CAST_RESULT_LINE_OF_SIGHT, "Line Of Sight" },
{ SPELL_CAST_RESULT_LOWLEVEL, "Lowlevel" },
{ SPELL_CAST_RESULT_SKILL_NOT_HIGH_ENOUGH, "Skill Not High Enough" },
{ SPELL_CAST_RESULT_MAINHAND_EMPTY, "Mainhand Empty" },
{ SPELL_CAST_RESULT_MOVING, "Moving" },
{ SPELL_CAST_RESULT_NEED_AMMO, "Need Ammo" },
{ SPELL_CAST_RESULT_NEED_REQUIRES_SOMETHING, "Need Requires Something" },
{ SPELL_CAST_RESULT_NEED_EXOTIC_AMMO, "Need Exotic Ammo" },
{ SPELL_CAST_RESULT_NOPATH, "Nopath" },
{ SPELL_CAST_RESULT_NOT_BEHIND, "Not Behind" },
{ SPELL_CAST_RESULT_NOT_FISHABLE, "Not Fishable" },
{ SPELL_CAST_RESULT_NOT_HERE, "Not Here" },
{ SPELL_CAST_RESULT_NOT_INFRONT, "Not Infront" },
{ SPELL_CAST_RESULT_NOT_IN_CONTROL, "Not In Control" },
{ SPELL_CAST_RESULT_NOT_KNOWN, "Not Known" },
{ SPELL_CAST_RESULT_NOT_MOUNTED, "Not Mounted" },
{ SPELL_CAST_RESULT_NOT_ON_TAXI, "Not On Taxi" },
{ SPELL_CAST_RESULT_NOT_ON_TRANSPORT, "Not On Transport" },
{ SPELL_CAST_RESULT_NOT_READY, "Not Ready" },
{ SPELL_CAST_RESULT_NOT_SHAPESHIFT, "Not Shapeshift" },
{ SPELL_CAST_RESULT_NOT_STANDING, "Not Standing" },
{ SPELL_CAST_RESULT_NOT_TRADEABLE, "Not Tradeable" },
{ SPELL_CAST_RESULT_NOT_TRADING, "Not Trading" },
{ SPELL_CAST_RESULT_NOT_UNSHEATHED, "Not Unsheathed" },
{ SPELL_CAST_RESULT_NOT_WHILE_GHOST, "Not While Ghost" },
{ SPELL_CAST_RESULT_NO_AMMO, "No Ammo" },
{ SPELL_CAST_RESULT_NO_CHARGES_REMAIN, "No Charges Remain" },
{ SPELL_CAST_RESULT_NO_CHAMPION, "No Champion" },
{ SPELL_CAST_RESULT_NO_COMBO_POINTS, "No Combo Points" },
{ SPELL_CAST_RESULT_NO_DUELING, "No Dueling" },
{ SPELL_CAST_RESULT_NO_ENDURANCE, "No Endurance" },
{ SPELL_CAST_RESULT_NO_FISH, "No Fish" },
{ SPELL_CAST_RESULT_NO_ITEMS_WHILE_SHAPESHIFTED, "No Items While Shapeshifted" },
{ SPELL_CAST_RESULT_NO_MOUNTS_ALLOWED, "No Mounts Allowed" },
{ SPELL_CAST_RESULT_NO_PET, "No Pet" },
{ SPELL_CAST_RESULT_NO_POWER, "No Power" },
{ SPELL_CAST_RESULT_NOTHING_TO_DISPEL, "Nothing To Dispel" },
{ SPELL_CAST_RESULT_NOTHING_TO_STEAL, "Nothing To Steal" },
{ SPELL_CAST_RESULT_ONLY_ABOVEWATER, "Only Abovewater" },
{ SPELL_CAST_RESULT_ONLY_DAYTIME, "Only Daytime" },
{ SPELL_CAST_RESULT_ONLY_INDOORS, "Only Indoors" },
{ SPELL_CAST_RESULT_ONLY_MOUNTED, "Only Mounted" },
{ SPELL_CAST_RESULT_ONLY_NIGHTTIME, "Only Nighttime" },
{ SPELL_CAST_RESULT_ONLY_OUTDOORS, "Only Outdoors" },
{ SPELL_CAST_RESULT_ONLY_SHAPESHIFT, "Only Shapeshift" },
{ SPELL_CAST_RESULT_ONLY_STEALTHED, "Only Stealthed" },
{ SPELL_CAST_RESULT_ONLY_UNDERWATER, "Only Underwater" },
{ SPELL_CAST_RESULT_OUT_OF_RANGE, "Out Of Range" },
{ SPELL_CAST_RESULT_PACIFIED, "Pacified" },
{ SPELL_CAST_RESULT_POSSESSED, "Possessed" },
{ SPELL_CAST_RESULT_REQUIRES_AREA, "Requires Area" },
{ SPELL_CAST_RESULT_REQUIRES_SPELL_FOCUS, "Requires Spell Focus" },
{ SPELL_CAST_RESULT_ROOTED, "Rooted" },
{ SPELL_CAST_RESULT_SILENCED, "Silenced" },
{ SPELL_CAST_RESULT_SPELL_IN_PROGRESS, "Spell In Progress" },
{ SPELL_CAST_RESULT_SPELL_LEARNED, "Spell Learned" },
{ SPELL_CAST_RESULT_SPELL_UNAVAILABLE, "Spell Unavailable" },
{ SPELL_CAST_RESULT_STUNNED, "Stunned" },
{ SPELL_CAST_RESULT_TARGETS_DEAD, "Targets Dead" },
{ SPELL_CAST_RESULT_TARGET_AFFECTING_COMBAT, "Target Affecting Combat" },
{ SPELL_CAST_RESULT_TARGET_AURASTATE, "Target Aurastate" },
{ SPELL_CAST_RESULT_TARGET_DUELING, "Target Dueling" },
{ SPELL_CAST_RESULT_TARGET_ENEMY, "Target Enemy" },
{ SPELL_CAST_RESULT_TARGET_ENRAGED, "Target Enraged" },
{ SPELL_CAST_RESULT_TARGET_FRIENDLY, "Target Friendly" },
{ SPELL_CAST_RESULT_TARGET_IN_COMBAT, "Target In Combat" },
{ SPELL_CAST_RESULT_TARGET_IS_PLAYER, "Target Is Player" },
{ SPELL_CAST_RESULT_TARGET_NOT_DEAD, "Target Not Dead" },
{ SPELL_CAST_RESULT_TARGET_NOT_IN_PARTY, "Target Not In Party" },
{ SPELL_CAST_RESULT_TARGET_NOT_LOOTED, "Target Not Looted" },
{ SPELL_CAST_RESULT_TARGET_NOT_PLAYER, "Target Not Player" },
{ SPELL_CAST_RESULT_TARGET_NO_POCKETS, "Target No Pockets" },
{ SPELL_CAST_RESULT_TARGET_NO_WEAPONS, "Target No Weapons" },
{ SPELL_CAST_RESULT_TARGET_UNSKINNABLE, "Target Unskinnable" },
{ SPELL_CAST_RESULT_THIRST_SATIATED, "Thirst Satiated" },
{ SPELL_CAST_RESULT_TOO_CLOSE, "Too Close" },
{ SPELL_CAST_RESULT_TOO_MANY_OF_ITEM, "Too Many Of Item" },
{ SPELL_CAST_RESULT_TRAINING_POINTS, "Training Points" },
{ SPELL_CAST_RESULT_TRY_AGAIN, "Try Again" },
{ SPELL_CAST_RESULT_UNIT_NOT_BEHIND, "Unit Not Behind" },
{ SPELL_CAST_RESULT_UNIT_NOT_INFRONT, "Unit Not Infront" },
{ SPELL_CAST_RESULT_WRONG_PET_FOOD, "Wrong Pet Food" },
{ SPELL_CAST_RESULT_NOT_WHILE_FATIGUED, "Not While Fatigued" },
{ SPELL_CAST_RESULT_TARGET_NOT_IN_INSTANCE, "Target Not In Instance" },
{ SPELL_CAST_RESULT_NOT_WHILE_TRADING, "Not While Trading" },
{ SPELL_CAST_RESULT_TARGET_NOT_IN_RAID, "Target Not In Raid" },
{ SPELL_CAST_RESULT_DISENCHANT_WHILE_LOOTING, "Disenchant While Looting" },
{ SPELL_CAST_RESULT_PROSPECT_WHILE_LOOTING, "Prospect While Looting" },
{ SPELL_CAST_RESULT_TARGET_FREEFORALL, "Target Freeforall" },
{ SPELL_CAST_RESULT_NO_EDIBLE_CORPSES, "No Edible Corpses" },
{ SPELL_CAST_RESULT_ONLY_BATTLEGROUNDS, "Only Battlegrounds" },
{ SPELL_CAST_RESULT_TARGET_NOT_GHOST, "Target Not Ghost" },
{ SPELL_CAST_RESULT_TOO_MANY_SKILLS, "Too Many Skills" },
{ SPELL_CAST_RESULT_CANT_USE_NEW_ITEM, "Cant Use New Item" },
{ SPELL_CAST_RESULT_WRONG_WEATHER, "Wrong Weather" },
{ SPELL_CAST_RESULT_DAMAGE_IMMUNE, "Damage Immune" },
{ SPELL_CAST_RESULT_PREVENTED_BY_MECHANIC, "Prevented By Mechanic" },
{ SPELL_CAST_RESULT_PLAY_TIME, "Play Time" },
{ SPELL_CAST_RESULT_REPUTATION, "Reputation" },
{ SPELL_CAST_RESULT_MIN_SKILL, "Min Skill" },
{ SPELL_CAST_RESULT_UNKNOWN, "Unknown" },
{ 0, NULL }
};
typedef enum {
PET_REACT_STATE_PASSIVE = 0x0,
PET_REACT_STATE_DEFENSIVE = 0x1,
PET_REACT_STATE_AGGRESSIVE = 0x2,
} e_pet_react_state;
static const value_string e_pet_react_state_strings[] = {
{ PET_REACT_STATE_PASSIVE, "Passive" },
{ PET_REACT_STATE_DEFENSIVE, "Defensive" },
{ PET_REACT_STATE_AGGRESSIVE, "Aggressive" },
{ 0, NULL }
};
typedef enum {
PET_COMMAND_STATE_STAY = 0x0,
PET_COMMAND_STATE_FOLLOW = 0x1,
PET_COMMAND_STATE_ATTACK = 0x2,
PET_COMMAND_STATE_DISMISS = 0x3,
} e_pet_command_state;
static const value_string e_pet_command_state_strings[] = {
{ PET_COMMAND_STATE_STAY, "Stay" },
{ PET_COMMAND_STATE_FOLLOW, "Follow" },
{ PET_COMMAND_STATE_ATTACK, "Attack" },
{ PET_COMMAND_STATE_DISMISS, "Dismiss" },
{ 0, NULL }
};
typedef enum {
PET_ENABLED_ENABLED = 0x8,
PET_ENABLED_DISABLED = 0x0,
} e_pet_enabled;
static const value_string e_pet_enabled_strings[] = {
{ PET_ENABLED_ENABLED, "Enabled" },
{ PET_ENABLED_DISABLED, "Disabled" },
{ 0, NULL }
};
typedef enum {
PET_TAME_FAILURE_REASON_INVALIDCREATURE = 0x1,
PET_TAME_FAILURE_REASON_TOOMANY = 0x2,
PET_TAME_FAILURE_REASON_CREATUREALREADYOWNED = 0x3,
PET_TAME_FAILURE_REASON_NOTTAMEABLE = 0x4,
PET_TAME_FAILURE_REASON_ANOTHERSUMMONACTIVE = 0x5,
PET_TAME_FAILURE_REASON_UNITSCANTTAME = 0x6,
PET_TAME_FAILURE_REASON_NOPETAVAILABLE = 0x7,
PET_TAME_FAILURE_REASON_INTERNALERROR = 0x8,
PET_TAME_FAILURE_REASON_TOOHIGHLEVEL = 0x9,
PET_TAME_FAILURE_REASON_DEAD = 0xA,
PET_TAME_FAILURE_REASON_NOTDEAD = 0xB,
PET_TAME_FAILURE_REASON_UNKNOWNERROR = 0xC,
} e_pet_tame_failure_reason;
static const value_string e_pet_tame_failure_reason_strings[] = {
{ PET_TAME_FAILURE_REASON_INVALIDCREATURE, "Invalidcreature" },
{ PET_TAME_FAILURE_REASON_TOOMANY, "Toomany" },
{ PET_TAME_FAILURE_REASON_CREATUREALREADYOWNED, "Creaturealreadyowned" },
{ PET_TAME_FAILURE_REASON_NOTTAMEABLE, "Nottameable" },
{ PET_TAME_FAILURE_REASON_ANOTHERSUMMONACTIVE, "Anothersummonactive" },
{ PET_TAME_FAILURE_REASON_UNITSCANTTAME, "Unitscanttame" },
{ PET_TAME_FAILURE_REASON_NOPETAVAILABLE, "Nopetavailable" },
{ PET_TAME_FAILURE_REASON_INTERNALERROR, "Internalerror" },
{ PET_TAME_FAILURE_REASON_TOOHIGHLEVEL, "Toohighlevel" },
{ PET_TAME_FAILURE_REASON_DEAD, "Dead" },
{ PET_TAME_FAILURE_REASON_NOTDEAD, "Notdead" },
{ PET_TAME_FAILURE_REASON_UNKNOWNERROR, "Unknownerror" },
{ 0, NULL }
};
typedef enum {
LOG_FORMAT_DEFAULT = 0x0,
LOG_FORMAT_DEBUG = 0x1,
} e_log_format;
static const value_string e_log_format_strings[] = {
{ LOG_FORMAT_DEFAULT, "Default" },
{ LOG_FORMAT_DEBUG, "Debug" },
{ 0, NULL }
};
typedef enum {
QUEST_FAILED_REASON_DONT_HAVE_REQ = 0x00,
QUEST_FAILED_REASON_QUEST_FAILED_LOW_LEVEL = 0x01,
QUEST_FAILED_REASON_QUEST_FAILED_REQS = 0x02,
QUEST_FAILED_REASON_QUEST_FAILED_INVENTORY_FULL = 0x04,
QUEST_FAILED_REASON_QUEST_FAILED_WRONG_RACE = 0x06,
QUEST_FAILED_REASON_QUEST_ONLY_ONE_TIMED = 0x0C,
QUEST_FAILED_REASON_QUEST_ALREADY_ON = 0x0D,
QUEST_FAILED_REASON_QUEST_FAILED_DUPLICATE_ITEM = 0x11,
QUEST_FAILED_REASON_QUEST_FAILED_MISSING_ITEMS = 0x14,
QUEST_FAILED_REASON_QUEST_FAILED_NOT_ENOUGH_MONEY = 0x16,
} e_quest_failed_reason;
static const value_string e_quest_failed_reason_strings[] = {
{ QUEST_FAILED_REASON_DONT_HAVE_REQ, "Dont Have Req" },
{ QUEST_FAILED_REASON_QUEST_FAILED_LOW_LEVEL, "Quest Failed Low Level" },
{ QUEST_FAILED_REASON_QUEST_FAILED_REQS, "Quest Failed Reqs" },
{ QUEST_FAILED_REASON_QUEST_FAILED_INVENTORY_FULL, "Quest Failed Inventory Full" },
{ QUEST_FAILED_REASON_QUEST_FAILED_WRONG_RACE, "Quest Failed Wrong Race" },
{ QUEST_FAILED_REASON_QUEST_ONLY_ONE_TIMED, "Quest Only One Timed" },
{ QUEST_FAILED_REASON_QUEST_ALREADY_ON, "Quest Already On" },
{ QUEST_FAILED_REASON_QUEST_FAILED_DUPLICATE_ITEM, "Quest Failed Duplicate Item" },
{ QUEST_FAILED_REASON_QUEST_FAILED_MISSING_ITEMS, "Quest Failed Missing Items" },
{ QUEST_FAILED_REASON_QUEST_FAILED_NOT_ENOUGH_MONEY, "Quest Failed Not Enough Money" },
{ 0, NULL }
};
typedef enum {
QUEST_COMPLETABLE_NOT_COMPLETABLE = 0x0,
QUEST_COMPLETABLE_COMPLETEABLE = 0x3,
} e_quest_completable;
static const value_string e_quest_completable_strings[] = {
{ QUEST_COMPLETABLE_NOT_COMPLETABLE, "Not Completable" },
{ QUEST_COMPLETABLE_COMPLETEABLE, "Completeable" },
{ 0, NULL }
};
typedef enum {
QUEST_GIVER_STATUS_NONE = 0x0,
QUEST_GIVER_STATUS_UNAVAILABLE = 0x1,
QUEST_GIVER_STATUS_CHAT = 0x2,
QUEST_GIVER_STATUS_INCOMPLETE = 0x3,
QUEST_GIVER_STATUS_REWARD_REP = 0x4,
QUEST_GIVER_STATUS_AVAILABLE = 0x5,
QUEST_GIVER_STATUS_REWARD_OLD = 0x6,
QUEST_GIVER_STATUS_REWARD2 = 0x7,
} e_quest_giver_status;
static const value_string e_quest_giver_status_strings[] = {
{ QUEST_GIVER_STATUS_NONE, "None" },
{ QUEST_GIVER_STATUS_UNAVAILABLE, "Unavailable" },
{ QUEST_GIVER_STATUS_CHAT, "Chat" },
{ QUEST_GIVER_STATUS_INCOMPLETE, "Incomplete" },
{ QUEST_GIVER_STATUS_REWARD_REP, "Reward Rep" },
{ QUEST_GIVER_STATUS_AVAILABLE, "Available" },
{ QUEST_GIVER_STATUS_REWARD_OLD, "Reward Old" },
{ QUEST_GIVER_STATUS_REWARD2, "Reward2" },
{ 0, NULL }
};
typedef enum {
RAID_GROUP_ERROR_REQUIRED = 0x1,
RAID_GROUP_ERROR_FULL = 0x2,
} e_raid_group_error;
static const value_string e_raid_group_error_strings[] = {
{ RAID_GROUP_ERROR_REQUIRED, "Required" },
{ RAID_GROUP_ERROR_FULL, "Full" },
{ 0, NULL }
};
typedef enum {
RAID_INSTANCE_MESSAGE_WARNING_HOURS = 0x1,
RAID_INSTANCE_MESSAGE_WARNING_MIN = 0x2,
RAID_INSTANCE_MESSAGE_WARNING_MIN_SOON = 0x3,
RAID_INSTANCE_MESSAGE_WELCOME = 0x4,
} e_raid_instance_message;
static const value_string e_raid_instance_message_strings[] = {
{ RAID_INSTANCE_MESSAGE_WARNING_HOURS, "Warning Hours" },
{ RAID_INSTANCE_MESSAGE_WARNING_MIN, "Warning Min" },
{ RAID_INSTANCE_MESSAGE_WARNING_MIN_SOON, "Warning Min Soon" },
{ RAID_INSTANCE_MESSAGE_WELCOME, "Welcome" },
{ 0, NULL }
};
typedef enum {
SELL_ITEM_RESULT_CANT_FIND_ITEM = 0x1,
SELL_ITEM_RESULT_CANT_SELL_ITEM = 0x2,
SELL_ITEM_RESULT_CANT_FIND_VENDOR = 0x3,
SELL_ITEM_RESULT_YOU_DONT_OWN_THAT_ITEM = 0x4,
SELL_ITEM_RESULT_UNK = 0x5,
SELL_ITEM_RESULT_ONLY_EMPTY_BAG = 0x6,
} e_sell_item_result;
static const value_string e_sell_item_result_strings[] = {
{ SELL_ITEM_RESULT_CANT_FIND_ITEM, "Cant Find Item" },
{ SELL_ITEM_RESULT_CANT_SELL_ITEM, "Cant Sell Item" },
{ SELL_ITEM_RESULT_CANT_FIND_VENDOR, "Cant Find Vendor" },
{ SELL_ITEM_RESULT_YOU_DONT_OWN_THAT_ITEM, "You Dont Own That Item" },
{ SELL_ITEM_RESULT_UNK, "Unk" },
{ SELL_ITEM_RESULT_ONLY_EMPTY_BAG, "Only Empty Bag" },
{ 0, NULL }
};
typedef enum {
SERVER_MESSAGE_TYPE_SHUTDOWN_TIME = 0x1,
SERVER_MESSAGE_TYPE_RESTART_TIME = 0x2,
SERVER_MESSAGE_TYPE_CUSTOM = 0x3,
SERVER_MESSAGE_TYPE_SHUTDOWN_CANCELLED = 0x4,
SERVER_MESSAGE_TYPE_RESTART_CANCELLED = 0x5,
} e_server_message_type;
static const value_string e_server_message_type_strings[] = {
{ SERVER_MESSAGE_TYPE_SHUTDOWN_TIME, "Shutdown Time" },
{ SERVER_MESSAGE_TYPE_RESTART_TIME, "Restart Time" },
{ SERVER_MESSAGE_TYPE_CUSTOM, "Custom" },
{ SERVER_MESSAGE_TYPE_SHUTDOWN_CANCELLED, "Shutdown Cancelled" },
{ SERVER_MESSAGE_TYPE_RESTART_CANCELLED, "Restart Cancelled" },
{ 0, NULL }
};
typedef enum {
POWER_TYPE_MANA = 0x00000000,
POWER_TYPE_RAGE = 0x00000001,
POWER_TYPE_FOCUS = 0x00000002,
POWER_TYPE_ENERGY = 0x00000003,
POWER_TYPE_HAPPINESS = 0x00000004,
POWER_TYPE_HEALTH = -0x0000002,
} e_power_type;
static const value_string e_power_type_strings[] = {
{ POWER_TYPE_MANA, "Mana" },
{ POWER_TYPE_RAGE, "Rage" },
{ POWER_TYPE_FOCUS, "Focus" },
{ POWER_TYPE_ENERGY, "Energy" },
{ POWER_TYPE_HAPPINESS, "Happiness" },
{ POWER_TYPE_HEALTH, "Health" },
{ 0, NULL }
};
typedef enum {
STABLE_RESULT_ERR_MONEY = 0x1,
STABLE_RESULT_ERR_STABLE = 0x6,
STABLE_RESULT_SUCCESS_STABLE = 0x8,
STABLE_RESULT_SUCCESS_UNSTABLE = 0x9,
STABLE_RESULT_SUCCESS_BUY_SLOT = 0xA,
} e_stable_result;
static const value_string e_stable_result_strings[] = {
{ STABLE_RESULT_ERR_MONEY, "Err Money" },
{ STABLE_RESULT_ERR_STABLE, "Err Stable" },
{ STABLE_RESULT_SUCCESS_STABLE, "Success Stable" },
{ STABLE_RESULT_SUCCESS_UNSTABLE, "Success Unstable" },
{ STABLE_RESULT_SUCCESS_BUY_SLOT, "Success Buy Slot" },
{ 0, NULL }
};
typedef enum {
TRADE_STATUS_BUSY = 0x00,
TRADE_STATUS_BEGIN_TRADE = 0x01,
TRADE_STATUS_OPEN_WINDOW = 0x02,
TRADE_STATUS_TRADE_CANCELED = 0x03,
TRADE_STATUS_TRADE_ACCEPT = 0x04,
TRADE_STATUS_BUSY_2 = 0x05,
TRADE_STATUS_NO_TARGET = 0x06,
TRADE_STATUS_BACK_TO_TRADE = 0x07,
TRADE_STATUS_TRADE_COMPLETE = 0x08,
TRADE_STATUS_TRADE_REJECTED = 0x09,
TRADE_STATUS_TARGET_TO_FAR = 0x0A,
TRADE_STATUS_WRONG_FACTION = 0x0B,
TRADE_STATUS_CLOSE_WINDOW = 0x0C,
TRADE_STATUS_UNKNOWN_13 = 0x0D,
TRADE_STATUS_IGNORE_YOU = 0x0E,
TRADE_STATUS_YOU_STUNNED = 0x0F,
TRADE_STATUS_TARGET_STUNNED = 0x10,
TRADE_STATUS_YOU_DEAD = 0x11,
TRADE_STATUS_TARGET_DEAD = 0x12,
TRADE_STATUS_YOU_LOGOUT = 0x13,
TRADE_STATUS_TARGET_LOGOUT = 0x14,
TRADE_STATUS_TRIAL_ACCOUNT = 0x15,
TRADE_STATUS_ONLY_CONJURED = 0x16,
TRADE_STATUS_NOT_ON_TAPLIST = 0x17,
} e_trade_status;
static const value_string e_trade_status_strings[] = {
{ TRADE_STATUS_BUSY, "Busy" },
{ TRADE_STATUS_BEGIN_TRADE, "Begin Trade" },
{ TRADE_STATUS_OPEN_WINDOW, "Open Window" },
{ TRADE_STATUS_TRADE_CANCELED, "Trade Canceled" },
{ TRADE_STATUS_TRADE_ACCEPT, "Trade Accept" },
{ TRADE_STATUS_BUSY_2, "Busy 2" },
{ TRADE_STATUS_NO_TARGET, "No Target" },
{ TRADE_STATUS_BACK_TO_TRADE, "Back To Trade" },
{ TRADE_STATUS_TRADE_COMPLETE, "Trade Complete" },
{ TRADE_STATUS_TRADE_REJECTED, "Trade Rejected" },
{ TRADE_STATUS_TARGET_TO_FAR, "Target To Far" },
{ TRADE_STATUS_WRONG_FACTION, "Wrong Faction" },
{ TRADE_STATUS_CLOSE_WINDOW, "Close Window" },
{ TRADE_STATUS_UNKNOWN_13, "Unknown 13" },
{ TRADE_STATUS_IGNORE_YOU, "Ignore You" },
{ TRADE_STATUS_YOU_STUNNED, "You Stunned" },
{ TRADE_STATUS_TARGET_STUNNED, "Target Stunned" },
{ TRADE_STATUS_YOU_DEAD, "You Dead" },
{ TRADE_STATUS_TARGET_DEAD, "Target Dead" },
{ TRADE_STATUS_YOU_LOGOUT, "You Logout" },
{ TRADE_STATUS_TARGET_LOGOUT, "Target Logout" },
{ TRADE_STATUS_TRIAL_ACCOUNT, "Trial Account" },
{ TRADE_STATUS_ONLY_CONJURED, "Only Conjured" },
{ TRADE_STATUS_NOT_ON_TAPLIST, "Not On Taplist" },
{ 0, NULL }
};
typedef enum {
TRAINING_FAILURE_REASON_UNAVAILABLE = 0x0,
TRAINING_FAILURE_REASON_NOT_ENOUGH_MONEY = 0x1,
TRAINING_FAILURE_REASON_NOT_ENOUGH_SKILL = 0x2,
} e_training_failure_reason;
static const value_string e_training_failure_reason_strings[] = {
{ TRAINING_FAILURE_REASON_UNAVAILABLE, "Unavailable" },
{ TRAINING_FAILURE_REASON_NOT_ENOUGH_MONEY, "Not Enough Money" },
{ TRAINING_FAILURE_REASON_NOT_ENOUGH_SKILL, "Not Enough Skill" },
{ 0, NULL }
};
typedef enum {
TRANSFER_ABORT_REASON_NONE = 0x0,
TRANSFER_ABORT_REASON_IS_FULL = 0x1,
TRANSFER_ABORT_REASON_NOT_FOUND = 0x2,
TRANSFER_ABORT_REASON_TOO_MANY_INSTANCES = 0x3,
TRANSFER_ABORT_REASON_ZONE_IS_IN_COMBAT = 0x5,
} e_transfer_abort_reason;
static const value_string e_transfer_abort_reason_strings[] = {
{ TRANSFER_ABORT_REASON_NONE, "None" },
{ TRANSFER_ABORT_REASON_IS_FULL, "Is Full" },
{ TRANSFER_ABORT_REASON_NOT_FOUND, "Not Found" },
{ TRANSFER_ABORT_REASON_TOO_MANY_INSTANCES, "Too Many Instances" },
{ TRANSFER_ABORT_REASON_ZONE_IS_IN_COMBAT, "Zone Is In Combat" },
{ 0, NULL }
};
typedef enum {
CINEMATIC_SEQUENCE_ID_GOBLIN = 0x00,
CINEMATIC_SEQUENCE_ID_UNDEAD = 0x02,
CINEMATIC_SEQUENCE_ID_ORC = 0x15,
CINEMATIC_SEQUENCE_ID_DWARF = 0x29,
CINEMATIC_SEQUENCE_ID_NIGHT_ELF = 0x3D,
CINEMATIC_SEQUENCE_ID_HUMAN = 0x51,
CINEMATIC_SEQUENCE_ID_GNOME = 0x65,
CINEMATIC_SEQUENCE_ID_TROLL = 0x79,
CINEMATIC_SEQUENCE_ID_TAUREN = 0x8D,
} e_cinematic_sequence_id;
static const value_string e_cinematic_sequence_id_strings[] = {
{ CINEMATIC_SEQUENCE_ID_GOBLIN, "Goblin" },
{ CINEMATIC_SEQUENCE_ID_UNDEAD, "Undead" },
{ CINEMATIC_SEQUENCE_ID_ORC, "Orc" },
{ CINEMATIC_SEQUENCE_ID_DWARF, "Dwarf" },
{ CINEMATIC_SEQUENCE_ID_NIGHT_ELF, "Night Elf" },
{ CINEMATIC_SEQUENCE_ID_HUMAN, "Human" },
{ CINEMATIC_SEQUENCE_ID_GNOME, "Gnome" },
{ CINEMATIC_SEQUENCE_ID_TROLL, "Troll" },
{ CINEMATIC_SEQUENCE_ID_TAUREN, "Tauren" },
{ 0, NULL }
};
typedef enum {
WEATHER_TYPE_FINE = 0x0,
WEATHER_TYPE_RAIN = 0x1,
WEATHER_TYPE_SNOW = 0x2,
WEATHER_TYPE_STORM = 0x3,
} e_weather_type;
static const value_string e_weather_type_strings[] = {
{ WEATHER_TYPE_FINE, "Fine" },
{ WEATHER_TYPE_RAIN, "Rain" },
{ WEATHER_TYPE_SNOW, "Snow" },
{ WEATHER_TYPE_STORM, "Storm" },
{ 0, NULL }
};
typedef enum {
WEATHER_CHANGE_TYPE_SMOOTH = 0x0,
WEATHER_CHANGE_TYPE_INSTANT = 0x1,
} e_weather_change_type;
static const value_string e_weather_change_type_strings[] = {
{ WEATHER_CHANGE_TYPE_SMOOTH, "Smooth" },
{ WEATHER_CHANGE_TYPE_INSTANT, "Instant" },
{ 0, NULL }
};
typedef enum {
CHANNEL_MEMBER_FLAGS_NONE = 0x00,
CHANNEL_MEMBER_FLAGS_OWNER = 0x01,
CHANNEL_MEMBER_FLAGS_MODERATOR = 0x04,
CHANNEL_MEMBER_FLAGS_VOICED = 0x08,
CHANNEL_MEMBER_FLAGS_MUTED = 0x10,
CHANNEL_MEMBER_FLAGS_CUSTOM = 0x20,
CHANNEL_MEMBER_FLAGS_MICROPHONE_MUTE = 0x40,
} e_channel_member_flags;
typedef enum {
CHARACTER_FLAGS_NONE = 0x0000,
CHARACTER_FLAGS_LOCKED_FOR_TRANSFER = 0x0004,
CHARACTER_FLAGS_HIDE_HELM = 0x0400,
CHARACTER_FLAGS_HIDE_CLOAK = 0x0800,
CHARACTER_FLAGS_GHOST = 0x2000,
CHARACTER_FLAGS_RENAME = 0x4000,
} e_character_flags;
typedef enum {
FACTION_FLAG_VISIBLE = 0x01,
FACTION_FLAG_AT_WAR = 0x02,
FACTION_FLAG_HIDDEN = 0x04,
FACTION_FLAG_INVISIBLE_FORCED = 0x08,
FACTION_FLAG_PEACE_FORCED = 0x10,
FACTION_FLAG_INACTIVE = 0x20,
FACTION_FLAG_RIVAL = 0x40,
} e_faction_flag;
typedef enum {
UPDATE_FLAG_NONE = 0x00,
UPDATE_FLAG_SELF = 0x01,
UPDATE_FLAG_TRANSPORT = 0x02,
UPDATE_FLAG_MELEE_ATTACKING = 0x04,
UPDATE_FLAG_HIGH_GUID = 0x08,
UPDATE_FLAG_ALL = 0x10,
UPDATE_FLAG_LIVING = 0x20,
UPDATE_FLAG_HAS_POSITION = 0x40,
} e_update_flag;
typedef enum {
MOVEMENT_FLAGS_NONE = 0x00000000,
MOVEMENT_FLAGS_FORWARD = 0x00000001,
MOVEMENT_FLAGS_BACKWARD = 0x00000002,
MOVEMENT_FLAGS_STRAFE_LEFT = 0x00000004,
MOVEMENT_FLAGS_STRAFE_RIGHT = 0x00000008,
MOVEMENT_FLAGS_TURN_LEFT = 0x00000010,
MOVEMENT_FLAGS_TURN_RIGHT = 0x00000020,
MOVEMENT_FLAGS_PITCH_UP = 0x00000040,
MOVEMENT_FLAGS_PITCH_DOWN = 0x00000080,
MOVEMENT_FLAGS_WALK_MODE = 0x00000100,
MOVEMENT_FLAGS_ON_TRANSPORT = 0x00000200,
MOVEMENT_FLAGS_LEVITATING = 0x00000400,
MOVEMENT_FLAGS_FIXED_Z = 0x00000800,
MOVEMENT_FLAGS_ROOT = 0x00001000,
MOVEMENT_FLAGS_JUMPING = 0x00002000,
MOVEMENT_FLAGS_FALLINGFAR = 0x00004000,
MOVEMENT_FLAGS_SWIMMING = 0x00200000,
MOVEMENT_FLAGS_SPLINE_ENABLED = 0x00400000,
MOVEMENT_FLAGS_CAN_FLY = 0x00800000,
MOVEMENT_FLAGS_FLYING = 0x01000000,
MOVEMENT_FLAGS_ONTRANSPORT = 0x02000000,
MOVEMENT_FLAGS_SPLINE_ELEVATION = 0x04000000,
MOVEMENT_FLAGS_WATERWALKING = 0x10000000,
MOVEMENT_FLAGS_SAFE_FALL = 0x20000000,
MOVEMENT_FLAGS_HOVER = 0x40000000,
} e_movement_flags;
typedef enum {
SPLINE_FLAG_NONE = 0x00000000,
SPLINE_FLAG_DONE = 0x00000001,
SPLINE_FLAG_FALLING = 0x00000002,
SPLINE_FLAG_UNKNOWN3 = 0x00000004,
SPLINE_FLAG_UNKNOWN4 = 0x00000008,
SPLINE_FLAG_UNKNOWN5 = 0x00000010,
SPLINE_FLAG_UNKNOWN6 = 0x00000020,
SPLINE_FLAG_UNKNOWN7 = 0x00000040,
SPLINE_FLAG_UNKNOWN8 = 0x00000080,
SPLINE_FLAG_RUNMODE = 0x00000100,
SPLINE_FLAG_FLYING = 0x00000200,
SPLINE_FLAG_NO_SPLINE = 0x00000400,
SPLINE_FLAG_UNKNOWN12 = 0x00000800,
SPLINE_FLAG_UNKNOWN13 = 0x00001000,
SPLINE_FLAG_UNKNOWN14 = 0x00002000,
SPLINE_FLAG_UNKNOWN15 = 0x00004000,
SPLINE_FLAG_UNKNOWN16 = 0x00008000,
SPLINE_FLAG_FINAL_POINT = 0x00010000,
SPLINE_FLAG_FINAL_TARGET = 0x00020000,
SPLINE_FLAG_FINAL_ANGLE = 0x00040000,
SPLINE_FLAG_UNKNOWN19 = 0x00080000,
SPLINE_FLAG_CYCLIC = 0x00100000,
SPLINE_FLAG_ENTER_CYCLE = 0x00200000,
SPLINE_FLAG_FROZEN = 0x00400000,
SPLINE_FLAG_UNKNOWN23 = 0x00800000,
SPLINE_FLAG_UNKNOWN24 = 0x01000000,
SPLINE_FLAG_UNKNOWN25 = 0x02000000,
SPLINE_FLAG_UNKNOWN26 = 0x04000000,
SPLINE_FLAG_UNKNOWN27 = 0x08000000,
SPLINE_FLAG_UNKNOWN28 = 0x10000000,
SPLINE_FLAG_UNKNOWN29 = 0x20000000,
SPLINE_FLAG_UNKNOWN30 = 0x40000000,
SPLINE_FLAG_UNKNOWN31 = -0x7FFFFFFF,
} e_spline_flag;
typedef enum {
SPELL_CAST_TARGET_FLAGS_SELF = 0x0000,
SPELL_CAST_TARGET_FLAGS_UNUSED1 = 0x0001,
SPELL_CAST_TARGET_FLAGS_UNIT = 0x0002,
SPELL_CAST_TARGET_FLAGS_UNIT_RAID = 0x0004,
SPELL_CAST_TARGET_FLAGS_UNIT_PARTY = 0x0008,
SPELL_CAST_TARGET_FLAGS_ITEM = 0x0010,
SPELL_CAST_TARGET_FLAGS_SOURCE_LOCATION = 0x0020,
SPELL_CAST_TARGET_FLAGS_DEST_LOCATION = 0x0040,
SPELL_CAST_TARGET_FLAGS_UNIT_ENEMY = 0x0080,
SPELL_CAST_TARGET_FLAGS_UNIT_ALLY = 0x0100,
SPELL_CAST_TARGET_FLAGS_CORPSE_ENEMY = 0x0200,
SPELL_CAST_TARGET_FLAGS_UNIT_DEAD = 0x0400,
SPELL_CAST_TARGET_FLAGS_GAMEOBJECT = 0x0800,
SPELL_CAST_TARGET_FLAGS_TRADE_ITEM = 0x1000,
SPELL_CAST_TARGET_FLAGS_STRING = 0x2000,
SPELL_CAST_TARGET_FLAGS_LOCKED = 0x4000,
SPELL_CAST_TARGET_FLAGS_CORPSE_ALLY = 0x8000,
} e_spell_cast_target_flags;
typedef enum {
CHANNEL_FLAGS_NONE = 0x00,
CHANNEL_FLAGS_CUSTOM = 0x01,
CHANNEL_FLAGS_TRADE = 0x04,
CHANNEL_FLAGS_NOT_LFG = 0x08,
CHANNEL_FLAGS_GENERAL = 0x10,
CHANNEL_FLAGS_CITY = 0x20,
CHANNEL_FLAGS_LFG = 0x40,
CHANNEL_FLAGS_VOICE = 0x80,
} e_channel_flags;
typedef enum {
GROUP_UPDATE_FLAGS_FLAG_NONE = 0x00000000,
GROUP_UPDATE_FLAGS_FLAG_STATUS = 0x00000001,
GROUP_UPDATE_FLAGS_FLAG_CUR_HP = 0x00000002,
GROUP_UPDATE_FLAGS_FLAG_MAX_HP = 0x00000004,
GROUP_UPDATE_FLAGS_FLAG_POWER_TYPE = 0x00000008,
GROUP_UPDATE_FLAGS_FLAG_CUR_POWER = 0x00000010,
GROUP_UPDATE_FLAGS_FLAG_MAX_POWER = 0x00000020,
GROUP_UPDATE_FLAGS_FLAG_LEVEL = 0x00000040,
GROUP_UPDATE_FLAGS_FLAG_ZONE = 0x00000080,
GROUP_UPDATE_FLAGS_FLAG_POSITION = 0x00000100,
GROUP_UPDATE_FLAGS_FLAG_AURAS = 0x00000200,
GROUP_UPDATE_FLAGS_FLAG_AURAS_2 = 0x00000400,
GROUP_UPDATE_FLAGS_FLAG_PET_GUID = 0x00000800,
GROUP_UPDATE_FLAGS_FLAG_PET_NAME = 0x00001000,
GROUP_UPDATE_FLAGS_FLAG_PET_MODEL_ID = 0x00002000,
GROUP_UPDATE_FLAGS_FLAG_PET_CUR_HP = 0x00004000,
GROUP_UPDATE_FLAGS_FLAG_PET_MAX_HP = 0x00008000,
GROUP_UPDATE_FLAGS_FLAG_PET_POWER_TYPE = 0x00010000,
GROUP_UPDATE_FLAGS_FLAG_PET_CUR_POWER = 0x00020000,
GROUP_UPDATE_FLAGS_FLAG_PET_MAX_POWER = 0x00040000,
GROUP_UPDATE_FLAGS_FLAG_PET_AURAS = 0x00080000,
GROUP_UPDATE_FLAGS_FLAG_PET_AURAS_2 = 0x00100000,
GROUP_UPDATE_FLAGS_MODE_OFFLINE = 0x10000000,
} e_group_update_flags;
typedef enum {
GROUP_MEMBER_ONLINE_STATUS_OFFLINE = 0x00,
GROUP_MEMBER_ONLINE_STATUS_ONLINE = 0x01,
GROUP_MEMBER_ONLINE_STATUS_PVP = 0x02,
GROUP_MEMBER_ONLINE_STATUS_DEAD = 0x04,
GROUP_MEMBER_ONLINE_STATUS_GHOST = 0x08,
GROUP_MEMBER_ONLINE_STATUS_PVP_FFA = 0x10,
GROUP_MEMBER_ONLINE_STATUS_ZONE_OUT = 0x20,
GROUP_MEMBER_ONLINE_STATUS_AFK = 0x40,
GROUP_MEMBER_ONLINE_STATUS_DND = 0x80,
} e_group_member_online_status;
typedef enum {
CAST_FLAGS_NONE = 0x000,
CAST_FLAGS_HIDDEN_COMBATLOG = 0x001,
CAST_FLAGS_UNKNOWN2 = 0x002,
CAST_FLAGS_UNKNOWN3 = 0x004,
CAST_FLAGS_UNKNOWN4 = 0x008,
CAST_FLAGS_UNKNOWN5 = 0x010,
CAST_FLAGS_AMMO = 0x020,
CAST_FLAGS_UNKNOWN7 = 0x040,
CAST_FLAGS_UNKNOWN8 = 0x080,
CAST_FLAGS_UNKNOWN9 = 0x100,
} e_cast_flags;
/* AUTOGENERATED_END_ENUM */
// All existing opcodes for 1.12.x
typedef enum
{
MSG_NULL_ACTION = 0x000,
CMSG_BOOTME = 0x001,
CMSG_DBLOOKUP = 0x002,
SMSG_DBLOOKUP = 0x003,
CMSG_QUERY_OBJECT_POSITION = 0x004,
SMSG_QUERY_OBJECT_POSITION = 0x005,
CMSG_QUERY_OBJECT_ROTATION = 0x006,
SMSG_QUERY_OBJECT_ROTATION = 0x007,
CMSG_WORLD_TELEPORT = 0x008,
CMSG_TELEPORT_TO_UNIT = 0x009,
CMSG_ZONE_MAP = 0x00A,
SMSG_ZONE_MAP = 0x00B,
CMSG_DEBUG_CHANGECELLZONE = 0x00C,
CMSG_EMBLAZON_TABARD_OBSOLETE = 0x00D,
CMSG_UNEMBLAZON_TABARD_OBSOLETE = 0x00E,
CMSG_RECHARGE = 0x00F,
CMSG_LEARN_SPELL = 0x010,
CMSG_CREATEMONSTER = 0x011,
CMSG_DESTROYMONSTER = 0x012,
CMSG_CREATEITEM = 0x013,
CMSG_CREATEGAMEOBJECT = 0x014,
SMSG_CHECK_FOR_BOTS = 0x015,
CMSG_MAKEMONSTERATTACKGUID = 0x016,
CMSG_BOT_DETECTED2 = 0x017,
CMSG_FORCEACTION = 0x018,
CMSG_FORCEACTIONONOTHER = 0x019,
CMSG_FORCEACTIONSHOW = 0x01A,
SMSG_FORCEACTIONSHOW = 0x01B,
CMSG_PETGODMODE = 0x01C,
SMSG_PETGODMODE = 0x01D,
SMSG_DEBUGINFOSPELLMISS_OBSOLETE = 0x01E,
CMSG_WEATHER_SPEED_CHEAT = 0x01F,
CMSG_UNDRESSPLAYER = 0x020,
CMSG_BEASTMASTER = 0x021,
CMSG_GODMODE = 0x022,
SMSG_GODMODE = 0x023,
CMSG_CHEAT_SETMONEY = 0x024,
CMSG_LEVEL_CHEAT = 0x025,
CMSG_PET_LEVEL_CHEAT = 0x026,
CMSG_SET_WORLDSTATE = 0x027,
CMSG_COOLDOWN_CHEAT = 0x028,
CMSG_USE_SKILL_CHEAT = 0x029,
CMSG_FLAG_QUEST = 0x02A,
CMSG_FLAG_QUEST_FINISH = 0x02B,
CMSG_CLEAR_QUEST = 0x02C,
CMSG_SEND_EVENT = 0x02D,
CMSG_DEBUG_AISTATE = 0x02E,
SMSG_DEBUG_AISTATE = 0x02F,
CMSG_DISABLE_PVP_CHEAT = 0x030,
CMSG_ADVANCE_SPAWN_TIME = 0x031,
CMSG_PVP_PORT_OBSOLETE = 0x032,
CMSG_AUTH_SRP6_BEGIN = 0x033,
CMSG_AUTH_SRP6_PROOF = 0x034,
CMSG_AUTH_SRP6_RECODE = 0x035,
CMSG_CHAR_CREATE = 0x036,
CMSG_CHAR_ENUM = 0x037,
CMSG_CHAR_DELETE = 0x038,
SMSG_AUTH_SRP6_RESPONSE = 0x039,
SMSG_CHAR_CREATE = 0x03A,
SMSG_CHAR_ENUM = 0x03B,
SMSG_CHAR_DELETE = 0x03C,
CMSG_PLAYER_LOGIN = 0x03D,
SMSG_NEW_WORLD = 0x03E,
SMSG_TRANSFER_PENDING = 0x03F,
SMSG_TRANSFER_ABORTED = 0x040,
SMSG_CHARACTER_LOGIN_FAILED = 0x041,
SMSG_LOGIN_SETTIMESPEED = 0x042,
SMSG_GAMETIME_UPDATE = 0x043,
CMSG_GAMETIME_SET = 0x044,
SMSG_GAMETIME_SET = 0x045,
CMSG_GAMESPEED_SET = 0x046,
SMSG_GAMESPEED_SET = 0x047,
CMSG_SERVERTIME = 0x048,
SMSG_SERVERTIME = 0x049,
CMSG_PLAYER_LOGOUT = 0x04A,
CMSG_LOGOUT_REQUEST = 0x04B,
SMSG_LOGOUT_RESPONSE = 0x04C,
SMSG_LOGOUT_COMPLETE = 0x04D,
CMSG_LOGOUT_CANCEL = 0x04E,
SMSG_LOGOUT_CANCEL_ACK = 0x04F,
CMSG_NAME_QUERY = 0x050,
SMSG_NAME_QUERY_RESPONSE = 0x051,
CMSG_PET_NAME_QUERY = 0x052,
SMSG_PET_NAME_QUERY_RESPONSE = 0x053,
CMSG_GUILD_QUERY = 0x054,
SMSG_GUILD_QUERY_RESPONSE = 0x055,
CMSG_ITEM_QUERY_SINGLE = 0x056,
CMSG_ITEM_QUERY_MULTIPLE = 0x057,
SMSG_ITEM_QUERY_SINGLE_RESPONSE = 0x058,
SMSG_ITEM_QUERY_MULTIPLE_RESPONSE = 0x059,
CMSG_PAGE_TEXT_QUERY = 0x05A,
SMSG_PAGE_TEXT_QUERY_RESPONSE = 0x05B,
CMSG_QUEST_QUERY = 0x05C,
SMSG_QUEST_QUERY_RESPONSE = 0x05D,
CMSG_GAMEOBJECT_QUERY = 0x05E,
SMSG_GAMEOBJECT_QUERY_RESPONSE = 0x05F,
CMSG_CREATURE_QUERY = 0x060,
SMSG_CREATURE_QUERY_RESPONSE = 0x061,
CMSG_WHO = 0x062,
SMSG_WHO = 0x063,
CMSG_WHOIS = 0x064,
SMSG_WHOIS = 0x065,
CMSG_FRIEND_LIST = 0x066,
SMSG_FRIEND_LIST = 0x067,
SMSG_FRIEND_STATUS = 0x068,
CMSG_ADD_FRIEND = 0x069,
CMSG_DEL_FRIEND = 0x06A,
SMSG_IGNORE_LIST = 0x06B,
CMSG_ADD_IGNORE = 0x06C,
CMSG_DEL_IGNORE = 0x06D,
CMSG_GROUP_INVITE = 0x06E,
SMSG_GROUP_INVITE = 0x06F,
CMSG_GROUP_CANCEL = 0x070,
SMSG_GROUP_CANCEL = 0x071,
CMSG_GROUP_ACCEPT = 0x072,
CMSG_GROUP_DECLINE = 0x073,
SMSG_GROUP_DECLINE = 0x074,
CMSG_GROUP_UNINVITE = 0x075,
CMSG_GROUP_UNINVITE_GUID = 0x076,
SMSG_GROUP_UNINVITE = 0x077,
CMSG_GROUP_SET_LEADER = 0x078,
SMSG_GROUP_SET_LEADER = 0x079,
CMSG_LOOT_METHOD = 0x07A,
CMSG_GROUP_DISBAND = 0x07B,
SMSG_GROUP_DESTROYED = 0x07C,
SMSG_GROUP_LIST = 0x07D,
SMSG_PARTY_MEMBER_STATS = 0x07E,
SMSG_PARTY_COMMAND_RESULT = 0x07F,
UMSG_UPDATE_GROUP_MEMBERS = 0x080,
CMSG_GUILD_CREATE = 0x081,
CMSG_GUILD_INVITE = 0x082,
SMSG_GUILD_INVITE = 0x083,
CMSG_GUILD_ACCEPT = 0x084,
CMSG_GUILD_DECLINE = 0x085,
SMSG_GUILD_DECLINE = 0x086,
CMSG_GUILD_INFO = 0x087,
SMSG_GUILD_INFO = 0x088,
CMSG_GUILD_ROSTER = 0x089,
SMSG_GUILD_ROSTER = 0x08A,
CMSG_GUILD_PROMOTE = 0x08B,
CMSG_GUILD_DEMOTE = 0x08C,
CMSG_GUILD_LEAVE = 0x08D,
CMSG_GUILD_REMOVE = 0x08E,
CMSG_GUILD_DISBAND = 0x08F,
CMSG_GUILD_LEADER = 0x090,
CMSG_GUILD_MOTD = 0x091,
SMSG_GUILD_EVENT = 0x092,
SMSG_GUILD_COMMAND_RESULT = 0x093,
UMSG_UPDATE_GUILD = 0x094,
CMSG_MESSAGECHAT = 0x095,
SMSG_MESSAGECHAT = 0x096,
CMSG_JOIN_CHANNEL = 0x097,
CMSG_LEAVE_CHANNEL = 0x098,
SMSG_CHANNEL_NOTIFY = 0x099,
CMSG_CHANNEL_LIST = 0x09A,
SMSG_CHANNEL_LIST = 0x09B,
CMSG_CHANNEL_PASSWORD = 0x09C,
CMSG_CHANNEL_SET_OWNER = 0x09D,
CMSG_CHANNEL_OWNER = 0x09E,
CMSG_CHANNEL_MODERATOR = 0x09F,
CMSG_CHANNEL_UNMODERATOR = 0x0A0,
CMSG_CHANNEL_MUTE = 0x0A1,
CMSG_CHANNEL_UNMUTE = 0x0A2,
CMSG_CHANNEL_INVITE = 0x0A3,
CMSG_CHANNEL_KICK = 0x0A4,
CMSG_CHANNEL_BAN = 0x0A5,
CMSG_CHANNEL_UNBAN = 0x0A6,
CMSG_CHANNEL_ANNOUNCEMENTS = 0x0A7,
CMSG_CHANNEL_MODERATE = 0x0A8,
SMSG_UPDATE_OBJECT = 0x0A9,
SMSG_DESTROY_OBJECT = 0x0AA,
CMSG_USE_ITEM = 0x0AB,
CMSG_OPEN_ITEM = 0x0AC,
CMSG_READ_ITEM = 0x0AD,
SMSG_READ_ITEM_OK = 0x0AE,
SMSG_READ_ITEM_FAILED = 0x0AF,
SMSG_ITEM_COOLDOWN = 0x0B0,
CMSG_GAMEOBJ_USE = 0x0B1,
CMSG_GAMEOBJ_CHAIR_USE_OBSOLETE = 0x0B2,
SMSG_GAMEOBJECT_CUSTOM_ANIM = 0x0B3,
CMSG_AREATRIGGER = 0x0B4,
MSG_MOVE_START_FORWARD = 0x0B5,
MSG_MOVE_START_BACKWARD = 0x0B6,
MSG_MOVE_STOP = 0x0B7,
MSG_MOVE_START_STRAFE_LEFT = 0x0B8,
MSG_MOVE_START_STRAFE_RIGHT = 0x0B9,
MSG_MOVE_STOP_STRAFE = 0x0BA,
MSG_MOVE_JUMP = 0x0BB,
MSG_MOVE_START_TURN_LEFT = 0x0BC,
MSG_MOVE_START_TURN_RIGHT = 0x0BD,
MSG_MOVE_STOP_TURN = 0x0BE,
MSG_MOVE_START_PITCH_UP = 0x0BF,
MSG_MOVE_START_PITCH_DOWN = 0x0C0,
MSG_MOVE_STOP_PITCH = 0x0C1,
MSG_MOVE_SET_RUN_MODE = 0x0C2,
MSG_MOVE_SET_WALK_MODE = 0x0C3,
MSG_MOVE_TOGGLE_LOGGING = 0x0C4,
MSG_MOVE_TELEPORT = 0x0C5,
MSG_MOVE_TELEPORT_CHEAT = 0x0C6,
MSG_MOVE_TELEPORT_ACK = 0x0C7,
MSG_MOVE_TOGGLE_FALL_LOGGING = 0x0C8,
MSG_MOVE_FALL_LAND = 0x0C9,
MSG_MOVE_START_SWIM = 0x0CA,
MSG_MOVE_STOP_SWIM = 0x0CB,
MSG_MOVE_SET_RUN_SPEED_CHEAT = 0x0CC,
MSG_MOVE_SET_RUN_SPEED = 0x0CD,
MSG_MOVE_SET_RUN_BACK_SPEED_CHEAT = 0x0CE,
MSG_MOVE_SET_RUN_BACK_SPEED = 0x0CF,
MSG_MOVE_SET_WALK_SPEED_CHEAT = 0x0D0,
MSG_MOVE_SET_WALK_SPEED = 0x0D1,
MSG_MOVE_SET_SWIM_SPEED_CHEAT = 0x0D2,
MSG_MOVE_SET_SWIM_SPEED = 0x0D3,
MSG_MOVE_SET_SWIM_BACK_SPEED_CHEAT = 0x0D4,
MSG_MOVE_SET_SWIM_BACK_SPEED = 0x0D5,
MSG_MOVE_SET_ALL_SPEED_CHEAT = 0x0D6,
MSG_MOVE_SET_TURN_RATE_CHEAT = 0x0D7,
MSG_MOVE_SET_TURN_RATE = 0x0D8,
MSG_MOVE_TOGGLE_COLLISION_CHEAT = 0x0D9,
MSG_MOVE_SET_FACING = 0x0DA,
MSG_MOVE_SET_PITCH = 0x0DB,
MSG_MOVE_WORLDPORT_ACK = 0x0DC,
SMSG_MONSTER_MOVE = 0x0DD,
SMSG_MOVE_WATER_WALK = 0x0DE,
SMSG_MOVE_LAND_WALK = 0x0DF,
MSG_MOVE_SET_RAW_POSITION_ACK = 0x0E0,
CMSG_MOVE_SET_RAW_POSITION = 0x0E1,
SMSG_FORCE_RUN_SPEED_CHANGE = 0x0E2,
CMSG_FORCE_RUN_SPEED_CHANGE_ACK = 0x0E3,
SMSG_FORCE_RUN_BACK_SPEED_CHANGE = 0x0E4,
CMSG_FORCE_RUN_BACK_SPEED_CHANGE_ACK = 0x0E5,
SMSG_FORCE_SWIM_SPEED_CHANGE = 0x0E6,
CMSG_FORCE_SWIM_SPEED_CHANGE_ACK = 0x0E7,
SMSG_FORCE_MOVE_ROOT = 0x0E8,
CMSG_FORCE_MOVE_ROOT_ACK = 0x0E9,
SMSG_FORCE_MOVE_UNROOT = 0x0EA,
CMSG_FORCE_MOVE_UNROOT_ACK = 0x0EB,
MSG_MOVE_ROOT = 0x0EC,
MSG_MOVE_UNROOT = 0x0ED,
MSG_MOVE_HEARTBEAT = 0x0EE,
SMSG_MOVE_KNOCK_BACK = 0x0EF,
CMSG_MOVE_KNOCK_BACK_ACK = 0x0F0,
MSG_MOVE_KNOCK_BACK = 0x0F1,
SMSG_MOVE_FEATHER_FALL = 0x0F2,
SMSG_MOVE_NORMAL_FALL = 0x0F3,
SMSG_MOVE_SET_HOVER = 0x0F4,
SMSG_MOVE_UNSET_HOVER = 0x0F5,
CMSG_MOVE_HOVER_ACK = 0x0F6,
MSG_MOVE_HOVER = 0x0F7,
CMSG_TRIGGER_CINEMATIC_CHEAT = 0x0F8,
CMSG_OPENING_CINEMATIC = 0x0F9,
SMSG_TRIGGER_CINEMATIC = 0x0FA,
CMSG_NEXT_CINEMATIC_CAMERA = 0x0FB,
CMSG_COMPLETE_CINEMATIC = 0x0FC,
SMSG_TUTORIAL_FLAGS = 0x0FD,
CMSG_TUTORIAL_FLAG = 0x0FE,
CMSG_TUTORIAL_CLEAR = 0x0FF,
CMSG_TUTORIAL_RESET = 0x100,
CMSG_STANDSTATECHANGE = 0x101,
CMSG_EMOTE = 0x102,
SMSG_EMOTE = 0x103,
CMSG_TEXT_EMOTE = 0x104,
SMSG_TEXT_EMOTE = 0x105,
CMSG_AUTOEQUIP_GROUND_ITEM = 0x106,
CMSG_AUTOSTORE_GROUND_ITEM = 0x107,
CMSG_AUTOSTORE_LOOT_ITEM = 0x108,
CMSG_STORE_LOOT_IN_SLOT = 0x109,
CMSG_AUTOEQUIP_ITEM = 0x10A,
CMSG_AUTOSTORE_BAG_ITEM = 0x10B,
CMSG_SWAP_ITEM = 0x10C,
CMSG_SWAP_INV_ITEM = 0x10D,
CMSG_SPLIT_ITEM = 0x10E,
CMSG_AUTOEQUIP_ITEM_SLOT = 0x10F,
OBSOLETE_DROP_ITEM = 0x110,
CMSG_DESTROYITEM = 0x111,
SMSG_INVENTORY_CHANGE_FAILURE = 0x112,
SMSG_OPEN_CONTAINER = 0x113,
CMSG_INSPECT = 0x114,
SMSG_INSPECT = 0x115,
CMSG_INITIATE_TRADE = 0x116,
CMSG_BEGIN_TRADE = 0x117,
CMSG_BUSY_TRADE = 0x118,
CMSG_IGNORE_TRADE = 0x119,
CMSG_ACCEPT_TRADE = 0x11A,
CMSG_UNACCEPT_TRADE = 0x11B,
CMSG_CANCEL_TRADE = 0x11C,
CMSG_SET_TRADE_ITEM = 0x11D,
CMSG_CLEAR_TRADE_ITEM = 0x11E,
CMSG_SET_TRADE_GOLD = 0x11F,
SMSG_TRADE_STATUS = 0x120,
SMSG_TRADE_STATUS_EXTENDED = 0x121,
SMSG_INITIALIZE_FACTIONS = 0x122,
SMSG_SET_FACTION_VISIBLE = 0x123,
SMSG_SET_FACTION_STANDING = 0x124,
CMSG_SET_FACTION_ATWAR = 0x125,
CMSG_SET_FACTION_CHEAT = 0x126,
SMSG_SET_PROFICIENCY = 0x127,
CMSG_SET_ACTION_BUTTON = 0x128,
SMSG_ACTION_BUTTONS = 0x129,
SMSG_INITIAL_SPELLS = 0x12A,
SMSG_LEARNED_SPELL = 0x12B,
SMSG_SUPERCEDED_SPELL = 0x12C,
CMSG_NEW_SPELL_SLOT = 0x12D,
CMSG_CAST_SPELL = 0x12E,
CMSG_CANCEL_CAST = 0x12F,
SMSG_CAST_RESULT = 0x130,
SMSG_SPELL_START = 0x131,
SMSG_SPELL_GO = 0x132,
SMSG_SPELL_FAILURE = 0x133,
SMSG_SPELL_COOLDOWN = 0x134,
SMSG_COOLDOWN_EVENT = 0x135,
CMSG_CANCEL_AURA = 0x136,
SMSG_UPDATE_AURA_DURATION = 0x137,
SMSG_PET_CAST_FAILED = 0x138,
MSG_CHANNEL_START = 0x139,
MSG_CHANNEL_UPDATE = 0x13A,
CMSG_CANCEL_CHANNELLING = 0x13B,
SMSG_AI_REACTION = 0x13C,
CMSG_SET_SELECTION = 0x13D,
CMSG_SET_TARGET_OBSOLETE = 0x13E,
CMSG_UNUSED = 0x13F,
CMSG_UNUSED2 = 0x140,
CMSG_ATTACKSWING = 0x141,
CMSG_ATTACKSTOP = 0x142,
SMSG_ATTACKSTART = 0x143,
SMSG_ATTACKSTOP = 0x144,
SMSG_ATTACKSWING_NOTINRANGE = 0x145,
SMSG_ATTACKSWING_BADFACING = 0x146,
SMSG_ATTACKSWING_NOTSTANDING = 0x147,
SMSG_ATTACKSWING_DEADTARGET = 0x148,
SMSG_ATTACKSWING_CANT_ATTACK = 0x149,
SMSG_ATTACKERSTATEUPDATE = 0x14A,
SMSG_VICTIMSTATEUPDATE_OBSOLETE = 0x14B,
SMSG_DAMAGE_DONE_OBSOLETE = 0x14C,
SMSG_DAMAGE_TAKEN_OBSOLETE = 0x14D,
SMSG_CANCEL_COMBAT = 0x14E,
SMSG_PLAYER_COMBAT_XP_GAIN_OBSOLETE = 0x14F,
SMSG_SPELLHEALLOG = 0x150,
SMSG_SPELLENERGIZELOG = 0x151,
CMSG_SHEATHE_OBSOLETE = 0x152,
CMSG_SAVE_PLAYER = 0x153,
CMSG_SETDEATHBINDPOINT = 0x154,
SMSG_BINDPOINTUPDATE = 0x155,
CMSG_GETDEATHBINDZONE = 0x156,
SMSG_BINDZONEREPLY = 0x157,
SMSG_PLAYERBOUND = 0x158,
SMSG_CLIENT_CONTROL_UPDATE = 0x159,
CMSG_REPOP_REQUEST = 0x15A,
SMSG_RESURRECT_REQUEST = 0x15B,
CMSG_RESURRECT_RESPONSE = 0x15C,
CMSG_LOOT = 0x15D,
CMSG_LOOT_MONEY = 0x15E,
CMSG_LOOT_RELEASE = 0x15F,
SMSG_LOOT_RESPONSE = 0x160,
SMSG_LOOT_RELEASE_RESPONSE = 0x161,
SMSG_LOOT_REMOVED = 0x162,
SMSG_LOOT_MONEY_NOTIFY = 0x163,
SMSG_LOOT_ITEM_NOTIFY = 0x164,
SMSG_LOOT_CLEAR_MONEY = 0x165,
SMSG_ITEM_PUSH_RESULT = 0x166,
SMSG_DUEL_REQUESTED = 0x167,
SMSG_DUEL_OUTOFBOUNDS = 0x168,
SMSG_DUEL_INBOUNDS = 0x169,
SMSG_DUEL_COMPLETE = 0x16A,
SMSG_DUEL_WINNER = 0x16B,
CMSG_DUEL_ACCEPTED = 0x16C,
CMSG_DUEL_CANCELLED = 0x16D,
SMSG_MOUNTRESULT = 0x16E,
SMSG_DISMOUNTRESULT = 0x16F,
SMSG_PUREMOUNT_CANCELLED_OBSOLETE = 0x170,
CMSG_MOUNTSPECIAL_ANIM = 0x171,
SMSG_MOUNTSPECIAL_ANIM = 0x172,
SMSG_PET_TAME_FAILURE = 0x173,
CMSG_PET_SET_ACTION = 0x174,
CMSG_PET_ACTION = 0x175,
CMSG_PET_ABANDON = 0x176,
CMSG_PET_RENAME = 0x177,
SMSG_PET_NAME_INVALID = 0x178,
SMSG_PET_SPELLS = 0x179,
SMSG_PET_MODE = 0x17A,
CMSG_GOSSIP_HELLO = 0x17B,
CMSG_GOSSIP_SELECT_OPTION = 0x17C,
SMSG_GOSSIP_MESSAGE = 0x17D,
SMSG_GOSSIP_COMPLETE = 0x17E,
CMSG_NPC_TEXT_QUERY = 0x17F,
SMSG_NPC_TEXT_UPDATE = 0x180,
SMSG_NPC_WONT_TALK = 0x181,
CMSG_QUESTGIVER_STATUS_QUERY = 0x182,
SMSG_QUESTGIVER_STATUS = 0x183,
CMSG_QUESTGIVER_HELLO = 0x184,
SMSG_QUESTGIVER_QUEST_LIST = 0x185,
CMSG_QUESTGIVER_QUERY_QUEST = 0x186,
CMSG_QUESTGIVER_QUEST_AUTOLAUNCH = 0x187,
SMSG_QUESTGIVER_QUEST_DETAILS = 0x188,
CMSG_QUESTGIVER_ACCEPT_QUEST = 0x189,
CMSG_QUESTGIVER_COMPLETE_QUEST = 0x18A,
SMSG_QUESTGIVER_REQUEST_ITEMS = 0x18B,
CMSG_QUESTGIVER_REQUEST_REWARD = 0x18C,
SMSG_QUESTGIVER_OFFER_REWARD = 0x18D,
CMSG_QUESTGIVER_CHOOSE_REWARD = 0x18E,
SMSG_QUESTGIVER_QUEST_INVALID = 0x18F,
CMSG_QUESTGIVER_CANCEL = 0x190,
SMSG_QUESTGIVER_QUEST_COMPLETE = 0x191,
SMSG_QUESTGIVER_QUEST_FAILED = 0x192,
CMSG_QUESTLOG_SWAP_QUEST = 0x193,
CMSG_QUESTLOG_REMOVE_QUEST = 0x194,
SMSG_QUESTLOG_FULL = 0x195,
SMSG_QUESTUPDATE_FAILED = 0x196,
SMSG_QUESTUPDATE_FAILEDTIMER = 0x197,
SMSG_QUESTUPDATE_COMPLETE = 0x198,
SMSG_QUESTUPDATE_ADD_KILL = 0x199,
SMSG_QUESTUPDATE_ADD_ITEM = 0x19A,
CMSG_QUEST_CONFIRM_ACCEPT = 0x19B,
SMSG_QUEST_CONFIRM_ACCEPT = 0x19C,
CMSG_PUSHQUESTTOPARTY = 0x19D,
CMSG_LIST_INVENTORY = 0x19E,
SMSG_LIST_INVENTORY = 0x19F,
CMSG_SELL_ITEM = 0x1A0,
SMSG_SELL_ITEM = 0x1A1,
CMSG_BUY_ITEM = 0x1A2,
CMSG_BUY_ITEM_IN_SLOT = 0x1A3,
SMSG_BUY_ITEM = 0x1A4,
SMSG_BUY_FAILED = 0x1A5,
CMSG_TAXICLEARALLNODES = 0x1A6,
CMSG_TAXIENABLEALLNODES = 0x1A7,
CMSG_TAXISHOWNODES = 0x1A8,
SMSG_SHOWTAXINODES = 0x1A9,
CMSG_TAXINODE_STATUS_QUERY = 0x1AA,
SMSG_TAXINODE_STATUS = 0x1AB,
CMSG_TAXIQUERYAVAILABLENODES = 0x1AC,
CMSG_ACTIVATETAXI = 0x1AD,
SMSG_ACTIVATETAXIREPLY = 0x1AE,
SMSG_NEW_TAXI_PATH = 0x1AF,
CMSG_TRAINER_LIST = 0x1B0,
SMSG_TRAINER_LIST = 0x1B1,
CMSG_TRAINER_BUY_SPELL = 0x1B2,
SMSG_TRAINER_BUY_SUCCEEDED = 0x1B3,
SMSG_TRAINER_BUY_FAILED = 0x1B4,
CMSG_BINDER_ACTIVATE = 0x1B5,
SMSG_PLAYERBINDERROR = 0x1B6,
CMSG_BANKER_ACTIVATE = 0x1B7,
SMSG_SHOW_BANK = 0x1B8,
CMSG_BUY_BANK_SLOT = 0x1B9,
SMSG_BUY_BANK_SLOT_RESULT = 0x1BA,
CMSG_PETITION_SHOWLIST = 0x1BB,
SMSG_PETITION_SHOWLIST = 0x1BC,
CMSG_PETITION_BUY = 0x1BD,
CMSG_PETITION_SHOW_SIGNATURES = 0x1BE,
SMSG_PETITION_SHOW_SIGNATURES = 0x1BF,
CMSG_PETITION_SIGN = 0x1C0,
SMSG_PETITION_SIGN_RESULTS = 0x1C1,
MSG_PETITION_DECLINE = 0x1C2,
CMSG_OFFER_PETITION = 0x1C3,
CMSG_TURN_IN_PETITION = 0x1C4,
SMSG_TURN_IN_PETITION_RESULTS = 0x1C5,
CMSG_PETITION_QUERY = 0x1C6,
SMSG_PETITION_QUERY_RESPONSE = 0x1C7,
SMSG_FISH_NOT_HOOKED = 0x1C8,
SMSG_FISH_ESCAPED = 0x1C9,
CMSG_BUG = 0x1CA,
SMSG_NOTIFICATION = 0x1CB,
CMSG_PLAYED_TIME = 0x1CC,
SMSG_PLAYED_TIME = 0x1CD,
CMSG_QUERY_TIME = 0x1CE,
SMSG_QUERY_TIME_RESPONSE = 0x1CF,
SMSG_LOG_XPGAIN = 0x1D0,
SMSG_AURACASTLOG = 0x1D1,
CMSG_RECLAIM_CORPSE = 0x1D2,
CMSG_WRAP_ITEM = 0x1D3,
SMSG_LEVELUP_INFO = 0x1D4,
MSG_MINIMAP_PING = 0x1D5,
SMSG_RESISTLOG = 0x1D6,
SMSG_ENCHANTMENTLOG = 0x1D7,
CMSG_SET_SKILL_CHEAT = 0x1D8,
SMSG_START_MIRROR_TIMER = 0x1D9,
SMSG_PAUSE_MIRROR_TIMER = 0x1DA,
SMSG_STOP_MIRROR_TIMER = 0x1DB,
CMSG_PING = 0x1DC,
SMSG_PONG = 0x1DD,
SMSG_CLEAR_COOLDOWN = 0x1DE,
SMSG_GAMEOBJECT_PAGETEXT = 0x1DF,
CMSG_SETSHEATHED = 0x1E0,
SMSG_COOLDOWN_CHEAT = 0x1E1,
SMSG_SPELL_DELAYED = 0x1E2,
CMSG_PLAYER_MACRO_OBSOLETE = 0x1E3,
SMSG_PLAYER_MACRO_OBSOLETE = 0x1E4,
CMSG_GHOST = 0x1E5,
CMSG_GM_INVIS = 0x1E6,
SMSG_INVALID_PROMOTION_CODE = 0x1E7,
MSG_GM_BIND_OTHER = 0x1E8,
MSG_GM_SUMMON = 0x1E9,
SMSG_ITEM_TIME_UPDATE = 0x1EA,
SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x1EB,
SMSG_AUTH_CHALLENGE = 0x1EC,
CMSG_AUTH_SESSION = 0x1ED,
SMSG_AUTH_RESPONSE = 0x1EE,
MSG_GM_SHOWLABEL = 0x1EF,
CMSG_PET_CAST_SPELL = 0x1F0,
MSG_SAVE_GUILD_EMBLEM = 0x1F1,
MSG_TABARDVENDOR_ACTIVATE = 0x1F2,
SMSG_PLAY_SPELL_VISUAL = 0x1F3,
CMSG_ZONEUPDATE = 0x1F4,
SMSG_PARTYKILLLOG = 0x1F5,
SMSG_COMPRESSED_UPDATE_OBJECT = 0x1F6,
SMSG_PLAY_SPELL_IMPACT = 0x1F7,
SMSG_EXPLORATION_EXPERIENCE = 0x1F8,
CMSG_GM_SET_SECURITY_GROUP = 0x1F9,
CMSG_GM_NUKE = 0x1FA,
MSG_RANDOM_ROLL = 0x1FB,
SMSG_ENVIRONMENTALDAMAGELOG = 0x1FC,
CMSG_RWHOIS_OBSOLETE = 0x1FD,
SMSG_RWHOIS = 0x1FE,
MSG_LOOKING_FOR_GROUP = 0x1FF,
CMSG_SET_LOOKING_FOR_GROUP = 0x200,
CMSG_UNLEARN_SPELL = 0x201,
CMSG_UNLEARN_SKILL = 0x202,
SMSG_REMOVED_SPELL = 0x203,
CMSG_DECHARGE = 0x204,
CMSG_GMTICKET_CREATE = 0x205,
SMSG_GMTICKET_CREATE = 0x206,
CMSG_GMTICKET_UPDATETEXT = 0x207,
SMSG_GMTICKET_UPDATETEXT = 0x208,
SMSG_ACCOUNT_DATA_TIMES = 0x209,
CMSG_REQUEST_ACCOUNT_DATA = 0x20A,
CMSG_UPDATE_ACCOUNT_DATA = 0x20B,
SMSG_UPDATE_ACCOUNT_DATA = 0x20C,
SMSG_CLEAR_FAR_SIGHT_IMMEDIATE = 0x20D,
SMSG_POWERGAINLOG_OBSOLETE = 0x20E,
CMSG_GM_TEACH = 0x20F,
CMSG_GM_CREATE_ITEM_TARGET = 0x210,
CMSG_GMTICKET_GETTICKET = 0x211,
SMSG_GMTICKET_GETTICKET = 0x212,
CMSG_UNLEARN_TALENTS = 0x213,
SMSG_GAMEOBJECT_SPAWN_ANIM = 0x214,
SMSG_GAMEOBJECT_DESPAWN_ANIM = 0x215,
MSG_CORPSE_QUERY = 0x216,
CMSG_GMTICKET_DELETETICKET = 0x217,
SMSG_GMTICKET_DELETETICKET = 0x218,
SMSG_CHAT_WRONG_FACTION = 0x219,
CMSG_GMTICKET_SYSTEMSTATUS = 0x21A,
SMSG_GMTICKET_SYSTEMSTATUS = 0x21B,
CMSG_SPIRIT_HEALER_ACTIVATE = 0x21C,
CMSG_SET_STAT_CHEAT = 0x21D,
SMSG_SET_REST_START = 0x21E,
CMSG_SKILL_BUY_STEP = 0x21F,
CMSG_SKILL_BUY_RANK = 0x220,
CMSG_XP_CHEAT = 0x221,
SMSG_SPIRIT_HEALER_CONFIRM = 0x222,
CMSG_CHARACTER_POINT_CHEAT = 0x223,
SMSG_GOSSIP_POI = 0x224,
CMSG_CHAT_IGNORED = 0x225,
CMSG_GM_VISION = 0x226,
CMSG_SERVER_COMMAND = 0x227,
CMSG_GM_SILENCE = 0x228,
CMSG_GM_REVEALTO = 0x229,
CMSG_GM_RESURRECT = 0x22A,
CMSG_GM_SUMMONMOB = 0x22B,
CMSG_GM_MOVECORPSE = 0x22C,
CMSG_GM_FREEZE = 0x22D,
CMSG_GM_UBERINVIS = 0x22E,
CMSG_GM_REQUEST_PLAYER_INFO = 0x22F,
SMSG_GM_PLAYER_INFO = 0x230,
CMSG_GUILD_RANK = 0x231,
CMSG_GUILD_ADD_RANK = 0x232,
CMSG_GUILD_DEL_RANK = 0x233,
CMSG_GUILD_SET_PUBLIC_NOTE = 0x234,
CMSG_GUILD_SET_OFFICER_NOTE = 0x235,
SMSG_LOGIN_VERIFY_WORLD = 0x236,
CMSG_CLEAR_EXPLORATION = 0x237,
CMSG_SEND_MAIL = 0x238,
SMSG_SEND_MAIL_RESULT = 0x239,
CMSG_GET_MAIL_LIST = 0x23A,
SMSG_MAIL_LIST_RESULT = 0x23B,
CMSG_BATTLEFIELD_LIST = 0x23C,
SMSG_BATTLEFIELD_LIST = 0x23D,
CMSG_BATTLEFIELD_JOIN = 0x23E,
SMSG_BATTLEFIELD_WIN_OBSOLETE = 0x23F,
SMSG_BATTLEFIELD_LOSE_OBSOLETE = 0x240,
CMSG_TAXICLEARNODE = 0x241,
CMSG_TAXIENABLENODE = 0x242,
CMSG_ITEM_TEXT_QUERY = 0x243,
SMSG_ITEM_TEXT_QUERY_RESPONSE = 0x244,
CMSG_MAIL_TAKE_MONEY = 0x245,
CMSG_MAIL_TAKE_ITEM = 0x246,
CMSG_MAIL_MARK_AS_READ = 0x247,
CMSG_MAIL_RETURN_TO_SENDER = 0x248,
CMSG_MAIL_DELETE = 0x249,
CMSG_MAIL_CREATE_TEXT_ITEM = 0x24A,
SMSG_SPELLLOGMISS = 0x24B,
SMSG_SPELLLOGEXECUTE = 0x24C,
SMSG_DEBUGAURAPROC = 0x24D,
SMSG_PERIODICAURALOG = 0x24E,
SMSG_SPELLDAMAGESHIELD = 0x24F,
SMSG_SPELLNONMELEEDAMAGELOG = 0x250,
CMSG_LEARN_TALENT = 0x251,
SMSG_RESURRECT_FAILED = 0x252,
CMSG_TOGGLE_PVP = 0x253,
SMSG_ZONE_UNDER_ATTACK = 0x254,
MSG_AUCTION_HELLO = 0x255,
CMSG_AUCTION_SELL_ITEM = 0x256,
CMSG_AUCTION_REMOVE_ITEM = 0x257,
CMSG_AUCTION_LIST_ITEMS = 0x258,
CMSG_AUCTION_LIST_OWNER_ITEMS = 0x259,
CMSG_AUCTION_PLACE_BID = 0x25A,
SMSG_AUCTION_COMMAND_RESULT = 0x25B,
SMSG_AUCTION_LIST_RESULT = 0x25C,
SMSG_AUCTION_OWNER_LIST_RESULT = 0x25D,
SMSG_AUCTION_BIDDER_NOTIFICATION = 0x25E,
SMSG_AUCTION_OWNER_NOTIFICATION = 0x25F,
SMSG_PROCRESIST = 0x260,
SMSG_STANDSTATE_CHANGE_FAILURE_OBSOLETE = 0x261,
SMSG_DISPEL_FAILED = 0x262,
SMSG_SPELLORDAMAGE_IMMUNE = 0x263,
CMSG_AUCTION_LIST_BIDDER_ITEMS = 0x264,
SMSG_AUCTION_BIDDER_LIST_RESULT = 0x265,
SMSG_SET_FLAT_SPELL_MODIFIER = 0x266,
SMSG_SET_PCT_SPELL_MODIFIER = 0x267,
CMSG_SET_AMMO = 0x268,
SMSG_CORPSE_RECLAIM_DELAY = 0x269,
CMSG_SET_ACTIVE_MOVER = 0x26A,
CMSG_PET_CANCEL_AURA = 0x26B,
CMSG_PLAYER_AI_CHEAT = 0x26C,
CMSG_CANCEL_AUTO_REPEAT_SPELL = 0x26D,
MSG_GM_ACCOUNT_ONLINE = 0x26E,
MSG_LIST_STABLED_PETS = 0x26F,
CMSG_STABLE_PET = 0x270,
CMSG_UNSTABLE_PET = 0x271,
CMSG_BUY_STABLE_SLOT = 0x272,
SMSG_STABLE_RESULT = 0x273,
CMSG_STABLE_REVIVE_PET = 0x274,
CMSG_STABLE_SWAP_PET = 0x275,
MSG_QUEST_PUSH_RESULT = 0x276,
SMSG_PLAY_MUSIC = 0x277,
SMSG_PLAY_OBJECT_SOUND = 0x278,
CMSG_REQUEST_PET_INFO = 0x279,
CMSG_FAR_SIGHT = 0x27A,
SMSG_SPELLDISPELLOG = 0x27B,
SMSG_DAMAGE_CALC_LOG = 0x27C,
CMSG_ENABLE_DAMAGE_LOG = 0x27D,
CMSG_GROUP_CHANGE_SUB_GROUP = 0x27E,
CMSG_REQUEST_PARTY_MEMBER_STATS = 0x27F,
CMSG_GROUP_SWAP_SUB_GROUP = 0x280,
CMSG_RESET_FACTION_CHEAT = 0x281,
CMSG_AUTOSTORE_BANK_ITEM = 0x282,
CMSG_AUTOBANK_ITEM = 0x283,
MSG_QUERY_NEXT_MAIL_TIME = 0x284,
SMSG_RECEIVED_MAIL = 0x285,
SMSG_RAID_GROUP_ONLY = 0x286,
CMSG_SET_DURABILITY_CHEAT = 0x287,
CMSG_SET_PVP_RANK_CHEAT = 0x288,
CMSG_ADD_PVP_MEDAL_CHEAT = 0x289,
CMSG_DEL_PVP_MEDAL_CHEAT = 0x28A,
CMSG_SET_PVP_TITLE = 0x28B,
SMSG_PVP_CREDIT = 0x28C,
SMSG_AUCTION_REMOVED_NOTIFICATION = 0x28D,
CMSG_GROUP_RAID_CONVERT = 0x28E,
CMSG_GROUP_ASSISTANT_LEADER = 0x28F,
CMSG_BUYBACK_ITEM = 0x290,
SMSG_SERVER_MESSAGE = 0x291,
CMSG_MEETINGSTONE_JOIN = 0x292,
CMSG_MEETINGSTONE_LEAVE = 0x293,
CMSG_MEETINGSTONE_CHEAT = 0x294,
SMSG_MEETINGSTONE_SETQUEUE = 0x295,
CMSG_MEETINGSTONE_INFO = 0x296,
SMSG_MEETINGSTONE_COMPLETE = 0x297,
SMSG_MEETINGSTONE_IN_PROGRESS = 0x298,
SMSG_MEETINGSTONE_MEMBER_ADDED = 0x299,
CMSG_GMTICKETSYSTEM_TOGGLE = 0x29A,
CMSG_CANCEL_GROWTH_AURA = 0x29B,
SMSG_CANCEL_AUTO_REPEAT = 0x29C,
SMSG_STANDSTATE_UPDATE = 0x29D,
SMSG_LOOT_ALL_PASSED = 0x29E,
SMSG_LOOT_ROLL_WON = 0x29F,
CMSG_LOOT_ROLL = 0x2A0,
SMSG_LOOT_START_ROLL = 0x2A1,
SMSG_LOOT_ROLL = 0x2A2,
CMSG_LOOT_MASTER_GIVE = 0x2A3,
SMSG_LOOT_MASTER_LIST = 0x2A4,
SMSG_SET_FORCED_REACTIONS = 0x2A5,
SMSG_SPELL_FAILED_OTHER = 0x2A6,
SMSG_GAMEOBJECT_RESET_STATE = 0x2A7,
CMSG_REPAIR_ITEM = 0x2A8,
SMSG_CHAT_PLAYER_NOT_FOUND = 0x2A9,
MSG_TALENT_WIPE_CONFIRM = 0x2AA,
SMSG_SUMMON_REQUEST = 0x2AB,
CMSG_SUMMON_RESPONSE = 0x2AC,
MSG_MOVE_TOGGLE_GRAVITY_CHEAT = 0x2AD,
SMSG_MONSTER_MOVE_TRANSPORT = 0x2AE,
SMSG_PET_BROKEN = 0x2AF,
MSG_MOVE_FEATHER_FALL = 0x2B0,
MSG_MOVE_WATER_WALK = 0x2B1,
CMSG_SERVER_BROADCAST = 0x2B2,
CMSG_SELF_RES = 0x2B3,
SMSG_FEIGN_DEATH_RESISTED = 0x2B4,
CMSG_RUN_SCRIPT = 0x2B5,
SMSG_SCRIPT_MESSAGE = 0x2B6,
SMSG_DUEL_COUNTDOWN = 0x2B7,
SMSG_AREA_TRIGGER_MESSAGE = 0x2B8,
CMSG_TOGGLE_HELM = 0x2B9,
CMSG_TOGGLE_CLOAK = 0x2BA,
SMSG_MEETINGSTONE_JOINFAILED = 0x2BB,
SMSG_PLAYER_SKINNED = 0x2BC,
SMSG_DURABILITY_DAMAGE_DEATH = 0x2BD,
CMSG_SET_EXPLORATION = 0x2BE,
CMSG_SET_ACTIONBAR_TOGGLES = 0x2BF,
UMSG_DELETE_GUILD_CHARTER = 0x2C0,
MSG_PETITION_RENAME = 0x2C1,
SMSG_INIT_WORLD_STATES = 0x2C2,
SMSG_UPDATE_WORLD_STATE = 0x2C3,
CMSG_ITEM_NAME_QUERY = 0x2C4,
SMSG_ITEM_NAME_QUERY_RESPONSE = 0x2C5,
SMSG_PET_ACTION_FEEDBACK = 0x2C6,
CMSG_CHAR_RENAME = 0x2C7,
SMSG_CHAR_RENAME = 0x2C8,
CMSG_MOVE_SPLINE_DONE = 0x2C9,
CMSG_MOVE_FALL_RESET = 0x2CA,
SMSG_INSTANCE_SAVE_CREATED = 0x2CB,
SMSG_RAID_INSTANCE_INFO = 0x2CC,
CMSG_REQUEST_RAID_INFO = 0x2CD,
CMSG_MOVE_TIME_SKIPPED = 0x2CE,
CMSG_MOVE_FEATHER_FALL_ACK = 0x2CF,
CMSG_MOVE_WATER_WALK_ACK = 0x2D0,
CMSG_MOVE_NOT_ACTIVE_MOVER = 0x2D1,
SMSG_PLAY_SOUND = 0x2D2,
CMSG_BATTLEFIELD_STATUS = 0x2D3,
SMSG_BATTLEFIELD_STATUS = 0x2D4,
CMSG_BATTLEFIELD_PORT = 0x2D5,
MSG_INSPECT_HONOR_STATS = 0x2D6,
CMSG_BATTLEMASTER_HELLO = 0x2D7,
CMSG_MOVE_START_SWIM_CHEAT = 0x2D8,
CMSG_MOVE_STOP_SWIM_CHEAT = 0x2D9,
SMSG_FORCE_WALK_SPEED_CHANGE = 0x2DA,
CMSG_FORCE_WALK_SPEED_CHANGE_ACK = 0x2DB,
SMSG_FORCE_SWIM_BACK_SPEED_CHANGE = 0x2DC,
CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK = 0x2DD,
SMSG_FORCE_TURN_RATE_CHANGE = 0x2DE,
CMSG_FORCE_TURN_RATE_CHANGE_ACK = 0x2DF,
MSG_PVP_LOG_DATA = 0x2E0,
CMSG_LEAVE_BATTLEFIELD = 0x2E1,
CMSG_AREA_SPIRIT_HEALER_QUERY = 0x2E2,
CMSG_AREA_SPIRIT_HEALER_QUEUE = 0x2E3,
SMSG_AREA_SPIRIT_HEALER_TIME = 0x2E4,
CMSG_GM_UNTEACH = 0x2E5,
SMSG_WARDEN_DATA = 0x2E6,
CMSG_WARDEN_DATA = 0x2E7,
SMSG_GROUP_JOINED_BATTLEGROUND = 0x2E8,
MSG_BATTLEGROUND_PLAYER_POSITIONS = 0x2E9,
CMSG_PET_STOP_ATTACK = 0x2EA,
SMSG_BINDER_CONFIRM = 0x2EB,
SMSG_BATTLEGROUND_PLAYER_JOINED = 0x2EC,
SMSG_BATTLEGROUND_PLAYER_LEFT = 0x2ED,
CMSG_BATTLEMASTER_JOIN = 0x2EE,
SMSG_ADDON_INFO = 0x2EF,
CMSG_PET_UNLEARN = 0x2F0,
SMSG_PET_UNLEARN_CONFIRM = 0x2F1,
SMSG_PARTY_MEMBER_STATS_FULL = 0x2F2,
CMSG_PET_SPELL_AUTOCAST = 0x2F3,
SMSG_WEATHER = 0x2F4,
SMSG_PLAY_TIME_WARNING = 0x2F5,
SMSG_MINIGAME_SETUP = 0x2F6,
SMSG_MINIGAME_STATE = 0x2F7,
CMSG_MINIGAME_MOVE = 0x2F8,
SMSG_MINIGAME_MOVE_FAILED = 0x2F9,
SMSG_RAID_INSTANCE_MESSAGE = 0x2FA,
SMSG_COMPRESSED_MOVES = 0x2FB,
CMSG_GUILD_INFO_TEXT = 0x2FC,
SMSG_CHAT_RESTRICTED = 0x2FD,
SMSG_SPLINE_SET_RUN_SPEED = 0x2FE,
SMSG_SPLINE_SET_RUN_BACK_SPEED = 0x2FF,
SMSG_SPLINE_SET_SWIM_SPEED = 0x300,
SMSG_SPLINE_SET_WALK_SPEED = 0x301,
SMSG_SPLINE_SET_SWIM_BACK_SPEED = 0x302,
SMSG_SPLINE_SET_TURN_RATE = 0x303,
SMSG_SPLINE_MOVE_UNROOT = 0x304,
SMSG_SPLINE_MOVE_FEATHER_FALL = 0x305,
SMSG_SPLINE_MOVE_NORMAL_FALL = 0x306,
SMSG_SPLINE_MOVE_SET_HOVER = 0x307,
SMSG_SPLINE_MOVE_UNSET_HOVER = 0x308,
SMSG_SPLINE_MOVE_WATER_WALK = 0x309,
SMSG_SPLINE_MOVE_LAND_WALK = 0x30A,
SMSG_SPLINE_MOVE_START_SWIM = 0x30B,
SMSG_SPLINE_MOVE_STOP_SWIM = 0x30C,
SMSG_SPLINE_MOVE_SET_RUN_MODE = 0x30D,
SMSG_SPLINE_MOVE_SET_WALK_MODE = 0x30E,
CMSG_GM_NUKE_ACCOUNT = 0x30F,
MSG_GM_DESTROY_CORPSE = 0x310,
CMSG_GM_DESTROY_ONLINE_CORPSE = 0x311,
CMSG_ACTIVATETAXIEXPRESS = 0x312,
SMSG_SET_FACTION_ATWAR = 0x313,
SMSG_GAMETIMEBIAS_SET = 0x314,
CMSG_DEBUG_ACTIONS_START = 0x315,
CMSG_DEBUG_ACTIONS_STOP = 0x316,
CMSG_SET_FACTION_INACTIVE = 0x317,
CMSG_SET_WATCHED_FACTION = 0x318,
MSG_MOVE_TIME_SKIPPED = 0x319,
SMSG_SPLINE_MOVE_ROOT = 0x31A,
CMSG_SET_EXPLORATION_ALL = 0x31B,
SMSG_INVALIDATE_PLAYER = 0x31C,
CMSG_RESET_INSTANCES = 0x31D,
SMSG_INSTANCE_RESET = 0x31E,
SMSG_INSTANCE_RESET_FAILED = 0x31F,
SMSG_UPDATE_LAST_INSTANCE = 0x320,
MSG_RAID_TARGET_UPDATE = 0x321,
MSG_RAID_READY_CHECK = 0x322,
CMSG_LUA_USAGE = 0x323,
SMSG_PET_ACTION_SOUND = 0x324,
SMSG_PET_DISMISS_SOUND = 0x325,
SMSG_GHOSTEE_GONE = 0x326,
CMSG_GM_UPDATE_TICKET_STATUS = 0x327,
SMSG_GM_TICKET_STATUS_UPDATE = 0x328,
CMSG_GMSURVEY_SUBMIT = 0x32A,
SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x32B,
CMSG_IGNORE_KNOCKBACK_CHEAT = 0x32C,
SMSG_CHAT_PLAYER_AMBIGUOUS = 0x32D,
MSG_DELAY_GHOST_TELEPORT = 0x32E,
SMSG_SPELLINSTAKILLLOG = 0x32F,
SMSG_SPELL_UPDATE_CHAIN_TARGETS = 0x330,
CMSG_CHAT_FILTERED = 0x331,
SMSG_EXPECTED_SPAM_RECORDS = 0x332,
SMSG_SPELLSTEALLOG = 0x333,
CMSG_LOTTERY_QUERY_OBSOLETE = 0x334,
SMSG_LOTTERY_QUERY_RESULT_OBSOLETE = 0x335,
CMSG_BUY_LOTTERY_TICKET_OBSOLETE = 0x336,
SMSG_LOTTERY_RESULT_OBSOLETE = 0x337,
SMSG_CHARACTER_PROFILE = 0x338,
SMSG_CHARACTER_PROFILE_REALM_CONNECTED = 0x339,
SMSG_DEFENSE_MESSAGE = 0x33A,
MSG_GM_RESETINSTANCELIMIT = 0x33C,
SMSG_MOTD = 0x33D,
SMSG_MOVE_SET_FLIGHT = 0x33E,
SMSG_MOVE_UNSET_FLIGHT = 0x33F,
CMSG_MOVE_FLIGHT_ACK = 0x340,
MSG_MOVE_START_SWIM_CHEAT = 0x341,
MSG_MOVE_STOP_SWIM_CHEAT = 0x342,
CMSG_CANCEL_MOUNT_AURA = 0x375,
CMSG_CANCEL_TEMP_ENCHANTMENT = 0x379,
CMSG_MAELSTROM_INVALIDATE_CACHE = 0x387,
CMSG_SET_TAXI_BENCHMARK_MODE = 0x389,
CMSG_MOVE_CHNG_TRANSPORT = 0x38D,
MSG_PARTY_ASSIGNMENT = 0x38E,
SMSG_OFFER_PETITION_ERROR = 0x38F,
SMSG_RESET_FAILED_NOTIFY = 0x396,
SMSG_REAL_GROUP_UPDATE = 0x397,
SMSG_INIT_EXTRA_AURA_INFO = 0x3A3,
SMSG_SET_EXTRA_AURA_INFO = 0x3A4,
SMSG_SET_EXTRA_AURA_INFO_NEED_UPDATE = 0x3A5,
SMSG_SPELL_CHANCE_PROC_LOG = 0x3AA,
CMSG_MOVE_SET_RUN_SPEED = 0x3AB,
SMSG_DISMOUNT = 0x3AC,
MSG_RAID_READY_CHECK_CONFIRM = 0x3AE,
SMSG_CLEAR_TARGET = 0x3BE,
CMSG_BOT_DETECTED = 0x3BF,
SMSG_KICK_REASON = 0x3C4,
MSG_RAID_READY_CHECK_FINISHED = 0x3C5,
CMSG_TARGET_CAST = 0x3CF,
CMSG_TARGET_SCRIPT_CAST = 0x3D0,
CMSG_CHANNEL_DISPLAY_LIST = 0x3D1,
CMSG_GET_CHANNEL_MEMBER_COUNT = 0x3D3,
SMSG_CHANNEL_MEMBER_COUNT = 0x3D4,
CMSG_DEBUG_LIST_TARGETS = 0x3D7,
SMSG_DEBUG_LIST_TARGETS = 0x3D8,
CMSG_PARTY_SILENCE = 0x3DC,
CMSG_PARTY_UNSILENCE = 0x3DD,
MSG_NOTIFY_PARTY_SQUELCH = 0x3DE,
SMSG_COMSAT_RECONNECT_TRY = 0x3DF,
SMSG_COMSAT_DISCONNECT = 0x3E0,
SMSG_COMSAT_CONNECT_FAIL = 0x3E1,
CMSG_SET_CHANNEL_WATCH = 0x3EE,
SMSG_USERLIST_ADD = 0x3EF,
SMSG_USERLIST_REMOVE = 0x3F0,
SMSG_USERLIST_UPDATE = 0x3F1,
CMSG_CLEAR_CHANNEL_WATCH = 0x3F2,
SMSG_GOGOGO_OBSOLETE = 0x3F4,
SMSG_ECHO_PARTY_SQUELCH = 0x3F5,
CMSG_SPELLCLICK = 0x3F7,
SMSG_LOOT_LIST = 0x3F8,
MSG_GUILD_PERMISSIONS = 0x3FC,
MSG_GUILD_EVENT_LOG_QUERY = 0x3FE,
CMSG_MAELSTROM_RENAME_GUILD = 0x3FF,
CMSG_GET_MIRRORIMAGE_DATA = 0x400,
SMSG_MIRRORIMAGE_DATA = 0x401,
SMSG_FORCE_DISPLAY_UPDATE = 0x402,
SMSG_SPELL_CHANCE_RESIST_PUSHBACK = 0x403,
CMSG_IGNORE_DIMINISHING_RETURNS_CHEAT = 0x404,
SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT = 0x405,
CMSG_KEEP_ALIVE = 0x406,
SMSG_RAID_READY_CHECK_ERROR = 0x407,
CMSG_OPT_OUT_OF_LOOT = 0x408,
CMSG_SET_GRANTABLE_LEVELS = 0x40B,
CMSG_GRANT_LEVEL = 0x40C,
CMSG_DECLINE_CHANNEL_INVITE = 0x40F,
CMSG_GROUPACTION_THROTTLED = 0x410,
SMSG_OVERRIDE_LIGHT = 0x411,
SMSG_TOTEM_CREATED = 0x412,
CMSG_TOTEM_DESTROYED = 0x413,
CMSG_EXPIRE_RAID_INSTANCE = 0x414,
CMSG_NO_SPELL_VARIANCE = 0x415,
CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY = 0x416,
SMSG_QUESTGIVER_STATUS_MULTIPLE = 0x417,
CMSG_QUERY_SERVER_BUCK_DATA = 0x41A,
CMSG_CLEAR_SERVER_BUCK_DATA = 0x41B,
SMSG_SERVER_BUCK_DATA = 0x41C,
SMSG_SEND_UNLEARN_SPELLS = 0x41D,
SMSG_PROPOSE_LEVEL_GRANT = 0x41E,
CMSG_ACCEPT_LEVEL_GRANT = 0x41F,
SMSG_REFER_A_FRIEND_FAILURE = 0x420,
SMSG_SUMMON_CANCEL = 0x423
} world_packets;
static const value_string world_packet_strings[] = {
{ MSG_NULL_ACTION, "MSG_NULL_ACTION" },
{ CMSG_BOOTME, "CMSG_BOOTME" },
{ CMSG_DBLOOKUP, "CMSG_DBLOOKUP" },
{ SMSG_DBLOOKUP, "SMSG_DBLOOKUP" },
{ CMSG_QUERY_OBJECT_POSITION, "CMSG_QUERY_OBJECT_POSITION" },
{ SMSG_QUERY_OBJECT_POSITION, "SMSG_QUERY_OBJECT_POSITION" },
{ CMSG_QUERY_OBJECT_ROTATION, "CMSG_QUERY_OBJECT_ROTATION" },
{ SMSG_QUERY_OBJECT_ROTATION, "SMSG_QUERY_OBJECT_ROTATION" },
{ CMSG_WORLD_TELEPORT, "CMSG_WORLD_TELEPORT" },
{ CMSG_TELEPORT_TO_UNIT, "CMSG_TELEPORT_TO_UNIT" },
{ CMSG_ZONE_MAP, "CMSG_ZONE_MAP" },
{ SMSG_ZONE_MAP, "SMSG_ZONE_MAP" },
{ CMSG_DEBUG_CHANGECELLZONE, "CMSG_DEBUG_CHANGECELLZONE" },
{ CMSG_EMBLAZON_TABARD_OBSOLETE, "CMSG_EMBLAZON_TABARD_OBSOLETE" },
{ CMSG_UNEMBLAZON_TABARD_OBSOLETE, "CMSG_UNEMBLAZON_TABARD_OBSOLETE" },
{ CMSG_RECHARGE, "CMSG_RECHARGE" },
{ CMSG_LEARN_SPELL, "CMSG_LEARN_SPELL" },
{ CMSG_CREATEMONSTER, "CMSG_CREATEMONSTER" },
{ CMSG_DESTROYMONSTER, "CMSG_DESTROYMONSTER" },
{ CMSG_CREATEITEM, "CMSG_CREATEITEM" },
{ CMSG_CREATEGAMEOBJECT, "CMSG_CREATEGAMEOBJECT" },
{ SMSG_CHECK_FOR_BOTS, "SMSG_CHECK_FOR_BOTS" },
{ CMSG_MAKEMONSTERATTACKGUID, "CMSG_MAKEMONSTERATTACKGUID" },
{ CMSG_BOT_DETECTED2, "CMSG_BOT_DETECTED2" },
{ CMSG_FORCEACTION, "CMSG_FORCEACTION" },
{ CMSG_FORCEACTIONONOTHER, "CMSG_FORCEACTIONONOTHER" },
{ CMSG_FORCEACTIONSHOW, "CMSG_FORCEACTIONSHOW" },
{ SMSG_FORCEACTIONSHOW, "SMSG_FORCEACTIONSHOW" },
{ CMSG_PETGODMODE, "CMSG_PETGODMODE" },
{ SMSG_PETGODMODE, "SMSG_PETGODMODE" },
{ SMSG_DEBUGINFOSPELLMISS_OBSOLETE, "SMSG_DEBUGINFOSPELLMISS_OBSOLETE" },
{ CMSG_WEATHER_SPEED_CHEAT, "CMSG_WEATHER_SPEED_CHEAT" },
{ CMSG_UNDRESSPLAYER, "CMSG_UNDRESSPLAYER" },
{ CMSG_BEASTMASTER, "CMSG_BEASTMASTER" },
{ CMSG_GODMODE, "CMSG_GODMODE" },
{ SMSG_GODMODE, "SMSG_GODMODE" },
{ CMSG_CHEAT_SETMONEY, "CMSG_CHEAT_SETMONEY" },
{ CMSG_LEVEL_CHEAT, "CMSG_LEVEL_CHEAT" },
{ CMSG_PET_LEVEL_CHEAT, "CMSG_PET_LEVEL_CHEAT" },
{ CMSG_SET_WORLDSTATE, "CMSG_SET_WORLDSTATE" },
{ CMSG_COOLDOWN_CHEAT, "CMSG_COOLDOWN_CHEAT" },
{ CMSG_USE_SKILL_CHEAT, "CMSG_USE_SKILL_CHEAT" },
{ CMSG_FLAG_QUEST, "CMSG_FLAG_QUEST" },
{ CMSG_FLAG_QUEST_FINISH, "CMSG_FLAG_QUEST_FINISH" },
{ CMSG_CLEAR_QUEST, "CMSG_CLEAR_QUEST" },
{ CMSG_SEND_EVENT, "CMSG_SEND_EVENT" },
{ CMSG_DEBUG_AISTATE, "CMSG_DEBUG_AISTATE" },
{ SMSG_DEBUG_AISTATE, "SMSG_DEBUG_AISTATE" },
{ CMSG_DISABLE_PVP_CHEAT, "CMSG_DISABLE_PVP_CHEAT" },
{ CMSG_ADVANCE_SPAWN_TIME, "CMSG_ADVANCE_SPAWN_TIME" },
{ CMSG_PVP_PORT_OBSOLETE, "CMSG_PVP_PORT_OBSOLETE" },
{ CMSG_AUTH_SRP6_BEGIN, "CMSG_AUTH_SRP6_BEGIN" },
{ CMSG_AUTH_SRP6_PROOF, "CMSG_AUTH_SRP6_PROOF" },
{ CMSG_AUTH_SRP6_RECODE, "CMSG_AUTH_SRP6_RECODE" },
{ CMSG_CHAR_CREATE, "CMSG_CHAR_CREATE" },
{ CMSG_CHAR_ENUM, "CMSG_CHAR_ENUM" },
{ CMSG_CHAR_DELETE, "CMSG_CHAR_DELETE" },
{ SMSG_AUTH_SRP6_RESPONSE, "SMSG_AUTH_SRP6_RESPONSE" },
{ SMSG_CHAR_CREATE, "SMSG_CHAR_CREATE" },
{ SMSG_CHAR_ENUM, "SMSG_CHAR_ENUM" },
{ SMSG_CHAR_DELETE, "SMSG_CHAR_DELETE" },
{ CMSG_PLAYER_LOGIN, "CMSG_PLAYER_LOGIN" },
{ SMSG_NEW_WORLD, "SMSG_NEW_WORLD" },
{ SMSG_TRANSFER_PENDING, "SMSG_TRANSFER_PENDING" },
{ SMSG_TRANSFER_ABORTED, "SMSG_TRANSFER_ABORTED" },
{ SMSG_CHARACTER_LOGIN_FAILED, "SMSG_CHARACTER_LOGIN_FAILED" },
{ SMSG_LOGIN_SETTIMESPEED, "SMSG_LOGIN_SETTIMESPEED" },
{ SMSG_GAMETIME_UPDATE, "SMSG_GAMETIME_UPDATE" },
{ CMSG_GAMETIME_SET, "CMSG_GAMETIME_SET" },
{ SMSG_GAMETIME_SET, "SMSG_GAMETIME_SET" },
{ CMSG_GAMESPEED_SET, "CMSG_GAMESPEED_SET" },
{ SMSG_GAMESPEED_SET, "SMSG_GAMESPEED_SET" },
{ CMSG_SERVERTIME, "CMSG_SERVERTIME" },
{ SMSG_SERVERTIME, "SMSG_SERVERTIME" },
{ CMSG_PLAYER_LOGOUT, "CMSG_PLAYER_LOGOUT" },
{ CMSG_LOGOUT_REQUEST, "CMSG_LOGOUT_REQUEST" },
{ SMSG_LOGOUT_RESPONSE, "SMSG_LOGOUT_RESPONSE" },
{ SMSG_LOGOUT_COMPLETE, "SMSG_LOGOUT_COMPLETE" },
{ CMSG_LOGOUT_CANCEL, "CMSG_LOGOUT_CANCEL" },
{ SMSG_LOGOUT_CANCEL_ACK, "SMSG_LOGOUT_CANCEL_ACK" },
{ CMSG_NAME_QUERY, "CMSG_NAME_QUERY" },
{ SMSG_NAME_QUERY_RESPONSE, "SMSG_NAME_QUERY_RESPONSE" },
{ CMSG_PET_NAME_QUERY, "CMSG_PET_NAME_QUERY" },
{ SMSG_PET_NAME_QUERY_RESPONSE, "SMSG_PET_NAME_QUERY_RESPONSE" },
{ CMSG_GUILD_QUERY, "CMSG_GUILD_QUERY" },
{ SMSG_GUILD_QUERY_RESPONSE, "SMSG_GUILD_QUERY_RESPONSE" },
{ CMSG_ITEM_QUERY_SINGLE, "CMSG_ITEM_QUERY_SINGLE" },
{ CMSG_ITEM_QUERY_MULTIPLE, "CMSG_ITEM_QUERY_MULTIPLE" },
{ SMSG_ITEM_QUERY_SINGLE_RESPONSE, "SMSG_ITEM_QUERY_SINGLE_RESPONSE" },
{ SMSG_ITEM_QUERY_MULTIPLE_RESPONSE, "SMSG_ITEM_QUERY_MULTIPLE_RESPONSE" },
{ CMSG_PAGE_TEXT_QUERY, "CMSG_PAGE_TEXT_QUERY" },
{ SMSG_PAGE_TEXT_QUERY_RESPONSE, "SMSG_PAGE_TEXT_QUERY_RESPONSE" },
{ CMSG_QUEST_QUERY, "CMSG_QUEST_QUERY" },
{ SMSG_QUEST_QUERY_RESPONSE, "SMSG_QUEST_QUERY_RESPONSE" },
{ CMSG_GAMEOBJECT_QUERY, "CMSG_GAMEOBJECT_QUERY" },
{ SMSG_GAMEOBJECT_QUERY_RESPONSE, "SMSG_GAMEOBJECT_QUERY_RESPONSE" },
{ CMSG_CREATURE_QUERY, "CMSG_CREATURE_QUERY" },
{ SMSG_CREATURE_QUERY_RESPONSE, "SMSG_CREATURE_QUERY_RESPONSE" },
{ CMSG_WHO, "CMSG_WHO" },
{ SMSG_WHO, "SMSG_WHO" },
{ CMSG_WHOIS, "CMSG_WHOIS" },
{ SMSG_WHOIS, "SMSG_WHOIS" },
{ CMSG_FRIEND_LIST, "CMSG_FRIEND_LIST" },
{ SMSG_FRIEND_LIST, "SMSG_FRIEND_LIST" },
{ SMSG_FRIEND_STATUS, "SMSG_FRIEND_STATUS" },
{ CMSG_ADD_FRIEND, "CMSG_ADD_FRIEND" },
{ CMSG_DEL_FRIEND, "CMSG_DEL_FRIEND" },
{ SMSG_IGNORE_LIST, "SMSG_IGNORE_LIST" },
{ CMSG_ADD_IGNORE, "CMSG_ADD_IGNORE" },
{ CMSG_DEL_IGNORE, "CMSG_DEL_IGNORE" },
{ CMSG_GROUP_INVITE, "CMSG_GROUP_INVITE" },
{ SMSG_GROUP_INVITE, "SMSG_GROUP_INVITE" },
{ CMSG_GROUP_CANCEL, "CMSG_GROUP_CANCEL" },
{ SMSG_GROUP_CANCEL, "SMSG_GROUP_CANCEL" },
{ CMSG_GROUP_ACCEPT, "CMSG_GROUP_ACCEPT" },
{ CMSG_GROUP_DECLINE, "CMSG_GROUP_DECLINE" },
{ SMSG_GROUP_DECLINE, "SMSG_GROUP_DECLINE" },
{ CMSG_GROUP_UNINVITE, "CMSG_GROUP_UNINVITE" },
{ CMSG_GROUP_UNINVITE_GUID, "CMSG_GROUP_UNINVITE_GUID" },
{ SMSG_GROUP_UNINVITE, "SMSG_GROUP_UNINVITE" },
{ CMSG_GROUP_SET_LEADER, "CMSG_GROUP_SET_LEADER" },
{ SMSG_GROUP_SET_LEADER, "SMSG_GROUP_SET_LEADER" },
{ CMSG_LOOT_METHOD, "CMSG_LOOT_METHOD" },
{ CMSG_GROUP_DISBAND, "CMSG_GROUP_DISBAND" },
{ SMSG_GROUP_DESTROYED, "SMSG_GROUP_DESTROYED" },
{ SMSG_GROUP_LIST, "SMSG_GROUP_LIST" },
{ SMSG_PARTY_MEMBER_STATS, "SMSG_PARTY_MEMBER_STATS" },
{ SMSG_PARTY_COMMAND_RESULT, "SMSG_PARTY_COMMAND_RESULT" },
{ UMSG_UPDATE_GROUP_MEMBERS, "UMSG_UPDATE_GROUP_MEMBERS" },
{ CMSG_GUILD_CREATE, "CMSG_GUILD_CREATE" },
{ CMSG_GUILD_INVITE, "CMSG_GUILD_INVITE" },
{ SMSG_GUILD_INVITE, "SMSG_GUILD_INVITE" },
{ CMSG_GUILD_ACCEPT, "CMSG_GUILD_ACCEPT" },
{ CMSG_GUILD_DECLINE, "CMSG_GUILD_DECLINE" },
{ SMSG_GUILD_DECLINE, "SMSG_GUILD_DECLINE" },
{ CMSG_GUILD_INFO, "CMSG_GUILD_INFO" },
{ SMSG_GUILD_INFO, "SMSG_GUILD_INFO" },
{ CMSG_GUILD_ROSTER, "CMSG_GUILD_ROSTER" },
{ SMSG_GUILD_ROSTER, "SMSG_GUILD_ROSTER" },
{ CMSG_GUILD_PROMOTE, "CMSG_GUILD_PROMOTE" },
{ CMSG_GUILD_DEMOTE, "CMSG_GUILD_DEMOTE" },
{ CMSG_GUILD_LEAVE, "CMSG_GUILD_LEAVE" },
{ CMSG_GUILD_REMOVE, "CMSG_GUILD_REMOVE" },
{ CMSG_GUILD_DISBAND, "CMSG_GUILD_DISBAND" },
{ CMSG_GUILD_LEADER, "CMSG_GUILD_LEADER" },
{ CMSG_GUILD_MOTD, "CMSG_GUILD_MOTD" },
{ SMSG_GUILD_EVENT, "SMSG_GUILD_EVENT" },
{ SMSG_GUILD_COMMAND_RESULT, "SMSG_GUILD_COMMAND_RESULT" },
{ UMSG_UPDATE_GUILD, "UMSG_UPDATE_GUILD" },
{ CMSG_MESSAGECHAT, "CMSG_MESSAGECHAT" },
{ SMSG_MESSAGECHAT, "SMSG_MESSAGECHAT" },
{ CMSG_JOIN_CHANNEL, "CMSG_JOIN_CHANNEL" },
{ CMSG_LEAVE_CHANNEL, "CMSG_LEAVE_CHANNEL" },
{ SMSG_CHANNEL_NOTIFY, "SMSG_CHANNEL_NOTIFY" },
{ CMSG_CHANNEL_LIST, "CMSG_CHANNEL_LIST" },
{ SMSG_CHANNEL_LIST, "SMSG_CHANNEL_LIST" },
{ CMSG_CHANNEL_PASSWORD, "CMSG_CHANNEL_PASSWORD" },
{ CMSG_CHANNEL_SET_OWNER, "CMSG_CHANNEL_SET_OWNER" },
{ CMSG_CHANNEL_OWNER, "CMSG_CHANNEL_OWNER" },
{ CMSG_CHANNEL_MODERATOR, "CMSG_CHANNEL_MODERATOR" },
{ CMSG_CHANNEL_UNMODERATOR, "CMSG_CHANNEL_UNMODERATOR" },
{ CMSG_CHANNEL_MUTE, "CMSG_CHANNEL_MUTE" },
{ CMSG_CHANNEL_UNMUTE, "CMSG_CHANNEL_UNMUTE" },
{ CMSG_CHANNEL_INVITE, "CMSG_CHANNEL_INVITE" },
{ CMSG_CHANNEL_KICK, "CMSG_CHANNEL_KICK" },
{ CMSG_CHANNEL_BAN, "CMSG_CHANNEL_BAN" },
{ CMSG_CHANNEL_UNBAN, "CMSG_CHANNEL_UNBAN" },
{ CMSG_CHANNEL_ANNOUNCEMENTS, "CMSG_CHANNEL_ANNOUNCEMENTS" },
{ CMSG_CHANNEL_MODERATE, "CMSG_CHANNEL_MODERATE" },
{ SMSG_UPDATE_OBJECT, "SMSG_UPDATE_OBJECT" },
{ SMSG_DESTROY_OBJECT, "SMSG_DESTROY_OBJECT" },
{ CMSG_USE_ITEM, "CMSG_USE_ITEM" },
{ CMSG_OPEN_ITEM, "CMSG_OPEN_ITEM" },
{ CMSG_READ_ITEM, "CMSG_READ_ITEM" },
{ SMSG_READ_ITEM_OK, "SMSG_READ_ITEM_OK" },
{ SMSG_READ_ITEM_FAILED, "SMSG_READ_ITEM_FAILED" },
{ SMSG_ITEM_COOLDOWN, "SMSG_ITEM_COOLDOWN" },
{ CMSG_GAMEOBJ_USE, "CMSG_GAMEOBJ_USE" },
{ CMSG_GAMEOBJ_CHAIR_USE_OBSOLETE, "CMSG_GAMEOBJ_CHAIR_USE_OBSOLETE" },
{ SMSG_GAMEOBJECT_CUSTOM_ANIM, "SMSG_GAMEOBJECT_CUSTOM_ANIM" },
{ CMSG_AREATRIGGER, "CMSG_AREATRIGGER" },
{ MSG_MOVE_START_FORWARD, "MSG_MOVE_START_FORWARD" },
{ MSG_MOVE_START_BACKWARD, "MSG_MOVE_START_BACKWARD" },
{ MSG_MOVE_STOP, "MSG_MOVE_STOP" },
{ MSG_MOVE_START_STRAFE_LEFT, "MSG_MOVE_START_STRAFE_LEFT" },
{ MSG_MOVE_START_STRAFE_RIGHT, "MSG_MOVE_START_STRAFE_RIGHT" },
{ MSG_MOVE_STOP_STRAFE, "MSG_MOVE_STOP_STRAFE" },
{ MSG_MOVE_JUMP, "MSG_MOVE_JUMP" },
{ MSG_MOVE_START_TURN_LEFT, "MSG_MOVE_START_TURN_LEFT" },
{ MSG_MOVE_START_TURN_RIGHT, "MSG_MOVE_START_TURN_RIGHT" },
{ MSG_MOVE_STOP_TURN, "MSG_MOVE_STOP_TURN" },
{ MSG_MOVE_START_PITCH_UP, "MSG_MOVE_START_PITCH_UP" },
{ MSG_MOVE_START_PITCH_DOWN, "MSG_MOVE_START_PITCH_DOWN" },
{ MSG_MOVE_STOP_PITCH, "MSG_MOVE_STOP_PITCH" },
{ MSG_MOVE_SET_RUN_MODE, "MSG_MOVE_SET_RUN_MODE" },
{ MSG_MOVE_SET_WALK_MODE, "MSG_MOVE_SET_WALK_MODE" },
{ MSG_MOVE_TOGGLE_LOGGING, "MSG_MOVE_TOGGLE_LOGGING" },
{ MSG_MOVE_TELEPORT, "MSG_MOVE_TELEPORT" },
{ MSG_MOVE_TELEPORT_CHEAT, "MSG_MOVE_TELEPORT_CHEAT" },
{ MSG_MOVE_TELEPORT_ACK, "MSG_MOVE_TELEPORT_ACK" },
{ MSG_MOVE_TOGGLE_FALL_LOGGING, "MSG_MOVE_TOGGLE_FALL_LOGGING" },
{ MSG_MOVE_FALL_LAND, "MSG_MOVE_FALL_LAND" },
{ MSG_MOVE_START_SWIM, "MSG_MOVE_START_SWIM" },
{ MSG_MOVE_STOP_SWIM, "MSG_MOVE_STOP_SWIM" },
{ MSG_MOVE_SET_RUN_SPEED_CHEAT, "MSG_MOVE_SET_RUN_SPEED_CHEAT" },
{ MSG_MOVE_SET_RUN_SPEED, "MSG_MOVE_SET_RUN_SPEED" },
{ MSG_MOVE_SET_RUN_BACK_SPEED_CHEAT, "MSG_MOVE_SET_RUN_BACK_SPEED_CHEAT" },
{ MSG_MOVE_SET_RUN_BACK_SPEED, "MSG_MOVE_SET_RUN_BACK_SPEED" },
{ MSG_MOVE_SET_WALK_SPEED_CHEAT, "MSG_MOVE_SET_WALK_SPEED_CHEAT" },
{ MSG_MOVE_SET_WALK_SPEED, "MSG_MOVE_SET_WALK_SPEED" },
{ MSG_MOVE_SET_SWIM_SPEED_CHEAT, "MSG_MOVE_SET_SWIM_SPEED_CHEAT" },
{ MSG_MOVE_SET_SWIM_SPEED, "MSG_MOVE_SET_SWIM_SPEED" },
{ MSG_MOVE_SET_SWIM_BACK_SPEED_CHEAT, "MSG_MOVE_SET_SWIM_BACK_SPEED_CHEAT" },
{ MSG_MOVE_SET_SWIM_BACK_SPEED, "MSG_MOVE_SET_SWIM_BACK_SPEED" },
{ MSG_MOVE_SET_ALL_SPEED_CHEAT, "MSG_MOVE_SET_ALL_SPEED_CHEAT" },
{ MSG_MOVE_SET_TURN_RATE_CHEAT, "MSG_MOVE_SET_TURN_RATE_CHEAT" },
{ MSG_MOVE_SET_TURN_RATE, "MSG_MOVE_SET_TURN_RATE" },
{ MSG_MOVE_TOGGLE_COLLISION_CHEAT, "MSG_MOVE_TOGGLE_COLLISION_CHEAT" },
{ MSG_MOVE_SET_FACING, "MSG_MOVE_SET_FACING" },
{ MSG_MOVE_SET_PITCH, "MSG_MOVE_SET_PITCH" },
{ MSG_MOVE_WORLDPORT_ACK, "MSG_MOVE_WORLDPORT_ACK" },
{ SMSG_MONSTER_MOVE, "SMSG_MONSTER_MOVE" },
{ SMSG_MOVE_WATER_WALK, "SMSG_MOVE_WATER_WALK" },
{ SMSG_MOVE_LAND_WALK, "SMSG_MOVE_LAND_WALK" },
{ MSG_MOVE_SET_RAW_POSITION_ACK, "MSG_MOVE_SET_RAW_POSITION_ACK" },
{ CMSG_MOVE_SET_RAW_POSITION, "CMSG_MOVE_SET_RAW_POSITION" },
{ SMSG_FORCE_RUN_SPEED_CHANGE, "SMSG_FORCE_RUN_SPEED_CHANGE" },
{ CMSG_FORCE_RUN_SPEED_CHANGE_ACK, "CMSG_FORCE_RUN_SPEED_CHANGE_ACK" },
{ SMSG_FORCE_RUN_BACK_SPEED_CHANGE, "SMSG_FORCE_RUN_BACK_SPEED_CHANGE" },
{ CMSG_FORCE_RUN_BACK_SPEED_CHANGE_ACK, "CMSG_FORCE_RUN_BACK_SPEED_CHANGE_ACK" },
{ SMSG_FORCE_SWIM_SPEED_CHANGE, "SMSG_FORCE_SWIM_SPEED_CHANGE" },
{ CMSG_FORCE_SWIM_SPEED_CHANGE_ACK, "CMSG_FORCE_SWIM_SPEED_CHANGE_ACK" },
{ SMSG_FORCE_MOVE_ROOT, "SMSG_FORCE_MOVE_ROOT" },
{ CMSG_FORCE_MOVE_ROOT_ACK, "CMSG_FORCE_MOVE_ROOT_ACK" },
{ SMSG_FORCE_MOVE_UNROOT, "SMSG_FORCE_MOVE_UNROOT" },
{ CMSG_FORCE_MOVE_UNROOT_ACK, "CMSG_FORCE_MOVE_UNROOT_ACK" },
{ MSG_MOVE_ROOT, "MSG_MOVE_ROOT" },
{ MSG_MOVE_UNROOT, "MSG_MOVE_UNROOT" },
{ MSG_MOVE_HEARTBEAT, "MSG_MOVE_HEARTBEAT" },
{ SMSG_MOVE_KNOCK_BACK, "SMSG_MOVE_KNOCK_BACK" },
{ CMSG_MOVE_KNOCK_BACK_ACK, "CMSG_MOVE_KNOCK_BACK_ACK" },
{ MSG_MOVE_KNOCK_BACK, "MSG_MOVE_KNOCK_BACK" },
{ SMSG_MOVE_FEATHER_FALL, "SMSG_MOVE_FEATHER_FALL" },
{ SMSG_MOVE_NORMAL_FALL, "SMSG_MOVE_NORMAL_FALL" },
{ SMSG_MOVE_SET_HOVER, "SMSG_MOVE_SET_HOVER" },
{ SMSG_MOVE_UNSET_HOVER, "SMSG_MOVE_UNSET_HOVER" },
{ CMSG_MOVE_HOVER_ACK, "CMSG_MOVE_HOVER_ACK" },
{ MSG_MOVE_HOVER, "MSG_MOVE_HOVER" },
{ CMSG_TRIGGER_CINEMATIC_CHEAT, "CMSG_TRIGGER_CINEMATIC_CHEAT" },
{ CMSG_OPENING_CINEMATIC, "CMSG_OPENING_CINEMATIC" },
{ SMSG_TRIGGER_CINEMATIC, "SMSG_TRIGGER_CINEMATIC" },
{ CMSG_NEXT_CINEMATIC_CAMERA, "CMSG_NEXT_CINEMATIC_CAMERA" },
{ CMSG_COMPLETE_CINEMATIC, "CMSG_COMPLETE_CINEMATIC" },
{ SMSG_TUTORIAL_FLAGS, "SMSG_TUTORIAL_FLAGS" },
{ CMSG_TUTORIAL_FLAG, "CMSG_TUTORIAL_FLAG" },
{ CMSG_TUTORIAL_CLEAR, "CMSG_TUTORIAL_CLEAR" },
{ CMSG_TUTORIAL_RESET, "CMSG_TUTORIAL_RESET" },
{ CMSG_STANDSTATECHANGE, "CMSG_STANDSTATECHANGE" },
{ CMSG_EMOTE, "CMSG_EMOTE" },
{ SMSG_EMOTE, "SMSG_EMOTE" },
{ CMSG_TEXT_EMOTE, "CMSG_TEXT_EMOTE" },
{ SMSG_TEXT_EMOTE, "SMSG_TEXT_EMOTE" },
{ CMSG_AUTOEQUIP_GROUND_ITEM, "CMSG_AUTOEQUIP_GROUND_ITEM" },
{ CMSG_AUTOSTORE_GROUND_ITEM, "CMSG_AUTOSTORE_GROUND_ITEM" },
{ CMSG_AUTOSTORE_LOOT_ITEM, "CMSG_AUTOSTORE_LOOT_ITEM" },
{ CMSG_STORE_LOOT_IN_SLOT, "CMSG_STORE_LOOT_IN_SLOT" },
{ CMSG_AUTOEQUIP_ITEM, "CMSG_AUTOEQUIP_ITEM" },
{ CMSG_AUTOSTORE_BAG_ITEM, "CMSG_AUTOSTORE_BAG_ITEM" },
{ CMSG_SWAP_ITEM, "CMSG_SWAP_ITEM" },
{ CMSG_SWAP_INV_ITEM, "CMSG_SWAP_INV_ITEM" },
{ CMSG_SPLIT_ITEM, "CMSG_SPLIT_ITEM" },
{ CMSG_AUTOEQUIP_ITEM_SLOT, "CMSG_AUTOEQUIP_ITEM_SLOT" },
{ OBSOLETE_DROP_ITEM, "OBSOLETE_DROP_ITEM" },
{ CMSG_DESTROYITEM, "CMSG_DESTROYITEM" },
{ SMSG_INVENTORY_CHANGE_FAILURE, "SMSG_INVENTORY_CHANGE_FAILURE" },
{ SMSG_OPEN_CONTAINER, "SMSG_OPEN_CONTAINER" },
{ CMSG_INSPECT, "CMSG_INSPECT" },
{ SMSG_INSPECT, "SMSG_INSPECT" },
{ CMSG_INITIATE_TRADE, "CMSG_INITIATE_TRADE" },
{ CMSG_BEGIN_TRADE, "CMSG_BEGIN_TRADE" },
{ CMSG_BUSY_TRADE, "CMSG_BUSY_TRADE" },
{ CMSG_IGNORE_TRADE, "CMSG_IGNORE_TRADE" },
{ CMSG_ACCEPT_TRADE, "CMSG_ACCEPT_TRADE" },
{ CMSG_UNACCEPT_TRADE, "CMSG_UNACCEPT_TRADE" },
{ CMSG_CANCEL_TRADE, "CMSG_CANCEL_TRADE" },
{ CMSG_SET_TRADE_ITEM, "CMSG_SET_TRADE_ITEM" },
{ CMSG_CLEAR_TRADE_ITEM, "CMSG_CLEAR_TRADE_ITEM" },
{ CMSG_SET_TRADE_GOLD, "CMSG_SET_TRADE_GOLD" },
{ SMSG_TRADE_STATUS, "SMSG_TRADE_STATUS" },
{ SMSG_TRADE_STATUS_EXTENDED, "SMSG_TRADE_STATUS_EXTENDED" },
{ SMSG_INITIALIZE_FACTIONS, "SMSG_INITIALIZE_FACTIONS" },
{ SMSG_SET_FACTION_VISIBLE, "SMSG_SET_FACTION_VISIBLE" },
{ SMSG_SET_FACTION_STANDING, "SMSG_SET_FACTION_STANDING" },
{ CMSG_SET_FACTION_ATWAR, "CMSG_SET_FACTION_ATWAR" },
{ CMSG_SET_FACTION_CHEAT, "CMSG_SET_FACTION_CHEAT" },
{ SMSG_SET_PROFICIENCY, "SMSG_SET_PROFICIENCY" },
{ CMSG_SET_ACTION_BUTTON, "CMSG_SET_ACTION_BUTTON" },
{ SMSG_ACTION_BUTTONS, "SMSG_ACTION_BUTTONS" },
{ SMSG_INITIAL_SPELLS, "SMSG_INITIAL_SPELLS" },
{ SMSG_LEARNED_SPELL, "SMSG_LEARNED_SPELL" },
{ SMSG_SUPERCEDED_SPELL, "SMSG_SUPERCEDED_SPELL" },
{ CMSG_NEW_SPELL_SLOT, "CMSG_NEW_SPELL_SLOT" },
{ CMSG_CAST_SPELL, "CMSG_CAST_SPELL" },
{ CMSG_CANCEL_CAST, "CMSG_CANCEL_CAST" },
{ SMSG_CAST_RESULT, "SMSG_CAST_RESULT" },
{ SMSG_SPELL_START, "SMSG_SPELL_START" },
{ SMSG_SPELL_GO, "SMSG_SPELL_GO" },
{ SMSG_SPELL_FAILURE, "SMSG_SPELL_FAILURE" },
{ SMSG_SPELL_COOLDOWN, "SMSG_SPELL_COOLDOWN" },
{ SMSG_COOLDOWN_EVENT, "SMSG_COOLDOWN_EVENT" },
{ CMSG_CANCEL_AURA, "CMSG_CANCEL_AURA" },
{ SMSG_UPDATE_AURA_DURATION, "SMSG_UPDATE_AURA_DURATION" },
{ SMSG_PET_CAST_FAILED, "SMSG_PET_CAST_FAILED" },
{ MSG_CHANNEL_START, "MSG_CHANNEL_START" },
{ MSG_CHANNEL_UPDATE, "MSG_CHANNEL_UPDATE" },
{ CMSG_CANCEL_CHANNELLING, "CMSG_CANCEL_CHANNELLING" },
{ SMSG_AI_REACTION, "SMSG_AI_REACTION" },
{ CMSG_SET_SELECTION, "CMSG_SET_SELECTION" },
{ CMSG_SET_TARGET_OBSOLETE, "CMSG_SET_TARGET_OBSOLETE" },
{ CMSG_UNUSED, "CMSG_UNUSED" },
{ CMSG_UNUSED2, "CMSG_UNUSED2" },
{ CMSG_ATTACKSWING, "CMSG_ATTACKSWING" },
{ CMSG_ATTACKSTOP, "CMSG_ATTACKSTOP" },
{ SMSG_ATTACKSTART, "SMSG_ATTACKSTART" },
{ SMSG_ATTACKSTOP, "SMSG_ATTACKSTOP" },
{ SMSG_ATTACKSWING_NOTINRANGE, "SMSG_ATTACKSWING_NOTINRANGE" },
{ SMSG_ATTACKSWING_BADFACING, "SMSG_ATTACKSWING_BADFACING" },
{ SMSG_ATTACKSWING_NOTSTANDING, "SMSG_ATTACKSWING_NOTSTANDING" },
{ SMSG_ATTACKSWING_DEADTARGET, "SMSG_ATTACKSWING_DEADTARGET" },
{ SMSG_ATTACKSWING_CANT_ATTACK, "SMSG_ATTACKSWING_CANT_ATTACK" },
{ SMSG_ATTACKERSTATEUPDATE, "SMSG_ATTACKERSTATEUPDATE" },
{ SMSG_VICTIMSTATEUPDATE_OBSOLETE, "SMSG_VICTIMSTATEUPDATE_OBSOLETE" },
{ SMSG_DAMAGE_DONE_OBSOLETE, "SMSG_DAMAGE_DONE_OBSOLETE" },
{ SMSG_DAMAGE_TAKEN_OBSOLETE, "SMSG_DAMAGE_TAKEN_OBSOLETE" },
{ SMSG_CANCEL_COMBAT, "SMSG_CANCEL_COMBAT" },
{ SMSG_PLAYER_COMBAT_XP_GAIN_OBSOLETE, "SMSG_PLAYER_COMBAT_XP_GAIN_OBSOLETE" },
{ SMSG_SPELLHEALLOG, "SMSG_SPELLHEALLOG" },
{ SMSG_SPELLENERGIZELOG, "SMSG_SPELLENERGIZELOG" },
{ CMSG_SHEATHE_OBSOLETE, "CMSG_SHEATHE_OBSOLETE" },
{ CMSG_SAVE_PLAYER, "CMSG_SAVE_PLAYER" },
{ CMSG_SETDEATHBINDPOINT, "CMSG_SETDEATHBINDPOINT" },
{ SMSG_BINDPOINTUPDATE, "SMSG_BINDPOINTUPDATE" },
{ CMSG_GETDEATHBINDZONE, "CMSG_GETDEATHBINDZONE" },
{ SMSG_BINDZONEREPLY, "SMSG_BINDZONEREPLY" },
{ SMSG_PLAYERBOUND, "SMSG_PLAYERBOUND" },
{ SMSG_CLIENT_CONTROL_UPDATE, "SMSG_CLIENT_CONTROL_UPDATE" },
{ CMSG_REPOP_REQUEST, "CMSG_REPOP_REQUEST" },
{ SMSG_RESURRECT_REQUEST, "SMSG_RESURRECT_REQUEST" },
{ CMSG_RESURRECT_RESPONSE, "CMSG_RESURRECT_RESPONSE" },
{ CMSG_LOOT, "CMSG_LOOT" },
{ CMSG_LOOT_MONEY, "CMSG_LOOT_MONEY" },
{ CMSG_LOOT_RELEASE, "CMSG_LOOT_RELEASE" },
{ SMSG_LOOT_RESPONSE, "SMSG_LOOT_RESPONSE" },
{ SMSG_LOOT_RELEASE_RESPONSE, "SMSG_LOOT_RELEASE_RESPONSE" },
{ SMSG_LOOT_REMOVED, "SMSG_LOOT_REMOVED" },
{ SMSG_LOOT_MONEY_NOTIFY, "SMSG_LOOT_MONEY_NOTIFY" },
{ SMSG_LOOT_ITEM_NOTIFY, "SMSG_LOOT_ITEM_NOTIFY" },
{ SMSG_LOOT_CLEAR_MONEY, "SMSG_LOOT_CLEAR_MONEY" },
{ SMSG_ITEM_PUSH_RESULT, "SMSG_ITEM_PUSH_RESULT" },
{ SMSG_DUEL_REQUESTED, "SMSG_DUEL_REQUESTED" },
{ SMSG_DUEL_OUTOFBOUNDS, "SMSG_DUEL_OUTOFBOUNDS" },
{ SMSG_DUEL_INBOUNDS, "SMSG_DUEL_INBOUNDS" },
{ SMSG_DUEL_COMPLETE, "SMSG_DUEL_COMPLETE" },
{ SMSG_DUEL_WINNER, "SMSG_DUEL_WINNER" },
{ CMSG_DUEL_ACCEPTED, "CMSG_DUEL_ACCEPTED" },
{ CMSG_DUEL_CANCELLED, "CMSG_DUEL_CANCELLED" },
{ SMSG_MOUNTRESULT, "SMSG_MOUNTRESULT" },
{ SMSG_DISMOUNTRESULT, "SMSG_DISMOUNTRESULT" },
{ SMSG_PUREMOUNT_CANCELLED_OBSOLETE, "SMSG_PUREMOUNT_CANCELLED_OBSOLETE" },
{ CMSG_MOUNTSPECIAL_ANIM, "CMSG_MOUNTSPECIAL_ANIM" },
{ SMSG_MOUNTSPECIAL_ANIM, "SMSG_MOUNTSPECIAL_ANIM" },
{ SMSG_PET_TAME_FAILURE, "SMSG_PET_TAME_FAILURE" },
{ CMSG_PET_SET_ACTION, "CMSG_PET_SET_ACTION" },
{ CMSG_PET_ACTION, "CMSG_PET_ACTION" },
{ CMSG_PET_ABANDON, "CMSG_PET_ABANDON" },
{ CMSG_PET_RENAME, "CMSG_PET_RENAME" },
{ SMSG_PET_NAME_INVALID, "SMSG_PET_NAME_INVALID" },
{ SMSG_PET_SPELLS, "SMSG_PET_SPELLS" },
{ SMSG_PET_MODE, "SMSG_PET_MODE" },
{ CMSG_GOSSIP_HELLO, "CMSG_GOSSIP_HELLO" },
{ CMSG_GOSSIP_SELECT_OPTION, "CMSG_GOSSIP_SELECT_OPTION" },
{ SMSG_GOSSIP_MESSAGE, "SMSG_GOSSIP_MESSAGE" },
{ SMSG_GOSSIP_COMPLETE, "SMSG_GOSSIP_COMPLETE" },
{ CMSG_NPC_TEXT_QUERY, "CMSG_NPC_TEXT_QUERY" },
{ SMSG_NPC_TEXT_UPDATE, "SMSG_NPC_TEXT_UPDATE" },
{ SMSG_NPC_WONT_TALK, "SMSG_NPC_WONT_TALK" },
{ CMSG_QUESTGIVER_STATUS_QUERY, "CMSG_QUESTGIVER_STATUS_QUERY" },
{ SMSG_QUESTGIVER_STATUS, "SMSG_QUESTGIVER_STATUS" },
{ CMSG_QUESTGIVER_HELLO, "CMSG_QUESTGIVER_HELLO" },
{ SMSG_QUESTGIVER_QUEST_LIST, "SMSG_QUESTGIVER_QUEST_LIST" },
{ CMSG_QUESTGIVER_QUERY_QUEST, "CMSG_QUESTGIVER_QUERY_QUEST" },
{ CMSG_QUESTGIVER_QUEST_AUTOLAUNCH, "CMSG_QUESTGIVER_QUEST_AUTOLAUNCH" },
{ SMSG_QUESTGIVER_QUEST_DETAILS, "SMSG_QUESTGIVER_QUEST_DETAILS" },
{ CMSG_QUESTGIVER_ACCEPT_QUEST, "CMSG_QUESTGIVER_ACCEPT_QUEST" },
{ CMSG_QUESTGIVER_COMPLETE_QUEST, "CMSG_QUESTGIVER_COMPLETE_QUEST" },
{ SMSG_QUESTGIVER_REQUEST_ITEMS, "SMSG_QUESTGIVER_REQUEST_ITEMS" },
{ CMSG_QUESTGIVER_REQUEST_REWARD, "CMSG_QUESTGIVER_REQUEST_REWARD" },
{ SMSG_QUESTGIVER_OFFER_REWARD, "SMSG_QUESTGIVER_OFFER_REWARD" },
{ CMSG_QUESTGIVER_CHOOSE_REWARD, "CMSG_QUESTGIVER_CHOOSE_REWARD" },
{ SMSG_QUESTGIVER_QUEST_INVALID, "SMSG_QUESTGIVER_QUEST_INVALID" },
{ CMSG_QUESTGIVER_CANCEL, "CMSG_QUESTGIVER_CANCEL" },
{ SMSG_QUESTGIVER_QUEST_COMPLETE, "SMSG_QUESTGIVER_QUEST_COMPLETE" },
{ SMSG_QUESTGIVER_QUEST_FAILED, "SMSG_QUESTGIVER_QUEST_FAILED" },
{ CMSG_QUESTLOG_SWAP_QUEST, "CMSG_QUESTLOG_SWAP_QUEST" },
{ CMSG_QUESTLOG_REMOVE_QUEST, "CMSG_QUESTLOG_REMOVE_QUEST" },
{ SMSG_QUESTLOG_FULL, "SMSG_QUESTLOG_FULL" },
{ SMSG_QUESTUPDATE_FAILED, "SMSG_QUESTUPDATE_FAILED" },
{ SMSG_QUESTUPDATE_FAILEDTIMER, "SMSG_QUESTUPDATE_FAILEDTIMER" },
{ SMSG_QUESTUPDATE_COMPLETE, "SMSG_QUESTUPDATE_COMPLETE" },
{ SMSG_QUESTUPDATE_ADD_KILL, "SMSG_QUESTUPDATE_ADD_KILL" },
{ SMSG_QUESTUPDATE_ADD_ITEM, "SMSG_QUESTUPDATE_ADD_ITEM" },
{ CMSG_QUEST_CONFIRM_ACCEPT, "CMSG_QUEST_CONFIRM_ACCEPT" },
{ SMSG_QUEST_CONFIRM_ACCEPT, "SMSG_QUEST_CONFIRM_ACCEPT" },
{ CMSG_PUSHQUESTTOPARTY, "CMSG_PUSHQUESTTOPARTY" },
{ CMSG_LIST_INVENTORY, "CMSG_LIST_INVENTORY" },
{ SMSG_LIST_INVENTORY, "SMSG_LIST_INVENTORY" },
{ CMSG_SELL_ITEM, "CMSG_SELL_ITEM" },
{ SMSG_SELL_ITEM, "SMSG_SELL_ITEM" },
{ CMSG_BUY_ITEM, "CMSG_BUY_ITEM" },
{ CMSG_BUY_ITEM_IN_SLOT, "CMSG_BUY_ITEM_IN_SLOT" },
{ SMSG_BUY_ITEM, "SMSG_BUY_ITEM" },
{ SMSG_BUY_FAILED, "SMSG_BUY_FAILED" },
{ CMSG_TAXICLEARALLNODES, "CMSG_TAXICLEARALLNODES" },
{ CMSG_TAXIENABLEALLNODES, "CMSG_TAXIENABLEALLNODES" },
{ CMSG_TAXISHOWNODES, "CMSG_TAXISHOWNODES" },
{ SMSG_SHOWTAXINODES, "SMSG_SHOWTAXINODES" },
{ CMSG_TAXINODE_STATUS_QUERY, "CMSG_TAXINODE_STATUS_QUERY" },
{ SMSG_TAXINODE_STATUS, "SMSG_TAXINODE_STATUS" },
{ CMSG_TAXIQUERYAVAILABLENODES, "CMSG_TAXIQUERYAVAILABLENODES" },
{ CMSG_ACTIVATETAXI, "CMSG_ACTIVATETAXI" },
{ SMSG_ACTIVATETAXIREPLY, "SMSG_ACTIVATETAXIREPLY" },
{ SMSG_NEW_TAXI_PATH, "SMSG_NEW_TAXI_PATH" },
{ CMSG_TRAINER_LIST, "CMSG_TRAINER_LIST" },
{ SMSG_TRAINER_LIST, "SMSG_TRAINER_LIST" },
{ CMSG_TRAINER_BUY_SPELL, "CMSG_TRAINER_BUY_SPELL" },
{ SMSG_TRAINER_BUY_SUCCEEDED, "SMSG_TRAINER_BUY_SUCCEEDED" },
{ SMSG_TRAINER_BUY_FAILED, "SMSG_TRAINER_BUY_FAILED" },
{ CMSG_BINDER_ACTIVATE, "CMSG_BINDER_ACTIVATE" },
{ SMSG_PLAYERBINDERROR, "SMSG_PLAYERBINDERROR" },
{ CMSG_BANKER_ACTIVATE, "CMSG_BANKER_ACTIVATE" },
{ SMSG_SHOW_BANK, "SMSG_SHOW_BANK" },
{ CMSG_BUY_BANK_SLOT, "CMSG_BUY_BANK_SLOT" },
{ SMSG_BUY_BANK_SLOT_RESULT, "SMSG_BUY_BANK_SLOT_RESULT" },
{ CMSG_PETITION_SHOWLIST, "CMSG_PETITION_SHOWLIST" },
{ SMSG_PETITION_SHOWLIST, "SMSG_PETITION_SHOWLIST" },
{ CMSG_PETITION_BUY, "CMSG_PETITION_BUY" },
{ CMSG_PETITION_SHOW_SIGNATURES, "CMSG_PETITION_SHOW_SIGNATURES" },
{ SMSG_PETITION_SHOW_SIGNATURES, "SMSG_PETITION_SHOW_SIGNATURES" },
{ CMSG_PETITION_SIGN, "CMSG_PETITION_SIGN" },
{ SMSG_PETITION_SIGN_RESULTS, "SMSG_PETITION_SIGN_RESULTS" },
{ MSG_PETITION_DECLINE, "MSG_PETITION_DECLINE" },
{ CMSG_OFFER_PETITION, "CMSG_OFFER_PETITION" },
{ CMSG_TURN_IN_PETITION, "CMSG_TURN_IN_PETITION" },
{ SMSG_TURN_IN_PETITION_RESULTS, "SMSG_TURN_IN_PETITION_RESULTS" },
{ CMSG_PETITION_QUERY, "CMSG_PETITION_QUERY" },
{ SMSG_PETITION_QUERY_RESPONSE, "SMSG_PETITION_QUERY_RESPONSE" },
{ SMSG_FISH_NOT_HOOKED, "SMSG_FISH_NOT_HOOKED" },
{ SMSG_FISH_ESCAPED, "SMSG_FISH_ESCAPED" },
{ CMSG_BUG, "CMSG_BUG" },
{ SMSG_NOTIFICATION, "SMSG_NOTIFICATION" },
{ CMSG_PLAYED_TIME, "CMSG_PLAYED_TIME" },
{ SMSG_PLAYED_TIME, "SMSG_PLAYED_TIME" },
{ CMSG_QUERY_TIME, "CMSG_QUERY_TIME" },
{ SMSG_QUERY_TIME_RESPONSE, "SMSG_QUERY_TIME_RESPONSE" },
{ SMSG_LOG_XPGAIN, "SMSG_LOG_XPGAIN" },
{ SMSG_AURACASTLOG, "SMSG_AURACASTLOG" },
{ CMSG_RECLAIM_CORPSE, "CMSG_RECLAIM_CORPSE" },
{ CMSG_WRAP_ITEM, "CMSG_WRAP_ITEM" },
{ SMSG_LEVELUP_INFO, "SMSG_LEVELUP_INFO" },
{ MSG_MINIMAP_PING, "MSG_MINIMAP_PING" },
{ SMSG_RESISTLOG, "SMSG_RESISTLOG" },
{ SMSG_ENCHANTMENTLOG, "SMSG_ENCHANTMENTLOG" },
{ CMSG_SET_SKILL_CHEAT, "CMSG_SET_SKILL_CHEAT" },
{ SMSG_START_MIRROR_TIMER, "SMSG_START_MIRROR_TIMER" },
{ SMSG_PAUSE_MIRROR_TIMER, "SMSG_PAUSE_MIRROR_TIMER" },
{ SMSG_STOP_MIRROR_TIMER, "SMSG_STOP_MIRROR_TIMER" },
{ CMSG_PING, "CMSG_PING" },
{ SMSG_PONG, "SMSG_PONG" },
{ SMSG_CLEAR_COOLDOWN, "SMSG_CLEAR_COOLDOWN" },
{ SMSG_GAMEOBJECT_PAGETEXT, "SMSG_GAMEOBJECT_PAGETEXT" },
{ CMSG_SETSHEATHED, "CMSG_SETSHEATHED" },
{ SMSG_COOLDOWN_CHEAT, "SMSG_COOLDOWN_CHEAT" },
{ SMSG_SPELL_DELAYED, "SMSG_SPELL_DELAYED" },
{ CMSG_PLAYER_MACRO_OBSOLETE, "CMSG_PLAYER_MACRO_OBSOLETE" },
{ SMSG_PLAYER_MACRO_OBSOLETE, "SMSG_PLAYER_MACRO_OBSOLETE" },
{ CMSG_GHOST, "CMSG_GHOST" },
{ CMSG_GM_INVIS, "CMSG_GM_INVIS" },
{ SMSG_INVALID_PROMOTION_CODE, "SMSG_INVALID_PROMOTION_CODE" },
{ MSG_GM_BIND_OTHER, "MSG_GM_BIND_OTHER" },
{ MSG_GM_SUMMON, "MSG_GM_SUMMON" },
{ SMSG_ITEM_TIME_UPDATE, "SMSG_ITEM_TIME_UPDATE" },
{ SMSG_ITEM_ENCHANT_TIME_UPDATE, "SMSG_ITEM_ENCHANT_TIME_UPDATE" },
{ SMSG_AUTH_CHALLENGE, "SMSG_AUTH_CHALLENGE" },
{ CMSG_AUTH_SESSION, "CMSG_AUTH_SESSION" },
{ SMSG_AUTH_RESPONSE, "SMSG_AUTH_RESPONSE" },
{ MSG_GM_SHOWLABEL, "MSG_GM_SHOWLABEL" },
{ CMSG_PET_CAST_SPELL, "CMSG_PET_CAST_SPELL" },
{ MSG_SAVE_GUILD_EMBLEM, "MSG_SAVE_GUILD_EMBLEM" },
{ MSG_TABARDVENDOR_ACTIVATE, "MSG_TABARDVENDOR_ACTIVATE" },
{ SMSG_PLAY_SPELL_VISUAL, "SMSG_PLAY_SPELL_VISUAL" },
{ CMSG_ZONEUPDATE, "CMSG_ZONEUPDATE" },
{ SMSG_PARTYKILLLOG, "SMSG_PARTYKILLLOG" },
{ SMSG_COMPRESSED_UPDATE_OBJECT, "SMSG_COMPRESSED_UPDATE_OBJECT" },
{ SMSG_PLAY_SPELL_IMPACT, "SMSG_PLAY_SPELL_IMPACT" },
{ SMSG_EXPLORATION_EXPERIENCE, "SMSG_EXPLORATION_EXPERIENCE" },
{ CMSG_GM_SET_SECURITY_GROUP, "CMSG_GM_SET_SECURITY_GROUP" },
{ CMSG_GM_NUKE, "CMSG_GM_NUKE" },
{ MSG_RANDOM_ROLL, "MSG_RANDOM_ROLL" },
{ SMSG_ENVIRONMENTALDAMAGELOG, "SMSG_ENVIRONMENTALDAMAGELOG" },
{ CMSG_RWHOIS_OBSOLETE, "CMSG_RWHOIS_OBSOLETE" },
{ SMSG_RWHOIS, "SMSG_RWHOIS" },
{ MSG_LOOKING_FOR_GROUP, "MSG_LOOKING_FOR_GROUP" },
{ CMSG_SET_LOOKING_FOR_GROUP, "CMSG_SET_LOOKING_FOR_GROUP" },
{ CMSG_UNLEARN_SPELL, "CMSG_UNLEARN_SPELL" },
{ CMSG_UNLEARN_SKILL, "CMSG_UNLEARN_SKILL" },
{ SMSG_REMOVED_SPELL, "SMSG_REMOVED_SPELL" },
{ CMSG_DECHARGE, "CMSG_DECHARGE" },
{ CMSG_GMTICKET_CREATE, "CMSG_GMTICKET_CREATE" },
{ SMSG_GMTICKET_CREATE, "SMSG_GMTICKET_CREATE" },
{ CMSG_GMTICKET_UPDATETEXT, "CMSG_GMTICKET_UPDATETEXT" },
{ SMSG_GMTICKET_UPDATETEXT, "SMSG_GMTICKET_UPDATETEXT" },
{ SMSG_ACCOUNT_DATA_TIMES, "SMSG_ACCOUNT_DATA_TIMES" },
{ CMSG_REQUEST_ACCOUNT_DATA, "CMSG_REQUEST_ACCOUNT_DATA" },
{ CMSG_UPDATE_ACCOUNT_DATA, "CMSG_UPDATE_ACCOUNT_DATA" },
{ SMSG_UPDATE_ACCOUNT_DATA, "SMSG_UPDATE_ACCOUNT_DATA" },
{ SMSG_CLEAR_FAR_SIGHT_IMMEDIATE, "SMSG_CLEAR_FAR_SIGHT_IMMEDIATE" },
{ SMSG_POWERGAINLOG_OBSOLETE, "SMSG_POWERGAINLOG_OBSOLETE" },
{ CMSG_GM_TEACH, "CMSG_GM_TEACH" },
{ CMSG_GM_CREATE_ITEM_TARGET, "CMSG_GM_CREATE_ITEM_TARGET" },
{ CMSG_GMTICKET_GETTICKET, "CMSG_GMTICKET_GETTICKET" },
{ SMSG_GMTICKET_GETTICKET, "SMSG_GMTICKET_GETTICKET" },
{ CMSG_UNLEARN_TALENTS, "CMSG_UNLEARN_TALENTS" },
{ SMSG_GAMEOBJECT_SPAWN_ANIM, "SMSG_GAMEOBJECT_SPAWN_ANIM" },
{ SMSG_GAMEOBJECT_DESPAWN_ANIM, "SMSG_GAMEOBJECT_DESPAWN_ANIM" },
{ MSG_CORPSE_QUERY, "MSG_CORPSE_QUERY" },
{ CMSG_GMTICKET_DELETETICKET, "CMSG_GMTICKET_DELETETICKET" },
{ SMSG_GMTICKET_DELETETICKET, "SMSG_GMTICKET_DELETETICKET" },
{ SMSG_CHAT_WRONG_FACTION, "SMSG_CHAT_WRONG_FACTION" },
{ CMSG_GMTICKET_SYSTEMSTATUS, "CMSG_GMTICKET_SYSTEMSTATUS" },
{ SMSG_GMTICKET_SYSTEMSTATUS, "SMSG_GMTICKET_SYSTEMSTATUS" },
{ CMSG_SPIRIT_HEALER_ACTIVATE, "CMSG_SPIRIT_HEALER_ACTIVATE" },
{ CMSG_SET_STAT_CHEAT, "CMSG_SET_STAT_CHEAT" },
{ SMSG_SET_REST_START, "SMSG_SET_REST_START" },
{ CMSG_SKILL_BUY_STEP, "CMSG_SKILL_BUY_STEP" },
{ CMSG_SKILL_BUY_RANK, "CMSG_SKILL_BUY_RANK" },
{ CMSG_XP_CHEAT, "CMSG_XP_CHEAT" },
{ SMSG_SPIRIT_HEALER_CONFIRM, "SMSG_SPIRIT_HEALER_CONFIRM" },
{ CMSG_CHARACTER_POINT_CHEAT, "CMSG_CHARACTER_POINT_CHEAT" },
{ SMSG_GOSSIP_POI, "SMSG_GOSSIP_POI" },
{ CMSG_CHAT_IGNORED, "CMSG_CHAT_IGNORED" },
{ CMSG_GM_VISION, "CMSG_GM_VISION" },
{ CMSG_SERVER_COMMAND, "CMSG_SERVER_COMMAND" },
{ CMSG_GM_SILENCE, "CMSG_GM_SILENCE" },
{ CMSG_GM_REVEALTO, "CMSG_GM_REVEALTO" },
{ CMSG_GM_RESURRECT, "CMSG_GM_RESURRECT" },
{ CMSG_GM_SUMMONMOB, "CMSG_GM_SUMMONMOB" },
{ CMSG_GM_MOVECORPSE, "CMSG_GM_MOVECORPSE" },
{ CMSG_GM_FREEZE, "CMSG_GM_FREEZE" },
{ CMSG_GM_UBERINVIS, "CMSG_GM_UBERINVIS" },
{ CMSG_GM_REQUEST_PLAYER_INFO, "CMSG_GM_REQUEST_PLAYER_INFO" },
{ SMSG_GM_PLAYER_INFO, "SMSG_GM_PLAYER_INFO" },
{ CMSG_GUILD_RANK, "CMSG_GUILD_RANK" },
{ CMSG_GUILD_ADD_RANK, "CMSG_GUILD_ADD_RANK" },
{ CMSG_GUILD_DEL_RANK, "CMSG_GUILD_DEL_RANK" },
{ CMSG_GUILD_SET_PUBLIC_NOTE, "CMSG_GUILD_SET_PUBLIC_NOTE" },
{ CMSG_GUILD_SET_OFFICER_NOTE, "CMSG_GUILD_SET_OFFICER_NOTE" },
{ SMSG_LOGIN_VERIFY_WORLD, "SMSG_LOGIN_VERIFY_WORLD" },
{ CMSG_CLEAR_EXPLORATION, "CMSG_CLEAR_EXPLORATION" },
{ CMSG_SEND_MAIL, "CMSG_SEND_MAIL" },
{ SMSG_SEND_MAIL_RESULT, "SMSG_SEND_MAIL_RESULT" },
{ CMSG_GET_MAIL_LIST, "CMSG_GET_MAIL_LIST" },
{ SMSG_MAIL_LIST_RESULT, "SMSG_MAIL_LIST_RESULT" },
{ CMSG_BATTLEFIELD_LIST, "CMSG_BATTLEFIELD_LIST" },
{ SMSG_BATTLEFIELD_LIST, "SMSG_BATTLEFIELD_LIST" },
{ CMSG_BATTLEFIELD_JOIN, "CMSG_BATTLEFIELD_JOIN" },
{ SMSG_BATTLEFIELD_WIN_OBSOLETE, "SMSG_BATTLEFIELD_WIN_OBSOLETE" },
{ SMSG_BATTLEFIELD_LOSE_OBSOLETE, "SMSG_BATTLEFIELD_LOSE_OBSOLETE" },
{ CMSG_TAXICLEARNODE, "CMSG_TAXICLEARNODE" },
{ CMSG_TAXIENABLENODE, "CMSG_TAXIENABLENODE" },
{ CMSG_ITEM_TEXT_QUERY, "CMSG_ITEM_TEXT_QUERY" },
{ SMSG_ITEM_TEXT_QUERY_RESPONSE, "SMSG_ITEM_TEXT_QUERY_RESPONSE" },
{ CMSG_MAIL_TAKE_MONEY, "CMSG_MAIL_TAKE_MONEY" },
{ CMSG_MAIL_TAKE_ITEM, "CMSG_MAIL_TAKE_ITEM" },
{ CMSG_MAIL_MARK_AS_READ, "CMSG_MAIL_MARK_AS_READ" },
{ CMSG_MAIL_RETURN_TO_SENDER, "CMSG_MAIL_RETURN_TO_SENDER" },
{ CMSG_MAIL_DELETE, "CMSG_MAIL_DELETE" },
{ CMSG_MAIL_CREATE_TEXT_ITEM, "CMSG_MAIL_CREATE_TEXT_ITEM" },
{ SMSG_SPELLLOGMISS, "SMSG_SPELLLOGMISS" },
{ SMSG_SPELLLOGEXECUTE, "SMSG_SPELLLOGEXECUTE" },
{ SMSG_DEBUGAURAPROC, "SMSG_DEBUGAURAPROC" },
{ SMSG_PERIODICAURALOG, "SMSG_PERIODICAURALOG" },
{ SMSG_SPELLDAMAGESHIELD, "SMSG_SPELLDAMAGESHIELD" },
{ SMSG_SPELLNONMELEEDAMAGELOG, "SMSG_SPELLNONMELEEDAMAGELOG" },
{ CMSG_LEARN_TALENT, "CMSG_LEARN_TALENT" },
{ SMSG_RESURRECT_FAILED, "SMSG_RESURRECT_FAILED" },
{ CMSG_TOGGLE_PVP, "CMSG_TOGGLE_PVP" },
{ SMSG_ZONE_UNDER_ATTACK, "SMSG_ZONE_UNDER_ATTACK" },
{ MSG_AUCTION_HELLO, "MSG_AUCTION_HELLO" },
{ CMSG_AUCTION_SELL_ITEM, "CMSG_AUCTION_SELL_ITEM" },
{ CMSG_AUCTION_REMOVE_ITEM, "CMSG_AUCTION_REMOVE_ITEM" },
{ CMSG_AUCTION_LIST_ITEMS, "CMSG_AUCTION_LIST_ITEMS" },
{ CMSG_AUCTION_LIST_OWNER_ITEMS, "CMSG_AUCTION_LIST_OWNER_ITEMS" },
{ CMSG_AUCTION_PLACE_BID, "CMSG_AUCTION_PLACE_BID" },
{ SMSG_AUCTION_COMMAND_RESULT, "SMSG_AUCTION_COMMAND_RESULT" },
{ SMSG_AUCTION_LIST_RESULT, "SMSG_AUCTION_LIST_RESULT" },
{ SMSG_AUCTION_OWNER_LIST_RESULT, "SMSG_AUCTION_OWNER_LIST_RESULT" },
{ SMSG_AUCTION_BIDDER_NOTIFICATION, "SMSG_AUCTION_BIDDER_NOTIFICATION" },
{ SMSG_AUCTION_OWNER_NOTIFICATION, "SMSG_AUCTION_OWNER_NOTIFICATION" },
{ SMSG_PROCRESIST, "SMSG_PROCRESIST" },
{ SMSG_STANDSTATE_CHANGE_FAILURE_OBSOLETE, "SMSG_STANDSTATE_CHANGE_FAILURE_OBSOLETE" },
{ SMSG_DISPEL_FAILED, "SMSG_DISPEL_FAILED" },
{ SMSG_SPELLORDAMAGE_IMMUNE, "SMSG_SPELLORDAMAGE_IMMUNE" },
{ CMSG_AUCTION_LIST_BIDDER_ITEMS, "CMSG_AUCTION_LIST_BIDDER_ITEMS" },
{ SMSG_AUCTION_BIDDER_LIST_RESULT, "SMSG_AUCTION_BIDDER_LIST_RESULT" },
{ SMSG_SET_FLAT_SPELL_MODIFIER, "SMSG_SET_FLAT_SPELL_MODIFIER" },
{ SMSG_SET_PCT_SPELL_MODIFIER, "SMSG_SET_PCT_SPELL_MODIFIER" },
{ CMSG_SET_AMMO, "CMSG_SET_AMMO" },
{ SMSG_CORPSE_RECLAIM_DELAY, "SMSG_CORPSE_RECLAIM_DELAY" },
{ CMSG_SET_ACTIVE_MOVER, "CMSG_SET_ACTIVE_MOVER" },
{ CMSG_PET_CANCEL_AURA, "CMSG_PET_CANCEL_AURA" },
{ CMSG_PLAYER_AI_CHEAT, "CMSG_PLAYER_AI_CHEAT" },
{ CMSG_CANCEL_AUTO_REPEAT_SPELL, "CMSG_CANCEL_AUTO_REPEAT_SPELL" },
{ MSG_GM_ACCOUNT_ONLINE, "MSG_GM_ACCOUNT_ONLINE" },
{ MSG_LIST_STABLED_PETS, "MSG_LIST_STABLED_PETS" },
{ CMSG_STABLE_PET, "CMSG_STABLE_PET" },
{ CMSG_UNSTABLE_PET, "CMSG_UNSTABLE_PET" },
{ CMSG_BUY_STABLE_SLOT, "CMSG_BUY_STABLE_SLOT" },
{ SMSG_STABLE_RESULT, "SMSG_STABLE_RESULT" },
{ CMSG_STABLE_REVIVE_PET, "CMSG_STABLE_REVIVE_PET" },
{ CMSG_STABLE_SWAP_PET, "CMSG_STABLE_SWAP_PET" },
{ MSG_QUEST_PUSH_RESULT, "MSG_QUEST_PUSH_RESULT" },
{ SMSG_PLAY_MUSIC, "SMSG_PLAY_MUSIC" },
{ SMSG_PLAY_OBJECT_SOUND, "SMSG_PLAY_OBJECT_SOUND" },
{ CMSG_REQUEST_PET_INFO, "CMSG_REQUEST_PET_INFO" },
{ CMSG_FAR_SIGHT, "CMSG_FAR_SIGHT" },
{ SMSG_SPELLDISPELLOG, "SMSG_SPELLDISPELLOG" },
{ SMSG_DAMAGE_CALC_LOG, "SMSG_DAMAGE_CALC_LOG" },
{ CMSG_ENABLE_DAMAGE_LOG, "CMSG_ENABLE_DAMAGE_LOG" },
{ CMSG_GROUP_CHANGE_SUB_GROUP, "CMSG_GROUP_CHANGE_SUB_GROUP" },
{ CMSG_REQUEST_PARTY_MEMBER_STATS, "CMSG_REQUEST_PARTY_MEMBER_STATS" },
{ CMSG_GROUP_SWAP_SUB_GROUP, "CMSG_GROUP_SWAP_SUB_GROUP" },
{ CMSG_RESET_FACTION_CHEAT, "CMSG_RESET_FACTION_CHEAT" },
{ CMSG_AUTOSTORE_BANK_ITEM, "CMSG_AUTOSTORE_BANK_ITEM" },
{ CMSG_AUTOBANK_ITEM, "CMSG_AUTOBANK_ITEM" },
{ MSG_QUERY_NEXT_MAIL_TIME, "MSG_QUERY_NEXT_MAIL_TIME" },
{ SMSG_RECEIVED_MAIL, "SMSG_RECEIVED_MAIL" },
{ SMSG_RAID_GROUP_ONLY, "SMSG_RAID_GROUP_ONLY" },
{ CMSG_SET_DURABILITY_CHEAT, "CMSG_SET_DURABILITY_CHEAT" },
{ CMSG_SET_PVP_RANK_CHEAT, "CMSG_SET_PVP_RANK_CHEAT" },
{ CMSG_ADD_PVP_MEDAL_CHEAT, "CMSG_ADD_PVP_MEDAL_CHEAT" },
{ CMSG_DEL_PVP_MEDAL_CHEAT, "CMSG_DEL_PVP_MEDAL_CHEAT" },
{ CMSG_SET_PVP_TITLE, "CMSG_SET_PVP_TITLE" },
{ SMSG_PVP_CREDIT, "SMSG_PVP_CREDIT" },
{ SMSG_AUCTION_REMOVED_NOTIFICATION, "SMSG_AUCTION_REMOVED_NOTIFICATION" },
{ CMSG_GROUP_RAID_CONVERT, "CMSG_GROUP_RAID_CONVERT" },
{ CMSG_GROUP_ASSISTANT_LEADER, "CMSG_GROUP_ASSISTANT_LEADER" },
{ CMSG_BUYBACK_ITEM, "CMSG_BUYBACK_ITEM" },
{ SMSG_SERVER_MESSAGE, "SMSG_SERVER_MESSAGE" },
{ CMSG_MEETINGSTONE_JOIN, "CMSG_MEETINGSTONE_JOIN" },
{ CMSG_MEETINGSTONE_LEAVE, "CMSG_MEETINGSTONE_LEAVE" },
{ CMSG_MEETINGSTONE_CHEAT, "CMSG_MEETINGSTONE_CHEAT" },
{ SMSG_MEETINGSTONE_SETQUEUE, "SMSG_MEETINGSTONE_SETQUEUE" },
{ CMSG_MEETINGSTONE_INFO, "CMSG_MEETINGSTONE_INFO" },
{ SMSG_MEETINGSTONE_COMPLETE, "SMSG_MEETINGSTONE_COMPLETE" },
{ SMSG_MEETINGSTONE_IN_PROGRESS, "SMSG_MEETINGSTONE_IN_PROGRESS" },
{ SMSG_MEETINGSTONE_MEMBER_ADDED, "SMSG_MEETINGSTONE_MEMBER_ADDED" },
{ CMSG_GMTICKETSYSTEM_TOGGLE, "CMSG_GMTICKETSYSTEM_TOGGLE" },
{ CMSG_CANCEL_GROWTH_AURA, "CMSG_CANCEL_GROWTH_AURA" },
{ SMSG_CANCEL_AUTO_REPEAT, "SMSG_CANCEL_AUTO_REPEAT" },
{ SMSG_STANDSTATE_UPDATE, "SMSG_STANDSTATE_UPDATE" },
{ SMSG_LOOT_ALL_PASSED, "SMSG_LOOT_ALL_PASSED" },
{ SMSG_LOOT_ROLL_WON, "SMSG_LOOT_ROLL_WON" },
{ CMSG_LOOT_ROLL, "CMSG_LOOT_ROLL" },
{ SMSG_LOOT_START_ROLL, "SMSG_LOOT_START_ROLL" },
{ SMSG_LOOT_ROLL, "SMSG_LOOT_ROLL" },
{ CMSG_LOOT_MASTER_GIVE, "CMSG_LOOT_MASTER_GIVE" },
{ SMSG_LOOT_MASTER_LIST, "SMSG_LOOT_MASTER_LIST" },
{ SMSG_SET_FORCED_REACTIONS, "SMSG_SET_FORCED_REACTIONS" },
{ SMSG_SPELL_FAILED_OTHER, "SMSG_SPELL_FAILED_OTHER" },
{ SMSG_GAMEOBJECT_RESET_STATE, "SMSG_GAMEOBJECT_RESET_STATE" },
{ CMSG_REPAIR_ITEM, "CMSG_REPAIR_ITEM" },
{ SMSG_CHAT_PLAYER_NOT_FOUND, "SMSG_CHAT_PLAYER_NOT_FOUND" },
{ MSG_TALENT_WIPE_CONFIRM, "MSG_TALENT_WIPE_CONFIRM" },
{ SMSG_SUMMON_REQUEST, "SMSG_SUMMON_REQUEST" },
{ CMSG_SUMMON_RESPONSE, "CMSG_SUMMON_RESPONSE" },
{ MSG_MOVE_TOGGLE_GRAVITY_CHEAT, "MSG_MOVE_TOGGLE_GRAVITY_CHEAT" },
{ SMSG_MONSTER_MOVE_TRANSPORT, "SMSG_MONSTER_MOVE_TRANSPORT" },
{ SMSG_PET_BROKEN, "SMSG_PET_BROKEN" },
{ MSG_MOVE_FEATHER_FALL, "MSG_MOVE_FEATHER_FALL" },
{ MSG_MOVE_WATER_WALK, "MSG_MOVE_WATER_WALK" },
{ CMSG_SERVER_BROADCAST, "CMSG_SERVER_BROADCAST" },
{ CMSG_SELF_RES, "CMSG_SELF_RES" },
{ SMSG_FEIGN_DEATH_RESISTED, "SMSG_FEIGN_DEATH_RESISTED" },
{ CMSG_RUN_SCRIPT, "CMSG_RUN_SCRIPT" },
{ SMSG_SCRIPT_MESSAGE, "SMSG_SCRIPT_MESSAGE" },
{ SMSG_DUEL_COUNTDOWN, "SMSG_DUEL_COUNTDOWN" },
{ SMSG_AREA_TRIGGER_MESSAGE, "SMSG_AREA_TRIGGER_MESSAGE" },
{ CMSG_TOGGLE_HELM, "CMSG_TOGGLE_HELM" },
{ CMSG_TOGGLE_CLOAK, "CMSG_TOGGLE_CLOAK" },
{ SMSG_MEETINGSTONE_JOINFAILED, "SMSG_MEETINGSTONE_JOINFAILED" },
{ SMSG_PLAYER_SKINNED, "SMSG_PLAYER_SKINNED" },
{ SMSG_DURABILITY_DAMAGE_DEATH, "SMSG_DURABILITY_DAMAGE_DEATH" },
{ CMSG_SET_EXPLORATION, "CMSG_SET_EXPLORATION" },
{ CMSG_SET_ACTIONBAR_TOGGLES, "CMSG_SET_ACTIONBAR_TOGGLES" },
{ UMSG_DELETE_GUILD_CHARTER, "UMSG_DELETE_GUILD_CHARTER" },
{ MSG_PETITION_RENAME, "MSG_PETITION_RENAME" },
{ SMSG_INIT_WORLD_STATES, "SMSG_INIT_WORLD_STATES" },
{ SMSG_UPDATE_WORLD_STATE, "SMSG_UPDATE_WORLD_STATE" },
{ CMSG_ITEM_NAME_QUERY, "CMSG_ITEM_NAME_QUERY" },
{ SMSG_ITEM_NAME_QUERY_RESPONSE, "SMSG_ITEM_NAME_QUERY_RESPONSE" },
{ SMSG_PET_ACTION_FEEDBACK, "SMSG_PET_ACTION_FEEDBACK" },
{ CMSG_CHAR_RENAME, "CMSG_CHAR_RENAME" },
{ SMSG_CHAR_RENAME, "SMSG_CHAR_RENAME" },
{ CMSG_MOVE_SPLINE_DONE, "CMSG_MOVE_SPLINE_DONE" },
{ CMSG_MOVE_FALL_RESET, "CMSG_MOVE_FALL_RESET" },
{ SMSG_INSTANCE_SAVE_CREATED, "SMSG_INSTANCE_SAVE_CREATED" },
{ SMSG_RAID_INSTANCE_INFO, "SMSG_RAID_INSTANCE_INFO" },
{ CMSG_REQUEST_RAID_INFO, "CMSG_REQUEST_RAID_INFO" },
{ CMSG_MOVE_TIME_SKIPPED, "CMSG_MOVE_TIME_SKIPPED" },
{ CMSG_MOVE_FEATHER_FALL_ACK, "CMSG_MOVE_FEATHER_FALL_ACK" },
{ CMSG_MOVE_WATER_WALK_ACK, "CMSG_MOVE_WATER_WALK_ACK" },
{ CMSG_MOVE_NOT_ACTIVE_MOVER, "CMSG_MOVE_NOT_ACTIVE_MOVER" },
{ SMSG_PLAY_SOUND, "SMSG_PLAY_SOUND" },
{ CMSG_BATTLEFIELD_STATUS, "CMSG_BATTLEFIELD_STATUS" },
{ SMSG_BATTLEFIELD_STATUS, "SMSG_BATTLEFIELD_STATUS" },
{ CMSG_BATTLEFIELD_PORT, "CMSG_BATTLEFIELD_PORT" },
{ MSG_INSPECT_HONOR_STATS, "MSG_INSPECT_HONOR_STATS" },
{ CMSG_BATTLEMASTER_HELLO, "CMSG_BATTLEMASTER_HELLO" },
{ CMSG_MOVE_START_SWIM_CHEAT, "CMSG_MOVE_START_SWIM_CHEAT" },
{ CMSG_MOVE_STOP_SWIM_CHEAT, "CMSG_MOVE_STOP_SWIM_CHEAT" },
{ SMSG_FORCE_WALK_SPEED_CHANGE, "SMSG_FORCE_WALK_SPEED_CHANGE" },
{ CMSG_FORCE_WALK_SPEED_CHANGE_ACK, "CMSG_FORCE_WALK_SPEED_CHANGE_ACK" },
{ SMSG_FORCE_SWIM_BACK_SPEED_CHANGE, "SMSG_FORCE_SWIM_BACK_SPEED_CHANGE" },
{ CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK, "CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK" },
{ SMSG_FORCE_TURN_RATE_CHANGE, "SMSG_FORCE_TURN_RATE_CHANGE" },
{ CMSG_FORCE_TURN_RATE_CHANGE_ACK, "CMSG_FORCE_TURN_RATE_CHANGE_ACK" },
{ MSG_PVP_LOG_DATA, "MSG_PVP_LOG_DATA" },
{ CMSG_LEAVE_BATTLEFIELD, "CMSG_LEAVE_BATTLEFIELD" },
{ CMSG_AREA_SPIRIT_HEALER_QUERY, "CMSG_AREA_SPIRIT_HEALER_QUERY" },
{ CMSG_AREA_SPIRIT_HEALER_QUEUE, "CMSG_AREA_SPIRIT_HEALER_QUEUE" },
{ SMSG_AREA_SPIRIT_HEALER_TIME, "SMSG_AREA_SPIRIT_HEALER_TIME" },
{ CMSG_GM_UNTEACH, "CMSG_GM_UNTEACH" },
{ SMSG_WARDEN_DATA, "SMSG_WARDEN_DATA" },
{ CMSG_WARDEN_DATA, "CMSG_WARDEN_DATA" },
{ SMSG_GROUP_JOINED_BATTLEGROUND, "SMSG_GROUP_JOINED_BATTLEGROUND" },
{ MSG_BATTLEGROUND_PLAYER_POSITIONS, "MSG_BATTLEGROUND_PLAYER_POSITIONS" },
{ CMSG_PET_STOP_ATTACK, "CMSG_PET_STOP_ATTACK" },
{ SMSG_BINDER_CONFIRM, "SMSG_BINDER_CONFIRM" },
{ SMSG_BATTLEGROUND_PLAYER_JOINED, "SMSG_BATTLEGROUND_PLAYER_JOINED" },
{ SMSG_BATTLEGROUND_PLAYER_LEFT, "SMSG_BATTLEGROUND_PLAYER_LEFT" },
{ CMSG_BATTLEMASTER_JOIN, "CMSG_BATTLEMASTER_JOIN" },
{ SMSG_ADDON_INFO, "SMSG_ADDON_INFO" },
{ CMSG_PET_UNLEARN, "CMSG_PET_UNLEARN" },
{ SMSG_PET_UNLEARN_CONFIRM, "SMSG_PET_UNLEARN_CONFIRM" },
{ SMSG_PARTY_MEMBER_STATS_FULL, "SMSG_PARTY_MEMBER_STATS_FULL" },
{ CMSG_PET_SPELL_AUTOCAST, "CMSG_PET_SPELL_AUTOCAST" },
{ SMSG_WEATHER, "SMSG_WEATHER" },
{ SMSG_PLAY_TIME_WARNING, "SMSG_PLAY_TIME_WARNING" },
{ SMSG_MINIGAME_SETUP, "SMSG_MINIGAME_SETUP" },
{ SMSG_MINIGAME_STATE, "SMSG_MINIGAME_STATE" },
{ CMSG_MINIGAME_MOVE, "CMSG_MINIGAME_MOVE" },
{ SMSG_MINIGAME_MOVE_FAILED, "SMSG_MINIGAME_MOVE_FAILED" },
{ SMSG_RAID_INSTANCE_MESSAGE, "SMSG_RAID_INSTANCE_MESSAGE" },
{ SMSG_COMPRESSED_MOVES, "SMSG_COMPRESSED_MOVES" },
{ CMSG_GUILD_INFO_TEXT, "CMSG_GUILD_INFO_TEXT" },
{ SMSG_CHAT_RESTRICTED, "SMSG_CHAT_RESTRICTED" },
{ SMSG_SPLINE_SET_RUN_SPEED, "SMSG_SPLINE_SET_RUN_SPEED" },
{ SMSG_SPLINE_SET_RUN_BACK_SPEED, "SMSG_SPLINE_SET_RUN_BACK_SPEED" },
{ SMSG_SPLINE_SET_SWIM_SPEED, "SMSG_SPLINE_SET_SWIM_SPEED" },
{ SMSG_SPLINE_SET_WALK_SPEED, "SMSG_SPLINE_SET_WALK_SPEED" },
{ SMSG_SPLINE_SET_SWIM_BACK_SPEED, "SMSG_SPLINE_SET_SWIM_BACK_SPEED" },
{ SMSG_SPLINE_SET_TURN_RATE, "SMSG_SPLINE_SET_TURN_RATE" },
{ SMSG_SPLINE_MOVE_UNROOT, "SMSG_SPLINE_MOVE_UNROOT" },
{ SMSG_SPLINE_MOVE_FEATHER_FALL, "SMSG_SPLINE_MOVE_FEATHER_FALL" },
{ SMSG_SPLINE_MOVE_NORMAL_FALL, "SMSG_SPLINE_MOVE_NORMAL_FALL" },
{ SMSG_SPLINE_MOVE_SET_HOVER, "SMSG_SPLINE_MOVE_SET_HOVER" },
{ SMSG_SPLINE_MOVE_UNSET_HOVER, "SMSG_SPLINE_MOVE_UNSET_HOVER" },
{ SMSG_SPLINE_MOVE_WATER_WALK, "SMSG_SPLINE_MOVE_WATER_WALK" },
{ SMSG_SPLINE_MOVE_LAND_WALK, "SMSG_SPLINE_MOVE_LAND_WALK" },
{ SMSG_SPLINE_MOVE_START_SWIM, "SMSG_SPLINE_MOVE_START_SWIM" },
{ SMSG_SPLINE_MOVE_STOP_SWIM, "SMSG_SPLINE_MOVE_STOP_SWIM" },
{ SMSG_SPLINE_MOVE_SET_RUN_MODE, "SMSG_SPLINE_MOVE_SET_RUN_MODE" },
{ SMSG_SPLINE_MOVE_SET_WALK_MODE, "SMSG_SPLINE_MOVE_SET_WALK_MODE" },
{ CMSG_GM_NUKE_ACCOUNT, "CMSG_GM_NUKE_ACCOUNT" },
{ MSG_GM_DESTROY_CORPSE, "MSG_GM_DESTROY_CORPSE" },
{ CMSG_GM_DESTROY_ONLINE_CORPSE, "CMSG_GM_DESTROY_ONLINE_CORPSE" },
{ CMSG_ACTIVATETAXIEXPRESS, "CMSG_ACTIVATETAXIEXPRESS" },
{ SMSG_SET_FACTION_ATWAR, "SMSG_SET_FACTION_ATWAR" },
{ SMSG_GAMETIMEBIAS_SET, "SMSG_GAMETIMEBIAS_SET" },
{ CMSG_DEBUG_ACTIONS_START, "CMSG_DEBUG_ACTIONS_START" },
{ CMSG_DEBUG_ACTIONS_STOP, "CMSG_DEBUG_ACTIONS_STOP" },
{ CMSG_SET_FACTION_INACTIVE, "CMSG_SET_FACTION_INACTIVE" },
{ CMSG_SET_WATCHED_FACTION, "CMSG_SET_WATCHED_FACTION" },
{ MSG_MOVE_TIME_SKIPPED, "MSG_MOVE_TIME_SKIPPED" },
{ SMSG_SPLINE_MOVE_ROOT, "SMSG_SPLINE_MOVE_ROOT" },
{ CMSG_SET_EXPLORATION_ALL, "CMSG_SET_EXPLORATION_ALL" },
{ SMSG_INVALIDATE_PLAYER, "SMSG_INVALIDATE_PLAYER" },
{ CMSG_RESET_INSTANCES, "CMSG_RESET_INSTANCES" },
{ SMSG_INSTANCE_RESET, "SMSG_INSTANCE_RESET" },
{ SMSG_INSTANCE_RESET_FAILED, "SMSG_INSTANCE_RESET_FAILED" },
{ SMSG_UPDATE_LAST_INSTANCE, "SMSG_UPDATE_LAST_INSTANCE" },
{ MSG_RAID_TARGET_UPDATE, "MSG_RAID_TARGET_UPDATE" },
{ MSG_RAID_READY_CHECK, "MSG_RAID_READY_CHECK" },
{ CMSG_LUA_USAGE, "CMSG_LUA_USAGE" },
{ SMSG_PET_ACTION_SOUND, "SMSG_PET_ACTION_SOUND" },
{ SMSG_PET_DISMISS_SOUND, "SMSG_PET_DISMISS_SOUND" },
{ SMSG_GHOSTEE_GONE, "SMSG_GHOSTEE_GONE" },
{ CMSG_GM_UPDATE_TICKET_STATUS, "CMSG_GM_UPDATE_TICKET_STATUS" },
{ SMSG_GM_TICKET_STATUS_UPDATE, "SMSG_GM_TICKET_STATUS_UPDATE" },
{ CMSG_GMSURVEY_SUBMIT, "CMSG_GMSURVEY_SUBMIT" },
{ SMSG_UPDATE_INSTANCE_OWNERSHIP, "SMSG_UPDATE_INSTANCE_OWNERSHIP" },
{ CMSG_IGNORE_KNOCKBACK_CHEAT, "CMSG_IGNORE_KNOCKBACK_CHEAT" },
{ SMSG_CHAT_PLAYER_AMBIGUOUS, "SMSG_CHAT_PLAYER_AMBIGUOUS" },
{ MSG_DELAY_GHOST_TELEPORT, "MSG_DELAY_GHOST_TELEPORT" },
{ SMSG_SPELLINSTAKILLLOG, "SMSG_SPELLINSTAKILLLOG" },
{ SMSG_SPELL_UPDATE_CHAIN_TARGETS, "SMSG_SPELL_UPDATE_CHAIN_TARGETS" },
{ CMSG_CHAT_FILTERED, "CMSG_CHAT_FILTERED" },
{ SMSG_EXPECTED_SPAM_RECORDS, "SMSG_EXPECTED_SPAM_RECORDS" },
{ SMSG_SPELLSTEALLOG, "SMSG_SPELLSTEALLOG" },
{ CMSG_LOTTERY_QUERY_OBSOLETE, "CMSG_LOTTERY_QUERY_OBSOLETE" },
{ SMSG_LOTTERY_QUERY_RESULT_OBSOLETE, "SMSG_LOTTERY_QUERY_RESULT_OBSOLETE" },
{ CMSG_BUY_LOTTERY_TICKET_OBSOLETE, "CMSG_BUY_LOTTERY_TICKET_OBSOLETE" },
{ SMSG_LOTTERY_RESULT_OBSOLETE, "SMSG_LOTTERY_RESULT_OBSOLETE" },
{ SMSG_CHARACTER_PROFILE, "SMSG_CHARACTER_PROFILE" },
{ SMSG_CHARACTER_PROFILE_REALM_CONNECTED, "SMSG_CHARACTER_PROFILE_REALM_CONNECTED" },
{ SMSG_DEFENSE_MESSAGE, "SMSG_DEFENSE_MESSAGE" },
{ MSG_GM_RESETINSTANCELIMIT, "MSG_GM_RESETINSTANCELIMIT" },
{ SMSG_MOTD, "SMSG_MOTD" },
{ SMSG_MOVE_SET_FLIGHT, "SMSG_MOVE_SET_FLIGHT" },
{ SMSG_MOVE_UNSET_FLIGHT, "SMSG_MOVE_UNSET_FLIGHT" },
{ CMSG_MOVE_FLIGHT_ACK, "CMSG_MOVE_FLIGHT_ACK" },
{ MSG_MOVE_START_SWIM_CHEAT, "MSG_MOVE_START_SWIM_CHEAT" },
{ MSG_MOVE_STOP_SWIM_CHEAT, "MSG_MOVE_STOP_SWIM_CHEAT" },
{ CMSG_CANCEL_MOUNT_AURA, "CMSG_CANCEL_MOUNT_AURA" },
{ CMSG_CANCEL_TEMP_ENCHANTMENT, "CMSG_CANCEL_TEMP_ENCHANTMENT" },
{ CMSG_MAELSTROM_INVALIDATE_CACHE, "CMSG_MAELSTROM_INVALIDATE_CACHE" },
{ CMSG_SET_TAXI_BENCHMARK_MODE, "CMSG_SET_TAXI_BENCHMARK_MODE" },
{ CMSG_MOVE_CHNG_TRANSPORT, "CMSG_MOVE_CHNG_TRANSPORT" },
{ MSG_PARTY_ASSIGNMENT, "MSG_PARTY_ASSIGNMENT" },
{ SMSG_OFFER_PETITION_ERROR, "SMSG_OFFER_PETITION_ERROR" },
{ SMSG_RESET_FAILED_NOTIFY, "SMSG_RESET_FAILED_NOTIFY" },
{ SMSG_REAL_GROUP_UPDATE, "SMSG_REAL_GROUP_UPDATE" },
{ SMSG_INIT_EXTRA_AURA_INFO, "SMSG_INIT_EXTRA_AURA_INFO" },
{ SMSG_SET_EXTRA_AURA_INFO, "SMSG_SET_EXTRA_AURA_INFO" },
{ SMSG_SET_EXTRA_AURA_INFO_NEED_UPDATE, "SMSG_SET_EXTRA_AURA_INFO_NEED_UPDATE" },
{ SMSG_SPELL_CHANCE_PROC_LOG, "SMSG_SPELL_CHANCE_PROC_LOG" },
{ CMSG_MOVE_SET_RUN_SPEED, "CMSG_MOVE_SET_RUN_SPEED" },
{ SMSG_DISMOUNT, "SMSG_DISMOUNT" },
{ MSG_RAID_READY_CHECK_CONFIRM, "MSG_RAID_READY_CHECK_CONFIRM" },
{ SMSG_CLEAR_TARGET, "SMSG_CLEAR_TARGET" },
{ CMSG_BOT_DETECTED, "CMSG_BOT_DETECTED" },
{ SMSG_KICK_REASON, "SMSG_KICK_REASON" },
{ MSG_RAID_READY_CHECK_FINISHED, "MSG_RAID_READY_CHECK_FINISHED" },
{ CMSG_TARGET_CAST, "CMSG_TARGET_CAST" },
{ CMSG_TARGET_SCRIPT_CAST, "CMSG_TARGET_SCRIPT_CAST" },
{ CMSG_CHANNEL_DISPLAY_LIST, "CMSG_CHANNEL_DISPLAY_LIST" },
{ CMSG_GET_CHANNEL_MEMBER_COUNT, "CMSG_GET_CHANNEL_MEMBER_COUNT" },
{ SMSG_CHANNEL_MEMBER_COUNT, "SMSG_CHANNEL_MEMBER_COUNT" },
{ CMSG_DEBUG_LIST_TARGETS, "CMSG_DEBUG_LIST_TARGETS" },
{ SMSG_DEBUG_LIST_TARGETS, "SMSG_DEBUG_LIST_TARGETS" },
{ CMSG_PARTY_SILENCE, "CMSG_PARTY_SILENCE" },
{ CMSG_PARTY_UNSILENCE, "CMSG_PARTY_UNSILENCE" },
{ MSG_NOTIFY_PARTY_SQUELCH, "MSG_NOTIFY_PARTY_SQUELCH" },
{ SMSG_COMSAT_RECONNECT_TRY, "SMSG_COMSAT_RECONNECT_TRY" },
{ SMSG_COMSAT_DISCONNECT, "SMSG_COMSAT_DISCONNECT" },
{ SMSG_COMSAT_CONNECT_FAIL, "SMSG_COMSAT_CONNECT_FAIL" },
{ CMSG_SET_CHANNEL_WATCH, "CMSG_SET_CHANNEL_WATCH" },
{ SMSG_USERLIST_ADD, "SMSG_USERLIST_ADD" },
{ SMSG_USERLIST_REMOVE, "SMSG_USERLIST_REMOVE" },
{ SMSG_USERLIST_UPDATE, "SMSG_USERLIST_UPDATE" },
{ CMSG_CLEAR_CHANNEL_WATCH, "CMSG_CLEAR_CHANNEL_WATCH" },
{ SMSG_GOGOGO_OBSOLETE, "SMSG_GOGOGO_OBSOLETE" },
{ SMSG_ECHO_PARTY_SQUELCH, "SMSG_ECHO_PARTY_SQUELCH" },
{ CMSG_SPELLCLICK, "CMSG_SPELLCLICK" },
{ SMSG_LOOT_LIST, "SMSG_LOOT_LIST" },
{ MSG_GUILD_PERMISSIONS, "MSG_GUILD_PERMISSIONS" },
{ MSG_GUILD_EVENT_LOG_QUERY, "MSG_GUILD_EVENT_LOG_QUERY" },
{ CMSG_MAELSTROM_RENAME_GUILD, "CMSG_MAELSTROM_RENAME_GUILD" },
{ CMSG_GET_MIRRORIMAGE_DATA, "CMSG_GET_MIRRORIMAGE_DATA" },
{ SMSG_MIRRORIMAGE_DATA, "SMSG_MIRRORIMAGE_DATA" },
{ SMSG_FORCE_DISPLAY_UPDATE, "SMSG_FORCE_DISPLAY_UPDATE" },
{ SMSG_SPELL_CHANCE_RESIST_PUSHBACK, "SMSG_SPELL_CHANCE_RESIST_PUSHBACK" },
{ CMSG_IGNORE_DIMINISHING_RETURNS_CHEAT, "CMSG_IGNORE_DIMINISHING_RETURNS_CHEAT" },
{ SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT, "SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT" },
{ CMSG_KEEP_ALIVE, "CMSG_KEEP_ALIVE" },
{ SMSG_RAID_READY_CHECK_ERROR, "SMSG_RAID_READY_CHECK_ERROR" },
{ CMSG_OPT_OUT_OF_LOOT, "CMSG_OPT_OUT_OF_LOOT" },
{ CMSG_SET_GRANTABLE_LEVELS, "CMSG_SET_GRANTABLE_LEVELS" },
{ CMSG_GRANT_LEVEL, "CMSG_GRANT_LEVEL" },
{ CMSG_DECLINE_CHANNEL_INVITE, "CMSG_DECLINE_CHANNEL_INVITE" },
{ CMSG_GROUPACTION_THROTTLED, "CMSG_GROUPACTION_THROTTLED" },
{ SMSG_OVERRIDE_LIGHT, "SMSG_OVERRIDE_LIGHT" },
{ SMSG_TOTEM_CREATED, "SMSG_TOTEM_CREATED" },
{ CMSG_TOTEM_DESTROYED, "CMSG_TOTEM_DESTROYED" },
{ CMSG_EXPIRE_RAID_INSTANCE, "CMSG_EXPIRE_RAID_INSTANCE" },
{ CMSG_NO_SPELL_VARIANCE, "CMSG_NO_SPELL_VARIANCE" },
{ CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY, "CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY" },
{ SMSG_QUESTGIVER_STATUS_MULTIPLE, "SMSG_QUESTGIVER_STATUS_MULTIPLE" },
{ CMSG_QUERY_SERVER_BUCK_DATA, "CMSG_QUERY_SERVER_BUCK_DATA" },
{ CMSG_CLEAR_SERVER_BUCK_DATA, "CMSG_CLEAR_SERVER_BUCK_DATA" },
{ SMSG_SERVER_BUCK_DATA, "SMSG_SERVER_BUCK_DATA" },
{ SMSG_SEND_UNLEARN_SPELLS, "SMSG_SEND_UNLEARN_SPELLS" },
{ SMSG_PROPOSE_LEVEL_GRANT, "SMSG_PROPOSE_LEVEL_GRANT" },
{ CMSG_ACCEPT_LEVEL_GRANT, "CMSG_ACCEPT_LEVEL_GRANT" },
{ SMSG_REFER_A_FRIEND_FAILURE, "SMSG_REFER_A_FRIEND_FAILURE" },
{ SMSG_SUMMON_CANCEL, "SMSG_SUMMON_CANCEL" },
{ 0, NULL }
};
/*! Decrypts the header after the session key has been deducted as described in the top level comment. */
static guint8*
get_decrypted_header(const guint8 session_key[WOWW_SESSION_KEY_LENGTH],
guint8* idx,
guint8* last_encrypted_value,
const guint8* header,
guint8 header_size) {
guint8* decrypted_header = wmem_alloc0(wmem_file_scope(), WOWW_HEADER_ARRAY_ALLOC_SIZE);
for (guint8 i = 0; i < header_size; i++) {
// x = (E - L) ^ S as described in top level comment
decrypted_header[i] = (header[i] - *last_encrypted_value) ^ session_key[*idx];
*last_encrypted_value = header[i];
*idx = (*idx + 1) % WOWW_SESSION_KEY_LENGTH;
}
return decrypted_header;
}
/*! Deduces the session key values as described in the top level comment. */
static void
deduce_header(guint8 session_key[WOWW_SESSION_KEY_LENGTH],
bool known_indices[WOWW_SESSION_KEY_LENGTH],
const guint8* header,
WowwParticipant_t* participant) {
// Skip size field (2 bytes) and 2 least significant bytes of opcode field
participant->idx = (participant->idx + 2 + 2) % WOWW_SESSION_KEY_LENGTH;
// Set last encrypted value to what it's supposed to be
participant->last_encrypted_value = header[3];
// 0 ^ (E - L) as described in top level comment
session_key[participant->idx] = 0 ^ (header[4] - participant->last_encrypted_value);
known_indices[participant->idx] = true;
participant->idx = (participant->idx + 1) % WOWW_SESSION_KEY_LENGTH;
participant->last_encrypted_value = header[4];
session_key[participant->idx] = 0 ^ (header[5] - participant->last_encrypted_value);
known_indices[participant->idx] = true;
participant->idx = (participant->idx + 1) % WOWW_SESSION_KEY_LENGTH;
participant->last_encrypted_value = header[5];
}
/*! Returns true if all necessary values of the session key are fully known. */
static gboolean
session_key_is_fully_deduced(const bool known_indices[WOWW_SESSION_KEY_LENGTH],
guint8 header_length,
guint8 start_index) {
gboolean fully_deduced = true;
for (guint8 i = 0; i < header_length; i++) {
if (!known_indices[(start_index + i) % WOWW_SESSION_KEY_LENGTH]) {
fully_deduced = false;
}
}
return fully_deduced;
}
/*! Returns either a pointer to a valid decrypted header, or NULL if no such header exists yet. */
static WowwDecryptedHeader_t*
handle_packet_header(packet_info* pinfo,
tvbuff_t* tvb,
WowwParticipant_t* participant,
WowwConversation_t* wowwConversation,
guint8 headerSize,
guint8 index_in_pdu,
gint tvb_offset) {
guint64 key = ((guint64)index_in_pdu << 32) | pinfo->num;
guint8* decrypted_header = wmem_map_lookup(wowwConversation->decrypted_headers, &key);
if (decrypted_header) {
// Header has already been decrypted
return (WowwDecryptedHeader_t*)decrypted_header;
}
if (participant->stopped_at != 0 && participant->stopped_at != key) {
// We can't continue decrypt further server messages since we
// don't know the status of the session key index for any message
// except the last one we couldn't decrypt.
return NULL;
}
// First time we see this header, we need to decrypt it
guint8* header = wmem_alloc0(wmem_packet_scope(), WOWW_HEADER_ARRAY_ALLOC_SIZE);
for (int i = 0; i < headerSize; i++) {
header[i] = tvb_get_guint8(tvb, tvb_offset + i);
}
// If we're seeing the first header
if (!participant->unencrypted_packet_encountered) {
// Packet is unencrypted, no need to do anything
// There is only one unencrypted header each for server and client
participant->unencrypted_packet_encountered = true;
decrypted_header = wmem_alloc0(wmem_file_scope(), WOWW_HEADER_ARRAY_ALLOC_SIZE);
memcpy(decrypted_header, header, headerSize);
guint64* allocated_key = wmem_alloc0(wmem_file_scope(), sizeof(guint64));
*allocated_key = key;
wmem_map_insert(wowwConversation->decrypted_headers, allocated_key, decrypted_header);
return (WowwDecryptedHeader_t*)decrypted_header;
}
WowwPreviousValues_t * original_header_values = wmem_map_lookup(wowwConversation->headers_need_decryption, &key);
if (original_header_values && !session_key_is_fully_deduced(wowwConversation->known_indices, headerSize, original_header_values->idx)) {
// If we have seen the header before AND
// we still can't decrypt it
// there's nothing to do but wait until we get more information
return NULL;
}
if (!original_header_values && !session_key_is_fully_deduced(wowwConversation->known_indices, headerSize, participant->idx)) {
// If we haven't seen the header before AND
// we can't decrypt it now
// we make sure it gets decrypted later
WowwPreviousValues_t* array_index = wmem_alloc0(wmem_file_scope(), sizeof(WowwPreviousValues_t));
array_index->idx = participant->idx;
array_index->last_encrypted_value = participant->last_encrypted_value;
guint64* allocated_key = wmem_alloc0(wmem_file_scope(), sizeof(guint64));
*allocated_key = key;
wmem_map_insert(wowwConversation->headers_need_decryption, allocated_key, array_index);
// If it's a server header we can use it to deduce the session key
if (WOWW_CLIENT_TO_SERVER) {
deduce_header(wowwConversation->session_key, wowwConversation->known_indices, header, participant);
} else {
// We don't know if this PDU contains several messages or just one, so we need
// to stop parsing server messages until we have fully decrypted this one.
participant->stopped_at = key;
// Skip the packet, but remember to acknowledge that values changed
participant->idx = (participant->idx + headerSize) % WOWW_SESSION_KEY_LENGTH;
participant->last_encrypted_value = header[headerSize - 1];
}
return NULL;
}
guint8* idx = &participant->idx;
guint8* last_encrypted_value = &participant->last_encrypted_value;
// If this is an out of order packet we must use the original state
if (original_header_values) {
// We can now (as best as possible) assume that decryption
// is in the right place.
participant->stopped_at = 0;
// We do not care about how these values are mutated since
// they are never going to be used again.
idx = &original_header_values->idx;
last_encrypted_value = &original_header_values->last_encrypted_value;
// No need to decrypt it again
wmem_map_remove(wowwConversation->headers_need_decryption, &key);
}
decrypted_header = get_decrypted_header(wowwConversation->session_key,
idx,
last_encrypted_value,
header,
headerSize);
guint64* allocated_key = wmem_alloc0(wmem_file_scope(), sizeof(guint64));
*allocated_key = key;
// The header has been fully decrypted, cache it for future use
wmem_map_insert(wowwConversation->decrypted_headers, allocated_key, decrypted_header);
return (WowwDecryptedHeader_t*)decrypted_header;
}
static gint32
get_null_terminated_string_length( tvbuff_t* tvb,
gint32 offset)
{
const gint32 maximum_length = 255;
for (gint32 length = 0; length < maximum_length; length++) {
guint8 character = tvb_get_guint8(tvb, offset + length);
if (character == 0) {
// Include the null character in the length
return length + 1;
}
}
return 0;
}
static void
add_cstring(ptvcursor_t* ptv, const int* hf) {
gint32 len = get_null_terminated_string_length(ptvcursor_tvbuff(ptv), ptvcursor_current_offset(ptv));
ptvcursor_add(ptv, *hf, len, ENC_UTF_8);
}
static void
add_sized_cstring(ptvcursor_t* ptv, const int* hf) {
ptvcursor_add(ptv, hf_woww_string_length, 4, ENC_LITTLE_ENDIAN);
gint32 len = get_null_terminated_string_length(ptvcursor_tvbuff(ptv), ptvcursor_current_offset(ptv));
ptvcursor_add(ptv, *hf, len, ENC_UTF_8);
}
static void
add_aura_mask(ptvcursor_t* ptv) {
guint32 mask = 0;
ptvcursor_add_ret_uint(ptv, hf_woww_aura_mask, 4, ENC_LITTLE_ENDIAN, &mask);
for (gint i = 0; i < 32; ++i) {
if (mask & (1 << i)) {
ptvcursor_add(ptv, hf_woww_aura, 4, ENC_LITTLE_ENDIAN);
}
}
}
static void
add_update_mask(ptvcursor_t* ptv) {
guint32 amount_of_masks = 0;
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_masks, 1, ENC_NA, &amount_of_masks);
guint32* masks = (guint32*)wmem_alloc0(wmem_packet_scope(), amount_of_masks * 4);
for (guint32 i = 0; i < amount_of_masks; ++i) {
ptvcursor_add_ret_uint(ptv, hf_woww_update_mask, 4, ENC_LITTLE_ENDIAN, masks + i);
}
for (guint32 mask = 0; mask < amount_of_masks; ++mask) {
for (guint32 i = 0; i < 32; ++i) {
if (masks[mask] & (1 << i)) {
ptvcursor_add(ptv, hf_woww_update_mask_value, 4, ENC_LITTLE_ENDIAN);
}
}
}
}
static void
add_packed_guid(ptvcursor_t* ptv, packet_info* pinfo) {
tvbuff_t* tvb = ptvcursor_tvbuff(ptv);
proto_tree* tree = ptvcursor_tree(ptv);
guint8 byte_mask = tvb_get_guint8(tvb, ptvcursor_current_offset(ptv));
ptvcursor_advance(ptv, 1);
guint8* guid = (guint8*)wmem_alloc(wmem_packet_scope(), 8);
for (gint i = 0; i < 8; ++i) {
if (byte_mask & (1 << i)) {
guid[i] = tvb_get_guint8(tvb, ptvcursor_current_offset(ptv));
ptvcursor_advance(ptv, 1);
}
}
tvbuff_t* next_tvb = tvb_new_child_real_data(tvb, (guint8*)guid, 8, 8);
add_new_data_source(pinfo, next_tvb, "Packed Guid");
proto_tree_add_item(tree, hf_woww_guid, next_tvb, 0, 8, ENC_LITTLE_ENDIAN);
}
static void
add_body_fields(guint32 opcode,
proto_tree* tree,
tvbuff_t* tvb,
gint32 offset,
gint32 offset_packet_end,
packet_info* pinfo)
{
guint32 len = 0;
guint32 i = 0;
/* AUTOGENERATED_START_VARIABLES */
guint32 amount_of_auras = 0;
guint32 amount_of_carriers = 0;
guint32 amount_of_characters = 0;
guint32 amount_of_choice_item_rewards = 0;
guint32 amount_of_cooldowns = 0;
guint32 amount_of_damages = 0;
guint32 amount_of_effects = 0;
guint32 amount_of_emotes = 0;
guint32 amount_of_entries = 0;
guint32 amount_of_events = 0;
guint32 amount_of_extra_fields = 0;
guint32 amount_of_factions = 0;
guint32 amount_of_friends = 0;
guint32 amount_of_gossip_items = 0;
guint32 amount_of_hits = 0;
guint32 amount_of_ignored = 0;
guint32 amount_of_item_rewards = 0;
guint32 amount_of_items = 0;
guint32 amount_of_mails = 0;
guint32 amount_of_members = 0;
guint32 amount_of_misses = 0;
guint32 amount_of_nodes = 0;
guint32 amount_of_objects = 0;
guint32 amount_of_outbid_items = 0;
guint32 amount_of_petitions = 0;
guint32 amount_of_pets = 0;
guint32 amount_of_players = 0;
guint32 amount_of_quests = 0;
guint32 amount_of_raid_infos = 0;
guint32 amount_of_reactions = 0;
guint32 amount_of_records = 0;
guint32 amount_of_required_items = 0;
guint32 amount_of_rights = 0;
guint32 amount_of_signatures = 0;
guint32 amount_of_spells = 0;
guint32 amount_of_states = 0;
guint32 amount_of_strings = 0;
guint32 amount_of_targets = 0;
guint32 amount_of_teammates = 0;
guint32 amount_of_zones = 0;
guint32 aura_type = 0;
guint32 category = 0;
guint32 chat_type = 0;
guint32 cooldown_count = 0;
guint32 count = 0;
guint32 effect = 0;
guint32 exp_type = 0;
guint32 flags = 0;
guint32 index = 0;
guint32 info_block = 0;
guint32 key_version = 0;
guint32 listed_players = 0;
guint32 map = 0;
guint32 mask = 0;
guint32 message_type = 0;
guint32 node_count = 0;
guint32 number_of_battlegrounds = 0;
guint32 reason = 0;
guint32 result = 0;
guint32 spell_count = 0;
guint32 spline_flags = 0;
guint32 status = 0;
guint32 status_id = 0;
guint32 target_flags = 0;
guint32 update_flag = 0;
guint32 update_type = 0;
guint32 url_info = 0;
/* AUTOGENERATED_END_VARIABLES */
ptvcursor_t* ptv = ptvcursor_new(wmem_packet_scope(), tree, tvb, offset);
/* AUTOGENERATED_START_PARSER */
switch (opcode) {
case CMSG_ACCEPT_TRADE:
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_ACTIVATETAXI:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_source_node, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_destination_node, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_ACTIVATETAXIEXPRESS:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_total_cost, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_node_count, 4, ENC_LITTLE_ENDIAN, &node_count);
for (i = 0; i < node_count; ++i) {
ptvcursor_add(ptv, hf_woww_nodes, 4, ENC_LITTLE_ENDIAN);
}
break;
case CMSG_ADD_FRIEND:
add_cstring(ptv, &hf_woww_friend_name);
break;
case CMSG_ADD_IGNORE:
add_cstring(ptv, &hf_woww_ignore_name);
break;
case CMSG_AREATRIGGER:
ptvcursor_add(ptv, hf_woww_trigger_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_AREA_SPIRIT_HEALER_QUERY:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_AREA_SPIRIT_HEALER_QUEUE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_ATTACKSWING:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_AUCTION_LIST_BIDDER_ITEMS:
ptvcursor_add(ptv, hf_woww_auctioneer, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_start_from_page, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_outbid_items, 4, ENC_LITTLE_ENDIAN, &amount_of_outbid_items);
for (i = 0; i < amount_of_outbid_items; ++i) {
ptvcursor_add(ptv, hf_woww_outbid_item_ids, 4, ENC_LITTLE_ENDIAN);
}
break;
case CMSG_AUCTION_LIST_ITEMS:
ptvcursor_add(ptv, hf_woww_auctioneer_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_list_start_item, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_searched_name);
ptvcursor_add(ptv, hf_woww_minimum_level, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_maximum_level, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_auction_slot_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_auction_main_category, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_auction_sub_category, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_quality, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_usable, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_AUCTION_LIST_OWNER_ITEMS:
ptvcursor_add(ptv, hf_woww_auctioneer_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_list_from, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_AUCTION_PLACE_BID:
ptvcursor_add(ptv, hf_woww_auctioneer_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_auction_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_price, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_AUCTION_REMOVE_ITEM:
ptvcursor_add(ptv, hf_woww_auctioneer_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_auction_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_AUCTION_SELL_ITEM:
ptvcursor_add(ptv, hf_woww_auctioneer, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_starting_bid, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_buyout, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_auction_duration_in_minutes, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_AUTH_SESSION:
ptvcursor_add(ptv, hf_woww_build, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_server_id, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_username);
ptvcursor_add(ptv, hf_woww_client_seed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_client_proof, 20, ENC_NA);
ptvcursor_add(ptv, hf_woww_decompressed_addon_info_size, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_AUTOBANK_ITEM:
ptvcursor_add(ptv, hf_woww_bag_index, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_slot_index, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_AUTOEQUIP_ITEM:
ptvcursor_add(ptv, hf_woww_source_bag, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_source_slot, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_AUTOEQUIP_ITEM_SLOT:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_destination_slot, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_AUTOSTORE_BAG_ITEM:
ptvcursor_add(ptv, hf_woww_source_bag, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_source_slot, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_destination_bag, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_AUTOSTORE_BANK_ITEM:
ptvcursor_add(ptv, hf_woww_bag_index, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_slot_index, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_AUTOSTORE_LOOT_ITEM:
ptvcursor_add(ptv, hf_woww_item_slot, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_BANKER_ACTIVATE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_BATTLEFIELD_JOIN:
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_BATTLEFIELD_LIST:
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_BATTLEFIELD_PORT:
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_battlefield_port_action, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_BATTLEMASTER_HELLO:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_BATTLEMASTER_JOIN:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_instance_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_join_as_group, 1, ENC_NA);
break;
case CMSG_BINDER_ACTIVATE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_BUG:
ptvcursor_add(ptv, hf_woww_suggestion, 4, ENC_LITTLE_ENDIAN);
add_sized_cstring(ptv, &hf_woww_content);
add_sized_cstring(ptv, &hf_woww_bug_type);
break;
case CMSG_BUYBACK_ITEM:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_buyback_slot, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_BUY_BANK_SLOT:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_BUY_ITEM:
ptvcursor_add(ptv, hf_woww_vendor_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_amount, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_BUY_ITEM_IN_SLOT:
ptvcursor_add(ptv, hf_woww_vendor_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_bag_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_bag_slot, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_amount, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_BUY_STABLE_SLOT:
ptvcursor_add(ptv, hf_woww_npc_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_CANCEL_AURA:
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_CANCEL_CAST:
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_CANCEL_CHANNELLING:
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_CAST_SPELL:
ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellCastTargets");
ptvcursor_add_ret_uint(ptv, hf_woww_spell_cast_target_flags, 2, ENC_LITTLE_ENDIAN, &target_flags);
if (target_flags & SPELL_CAST_TARGET_FLAGS_UNIT) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_UNIT_ENEMY) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_GAMEOBJECT) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_LOCKED) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_ITEM) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_TRADE_ITEM) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_SOURCE_LOCATION) {
ptvcursor_add(ptv, hf_woww_source_position_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_source_position_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_source_position_z, 4, ENC_LITTLE_ENDIAN);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_DEST_LOCATION) {
ptvcursor_add(ptv, hf_woww_destination_position_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_destination_position_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_destination_position_z, 4, ENC_LITTLE_ENDIAN);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_STRING) {
add_cstring(ptv, &hf_woww_target_string);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_CORPSE_ALLY) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_CORPSE_ENEMY) {
add_packed_guid(ptv, pinfo);
}
ptvcursor_pop_subtree(ptv);
break;
case CMSG_CHANNEL_ANNOUNCEMENTS:
add_cstring(ptv, &hf_woww_channel_name);
break;
case CMSG_CHANNEL_BAN:
add_cstring(ptv, &hf_woww_channel_name);
add_cstring(ptv, &hf_woww_player_name);
break;
case CMSG_CHANNEL_INVITE:
add_cstring(ptv, &hf_woww_channel_name);
add_cstring(ptv, &hf_woww_player_name);
break;
case CMSG_CHANNEL_KICK:
add_cstring(ptv, &hf_woww_channel_name);
add_cstring(ptv, &hf_woww_player_name);
break;
case CMSG_CHANNEL_LIST:
add_cstring(ptv, &hf_woww_channel_name);
break;
case CMSG_CHANNEL_MODERATE:
add_cstring(ptv, &hf_woww_channel_name);
break;
case CMSG_CHANNEL_MODERATOR:
add_cstring(ptv, &hf_woww_channel_name);
add_cstring(ptv, &hf_woww_player_name);
break;
case CMSG_CHANNEL_MUTE:
add_cstring(ptv, &hf_woww_channel_name);
add_cstring(ptv, &hf_woww_player_name);
break;
case CMSG_CHANNEL_OWNER:
add_cstring(ptv, &hf_woww_channel_name);
break;
case CMSG_CHANNEL_PASSWORD:
add_cstring(ptv, &hf_woww_channel_name);
add_cstring(ptv, &hf_woww_channel_password);
break;
case CMSG_CHANNEL_SET_OWNER:
add_cstring(ptv, &hf_woww_channel_name);
add_cstring(ptv, &hf_woww_new_owner);
break;
case CMSG_CHANNEL_UNBAN:
add_cstring(ptv, &hf_woww_channel_name);
add_cstring(ptv, &hf_woww_player_name);
break;
case CMSG_CHANNEL_UNMODERATOR:
add_cstring(ptv, &hf_woww_channel_name);
add_cstring(ptv, &hf_woww_player_name);
break;
case CMSG_CHANNEL_UNMUTE:
add_cstring(ptv, &hf_woww_channel_name);
add_cstring(ptv, &hf_woww_player_name);
break;
case CMSG_CHAR_CREATE:
add_cstring(ptv, &hf_woww_name);
ptvcursor_add(ptv, hf_woww_race, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_class, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_gender, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_skin_color, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_face, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_hair_style, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_hair_color, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_facial_hair, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_outfit_id, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_CHAR_DELETE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_CHAR_RENAME:
ptvcursor_add(ptv, hf_woww_character_guid, 8, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_new_name);
break;
case CMSG_CHAT_IGNORED:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_CLEAR_TRADE_ITEM:
ptvcursor_add(ptv, hf_woww_trade_slot, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_CREATURE_QUERY:
ptvcursor_add(ptv, hf_woww_creature, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_DEL_FRIEND:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_DEL_IGNORE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_DESTROYITEM:
ptvcursor_add(ptv, hf_woww_bag, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_amount, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_DUEL_ACCEPTED:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_DUEL_CANCELLED:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_EMOTE:
ptvcursor_add(ptv, hf_woww_emote_enum, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_FAR_SIGHT:
ptvcursor_add(ptv, hf_woww_far_sight_operation, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_FORCE_MOVE_ROOT_ACK:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_movement_counter, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
break;
case CMSG_FORCE_MOVE_UNROOT_ACK:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_movement_counter, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
break;
case CMSG_FORCE_RUN_BACK_SPEED_CHANGE_ACK:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_movement_counter, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_new_speed, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_FORCE_RUN_SPEED_CHANGE_ACK:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_new_speed, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_new_speed, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_FORCE_SWIM_SPEED_CHANGE_ACK:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_new_speed, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_FORCE_TURN_RATE_CHANGE_ACK:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_new_speed, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_FORCE_WALK_SPEED_CHANGE_ACK:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_new_speed, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_GAMEOBJECT_QUERY:
ptvcursor_add(ptv, hf_woww_entry_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_GAMEOBJ_USE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_GET_MAIL_LIST:
ptvcursor_add(ptv, hf_woww_mailbox_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_GMSURVEY_SUBMIT:
ptvcursor_add(ptv, hf_woww_survey_id, 4, ENC_LITTLE_ENDIAN);
for (i = 0; i < 10; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "GmSurveyQuestion");
ptvcursor_add(ptv, hf_woww_question_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_answer, 1, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_comment);
ptvcursor_pop_subtree(ptv);
}
add_cstring(ptv, &hf_woww_answer_comment);
break;
case CMSG_GMTICKET_CREATE:
ptvcursor_add_ret_uint(ptv, hf_woww_gm_ticket_type, 1, ENC_LITTLE_ENDIAN, &category);
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
add_cstring(ptv, &hf_woww_message);
add_cstring(ptv, &hf_woww_reserved_for_future_use);
if (category == GM_TICKET_TYPE_BEHAVIOR_HARASSMENT) {
ptvcursor_add(ptv, hf_woww_chat_data_line_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_chat_data_size_uncompressed, 4, ENC_LITTLE_ENDIAN);
}
break;
case CMSG_GMTICKET_UPDATETEXT:
ptvcursor_add(ptv, hf_woww_gm_ticket_type, 1, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_message);
break;
case CMSG_GOSSIP_HELLO:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_GOSSIP_SELECT_OPTION:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_gossip_list_id, 4, ENC_LITTLE_ENDIAN);
len = offset_packet_end - ptvcursor_current_offset(ptv);
if (len > 0) {
add_cstring(ptv, &hf_woww_code);
}
break;
case CMSG_GROUP_ASSISTANT_LEADER:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_set_assistant, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_GROUP_CHANGE_SUB_GROUP:
add_cstring(ptv, &hf_woww_name);
ptvcursor_add(ptv, hf_woww_group_number, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_GROUP_INVITE:
add_cstring(ptv, &hf_woww_name);
break;
case CMSG_GROUP_SET_LEADER:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_GROUP_SWAP_SUB_GROUP:
add_cstring(ptv, &hf_woww_name);
add_cstring(ptv, &hf_woww_swap_with_name);
break;
case CMSG_GROUP_UNINVITE:
add_cstring(ptv, &hf_woww_name);
break;
case CMSG_GROUP_UNINVITE_GUID:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_GUILD_ADD_RANK:
add_cstring(ptv, &hf_woww_rank_name);
break;
case CMSG_GUILD_CREATE:
add_cstring(ptv, &hf_woww_guild_name);
break;
case CMSG_GUILD_DEMOTE:
add_cstring(ptv, &hf_woww_player_name);
break;
case CMSG_GUILD_INFO_TEXT:
add_cstring(ptv, &hf_woww_guild_info);
break;
case CMSG_GUILD_INVITE:
add_cstring(ptv, &hf_woww_invited_player);
break;
case CMSG_GUILD_LEADER:
add_cstring(ptv, &hf_woww_new_guild_leader_name);
break;
case CMSG_GUILD_MOTD:
add_cstring(ptv, &hf_woww_message_of_the_day);
break;
case CMSG_GUILD_PROMOTE:
add_cstring(ptv, &hf_woww_player_name);
break;
case CMSG_GUILD_QUERY:
ptvcursor_add(ptv, hf_woww_guild_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_GUILD_RANK:
ptvcursor_add(ptv, hf_woww_rank_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_rights, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_rank_name);
break;
case CMSG_GUILD_REMOVE:
add_cstring(ptv, &hf_woww_player_name);
break;
case CMSG_GUILD_SET_OFFICER_NOTE:
add_cstring(ptv, &hf_woww_player_name);
add_cstring(ptv, &hf_woww_note);
break;
case CMSG_GUILD_SET_PUBLIC_NOTE:
add_cstring(ptv, &hf_woww_player_name);
add_cstring(ptv, &hf_woww_note);
break;
case CMSG_INITIATE_TRADE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_INSPECT:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_ITEM_NAME_QUERY:
ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_ITEM_QUERY_SINGLE:
ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_ITEM_TEXT_QUERY:
ptvcursor_add(ptv, hf_woww_item_text_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_mail_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_JOIN_CHANNEL:
add_cstring(ptv, &hf_woww_channel_name);
add_cstring(ptv, &hf_woww_channel_password);
break;
case CMSG_LEARN_TALENT:
ptvcursor_add(ptv, hf_woww_talent_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_requested_rank, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_LEAVE_BATTLEFIELD:
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_LEAVE_CHANNEL:
add_cstring(ptv, &hf_woww_channel_name);
break;
case CMSG_LIST_INVENTORY:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_LOOT:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_LOOT_MASTER_GIVE:
ptvcursor_add(ptv, hf_woww_loot, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_slot_id, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_player, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_LOOT_METHOD:
ptvcursor_add(ptv, hf_woww_group_loot_setting, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_loot_master, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_quality, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_LOOT_RELEASE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_LOOT_ROLL:
ptvcursor_add(ptv, hf_woww_item_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_slot, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_roll_vote, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_MAIL_CREATE_TEXT_ITEM:
ptvcursor_add(ptv, hf_woww_mailbox_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_mail_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_mail_template_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_MAIL_DELETE:
ptvcursor_add(ptv, hf_woww_mailbox_id, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_mail_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_MAIL_MARK_AS_READ:
ptvcursor_add(ptv, hf_woww_mailbox_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_mail_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_MAIL_RETURN_TO_SENDER:
ptvcursor_add(ptv, hf_woww_mailbox_id, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_mail_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_MAIL_TAKE_ITEM:
ptvcursor_add(ptv, hf_woww_mailbox_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_mail_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_MAIL_TAKE_MONEY:
ptvcursor_add(ptv, hf_woww_mailbox_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_mail_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_MEETINGSTONE_JOIN:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_MESSAGECHAT:
ptvcursor_add_ret_uint(ptv, hf_woww_chat_type, 4, ENC_LITTLE_ENDIAN, &chat_type);
ptvcursor_add(ptv, hf_woww_language, 4, ENC_LITTLE_ENDIAN);
if (chat_type == CHAT_TYPE_WHISPER) {
add_cstring(ptv, &hf_woww_target_player);
}
else if (chat_type == CHAT_TYPE_CHANNEL) {
add_cstring(ptv, &hf_woww_channel);
}
add_cstring(ptv, &hf_woww_message);
break;
case CMSG_MOVE_FALL_RESET:
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
break;
case CMSG_MOVE_FEATHER_FALL_ACK:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_movement_counter, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_apply, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_MOVE_HOVER_ACK:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_is_applied, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_MOVE_KNOCK_BACK_ACK:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
break;
case CMSG_MOVE_NOT_ACTIVE_MOVER:
ptvcursor_add(ptv, hf_woww_old_mover, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
break;
case CMSG_MOVE_SET_RAW_POSITION:
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_MOVE_SPLINE_DONE:
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_movement_counter, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_MOVE_TIME_SKIPPED:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_lag, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_MOVE_WATER_WALK_ACK:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_movement_counter, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_apply, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_NAME_QUERY:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_NPC_TEXT_QUERY:
ptvcursor_add(ptv, hf_woww_text_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_OFFER_PETITION:
ptvcursor_add(ptv, hf_woww_petition_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_OPEN_ITEM:
ptvcursor_add(ptv, hf_woww_bag_index, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_PAGE_TEXT_QUERY:
ptvcursor_add(ptv, hf_woww_page_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_PETITION_BUY:
ptvcursor_add(ptv, hf_woww_npc, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_guid, 8, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_name);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 2, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_index, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_PETITION_QUERY:
ptvcursor_add(ptv, hf_woww_guild_guid, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_petition_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_PETITION_SHOWLIST:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_PETITION_SHOW_SIGNATURES:
ptvcursor_add(ptv, hf_woww_item_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_PETITION_SIGN:
ptvcursor_add(ptv, hf_woww_petition_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_PET_ABANDON:
ptvcursor_add(ptv, hf_woww_pet_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_PET_ACTION:
ptvcursor_add(ptv, hf_woww_pet_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_data, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_PET_CANCEL_AURA:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_PET_CAST_SPELL:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_PET_NAME_QUERY:
ptvcursor_add(ptv, hf_woww_pet_number, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_PET_RENAME:
ptvcursor_add(ptv, hf_woww_pet_guid, 8, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_name);
break;
case CMSG_PET_SET_ACTION:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_position, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_data, 4, ENC_LITTLE_ENDIAN);
len = offset_packet_end - ptvcursor_current_offset(ptv);
if (len > 0) {
ptvcursor_add(ptv, hf_woww_position, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_data, 4, ENC_LITTLE_ENDIAN);
}
break;
case CMSG_PET_SPELL_AUTOCAST:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_enabled, 1, ENC_NA);
break;
case CMSG_PET_STOP_ATTACK:
ptvcursor_add(ptv, hf_woww_pet_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_PET_UNLEARN:
ptvcursor_add(ptv, hf_woww_pet_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_PING:
ptvcursor_add(ptv, hf_woww_sequence_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_round_time_in_ms, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_PLAYER_LOGIN:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_PUSHQUESTTOPARTY:
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_QUESTGIVER_ACCEPT_QUEST:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_QUESTGIVER_CHOOSE_REWARD:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_reward, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_QUESTGIVER_COMPLETE_QUEST:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_QUESTGIVER_HELLO:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_QUESTGIVER_QUERY_QUEST:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_QUESTGIVER_REQUEST_REWARD:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_QUESTGIVER_STATUS_QUERY:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_QUESTLOG_REMOVE_QUEST:
ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_QUESTLOG_SWAP_QUEST:
ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_QUEST_CONFIRM_ACCEPT:
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_QUEST_QUERY:
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_READ_ITEM:
ptvcursor_add(ptv, hf_woww_bag_index, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_RECLAIM_CORPSE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_REPAIR_ITEM:
ptvcursor_add(ptv, hf_woww_npc_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_REQUEST_ACCOUNT_DATA:
ptvcursor_add(ptv, hf_woww_data_type, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_REQUEST_PARTY_MEMBER_STATS:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_RESURRECT_RESPONSE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_status, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_SELL_ITEM:
ptvcursor_add(ptv, hf_woww_vendor_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_amount, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_SEND_MAIL:
ptvcursor_add(ptv, hf_woww_mailbox, 8, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_receiver);
add_cstring(ptv, &hf_woww_subject);
add_cstring(ptv, &hf_woww_body);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_money, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cash_on_delivery_amount, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_SETSHEATHED:
ptvcursor_add(ptv, hf_woww_sheath_state, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_SET_ACTIONBAR_TOGGLES:
ptvcursor_add(ptv, hf_woww_action_bar, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_SET_ACTION_BUTTON:
ptvcursor_add(ptv, hf_woww_button, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_action, 2, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_misc, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_action_type, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_SET_ACTIVE_MOVER:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_SET_AMMO:
ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_SET_FACTION_ATWAR:
ptvcursor_add(ptv, hf_woww_reputation_list_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_faction_flag, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_SET_FACTION_INACTIVE:
ptvcursor_add(ptv, hf_woww_reputation_list_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_inactive, 1, ENC_NA);
break;
case CMSG_SET_SELECTION:
ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_SET_TARGET_OBSOLETE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_SET_TRADE_GOLD:
ptvcursor_add(ptv, hf_woww_gold, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_SET_TRADE_ITEM:
ptvcursor_add(ptv, hf_woww_trade_slot, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_bag, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_SET_WATCHED_FACTION:
ptvcursor_add(ptv, hf_woww_reputation_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_SPIRIT_HEALER_ACTIVATE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_SPLIT_ITEM:
ptvcursor_add(ptv, hf_woww_source_bag, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_source_slot, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_destination_bag, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_destination_slot, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_amount, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_STABLE_PET:
ptvcursor_add(ptv, hf_woww_npc_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_STABLE_SWAP_PET:
ptvcursor_add(ptv, hf_woww_npc, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_pet_slot, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_STANDSTATECHANGE:
ptvcursor_add(ptv, hf_woww_unit_stand_state, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_SUMMON_RESPONSE:
ptvcursor_add(ptv, hf_woww_summoner_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_SWAP_INV_ITEM:
ptvcursor_add(ptv, hf_woww_source_slot, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_destination_slot, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_SWAP_ITEM:
ptvcursor_add(ptv, hf_woww_destination_bag, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_destionation_slot, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_source_bag, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_source_slot, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_TAXINODE_STATUS_QUERY:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_TAXIQUERYAVAILABLENODES:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_TELEPORT_TO_UNIT:
add_cstring(ptv, &hf_woww_name);
break;
case CMSG_TEXT_EMOTE:
ptvcursor_add(ptv, hf_woww_text_emote, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_emote_enum, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_TOGGLE_PVP:
len = offset_packet_end - ptvcursor_current_offset(ptv);
if (len > 0) {
ptvcursor_add(ptv, hf_woww_enable_pvp, 1, ENC_NA);
}
break;
case CMSG_TRAINER_BUY_SPELL:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_TRAINER_LIST:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_TURN_IN_PETITION:
ptvcursor_add(ptv, hf_woww_petition_guid, 8, ENC_LITTLE_ENDIAN);
break;
case CMSG_TUTORIAL_FLAG:
ptvcursor_add(ptv, hf_woww_tutorial_flag, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_UNLEARN_SKILL:
ptvcursor_add(ptv, hf_woww_skill_id, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_UNSTABLE_PET:
ptvcursor_add(ptv, hf_woww_npc_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_pet_number, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_UPDATE_ACCOUNT_DATA:
ptvcursor_add(ptv, hf_woww_data_type, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
len = offset_packet_end - ptvcursor_current_offset(ptv);
ptvcursor_add(ptv, hf_woww_unknown_bytes, len, ENC_NA);
break;
case CMSG_USE_ITEM:
ptvcursor_add(ptv, hf_woww_bag_index, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_bag_slot, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_index, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellCastTargets");
ptvcursor_add_ret_uint(ptv, hf_woww_spell_cast_target_flags, 2, ENC_LITTLE_ENDIAN, &target_flags);
if (target_flags & SPELL_CAST_TARGET_FLAGS_UNIT) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_UNIT_ENEMY) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_GAMEOBJECT) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_LOCKED) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_ITEM) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_TRADE_ITEM) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_SOURCE_LOCATION) {
ptvcursor_add(ptv, hf_woww_source_position_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_source_position_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_source_position_z, 4, ENC_LITTLE_ENDIAN);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_DEST_LOCATION) {
ptvcursor_add(ptv, hf_woww_destination_position_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_destination_position_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_destination_position_z, 4, ENC_LITTLE_ENDIAN);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_STRING) {
add_cstring(ptv, &hf_woww_target_string);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_CORPSE_ALLY) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_CORPSE_ENEMY) {
add_packed_guid(ptv, pinfo);
}
ptvcursor_pop_subtree(ptv);
break;
case CMSG_WARDEN_DATA:
len = offset_packet_end - ptvcursor_current_offset(ptv);
ptvcursor_add(ptv, hf_woww_unimplemented, len, ENC_NA);
break;
case CMSG_WHO:
ptvcursor_add(ptv, hf_woww_minimum_level, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_maximum_level, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_player_name);
add_cstring(ptv, &hf_woww_guild_name);
ptvcursor_add(ptv, hf_woww_race_mask, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_class_mask, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_zones, 4, ENC_LITTLE_ENDIAN, &amount_of_zones);
for (i = 0; i < amount_of_zones; ++i) {
ptvcursor_add(ptv, hf_woww_zones, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_strings, 4, ENC_LITTLE_ENDIAN, &amount_of_strings);
for (i = 0; i < amount_of_strings; ++i) {
add_cstring(ptv, &hf_woww_search_strings);
}
break;
case CMSG_WHOIS:
add_cstring(ptv, &hf_woww_character_name);
break;
case CMSG_WORLD_TELEPORT:
ptvcursor_add(ptv, hf_woww_time_in_msec, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
break;
case CMSG_WRAP_ITEM:
ptvcursor_add(ptv, hf_woww_gift_bag_index, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_gift_slot, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_bag_index, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_slot, 1, ENC_LITTLE_ENDIAN);
break;
case CMSG_ZONEUPDATE:
ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
break;
case MSG_AUCTION_HELLO:
if (WOWW_SERVER_TO_CLIENT) {
ptvcursor_add(ptv, hf_woww_auctioneer, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_auction_house_id, 4, ENC_LITTLE_ENDIAN);
}
else {
ptvcursor_add(ptv, hf_woww_auctioneer, 8, ENC_LITTLE_ENDIAN);
}
break;
case MSG_BATTLEGROUND_PLAYER_POSITIONS:
if (WOWW_SERVER_TO_CLIENT) {
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_teammates, 4, ENC_LITTLE_ENDIAN, &amount_of_teammates);
for (i = 0; i < amount_of_teammates; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "BattlegroundPlayerPosition");
ptvcursor_add(ptv, hf_woww_player, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_position_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_position_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_carriers, 1, ENC_LITTLE_ENDIAN, &amount_of_carriers);
for (i = 0; i < amount_of_carriers; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "BattlegroundPlayerPosition");
ptvcursor_add(ptv, hf_woww_player, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_position_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_position_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
}
else {
}
break;
case MSG_CORPSE_QUERY:
if (WOWW_SERVER_TO_CLIENT) {
ptvcursor_add_ret_uint(ptv, hf_woww_corpse_query_result, 1, ENC_LITTLE_ENDIAN, &result);
if (result == CORPSE_QUERY_RESULT_FOUND) {
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
}
}
else {
}
break;
case MSG_INSPECT_HONOR_STATS:
if (WOWW_SERVER_TO_CLIENT) {
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_pvp_rank, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_today_honorable_and_dishonorable, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_yesterday_honorable, 2, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 2, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_last_week_honorable, 2, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 2, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_this_week_honorable, 2, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 2, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_lifetime_honorable, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_lifetime_dishonorable, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_yesterday_honor, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_last_week_honor, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_this_week_honor, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_pvp_rank, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_rank_progress_bar, 1, ENC_LITTLE_ENDIAN);
}
else {
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
}
break;
case MSG_LIST_STABLED_PETS:
if (WOWW_SERVER_TO_CLIENT) {
ptvcursor_add(ptv, hf_woww_npc, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_pets, 1, ENC_LITTLE_ENDIAN, &amount_of_pets);
ptvcursor_add(ptv, hf_woww_stable_slots, 1, ENC_LITTLE_ENDIAN);
for (i = 0; i < amount_of_pets; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "StabledPet");
ptvcursor_add(ptv, hf_woww_pet_number, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_entry, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_level, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_name);
ptvcursor_add(ptv, hf_woww_loyalty, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
}
else {
ptvcursor_add(ptv, hf_woww_npc, 8, ENC_LITTLE_ENDIAN);
}
break;
case MSG_LOOKING_FOR_GROUP:
if (WOWW_SERVER_TO_CLIENT) {
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
}
else {
}
break;
case MSG_MINIMAP_PING:
if (WOWW_SERVER_TO_CLIENT) {
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_position_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_position_y, 4, ENC_LITTLE_ENDIAN);
}
else {
ptvcursor_add(ptv, hf_woww_position_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_position_y, 4, ENC_LITTLE_ENDIAN);
}
break;
case MSG_MOVE_FALL_LAND:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_HEARTBEAT:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_JUMP:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_SET_FACING:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_SET_PITCH:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_SET_RUN_MODE:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_SET_WALK_MODE:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_START_BACKWARD:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_START_FORWARD:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_START_PITCH_DOWN:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_START_PITCH_UP:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_START_STRAFE_LEFT:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_START_STRAFE_RIGHT:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_START_SWIM:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_START_TURN_LEFT:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_START_TURN_RIGHT:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_STOP_PITCH:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_STOP_STRAFE:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_STOP_SWIM:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_STOP:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_STOP_TURN:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case MSG_MOVE_TELEPORT_ACK:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_movement_counter, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else {
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_movement_counter, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_time_in_msecs, 4, ENC_LITTLE_ENDIAN);
}
break;
case MSG_PETITION_DECLINE:
ptvcursor_add(ptv, hf_woww_petition, 8, ENC_LITTLE_ENDIAN);
break;
case MSG_PETITION_RENAME:
ptvcursor_add(ptv, hf_woww_petition_guid, 8, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_new_name);
break;
case MSG_PVP_LOG_DATA:
if (WOWW_SERVER_TO_CLIENT) {
ptvcursor_add_ret_uint(ptv, hf_woww_battleground_end_status, 1, ENC_LITTLE_ENDIAN, &status);
if (status == BATTLEGROUND_END_STATUS_ENDED) {
ptvcursor_add(ptv, hf_woww_battleground_winner, 1, ENC_LITTLE_ENDIAN);
}
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_players, 4, ENC_LITTLE_ENDIAN, &amount_of_players);
for (i = 0; i < amount_of_players; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "BattlegroundPlayer");
ptvcursor_add(ptv, hf_woww_player, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_pvp_rank, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_killing_blows, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_honorable_kills, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_deaths, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_bonus_honor, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_extra_fields, 4, ENC_LITTLE_ENDIAN, &amount_of_extra_fields);
for (i = 0; i < amount_of_extra_fields; ++i) {
ptvcursor_add(ptv, hf_woww_fields, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
}
else {
}
break;
case MSG_QUERY_NEXT_MAIL_TIME:
if (WOWW_SERVER_TO_CLIENT) {
ptvcursor_add(ptv, hf_woww_unread_mails, 4, ENC_LITTLE_ENDIAN);
}
else {
}
break;
case MSG_QUEST_PUSH_RESULT:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_quest_party_message, 1, ENC_LITTLE_ENDIAN);
break;
case MSG_RAID_READY_CHECK:
if (WOWW_SERVER_TO_CLIENT) {
len = offset_packet_end - ptvcursor_current_offset(ptv);
if (len > 0) {
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_state, 1, ENC_LITTLE_ENDIAN);
}
}
else {
len = offset_packet_end - ptvcursor_current_offset(ptv);
if (len > 0) {
ptvcursor_add(ptv, hf_woww_state, 1, ENC_LITTLE_ENDIAN);
}
}
break;
case MSG_RAID_TARGET_UPDATE:
if (WOWW_SERVER_TO_CLIENT) {
ptvcursor_add_ret_uint(ptv, hf_woww_raid_target_update_type, 1, ENC_LITTLE_ENDIAN, &update_type);
if (update_type == RAID_TARGET_UPDATE_TYPE_FULL) {
for (i = 0; i < 8; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "RaidTargetUpdate");
ptvcursor_add(ptv, hf_woww_raid_target_index, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
}
else if (update_type == RAID_TARGET_UPDATE_TYPE_PARTIAL) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "RaidTargetUpdate");
ptvcursor_add(ptv, hf_woww_raid_target_index, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
}
else {
ptvcursor_add_ret_uint(ptv, hf_woww_raid_target_index, 1, ENC_LITTLE_ENDIAN, &index);
if (index != RAID_TARGET_INDEX_REQUEST_ICONS) {
ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
}
}
break;
case MSG_RANDOM_ROLL:
if (WOWW_SERVER_TO_CLIENT) {
ptvcursor_add(ptv, hf_woww_minimum, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_maximum, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_actual_roll, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
}
else {
ptvcursor_add(ptv, hf_woww_minimum, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_maximum, 4, ENC_LITTLE_ENDIAN);
}
break;
case MSG_SAVE_GUILD_EMBLEM:
if (WOWW_SERVER_TO_CLIENT) {
ptvcursor_add(ptv, hf_woww_guild_emblem_result, 4, ENC_LITTLE_ENDIAN);
}
else {
ptvcursor_add(ptv, hf_woww_vendor, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_emblem_style, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_emblem_color, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_border_style, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_border_color, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_background_color, 4, ENC_LITTLE_ENDIAN);
}
break;
case MSG_TABARDVENDOR_ACTIVATE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case MSG_TALENT_WIPE_CONFIRM:
if (WOWW_SERVER_TO_CLIENT) {
ptvcursor_add(ptv, hf_woww_wiping_npc, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cost_in_copper, 4, ENC_LITTLE_ENDIAN);
}
else {
ptvcursor_add(ptv, hf_woww_wiping_npc, 8, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_ACCOUNT_DATA_TIMES:
for (i = 0; i < 32; ++i) {
ptvcursor_add(ptv, hf_woww_data, 4, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_ACTION_BUTTONS:
for (i = 0; i < 120; ++i) {
ptvcursor_add(ptv, hf_woww_data, 4, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_ACTIVATETAXIREPLY:
ptvcursor_add(ptv, hf_woww_activate_taxi_reply, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_ADDON_INFO:
while (ptvcursor_current_offset(ptv) < offset_packet_end) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Addon");
ptvcursor_add(ptv, hf_woww_addon_type, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_info_block, 1, ENC_LITTLE_ENDIAN, &info_block);
if (info_block == INFO_BLOCK_AVAILABLE) {
ptvcursor_add_ret_uint(ptv, hf_woww_key_version, 1, ENC_LITTLE_ENDIAN, &key_version);
if (key_version != KEY_VERSION_ZERO) {
ptvcursor_add(ptv, hf_woww_public_key, 256, ENC_NA);
}
ptvcursor_add(ptv, hf_woww_update_available_flag, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add_ret_uint(ptv, hf_woww_url_info, 1, ENC_LITTLE_ENDIAN, &url_info);
if (url_info == URL_INFO_AVAILABLE) {
add_cstring(ptv, &hf_woww_url);
}
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_AI_REACTION:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_ai_reaction, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_AREA_SPIRIT_HEALER_TIME:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_next_resurrect_time, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_AREA_TRIGGER_MESSAGE:
add_sized_cstring(ptv, &hf_woww_message);
break;
case SMSG_ATTACKERSTATEUPDATE:
ptvcursor_add(ptv, hf_woww_hit_info, 4, ENC_LITTLE_ENDIAN);
add_packed_guid(ptv, pinfo);
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_total_damage, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_damages, 1, ENC_LITTLE_ENDIAN, &amount_of_damages);
for (i = 0; i < amount_of_damages; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "DamageInfo");
ptvcursor_add(ptv, hf_woww_spell_school_mask, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_damage_float, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_damage_uint, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_absorb, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_resist, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add(ptv, hf_woww_damage_state, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_blocked_amount, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_ATTACKSTART:
ptvcursor_add(ptv, hf_woww_attacker_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_victim_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_ATTACKSTOP:
add_packed_guid(ptv, pinfo);
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_AUCTION_BIDDER_LIST_RESULT:
ptvcursor_add_ret_uint(ptv, hf_woww_count, 4, ENC_LITTLE_ENDIAN, &count);
for (i = 0; i < count; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "AuctionListItem");
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_entry, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_enchantment, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_suffix_factor, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_charges, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_owner, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_start_bid, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_minimum_bid, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_buyout_amount, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_time_left_in_msecs, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_highest_bidder, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_highest_bid, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add(ptv, hf_woww_total_amount_of_auctions, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_AUCTION_BIDDER_NOTIFICATION:
ptvcursor_add(ptv, hf_woww_auction_house_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_auction_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_bidder, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_won, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_out_bid, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_template, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_AUCTION_COMMAND_RESULT:
len = offset_packet_end - ptvcursor_current_offset(ptv);
ptvcursor_add(ptv, hf_woww_unimplemented, len, ENC_NA);
break;
case SMSG_AUCTION_LIST_RESULT:
ptvcursor_add_ret_uint(ptv, hf_woww_count, 4, ENC_LITTLE_ENDIAN, &count);
for (i = 0; i < count; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "AuctionListItem");
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_entry, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_enchantment, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_suffix_factor, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_charges, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_owner, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_start_bid, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_minimum_bid, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_buyout_amount, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_time_left_in_msecs, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_highest_bidder, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_highest_bid, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add(ptv, hf_woww_total_amount_of_auctions, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_AUCTION_OWNER_LIST_RESULT:
ptvcursor_add_ret_uint(ptv, hf_woww_count, 4, ENC_LITTLE_ENDIAN, &count);
for (i = 0; i < count; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "AuctionListItem");
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_entry, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_enchantment, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_suffix_factor, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_charges, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_owner, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_start_bid, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_minimum_bid, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_buyout_amount, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_time_left_in_msecs, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_highest_bidder, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_highest_bid, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add(ptv, hf_woww_total_amount_of_auctions, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_AUCTION_OWNER_NOTIFICATION:
ptvcursor_add(ptv, hf_woww_auction_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_bid, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_auction_out_bid, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_bidder, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_entry, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_AUCTION_REMOVED_NOTIFICATION:
ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_template, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_random_property_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_AUTH_CHALLENGE:
ptvcursor_add(ptv, hf_woww_server_seed, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_AUTH_RESPONSE:
ptvcursor_add_ret_uint(ptv, hf_woww_world_result, 1, ENC_LITTLE_ENDIAN, &result);
if (result == WORLD_RESULT_AUTH_OK) {
ptvcursor_add(ptv, hf_woww_billing_time, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_billing_flags, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_billing_rested, 4, ENC_LITTLE_ENDIAN);
}
else if (result == WORLD_RESULT_AUTH_WAIT_QUEUE) {
ptvcursor_add(ptv, hf_woww_queue_position, 4, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_BATTLEFIELD_LIST:
ptvcursor_add(ptv, hf_woww_battlemaster, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_battleground_bracket, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_number_of_battlegrounds, 4, ENC_LITTLE_ENDIAN, &number_of_battlegrounds);
for (i = 0; i < number_of_battlegrounds; ++i) {
ptvcursor_add(ptv, hf_woww_battlegrounds, 4, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_BATTLEFIELD_STATUS:
ptvcursor_add(ptv, hf_woww_queue_slot, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN, &map);
if (map != MAP_EASTERN_KINGDOMS) {
ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_client_instance_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_status_id, 1, ENC_LITTLE_ENDIAN, &status_id);
if (status_id == STATUS_ID_WAIT_QUEUE) {
ptvcursor_add(ptv, hf_woww_average_wait_time_in_ms, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_time_in_queue_in_ms, 4, ENC_LITTLE_ENDIAN);
}
else if (status_id == STATUS_ID_WAIT_JOIN) {
ptvcursor_add(ptv, hf_woww_time_to_remove_in_queue_in_ms, 4, ENC_LITTLE_ENDIAN);
}
else if (status_id == STATUS_ID_IN_PROGRESS) {
ptvcursor_add(ptv, hf_woww_time_to_bg_autoleave_in_ms, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_time_to_bg_start_in_ms, 4, ENC_LITTLE_ENDIAN);
}
}
break;
case SMSG_BATTLEGROUND_PLAYER_JOINED:
ptvcursor_add(ptv, hf_woww_player_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_BATTLEGROUND_PLAYER_LEFT:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_BINDER_CONFIRM:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_BINDPOINTUPDATE:
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_BUY_BANK_SLOT_RESULT:
ptvcursor_add(ptv, hf_woww_buy_bank_slot_result, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_BUY_FAILED:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_buy_result, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_BUY_ITEM:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_vendor_slot, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_amount_for_sale, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_amount_bought, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_CAST_RESULT:
ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_simple_spell_cast_result, 1, ENC_LITTLE_ENDIAN, &result);
if (result != SIMPLE_SPELL_CAST_RESULT_FAILURE) {
ptvcursor_add_ret_uint(ptv, hf_woww_cast_failure_reason, 1, ENC_LITTLE_ENDIAN, &reason);
if (reason == CAST_FAILURE_REASON_REQUIRES_SPELL_FOCUS) {
ptvcursor_add(ptv, hf_woww_required_spell_focus, 4, ENC_LITTLE_ENDIAN);
}
else if (reason == CAST_FAILURE_REASON_REQUIRES_AREA) {
ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
}
else if (reason == CAST_FAILURE_REASON_EQUIPPED_ITEM_CLASS) {
ptvcursor_add(ptv, hf_woww_equipped_item_class, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_equipped_item_subclass_mask, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_equipped_item_inventory_type_mask, 4, ENC_LITTLE_ENDIAN);
}
}
break;
case SMSG_CHANNEL_LIST:
add_cstring(ptv, &hf_woww_channel_name);
ptvcursor_add(ptv, hf_woww_channel_flags, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_members, 4, ENC_LITTLE_ENDIAN, &amount_of_members);
for (i = 0; i < amount_of_members; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "ChannelMember");
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_channel_member_flags, 1, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_CHANNEL_NOTIFY:
ptvcursor_add(ptv, hf_woww_chat_notify, 1, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_channel_name);
break;
case SMSG_CHARACTER_LOGIN_FAILED:
ptvcursor_add(ptv, hf_woww_world_result, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_CHAR_CREATE:
ptvcursor_add(ptv, hf_woww_world_result, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_CHAR_DELETE:
ptvcursor_add(ptv, hf_woww_world_result, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_CHAR_ENUM:
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_characters, 1, ENC_LITTLE_ENDIAN, &amount_of_characters);
for (i = 0; i < amount_of_characters; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Character");
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_name);
ptvcursor_add(ptv, hf_woww_race, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_class, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_gender, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_skin, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_face, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_hair_style, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_hair_color, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_facial_hair, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_level, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_guild_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_character_flags, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_first_login, 1, ENC_NA);
ptvcursor_add(ptv, hf_woww_pet_display_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_pet_level, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_pet_family, 4, ENC_LITTLE_ENDIAN);
for (i = 0; i < 19; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "CharacterGear");
ptvcursor_add(ptv, hf_woww_equipment_display_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_inventory_type, 1, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add(ptv, hf_woww_first_bag_display_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_first_bag_inventory_id, 1, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_CHAR_RENAME:
ptvcursor_add_ret_uint(ptv, hf_woww_world_result, 1, ENC_LITTLE_ENDIAN, &result);
if (result == WORLD_RESULT_RESPONSE_SUCCESS) {
ptvcursor_add(ptv, hf_woww_character_guid, 8, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_new_name);
}
break;
case SMSG_CHAT_PLAYER_NOT_FOUND:
add_cstring(ptv, &hf_woww_name);
break;
case SMSG_CLEAR_COOLDOWN:
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_CLIENT_CONTROL_UPDATE:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_allow_movement, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_COMPRESSED_MOVES:
len = offset_packet_end - ptvcursor_current_offset(ptv);
ptvcursor_add(ptv, hf_woww_unimplemented, len, ENC_NA);
break;
case SMSG_COMPRESSED_UPDATE_OBJECT:
len = offset_packet_end - ptvcursor_current_offset(ptv);
ptvcursor_add(ptv, hf_woww_unimplemented, len, ENC_NA);
break;
case SMSG_COOLDOWN_EVENT:
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_CORPSE_RECLAIM_DELAY:
ptvcursor_add(ptv, hf_woww_delay_in_seconds, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_CREATURE_QUERY_RESPONSE:
ptvcursor_add(ptv, hf_woww_creature_entry, 4, ENC_LITTLE_ENDIAN);
len = offset_packet_end - ptvcursor_current_offset(ptv);
if (len > 0) {
add_cstring(ptv, &hf_woww_name);
add_cstring(ptv, &hf_woww_name);
add_cstring(ptv, &hf_woww_name);
add_cstring(ptv, &hf_woww_name);
add_cstring(ptv, &hf_woww_sub_name);
ptvcursor_add(ptv, hf_woww_type_flags, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_creature_type, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_creature_family, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_creature_rank, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_data_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_display_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_civilian, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_racial_leader, 1, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_DEFENSE_MESSAGE:
ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
add_sized_cstring(ptv, &hf_woww_message);
break;
case SMSG_DESTROY_OBJECT:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_DISMOUNTRESULT:
ptvcursor_add(ptv, hf_woww_mount_result, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_DISPEL_FAILED:
ptvcursor_add(ptv, hf_woww_caster_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
while (ptvcursor_current_offset(ptv) < offset_packet_end) {
ptvcursor_add(ptv, hf_woww_spells, 4, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_DUEL_COMPLETE:
ptvcursor_add(ptv, hf_woww_ended_without_interruption, 1, ENC_NA);
break;
case SMSG_DUEL_COUNTDOWN:
ptvcursor_add(ptv, hf_woww_time_in_seconds, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_DUEL_REQUESTED:
ptvcursor_add(ptv, hf_woww_initiator_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_DUEL_WINNER:
ptvcursor_add(ptv, hf_woww_duel_winner_reason, 1, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_opponent_name);
add_cstring(ptv, &hf_woww_initiator_name);
break;
case SMSG_EMOTE:
ptvcursor_add(ptv, hf_woww_emote_enum, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_ENCHANTMENTLOG:
ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_caster_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_ENVIRONMENTALDAMAGELOG:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_environmental_damage_type, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_damage, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_absorb, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_resist, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_EXPECTED_SPAM_RECORDS:
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_records, 4, ENC_LITTLE_ENDIAN, &amount_of_records);
for (i = 0; i < amount_of_records; ++i) {
add_cstring(ptv, &hf_woww_records);
}
break;
case SMSG_EXPLORATION_EXPERIENCE:
ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_experience, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_FORCE_MOVE_ROOT:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_FORCE_MOVE_UNROOT:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_FORCE_RUN_BACK_SPEED_CHANGE:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_move_event, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_FORCE_RUN_SPEED_CHANGE:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_move_event, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_FORCE_SWIM_BACK_SPEED_CHANGE:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_move_event, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_FORCE_SWIM_SPEED_CHANGE:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_move_event, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_FORCE_TURN_RATE_CHANGE:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_move_event, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_FORCE_WALK_SPEED_CHANGE:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_move_event, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_FRIEND_LIST:
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_friends, 1, ENC_LITTLE_ENDIAN, &amount_of_friends);
for (i = 0; i < amount_of_friends; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Friend");
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_friend_status, 1, ENC_LITTLE_ENDIAN, &status);
if (status != FRIEND_STATUS_OFFLINE) {
ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_level, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_class, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_FRIEND_STATUS:
ptvcursor_add(ptv, hf_woww_friend_result, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_GAMEOBJECT_CUSTOM_ANIM:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_animation_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_GAMEOBJECT_DESPAWN_ANIM:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_GAMEOBJECT_PAGETEXT:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_GAMEOBJECT_QUERY_RESPONSE:
ptvcursor_add(ptv, hf_woww_entry_id, 4, ENC_LITTLE_ENDIAN);
len = offset_packet_end - ptvcursor_current_offset(ptv);
if (len > 0) {
ptvcursor_add(ptv, hf_woww_info_type, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_display_id, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_name);
add_cstring(ptv, &hf_woww_name);
add_cstring(ptv, &hf_woww_name);
add_cstring(ptv, &hf_woww_name);
add_cstring(ptv, &hf_woww_name);
for (i = 0; i < 6; ++i) {
ptvcursor_add(ptv, hf_woww_raw_data, 4, ENC_LITTLE_ENDIAN);
}
}
break;
case SMSG_GAMEOBJECT_RESET_STATE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_GAMEOBJECT_SPAWN_ANIM:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_GMTICKET_CREATE:
ptvcursor_add(ptv, hf_woww_gm_ticket_response, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_GMTICKET_DELETETICKET:
ptvcursor_add(ptv, hf_woww_gm_ticket_response, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_GMTICKET_GETTICKET:
ptvcursor_add_ret_uint(ptv, hf_woww_gm_ticket_status, 4, ENC_LITTLE_ENDIAN, &status);
if (status == GM_TICKET_STATUS_HAS_TEXT) {
add_cstring(ptv, &hf_woww_text);
ptvcursor_add(ptv, hf_woww_gm_ticket_type, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_days_since_ticket_creation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_days_since_oldest_ticket_creation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_days_since_last_updated, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_gm_ticket_escalation_status, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_read_by_gm, 1, ENC_NA);
}
break;
case SMSG_GMTICKET_SYSTEMSTATUS:
ptvcursor_add(ptv, hf_woww_gm_ticket_queue_status, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_GMTICKET_UPDATETEXT:
ptvcursor_add(ptv, hf_woww_gm_ticket_response, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_GM_TICKET_STATUS_UPDATE:
ptvcursor_add(ptv, hf_woww_gm_ticket_status_response, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_GOSSIP_MESSAGE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_title_text_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_gossip_items, 4, ENC_LITTLE_ENDIAN, &amount_of_gossip_items);
for (i = 0; i < amount_of_gossip_items; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "GossipItem");
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_icon, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_coded, 1, ENC_NA);
add_cstring(ptv, &hf_woww_message);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_quests, 4, ENC_LITTLE_ENDIAN, &amount_of_quests);
for (i = 0; i < amount_of_quests; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItem");
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_quest_icon, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_level, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_title);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_GOSSIP_POI:
ptvcursor_add(ptv, hf_woww_flags, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector2d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_icon, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_data, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_location_name);
break;
case SMSG_GROUP_DECLINE:
add_cstring(ptv, &hf_woww_name);
break;
case SMSG_GROUP_INVITE:
add_cstring(ptv, &hf_woww_name);
break;
case SMSG_GROUP_JOINED_BATTLEGROUND:
ptvcursor_add(ptv, hf_woww_bg_type_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_GROUP_LIST:
ptvcursor_add(ptv, hf_woww_group_type, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_own_flags, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_members, 4, ENC_LITTLE_ENDIAN, &amount_of_members);
for (i = 0; i < amount_of_members; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "GroupListMember");
add_cstring(ptv, &hf_woww_name);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_is_online, 1, ENC_NA);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add(ptv, hf_woww_leader, 8, ENC_LITTLE_ENDIAN);
len = offset_packet_end - ptvcursor_current_offset(ptv);
if (len > 0) {
ptvcursor_add(ptv, hf_woww_group_loot_setting, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_master_loot, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_quality, 1, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_GROUP_SET_LEADER:
add_cstring(ptv, &hf_woww_name);
break;
case SMSG_GUILD_COMMAND_RESULT:
ptvcursor_add(ptv, hf_woww_guild_command, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_string);
ptvcursor_add(ptv, hf_woww_guild_command_result, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_GUILD_EVENT:
ptvcursor_add(ptv, hf_woww_guild_event, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_events, 1, ENC_LITTLE_ENDIAN, &amount_of_events);
for (i = 0; i < amount_of_events; ++i) {
add_cstring(ptv, &hf_woww_event_descriptions);
}
break;
case SMSG_GUILD_INFO:
add_cstring(ptv, &hf_woww_guild_name);
ptvcursor_add(ptv, hf_woww_created_day, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_created_month, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_created_year, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_amount_of_characters_in_guild, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_amount_of_accounts_in_guild, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_GUILD_INVITE:
add_cstring(ptv, &hf_woww_player_name);
add_cstring(ptv, &hf_woww_guild_name);
break;
case SMSG_GUILD_QUERY_RESPONSE:
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_name);
for (i = 0; i < 10; ++i) {
add_cstring(ptv, &hf_woww_rank_names);
}
ptvcursor_add(ptv, hf_woww_emblem_style, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_emblem_color, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_border_style, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_border_color, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_background_color, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_GUILD_ROSTER:
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_members, 4, ENC_LITTLE_ENDIAN, &amount_of_members);
add_cstring(ptv, &hf_woww_motd);
add_cstring(ptv, &hf_woww_guild_info);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_rights, 4, ENC_LITTLE_ENDIAN, &amount_of_rights);
for (i = 0; i < amount_of_rights; ++i) {
ptvcursor_add(ptv, hf_woww_rights, 4, ENC_LITTLE_ENDIAN);
}
for (i = 0; i < amount_of_members; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "GuildMember");
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_guild_member_status, 1, ENC_LITTLE_ENDIAN, &status);
add_cstring(ptv, &hf_woww_name);
ptvcursor_add(ptv, hf_woww_rank, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_level, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_class, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
if (status == GUILD_MEMBER_STATUS_OFFLINE) {
ptvcursor_add(ptv, hf_woww_time_offline, 4, ENC_LITTLE_ENDIAN);
}
add_cstring(ptv, &hf_woww_public_note);
add_cstring(ptv, &hf_woww_officer_note);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_IGNORE_LIST:
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_ignored, 1, ENC_LITTLE_ENDIAN, &amount_of_ignored);
for (i = 0; i < amount_of_ignored; ++i) {
ptvcursor_add(ptv, hf_woww_ignored, 8, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_INITIALIZE_FACTIONS:
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_factions, 4, ENC_LITTLE_ENDIAN, &amount_of_factions);
for (i = 0; i < amount_of_factions; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "FactionInitializer");
ptvcursor_add(ptv, hf_woww_faction_flag, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_standing, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_INITIAL_SPELLS:
ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_spell_count, 2, ENC_LITTLE_ENDIAN, &spell_count);
for (i = 0; i < spell_count; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "InitialSpell");
ptvcursor_add(ptv, hf_woww_spell_id, 2, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 2, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add_ret_uint(ptv, hf_woww_cooldown_count, 2, ENC_LITTLE_ENDIAN, &cooldown_count);
for (i = 0; i < cooldown_count; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "CooldownSpell");
ptvcursor_add(ptv, hf_woww_spell_id, 2, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_id, 2, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_category, 2, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cooldown_in_msecs, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_category_cooldown_in_msecs, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_INIT_WORLD_STATES:
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_states, 2, ENC_LITTLE_ENDIAN, &amount_of_states);
for (i = 0; i < amount_of_states; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "WorldState");
ptvcursor_add(ptv, hf_woww_state, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_value, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_INSPECT:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_INSTANCE_RESET:
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_INSTANCE_RESET_FAILED:
ptvcursor_add(ptv, hf_woww_instance_reset_failed_reason, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_INSTANCE_SAVE_CREATED:
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_INVALIDATE_PLAYER:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_INVENTORY_CHANGE_FAILURE:
ptvcursor_add_ret_uint(ptv, hf_woww_inventory_result, 1, ENC_LITTLE_ENDIAN, &result);
if (result == INVENTORY_RESULT_CANT_EQUIP_LEVEL_I) {
ptvcursor_add(ptv, hf_woww_required_level, 4, ENC_LITTLE_ENDIAN);
}
if (result != INVENTORY_RESULT_OK) {
ptvcursor_add(ptv, hf_woww_item, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_bag_type_subclass, 1, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_ITEM_COOLDOWN:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_ITEM_ENCHANT_TIME_UPDATE:
ptvcursor_add(ptv, hf_woww_item, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_slot, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_duration, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_player, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_ITEM_NAME_QUERY_RESPONSE:
ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_item_name);
break;
case SMSG_ITEM_PUSH_RESULT:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_new_item_source, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_new_item_creation_type, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_new_item_chat_alert, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_bag_slot, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_slot, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_suffix_factor, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_ITEM_QUERY_SINGLE_RESPONSE:
ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
len = offset_packet_end - ptvcursor_current_offset(ptv);
if (len > 0) {
ptvcursor_add(ptv, hf_woww_item_class, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_sub_class, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_name);
add_cstring(ptv, &hf_woww_name);
add_cstring(ptv, &hf_woww_name);
add_cstring(ptv, &hf_woww_name);
ptvcursor_add(ptv, hf_woww_item_display_info, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_quality, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_flags, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_buy_price, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sell_price, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_inventory_type, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_allowed_class, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_allowed_race, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_level, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_required_level, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_required_skill, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_required_skill_rank, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_required_spell, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_required_honor_rank, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_required_city_rank, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_required_reputation_faction, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_required_reputation_rank, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_max_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_stackable, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_container_slots, 4, ENC_LITTLE_ENDIAN);
for (i = 0; i < 10; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "ItemStat");
ptvcursor_add(ptv, hf_woww_item_stat_type, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_stat_value, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
for (i = 0; i < 5; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "ItemDamageType");
ptvcursor_add(ptv, hf_woww_damage_minimum, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_damage_maximum, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_damage_type, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add(ptv, hf_woww_armor, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_holy_resistance, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_fire_resistance, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_nature_resistance, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_frost_resistance, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_shadow_resistance, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_arcane_resistance, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_delay, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_ammo_type, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_ranged_range_modification, 4, ENC_LITTLE_ENDIAN);
for (i = 0; i < 5; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "ItemSpells");
ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_trigger, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_charges, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_ppm_rate, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_cooldown, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_category, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_category_cooldown, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add(ptv, hf_woww_bonding, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_description);
ptvcursor_add(ptv, hf_woww_page_text, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_language_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_page_material, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_start_quest, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_lock_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_material, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sheath, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_random_property, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_block, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_set, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_max_durability, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_bag_family, 4, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_ITEM_TEXT_QUERY_RESPONSE:
ptvcursor_add(ptv, hf_woww_item_text_id, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_text);
break;
case SMSG_ITEM_TIME_UPDATE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_duration, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_LEARNED_SPELL:
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_LEVELUP_INFO:
ptvcursor_add(ptv, hf_woww_new_level, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_health, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_mana, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_rage, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_focus, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_energy, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_happiness, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_strength, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_agility, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_stamina, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_intellect, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spirit, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_LIST_INVENTORY:
ptvcursor_add(ptv, hf_woww_vendor, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_items, 1, ENC_LITTLE_ENDIAN, &amount_of_items);
for (i = 0; i < amount_of_items; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "ListInventoryItem");
ptvcursor_add(ptv, hf_woww_item_stack_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_display_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_max_items, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_price, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_max_durability, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_durability, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_LOGIN_SETTIMESPEED:
ptvcursor_add(ptv, hf_woww_datetime, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timescale, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_LOGIN_VERIFY_WORLD:
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_LOGOUT_RESPONSE:
ptvcursor_add(ptv, hf_woww_logout_result, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_logout_speed, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_LOG_XPGAIN:
ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_total_exp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_experience_award_type, 1, ENC_LITTLE_ENDIAN, &exp_type);
if (exp_type == EXPERIENCE_AWARD_TYPE_NON_KILL) {
ptvcursor_add(ptv, hf_woww_experience_without_rested, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_exp_group_bonus, 4, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_LOOT_ALL_PASSED:
ptvcursor_add(ptv, hf_woww_looted_target_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_loot_slot, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_random_suffix_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_LOOT_MASTER_LIST:
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_players, 1, ENC_LITTLE_ENDIAN, &amount_of_players);
for (i = 0; i < amount_of_players; ++i) {
ptvcursor_add(ptv, hf_woww_guids, 8, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_LOOT_MONEY_NOTIFY:
ptvcursor_add(ptv, hf_woww_amount, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_LOOT_RELEASE_RESPONSE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_LOOT_REMOVED:
ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_LOOT_RESPONSE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_loot_method, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_LOOT_ROLL:
ptvcursor_add(ptv, hf_woww_creature_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_loot_slot, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_random_suffix, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_roll_number, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_roll_vote, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_LOOT_ROLL_WON:
ptvcursor_add(ptv, hf_woww_looted_target_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_loot_slot, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_random_suffix, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_winning_player_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_winning_roll, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_roll_vote, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_LOOT_START_ROLL:
ptvcursor_add(ptv, hf_woww_creature_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_loot_slot, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_random_suffix, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_countdown_time, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_MAIL_LIST_RESULT:
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_mails, 1, ENC_LITTLE_ENDIAN, &amount_of_mails);
for (i = 0; i < amount_of_mails; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Mail");
ptvcursor_add(ptv, hf_woww_message_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_mail_type, 1, ENC_LITTLE_ENDIAN, &message_type);
if (message_type == MAIL_TYPE_NORMAL) {
ptvcursor_add(ptv, hf_woww_sender, 8, ENC_LITTLE_ENDIAN);
}
else if (message_type == MAIL_TYPE_CREATURE
|| message_type == MAIL_TYPE_GAMEOBJECT) {
ptvcursor_add(ptv, hf_woww_sender_id, 4, ENC_LITTLE_ENDIAN);
}
else if (message_type == MAIL_TYPE_AUCTION) {
ptvcursor_add(ptv, hf_woww_auction_id, 4, ENC_LITTLE_ENDIAN);
}
add_cstring(ptv, &hf_woww_subject);
ptvcursor_add(ptv, hf_woww_item_text_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_stationery, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_enchant_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_suffix_factor, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_stack_size, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_spell_charges, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_max_durability, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_durability, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_money, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cash_on_delivery_amount, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_checked_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_expiration_time, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_mail_template_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_MEETINGSTONE_JOINFAILED:
ptvcursor_add(ptv, hf_woww_meeting_stone_failure, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_MEETINGSTONE_MEMBER_ADDED:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_MEETINGSTONE_SETQUEUE:
ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_meeting_stone_status, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_MESSAGECHAT:
ptvcursor_add_ret_uint(ptv, hf_woww_chat_type, 1, ENC_LITTLE_ENDIAN, &chat_type);
ptvcursor_add(ptv, hf_woww_language, 4, ENC_LITTLE_ENDIAN);
if (chat_type == CHAT_TYPE_MONSTER_WHISPER
|| chat_type == CHAT_TYPE_RAID_BOSS_EMOTE
|| chat_type == CHAT_TYPE_MONSTER_EMOTE) {
add_sized_cstring(ptv, &hf_woww_monster_name);
ptvcursor_add(ptv, hf_woww_monster, 8, ENC_LITTLE_ENDIAN);
}
else if (chat_type == CHAT_TYPE_SAY
|| chat_type == CHAT_TYPE_PARTY
|| chat_type == CHAT_TYPE_YELL) {
ptvcursor_add(ptv, hf_woww_speech_bubble_credit, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_chat_credit, 8, ENC_LITTLE_ENDIAN);
}
else if (chat_type == CHAT_TYPE_MONSTER_SAY
|| chat_type == CHAT_TYPE_MONSTER_YELL) {
ptvcursor_add(ptv, hf_woww_sender, 8, ENC_LITTLE_ENDIAN);
add_sized_cstring(ptv, &hf_woww_sender_name);
ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
}
else if (chat_type == CHAT_TYPE_CHANNEL) {
add_cstring(ptv, &hf_woww_channel_name);
ptvcursor_add(ptv, hf_woww_player_rank, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_player, 8, ENC_LITTLE_ENDIAN);
}
else {
ptvcursor_add(ptv, hf_woww_sender, 8, ENC_LITTLE_ENDIAN);
}
add_sized_cstring(ptv, &hf_woww_message);
ptvcursor_add(ptv, hf_woww_player_chat_tag, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_MONSTER_MOVE:
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_spline_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_monster_move_type, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_MONSTER_MOVE_TRANSPORT:
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_spline_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_monster_move_type, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_MOUNTRESULT:
ptvcursor_add(ptv, hf_woww_mount_result, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_MOUNTSPECIAL_ANIM:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_MOVE_FEATHER_FALL:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_MOVE_KNOCK_BACK:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_movement_counter, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_v_cos, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_v_sin, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_horizontal_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_vertical_speed, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_MOVE_LAND_WALK:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_MOVE_NORMAL_FALL:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_MOVE_SET_HOVER:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_MOVE_UNSET_HOVER:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_MOVE_WATER_WALK:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_NAME_QUERY_RESPONSE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_character_name);
add_cstring(ptv, &hf_woww_realm_name);
ptvcursor_add(ptv, hf_woww_race, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_gender, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_class, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_NEW_WORLD:
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_NOTIFICATION:
add_cstring(ptv, &hf_woww_notification);
break;
case SMSG_NPC_TEXT_UPDATE:
ptvcursor_add(ptv, hf_woww_text_id, 4, ENC_LITTLE_ENDIAN);
for (i = 0; i < 8; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "NpcTextUpdate");
ptvcursor_add(ptv, hf_woww_probability, 4, ENC_LITTLE_ENDIAN);
for (i = 0; i < 2; ++i) {
add_cstring(ptv, &hf_woww_texts);
}
ptvcursor_add(ptv, hf_woww_language, 4, ENC_LITTLE_ENDIAN);
for (i = 0; i < 3; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "NpcTextUpdateEmote");
ptvcursor_add(ptv, hf_woww_delay, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_emote_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_OPEN_CONTAINER:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_PAGE_TEXT_QUERY_RESPONSE:
ptvcursor_add(ptv, hf_woww_page_id, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_text);
ptvcursor_add(ptv, hf_woww_next_page_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_PARTYKILLLOG:
ptvcursor_add(ptv, hf_woww_player_with_killing_blow, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_victim, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_PARTY_COMMAND_RESULT:
ptvcursor_add(ptv, hf_woww_party_operation, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_member);
ptvcursor_add(ptv, hf_woww_party_result, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_PARTY_MEMBER_STATS:
add_packed_guid(ptv, pinfo);
ptvcursor_add_ret_uint(ptv, hf_woww_group_update_flags, 4, ENC_LITTLE_ENDIAN, &mask);
if (mask & GROUP_UPDATE_FLAGS_FLAG_STATUS) {
ptvcursor_add(ptv, hf_woww_group_member_online_status, 1, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_CUR_HP) {
ptvcursor_add(ptv, hf_woww_current_health, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_MAX_HP) {
ptvcursor_add(ptv, hf_woww_max_health, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_POWER_TYPE) {
ptvcursor_add(ptv, hf_woww_power, 1, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_CUR_POWER) {
ptvcursor_add(ptv, hf_woww_current_power, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_MAX_POWER) {
ptvcursor_add(ptv, hf_woww_max_power, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_LEVEL) {
ptvcursor_add(ptv, hf_woww_level, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_ZONE) {
ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_POSITION) {
ptvcursor_add(ptv, hf_woww_position_x_int, 2, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_position_y_int, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_AURAS) {
add_aura_mask(ptv);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_NAME) {
add_cstring(ptv, &hf_woww_pet_name);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_MODEL_ID) {
ptvcursor_add(ptv, hf_woww_pet_display_id, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_CUR_HP) {
ptvcursor_add(ptv, hf_woww_pet_current_health, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_MAX_HP) {
ptvcursor_add(ptv, hf_woww_pet_max_health, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_POWER_TYPE) {
ptvcursor_add(ptv, hf_woww_power, 1, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_CUR_POWER) {
ptvcursor_add(ptv, hf_woww_pet_current_power, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_MAX_POWER) {
ptvcursor_add(ptv, hf_woww_pet_max_power, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_AURAS) {
add_aura_mask(ptv);
}
break;
case SMSG_PARTY_MEMBER_STATS_FULL:
add_packed_guid(ptv, pinfo);
ptvcursor_add_ret_uint(ptv, hf_woww_group_update_flags, 4, ENC_LITTLE_ENDIAN, &mask);
if (mask & GROUP_UPDATE_FLAGS_FLAG_STATUS) {
ptvcursor_add(ptv, hf_woww_group_member_online_status, 1, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_CUR_HP) {
ptvcursor_add(ptv, hf_woww_current_health, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_MAX_HP) {
ptvcursor_add(ptv, hf_woww_max_health, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_POWER_TYPE) {
ptvcursor_add(ptv, hf_woww_power, 1, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_CUR_POWER) {
ptvcursor_add(ptv, hf_woww_current_power, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_MAX_POWER) {
ptvcursor_add(ptv, hf_woww_max_power, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_LEVEL) {
ptvcursor_add(ptv, hf_woww_level, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_ZONE) {
ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_POSITION) {
ptvcursor_add(ptv, hf_woww_position_x_int, 2, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_position_y_int, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_AURAS) {
add_aura_mask(ptv);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_NAME) {
add_cstring(ptv, &hf_woww_pet_name);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_MODEL_ID) {
ptvcursor_add(ptv, hf_woww_pet_display_id, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_CUR_HP) {
ptvcursor_add(ptv, hf_woww_pet_current_health, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_MAX_HP) {
ptvcursor_add(ptv, hf_woww_pet_max_health, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_POWER_TYPE) {
ptvcursor_add(ptv, hf_woww_power, 1, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_CUR_POWER) {
ptvcursor_add(ptv, hf_woww_pet_current_power, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_MAX_POWER) {
ptvcursor_add(ptv, hf_woww_pet_max_power, 2, ENC_LITTLE_ENDIAN);
}
if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_AURAS) {
add_aura_mask(ptv);
}
break;
case SMSG_PAUSE_MIRROR_TIMER:
ptvcursor_add(ptv, hf_woww_timer_type, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_is_frozen, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_PERIODICAURALOG:
add_packed_guid(ptv, pinfo);
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_auras, 4, ENC_LITTLE_ENDIAN, &amount_of_auras);
for (i = 0; i < amount_of_auras; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "AuraLog");
ptvcursor_add_ret_uint(ptv, hf_woww_aura_type, 4, ENC_LITTLE_ENDIAN, &aura_type);
if (aura_type == AURA_TYPE_PERIODIC_DAMAGE
|| aura_type == AURA_TYPE_PERIODIC_DAMAGE_PERCENT) {
ptvcursor_add(ptv, hf_woww_damage, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_school, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_absorbed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_resisted, 4, ENC_LITTLE_ENDIAN);
}
else if (aura_type == AURA_TYPE_PERIODIC_HEAL
|| aura_type == AURA_TYPE_OBS_MOD_HEALTH) {
ptvcursor_add(ptv, hf_woww_damage, 4, ENC_LITTLE_ENDIAN);
}
else if (aura_type == AURA_TYPE_OBS_MOD_MANA
|| aura_type == AURA_TYPE_PERIODIC_ENERGIZE) {
ptvcursor_add(ptv, hf_woww_misc_value, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_damage, 4, ENC_LITTLE_ENDIAN);
}
else if (aura_type == AURA_TYPE_PERIODIC_MANA_LEECH) {
ptvcursor_add(ptv, hf_woww_misc_value, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_damage, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_gain_multiplier, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_PETITION_QUERY_RESPONSE:
ptvcursor_add(ptv, hf_woww_petition_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_charter_owner, 8, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_guild_name);
add_cstring(ptv, &hf_woww_body_text);
ptvcursor_add(ptv, hf_woww_unknown_flags, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_minimum_signatures, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_maximum_signatures, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_deadline, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_issue_date, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_allowed_guild_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_allowed_classes, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_allowed_races, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_allowed_genders, 2, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_allowed_minimum_level, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_allowed_maximum_level, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_todo_amount_of_signers, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_number_of_choices, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_PETITION_SHOWLIST:
ptvcursor_add(ptv, hf_woww_npc, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_petitions, 1, ENC_LITTLE_ENDIAN, &amount_of_petitions);
for (i = 0; i < amount_of_petitions; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "PetitionShowlist");
ptvcursor_add(ptv, hf_woww_index, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_charter_entry, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_charter_display_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_guild_charter_cost, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_PETITION_SHOW_SIGNATURES:
ptvcursor_add(ptv, hf_woww_item_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_owner_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_petition_guid, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_signatures, 1, ENC_LITTLE_ENDIAN, &amount_of_signatures);
for (i = 0; i < amount_of_signatures; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "PetitionSignature");
ptvcursor_add(ptv, hf_woww_signer, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_PETITION_SIGN_RESULTS:
ptvcursor_add(ptv, hf_woww_petition_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_owner_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_petition_result, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_PET_ACTION_FEEDBACK:
ptvcursor_add(ptv, hf_woww_pet_feedback, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_PET_ACTION_SOUND:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_pet_talk_reason, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_PET_CAST_FAILED:
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_cast_result, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_PET_DISMISS_SOUND:
ptvcursor_add(ptv, hf_woww_sound_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
break;
case SMSG_PET_MODE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_pet_react_state, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_pet_command_state, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_pet_enabled, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_PET_NAME_QUERY_RESPONSE:
ptvcursor_add(ptv, hf_woww_pet_number, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_name);
ptvcursor_add(ptv, hf_woww_pet_name_timestamp, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_PET_SPELLS:
ptvcursor_add(ptv, hf_woww_pet, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_pet_react_state, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_pet_command_state, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 2, ENC_LITTLE_ENDIAN);
for (i = 0; i < 10; ++i) {
ptvcursor_add(ptv, hf_woww_action_bars, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_spells, 1, ENC_LITTLE_ENDIAN, &amount_of_spells);
for (i = 0; i < amount_of_spells; ++i) {
ptvcursor_add(ptv, hf_woww_spells, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_cooldowns, 1, ENC_LITTLE_ENDIAN, &amount_of_cooldowns);
for (i = 0; i < amount_of_cooldowns; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "PetSpellCooldown");
ptvcursor_add(ptv, hf_woww_spell_id, 2, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_category, 2, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cooldown_in_msecs, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_category_cooldown_in_msecs, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_PET_TAME_FAILURE:
ptvcursor_add(ptv, hf_woww_pet_tame_failure_reason, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_PET_UNLEARN_CONFIRM:
ptvcursor_add(ptv, hf_woww_pet_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_talent_reset_cost, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_PLAYED_TIME:
ptvcursor_add(ptv, hf_woww_total_played_time, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_level_played_time, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_PLAYERBOUND:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_PLAY_MUSIC:
ptvcursor_add(ptv, hf_woww_sound_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_PLAY_OBJECT_SOUND:
ptvcursor_add(ptv, hf_woww_sound_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_PLAY_SOUND:
ptvcursor_add(ptv, hf_woww_sound_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_PLAY_SPELL_IMPACT:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_visual_kit, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_PLAY_SPELL_VISUAL:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_art_kit, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_PONG:
ptvcursor_add(ptv, hf_woww_sequence_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_PROCRESIST:
ptvcursor_add(ptv, hf_woww_caster, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_log_format, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_PVP_CREDIT:
ptvcursor_add(ptv, hf_woww_honor_points, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_victim, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_pvp_rank, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_QUERY_TIME_RESPONSE:
ptvcursor_add(ptv, hf_woww_time, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_QUESTGIVER_OFFER_REWARD:
ptvcursor_add(ptv, hf_woww_npc, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_title);
add_cstring(ptv, &hf_woww_offer_reward_text);
ptvcursor_add(ptv, hf_woww_enable_next, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_emotes, 4, ENC_LITTLE_ENDIAN, &amount_of_emotes);
for (i = 0; i < amount_of_emotes; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "NpcTextUpdateEmote");
ptvcursor_add(ptv, hf_woww_delay, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_emote_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_choice_item_rewards, 4, ENC_LITTLE_ENDIAN, &amount_of_choice_item_rewards);
for (i = 0; i < amount_of_choice_item_rewards; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItemReward");
ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_item_rewards, 4, ENC_LITTLE_ENDIAN, &amount_of_item_rewards);
for (i = 0; i < amount_of_item_rewards; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItemReward");
ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add(ptv, hf_woww_money_reward, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_reward_spell, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_reward_spell_cast, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_QUESTGIVER_QUEST_COMPLETE:
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_experience_reward, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_money_reward, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_item_rewards, 4, ENC_LITTLE_ENDIAN, &amount_of_item_rewards);
for (i = 0; i < amount_of_item_rewards; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItemReward");
ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_QUESTGIVER_QUEST_DETAILS:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_title);
add_cstring(ptv, &hf_woww_details);
add_cstring(ptv, &hf_woww_objectives);
ptvcursor_add(ptv, hf_woww_auto_finish, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_choice_item_rewards, 4, ENC_LITTLE_ENDIAN, &amount_of_choice_item_rewards);
for (i = 0; i < amount_of_choice_item_rewards; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItemReward");
ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_item_rewards, 4, ENC_LITTLE_ENDIAN, &amount_of_item_rewards);
for (i = 0; i < amount_of_item_rewards; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItemReward");
ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add(ptv, hf_woww_money_reward, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_reward_spell, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_emotes, 4, ENC_LITTLE_ENDIAN, &amount_of_emotes);
for (i = 0; i < amount_of_emotes; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestDetailsEmote");
ptvcursor_add(ptv, hf_woww_emote_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_emote_delay_in_msecs, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_QUESTGIVER_QUEST_FAILED:
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_quest_failed_reason, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_QUESTGIVER_QUEST_INVALID:
ptvcursor_add(ptv, hf_woww_quest_failed_reason, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_QUESTGIVER_QUEST_LIST:
ptvcursor_add(ptv, hf_woww_npc, 8, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_title);
ptvcursor_add(ptv, hf_woww_emote_delay, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_emote_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_entries, 1, ENC_LITTLE_ENDIAN, &amount_of_entries);
for (i = 0; i < amount_of_entries; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItem");
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_quest_icon, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_level, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_title);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_QUESTGIVER_REQUEST_ITEMS:
ptvcursor_add(ptv, hf_woww_npc, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_title);
add_cstring(ptv, &hf_woww_request_items_text);
ptvcursor_add(ptv, hf_woww_emote_delay, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_emote_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_auto_finish, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_required_money, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_required_items, 4, ENC_LITTLE_ENDIAN, &amount_of_required_items);
for (i = 0; i < amount_of_required_items; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItemRequirement");
ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_display_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_quest_completable, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_flags, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_flags, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_QUESTGIVER_STATUS:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_quest_giver_status, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_QUESTUPDATE_ADD_ITEM:
ptvcursor_add(ptv, hf_woww_required_item_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_items_required, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_QUESTUPDATE_ADD_KILL:
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_create_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_kill_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_required_kill_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_QUESTUPDATE_COMPLETE:
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_QUESTUPDATE_FAILED:
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_QUESTUPDATE_FAILEDTIMER:
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_QUEST_CONFIRM_ACCEPT:
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_quest_title);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_QUEST_QUERY_RESPONSE:
ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_quest_method, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_quest_level, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_zone_or_sort, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_quest_type, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_reputation_objective_faction, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_reputation_objective_value, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_required_opposite_faction, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_required_opposite_reputation_value, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_next_quest_in_chain, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_money_reward, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_max_level_money_reward, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_reward_spell, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_source_item_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_quest_flags, 4, ENC_LITTLE_ENDIAN);
for (i = 0; i < 4; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItemReward");
ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
for (i = 0; i < 6; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItemReward");
ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add(ptv, hf_woww_point_map_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_position_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_position_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_point_opt, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_title);
add_cstring(ptv, &hf_woww_objective_text);
add_cstring(ptv, &hf_woww_details);
add_cstring(ptv, &hf_woww_end_text);
for (i = 0; i < 4; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestObjective");
ptvcursor_add(ptv, hf_woww_creature_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_kill_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_required_item_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_required_item_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
for (i = 0; i < 4; ++i) {
add_cstring(ptv, &hf_woww_objective_texts);
}
break;
case SMSG_RAID_GROUP_ONLY:
ptvcursor_add(ptv, hf_woww_homebind_timer, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_raid_group_error, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_RAID_INSTANCE_INFO:
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_raid_infos, 4, ENC_LITTLE_ENDIAN, &amount_of_raid_infos);
for (i = 0; i < amount_of_raid_infos; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "RaidInfo");
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_reset_time, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_instance_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_RAID_INSTANCE_MESSAGE:
ptvcursor_add(ptv, hf_woww_raid_instance_message, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_time_left, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_READ_ITEM_FAILED:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_READ_ITEM_OK:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_RECEIVED_MAIL:
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_REMOVED_SPELL:
ptvcursor_add(ptv, hf_woww_spell_id, 2, ENC_LITTLE_ENDIAN);
break;
case SMSG_RESISTLOG:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_float, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_float, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_RESURRECT_REQUEST:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
add_sized_cstring(ptv, &hf_woww_name);
ptvcursor_add(ptv, hf_woww_caster_is_spirit_healer, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_respect_resurrection_timer, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_SELL_ITEM:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sell_item_result, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_SEND_MAIL_RESULT:
len = offset_packet_end - ptvcursor_current_offset(ptv);
ptvcursor_add(ptv, hf_woww_unimplemented, len, ENC_NA);
break;
case SMSG_SERVER_MESSAGE:
ptvcursor_add(ptv, hf_woww_server_message_type, 4, ENC_LITTLE_ENDIAN);
add_cstring(ptv, &hf_woww_message);
break;
case SMSG_SET_FACTION_STANDING:
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_factions, 4, ENC_LITTLE_ENDIAN, &amount_of_factions);
for (i = 0; i < amount_of_factions; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Faction");
ptvcursor_add(ptv, hf_woww_reputation_list_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_standing, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_SET_FACTION_VISIBLE:
ptvcursor_add(ptv, hf_woww_reputation_list_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_SET_FLAT_SPELL_MODIFIER:
ptvcursor_add(ptv, hf_woww_eff, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_op, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_value, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_SET_FORCED_REACTIONS:
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_reactions, 4, ENC_LITTLE_ENDIAN, &amount_of_reactions);
for (i = 0; i < amount_of_reactions; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "ForcedReaction");
ptvcursor_add(ptv, hf_woww_faction_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_reputation_rank, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_SET_PCT_SPELL_MODIFIER:
ptvcursor_add(ptv, hf_woww_eff, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_op, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_value, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_SET_PROFICIENCY:
ptvcursor_add(ptv, hf_woww_item_class, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_sub_class_mask, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_SET_REST_START:
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_SHOWTAXINODES:
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_nearest_node, 4, ENC_LITTLE_ENDIAN);
while (ptvcursor_current_offset(ptv) < offset_packet_end) {
ptvcursor_add(ptv, hf_woww_nodes, 4, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_SHOW_BANK:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_SPELLDAMAGESHIELD:
ptvcursor_add(ptv, hf_woww_victim_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_caster_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_damage, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_school, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_SPELLDISPELLOG:
ptvcursor_add(ptv, hf_woww_victim, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_caster, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_spells, 4, ENC_LITTLE_ENDIAN, &amount_of_spells);
for (i = 0; i < amount_of_spells; ++i) {
ptvcursor_add(ptv, hf_woww_spells, 4, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_SPELLENERGIZELOG:
add_packed_guid(ptv, pinfo);
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_power_type, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_damage, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_SPELLHEALLOG:
add_packed_guid(ptv, pinfo);
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_damage, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_critical, 1, ENC_NA);
break;
case SMSG_SPELLINSTAKILLLOG:
ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_SPELLLOGEXECUTE:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_effects, 4, ENC_LITTLE_ENDIAN, &amount_of_effects);
for (i = 0; i < amount_of_effects; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellLog");
ptvcursor_add_ret_uint(ptv, hf_woww_spell_effect, 4, ENC_LITTLE_ENDIAN, &effect);
ptvcursor_add(ptv, hf_woww_amount_of_logs, 4, ENC_LITTLE_ENDIAN);
if (effect == SPELL_EFFECT_POWER_DRAIN) {
ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_float, 4, ENC_LITTLE_ENDIAN);
}
else if (effect == SPELL_EFFECT_ADD_EXTRA_ATTACKS) {
ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
}
else if (effect == SPELL_EFFECT_INTERRUPT_CAST) {
ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_interrupted_spell, 4, ENC_LITTLE_ENDIAN);
}
else if (effect == SPELL_EFFECT_DURABILITY_DAMAGE) {
ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
}
else if (effect == SPELL_EFFECT_CREATE_ITEM) {
ptvcursor_add(ptv, hf_woww_spell_effect_item_type, 4, ENC_LITTLE_ENDIAN);
}
else if (effect == SPELL_EFFECT_FEED_PET) {
ptvcursor_add(ptv, hf_woww_item_target_entry, 4, ENC_LITTLE_ENDIAN);
}
else if (effect == SPELL_EFFECT_RESURRECT
|| effect == SPELL_EFFECT_DISPEL
|| effect == SPELL_EFFECT_THREAT
|| effect == SPELL_EFFECT_DISTRACT
|| effect == SPELL_EFFECT_SANCTUARY
|| effect == SPELL_EFFECT_THREAT_ALL
|| effect == SPELL_EFFECT_DISPEL_MECHANIC
|| effect == SPELL_EFFECT_RESURRECT_NEW
|| effect == SPELL_EFFECT_ATTACK_ME
|| effect == SPELL_EFFECT_SKIN_PLAYER_CORPSE
|| effect == SPELL_EFFECT_MODIFY_THREAT_PERCENT
|| effect == SPELL_EFFECT_UNKNOWN126
|| effect == SPELL_EFFECT_DISMISS_PET
|| effect == SPELL_EFFECT_OPEN_LOCK
|| effect == SPELL_EFFECT_OPEN_LOCK_ITEM
|| effect == SPELL_EFFECT_INSTAKILL) {
ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_SPELLLOGMISS:
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_caster_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_targets, 4, ENC_LITTLE_ENDIAN, &amount_of_targets);
for (i = 0; i < amount_of_targets; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellMiss");
ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_miss_info, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_SPELLNONMELEEDAMAGELOG:
add_packed_guid(ptv, pinfo);
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_damage, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_school, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_absorbed_damage, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_resisted, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_periodic_log, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unused, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_blocked, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_hit_info, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_extend_flag, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_SPELLORDAMAGE_IMMUNE:
ptvcursor_add(ptv, hf_woww_caster_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_SPELL_COOLDOWN:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
while (ptvcursor_current_offset(ptv) < offset_packet_end) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellCooldownStatus");
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cooldown_time_in_msecs, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_SPELL_DELAYED:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_delay_time, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_SPELL_FAILED_OTHER:
ptvcursor_add(ptv, hf_woww_caster_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_SPELL_FAILURE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_cast_result, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_SPELL_GO:
add_packed_guid(ptv, pinfo);
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_cast_flags, 2, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_hits, 1, ENC_LITTLE_ENDIAN, &amount_of_hits);
for (i = 0; i < amount_of_hits; ++i) {
ptvcursor_add(ptv, hf_woww_hits, 8, ENC_LITTLE_ENDIAN);
}
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_misses, 1, ENC_LITTLE_ENDIAN, &amount_of_misses);
for (i = 0; i < amount_of_misses; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellMiss");
ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_miss_info, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellCastTargets");
ptvcursor_add_ret_uint(ptv, hf_woww_spell_cast_target_flags, 2, ENC_LITTLE_ENDIAN, &target_flags);
if (target_flags & SPELL_CAST_TARGET_FLAGS_UNIT) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_UNIT_ENEMY) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_GAMEOBJECT) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_LOCKED) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_ITEM) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_TRADE_ITEM) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_SOURCE_LOCATION) {
ptvcursor_add(ptv, hf_woww_source_position_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_source_position_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_source_position_z, 4, ENC_LITTLE_ENDIAN);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_DEST_LOCATION) {
ptvcursor_add(ptv, hf_woww_destination_position_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_destination_position_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_destination_position_z, 4, ENC_LITTLE_ENDIAN);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_STRING) {
add_cstring(ptv, &hf_woww_target_string);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_CORPSE_ALLY) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_CORPSE_ENEMY) {
add_packed_guid(ptv, pinfo);
}
ptvcursor_pop_subtree(ptv);
if (flags & CAST_FLAGS_AMMO) {
ptvcursor_add(ptv, hf_woww_ammo_display_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_ammo_inventory_type, 4, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_SPELL_START:
add_packed_guid(ptv, pinfo);
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_cast_flags, 2, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timer, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellCastTargets");
ptvcursor_add_ret_uint(ptv, hf_woww_spell_cast_target_flags, 2, ENC_LITTLE_ENDIAN, &target_flags);
if (target_flags & SPELL_CAST_TARGET_FLAGS_UNIT) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_UNIT_ENEMY) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_GAMEOBJECT) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_LOCKED) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_ITEM) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_TRADE_ITEM) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_SOURCE_LOCATION) {
ptvcursor_add(ptv, hf_woww_source_position_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_source_position_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_source_position_z, 4, ENC_LITTLE_ENDIAN);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_DEST_LOCATION) {
ptvcursor_add(ptv, hf_woww_destination_position_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_destination_position_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_destination_position_z, 4, ENC_LITTLE_ENDIAN);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_STRING) {
add_cstring(ptv, &hf_woww_target_string);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_CORPSE_ALLY) {
add_packed_guid(ptv, pinfo);
}
if (target_flags & SPELL_CAST_TARGET_FLAGS_CORPSE_ENEMY) {
add_packed_guid(ptv, pinfo);
}
ptvcursor_pop_subtree(ptv);
if (flags & CAST_FLAGS_AMMO) {
ptvcursor_add(ptv, hf_woww_ammo_display_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_ammo_inventory_type, 4, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_SPELL_UPDATE_CHAIN_TARGETS:
ptvcursor_add(ptv, hf_woww_caster, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_targets, 4, ENC_LITTLE_ENDIAN, &amount_of_targets);
for (i = 0; i < amount_of_targets; ++i) {
ptvcursor_add(ptv, hf_woww_targets, 8, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_SPIRIT_HEALER_CONFIRM:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_SPLINE_MOVE_FEATHER_FALL:
add_packed_guid(ptv, pinfo);
break;
case SMSG_SPLINE_MOVE_LAND_WALK:
add_packed_guid(ptv, pinfo);
break;
case SMSG_SPLINE_MOVE_NORMAL_FALL:
add_packed_guid(ptv, pinfo);
break;
case SMSG_SPLINE_MOVE_ROOT:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
break;
case SMSG_SPLINE_MOVE_SET_HOVER:
add_packed_guid(ptv, pinfo);
break;
case SMSG_SPLINE_MOVE_SET_RUN_MODE:
add_packed_guid(ptv, pinfo);
break;
case SMSG_SPLINE_MOVE_SET_WALK_MODE:
add_packed_guid(ptv, pinfo);
break;
case SMSG_SPLINE_MOVE_START_SWIM:
add_packed_guid(ptv, pinfo);
break;
case SMSG_SPLINE_MOVE_STOP_SWIM:
add_packed_guid(ptv, pinfo);
break;
case SMSG_SPLINE_MOVE_UNROOT:
add_packed_guid(ptv, pinfo);
break;
case SMSG_SPLINE_MOVE_UNSET_HOVER:
add_packed_guid(ptv, pinfo);
break;
case SMSG_SPLINE_MOVE_WATER_WALK:
add_packed_guid(ptv, pinfo);
break;
case SMSG_SPLINE_SET_RUN_BACK_SPEED:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_SPLINE_SET_RUN_SPEED:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_SPLINE_SET_SWIM_BACK_SPEED:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_SPLINE_SET_SWIM_SPEED:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_SPLINE_SET_TURN_RATE:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_SPLINE_SET_WALK_SPEED:
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_STABLE_RESULT:
ptvcursor_add(ptv, hf_woww_stable_result, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_STANDSTATE_UPDATE:
ptvcursor_add(ptv, hf_woww_unit_stand_state, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_START_MIRROR_TIMER:
ptvcursor_add(ptv, hf_woww_timer_type, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_time_remaining, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_duration, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_scale, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_is_frozen, 1, ENC_NA);
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_STOP_MIRROR_TIMER:
ptvcursor_add(ptv, hf_woww_timer_type, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_SUMMON_REQUEST:
ptvcursor_add(ptv, hf_woww_summoner_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_zone_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_auto_decline_time_in_msecs, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_SUPERCEDED_SPELL:
ptvcursor_add(ptv, hf_woww_new_spell_id, 2, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_old_spell_id, 2, ENC_LITTLE_ENDIAN);
break;
case SMSG_TAXINODE_STATUS:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_taxi_mask_node_known, 1, ENC_NA);
break;
case SMSG_TEXT_EMOTE:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_text_emote, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_emote_enum, 4, ENC_LITTLE_ENDIAN);
add_sized_cstring(ptv, &hf_woww_name);
break;
case SMSG_TRADE_STATUS:
ptvcursor_add_ret_uint(ptv, hf_woww_trade_status, 4, ENC_LITTLE_ENDIAN, &status);
if (status == TRADE_STATUS_BEGIN_TRADE) {
ptvcursor_add(ptv, hf_woww_unknown_guid, 8, ENC_LITTLE_ENDIAN);
}
else if (status == TRADE_STATUS_CLOSE_WINDOW) {
ptvcursor_add(ptv, hf_woww_inventory_result, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_target_error, 1, ENC_NA);
ptvcursor_add(ptv, hf_woww_item_limit_category_id, 4, ENC_LITTLE_ENDIAN);
}
else if (status == TRADE_STATUS_ONLY_CONJURED
|| status == TRADE_STATUS_NOT_ON_TAPLIST) {
ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_TRADE_STATUS_EXTENDED:
ptvcursor_add(ptv, hf_woww_self_player, 1, ENC_NA);
ptvcursor_add(ptv, hf_woww_trade_slot_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_trade_slot_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_money_in_trade, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_on_lowest_slot, 4, ENC_LITTLE_ENDIAN);
for (i = 0; i < 7; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TradeSlot");
ptvcursor_add(ptv, hf_woww_trade_slot_number, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_display_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_stack_count, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_is_wrapped, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_gift_wrapper, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_enchantment, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_creator, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_charges, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_suffix_factor, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_item_random_properties_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_lock_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_max_durability, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_durability, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_TRAINER_BUY_FAILED:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_training_failure_reason, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_TRAINER_BUY_SUCCEEDED:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_TRAINER_LIST:
ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_trainer_type, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_spells, 4, ENC_LITTLE_ENDIAN, &amount_of_spells);
for (i = 0; i < amount_of_spells; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TrainerSpell");
ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_trainer_spell_state, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_cost, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_talent_point_cost, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_first_rank, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_required_level, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_required_skill, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_required_skill_value, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_chain_required, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_spell_chain_previous, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
add_cstring(ptv, &hf_woww_greeting);
break;
case SMSG_TRANSFER_ABORTED:
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_transfer_abort_reason, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_padding, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_TRANSFER_PENDING:
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
len = offset_packet_end - ptvcursor_current_offset(ptv);
if (len > 0) {
ptvcursor_add(ptv, hf_woww_transport, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_TRIGGER_CINEMATIC:
ptvcursor_add(ptv, hf_woww_cinematic_sequence_id, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_TURN_IN_PETITION_RESULTS:
ptvcursor_add(ptv, hf_woww_petition_result, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_TUTORIAL_FLAGS:
for (i = 0; i < 8; ++i) {
ptvcursor_add(ptv, hf_woww_tutorial_data, 4, ENC_LITTLE_ENDIAN);
}
break;
case SMSG_UPDATE_AURA_DURATION:
ptvcursor_add(ptv, hf_woww_aura_slot, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_aura_duration, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_UPDATE_INSTANCE_OWNERSHIP:
ptvcursor_add(ptv, hf_woww_has_been_saved, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_UPDATE_LAST_INSTANCE:
ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
break;
case SMSG_UPDATE_OBJECT:
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_objects, 4, ENC_LITTLE_ENDIAN, &amount_of_objects);
ptvcursor_add(ptv, hf_woww_has_transport, 1, ENC_LITTLE_ENDIAN);
for (i = 0; i < amount_of_objects; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Object");
ptvcursor_add_ret_uint(ptv, hf_woww_update_type, 1, ENC_LITTLE_ENDIAN, &update_type);
if (update_type == UPDATE_TYPE_VALUES) {
add_packed_guid(ptv, pinfo);
add_update_mask(ptv);
}
else if (update_type == UPDATE_TYPE_MOVEMENT) {
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementBlock");
ptvcursor_add_ret_uint(ptv, hf_woww_update_flag, 1, ENC_LITTLE_ENDIAN, &update_flag);
if (update_flag & UPDATE_FLAG_LIVING) {
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_living_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_walking_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_running_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_backwards_running_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_swimming_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_backwards_swimming_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_turn_rate, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_SPLINE_ENABLED) {
ptvcursor_add_ret_uint(ptv, hf_woww_spline_flag, 4, ENC_LITTLE_ENDIAN, &spline_flags);
if (spline_flags & SPLINE_FLAG_FINAL_ANGLE) {
ptvcursor_add(ptv, hf_woww_angle, 4, ENC_LITTLE_ENDIAN);
}
else if (spline_flags & SPLINE_FLAG_FINAL_TARGET) {
ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
}
else if (spline_flags & SPLINE_FLAG_FINAL_POINT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add(ptv, hf_woww_time_passed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_duration, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_nodes, 4, ENC_LITTLE_ENDIAN, &amount_of_nodes);
for (i = 0; i < amount_of_nodes; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
}
else if (update_flag & UPDATE_FLAG_HAS_POSITION) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
}
if (update_flag & UPDATE_FLAG_HIGH_GUID) {
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
}
if (update_flag & UPDATE_FLAG_ALL) {
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
}
if (update_flag & UPDATE_FLAG_MELEE_ATTACKING) {
add_packed_guid(ptv, pinfo);
}
if (update_flag & UPDATE_FLAG_TRANSPORT) {
ptvcursor_add(ptv, hf_woww_transport_progress_in_ms, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
}
else if (update_type == UPDATE_TYPE_CREATE_OBJECT
|| update_type == UPDATE_TYPE_CREATE_OBJECT2) {
add_packed_guid(ptv, pinfo);
ptvcursor_add(ptv, hf_woww_object_type, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementBlock");
ptvcursor_add_ret_uint(ptv, hf_woww_update_flag, 1, ENC_LITTLE_ENDIAN, &update_flag);
if (update_flag & UPDATE_FLAG_LIVING) {
ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_living_orientation, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
add_packed_guid(ptv, pinfo);
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
if (flags & MOVEMENT_FLAGS_SWIMMING) {
ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_JUMPING) {
ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
}
if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_add(ptv, hf_woww_walking_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_running_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_backwards_running_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_swimming_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_backwards_swimming_speed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_turn_rate, 4, ENC_LITTLE_ENDIAN);
if (flags & MOVEMENT_FLAGS_SPLINE_ENABLED) {
ptvcursor_add_ret_uint(ptv, hf_woww_spline_flag, 4, ENC_LITTLE_ENDIAN, &spline_flags);
if (spline_flags & SPLINE_FLAG_FINAL_ANGLE) {
ptvcursor_add(ptv, hf_woww_angle, 4, ENC_LITTLE_ENDIAN);
}
else if (spline_flags & SPLINE_FLAG_FINAL_TARGET) {
ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
}
else if (spline_flags & SPLINE_FLAG_FINAL_POINT) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add(ptv, hf_woww_time_passed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_duration, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_nodes, 4, ENC_LITTLE_ENDIAN, &amount_of_nodes);
for (i = 0; i < amount_of_nodes; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
}
else if (update_flag & UPDATE_FLAG_HAS_POSITION) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
}
if (update_flag & UPDATE_FLAG_HIGH_GUID) {
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
}
if (update_flag & UPDATE_FLAG_ALL) {
ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
}
if (update_flag & UPDATE_FLAG_MELEE_ATTACKING) {
add_packed_guid(ptv, pinfo);
}
if (update_flag & UPDATE_FLAG_TRANSPORT) {
ptvcursor_add(ptv, hf_woww_transport_progress_in_ms, 4, ENC_LITTLE_ENDIAN);
}
ptvcursor_pop_subtree(ptv);
add_update_mask(ptv);
}
else if (update_type == UPDATE_TYPE_OUT_OF_RANGE_OBJECTS
|| update_type == UPDATE_TYPE_NEAR_OBJECTS) {
ptvcursor_add_ret_uint(ptv, hf_woww_count, 4, ENC_LITTLE_ENDIAN, &count);
for (i = 0; i < count; ++i) {
add_packed_guid(ptv, pinfo);
}
}
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_UPDATE_WORLD_STATE:
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "WorldState");
ptvcursor_add(ptv, hf_woww_state, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_value, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
break;
case SMSG_WARDEN_DATA:
len = offset_packet_end - ptvcursor_current_offset(ptv);
ptvcursor_add(ptv, hf_woww_unimplemented, len, ENC_NA);
break;
case SMSG_WEATHER:
ptvcursor_add(ptv, hf_woww_weather_type, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_grade, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_sound_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_weather_change_type, 1, ENC_LITTLE_ENDIAN);
break;
case SMSG_WHO:
ptvcursor_add_ret_uint(ptv, hf_woww_listed_players, 4, ENC_LITTLE_ENDIAN, &listed_players);
ptvcursor_add(ptv, hf_woww_online_players, 4, ENC_LITTLE_ENDIAN);
for (i = 0; i < listed_players; ++i) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "WhoPlayer");
add_cstring(ptv, &hf_woww_name);
add_cstring(ptv, &hf_woww_guild);
ptvcursor_add(ptv, hf_woww_level, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_class, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_race, 1, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_zone_id, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_party_status, 4, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
case SMSG_WHOIS:
add_cstring(ptv, &hf_woww_message);
break;
case SMSG_ZONE_UNDER_ATTACK:
ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
break;
default:
break;
}
/* AUTOGENERATED_END_PARSER */
ptvcursor_free(ptv);
}
static gint
add_header_to_tree(WowwDecryptedHeader_t* decrypted_header,
proto_tree* tree,
tvbuff_t* tvb,
packet_info* pinfo,
guint8 headerSize,
gint start_offset)
{
const guint16 size_field_width = 2;
// Size field does not count in the reported size, so we need to add it.
const guint16 packet_size = (decrypted_header->size[0] << 8 | decrypted_header->size[1]) + size_field_width;
proto_tree* ti = proto_tree_add_item(tree, proto_woww, tvb, start_offset, packet_size, ENC_NA);
proto_tree* woww_tree = proto_item_add_subtree(ti, ett_message);
// Add to tree
tvbuff_t *next_tvb = tvb_new_child_real_data(tvb, (guint8*)decrypted_header, headerSize, headerSize);
add_new_data_source(pinfo, next_tvb, "Decrypted Header");
// We're indexing into another tvb
gint offset = 0;
gint len = size_field_width;
proto_tree_add_item(woww_tree, hf_woww_size, next_tvb,
offset, len, ENC_BIG_ENDIAN);
offset += len;
guint32 opcode = 0;
if (WOWW_SERVER_TO_CLIENT) {
len = 2;
opcode = tvb_get_guint16(next_tvb, offset, ENC_LITTLE_ENDIAN);
} else if (WOWW_CLIENT_TO_SERVER) {
len = 4;
opcode = tvb_get_guint32(next_tvb, offset, ENC_LITTLE_ENDIAN);
}
proto_tree_add_item(woww_tree, hf_woww_opcode, next_tvb,
offset, len, ENC_LITTLE_ENDIAN);
if (start_offset == 0) {
// First message
col_set_str(pinfo->cinfo, COL_INFO, val_to_str_const(opcode,
world_packet_strings,
"Encrypted Header"));
}
else {
col_append_str(pinfo->cinfo, COL_INFO, " | ");
col_append_str(pinfo->cinfo, COL_INFO, val_to_str_const(opcode,
world_packet_strings,
"Encrypted Header"));
}
proto_item_set_text(woww_tree, "%s", val_to_str_const(opcode,
world_packet_strings,
"Encrypted Header"));
gint offset_packet_end = start_offset + (gint)packet_size;
// Remember to go back to original tvb
add_body_fields(opcode, woww_tree, tvb, start_offset + headerSize, offset_packet_end, pinfo);
return offset_packet_end;
}
static int
dissect_woww(tvbuff_t *tvb,
packet_info *pinfo,
proto_tree *tree,
void *data _U_)
{
if (tvb_reported_length(tvb) < WOWW_MIN_LENGTH)
return 0;
if (tvb_captured_length(tvb) < 1)
return 0;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "WOWW");
col_set_str(pinfo->cinfo, COL_INFO, "Session Key Not Known Yet");
// Get conversation data
conversation_t* conv = find_or_create_conversation(pinfo);
WowwConversation_t* wowwConversation = (WowwConversation_t *)conversation_get_proto_data(conv,
proto_woww);
if (wowwConversation == NULL) {
// Assume that file scope means for the lifetime of the dissection
wowwConversation = (WowwConversation_t*) wmem_new0(wmem_file_scope(), WowwConversation_t);
conversation_add_proto_data(conv, proto_woww, wowwConversation);
wowwConversation->decrypted_headers = wmem_map_new(wmem_file_scope(), g_int64_hash, g_int64_equal);
wowwConversation->headers_need_decryption = wmem_map_new(wmem_file_scope(), g_int64_hash, g_int64_equal);
}
// Isolate session key for packet
WowwParticipant_t* participant;
guint8 headerSize = 4;
if (WOWW_SERVER_TO_CLIENT) {
participant = &wowwConversation->server;
headerSize = 4;
} else {
participant = &wowwConversation->client;
headerSize = 6;
}
proto_tree* ti = proto_tree_add_item(tree, proto_woww, tvb, 0, -1, ENC_NA);
proto_tree* woww_tree = proto_item_add_subtree(ti, ett_woww);
gint pdu_offset = 0;
gint reported_length = (gint)tvb_reported_length(tvb);
guint8 header_index = 0;
do {
WowwDecryptedHeader_t* decrypted_header = handle_packet_header(pinfo, tvb, participant, wowwConversation, headerSize, header_index, pdu_offset);
if (!decrypted_header) {
return tvb_captured_length(tvb);
}
pdu_offset = add_header_to_tree(decrypted_header, woww_tree, tvb, pinfo, headerSize, pdu_offset);
header_index++;
} while (pdu_offset < reported_length);
return tvb_captured_length(tvb);
}
void
proto_register_woww(void)
{
static hf_register_info hf[] = {
{ &hf_woww_size,
{ "Size", "woww.size",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
"Size of the packet including opcode field but not including size field", HFILL }
},
{ &hf_woww_opcode,
{ "Opcode", "woww.opcode",
FT_UINT32, BASE_HEX, VALS(world_packet_strings), 0,
"Opcode of the packet", HFILL }
},
{ &hf_woww_string_length,
{ "String Length", "woww.string_length",
FT_UINT32, BASE_DEC_HEX, NULL, 0,
NULL, HFILL }
},
{ &hf_woww_aura_mask,
{ "Aura Mask", "woww.aura_mask",
FT_UINT32, BASE_DEC_HEX, NULL, 0,
NULL, HFILL }
},
{ &hf_woww_aura,
{ "Aura", "woww.aura",
FT_UINT32, BASE_DEC_HEX, NULL, 0,
NULL, HFILL }
},
{ &hf_woww_amount_of_masks,
{ "Amount of Masks", "woww.amount_of_masks",
FT_UINT8, BASE_DEC_HEX, NULL, 0,
NULL, HFILL }
},
{ &hf_woww_update_mask,
{ "Update Mask", "woww.update_mask",
FT_UINT32, BASE_DEC_HEX, NULL, 0,
NULL, HFILL }
},
{ &hf_woww_update_mask_value,
{ "Update Mask Value", "woww.update_mask_value",
FT_UINT32, BASE_DEC_HEX, NULL, 0,
NULL, HFILL }
},
/* AUTOGENERATED_START_REGISTER */
{ &hf_woww_absorb,
{ "Absorb", "woww.absorb",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_absorbed,
{ "Absorbed", "woww.absorbed",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_absorbed_damage,
{ "Absorbed Damage", "woww.absorbed.damage",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_action,
{ "Action", "woww.action",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_action_bar,
{ "Action Bar", "woww.action.bar",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_action_bars,
{ "Action Bars", "woww.action.bars",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_action_type,
{ "Action Type", "woww.action.type",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_activate_taxi_reply,
{ "Activate Taxi Reply", "woww.activate.taxi.reply",
FT_UINT32, BASE_HEX_DEC, VALS(e_activate_taxi_reply_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_actual_roll,
{ "Actual Roll", "woww.actual.roll",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_addon_crc,
{ "Addon Crc", "woww.addon.crc",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_addon_extra_crc,
{ "Addon Extra Crc", "woww.addon.extra.crc",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_addon_has_signature,
{ "Addon Has Signature", "woww.addon.has.signature",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_addon_name,
{ "Addon Name", "woww.addon.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_addon_type,
{ "Addon Type", "woww.addon.type",
FT_UINT8, BASE_HEX_DEC, VALS(e_addon_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_agility,
{ "Agility", "woww.agility",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_ai_reaction,
{ "Ai Reaction", "woww.ai.reaction",
FT_UINT32, BASE_HEX_DEC, VALS(e_ai_reaction_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_allow_movement,
{ "Allow Movement", "woww.allow.movement",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_allowed_class,
{ "Allowed Class", "woww.allowed.class",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_allowed_classes,
{ "Allowed Classes", "woww.allowed.classes",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_allowed_genders,
{ "Allowed Genders", "woww.allowed.genders",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_allowed_guild_id,
{ "Allowed Guild Id", "woww.allowed.guild.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_allowed_maximum_level,
{ "Allowed Maximum Level", "woww.allowed.maximum.level",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_allowed_minimum_level,
{ "Allowed Minimum Level", "woww.allowed.minimum.level",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_allowed_race,
{ "Allowed Race", "woww.allowed.race",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_allowed_races,
{ "Allowed Races", "woww.allowed.races",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_ammo_display_id,
{ "Ammo Display Id", "woww.ammo.display.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_ammo_inventory_type,
{ "Ammo Inventory Type", "woww.ammo.inventory.type",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_ammo_type,
{ "Ammo Type", "woww.ammo.type",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount,
{ "Amount", "woww.amount",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_bought,
{ "Amount Bought", "woww.amount.bought",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_for_sale,
{ "Amount For Sale", "woww.amount.for.sale",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_accounts_in_guild,
{ "Amount Of Accounts In Guild", "woww.amount.of.accounts.in.guild",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_auras,
{ "Amount Of Auras", "woww.amount.of.auras",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_carriers,
{ "Amount Of Carriers", "woww.amount.of.carriers",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_characters,
{ "Amount Of Characters", "woww.amount.of.characters",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_characters_in_guild,
{ "Amount Of Characters In Guild", "woww.amount.of.characters.in.guild",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_choice_item_rewards,
{ "Amount Of Choice Item Rewards", "woww.amount.of.choice.item.rewards",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_cooldowns,
{ "Amount Of Cooldowns", "woww.amount.of.cooldowns",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_damages,
{ "Amount Of Damages", "woww.amount.of.damages",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_effects,
{ "Amount Of Effects", "woww.amount.of.effects",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_emotes,
{ "Amount Of Emotes", "woww.amount.of.emotes",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_entries,
{ "Amount Of Entries", "woww.amount.of.entries",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_events,
{ "Amount Of Events", "woww.amount.of.events",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_extra_fields,
{ "Amount Of Extra Fields", "woww.amount.of.extra.fields",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_factions,
{ "Amount Of Factions", "woww.amount.of.factions",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_friends,
{ "Amount Of Friends", "woww.amount.of.friends",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_gossip_items,
{ "Amount Of Gossip Items", "woww.amount.of.gossip.items",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_hits,
{ "Amount Of Hits", "woww.amount.of.hits",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_ignored,
{ "Amount Of Ignored", "woww.amount.of.ignored",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_item_rewards,
{ "Amount Of Item Rewards", "woww.amount.of.item.rewards",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_items,
{ "Amount Of Items", "woww.amount.of.items",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_logs,
{ "Amount Of Logs", "woww.amount.of.logs",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_mails,
{ "Amount Of Mails", "woww.amount.of.mails",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_members,
{ "Amount Of Members", "woww.amount.of.members",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_misses,
{ "Amount Of Misses", "woww.amount.of.misses",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_nodes,
{ "Amount Of Nodes", "woww.amount.of.nodes",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_objects,
{ "Amount Of Objects", "woww.amount.of.objects",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_outbid_items,
{ "Amount Of Outbid Items", "woww.amount.of.outbid.items",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_petitions,
{ "Amount Of Petitions", "woww.amount.of.petitions",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_pets,
{ "Amount Of Pets", "woww.amount.of.pets",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_players,
{ "Amount Of Players", "woww.amount.of.players",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_quests,
{ "Amount Of Quests", "woww.amount.of.quests",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_raid_infos,
{ "Amount Of Raid Infos", "woww.amount.of.raid.infos",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_reactions,
{ "Amount Of Reactions", "woww.amount.of.reactions",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_records,
{ "Amount Of Records", "woww.amount.of.records",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_required_items,
{ "Amount Of Required Items", "woww.amount.of.required.items",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_rights,
{ "Amount Of Rights", "woww.amount.of.rights",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_signatures,
{ "Amount Of Signatures", "woww.amount.of.signatures",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_spells,
{ "Amount Of Spells", "woww.amount.of.spells",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_states,
{ "Amount Of States", "woww.amount.of.states",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_strings,
{ "Amount Of Strings", "woww.amount.of.strings",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_targets,
{ "Amount Of Targets", "woww.amount.of.targets",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_teammates,
{ "Amount Of Teammates", "woww.amount.of.teammates",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_amount_of_zones,
{ "Amount Of Zones", "woww.amount.of.zones",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_angle,
{ "Angle", "woww.angle",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_animation_id,
{ "Animation Id", "woww.animation.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_answer,
{ "Answer", "woww.answer",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_answer_comment,
{ "Answer Comment", "woww.answer.comment",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_apply,
{ "Apply", "woww.apply",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_arcane_resistance,
{ "Arcane Resistance", "woww.arcane.resistance",
FT_INT32, BASE_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_area,
{ "Area", "woww.area",
FT_UINT32, BASE_HEX_DEC, VALS(e_area_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_armor,
{ "Armor", "woww.armor",
FT_INT32, BASE_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_attacker,
{ "Attacker", "woww.attacker",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_attacker_guid,
{ "Attacker Guid", "woww.attacker.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_auction_duration_in_minutes,
{ "Auction Duration In Minutes", "woww.auction.duration.in.minutes",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_auction_house_id,
{ "Auction House Id", "woww.auction.house.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_auction_id,
{ "Auction Id", "woww.auction.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_auction_main_category,
{ "Auction Main Category", "woww.auction.main.category",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_auction_out_bid,
{ "Auction Out Bid", "woww.auction.out.bid",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_auction_slot_id,
{ "Auction Slot Id", "woww.auction.slot.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_auction_sub_category,
{ "Auction Sub Category", "woww.auction.sub.category",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_auctioneer,
{ "Auctioneer", "woww.auctioneer",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_auctioneer_guid,
{ "Auctioneer Guid", "woww.auctioneer.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_aura_duration,
{ "Aura Duration", "woww.aura.duration",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_aura_slot,
{ "Aura Slot", "woww.aura.slot",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_aura_type,
{ "Aura Type", "woww.aura.type",
FT_UINT32, BASE_HEX_DEC, VALS(e_aura_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_auto_decline_time_in_msecs,
{ "Auto Decline Time In Msecs", "woww.auto.decline.time.in.msecs",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_auto_finish,
{ "Auto Finish", "woww.auto.finish",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_average_wait_time_in_ms,
{ "Average Wait Time In Ms", "woww.average.wait.time.in.ms",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_background_color,
{ "Background Color", "woww.background.color",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_backwards_running_speed,
{ "Backwards Running Speed", "woww.backwards.running.speed",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_backwards_swimming_speed,
{ "Backwards Swimming Speed", "woww.backwards.swimming.speed",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_bag,
{ "Bag", "woww.bag",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_bag_family,
{ "Bag Family", "woww.bag.family",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_bag_guid,
{ "Bag Guid", "woww.bag.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_bag_index,
{ "Bag Index", "woww.bag.index",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_bag_slot,
{ "Bag Slot", "woww.bag.slot",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_bag_type_subclass,
{ "Bag Type Subclass", "woww.bag.type.subclass",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_battlefield_port_action,
{ "Battlefield Port Action", "woww.battlefield.port.action",
FT_UINT8, BASE_HEX_DEC, VALS(e_battlefield_port_action_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_battleground_bracket,
{ "Battleground Bracket", "woww.battleground.bracket",
FT_UINT8, BASE_HEX_DEC, VALS(e_battleground_bracket_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_battleground_end_status,
{ "Battleground End Status", "woww.battleground.end.status",
FT_UINT8, BASE_HEX_DEC, VALS(e_battleground_end_status_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_battleground_winner,
{ "Battleground Winner", "woww.battleground.winner",
FT_UINT8, BASE_HEX_DEC, VALS(e_battleground_winner_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_battlegrounds,
{ "Battlegrounds", "woww.battlegrounds",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_battlemaster,
{ "Battlemaster", "woww.battlemaster",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_bg_type_id,
{ "Bg Type Id", "woww.bg.type.id",
FT_UINT32, BASE_HEX_DEC, VALS(e_bg_type_id_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_bid,
{ "Bid", "woww.bid",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_bidder,
{ "Bidder", "woww.bidder",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_billing_flags,
{ "Billing Flags", "woww.billing.flags",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_billing_rested,
{ "Billing Rested", "woww.billing.rested",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_billing_time,
{ "Billing Time", "woww.billing.time",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_block,
{ "Block", "woww.block",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_blocked,
{ "Blocked", "woww.blocked",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_blocked_amount,
{ "Blocked Amount", "woww.blocked.amount",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_body,
{ "Body", "woww.body",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_body_text,
{ "Body Text", "woww.body.text",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_bonding,
{ "Bonding", "woww.bonding",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_bonus_honor,
{ "Bonus Honor", "woww.bonus.honor",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_border_color,
{ "Border Color", "woww.border.color",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_border_style,
{ "Border Style", "woww.border.style",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_bug_type,
{ "Bug Type", "woww.bug.type",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_build,
{ "Build", "woww.build",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_button,
{ "Button", "woww.button",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_buy_bank_slot_result,
{ "Buy Bank Slot Result", "woww.buy.bank.slot.result",
FT_UINT32, BASE_HEX_DEC, VALS(e_buy_bank_slot_result_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_buy_price,
{ "Buy Price", "woww.buy.price",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_buy_result,
{ "Buy Result", "woww.buy.result",
FT_UINT8, BASE_HEX_DEC, VALS(e_buy_result_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_buyback_slot,
{ "Buyback Slot", "woww.buyback.slot",
FT_UINT32, BASE_HEX_DEC, VALS(e_buyback_slot_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_buyout,
{ "Buyout", "woww.buyout",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_buyout_amount,
{ "Buyout Amount", "woww.buyout.amount",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_cash_on_delivery_amount,
{ "Cash On Delivery Amount", "woww.cash.on.delivery.amount",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_cast_failure_reason,
{ "Cast Failure Reason", "woww.cast.failure.reason",
FT_UINT8, BASE_HEX_DEC, VALS(e_cast_failure_reason_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_cast_flags,
{ "Cast Flags", "woww.cast.flags",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_cast_item,
{ "Cast Item", "woww.cast.item",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_caster,
{ "Caster", "woww.caster",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_caster_guid,
{ "Caster Guid", "woww.caster.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_caster_is_spirit_healer,
{ "Caster Is Spirit Healer", "woww.caster.is.spirit.healer",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_category_cooldown_in_msecs,
{ "Category Cooldown In Msecs", "woww.category.cooldown.in.msecs",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_channel,
{ "Channel", "woww.channel",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_channel_flags,
{ "Channel Flags", "woww.channel.flags",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_channel_member_flags,
{ "Channel Member Flags", "woww.channel.member.flags",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_channel_name,
{ "Channel Name", "woww.channel.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_channel_password,
{ "Channel Password", "woww.channel.password",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_character_flags,
{ "Character Flags", "woww.character.flags",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_character_guid,
{ "Character Guid", "woww.character.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_character_name,
{ "Character Name", "woww.character.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_charter_display_id,
{ "Charter Display Id", "woww.charter.display.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_charter_entry,
{ "Charter Entry", "woww.charter.entry",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_charter_owner,
{ "Charter Owner", "woww.charter.owner",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_chat_credit,
{ "Chat Credit", "woww.chat.credit",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_chat_data_line_count,
{ "Chat Data Line Count", "woww.chat.data.line.count",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_chat_data_size_uncompressed,
{ "Chat Data Size Uncompressed", "woww.chat.data.size.uncompressed",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_chat_notify,
{ "Chat Notify", "woww.chat.notify",
FT_UINT8, BASE_HEX_DEC, VALS(e_chat_notify_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_chat_type,
{ "Chat Type", "woww.chat.type",
FT_UINT8, BASE_HEX_DEC, VALS(e_chat_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_checked_timestamp,
{ "Checked Timestamp", "woww.checked.timestamp",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_cinematic_sequence_id,
{ "Cinematic Sequence Id", "woww.cinematic.sequence.id",
FT_UINT32, BASE_HEX_DEC, VALS(e_cinematic_sequence_id_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_civilian,
{ "Civilian", "woww.civilian",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_class,
{ "Class", "woww.class",
FT_UINT8, BASE_HEX_DEC, VALS(e_class_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_class_mask,
{ "Class Mask", "woww.class.mask",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_client_instance_id,
{ "Client Instance Id", "woww.client.instance.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_client_proof,
{ "Client Proof", "woww.client.proof",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_client_seed,
{ "Client Seed", "woww.client.seed",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_code,
{ "Code", "woww.code",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_coded,
{ "Coded", "woww.coded",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_comment,
{ "Comment", "woww.comment",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_compressed_chat_data,
{ "Compressed Chat Data", "woww.compressed.chat.data",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_container_slots,
{ "Container Slots", "woww.container.slots",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_content,
{ "Content", "woww.content",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_cooldown_count,
{ "Cooldown Count", "woww.cooldown.count",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_cooldown_in_msecs,
{ "Cooldown In Msecs", "woww.cooldown.in.msecs",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_cooldown_time_in_msecs,
{ "Cooldown Time In Msecs", "woww.cooldown.time.in.msecs",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_corpse_query_result,
{ "Corpse Query Result", "woww.corpse.query.result",
FT_UINT8, BASE_HEX_DEC, VALS(e_corpse_query_result_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_corpse_target_ally,
{ "Corpse Target Ally", "woww.corpse.target.ally",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_corpse_target_enemy,
{ "Corpse Target Enemy", "woww.corpse.target.enemy",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_cos_angle,
{ "Cos Angle", "woww.cos.angle",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_cost_in_copper,
{ "Cost In Copper", "woww.cost.in.copper",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_count,
{ "Count", "woww.count",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_countdown_time,
{ "Countdown Time", "woww.countdown.time",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_counter,
{ "Counter", "woww.counter",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_create_id,
{ "Create Id", "woww.create.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_created_day,
{ "Created Day", "woww.created.day",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_created_month,
{ "Created Month", "woww.created.month",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_created_year,
{ "Created Year", "woww.created.year",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_creature,
{ "Creature", "woww.creature",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_creature_entry,
{ "Creature Entry", "woww.creature.entry",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_creature_family,
{ "Creature Family", "woww.creature.family",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_creature_guid,
{ "Creature Guid", "woww.creature.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_creature_id,
{ "Creature Id", "woww.creature.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_creature_rank,
{ "Creature Rank", "woww.creature.rank",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_creature_type,
{ "Creature Type", "woww.creature.type",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_critical,
{ "Critical", "woww.critical",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_current_health,
{ "Current Health", "woww.current.health",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_current_power,
{ "Current Power", "woww.current.power",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_damage,
{ "Damage", "woww.damage",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_damage_float,
{ "Damage Float", "woww.damage.float",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_damage_maximum,
{ "Damage Maximum", "woww.damage.maximum",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_damage_minimum,
{ "Damage Minimum", "woww.damage.minimum",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_damage_state,
{ "Damage State", "woww.damage.state",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_damage_type,
{ "Damage Type", "woww.damage.type",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_damage_uint,
{ "Damage Uint", "woww.damage.uint",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_data,
{ "Data", "woww.data",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_data_type,
{ "Data Type", "woww.data.type",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_datetime,
{ "Datetime", "woww.datetime",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_days_since_last_updated,
{ "Days Since Last Updated", "woww.days.since.last.updated",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_days_since_oldest_ticket_creation,
{ "Days Since Oldest Ticket Creation", "woww.days.since.oldest.ticket.creation",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_days_since_ticket_creation,
{ "Days Since Ticket Creation", "woww.days.since.ticket.creation",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_deadline,
{ "Deadline", "woww.deadline",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_deaths,
{ "Deaths", "woww.deaths",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_decompressed_addon_info_size,
{ "Decompressed Addon Info Size", "woww.decompressed.addon.info.size",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_delay,
{ "Delay", "woww.delay",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_delay_in_seconds,
{ "Delay In Seconds", "woww.delay.in.seconds",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_delay_time,
{ "Delay Time", "woww.delay.time",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_description,
{ "Description", "woww.description",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_destination_bag,
{ "Destination Bag", "woww.destination.bag",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_destination_node,
{ "Destination Node", "woww.destination.node",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_destination_position_x,
{ "Destination Position X", "woww.destination.position.x",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_destination_position_y,
{ "Destination Position Y", "woww.destination.position.y",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_destination_position_z,
{ "Destination Position Z", "woww.destination.position.z",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_destination_slot,
{ "Destination Slot", "woww.destination.slot",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_destionation_slot,
{ "Destionation Slot", "woww.destionation.slot",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_details,
{ "Details", "woww.details",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_display_id,
{ "Display Id", "woww.display.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_duel_winner_reason,
{ "Duel Winner Reason", "woww.duel.winner.reason",
FT_UINT8, BASE_HEX_DEC, VALS(e_duel_winner_reason_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_durability,
{ "Durability", "woww.durability",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_duration,
{ "Duration", "woww.duration",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_eff,
{ "Eff", "woww.eff",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_emblem_color,
{ "Emblem Color", "woww.emblem.color",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_emblem_style,
{ "Emblem Style", "woww.emblem.style",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_emote_delay,
{ "Emote Delay", "woww.emote.delay",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_emote_delay_in_msecs,
{ "Emote Delay In Msecs", "woww.emote.delay.in.msecs",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_emote_enum,
{ "Emote Enum", "woww.emote.enum",
FT_UINT32, BASE_HEX_DEC, VALS(e_emote_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_emote_int,
{ "Emote Int", "woww.emote.int",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_enable_next,
{ "Enable Next", "woww.enable.next",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_enable_pvp,
{ "Enable Pvp", "woww.enable.pvp",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_enabled,
{ "Enabled", "woww.enabled",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_enchantment,
{ "Enchantment", "woww.enchantment",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_end_text,
{ "End Text", "woww.end.text",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_ended_without_interruption,
{ "Ended Without Interruption", "woww.ended.without.interruption",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_enemy,
{ "Enemy", "woww.enemy",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_energy,
{ "Energy", "woww.energy",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_entry,
{ "Entry", "woww.entry",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_entry_id,
{ "Entry Id", "woww.entry.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_environmental_damage_type,
{ "Environmental Damage Type", "woww.environmental.damage.type",
FT_UINT32, BASE_HEX_DEC, VALS(e_environmental_damage_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_equipment_display_id,
{ "Equipment Display Id", "woww.equipment.display.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_equipped_item_class,
{ "Equipped Item Class", "woww.equipped.item.class",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_equipped_item_inventory_type_mask,
{ "Equipped Item Inventory Type Mask", "woww.equipped.item.inventory.type.mask",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_equipped_item_subclass_mask,
{ "Equipped Item Subclass Mask", "woww.equipped.item.subclass.mask",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_event_descriptions,
{ "Event Descriptions", "woww.event.descriptions",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_exp_group_bonus,
{ "Exp Group Bonus", "woww.exp.group.bonus",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_experience,
{ "Experience", "woww.experience",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_experience_award_type,
{ "Experience Award Type", "woww.experience.award.type",
FT_UINT8, BASE_HEX_DEC, VALS(e_experience_award_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_experience_reward,
{ "Experience Reward", "woww.experience.reward",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_experience_without_rested,
{ "Experience Without Rested", "woww.experience.without.rested",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_expiration_time,
{ "Expiration Time", "woww.expiration.time",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_extend_flag,
{ "Extend Flag", "woww.extend.flag",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_face,
{ "Face", "woww.face",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_facial_hair,
{ "Facial Hair", "woww.facial.hair",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_faction_flag,
{ "Faction Flag", "woww.faction.flag",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_faction_id,
{ "Faction Id", "woww.faction.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_fall_time,
{ "Fall Time", "woww.fall.time",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_far_sight_operation,
{ "Far Sight Operation", "woww.far.sight.operation",
FT_UINT8, BASE_HEX_DEC, VALS(e_far_sight_operation_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_fields,
{ "Fields", "woww.fields",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_fire_resistance,
{ "Fire Resistance", "woww.fire.resistance",
FT_INT32, BASE_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_first_bag_display_id,
{ "First Bag Display Id", "woww.first.bag.display.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_first_bag_inventory_id,
{ "First Bag Inventory Id", "woww.first.bag.inventory.id",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_first_login,
{ "First Login", "woww.first.login",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_first_rank,
{ "First Rank", "woww.first.rank",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_flags,
{ "Flags", "woww.flags",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_focus,
{ "Focus", "woww.focus",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_friend_name,
{ "Friend Name", "woww.friend.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_friend_result,
{ "Friend Result", "woww.friend.result",
FT_UINT8, BASE_HEX_DEC, VALS(e_friend_result_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_friend_status,
{ "Friend Status", "woww.friend.status",
FT_UINT8, BASE_HEX_DEC, VALS(e_friend_status_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_frost_resistance,
{ "Frost Resistance", "woww.frost.resistance",
FT_INT32, BASE_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_gain_multiplier,
{ "Gain Multiplier", "woww.gain.multiplier",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_gender,
{ "Gender", "woww.gender",
FT_UINT8, BASE_HEX_DEC, VALS(e_gender_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_gift_bag_index,
{ "Gift Bag Index", "woww.gift.bag.index",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_gift_slot,
{ "Gift Slot", "woww.gift.slot",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_gift_wrapper,
{ "Gift Wrapper", "woww.gift.wrapper",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_gm_ticket_escalation_status,
{ "Gm Ticket Escalation Status", "woww.gm.ticket.escalation.status",
FT_UINT8, BASE_HEX_DEC, VALS(e_gm_ticket_escalation_status_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_gm_ticket_queue_status,
{ "Gm Ticket Queue Status", "woww.gm.ticket.queue.status",
FT_UINT32, BASE_HEX_DEC, VALS(e_gm_ticket_queue_status_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_gm_ticket_response,
{ "Gm Ticket Response", "woww.gm.ticket.response",
FT_UINT32, BASE_HEX_DEC, VALS(e_gm_ticket_response_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_gm_ticket_status,
{ "Gm Ticket Status", "woww.gm.ticket.status",
FT_UINT32, BASE_HEX_DEC, VALS(e_gm_ticket_status_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_gm_ticket_status_response,
{ "Gm Ticket Status Response", "woww.gm.ticket.status.response",
FT_UINT32, BASE_HEX_DEC, VALS(e_gm_ticket_status_response_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_gm_ticket_type,
{ "Gm Ticket Type", "woww.gm.ticket.type",
FT_UINT8, BASE_HEX_DEC, VALS(e_gm_ticket_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_gold,
{ "Gold", "woww.gold",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_gossip_list_id,
{ "Gossip List Id", "woww.gossip.list.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_grade,
{ "Grade", "woww.grade",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_greeting,
{ "Greeting", "woww.greeting",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_group_loot_setting,
{ "Group Loot Setting", "woww.group.loot.setting",
FT_UINT8, BASE_HEX_DEC, VALS(e_group_loot_setting_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_group_member_online_status,
{ "Group Member Online Status", "woww.group.member.online.status",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_group_number,
{ "Group Number", "woww.group.number",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_group_type,
{ "Group Type", "woww.group.type",
FT_UINT8, BASE_HEX_DEC, VALS(e_group_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_group_update_flags,
{ "Group Update Flags", "woww.group.update.flags",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_guid,
{ "Guid", "woww.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_guids,
{ "Guids", "woww.guids",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_guild,
{ "Guild", "woww.guild",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_guild_charter_cost,
{ "Guild Charter Cost", "woww.guild.charter.cost",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_guild_command,
{ "Guild Command", "woww.guild.command",
FT_UINT8, BASE_HEX_DEC, VALS(e_guild_command_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_guild_command_result,
{ "Guild Command Result", "woww.guild.command.result",
FT_UINT8, BASE_HEX_DEC, VALS(e_guild_command_result_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_guild_emblem_result,
{ "Guild Emblem Result", "woww.guild.emblem.result",
FT_UINT32, BASE_HEX_DEC, VALS(e_guild_emblem_result_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_guild_event,
{ "Guild Event", "woww.guild.event",
FT_UINT8, BASE_HEX_DEC, VALS(e_guild_event_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_guild_guid,
{ "Guild Guid", "woww.guild.guid",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_guild_id,
{ "Guild Id", "woww.guild.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_guild_info,
{ "Guild Info", "woww.guild.info",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_guild_member_status,
{ "Guild Member Status", "woww.guild.member.status",
FT_UINT8, BASE_HEX_DEC, VALS(e_guild_member_status_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_guild_name,
{ "Guild Name", "woww.guild.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_hair_color,
{ "Hair Color", "woww.hair.color",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_hair_style,
{ "Hair Style", "woww.hair.style",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_happiness,
{ "Happiness", "woww.happiness",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_has_been_saved,
{ "Has Been Saved", "woww.has.been.saved",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_has_transport,
{ "Has Transport", "woww.has.transport",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_health,
{ "Health", "woww.health",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_highest_bid,
{ "Highest Bid", "woww.highest.bid",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_highest_bidder,
{ "Highest Bidder", "woww.highest.bidder",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_hit_info,
{ "Hit Info", "woww.hit.info",
FT_UINT32, BASE_HEX_DEC, VALS(e_hit_info_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_hits,
{ "Hits", "woww.hits",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_holy_resistance,
{ "Holy Resistance", "woww.holy.resistance",
FT_INT32, BASE_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_homebind_timer,
{ "Homebind Timer", "woww.homebind.timer",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_honor_points,
{ "Honor Points", "woww.honor.points",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_honorable_kills,
{ "Honorable Kills", "woww.honorable.kills",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_horizontal_speed,
{ "Horizontal Speed", "woww.horizontal.speed",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_icon,
{ "Icon", "woww.icon",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_id,
{ "Id", "woww.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_ignore_name,
{ "Ignore Name", "woww.ignore.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_ignored,
{ "Ignored", "woww.ignored",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_inactive,
{ "Inactive", "woww.inactive",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_index,
{ "Index", "woww.index",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_info_block,
{ "Info Block", "woww.info.block",
FT_UINT8, BASE_HEX_DEC, VALS(e_info_block_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_info_type,
{ "Info Type", "woww.info.type",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_initiator_guid,
{ "Initiator Guid", "woww.initiator.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_initiator_name,
{ "Initiator Name", "woww.initiator.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_instance_id,
{ "Instance Id", "woww.instance.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_instance_reset_failed_reason,
{ "Instance Reset Failed Reason", "woww.instance.reset.failed.reason",
FT_UINT8, BASE_HEX_DEC, VALS(e_instance_reset_failed_reason_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_intellect,
{ "Intellect", "woww.intellect",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_interrupted_spell,
{ "Interrupted Spell", "woww.interrupted.spell",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_inventory_result,
{ "Inventory Result", "woww.inventory.result",
FT_UINT8, BASE_HEX_DEC, VALS(e_inventory_result_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_inventory_type,
{ "Inventory Type", "woww.inventory.type",
FT_UINT8, BASE_HEX_DEC, VALS(e_inventory_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_invited_player,
{ "Invited Player", "woww.invited.player",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_is_applied,
{ "Is Applied", "woww.is.applied",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_is_frozen,
{ "Is Frozen", "woww.is.frozen",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_is_online,
{ "Is Online", "woww.is.online",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_is_wrapped,
{ "Is Wrapped", "woww.is.wrapped",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_issue_date,
{ "Issue Date", "woww.issue.date",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item,
{ "Item", "woww.item",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_bag_index,
{ "Item Bag Index", "woww.item.bag.index",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_charges,
{ "Item Charges", "woww.item.charges",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_class,
{ "Item Class", "woww.item.class",
FT_UINT8, BASE_HEX_DEC, VALS(e_item_class_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_item_count,
{ "Item Count", "woww.item.count",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_creator,
{ "Item Creator", "woww.item.creator",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_display_id,
{ "Item Display Id", "woww.item.display.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_display_info,
{ "Item Display Info", "woww.item.display.info",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_enchant_id,
{ "Item Enchant Id", "woww.item.enchant.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_enchantment,
{ "Item Enchantment", "woww.item.enchantment",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_entry,
{ "Item Entry", "woww.item.entry",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_guid,
{ "Item Guid", "woww.item.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_icon,
{ "Item Icon", "woww.item.icon",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_id,
{ "Item Id", "woww.item.id",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_level,
{ "Item Level", "woww.item.level",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_limit_category_id,
{ "Item Limit Category Id", "woww.item.limit.category.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_name,
{ "Item Name", "woww.item.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_owner,
{ "Item Owner", "woww.item.owner",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_quality,
{ "Item Quality", "woww.item.quality",
FT_UINT8, BASE_HEX_DEC, VALS(e_item_quality_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_item_random_properties_id,
{ "Item Random Properties Id", "woww.item.random.properties.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_random_property_id,
{ "Item Random Property Id", "woww.item.random.property.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_random_suffix,
{ "Item Random Suffix", "woww.item.random.suffix",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_random_suffix_id,
{ "Item Random Suffix Id", "woww.item.random.suffix.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_set,
{ "Item Set", "woww.item.set",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_slot,
{ "Item Slot", "woww.item.slot",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_spell_charges,
{ "Item Spell Charges", "woww.item.spell.charges",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_stack_count,
{ "Item Stack Count", "woww.item.stack.count",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_stack_size,
{ "Item Stack Size", "woww.item.stack.size",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_stat_type,
{ "Item Stat Type", "woww.item.stat.type",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_stat_value,
{ "Item Stat Value", "woww.item.stat.value",
FT_INT32, BASE_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_sub_class,
{ "Item Sub Class", "woww.item.sub.class",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_sub_class_mask,
{ "Item Sub Class Mask", "woww.item.sub.class.mask",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_suffix_factor,
{ "Item Suffix Factor", "woww.item.suffix.factor",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_target,
{ "Item Target", "woww.item.target",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_target_entry,
{ "Item Target Entry", "woww.item.target.entry",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_template,
{ "Item Template", "woww.item.template",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_text_id,
{ "Item Text Id", "woww.item.text.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_item_trade_target,
{ "Item Trade Target", "woww.item.trade.target",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_items_required,
{ "Items Required", "woww.items.required",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_join_as_group,
{ "Join As Group", "woww.join.as.group",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_key_version,
{ "Key Version", "woww.key.version",
FT_UINT8, BASE_HEX_DEC, VALS(e_key_version_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_kill_count,
{ "Kill Count", "woww.kill.count",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_killing_blows,
{ "Killing Blows", "woww.killing.blows",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_lag,
{ "Lag", "woww.lag",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_language,
{ "Language", "woww.language",
FT_UINT32, BASE_HEX_DEC, VALS(e_language_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_language_id,
{ "Language Id", "woww.language.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_last_week_honor,
{ "Last Week Honor", "woww.last.week.honor",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_last_week_honorable,
{ "Last Week Honorable", "woww.last.week.honorable",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_leader,
{ "Leader", "woww.leader",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_level,
{ "Level", "woww.level",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_level_played_time,
{ "Level Played Time", "woww.level.played.time",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_lifetime_dishonorable,
{ "Lifetime Dishonorable", "woww.lifetime.dishonorable",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_lifetime_honorable,
{ "Lifetime Honorable", "woww.lifetime.honorable",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_list_from,
{ "List From", "woww.list.from",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_list_start_item,
{ "List Start Item", "woww.list.start.item",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_listed_players,
{ "Listed Players", "woww.listed.players",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_living_orientation,
{ "Living Orientation", "woww.living.orientation",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_location_name,
{ "Location Name", "woww.location.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_lock_id,
{ "Lock Id", "woww.lock.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_log_format,
{ "Log Format", "woww.log.format",
FT_UINT8, BASE_HEX_DEC, VALS(e_log_format_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_logout_result,
{ "Logout Result", "woww.logout.result",
FT_UINT32, BASE_HEX_DEC, VALS(e_logout_result_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_logout_speed,
{ "Logout Speed", "woww.logout.speed",
FT_UINT8, BASE_HEX_DEC, VALS(e_logout_speed_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_loot,
{ "Loot", "woww.loot",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_loot_master,
{ "Loot Master", "woww.loot.master",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_loot_method,
{ "Loot Method", "woww.loot.method",
FT_UINT8, BASE_HEX_DEC, VALS(e_loot_method_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_loot_slot,
{ "Loot Slot", "woww.loot.slot",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_looted_target_guid,
{ "Looted Target Guid", "woww.looted.target.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_loyalty,
{ "Loyalty", "woww.loyalty",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_mail_id,
{ "Mail Id", "woww.mail.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_mail_template_id,
{ "Mail Template Id", "woww.mail.template.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_mail_type,
{ "Mail Type", "woww.mail.type",
FT_UINT8, BASE_HEX_DEC, VALS(e_mail_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_mailbox,
{ "Mailbox", "woww.mailbox",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_mailbox_guid,
{ "Mailbox Guid", "woww.mailbox.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_mailbox_id,
{ "Mailbox Id", "woww.mailbox.id",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_mana,
{ "Mana", "woww.mana",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_map,
{ "Map", "woww.map",
FT_UINT32, BASE_HEX_DEC, VALS(e_map_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_master_loot,
{ "Master Loot", "woww.master.loot",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_material,
{ "Material", "woww.material",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_max_count,
{ "Max Count", "woww.max.count",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_max_durability,
{ "Max Durability", "woww.max.durability",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_max_health,
{ "Max Health", "woww.max.health",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_max_items,
{ "Max Items", "woww.max.items",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_max_level_money_reward,
{ "Max Level Money Reward", "woww.max.level.money.reward",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_max_power,
{ "Max Power", "woww.max.power",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_maximum,
{ "Maximum", "woww.maximum",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_maximum_level,
{ "Maximum Level", "woww.maximum.level",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_maximum_signatures,
{ "Maximum Signatures", "woww.maximum.signatures",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_meeting_stone_failure,
{ "Meeting Stone Failure", "woww.meeting.stone.failure",
FT_UINT8, BASE_HEX_DEC, VALS(e_meeting_stone_failure_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_meeting_stone_status,
{ "Meeting Stone Status", "woww.meeting.stone.status",
FT_UINT8, BASE_HEX_DEC, VALS(e_meeting_stone_status_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_member,
{ "Member", "woww.member",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_message,
{ "Message", "woww.message",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_message_id,
{ "Message Id", "woww.message.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_message_of_the_day,
{ "Message Of The Day", "woww.message.of.the.day",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_minimum,
{ "Minimum", "woww.minimum",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_minimum_bid,
{ "Minimum Bid", "woww.minimum.bid",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_minimum_level,
{ "Minimum Level", "woww.minimum.level",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_minimum_signatures,
{ "Minimum Signatures", "woww.minimum.signatures",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_misc,
{ "Misc", "woww.misc",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_misc_value,
{ "Misc Value", "woww.misc.value",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_money,
{ "Money", "woww.money",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_money_in_trade,
{ "Money In Trade", "woww.money.in.trade",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_money_reward,
{ "Money Reward", "woww.money.reward",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_monster,
{ "Monster", "woww.monster",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_monster_move_type,
{ "Monster Move Type", "woww.monster.move.type",
FT_UINT8, BASE_HEX_DEC, VALS(e_monster_move_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_monster_name,
{ "Monster Name", "woww.monster.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_motd,
{ "Motd", "woww.motd",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_mount_result,
{ "Mount Result", "woww.mount.result",
FT_UINT32, BASE_HEX_DEC, VALS(e_mount_result_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_move_event,
{ "Move Event", "woww.move.event",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_movement_counter,
{ "Movement Counter", "woww.movement.counter",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_movement_flags,
{ "Movement Flags", "woww.movement.flags",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_name,
{ "Name", "woww.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_nature_resistance,
{ "Nature Resistance", "woww.nature.resistance",
FT_INT32, BASE_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_nearest_node,
{ "Nearest Node", "woww.nearest.node",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_new_guild_leader_name,
{ "New Guild Leader Name", "woww.new.guild.leader.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_new_item_chat_alert,
{ "New Item Chat Alert", "woww.new.item.chat.alert",
FT_UINT32, BASE_HEX_DEC, VALS(e_new_item_chat_alert_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_new_item_creation_type,
{ "New Item Creation Type", "woww.new.item.creation.type",
FT_UINT32, BASE_HEX_DEC, VALS(e_new_item_creation_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_new_item_source,
{ "New Item Source", "woww.new.item.source",
FT_UINT32, BASE_HEX_DEC, VALS(e_new_item_source_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_new_level,
{ "New Level", "woww.new.level",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_new_name,
{ "New Name", "woww.new.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_new_owner,
{ "New Owner", "woww.new.owner",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_new_speed,
{ "New Speed", "woww.new.speed",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_new_spell_id,
{ "New Spell Id", "woww.new.spell.id",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_next_page_id,
{ "Next Page Id", "woww.next.page.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_next_quest_in_chain,
{ "Next Quest In Chain", "woww.next.quest.in.chain",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_next_resurrect_time,
{ "Next Resurrect Time", "woww.next.resurrect.time",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_node_count,
{ "Node Count", "woww.node.count",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_nodes,
{ "Nodes", "woww.nodes",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_note,
{ "Note", "woww.note",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_notification,
{ "Notification", "woww.notification",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_npc,
{ "Npc", "woww.npc",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_npc_guid,
{ "Npc Guid", "woww.npc.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_number_of_battlegrounds,
{ "Number Of Battlegrounds", "woww.number.of.battlegrounds",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_number_of_choices,
{ "Number Of Choices", "woww.number.of.choices",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_object_target,
{ "Object Target", "woww.object.target",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_object_target_locked,
{ "Object Target Locked", "woww.object.target.locked",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_object_type,
{ "Object Type", "woww.object.type",
FT_UINT8, BASE_HEX_DEC, VALS(e_object_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_objective_text,
{ "Objective Text", "woww.objective.text",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_objective_texts,
{ "Objective Texts", "woww.objective.texts",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_objectives,
{ "Objectives", "woww.objectives",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_offer_reward_text,
{ "Offer Reward Text", "woww.offer.reward.text",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_officer_note,
{ "Officer Note", "woww.officer.note",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_old_mover,
{ "Old Mover", "woww.old.mover",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_old_spell_id,
{ "Old Spell Id", "woww.old.spell.id",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_online_players,
{ "Online Players", "woww.online.players",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_op,
{ "Op", "woww.op",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_opponent_name,
{ "Opponent Name", "woww.opponent.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_orientation,
{ "Orientation", "woww.orientation",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_out_bid,
{ "Out Bid", "woww.out.bid",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_outbid_item_ids,
{ "Outbid Item Ids", "woww.outbid.item.ids",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_outfit_id,
{ "Outfit Id", "woww.outfit.id",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_own_flags,
{ "Own Flags", "woww.own.flags",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_owner_guid,
{ "Owner Guid", "woww.owner.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_padding,
{ "Padding", "woww.padding",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_page_id,
{ "Page Id", "woww.page.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_page_material,
{ "Page Material", "woww.page.material",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_page_text,
{ "Page Text", "woww.page.text",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_party_operation,
{ "Party Operation", "woww.party.operation",
FT_UINT8, BASE_HEX_DEC, VALS(e_party_operation_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_party_result,
{ "Party Result", "woww.party.result",
FT_UINT8, BASE_HEX_DEC, VALS(e_party_result_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_party_status,
{ "Party Status", "woww.party.status",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_periodic_log,
{ "Periodic Log", "woww.periodic.log",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_pet,
{ "Pet", "woww.pet",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_pet_command_state,
{ "Pet Command State", "woww.pet.command.state",
FT_UINT8, BASE_HEX_DEC, VALS(e_pet_command_state_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_pet_current_health,
{ "Pet Current Health", "woww.pet.current.health",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_pet_current_power,
{ "Pet Current Power", "woww.pet.current.power",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_pet_display_id,
{ "Pet Display Id", "woww.pet.display.id",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_pet_enabled,
{ "Pet Enabled", "woww.pet.enabled",
FT_UINT8, BASE_HEX_DEC, VALS(e_pet_enabled_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_pet_family,
{ "Pet Family", "woww.pet.family",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_pet_feedback,
{ "Pet Feedback", "woww.pet.feedback",
FT_UINT8, BASE_HEX_DEC, VALS(e_pet_feedback_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_pet_guid,
{ "Pet Guid", "woww.pet.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_pet_level,
{ "Pet Level", "woww.pet.level",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_pet_max_health,
{ "Pet Max Health", "woww.pet.max.health",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_pet_max_power,
{ "Pet Max Power", "woww.pet.max.power",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_pet_name,
{ "Pet Name", "woww.pet.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_pet_name_timestamp,
{ "Pet Name Timestamp", "woww.pet.name.timestamp",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_pet_number,
{ "Pet Number", "woww.pet.number",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_pet_react_state,
{ "Pet React State", "woww.pet.react.state",
FT_UINT8, BASE_HEX_DEC, VALS(e_pet_react_state_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_pet_slot,
{ "Pet Slot", "woww.pet.slot",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_pet_talk_reason,
{ "Pet Talk Reason", "woww.pet.talk.reason",
FT_UINT32, BASE_HEX_DEC, VALS(e_pet_talk_reason_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_pet_tame_failure_reason,
{ "Pet Tame Failure Reason", "woww.pet.tame.failure.reason",
FT_UINT8, BASE_HEX_DEC, VALS(e_pet_tame_failure_reason_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_petition,
{ "Petition", "woww.petition",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_petition_guid,
{ "Petition Guid", "woww.petition.guid",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_petition_result,
{ "Petition Result", "woww.petition.result",
FT_UINT32, BASE_HEX_DEC, VALS(e_petition_result_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_pitch,
{ "Pitch", "woww.pitch",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_player,
{ "Player", "woww.player",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_player_chat_tag,
{ "Player Chat Tag", "woww.player.chat.tag",
FT_UINT8, BASE_HEX_DEC, VALS(e_player_chat_tag_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_player_guid,
{ "Player Guid", "woww.player.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_player_name,
{ "Player Name", "woww.player.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_player_rank,
{ "Player Rank", "woww.player.rank",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_player_with_killing_blow,
{ "Player With Killing Blow", "woww.player.with.killing.blow",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_point_map_id,
{ "Point Map Id", "woww.point.map.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_point_opt,
{ "Point Opt", "woww.point.opt",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_position,
{ "Position", "woww.position",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_position_x,
{ "Position X", "woww.position.x",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_position_x_int,
{ "Position X Int", "woww.position.x.int",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_position_y,
{ "Position Y", "woww.position.y",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_position_y_int,
{ "Position Y Int", "woww.position.y.int",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_power,
{ "Power", "woww.power",
FT_UINT8, BASE_HEX_DEC, VALS(e_power_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_power_type,
{ "Power Type", "woww.power.type",
FT_UINT32, BASE_HEX_DEC, VALS(e_power_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_price,
{ "Price", "woww.price",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_probability,
{ "Probability", "woww.probability",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_public_key,
{ "Public Key", "woww.public.key",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_public_note,
{ "Public Note", "woww.public.note",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_pvp_rank,
{ "Pvp Rank", "woww.pvp.rank",
FT_UINT8, BASE_HEX_DEC, VALS(e_pvp_rank_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_quest_completable,
{ "Quest Completable", "woww.quest.completable",
FT_UINT32, BASE_HEX_DEC, VALS(e_quest_completable_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_quest_failed_reason,
{ "Quest Failed Reason", "woww.quest.failed.reason",
FT_UINT32, BASE_HEX_DEC, VALS(e_quest_failed_reason_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_quest_flags,
{ "Quest Flags", "woww.quest.flags",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_quest_giver_status,
{ "Quest Giver Status", "woww.quest.giver.status",
FT_UINT8, BASE_HEX_DEC, VALS(e_quest_giver_status_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_quest_icon,
{ "Quest Icon", "woww.quest.icon",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_quest_id,
{ "Quest Id", "woww.quest.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_quest_level,
{ "Quest Level", "woww.quest.level",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_quest_method,
{ "Quest Method", "woww.quest.method",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_quest_party_message,
{ "Quest Party Message", "woww.quest.party.message",
FT_UINT8, BASE_HEX_DEC, VALS(e_quest_party_message_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_quest_title,
{ "Quest Title", "woww.quest.title",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_quest_type,
{ "Quest Type", "woww.quest.type",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_question_id,
{ "Question Id", "woww.question.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_queue_position,
{ "Queue Position", "woww.queue.position",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_queue_slot,
{ "Queue Slot", "woww.queue.slot",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_race,
{ "Race", "woww.race",
FT_UINT8, BASE_HEX_DEC, VALS(e_race_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_race_mask,
{ "Race Mask", "woww.race.mask",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_racial_leader,
{ "Racial Leader", "woww.racial.leader",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_rage,
{ "Rage", "woww.rage",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_raid_group_error,
{ "Raid Group Error", "woww.raid.group.error",
FT_UINT32, BASE_HEX_DEC, VALS(e_raid_group_error_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_raid_instance_message,
{ "Raid Instance Message", "woww.raid.instance.message",
FT_UINT32, BASE_HEX_DEC, VALS(e_raid_instance_message_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_raid_target_index,
{ "Raid Target Index", "woww.raid.target.index",
FT_UINT8, BASE_HEX_DEC, VALS(e_raid_target_index_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_raid_target_update_type,
{ "Raid Target Update Type", "woww.raid.target.update.type",
FT_UINT8, BASE_HEX_DEC, VALS(e_raid_target_update_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_random_property,
{ "Random Property", "woww.random.property",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_random_property_id,
{ "Random Property Id", "woww.random.property.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_ranged_range_modification,
{ "Ranged Range Modification", "woww.ranged.range.modification",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_rank,
{ "Rank", "woww.rank",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_rank_id,
{ "Rank Id", "woww.rank.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_rank_name,
{ "Rank Name", "woww.rank.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_rank_names,
{ "Rank Names", "woww.rank.names",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_rank_progress_bar,
{ "Rank Progress Bar", "woww.rank.progress.bar",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_raw_data,
{ "Raw Data", "woww.raw.data",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_read_by_gm,
{ "Read By Gm", "woww.read.by.gm",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_realm_name,
{ "Realm Name", "woww.realm.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_receiver,
{ "Receiver", "woww.receiver",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_records,
{ "Records", "woww.records",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_reputation_id,
{ "Reputation Id", "woww.reputation.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_reputation_list_id,
{ "Reputation List Id", "woww.reputation.list.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_reputation_objective_faction,
{ "Reputation Objective Faction", "woww.reputation.objective.faction",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_reputation_objective_value,
{ "Reputation Objective Value", "woww.reputation.objective.value",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_reputation_rank,
{ "Reputation Rank", "woww.reputation.rank",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_request_items_text,
{ "Request Items Text", "woww.request.items.text",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_requested_rank,
{ "Requested Rank", "woww.requested.rank",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_required_city_rank,
{ "Required City Rank", "woww.required.city.rank",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_required_honor_rank,
{ "Required Honor Rank", "woww.required.honor.rank",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_required_item_count,
{ "Required Item Count", "woww.required.item.count",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_required_item_id,
{ "Required Item Id", "woww.required.item.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_required_kill_count,
{ "Required Kill Count", "woww.required.kill.count",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_required_level,
{ "Required Level", "woww.required.level",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_required_money,
{ "Required Money", "woww.required.money",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_required_opposite_faction,
{ "Required Opposite Faction", "woww.required.opposite.faction",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_required_opposite_reputation_value,
{ "Required Opposite Reputation Value", "woww.required.opposite.reputation.value",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_required_reputation_faction,
{ "Required Reputation Faction", "woww.required.reputation.faction",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_required_reputation_rank,
{ "Required Reputation Rank", "woww.required.reputation.rank",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_required_skill,
{ "Required Skill", "woww.required.skill",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_required_skill_rank,
{ "Required Skill Rank", "woww.required.skill.rank",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_required_skill_value,
{ "Required Skill Value", "woww.required.skill.value",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_required_spell,
{ "Required Spell", "woww.required.spell",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_required_spell_focus,
{ "Required Spell Focus", "woww.required.spell.focus",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_reserved_for_future_use,
{ "Reserved For Future Use", "woww.reserved.for.future.use",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_reset_time,
{ "Reset Time", "woww.reset.time",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_resist,
{ "Resist", "woww.resist",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_resisted,
{ "Resisted", "woww.resisted",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_respect_resurrection_timer,
{ "Respect Resurrection Timer", "woww.respect.resurrection.timer",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_reward,
{ "Reward", "woww.reward",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_reward_spell,
{ "Reward Spell", "woww.reward.spell",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_reward_spell_cast,
{ "Reward Spell Cast", "woww.reward.spell.cast",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_rights,
{ "Rights", "woww.rights",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_roll_number,
{ "Roll Number", "woww.roll.number",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_roll_vote,
{ "Roll Vote", "woww.roll.vote",
FT_UINT8, BASE_HEX_DEC, VALS(e_roll_vote_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_round_time_in_ms,
{ "Round Time In Ms", "woww.round.time.in.ms",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_running_speed,
{ "Running Speed", "woww.running.speed",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_scale,
{ "Scale", "woww.scale",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_search_strings,
{ "Search Strings", "woww.search.strings",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_searched_name,
{ "Searched Name", "woww.searched.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_self_player,
{ "Self Player", "woww.self.player",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_sell_item_result,
{ "Sell Item Result", "woww.sell.item.result",
FT_UINT8, BASE_HEX_DEC, VALS(e_sell_item_result_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_sell_price,
{ "Sell Price", "woww.sell.price",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_sender,
{ "Sender", "woww.sender",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_sender_id,
{ "Sender Id", "woww.sender.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_sender_name,
{ "Sender Name", "woww.sender.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_sequence_id,
{ "Sequence Id", "woww.sequence.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_server_id,
{ "Server Id", "woww.server.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_server_message_type,
{ "Server Message Type", "woww.server.message.type",
FT_UINT32, BASE_HEX_DEC, VALS(e_server_message_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_server_seed,
{ "Server Seed", "woww.server.seed",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_set_assistant,
{ "Set Assistant", "woww.set.assistant",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_shadow_resistance,
{ "Shadow Resistance", "woww.shadow.resistance",
FT_INT32, BASE_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_sheath,
{ "Sheath", "woww.sheath",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_sheath_state,
{ "Sheath State", "woww.sheath.state",
FT_UINT8, BASE_HEX_DEC, VALS(e_sheath_state_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_signer,
{ "Signer", "woww.signer",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_simple_spell_cast_result,
{ "Simple Spell Cast Result", "woww.simple.spell.cast.result",
FT_UINT8, BASE_HEX_DEC, VALS(e_simple_spell_cast_result_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_sin_angle,
{ "Sin Angle", "woww.sin.angle",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_skill_id,
{ "Skill Id", "woww.skill.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_skin,
{ "Skin", "woww.skin",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_skin_color,
{ "Skin Color", "woww.skin.color",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_slot,
{ "Slot", "woww.slot",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_slot_id,
{ "Slot Id", "woww.slot.id",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_slot_index,
{ "Slot Index", "woww.slot.index",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_sound_id,
{ "Sound Id", "woww.sound.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_source_bag,
{ "Source Bag", "woww.source.bag",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_source_item_id,
{ "Source Item Id", "woww.source.item.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_source_node,
{ "Source Node", "woww.source.node",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_source_position_x,
{ "Source Position X", "woww.source.position.x",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_source_position_y,
{ "Source Position Y", "woww.source.position.y",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_source_position_z,
{ "Source Position Z", "woww.source.position.z",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_source_slot,
{ "Source Slot", "woww.source.slot",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_speech_bubble_credit,
{ "Speech Bubble Credit", "woww.speech.bubble.credit",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_speed,
{ "Speed", "woww.speed",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell,
{ "Spell", "woww.spell",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_art_kit,
{ "Spell Art Kit", "woww.spell.art.kit",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_cast_result,
{ "Spell Cast Result", "woww.spell.cast.result",
FT_UINT8, BASE_HEX_DEC, VALS(e_spell_cast_result_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_spell_cast_target_flags,
{ "Spell Cast Target Flags", "woww.spell.cast.target.flags",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_category,
{ "Spell Category", "woww.spell.category",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_category_cooldown,
{ "Spell Category Cooldown", "woww.spell.category.cooldown",
FT_INT32, BASE_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_chain_previous,
{ "Spell Chain Previous", "woww.spell.chain.previous",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_chain_required,
{ "Spell Chain Required", "woww.spell.chain.required",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_charges,
{ "Spell Charges", "woww.spell.charges",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_cooldown,
{ "Spell Cooldown", "woww.spell.cooldown",
FT_INT32, BASE_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_cost,
{ "Spell Cost", "woww.spell.cost",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_count,
{ "Spell Count", "woww.spell.count",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_data_id,
{ "Spell Data Id", "woww.spell.data.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_effect,
{ "Spell Effect", "woww.spell.effect",
FT_UINT32, BASE_HEX_DEC, VALS(e_spell_effect_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_spell_effect_item_type,
{ "Spell Effect Item Type", "woww.spell.effect.item.type",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_id,
{ "Spell Id", "woww.spell.id",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_index,
{ "Spell Index", "woww.spell.index",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_miss_info,
{ "Spell Miss Info", "woww.spell.miss.info",
FT_UINT32, BASE_HEX_DEC, VALS(e_spell_miss_info_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_spell_on_lowest_slot,
{ "Spell On Lowest Slot", "woww.spell.on.lowest.slot",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_ppm_rate,
{ "Spell Ppm Rate", "woww.spell.ppm.rate",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_school,
{ "Spell School", "woww.spell.school",
FT_UINT8, BASE_HEX_DEC, VALS(e_spell_school_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_spell_school_mask,
{ "Spell School Mask", "woww.spell.school.mask",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_trigger,
{ "Spell Trigger", "woww.spell.trigger",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spell_visual_kit,
{ "Spell Visual Kit", "woww.spell.visual.kit",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spells,
{ "Spells", "woww.spells",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spirit,
{ "Spirit", "woww.spirit",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spline_elevation,
{ "Spline Elevation", "woww.spline.elevation",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spline_flag,
{ "Spline Flag", "woww.spline.flag",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_spline_id,
{ "Spline Id", "woww.spline.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_stable_result,
{ "Stable Result", "woww.stable.result",
FT_UINT8, BASE_HEX_DEC, VALS(e_stable_result_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_stable_slots,
{ "Stable Slots", "woww.stable.slots",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_stack_count,
{ "Stack Count", "woww.stack.count",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_stackable,
{ "Stackable", "woww.stackable",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_stamina,
{ "Stamina", "woww.stamina",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_standing,
{ "Standing", "woww.standing",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_start_bid,
{ "Start Bid", "woww.start.bid",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_start_from_page,
{ "Start From Page", "woww.start.from.page",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_start_quest,
{ "Start Quest", "woww.start.quest",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_starting_bid,
{ "Starting Bid", "woww.starting.bid",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_state,
{ "State", "woww.state",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_stationery,
{ "Stationery", "woww.stationery",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_status,
{ "Status", "woww.status",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_status_id,
{ "Status Id", "woww.status.id",
FT_UINT8, BASE_HEX_DEC, VALS(e_status_id_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_strength,
{ "Strength", "woww.strength",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_string,
{ "String", "woww.string",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_sub_name,
{ "Sub Name", "woww.sub.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_subject,
{ "Subject", "woww.subject",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_suggestion,
{ "Suggestion", "woww.suggestion",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_summoner_guid,
{ "Summoner Guid", "woww.summoner.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_survey_id,
{ "Survey Id", "woww.survey.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_swap_with_name,
{ "Swap With Name", "woww.swap.with.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_swimming_speed,
{ "Swimming Speed", "woww.swimming.speed",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_talent_id,
{ "Talent Id", "woww.talent.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_talent_point_cost,
{ "Talent Point Cost", "woww.talent.point.cost",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_talent_reset_cost,
{ "Talent Reset Cost", "woww.talent.reset.cost",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_target,
{ "Target", "woww.target",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_target_error,
{ "Target Error", "woww.target.error",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_target_guid,
{ "Target Guid", "woww.target.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_target_player,
{ "Target Player", "woww.target.player",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_target_string,
{ "Target String", "woww.target.string",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_targets,
{ "Targets", "woww.targets",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_taxi_mask_node_known,
{ "Taxi Mask Node Known", "woww.taxi.mask.node.known",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_text,
{ "Text", "woww.text",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_text_emote,
{ "Text Emote", "woww.text.emote",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_text_id,
{ "Text Id", "woww.text.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_texts,
{ "Texts", "woww.texts",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_this_week_honor,
{ "This Week Honor", "woww.this.week.honor",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_this_week_honorable,
{ "This Week Honorable", "woww.this.week.honorable",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_time,
{ "Time", "woww.time",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_time_in_msec,
{ "Time In Msec", "woww.time.in.msec",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_time_in_msecs,
{ "Time In Msecs", "woww.time.in.msecs",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_time_in_queue_in_ms,
{ "Time In Queue In Ms", "woww.time.in.queue.in.ms",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_time_in_seconds,
{ "Time In Seconds", "woww.time.in.seconds",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_time_left,
{ "Time Left", "woww.time.left",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_time_left_in_msecs,
{ "Time Left In Msecs", "woww.time.left.in.msecs",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_time_offline,
{ "Time Offline", "woww.time.offline",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_time_passed,
{ "Time Passed", "woww.time.passed",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_time_remaining,
{ "Time Remaining", "woww.time.remaining",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_time_to_bg_autoleave_in_ms,
{ "Time To Bg Autoleave In Ms", "woww.time.to.bg.autoleave.in.ms",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_time_to_bg_start_in_ms,
{ "Time To Bg Start In Ms", "woww.time.to.bg.start.in.ms",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_time_to_remove_in_queue_in_ms,
{ "Time To Remove In Queue In Ms", "woww.time.to.remove.in.queue.in.ms",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_timer,
{ "Timer", "woww.timer",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_timer_type,
{ "Timer Type", "woww.timer.type",
FT_UINT32, BASE_HEX_DEC, VALS(e_timer_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_timescale,
{ "Timescale", "woww.timescale",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_timestamp,
{ "Timestamp", "woww.timestamp",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_title,
{ "Title", "woww.title",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_title_text_id,
{ "Title Text Id", "woww.title.text.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_today_honorable_and_dishonorable,
{ "Today Honorable And Dishonorable", "woww.today.honorable.and.dishonorable",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_todo_amount_of_signers,
{ "Todo Amount Of Signers", "woww.todo.amount.of.signers",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_total_amount_of_auctions,
{ "Total Amount Of Auctions", "woww.total.amount.of.auctions",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_total_cost,
{ "Total Cost", "woww.total.cost",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_total_damage,
{ "Total Damage", "woww.total.damage",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_total_exp,
{ "Total Exp", "woww.total.exp",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_total_played_time,
{ "Total Played Time", "woww.total.played.time",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_trade_slot,
{ "Trade Slot", "woww.trade.slot",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_trade_slot_count,
{ "Trade Slot Count", "woww.trade.slot.count",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_trade_slot_number,
{ "Trade Slot Number", "woww.trade.slot.number",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_trade_status,
{ "Trade Status", "woww.trade.status",
FT_UINT32, BASE_HEX_DEC, VALS(e_trade_status_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_trainer_spell_state,
{ "Trainer Spell State", "woww.trainer.spell.state",
FT_UINT8, BASE_HEX_DEC, VALS(e_trainer_spell_state_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_trainer_type,
{ "Trainer Type", "woww.trainer.type",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_training_failure_reason,
{ "Training Failure Reason", "woww.training.failure.reason",
FT_UINT32, BASE_HEX_DEC, VALS(e_training_failure_reason_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_transfer_abort_reason,
{ "Transfer Abort Reason", "woww.transfer.abort.reason",
FT_UINT8, BASE_HEX_DEC, VALS(e_transfer_abort_reason_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_transport,
{ "Transport", "woww.transport",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_transport_progress_in_ms,
{ "Transport Progress In Ms", "woww.transport.progress.in.ms",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_trigger_id,
{ "Trigger Id", "woww.trigger.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_turn_rate,
{ "Turn Rate", "woww.turn.rate",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_tutorial_data,
{ "Tutorial Data", "woww.tutorial.data",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_tutorial_flag,
{ "Tutorial Flag", "woww.tutorial.flag",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_type_flags,
{ "Type Flags", "woww.type.flags",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_unimplemented,
{ "Unimplemented", "woww.unimplemented",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_unit_enemy_target,
{ "Unit Enemy Target", "woww.unit.enemy.target",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_unit_stand_state,
{ "Unit Stand State", "woww.unit.stand.state",
FT_UINT8, BASE_HEX_DEC, VALS(e_unit_stand_state_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_unit_target,
{ "Unit Target", "woww.unit.target",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_unknown_bytes,
{ "Unknown Bytes", "woww.unknown.bytes",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_unknown_flags,
{ "Unknown Flags", "woww.unknown.flags",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_unknown_float,
{ "Unknown Float", "woww.unknown.float",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_unknown_guid,
{ "Unknown Guid", "woww.unknown.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_unknown_int,
{ "Unknown Int", "woww.unknown.int",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_unread_mails,
{ "Unread Mails", "woww.unread.mails",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_unused,
{ "Unused", "woww.unused",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_update_available_flag,
{ "Update Available Flag", "woww.update.available.flag",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_update_flag,
{ "Update Flag", "woww.update.flag",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_update_type,
{ "Update Type", "woww.update.type",
FT_UINT8, BASE_HEX_DEC, VALS(e_update_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_url,
{ "Url", "woww.url",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_url_info,
{ "Url Info", "woww.url.info",
FT_UINT8, BASE_HEX_DEC, VALS(e_url_info_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_usable,
{ "Usable", "woww.usable",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_username,
{ "Username", "woww.username",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_v_cos,
{ "V Cos", "woww.v.cos",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_v_sin,
{ "V Sin", "woww.v.sin",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_value,
{ "Value", "woww.value",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_vendor,
{ "Vendor", "woww.vendor",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_vendor_guid,
{ "Vendor Guid", "woww.vendor.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_vendor_slot,
{ "Vendor Slot", "woww.vendor.slot",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_vertical_speed,
{ "Vertical Speed", "woww.vertical.speed",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_victim,
{ "Victim", "woww.victim",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_victim_guid,
{ "Victim Guid", "woww.victim.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_walking_speed,
{ "Walking Speed", "woww.walking.speed",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_weather_change_type,
{ "Weather Change Type", "woww.weather.change.type",
FT_UINT8, BASE_HEX_DEC, VALS(e_weather_change_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_weather_type,
{ "Weather Type", "woww.weather.type",
FT_UINT32, BASE_HEX_DEC, VALS(e_weather_type_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_winning_player_guid,
{ "Winning Player Guid", "woww.winning.player.guid",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_winning_roll,
{ "Winning Roll", "woww.winning.roll",
FT_UINT8, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_wiping_npc,
{ "Wiping Npc", "woww.wiping.npc",
FT_UINT64, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_won,
{ "Won", "woww.won",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_world_result,
{ "World Result", "woww.world.result",
FT_UINT8, BASE_HEX_DEC, VALS(e_world_result_strings), 0,
NULL, HFILL
}
},
{ &hf_woww_x,
{ "X", "woww.x",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_xy_speed,
{ "Xy Speed", "woww.xy.speed",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_y,
{ "Y", "woww.y",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_yesterday_honor,
{ "Yesterday Honor", "woww.yesterday.honor",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_yesterday_honorable,
{ "Yesterday Honorable", "woww.yesterday.honorable",
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_z,
{ "Z", "woww.z",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_z_speed,
{ "Z Speed", "woww.z.speed",
FT_FLOAT, BASE_NONE, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_zone_id,
{ "Zone Id", "woww.zone.id",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_zone_or_sort,
{ "Zone Or Sort", "woww.zone.or.sort",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
{ &hf_woww_zones,
{ "Zones", "woww.zones",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
NULL, HFILL
}
},
/* AUTOGENERATED_END_REGISTER */
};
static gint *ett[] = {
&ett_woww,
&ett_message,
&ett_character
};
proto_woww = proto_register_protocol("World of Warcraft World",
"WOWW", "woww");
proto_register_field_array(proto_woww, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
prefs_register_protocol(proto_woww, NULL);
}
void
proto_reg_handoff_woww(void)
{
dissector_handle_t woww_handle = create_dissector_handle(dissect_woww, proto_woww);
dissector_add_for_decode_as("tcp.port", woww_handle);
}
/*
* Editor modelines - https://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 4
* tab-width: 8
* indent-tabs-mode: nil
* End:
*
* vi: set shiftwidth=4 tabstop=8 expandtab:
* :indentSize=4:tabSize=8:noTabs=true:
*/