diff --git a/epan/dissectors/packet-woww.c b/epan/dissectors/packet-woww.c index 6ac446c3d6..6c94d856ef 100644 --- a/epan/dissectors/packet-woww.c +++ b/epan/dissectors/packet-woww.c @@ -67,80 +67,805 @@ static int proto_woww = -1; static int hf_woww_size = -1; static int hf_woww_opcode = -1; -/* static int hf_woww_string_length = -1; */ +static int hf_woww_string_length = -1; /* AUTOGENERATED_START_HF */ -/* SMSG_AUTH_CHALLENGE */ -static int hf_woww_challenge_seed = -1; - -/* CMSG_AUTH_SESSION */ -static int hf_woww_build = -1; -static int hf_woww_server_id = -1; -static int hf_woww_account_name = -1; -static int hf_woww_client_proof = -1; -static int hf_woww_decompressed_addon_size = -1; -static int hf_woww_addon_info = -1; - -/* SMSG_CHAR_ENUM */ +static int hf_woww_absorb = -1; +static int hf_woww_absorbed = -1; +static int hf_woww_absorbed_damage = -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_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_character_area = -1; -static int hf_woww_character_map = -1; -static int hf_woww_character_guild_id = -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_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_flag_carriers = -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_outbidded_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_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_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_quality = -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_battle_ground_type_id = -1; +static int hf_woww_battlefield_port_action = -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_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_name = -1; +static int hf_woww_channel_password = -1; static int hf_woww_character_flags = -1; -static int hf_woww_character_first_login = -1; -static int hf_woww_character_pet_display_id = -1; -static int hf_woww_character_pet_level = -1; -static int hf_woww_character_pet_family = -1; -static int hf_woww_character_equipment_display_id = -1; -static int hf_woww_character_equipment_inventory_type = -1; - -/* SMSG_TUTORIAL_FLAGS */ -static int hf_woww_tutorial_flag = -1; - -/* CMSG_PING */ -static int hf_woww_latency = -1; -/* CMSG_PING and SMSG_PONG */ -static int hf_woww_sequence_id = -1; - -/* CMSG_CHAR_CREATE */ -static int hf_woww_starting_outfit = -1; - -/* Multiple */ -static int hf_woww_character_level = -1; -static int hf_woww_character_position_x = -1; -static int hf_woww_character_position_y = -1; -static int hf_woww_character_position_z = -1; -static int hf_woww_character_orientation = -1; -static int hf_woww_result = -1; -static int hf_woww_character_name = -1; -static int hf_woww_realm_name = -1; -static int hf_woww_character_race = -1; -static int hf_woww_character_class = -1; -static int hf_woww_character_gender = -1; static int hf_woww_character_guid = -1; -static int hf_woww_character_skin = -1; -static int hf_woww_character_face = -1; -static int hf_woww_character_hairstyle = -1; -static int hf_woww_character_haircolor = -1; -static int hf_woww_character_facialhair = -1; -static int hf_woww_timestamp = -1; - -/* Movement */ +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_compressed_addon_info = -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_maximum = -1; +static int hf_woww_damage_minimum = -1; +static int hf_woww_damage_type = -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_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_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_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_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_guid = -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_member_flags = -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_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_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_movement_swim_pitch = -1; -static int hf_woww_movement_fallen_time = -1; -static int hf_woww_movement_jump_velocity = -1; -static int hf_woww_movement_jump_cos_anchor_pitch = -1; -static int hf_woww_movement_jump_sin_anchor_pitch = -1; -static int hf_woww_movement_jump_current_speed = -1; -static int hf_woww_movement_fall_start_elevation = -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_guid = -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_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_petition_turn_in_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_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_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_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_skip = -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_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_stack_size = -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_player_guid = -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_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_flag = -1; +static int hf_woww_update_type = -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_will_accept_tickets = -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_MOVEMENT_FALLING 0x00002000 -#define WOWW_MOVEMENT_SWIMMING 0x00200000 -#define WOWW_MOVEMENT_ON_TRANSPORT 0x02000000 -#define WOWW_MOVEMENT_FALL_START_ELEVATION 0x04000000 - #define WOWW_TCP_PORT 8085 #define WOWW_CLIENT_TO_SERVER pinfo->destport == WOWW_TCP_PORT @@ -206,1332 +931,1611 @@ typedef struct { /* AUTOGENERATED_START_ENUM */ typedef enum { - HUMAN = 1, - ORC = 2, - DWARF = 3, - NIGHT_ELF = 4, - UNDEAD = 5, - TAUREN = 6, - GNOME = 7, - TROLL = 8, - GOBLIN = 9, -} races; - -static const value_string races_strings[] = { - { HUMAN, "Human" }, - { ORC, "Orc" }, - { DWARF, "Dwarf" }, - { NIGHT_ELF, "Night Elf" }, - { UNDEAD, "Undead" }, - { TAUREN, "Tauren" }, - { GNOME, "Gnome" }, - { TROLL, "Troll" }, - { GOBLIN, "Goblin" }, + 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 { - WARRIOR = 1, - PALADIN = 2, - HUNTER = 3, - ROGUE = 4, - PRIEST = 5, - SHAMAN = 7, - MAGE = 8, - WARLOCK = 9, - DRUID = 11, -} classes; - -static const value_string classes_strings[] = { - { WARRIOR, "Warrior" }, - { PALADIN, "Paladin" }, - { HUNTER, "Hunter" }, - { ROGUE, "Rogue" }, - { PRIEST, "Priest" }, - { SHAMAN, "Shaman" }, - { MAGE, "Mage" }, - { WARLOCK, "Warlock" }, - { DRUID, "Druid" }, - { 0, NULL } -}; - -typedef enum { - MALE = 0, - FEMALE = 1, -} genders; - -static const value_string genders_strings[] = { - { MALE, "Male" }, - { FEMALE, "Female" }, - { 0, NULL } -}; - -typedef enum { - RESPONSE_SUCCESS = 0x00, - RESPONSE_FAILURE = 0x01, - RESPONSE_CANCELLED = 0x02, - RESPONSE_DISCONNECTED = 0x03, - RESPONSE_FAILED_TO_CONNECT = 0x04, - RESPONSE_CONNECTED = 0x05, - RESPONSE_VERSION_MISMATCH = 0x06, - CSTATUS_CONNECTING = 0x07, - CSTATUS_NEGOTIATING_SECURITY = 0x08, - CSTATUS_NEGOTIATION_COMPLETE = 0x09, - CSTATUS_NEGOTIATION_FAILED = 0x0A, - CSTATUS_AUTHENTICATING = 0x0B, - AUTH_OK = 0x0C, - AUTH_FAILED = 0x0D, - AUTH_REJECT = 0x0E, - AUTH_BAD_SERVER_PROOF = 0x0F, - AUTH_UNAVAILABLE = 0x10, - AUTH_SYSTEM_ERROR = 0x11, - AUTH_BILLING_ERROR = 0x12, - AUTH_BILLING_EXPIRED = 0x13, - AUTH_VERSION_MISMATCH = 0x14, - AUTH_UNKNOWN_ACCOUNT = 0x15, - AUTH_INCORRECT_PASSWORD = 0x16, - AUTH_SESSION_EXPIRED = 0x17, - AUTH_SERVER_SHUTTING_DOWN = 0x18, - AUTH_ALREADY_LOGGING_IN = 0x19, - AUTH_LOGIN_SERVER_NOT_FOUND = 0x1A, - AUTH_WAIT_QUEUE = 0x1B, - AUTH_BANNED = 0x1C, - AUTH_ALREADY_ONLINE = 0x1D, - AUTH_NO_TIME = 0x1E, - AUTH_DB_BUSY = 0x1F, - AUTH_SUSPENDED = 0x20, - AUTH_PARENTAL_CONTROL = 0x21, - REALM_LIST_IN_PROGRESS = 0x22, - REALM_LIST_SUCCESS = 0x23, - REALM_LIST_FAILED = 0x24, - REALM_LIST_INVALID = 0x25, - REALM_LIST_REALM_NOT_FOUND = 0x26, - ACCOUNT_CREATE_IN_PROGRESS = 0x27, - ACCOUNT_CREATE_SUCCESS = 0x28, - ACCOUNT_CREATE_FAILED = 0x29, - CHAR_LIST_RETRIEVING = 0x2A, - CHAR_LIST_RETRIEVED = 0x2B, - CHAR_LIST_FAILED = 0x2C, - CHAR_CREATE_IN_PROGRESS = 0x2D, - CHAR_CREATE_SUCCESS = 0x2E, - CHAR_CREATE_ERROR = 0x2F, - CHAR_CREATE_FAILED = 0x30, - CHAR_CREATE_NAME_IN_USE = 0x31, - CHAR_CREATE_DISABLED = 0x32, - CHAR_CREATE_PVP_TEAMS_VIOLATION = 0x33, - CHAR_CREATE_SERVER_LIMIT = 0x34, - CHAR_CREATE_ACCOUNT_LIMIT = 0x35, - CHAR_CREATE_SERVER_QUEUE = 0x36, - CHAR_CREATE_ONLY_EXISTING = 0x37, - CHAR_DELETE_IN_PROGRESS = 0x38, - CHAR_DELETE_SUCCESS = 0x39, - CHAR_DELETE_FAILED = 0x3A, - CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER = 0x3B, - CHAR_LOGIN_IN_PROGRESS = 0x3C, - CHAR_LOGIN_SUCCESS = 0x3D, - CHAR_LOGIN_NO_WORLD = 0x3E, - CHAR_LOGIN_DUPLICATE_CHARACTER = 0x3F, - CHAR_LOGIN_NO_INSTANCES = 0x40, - CHAR_LOGIN_FAILED = 0x41, - CHAR_LOGIN_DISABLED = 0x42, - CHAR_LOGIN_NO_CHARACTER = 0x43, - CHAR_LOGIN_LOCKED_FOR_TRANSFER = 0x44, - CHAR_NAME_NO_NAME = 0x45, - CHAR_NAME_TOO_SHORT = 0x46, - CHAR_NAME_TOO_LONG = 0x47, - CHAR_NAME_ONLY_LETTERS = 0x48, - CHAR_NAME_MIXED_LANGUAGES = 0x49, - CHAR_NAME_PROFANE = 0x4A, - CHAR_NAME_RESERVED = 0x4B, - CHAR_NAME_INVALID_APOSTROPHE = 0x4C, - CHAR_NAME_MULTIPLE_APOSTROPHES = 0x4D, - CHAR_NAME_THREE_CONSECUTIVE = 0x4E, - CHAR_NAME_INVALID_SPACE = 0x4F, - CHAR_NAME_SUCCESS = 0x50, - CHAR_NAME_FAILURE = 0x51 -} account_result_values; - -static const value_string account_result_strings[] = { - { RESPONSE_SUCCESS, "RESPONSE_SUCCESS" }, - { RESPONSE_FAILURE, "RESPONSE_FAILURE" }, - { RESPONSE_CANCELLED, "RESPONSE_CANCELLED" }, - { RESPONSE_DISCONNECTED, "RESPONSE_DISCONNECTED" }, - { RESPONSE_FAILED_TO_CONNECT, "RESPONSE_FAILED_TO_CONNECT" }, - { RESPONSE_CONNECTED, "RESPONSE_CONNECTED" }, - { RESPONSE_VERSION_MISMATCH, "RESPONSE_VERSION_MISMATCH" }, - { CSTATUS_CONNECTING, "CSTATUS_CONNECTING" }, - { CSTATUS_NEGOTIATING_SECURITY, "CSTATUS_NEGOTIATING_SECURITY" }, - { CSTATUS_NEGOTIATION_COMPLETE, "CSTATUS_NEGOTIATION_COMPLETE" }, - { CSTATUS_NEGOTIATION_FAILED, "CSTATUS_NEGOTIATION_FAILED" }, - { CSTATUS_AUTHENTICATING, "CSTATUS_AUTHENTICATING" }, - { AUTH_OK, "AUTH_OK" }, - { AUTH_FAILED, "AUTH_FAILED" }, - { AUTH_REJECT, "AUTH_REJECT" }, - { AUTH_BAD_SERVER_PROOF, "AUTH_BAD_SERVER_PROOF" }, - { AUTH_UNAVAILABLE, "AUTH_UNAVAILABLE" }, - { AUTH_SYSTEM_ERROR, "AUTH_SYSTEM_ERROR" }, - { AUTH_BILLING_ERROR, "AUTH_BILLING_ERROR" }, - { AUTH_BILLING_EXPIRED, "AUTH_BILLING_EXPIRED" }, - { AUTH_VERSION_MISMATCH, "AUTH_VERSION_MISMATCH" }, - { AUTH_UNKNOWN_ACCOUNT, "AUTH_UNKNOWN_ACCOUNT" }, - { AUTH_INCORRECT_PASSWORD, "AUTH_INCORRECT_PASSWORD" }, - { AUTH_SESSION_EXPIRED, "AUTH_SESSION_EXPIRED" }, - { AUTH_SERVER_SHUTTING_DOWN, "AUTH_SERVER_SHUTTING_DOWN" }, - { AUTH_ALREADY_LOGGING_IN, "AUTH_ALREADY_LOGGING_IN" }, - { AUTH_LOGIN_SERVER_NOT_FOUND, "AUTH_LOGIN_SERVER_NOT_FOUND" }, - { AUTH_WAIT_QUEUE, "AUTH_WAIT_QUEUE" }, - { AUTH_BANNED, "AUTH_BANNED" }, - { AUTH_ALREADY_ONLINE, "AUTH_ALREADY_ONLINE" }, - { AUTH_NO_TIME, "AUTH_NO_TIME" }, - { AUTH_DB_BUSY, "AUTH_DB_BUSY" }, - { AUTH_SUSPENDED, "AUTH_SUSPENDED" }, - { AUTH_PARENTAL_CONTROL, "AUTH_PARENTAL_CONTROL" }, - { REALM_LIST_IN_PROGRESS, "REALM_LIST_IN_PROGRESS" }, - { REALM_LIST_SUCCESS, "REALM_LIST_SUCCESS" }, - { REALM_LIST_FAILED, "REALM_LIST_FAILED" }, - { REALM_LIST_INVALID, "REALM_LIST_INVALID" }, - { REALM_LIST_REALM_NOT_FOUND, "REALM_LIST_REALM_NOT_FOUND" }, - { ACCOUNT_CREATE_IN_PROGRESS, "ACCOUNT_CREATE_IN_PROGRESS" }, - { ACCOUNT_CREATE_SUCCESS, "ACCOUNT_CREATE_SUCCESS" }, - { ACCOUNT_CREATE_FAILED, "ACCOUNT_CREATE_FAILED" }, - { CHAR_LIST_RETRIEVING, "CHAR_LIST_RETRIEVING" }, - { CHAR_LIST_RETRIEVED, "CHAR_LIST_RETRIEVED" }, - { CHAR_LIST_FAILED, "CHAR_LIST_FAILED" }, - { CHAR_CREATE_IN_PROGRESS, "CHAR_CREATE_IN_PROGRESS" }, - { CHAR_CREATE_SUCCESS, "CHAR_CREATE_SUCCESS" }, - { CHAR_CREATE_ERROR, "CHAR_CREATE_ERROR" }, - { CHAR_CREATE_FAILED, "CHAR_CREATE_FAILED" }, - { CHAR_CREATE_NAME_IN_USE, "CHAR_CREATE_NAME_IN_USE" }, - { CHAR_CREATE_DISABLED, "CHAR_CREATE_DISABLED" }, - { CHAR_CREATE_PVP_TEAMS_VIOLATION, "CHAR_CREATE_PVP_TEAMS_VIOLATION" }, - { CHAR_CREATE_SERVER_LIMIT, "CHAR_CREATE_SERVER_LIMIT" }, - { CHAR_CREATE_ACCOUNT_LIMIT, "CHAR_CREATE_ACCOUNT_LIMIT" }, - { CHAR_CREATE_SERVER_QUEUE, "CHAR_CREATE_SERVER_QUEUE" }, - { CHAR_CREATE_ONLY_EXISTING, "CHAR_CREATE_ONLY_EXISTING" }, - { CHAR_DELETE_IN_PROGRESS, "CHAR_DELETE_IN_PROGRESS" }, - { CHAR_DELETE_SUCCESS, "CHAR_DELETE_SUCCESS" }, - { CHAR_DELETE_FAILED, "CHAR_DELETE_FAILED" }, - { CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER, "CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER" }, - { CHAR_LOGIN_IN_PROGRESS, "CHAR_LOGIN_IN_PROGRESS" }, - { CHAR_LOGIN_SUCCESS, "CHAR_LOGIN_SUCCESS" }, - { CHAR_LOGIN_NO_WORLD, "CHAR_LOGIN_NO_WORLD" }, - { CHAR_LOGIN_DUPLICATE_CHARACTER, "CHAR_LOGIN_DUPLICATE_CHARACTER" }, - { CHAR_LOGIN_NO_INSTANCES, "CHAR_LOGIN_NO_INSTANCES" }, - { CHAR_LOGIN_FAILED, "CHAR_LOGIN_FAILED" }, - { CHAR_LOGIN_DISABLED, "CHAR_LOGIN_DISABLED" }, - { CHAR_LOGIN_NO_CHARACTER, "CHAR_LOGIN_NO_CHARACTER" }, - { CHAR_LOGIN_LOCKED_FOR_TRANSFER, "CHAR_LOGIN_LOCKED_FOR_TRANSFER" }, - { CHAR_NAME_NO_NAME, "CHAR_NAME_NO_NAME" }, - { CHAR_NAME_TOO_SHORT, "CHAR_NAME_TOO_SHORT" }, - { CHAR_NAME_TOO_LONG, "CHAR_NAME_TOO_LONG" }, - { CHAR_NAME_ONLY_LETTERS, "CHAR_NAME_ONLY_LETTERS" }, - { CHAR_NAME_MIXED_LANGUAGES, "CHAR_NAME_MIXED_LANGUAGES" }, - { CHAR_NAME_PROFANE, "CHAR_NAME_PROFANE" }, - { CHAR_NAME_RESERVED, "CHAR_NAME_RESERVED" }, - { CHAR_NAME_INVALID_APOSTROPHE, "CHAR_NAME_INVALID_APOSTROPHE" }, - { CHAR_NAME_MULTIPLE_APOSTROPHES, "CHAR_NAME_MULTIPLE_APOSTROPHES" }, - { CHAR_NAME_THREE_CONSECUTIVE, "CHAR_NAME_THREE_CONSECUTIVE" }, - { CHAR_NAME_INVALID_SPACE, "CHAR_NAME_INVALID_SPACE" }, - { CHAR_NAME_SUCCESS, "CHAR_NAME_SUCCESS" }, - { CHAR_NAME_FAILURE, "CHAR_NAME_FAILURE" }, + 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 -{ - AREA_DUN_MOROGH = 1, - AREA_LONGSHORE = 2, - AREA_BADLANDS = 3, - AREA_BLASTED_LANDS = 4, - AREA_BLACKWATER_COVE = 7, - AREA_SWAMP_OF_SORROWS = 8, - AREA_NORTHSHIRE_VALLEY = 9, - AREA_DUSKWOOD = 10, - AREA_WETLANDS = 11, - AREA_ELWYNN_FOREST = 12, - AREA_THE_WORLD_TREE = 13, - AREA_DUROTAR = 14, - AREA_DUSTWALLOW_MARSH = 15, - AREA_AZSHARA = 16, - AREA_THE_BARRENS = 17, - AREA_CRYSTAL_LAKE = 18, - AREA_ZULGURUB = 19, - AREA_MOONBROOK = 20, - AREA_KUL_TIRAS = 21, - AREA_PROGRAMMER_ISLE = 22, - AREA_NORTHSHIRE_RIVER = 23, - AREA_NORTHSHIRE_ABBEY = 24, - AREA_BLACKROCK_MOUNTAIN = 25, - AREA_LIGHTHOUSE = 26, - AREA_WESTERN_PLAGUELANDS = 28, - AREA_NINE = 30, - AREA_THE_CEMETARY = 32, - AREA_STRANGLETHORN_VALE = 33, - AREA_ECHO_RIDGE_MINE = 34, - AREA_BOOTY_BAY = 35, - AREA_ALTERAC_MOUNTAINS = 36, - AREA_LAKE_NAZFERITI = 37, - AREA_LOCH_MODAN = 38, - AREA_WESTFALL = 40, - AREA_DEADWIND_PASS = 41, - AREA_DARKSHIRE = 42, - AREA_WILD_SHORE = 43, - AREA_REDRIDGE_MOUNTAINS = 44, - AREA_ARATHI_HIGHLANDS = 45, - AREA_BURNING_STEPPES = 46, - AREA_THE_HINTERLANDS = 47, - AREA_DEAD_MANS_HOLE = 49, - AREA_SEARING_GORGE = 51, - AREA_THIEVES_CAMP = 53, - AREA_JASPERLODE_MINE = 54, - AREA_VALLEY_OF_HEROES_UNUSED = 55, - AREA_HEROES_VIGIL = 56, - AREA_FARGODEEP_MINE = 57, - AREA_NORTHSHIRE_VINEYARDS = 59, - AREA_FORESTS_EDGE = 60, - AREA_THUNDER_FALLS = 61, - AREA_BRACKWELL_PUMPKIN_PATCH = 62, - AREA_THE_STONEFIELD_FARM = 63, - AREA_THE_MACLURE_VINEYARDS = 64, - AREA_ON_MAP_DUNGEON = 65, - AREA_ON_MAP_DUNGEON1 = 66, - AREA_ON_MAP_DUNGEON2 = 67, - AREA_LAKE_EVERSTILL = 68, - AREA_LAKESHIRE = 69, - AREA_STONEWATCH = 70, - AREA_STONEWATCH_FALLS = 71, - AREA_DARK_PORTAL = 72, - AREA_THE_TAINTED_SCAR = 73, - AREA_POOL_OF_TEARS = 74, - AREA_STONARD = 75, - AREA_FALLOW_SANCTUARY = 76, - AREA_ANVILMAR = 77, - AREA_STORMWIND_MOUNTAINS = 80, - AREA_JEFF_NE_QUADRANT_CHANGED = 81, - AREA_JEFF_NW_QUADRANT = 82, - AREA_JEFF_SE_QUADRANT = 83, - AREA_JEFF_SW_QUADRANT = 84, - AREA_TIRISFAL_GLADES = 85, - AREA_STONE_CAIRN_LAKE = 86, - AREA_GOLDSHIRE = 87, - AREA_EASTVALE_LOGGING_CAMP = 88, - AREA_MIRROR_LAKE_ORCHARD = 89, - AREA_TOWER_OF_AZORA = 91, - AREA_MIRROR_LAKE = 92, - AREA_VULGOL_OGRE_MOUND = 93, - AREA_RAVEN_HILL = 94, - AREA_REDRIDGE_CANYONS = 95, - AREA_TOWER_OF_ILGALAR = 96, - AREA_ALTHERS_MILL = 97, - AREA_RETHBAN_CAVERNS = 98, - AREA_REBEL_CAMP = 99, - AREA_NESINGWARYS_EXPEDITION = 100, - AREA_KURZENS_COMPOUND = 101, - AREA_RUINS_OF_ZULKUNDA = 102, - AREA_RUINS_OF_ZULMAMWE = 103, - AREA_THE_VILE_REEF = 104, - AREA_MOSHOGG_OGRE_MOUND = 105, - AREA_THE_STOCKPILE = 106, - AREA_SALDEANS_FARM = 107, - AREA_SENTINEL_HILL = 108, - AREA_FURLBROWS_PUMPKIN_FARM = 109, - AREA_JANGOLODE_MINE = 111, - AREA_GOLD_COAST_QUARRY = 113, - AREA_WESTFALL_LIGHTHOUSE = 115, - AREA_MISTY_VALLEY = 116, - AREA_GROMGOL_BASE_CAMP = 117, - AREA_WHELGARS_EXCAVATION_SITE = 118, - AREA_WESTBROOK_GARRISON = 120, - AREA_TRANQUIL_GARDENS_CEMETERY = 121, - AREA_ZUULDAIA_RUINS = 122, - AREA_BALLAL_RUINS = 123, - AREA_KALAI_RUINS = 125, - AREA_TKASHI_RUINS = 126, - AREA_BALIAMAH_RUINS = 127, - AREA_ZIATAJAI_RUINS = 128, - AREA_MIZJAH_RUINS = 129, - AREA_SILVERPINE_FOREST = 130, - AREA_KHARANOS = 131, - AREA_COLDRIDGE_VALLEY = 132, - AREA_GNOMEREGAN = 133, - AREA_GOLBOLAR_QUARRY = 134, - AREA_FROSTMANE_HOLD = 135, - AREA_THE_GRIZZLED_DEN = 136, - AREA_BREWNALL_VILLAGE = 137, - AREA_MISTY_PINE_REFUGE = 138, - AREA_EASTERN_PLAGUELANDS = 139, - AREA_TELDRASSIL = 141, - AREA_IRONBANDS_EXCAVATION_SITE = 142, - AREA_MOGROSH_STRONGHOLD = 143, - AREA_THELSAMAR = 144, - AREA_ALGAZ_GATE = 145, - AREA_STONEWROUGHT_DAM = 146, - AREA_THE_FARSTRIDER_LODGE = 147, - AREA_DARKSHORE = 148, - AREA_SILVER_STREAM_MINE = 149, - AREA_MENETHIL_HARBOR = 150, - AREA_DESIGNER_ISLAND = 151, - AREA_THE_BULWARK = 152, - AREA_RUINS_OF_LORDAERON = 153, - AREA_DEATHKNELL = 154, - AREA_NIGHT_WEBS_HOLLOW = 155, - AREA_SOLLIDEN_FARMSTEAD = 156, - AREA_AGAMAND_MILLS = 157, - AREA_AGAMAND_FAMILY_CRYPT = 158, - AREA_BRILL = 159, - AREA_WHISPERING_GARDENS = 160, - AREA_TERRACE_OF_REPOSE = 161, - AREA_BRIGHTWATER_LAKE = 162, - AREA_GUNTHERS_RETREAT = 163, - AREA_GARRENS_HAUNT = 164, - AREA_BALNIR_FARMSTEAD = 165, - AREA_COLD_HEARTH_MANOR = 166, - AREA_CRUSADER_OUTPOST = 167, - AREA_THE_NORTH_COAST = 168, - AREA_WHISPERING_SHORE = 169, - AREA_LORDAMERE_LAKE = 170, - AREA_FENRIS_ISLE = 172, - AREA_FAOLS_REST = 173, - AREA_DOLANAAR = 186, - AREA_DARNASSUS_UNUSED = 187, - AREA_SHADOWGLEN = 188, - AREA_STEELGRILLS_DEPOT = 189, - AREA_HEARTHGLEN = 190, - AREA_NORTHRIDGE_LUMBER_CAMP = 192, - AREA_RUINS_OF_ANDORHAL = 193, - AREA_SCHOOL_OF_NECROMANCY = 195, - AREA_UTHERS_TOMB = 196, - AREA_SORROW_HILL = 197, - AREA_THE_WEEPING_CAVE = 198, - AREA_FELSTONE_FIELD = 199, - AREA_DALSONS_TEARS = 200, - AREA_GAHRRONS_WITHERING = 201, - AREA_THE_WRITHING_HAUNT = 202, - AREA_MARDENHOLDE_KEEP = 203, - AREA_PYREWOOD_VILLAGE = 204, - AREA_DUN_MODR = 205, - AREA_WESTFALL1 = 206, - AREA_THE_GREAT_SEA = 207, - AREA_UNUSED_IRONCLADCOVE = 208, - AREA_SHADOWFANG_KEEP = 209, - AREA_ON_MAP_DUNGEON3 = 210, - AREA_ICEFLOW_LAKE = 211, - AREA_HELMS_BED_LAKE = 212, - AREA_DEEP_ELEM_MINE = 213, - AREA_THE_GREAT_SEA1 = 214, - AREA_MULGORE = 215, - AREA_ALEXSTON_FARMSTEAD = 219, - AREA_RED_CLOUD_MESA = 220, - AREA_CAMP_NARACHE = 221, - AREA_BLOODHOOF_VILLAGE = 222, - AREA_STONEBULL_LAKE = 223, - AREA_RAVAGED_CARAVAN = 224, - AREA_RED_ROCKS = 225, - AREA_THE_SKITTERING_DARK = 226, - AREA_VALGANS_FIELD = 227, - AREA_THE_SEPULCHER = 228, - AREA_OLSENS_FARTHING = 229, - AREA_THE_GREYMANE_WALL = 230, - AREA_BERENS_PERIL = 231, - AREA_THE_DAWNING_ISLES = 232, - AREA_AMBERMILL = 233, - AREA_FENRIS_KEEP = 235, - AREA_SHADOWFANG_KEEP1 = 236, - AREA_THE_DECREPIT_FERRY = 237, - AREA_MALDENS_ORCHARD = 238, - AREA_THE_IVAR_PATCH = 239, - AREA_THE_DEAD_FIELD = 240, - AREA_THE_ROTTING_ORCHARD = 241, - AREA_BRIGHTWOOD_GROVE = 242, - AREA_FORLORN_ROWE = 243, - AREA_THE_WHIPPLE_ESTATE = 244, - AREA_THE_YORGEN_FARMSTEAD = 245, - AREA_THE_CAULDRON = 246, - AREA_GRIMESILT_DIG_SITE = 247, - AREA_DREADMAUL_ROCK = 249, - AREA_RUINS_OF_THAURISSAN = 250, - AREA_FLAME_CREST = 251, - AREA_BLACKROCK_STRONGHOLD = 252, - AREA_THE_PILLAR_OF_ASH = 253, - AREA_BLACKROCK_MOUNTAIN1 = 254, - AREA_ALTAR_OF_STORMS = 255, - AREA_ALDRASSIL = 256, - AREA_SHADOWTHREAD_CAVE = 257, - AREA_FEL_ROCK = 258, - AREA_LAKE_ALAMETH = 259, - AREA_STARBREEZE_VILLAGE = 260, - AREA_GNARLPINE_HOLD = 261, - AREA_BANETHIL_BARROW_DEN = 262, - AREA_THE_CLEFT = 263, - AREA_THE_ORACLE_GLADE = 264, - AREA_WELLSPRING_RIVER = 265, - AREA_WELLSPRING_LAKE = 266, - AREA_HILLSBRAD_FOOTHILLS = 267, - AREA_PLAINS_OF_SNOW = 268, - AREA_DUN_ALGAZ = 269, - AREA_SOUTHSHORE = 271, - AREA_TARREN_MILL = 272, - AREA_DURNHOLDE_KEEP = 275, - AREA_UNUSED_STONEWROUGHT_PASS = 276, - AREA_THE_FOOTHILL_CAVERNS = 277, - AREA_LORDAMERE_INTERNMENT_CAMP = 278, - AREA_DALARAN = 279, - AREA_STRAHNBRAD = 280, - AREA_RUINS_OF_ALTERAC = 281, - AREA_CRUSHRIDGE_HOLD = 282, - AREA_SLAUGHTER_HOLLOW = 283, - AREA_THE_UPLANDS = 284, - AREA_SOUTHPOINT_TOWER = 285, - AREA_HILLSBRAD_FIELDS = 286, - AREA_HILLSBRAD = 287, - AREA_AZURELODE_MINE = 288, - AREA_NETHANDER_STEAD = 289, - AREA_DUN_GAROK = 290, - AREA_THORADINS_WALL = 293, - AREA_EASTERN_STRAND = 294, - AREA_WESTERN_STRAND = 295, - AREA_SOUTH_SEAS_UNUSED = 296, - AREA_JAGUERO_ISLE = 297, - AREA_BARADIN_BAY = 298, - AREA_MENETHIL_BAY = 299, - AREA_MISTY_REED_STRAND = 300, - AREA_THE_SAVAGE_COAST = 301, - AREA_THE_CRYSTAL_SHORE = 302, - AREA_SHELL_BEACH = 303, - AREA_NORTH_TIDES_RUN = 305, - AREA_SOUTH_TIDES_RUN = 306, - AREA_THE_OVERLOOK_CLIFFS = 307, - AREA_THE_FORBIDDING_SEA = 308, - AREA_IRONBEARDS_TOMB = 309, - AREA_CRYSTALVEIN_MINE = 310, - AREA_RUINS_OF_ABORAZ = 311, - AREA_JANEIROS_POINT = 312, - AREA_NORTHFOLD_MANOR = 313, - AREA_GOSHEK_FARM = 314, - AREA_DABYRIES_FARMSTEAD = 315, - AREA_BOULDERFIST_HALL = 316, - AREA_WITHERBARK_VILLAGE = 317, - AREA_DRYWHISKER_GORGE = 318, - AREA_REFUGE_POINTE = 320, - AREA_HAMMERFALL = 321, - AREA_BLACKWATER_SHIPWRECKS = 322, - AREA_OBREENS_CAMP = 323, - AREA_STROMGARDE_KEEP = 324, - AREA_THE_TOWER_OF_ARATHOR = 325, - AREA_THE_SANCTUM = 326, - AREA_FALDIRS_COVE = 327, - AREA_THE_DROWNED_REEF = 328, - AREA_THANDOL_SPAN = 330, - AREA_ASHENVALE = 331, - AREA_THE_GREAT_SEA_UNUSED = 332, - AREA_CIRCLE_OF_EAST_BINDING = 333, - AREA_CIRCLE_OF_WEST_BINDING = 334, - AREA_CIRCLE_OF_INNER_BINDING = 335, - AREA_CIRCLE_OF_OUTER_BINDING = 336, - AREA_APOCRYPHANS_REST = 337, - AREA_ANGOR_FORTRESS = 338, - AREA_LETHLOR_RAVINE = 339, - AREA_KARGATH = 340, - AREA_CAMP_KOSH = 341, - AREA_CAMP_BOFF = 342, - AREA_CAMP_WURG = 343, - AREA_CAMP_CAGG = 344, - AREA_AGMONDS_END = 345, - AREA_HAMMERTOES_DIGSITE = 346, - AREA_DUSTBELCH_GROTTO = 347, - AREA_AERIE_PEAK = 348, - AREA_WILDHAMMER_KEEP = 349, - AREA_QUELDANIL_LODGE = 350, - AREA_SKULK_ROCK = 351, - AREA_ZUNWATHA = 352, - AREA_SHADRAALOR = 353, - AREA_JINTHAALOR = 354, - AREA_THE_ALTAR_OF_ZUL = 355, - AREA_SERADANE = 356, - AREA_FERALAS = 357, - AREA_BRAMBLEBLADE_RAVINE = 358, - AREA_BAEL_MODAN = 359, - AREA_THE_VENTURE_CO_MINE = 360, - AREA_FELWOOD = 361, - AREA_RAZOR_HILL = 362, - AREA_VALLEY_OF_TRIALS = 363, - AREA_THE_DEN = 364, - AREA_BURNING_BLADE_COVEN = 365, - AREA_KOLKAR_CRAG = 366, - AREA_SENJIN_VILLAGE = 367, - AREA_ECHO_ISLES = 368, - AREA_THUNDER_RIDGE = 369, - AREA_DRYGULCH_RAVINE = 370, - AREA_DUSTWIND_CAVE = 371, - AREA_TIRAGARDE_KEEP = 372, - AREA_SCUTTLE_COAST = 373, - AREA_BLADEFIST_BAY = 374, - AREA_DEADEYE_SHORE = 375, - AREA_SOUTHFURY_RIVER = 377, - AREA_CAMP_TAURAJO = 378, - AREA_FAR_WATCH_POST = 379, - AREA_THE_CROSSROADS = 380, - AREA_BOULDER_LODE_MINE = 381, - AREA_THE_SLUDGE_FEN = 382, - AREA_THE_DRY_HILLS = 383, - AREA_DREADMIST_PEAK = 384, - AREA_NORTHWATCH_HOLD = 385, - AREA_THE_FORGOTTEN_POOLS = 386, - AREA_LUSHWATER_OASIS = 387, - AREA_THE_STAGNANT_OASIS = 388, - AREA_FIELD_OF_GIANTS = 390, - AREA_THE_MERCHANT_COAST = 391, - AREA_RATCHET = 392, - AREA_DARKSPEAR_STRAND = 393, - AREA_DARROWMERE_LAKE_UNUSED = 394, - AREA_CAER_DARROW_UNUSED = 395, - AREA_WINTERHOOF_WATER_WELL = 396, - AREA_THUNDERHORN_WATER_WELL = 397, - AREA_WILDMANE_WATER_WELL = 398, - AREA_SKYLINE_RIDGE = 399, - AREA_THOUSAND_NEEDLES = 400, - AREA_THE_TIDUS_STAIR = 401, - AREA_SHADY_REST_INN = 403, - AREA_BAELDUN_DIGSITE = 404, - AREA_DESOLACE = 405, - AREA_STONETALON_MOUNTAINS = 406, - AREA_ORGRIMMAR_UNUSED = 407, - AREA_GILLIJIMS_ISLE = 408, - AREA_ISLAND_OF_DOCTOR_LAPIDIS = 409, - AREA_RAZORWIND_CANYON = 410, - AREA_BATHRANS_HAUNT = 411, - AREA_THE_RUINS_OF_ORDILARAN = 412, - AREA_MAESTRAS_POST = 413, - AREA_THE_ZORAM_STRAND = 414, - AREA_ASTRANAAR = 415, - AREA_THE_SHRINE_OF_AESSINA = 416, - AREA_FIRE_SCAR_SHRINE = 417, - AREA_THE_RUINS_OF_STARDUST = 418, - AREA_THE_HOWLING_VALE = 419, - AREA_SILVERWIND_REFUGE = 420, - AREA_MYSTRAL_LAKE = 421, - AREA_FALLEN_SKY_LAKE = 422, - AREA_IRIS_LAKE = 424, - AREA_MOONWELL = 425, - AREA_RAYNEWOOD_RETREAT = 426, - AREA_THE_SHADY_NOOK = 427, - AREA_NIGHT_RUN = 428, - AREA_XAVIAN = 429, - AREA_SATYRNAAR = 430, - AREA_SPLINTERTREE_POST = 431, - AREA_THE_DORDANIL_BARROW_DEN = 432, - AREA_FALFARREN_RIVER = 433, - AREA_FELFIRE_HILL = 434, - AREA_DEMON_FALL_CANYON = 435, - AREA_DEMON_FALL_RIDGE = 436, - AREA_WARSONG_LUMBER_CAMP = 437, - AREA_BOUGH_SHADOW = 438, - AREA_THE_SHIMMERING_FLATS = 439, - AREA_TANARIS = 440, - AREA_LAKE_FALATHIM = 441, - AREA_AUBERDINE = 442, - AREA_RUINS_OF_MATHYSTRA = 443, - AREA_TOWER_OF_ALTHALAXX = 444, - AREA_CLIFFSPRING_FALLS = 445, - AREA_BASHALARAN = 446, - AREA_AMETHARAN = 447, - AREA_GROVE_OF_THE_ANCIENTS = 448, - AREA_THE_MASTERS_GLAIVE = 449, - AREA_REMTRAVELS_EXCAVATION = 450, - AREA_MISTS_EDGE = 452, - AREA_THE_LONG_WASH = 453, - AREA_WILDBEND_RIVER = 454, - AREA_BLACKWOOD_DEN = 455, - AREA_CLIFFSPRING_RIVER = 456, - AREA_THE_VEILED_SEA = 457, - AREA_GOLD_ROAD = 458, - AREA_SCARLET_WATCH_POST = 459, - AREA_SUN_ROCK_RETREAT = 460, - AREA_WINDSHEAR_CRAG = 461, - AREA_CRAGPOOL_LAKE = 463, - AREA_MIRKFALLON_LAKE = 464, - AREA_THE_CHARRED_VALE = 465, - AREA_VALLEY_OF_THE_BLOODFURIES = 466, - AREA_STONETALON_PEAK = 467, - AREA_THE_TALON_DEN = 468, - AREA_GREATWOOD_VALE = 469, - AREA_THUNDER_BLUFF_UNUSED = 470, - AREA_BRAVE_WIND_MESA = 471, - AREA_FIRE_STONE_MESA = 472, - AREA_MANTLE_ROCK = 473, - AREA_HUNTER_RISE_UNUSED = 474, - AREA_SPIRIT_RISEUNUSED = 475, - AREA_ELDER_RISEUNUSED = 476, - AREA_RUINS_OF_JUBUWAL = 477, - AREA_POOLS_OF_ARLITHRIEN = 478, - AREA_THE_RUSTMAUL_DIG_SITE = 479, - AREA_CAMP_ETHOK = 480, - AREA_SPLITHOOF_CRAG = 481, - AREA_HIGHPERCH = 482, - AREA_THE_SCREECHING_CANYON = 483, - AREA_FREEWIND_POST = 484, - AREA_THE_GREAT_LIFT = 485, - AREA_GALAK_HOLD = 486, - AREA_ROGUEFEATHER_DEN = 487, - AREA_THE_WEATHERED_NOOK = 488, - AREA_THALANAAR = 489, - AREA_UNGORO_CRATER = 490, - AREA_RAZORFEN_KRAUL = 491, - AREA_RAVEN_HILL_CEMETERY = 492, - AREA_MOONGLADE = 493, - AREA_DELETE_ME = 495, - AREA_BRACKENWALL_VILLAGE = 496, - AREA_SWAMPLIGHT_MANOR = 497, - AREA_BLOODFEN_BURROW = 498, - AREA_DARKMIST_CAVERN = 499, - AREA_MOGGLE_POINT = 500, - AREA_BEEZILS_WRECK = 501, - AREA_WITCH_HILL = 502, - AREA_SENTRY_POINT = 503, - AREA_NORTH_POINT_TOWER = 504, - AREA_WEST_POINT_TOWER = 505, - AREA_LOST_POINT = 506, - AREA_BLUEFEN = 507, - AREA_STONEMAUL_RUINS = 508, - AREA_THE_DEN_OF_FLAME = 509, - AREA_THE_DRAGONMURK = 510, - AREA_WYRMBOG = 511, - AREA_ONYXIAS_LAIR_UNUSED = 512, - AREA_THERAMORE_ISLE = 513, - AREA_FOOTHOLD_CITADEL = 514, - AREA_IRONCLAD_PRISON = 515, - AREA_DUSTWALLOW_BAY = 516, - AREA_TIDEFURY_COVE = 517, - AREA_DREADMURK_SHORE = 518, - AREA_ADDLES_STEAD = 536, - AREA_FIRE_PLUME_RIDGE = 537, - AREA_LAKKARI_TAR_PITS = 538, - AREA_TERROR_RUN = 539, - AREA_THE_SLITHERING_SCAR = 540, - AREA_MARSHALS_REFUGE = 541, - AREA_FUNGAL_ROCK = 542, - AREA_GOLAKKA_HOT_SPRINGS = 543, - AREA_THE_LOCH = 556, - AREA_BEGGARS_HAUNT = 576, - AREA_KODO_GRAVEYARD = 596, - AREA_GHOST_WALKER_POST = 597, - AREA_SARTHERIS_STRAND = 598, - AREA_THUNDER_AXE_FORTRESS = 599, - AREA_BOLGANS_HOLE = 600, - AREA_MANNOROC_COVEN = 602, - AREA_SARGERON = 603, - AREA_MAGRAM_VILLAGE = 604, - AREA_GELKIS_VILLAGE = 606, - AREA_VALLEY_OF_SPEARS = 607, - AREA_NIJELS_POINT = 608, - AREA_KOLKAR_VILLAGE = 609, - AREA_HYJAL = 616, - AREA_WINTERSPRING = 618, - AREA_BLACKWOLF_RIVER = 636, - AREA_KODO_ROCK = 637, - AREA_HIDDEN_PATH = 638, - AREA_SPIRIT_ROCK = 639, - AREA_SHRINE_OF_THE_DORMANT_FLAME = 640, - AREA_LAKE_ELUNEARA = 656, - AREA_THE_HARBORAGE = 657, - AREA_OUTLAND = 676, - AREA_CRAFTSMENS_TERRACE_UNUSED = 696, - AREA_TRADESMENS_TERRACE_UNUSED = 697, - AREA_THE_TEMPLE_GARDENS_UNUSED = 698, - AREA_TEMPLE_OF_ELUNE_UNUSED = 699, - AREA_CENARION_ENCLAVE_UNUSED = 700, - AREA_WARRIORS_TERRACE_UNUSED = 701, - AREA_RUTTHERAN_VILLAGE = 702, - AREA_IRONBANDS_COMPOUND = 716, - AREA_THE_STOCKADE = 717, - AREA_WAILING_CAVERNS = 718, - AREA_BLACKFATHOM_DEEPS = 719, - AREA_FRAY_ISLAND = 720, - AREA_GNOMEREGAN1 = 721, - AREA_RAZORFEN_DOWNS = 722, - AREA_BANETHIL_HOLLOW = 736, - AREA_SCARLET_MONASTERY = 796, - AREA_JERODS_LANDING = 797, - AREA_RIDGEPOINT_TOWER = 798, - AREA_THE_DARKENED_BANK = 799, - AREA_COLDRIDGE_PASS = 800, - AREA_CHILL_BREEZE_VALLEY = 801, - AREA_SHIMMER_RIDGE = 802, - AREA_AMBERSTILL_RANCH = 803, - AREA_THE_TUNDRID_HILLS = 804, - AREA_SOUTH_GATE_PASS = 805, - AREA_SOUTH_GATE_OUTPOST = 806, - AREA_NORTH_GATE_PASS = 807, - AREA_NORTH_GATE_OUTPOST = 808, - AREA_GATES_OF_IRONFORGE = 809, - AREA_STILLWATER_POND = 810, - AREA_NIGHTMARE_VALE = 811, - AREA_VENOMWEB_VALE = 812, - AREA_THE_BULWARK1 = 813, - AREA_SOUTHFURY_RIVER1 = 814, - AREA_SOUTHFURY_RIVER2 = 815, - AREA_RAZORMANE_GROUNDS = 816, - AREA_SKULL_ROCK = 817, - AREA_PALEMANE_ROCK = 818, - AREA_WINDFURY_RIDGE = 819, - AREA_THE_GOLDEN_PLAINS = 820, - AREA_THE_ROLLING_PLAINS = 821, - AREA_DUN_ALGAZ1 = 836, - AREA_DUN_ALGAZ2 = 837, - AREA_NORTH_GATE_PASS1 = 838, - AREA_SOUTH_GATE_PASS1 = 839, - AREA_TWILIGHT_GROVE = 856, - AREA_GM_ISLAND = 876, - AREA_DELETE_ME1 = 877, - AREA_SOUTHFURY_RIVER3 = 878, - AREA_SOUTHFURY_RIVER4 = 879, - AREA_THANDOL_SPAN1 = 880, - AREA_THANDOL_SPAN2 = 881, - AREA_PURGATION_ISLE = 896, - AREA_THE_JANSEN_STEAD = 916, - AREA_THE_DEAD_ACRE = 917, - AREA_THE_MOLSEN_FARM = 918, - AREA_STENDELS_POND = 919, - AREA_THE_DAGGER_HILLS = 920, - AREA_DEMONTS_PLACE = 921, - AREA_THE_DUST_PLAINS = 922, - AREA_STONESPLINTER_VALLEY = 923, - AREA_VALLEY_OF_KINGS = 924, - AREA_ALGAZ_STATION = 925, - AREA_BUCKLEBREE_FARM = 926, - AREA_THE_SHINING_STRAND = 927, - AREA_NORTH_TIDES_HOLLOW = 928, - AREA_GRIZZLEPAW_RIDGE = 936, - AREA_THE_VERDANT_FIELDS = 956, - AREA_GADGETZAN = 976, - AREA_STEAMWHEEDLE_PORT = 977, - AREA_ZULFARRAK = 978, - AREA_SANDSORROW_WATCH = 979, - AREA_THISTLESHRUB_VALLEY = 980, - AREA_THE_GAPING_CHASM = 981, - AREA_THE_NOXIOUS_LAIR = 982, - AREA_DUNEMAUL_COMPOUND = 983, - AREA_EASTMOON_RUINS = 984, - AREA_WATERSPRING_FIELD = 985, - AREA_ZALASHJIS_DEN = 986, - AREA_LANDS_END_BEACH = 987, - AREA_WAVESTRIDER_BEACH = 988, - AREA_ULDUM = 989, - AREA_VALLEY_OF_THE_WATCHERS = 990, - AREA_GUNSTANS_POST = 991, - AREA_SOUTHMOON_RUINS = 992, - AREA_RENDERS_CAMP = 996, - AREA_RENDERS_VALLEY = 997, - AREA_RENDERS_ROCK = 998, - AREA_STONEWATCH_TOWER = 999, - AREA_GALARDELL_VALLEY = 1000, - AREA_LAKERIDGE_HIGHWAY = 1001, - AREA_THREE_CORNERS = 1002, - AREA_DIREFORGE_HILL = 1016, - AREA_RAPTOR_RIDGE = 1017, - AREA_BLACK_CHANNEL_MARSH = 1018, - AREA_THE_GREEN_BELT = 1019, - AREA_MOSSHIDE_FEN = 1020, - AREA_THELGEN_ROCK = 1021, - AREA_BLUEGILL_MARSH = 1022, - AREA_SALTSPRAY_GLEN = 1023, - AREA_SUNDOWN_MARSH = 1024, - AREA_THE_GREEN_BELT1 = 1025, - AREA_ANGERFANG_ENCAMPMENT = 1036, - AREA_GRIM_BATOL = 1037, - AREA_DRAGONMAW_GATES = 1038, - AREA_THE_LOST_FLEET = 1039, - AREA_DARROW_HILL = 1056, - AREA_THORADINS_WALL1 = 1057, - AREA_WEBWINDER_PATH = 1076, - AREA_THE_HUSHED_BANK = 1097, - AREA_MANOR_MISTMANTLE = 1098, - AREA_CAMP_MOJACHE = 1099, - AREA_GRIMTOTEM_COMPOUND = 1100, - AREA_THE_WRITHING_DEEP = 1101, - AREA_WILDWIND_LAKE = 1102, - AREA_GORDUNNI_OUTPOST = 1103, - AREA_MOKGORDUN = 1104, - AREA_FERAL_SCAR_VALE = 1105, - AREA_FRAYFEATHER_HIGHLANDS = 1106, - AREA_IDLEWIND_LAKE = 1107, - AREA_THE_FORGOTTEN_COAST = 1108, - AREA_EAST_PILLAR = 1109, - AREA_WEST_PILLAR = 1110, - AREA_DREAM_BOUGH = 1111, - AREA_JADEMIR_LAKE = 1112, - AREA_ONEIROS = 1113, - AREA_RUINS_OF_RAVENWIND = 1114, - AREA_RAGE_SCAR_HOLD = 1115, - AREA_FEATHERMOON_STRONGHOLD = 1116, - AREA_RUINS_OF_SOLARSAL = 1117, - AREA_LOWER_WILDS_UNUSED = 1118, - AREA_THE_TWIN_COLOSSALS = 1119, - AREA_SARDOR_ISLE = 1120, - AREA_ISLE_OF_DREAD = 1121, - AREA_HIGH_WILDERNESS = 1136, - AREA_LOWER_WILDS = 1137, - AREA_SOUTHERN_BARRENS = 1156, - AREA_SOUTHERN_GOLD_ROAD = 1157, - AREA_ZULFARRAK1 = 1176, - AREA_UNUSEDALCAZ_ISLAND = 1196, - AREA_TIMBERMAW_HOLD = 1216, - AREA_VANNDIR_ENCAMPMENT = 1217, - AREA_TESTAZSHARA = 1218, - AREA_LEGASH_ENCAMPMENT = 1219, - AREA_THALASSIAN_BASE_CAMP = 1220, - AREA_RUINS_OF_ELDARATH_ = 1221, - AREA_HETAERAS_CLUTCH = 1222, - AREA_TEMPLE_OF_ZIN_MALOR = 1223, - AREA_BEARS_HEAD = 1224, - AREA_URSOLAN = 1225, - AREA_TEMPLE_OF_ARKKORAN = 1226, - AREA_BAY_OF_STORMS = 1227, - AREA_THE_SHATTERED_STRAND = 1228, - AREA_TOWER_OF_ELDARA = 1229, - AREA_JAGGED_REEF = 1230, - AREA_SOUTHRIDGE_BEACH = 1231, - AREA_RAVENCREST_MONUMENT = 1232, - AREA_FORLORN_RIDGE = 1233, - AREA_LAKE_MENNAR = 1234, - AREA_SHADOWSONG_SHRINE = 1235, - AREA_HALDARR_ENCAMPMENT = 1236, - AREA_VALORMOK = 1237, - AREA_THE_RUINED_REACHES = 1256, - AREA_THE_TALONDEEP_PATH = 1276, - AREA_THE_TALONDEEP_PATH1 = 1277, - AREA_ROCKTUSK_FARM = 1296, - AREA_JAGGEDSWINE_FARM = 1297, - AREA_RAZORFEN_DOWNS1 = 1316, - AREA_LOST_RIGGER_COVE = 1336, - AREA_ULDAMAN = 1337, - AREA_LORDAMERE_LAKE1 = 1338, - AREA_LORDAMERE_LAKE2 = 1339, - AREA_GALLOWS_CORNER = 1357, - AREA_SILITHUS = 1377, - AREA_EMERALD_FOREST = 1397, - AREA_SUNKEN_TEMPLE = 1417, - AREA_DREADMAUL_HOLD = 1437, - AREA_NETHERGARDE_KEEP = 1438, - AREA_DREADMAUL_POST = 1439, - AREA_SERPENTS_COIL = 1440, - AREA_ALTAR_OF_STORMS1 = 1441, - AREA_FIREWATCH_RIDGE = 1442, - AREA_THE_SLAG_PIT = 1443, - AREA_THE_SEA_OF_CINDERS = 1444, - AREA_BLACKROCK_MOUNTAIN2 = 1445, - AREA_UNUSED002 = 1446, - AREA_GARRISON_ARMORY = 1457, - AREA_THE_TEMPLE_OF_ATALHAKKAR = 1477, - AREA_UNDERCITY = 1497, - AREA_ULDAMAN1 = 1517, - AREA_NOT_USED_DEADMINES = 1518, - AREA_STORMWIND_CITY = 1519, - AREA_IRONFORGE = 1537, - AREA_SPLITHOOF_HOLD = 1557, - AREA_THE_CAPE_OF_STRANGLETHORN = 1577, - AREA_SOUTHERN_SAVAGE_COAST = 1578, - AREA_UNUSED_THE_DEADMINES_002 = 1579, - AREA_UNUSED_IRONCLAD_COVE_003 = 1580, - AREA_THE_DEADMINES = 1581, - AREA_IRONCLAD_COVE = 1582, - AREA_BLACKROCK_SPIRE = 1583, - AREA_BLACKROCK_DEPTHS = 1584, - AREA_RAPTOR_GROUNDS_UNUSED = 1597, - AREA_GROLDOM_FARM_UNUSED = 1598, - AREA_THE_MORSHAN_RAMPART_UNUSED = 1599, - AREA_HONORS_STAND_UNUSED = 1600, - AREA_BLACKTHORN_RIDGE_UNUSED = 1601, - AREA_BRAMBLESCAR_UNUSED = 1602, - AREA_AGAMAGOR_UNUSED = 1603, - AREA_VALLEY_OF_HEROES = 1617, - AREA_ORGRIMMAR = 1637, - AREA_THUNDER_BLUFF = 1638, - AREA_ELDER_RISE = 1639, - AREA_SPIRIT_RISE = 1640, - AREA_HUNTER_RISE = 1641, - AREA_DARNASSUS = 1657, - AREA_CENARION_ENCLAVE = 1658, - AREA_CRAFTSMENS_TERRACE = 1659, - AREA_WARRIORS_TERRACE = 1660, - AREA_THE_TEMPLE_GARDENS = 1661, - AREA_TRADESMENS_TERRACE = 1662, - AREA_GAVINS_NAZE = 1677, - AREA_SOFERAS_NAZE = 1678, - AREA_CORRAHNS_DAGGER = 1679, - AREA_THE_HEADLAND = 1680, - AREA_MISTY_SHORE = 1681, - AREA_DANDREDS_FOLD = 1682, - AREA_GROWLESS_CAVE = 1683, - AREA_CHILLWIND_POINT = 1684, - AREA_RAPTOR_GROUNDS = 1697, - AREA_BRAMBLESCAR = 1698, - AREA_THORN_HILL = 1699, - AREA_AGAMAGOR = 1700, - AREA_BLACKTHORN_RIDGE = 1701, - AREA_HONORS_STAND = 1702, - AREA_THE_MORSHAN_RAMPART = 1703, - AREA_GROLDOM_FARM = 1704, - AREA_RAZORFEN_KRAUL1 = 1717, - AREA_THE_GREAT_LIFT1 = 1718, - AREA_MISTVALE_VALLEY = 1737, - AREA_NEKMANI_WELLSPRING = 1738, - AREA_BLOODSAIL_COMPOUND = 1739, - AREA_VENTURE_CO_BASE_CAMP = 1740, - AREA_GURUBASHI_ARENA = 1741, - AREA_SPIRIT_DEN = 1742, - AREA_THE_CRIMSON_VEIL = 1757, - AREA_THE_RIPTIDE = 1758, - AREA_THE_DAMSELS_LUCK = 1759, - AREA_VENTURE_CO_OPERATIONS_CENTER = 1760, - AREA_DEADWOOD_VILLAGE = 1761, - AREA_FELPAW_VILLAGE = 1762, - AREA_JAEDENAR = 1763, - AREA_BLOODVENOM_RIVER = 1764, - AREA_BLOODVENOM_FALLS = 1765, - AREA_SHATTER_SCAR_VALE = 1766, - AREA_IRONTREE_WOODS = 1767, - AREA_IRONTREE_CAVERN = 1768, - AREA_TIMBERMAW_HOLD1 = 1769, - AREA_SHADOW_HOLD = 1770, - AREA_SHRINE_OF_THE_DECEIVER = 1771, - AREA_ITHARIUSS_CAVE = 1777, - AREA_SORROWMURK = 1778, - AREA_DRAENILDUR_VILLAGE = 1779, - AREA_SPLINTERSPEAR_JUNCTION = 1780, - AREA_STAGALBOG = 1797, - AREA_THE_SHIFTING_MIRE = 1798, - AREA_STAGALBOG_CAVE = 1817, - AREA_WITHERBARK_CAVERNS = 1837, - AREA_THORADINS_WALL2 = 1857, - AREA_BOULDERGOR = 1858, - AREA_VALLEY_OF_FANGS = 1877, - AREA_THE_DUSTBOWL = 1878, - AREA_MIRAGE_FLATS = 1879, - AREA_FEATHERBEARDS_HOVEL = 1880, - AREA_SHINDIGGERS_CAMP = 1881, - AREA_PLAGUEMIST_RAVINE = 1882, - AREA_VALORWIND_LAKE = 1883, - AREA_AGOLWATHA = 1884, - AREA_HIRIWATHA = 1885, - AREA_THE_CREEPING_RUIN = 1886, - AREA_BOGENS_LEDGE = 1887, - AREA_THE_MAKERS_TERRACE = 1897, - AREA_DUSTWIND_GULCH = 1898, - AREA_SHAOLWATHA = 1917, - AREA_NOONSHADE_RUINS = 1937, - AREA_BROKEN_PILLAR = 1938, - AREA_ABYSSAL_SANDS = 1939, - AREA_SOUTHBREAK_SHORE = 1940, - AREA_CAVERNS_OF_TIME = 1941, - AREA_THE_MARSHLANDS = 1942, - AREA_IRONSTONE_PLATEAU = 1943, - AREA_BLACKCHAR_CAVE = 1957, - AREA_TANNER_CAMP = 1958, - AREA_DUSTFIRE_VALLEY = 1959, - AREA_ZULGURUB1 = 1977, - AREA_MISTY_REED_POST = 1978, - AREA_BLOODVENOM_POST_ = 1997, - AREA_TALONBRANCH_GLADE_ = 1998, - AREA_STRATHOLME = 2017, - AREA_UNUSEDSHADOWFANG_KEEP_003 = 2037, - AREA_SCHOLOMANCE = 2057, - AREA_TWILIGHT_VALE = 2077, - AREA_TWILIGHT_SHORE = 2078, - AREA_ALCAZ_ISLAND = 2079, - AREA_DARKCLOUD_PINNACLE = 2097, - AREA_DAWNING_WOOD_CATACOMBS = 2098, - AREA_STONEWATCH_KEEP = 2099, - AREA_MARAUDON = 2100, - AREA_STOUTLAGER_INN = 2101, - AREA_THUNDERBREW_DISTILLERY = 2102, - AREA_MENETHIL_KEEP = 2103, - AREA_DEEPWATER_TAVERN = 2104, - AREA_SHADOW_GRAVE = 2117, - AREA_BRILL_TOWN_HALL = 2118, - AREA_GALLOWS_END_TAVERN = 2119, - AREA_THE_POOLS_OF_VISIONUNUSED = 2137, - AREA_DREADMIST_DEN = 2138, - AREA_BAELDUN_KEEP = 2157, - AREA_EMBERSTRIFES_DEN = 2158, - AREA_ONYXIAS_LAIR = 2159, - AREA_WINDSHEAR_MINE = 2160, - AREA_ROLANDS_DOOM = 2161, - AREA_THE_GREAT_ARENA = 2177, - AREA_THE_POOLS_OF_VISION = 2197, - AREA_SHADOWBREAK_RAVINE = 2198, - AREA_BROKEN_SPEAR_VILLAGE = 2217, - AREA_WHITEREACH_POST = 2237, - AREA_GORNIA = 2238, - AREA_ZANES_EYE_CRATER = 2239, - AREA_MIRAGE_RACEWAY = 2240, - AREA_FROSTSABER_ROCK = 2241, - AREA_THE_HIDDEN_GROVE = 2242, - AREA_TIMBERMAW_POST = 2243, - AREA_WINTERFALL_VILLAGE = 2244, - AREA_MAZTHORIL = 2245, - AREA_FROSTFIRE_HOT_SPRINGS = 2246, - AREA_ICE_THISTLE_HILLS = 2247, - AREA_DUN_MANDARR = 2248, - AREA_FROSTWHISPER_GORGE = 2249, - AREA_OWL_WING_THICKET = 2250, - AREA_LAKE_KELTHERIL = 2251, - AREA_THE_RUINS_OF_KELTHERIL = 2252, - AREA_STARFALL_VILLAGE = 2253, - AREA_BANTHALLOW_BARROW_DEN = 2254, - AREA_EVERLOOK = 2255, - AREA_DARKWHISPER_GORGE = 2256, - AREA_DEEPRUN_TRAM = 2257, - AREA_THE_FUNGAL_VALE = 2258, - AREA_UNUSEDTHE_MARRIS_STEAD = 2259, - AREA_THE_MARRIS_STEAD = 2260, - AREA_THE_UNDERCROFT = 2261, - AREA_DARROWSHIRE = 2262, - AREA_CROWN_GUARD_TOWER = 2263, - AREA_CORINS_CROSSING = 2264, - AREA_SCARLET_BASE_CAMP = 2265, - AREA_TYRS_HAND = 2266, - AREA_THE_SCARLET_BASILICA = 2267, - AREA_LIGHTS_HOPE_CHAPEL = 2268, - AREA_BROWMAN_MILL = 2269, - AREA_THE_NOXIOUS_GLADE = 2270, - AREA_EASTWALL_TOWER = 2271, - AREA_NORTHDALE = 2272, - AREA_ZULMASHAR = 2273, - AREA_MAZRAALOR = 2274, - AREA_NORTHPASS_TOWER = 2275, - AREA_QUELLITHIEN_LODGE = 2276, - AREA_PLAGUEWOOD = 2277, - AREA_SCOURGEHOLD = 2278, - AREA_STRATHOLME1 = 2279, - AREA_UNUSED_STRATHOLME = 2280, - AREA_DARROWMERE_LAKE = 2297, - AREA_CAER_DARROW = 2298, - AREA_DARROWMERE_LAKE1 = 2299, - AREA_CAVERNS_OF_TIME1 = 2300, - AREA_THISTLEFUR_VILLAGE = 2301, - AREA_THE_QUAGMIRE = 2302, - AREA_WINDBREAK_CANYON = 2303, - AREA_SOUTH_SEAS = 2317, - AREA_THE_GREAT_SEA2 = 2318, - AREA_THE_GREAT_SEA3 = 2319, - AREA_THE_GREAT_SEA4 = 2320, - AREA_THE_GREAT_SEA5 = 2321, - AREA_THE_VEILED_SEA1 = 2322, - AREA_THE_VEILED_SEA2 = 2323, - AREA_THE_VEILED_SEA3 = 2324, - AREA_THE_VEILED_SEA4 = 2325, - AREA_THE_VEILED_SEA5 = 2326, - AREA_RAZOR_HILL_BARRACKS = 2337, - AREA_SOUTH_SEAS1 = 2338, - AREA_THE_GREAT_SEA6 = 2339, - AREA_BLOODTOOTH_CAMP = 2357, - AREA_FOREST_SONG = 2358, - AREA_GREENPAW_VILLAGE = 2359, - AREA_SILVERWING_OUTPOST = 2360, - AREA_NIGHTHAVEN = 2361, - AREA_SHRINE_OF_REMULOS = 2362, - AREA_STORMRAGE_BARROW_DENS = 2363, - AREA_THE_GREAT_SEA7 = 2364, - AREA_THE_GREAT_SEA8 = 2365, - AREA_THE_BLACK_MORASS = 2366, - AREA_OLD_HILLSBRAD_FOOTHILLS = 2367, - AREA_TARREN_MILL1 = 2368, - AREA_SOUTHSHORE1 = 2369, - AREA_DURNHOLDE_KEEP1 = 2370, - AREA_DUN_GAROK1 = 2371, - AREA_HILLSBRAD_FIELDS1 = 2372, - AREA_EASTERN_STRAND1 = 2373, - AREA_NETHANDER_STEAD1 = 2374, - AREA_DARROW_HILL1 = 2375, - AREA_SOUTHPOINT_TOWER1 = 2376, - AREA_THORADINS_WALL3 = 2377, - AREA_WESTERN_STRAND1 = 2378, - AREA_AZURELODE_MINE1 = 2379, - AREA_THE_GREAT_SEA9 = 2397, - AREA_THE_GREAT_SEA10 = 2398, - AREA_THE_GREAT_SEA11 = 2399, - AREA_THE_FORBIDDING_SEA1 = 2400, - AREA_THE_FORBIDDING_SEA2 = 2401, - AREA_THE_FORBIDDING_SEA3 = 2402, - AREA_THE_FORBIDDING_SEA4 = 2403, - AREA_TETHRIS_ARAN = 2404, - AREA_ETHEL_RETHOR = 2405, - AREA_RANAZJAR_ISLE = 2406, - AREA_KORMEKS_HUT = 2407, - AREA_SHADOWPREY_VILLAGE = 2408, - AREA_BLACKROCK_PASS = 2417, - AREA_MORGANS_VIGIL = 2418, - AREA_SLITHER_ROCK = 2419, - AREA_TERROR_WING_PATH = 2420, - AREA_DRACODAR = 2421, - AREA_RAGEFIRE_CHASM = 2437, - AREA_NIGHTSONG_WOODS = 2457, - AREA_THE_VEILED_SEA6 = 2477, - AREA_MORLOSARAN = 2478, - AREA_EMERALD_SANCTUARY = 2479, - AREA_JADEFIRE_GLEN = 2480, - AREA_RUINS_OF_CONSTELLAS = 2481, - AREA_BITTER_REACHES = 2497, - AREA_RISE_OF_THE_DEFILER = 2517, - AREA_LARISS_PAVILLION = 2518, - AREA_WOODPAW_HILLS = 2519, - AREA_WOODPAW_DEN = 2520, - AREA_VERDANTIS_RIVER = 2521, - AREA_RUINS_OF_ISILDIEN = 2522, - AREA_GRIMTOTEM_POST = 2537, - AREA_CAMP_APARAJE = 2538, - AREA_MALAKAJIN = 2539, - AREA_BOULDERSLIDE_RAVINE = 2540, - AREA_SISHIR_CANYON = 2541, - AREA_DIRE_MAUL = 2557, - AREA_DEADWIND_RAVINE = 2558, - AREA_DIAMONDHEAD_RIVER = 2559, - AREA_ARIDENS_CAMP = 2560, - AREA_GROSHGOK_COMPOUND = 2561, - AREA_KARAZHAN = 2562, - AREA_MORGANS_PLOT = 2563, - AREA_DIRE_MAUL1 = 2577, - AREA_ALTERAC_VALLEY = 2597, - AREA_SCRABBLESCREWS_CAMP = 2617, - AREA_JADEFIRE_RUN = 2618, - AREA_THONDRORIL_RIVER = 2619, - AREA_THONDRORIL_RIVER1 = 2620, - AREA_LAKE_MERELDAR = 2621, - AREA_PESTILENT_SCAR = 2622, - AREA_THE_INFECTIS_SCAR = 2623, - AREA_BLACKWOOD_LAKE = 2624, - AREA_EASTWALL_GATE = 2625, - AREA_TERRORWEB_TUNNEL = 2626, - AREA_TERRORDALE = 2627, - AREA_KARGATHIA_KEEP = 2637, - AREA_VALLEY_OF_BONES = 2657, - AREA_BLACKWING_LAIR = 2677, - AREA_DEADMANS_CROSSING = 2697, - AREA_MOLTEN_CORE = 2717, - AREA_THE_SCARAB_WALL = 2737, - AREA_SOUTHWIND_VILLAGE = 2738, - AREA_TWILIGHT_BASE_CAMP = 2739, - AREA_THE_CRYSTAL_VALE = 2740, - AREA_THE_SCARAB_DAIS = 2741, - AREA_HIVEASHI = 2742, - AREA_HIVEZORA = 2743, - AREA_HIVEREGAL = 2744, - AREA_SHRINE_OF_THE_FALLEN_WARRIOR = 2757, - AREA_UNUSED_ALTERAC_VALLEY = 2777, - AREA_BLACKFATHOM_DEEPS1 = 2797, - AREA_ON_MAP_DUNGEON4 = 2817, - AREA_THE_MASTERS_CELLAR = 2837, - AREA_STONEWROUGHT_PASS = 2838, - AREA_ALTERAC_VALLEY1 = 2839, - AREA_GADGETZAN_ARENA = 2857, - AREA_CHUNK_TEST = 2877, - AREA_ZORAMGAR_OUTPOST = 2897, -} areas; - -typedef enum -{ - MAP_EASTERN_KINGDOMS = 0, - MAP_KALIMDOR = 1, - MAP_TESTING = 13, - MAP_SCOTT_TEST = 25, - MAP_CASHTEST = 29, - MAP_ALTERAC_VALLEY = 30, - MAP_SHADOWFANG_KEEP = 33, - MAP_STORMWIND_STOCKADE = 34, - MAP_UNUSED_STORMWINDPRISON = 35, - MAP_DEADMINES = 36, - MAP_AZSHARA_CRATER = 37, - MAP_COLLINS_TEST = 42, - MAP_WAILING_CAVERNS = 43, - MAP_UNUSED_MONASTERY = 44, - MAP_RAZORFEN_KRAUL = 47, - MAP_BLACKFATHOM_DEEPS = 48, - MAP_ULDAMAN = 70, - MAP_GNOMEREGAN = 90, - MAP_SUNKEN_TEMPLE = 109, - MAP_RAZORFEN_DOWNS = 129, - MAP_EMERALD_DREAM = 169, - MAP_SCARLET_MONASTERY = 189, - MAP_ZULFARRAK = 209, - MAP_BLACKROCK_SPIRE = 229, - MAP_BLACKROCK_DEPTHS = 230, - MAP_ONYXIAS_LAIR = 249, - MAP_CAVERNS_OF_TIME = 269, - MAP_SCHOLOMANCE = 289, - MAP_ZULGURUB = 309, - MAP_STRATHOLME = 329, - MAP_MARAUDON = 349, - MAP_DEEPRUN_TRAM = 369, - MAP_RAGEFIRE_CHASM = 389, - MAP_MOLTEN_CORE = 409, - MAP_DIRE_MAUL = 429, - MAP_ALLIANCE_PVP_BARRACKS = 449, - MAP_HORDE_PVP_BARRACKS = 450, - MAP_DEVELOPMENT_LAND = 451, - MAP_BLACKWING_LAIR = 469, - MAP_WARSONG_GULCH = 489, - MAP_RUINS_OF_AHNQIRAJ = 509, - MAP_ARATHI_BASIN = 529, - MAP_AHNQIRAJ_TEMPLE = 531, - MAP_NAXXRAMAS = 533, -} maps; - -static const value_string map_strings[] = { - { MAP_EASTERN_KINGDOMS, "Eastern Kingdoms" }, - { MAP_KALIMDOR, "Kalimdor" }, - { MAP_TESTING, "Testing" }, - { MAP_SCOTT_TEST, "Scott Test" }, - { MAP_CASHTEST, "CashTest" }, - { MAP_ALTERAC_VALLEY, "Alterac Valley" }, - { MAP_SHADOWFANG_KEEP, "Shadowfang Keep" }, - { MAP_STORMWIND_STOCKADE, "Stormwind Stockade" }, - { MAP_UNUSED_STORMWINDPRISON, "Unused Stormwind Prison" }, - { MAP_DEADMINES, "Deadmines" }, - { MAP_AZSHARA_CRATER, "Azshara Crater" }, - { MAP_COLLINS_TEST, "Collin's Test" }, - { MAP_WAILING_CAVERNS, "Wailing Caverns" }, - { MAP_UNUSED_MONASTERY, "Unused Monastery" }, - { MAP_RAZORFEN_KRAUL, "Razorfen Kraul" }, - { MAP_BLACKFATHOM_DEEPS, "Blackfathom Deeps" }, - { MAP_ULDAMAN, "Uldaman" }, - { MAP_GNOMEREGAN, "Gnomeregan" }, - { MAP_SUNKEN_TEMPLE, "Sunken Temple" }, - { MAP_RAZORFEN_DOWNS, "Razorfen Downs" }, - { MAP_EMERALD_DREAM, "Emerald Dream" }, - { MAP_SCARLET_MONASTERY, "Scarlet Monastery" }, - { MAP_ZULFARRAK, "Zul'Farrak" }, - { MAP_BLACKROCK_SPIRE, "Blackrock Spire" }, - { MAP_BLACKROCK_DEPTHS, "Blackrock Depths" }, - { MAP_ONYXIAS_LAIR, "Onyxia's Lair" }, - { MAP_CAVERNS_OF_TIME, "Caverns of Time" }, - { MAP_SCHOLOMANCE, "Scholomance" }, - { MAP_ZULGURUB, "Zul'Gurub" }, - { MAP_STRATHOLME, "Stratholme" }, - { MAP_MARAUDON, "Maraudon" }, - { 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_AHNQIRAJ, "Ruins of Ahn'Qiraj" }, - { MAP_ARATHI_BASIN, "Arathi Basin" }, - { MAP_AHNQIRAJ_TEMPLE, "Ahn'Qiraj Temple" }, - { MAP_NAXXRAMAS, "Naxxramas" }, - { 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 } }; -static const value_string area_strings[] = { +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_SWAMP_OF_SORROWS, "Swamp Of Sorrows" }, { AREA_NORTHSHIRE_VALLEY, "Northshire Valley" }, { AREA_DUSKWOOD, "Duskwood" }, { AREA_WETLANDS, "Wetlands" }, @@ -1542,13 +2546,13 @@ static const value_string area_strings[] = { { AREA_AZSHARA, "Azshara" }, { AREA_THE_BARRENS, "The Barrens" }, { AREA_CRYSTAL_LAKE, "Crystal Lake" }, - { AREA_ZULGURUB, "Zul'Gurub" }, + { 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_MOUNTAIN, "Blackrock Mountain" }, + { AREA_BLACKROCK_MOUNTAIN0, "Blackrock Mountain0" }, { AREA_LIGHTHOUSE, "Lighthouse" }, { AREA_WESTERN_PLAGUELANDS, "Western Plaguelands" }, { AREA_NINE, "Nine" }, @@ -1559,7 +2563,7 @@ static const value_string area_strings[] = { { AREA_ALTERAC_MOUNTAINS, "Alterac Mountains" }, { AREA_LAKE_NAZFERITI, "Lake Nazferiti" }, { AREA_LOCH_MODAN, "Loch Modan" }, - { AREA_WESTFALL, "Westfall" }, + { AREA_WESTFALL0, "Westfall0" }, { AREA_DEADWIND_PASS, "Deadwind Pass" }, { AREA_DARKSHIRE, "Darkshire" }, { AREA_WILD_SHORE, "Wild Shore" }, @@ -1567,89 +2571,89 @@ static const value_string area_strings[] = { { AREA_ARATHI_HIGHLANDS, "Arathi Highlands" }, { AREA_BURNING_STEPPES, "Burning Steppes" }, { AREA_THE_HINTERLANDS, "The Hinterlands" }, - { AREA_DEAD_MANS_HOLE, "Dead Man's Hole" }, + { 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_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, "Forest's Edge" }, + { 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_DUNGEON, "***On Map Dungeon***" }, - { AREA_ON_MAP_DUNGEON1, "***On Map Dungeon***" }, - { AREA_ON_MAP_DUNGEON2, "***On Map Dungeon***" }, + { 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_DARK_PORTAL, "Dark Portal" }, + { AREA_THE_DARK_PORTAL, "The Dark Portal" }, { AREA_THE_TAINTED_SCAR, "The Tainted Scar" }, - { AREA_POOL_OF_TEARS, "Pool of Tears" }, + { 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_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_TOWER_OF_AZORA, "Tower Of Azora" }, { AREA_MIRROR_LAKE, "Mirror Lake" }, - { AREA_VULGOL_OGRE_MOUND, "Vul'Gol Ogre Mound" }, + { 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, "Alther's Mill" }, + { 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, "Nesingwary's Expedition" }, - { AREA_KURZENS_COMPOUND, "Kurzen's Compound" }, - { AREA_RUINS_OF_ZULKUNDA, "Ruins of Zul'Kunda" }, - { AREA_RUINS_OF_ZULMAMWE, "Ruins of Zul'Mamwe" }, + { 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_MOSHOGG_OGRE_MOUND, "Mosh'Ogg Ogre Mound" }, + { AREA_MOSH_OGG_OGRE_MOUND, "Mosh Ogg Ogre Mound" }, { AREA_THE_STOCKPILE, "The Stockpile" }, - { AREA_SALDEANS_FARM, "Saldean's Farm" }, + { AREA_SALDEANS_FARM, "Saldeans Farm" }, { AREA_SENTINEL_HILL, "Sentinel Hill" }, - { AREA_FURLBROWS_PUMPKIN_FARM, "Furlbrow's Pumpkin Farm" }, + { 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, "Grom'gol Base Camp" }, - { AREA_WHELGARS_EXCAVATION_SITE, "Whelgar's Excavation Site" }, + { 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, "Bal'lal Ruins" }, - { AREA_KALAI_RUINS, "Kal'ai Ruins" }, + { AREA_BALLAL_RUINS, "Ballal Ruins" }, + { AREA_KALAI_RUINS, "Kalai Ruins" }, { AREA_TKASHI_RUINS, "Tkashi Ruins" }, - { AREA_BALIAMAH_RUINS, "Balia'mah Ruins" }, - { AREA_ZIATAJAI_RUINS, "Ziata'jai 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_GNOMEREGAN, "Gnomeregan" }, - { AREA_GOLBOLAR_QUARRY, "Gol'Bolar Quarry" }, + { 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, "Ironband's Excavation Site" }, - { AREA_MOGROSH_STRONGHOLD, "Mo'grosh Stronghold" }, + { 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" }, @@ -1658,54 +2662,54 @@ static const value_string area_strings[] = { { AREA_SILVER_STREAM_MINE, "Silver Stream Mine" }, { AREA_MENETHIL_HARBOR, "Menethil Harbor" }, { AREA_DESIGNER_ISLAND, "Designer Island" }, - { AREA_THE_BULWARK, "The Bulwark" }, - { AREA_RUINS_OF_LORDAERON, "Ruins of Lordaeron" }, + { AREA_THE_BULWARK0, "The Bulwark0" }, + { AREA_RUINS_OF_LORDAERON, "Ruins Of Lordaeron" }, { AREA_DEATHKNELL, "Deathknell" }, - { AREA_NIGHT_WEBS_HOLLOW, "Night Web's Hollow" }, + { 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_TERRACE_OF_REPOSE, "Terrace Of Repose" }, { AREA_BRIGHTWATER_LAKE, "Brightwater Lake" }, - { AREA_GUNTHERS_RETREAT, "Gunther's Retreat" }, - { AREA_GARRENS_HAUNT, "Garren's Haunt" }, + { 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_LAKE, "Lordamere Lake" }, + { AREA_LORDAMERE_LAKE0, "Lordamere Lake0" }, { AREA_FENRIS_ISLE, "Fenris Isle" }, - { AREA_FAOLS_REST, "Faol's Rest" }, + { AREA_FAOLS_REST, "Faols Rest" }, { AREA_DOLANAAR, "Dolanaar" }, - { AREA_DARNASSUS_UNUSED, "Darnassus UNUSED" }, + { AREA_DARNASSUS_UNUSED, "Darnassus Unused" }, { AREA_SHADOWGLEN, "Shadowglen" }, - { AREA_STEELGRILLS_DEPOT, "Steelgrill's Depot" }, + { 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, "Uther's Tomb" }, + { 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, "Dalson's Tears" }, - { AREA_GAHRRONS_WITHERING, "Gahrron's Withering" }, + { 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, "Westfall" }, - { AREA_THE_GREAT_SEA, "The Great Sea" }, + { AREA_WESTFALL1, "Westfall1" }, + { AREA_THE_GREAT_SEA0, "The Great Sea0" }, { AREA_UNUSED_IRONCLADCOVE, "Unused Ironcladcove" }, - { AREA_SHADOWFANG_KEEP, "Shadowfang Keep" }, - { AREA_ON_MAP_DUNGEON3, "***On Map Dungeon***" }, + { AREA_SHADOWFANG_KEEP0, "Shadowfang Keep0" }, + { AREA_ON_MAP_DUNGEON3, "On Map Dungeon3" }, { AREA_ICEFLOW_LAKE, "Iceflow Lake" }, - { AREA_HELMS_BED_LAKE, "Helm's Bed Lake" }, + { AREA_HELMS_BED_LAKE, "Helms Bed Lake" }, { AREA_DEEP_ELEM_MINE, "Deep Elem Mine" }, - { AREA_THE_GREAT_SEA1, "The Great Sea" }, + { AREA_THE_GREAT_SEA1, "The Great Sea1" }, { AREA_MULGORE, "Mulgore" }, { AREA_ALEXSTON_FARMSTEAD, "Alexston Farmstead" }, { AREA_RED_CLOUD_MESA, "Red Cloud Mesa" }, @@ -1715,17 +2719,17 @@ static const value_string area_strings[] = { { AREA_RAVAGED_CARAVAN, "Ravaged Caravan" }, { AREA_RED_ROCKS, "Red Rocks" }, { AREA_THE_SKITTERING_DARK, "The Skittering Dark" }, - { AREA_VALGANS_FIELD, "Valgan's Field" }, + { AREA_VALGANS_FIELD, "Valgans Field" }, { AREA_THE_SEPULCHER, "The Sepulcher" }, - { AREA_OLSENS_FARTHING, "Olsen's Farthing" }, + { AREA_OLSENS_FARTHING, "Olsens Farthing" }, { AREA_THE_GREYMANE_WALL, "The Greymane Wall" }, - { AREA_BERENS_PERIL, "Beren's Peril" }, + { AREA_BERENS_PERIL, "Berens Peril" }, { AREA_THE_DAWNING_ISLES, "The Dawning Isles" }, { AREA_AMBERMILL, "Ambermill" }, { AREA_FENRIS_KEEP, "Fenris Keep" }, - { AREA_SHADOWFANG_KEEP1, "Shadowfang Keep" }, + { AREA_SHADOWFANG_KEEP1, "Shadowfang Keep1" }, { AREA_THE_DECREPIT_FERRY, "The Decrepit Ferry" }, - { AREA_MALDENS_ORCHARD, "Malden's Orchard" }, + { 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" }, @@ -1736,48 +2740,48 @@ static const value_string area_strings[] = { { 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_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 Mountain" }, - { AREA_ALTAR_OF_STORMS, "Altar of Storms" }, + { 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_ALAMETH, "Lake Al'Ameth" }, + { AREA_LAKE_AL_AMETH, "Lake Al Ameth" }, { AREA_STARBREEZE_VILLAGE, "Starbreeze Village" }, { AREA_GNARLPINE_HOLD, "Gnarlpine Hold" }, - { AREA_BANETHIL_BARROW_DEN, "Ban'ethil Barrow Den" }, + { 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_PLAINS_OF_SNOW, "Plains of Snow" }, - { AREA_DUN_ALGAZ, "Dun Algaz" }, - { AREA_SOUTHSHORE, "Southshore" }, - { AREA_TARREN_MILL, "Tarren Mill" }, - { AREA_DURNHOLDE_KEEP, "Durnholde Keep" }, - { AREA_UNUSED_STONEWROUGHT_PASS, "UNUSED Stonewrought Pass" }, + { 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_RUINS_OF_ALTERAC, "Ruins Of Alterac" }, { AREA_CRUSHRIDGE_HOLD, "Crushridge Hold" }, { AREA_SLAUGHTER_HOLLOW, "Slaughter Hollow" }, { AREA_THE_UPLANDS, "The Uplands" }, - { AREA_SOUTHPOINT_TOWER, "Southpoint Tower" }, - { AREA_HILLSBRAD_FIELDS, "Hillsbrad Fields" }, + { AREA_SOUTHPOINT_TOWER0, "Southpoint Tower0" }, + { AREA_HILLSBRAD_FIELDS0, "Hillsbrad Fields0" }, { AREA_HILLSBRAD, "Hillsbrad" }, - { AREA_AZURELODE_MINE, "Azurelode Mine" }, - { AREA_NETHANDER_STEAD, "Nethander Stead" }, - { AREA_DUN_GAROK, "Dun Garok" }, - { AREA_THORADINS_WALL, "Thoradin's Wall" }, - { AREA_EASTERN_STRAND, "Eastern Strand" }, - { AREA_WESTERN_STRAND, "Western Strand" }, - { AREA_SOUTH_SEAS_UNUSED, "South Seas UNUSED" }, + { 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" }, @@ -1785,37 +2789,37 @@ static const value_string area_strings[] = { { AREA_THE_SAVAGE_COAST, "The Savage Coast" }, { AREA_THE_CRYSTAL_SHORE, "The Crystal Shore" }, { AREA_SHELL_BEACH, "Shell Beach" }, - { AREA_NORTH_TIDES_RUN, "North Tide's Run" }, - { AREA_SOUTH_TIDES_RUN, "South Tide's Run" }, + { AREA_NORTH_TIDES_RUN, "North Tides Run" }, + { AREA_SOUTH_TIDES_RUN, "South Tides Run" }, { AREA_THE_OVERLOOK_CLIFFS, "The Overlook Cliffs" }, - { AREA_THE_FORBIDDING_SEA, "The Forbidding Sea" }, - { AREA_IRONBEARDS_TOMB, "Ironbeard's Tomb" }, + { 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, "Janeiro's Point" }, + { AREA_RUINS_OF_ABORAZ, "Ruins Of Aboraz" }, + { AREA_JANEIROS_POINT, "Janeiros Point" }, { AREA_NORTHFOLD_MANOR, "Northfold Manor" }, - { AREA_GOSHEK_FARM, "Go'Shek Farm" }, - { AREA_DABYRIES_FARMSTEAD, "Dabyrie's Farmstead" }, + { 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_OBREENS_CAMP, "O'Breen's Camp" }, + { AREA_O_BREENS_CAMP, "O Breens Camp" }, { AREA_STROMGARDE_KEEP, "Stromgarde Keep" }, - { AREA_THE_TOWER_OF_ARATHOR, "The Tower of Arathor" }, + { AREA_THE_TOWER_OF_ARATHOR, "The Tower Of Arathor" }, { AREA_THE_SANCTUM, "The Sanctum" }, - { AREA_FALDIRS_COVE, "Faldir's Cove" }, + { AREA_FALDIRS_COVE, "Faldirs Cove" }, { AREA_THE_DROWNED_REEF, "The Drowned Reef" }, - { AREA_THANDOL_SPAN, "Thandol Span" }, + { AREA_THANDOL_SPAN0, "Thandol Span0" }, { AREA_ASHENVALE, "Ashenvale" }, - { AREA_THE_GREAT_SEA_UNUSED, "The Great Sea UNUSED" }, - { 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, "Apocryphan's Rest" }, + { 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" }, @@ -1823,29 +2827,29 @@ static const value_string area_strings[] = { { AREA_CAMP_BOFF, "Camp Boff" }, { AREA_CAMP_WURG, "Camp Wurg" }, { AREA_CAMP_CAGG, "Camp Cagg" }, - { AREA_AGMONDS_END, "Agmond's End" }, - { AREA_HAMMERTOES_DIGSITE, "Hammertoe's Digsite" }, + { 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_QUELDANIL_LODGE, "Quel'Danil Lodge" }, + { AREA_QUEL_DANIL_LODGE, "Quel Danil Lodge" }, { AREA_SKULK_ROCK, "Skulk Rock" }, - { AREA_ZUNWATHA, "Zun'watha" }, - { AREA_SHADRAALOR, "Shadra'Alor" }, - { AREA_JINTHAALOR, "Jintha'Alor" }, - { AREA_THE_ALTAR_OF_ZUL, "The Altar of Zul" }, + { 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_THE_VENTURE_CO_MINE, "The Venture Co Mine" }, { AREA_FELWOOD, "Felwood" }, { AREA_RAZOR_HILL, "Razor Hill" }, - { AREA_VALLEY_OF_TRIALS, "Valley of Trials" }, + { 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, "Sen'jin Village" }, + { AREA_SENJIN_VILLAGE, "Senjin Village" }, { AREA_ECHO_ISLES, "Echo Isles" }, { AREA_THUNDER_RIDGE, "Thunder Ridge" }, { AREA_DRYGULCH_RAVINE, "Drygulch Ravine" }, @@ -1854,7 +2858,7 @@ static const value_string area_strings[] = { { AREA_SCUTTLE_COAST, "Scuttle Coast" }, { AREA_BLADEFIST_BAY, "Bladefist Bay" }, { AREA_DEADEYE_SHORE, "Deadeye Shore" }, - { AREA_SOUTHFURY_RIVER, "Southfury River" }, + { AREA_SOUTHFURY_RIVER0, "Southfury River0" }, { AREA_CAMP_TAURAJO, "Camp Taurajo" }, { AREA_FAR_WATCH_POST, "Far Watch Post" }, { AREA_THE_CROSSROADS, "The Crossroads" }, @@ -1866,12 +2870,12 @@ static const value_string area_strings[] = { { 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_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_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" }, @@ -1879,21 +2883,21 @@ static const value_string area_strings[] = { { AREA_THOUSAND_NEEDLES, "Thousand Needles" }, { AREA_THE_TIDUS_STAIR, "The Tidus Stair" }, { AREA_SHADY_REST_INN, "Shady Rest Inn" }, - { AREA_BAELDUN_DIGSITE, "Bael'dun Digsite" }, + { AREA_BAELDUN_DIGSITE, "Baeldun Digsite" }, { AREA_DESOLACE, "Desolace" }, { AREA_STONETALON_MOUNTAINS, "Stonetalon Mountains" }, - { AREA_ORGRIMMAR_UNUSED, "Orgrimmar UNUSED" }, - { AREA_GILLIJIMS_ISLE, "Gillijim's Isle" }, - { AREA_ISLAND_OF_DOCTOR_LAPIDIS, "Island of Doctor Lapidis" }, + { 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, "Bathran's Haunt" }, - { AREA_THE_RUINS_OF_ORDILARAN, "The Ruins of Ordil'Aran" }, - { AREA_MAESTRAS_POST, "Maestra's Post" }, + { 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_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_RUINS_OF_STARDUST, "The Ruins Of Stardust" }, { AREA_THE_HOWLING_VALE, "The Howling Vale" }, { AREA_SILVERWIND_REFUGE, "Silverwind Refuge" }, { AREA_MYSTRAL_LAKE, "Mystral Lake" }, @@ -1906,7 +2910,7 @@ static const value_string area_strings[] = { { AREA_XAVIAN, "Xavian" }, { AREA_SATYRNAAR, "Satyrnaar" }, { AREA_SPLINTERTREE_POST, "Splintertree Post" }, - { AREA_THE_DORDANIL_BARROW_DEN, "The Dor'Danil Barrow Den" }, + { 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" }, @@ -1917,20 +2921,20 @@ static const value_string area_strings[] = { { 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_RUINS_OF_MATHYSTRA, "Ruins Of Mathystra" }, + { AREA_TOWER_OF_ALTHALAXX, "Tower Of Althalaxx" }, { AREA_CLIFFSPRING_FALLS, "Cliffspring Falls" }, - { AREA_BASHALARAN, "Bashal'Aran" }, - { AREA_AMETHARAN, "Ameth'Aran" }, - { AREA_GROVE_OF_THE_ANCIENTS, "Grove of the Ancients" }, - { AREA_THE_MASTERS_GLAIVE, "The Master's Glaive" }, - { AREA_REMTRAVELS_EXCAVATION, "Remtravel's Excavation" }, - { AREA_MISTS_EDGE, "Mist's Edge" }, + { 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_SEA, "The Veiled Sea" }, + { 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" }, @@ -1938,41 +2942,41 @@ static const value_string area_strings[] = { { 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_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_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_RISEUNUSED, "Spirit RiseUNUSED" }, - { AREA_ELDER_RISEUNUSED, "Elder RiseUNUSED" }, - { AREA_RUINS_OF_JUBUWAL, "Ruins of Jubuwal" }, - { AREA_POOLS_OF_ARLITHRIEN, "Pools of Arlithrien" }, + { 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 E'thok" }, + { 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_LIFT, "The Great Lift" }, + { 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_UNGORO_CRATER, "Un'Goro Crater" }, - { AREA_RAZORFEN_KRAUL, "Razorfen Kraul" }, + { AREA_UN_GORO_CRATER, "Un Goro Crater" }, + { AREA_RAZORFEN_KRAUL0, "Razorfen Kraul0" }, { AREA_RAVEN_HILL_CEMETERY, "Raven Hill Cemetery" }, { AREA_MOONGLADE, "Moonglade" }, - { AREA_DELETE_ME, "DELETE ME" }, + { 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, "Beezil's Wreck" }, + { AREA_BEEZILS_WRECK, "Beezils Wreck" }, { AREA_WITCH_HILL, "Witch Hill" }, { AREA_SENTRY_POINT, "Sentry Point" }, { AREA_NORTH_POINT_TOWER, "North Point Tower" }, @@ -1980,37 +2984,37 @@ static const value_string area_strings[] = { { AREA_LOST_POINT, "Lost Point" }, { AREA_BLUEFEN, "Bluefen" }, { AREA_STONEMAUL_RUINS, "Stonemaul Ruins" }, - { AREA_THE_DEN_OF_FLAME, "The Den of Flame" }, + { AREA_THE_DEN_OF_FLAME, "The Den Of Flame" }, { AREA_THE_DRAGONMURK, "The Dragonmurk" }, { AREA_WYRMBOG, "Wyrmbog" }, - { AREA_ONYXIAS_LAIR_UNUSED, "Onyxia's Lair UNUSED" }, + { 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, "Addle's Stead" }, + { 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, "Marshal's Refuge" }, + { 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, "Beggar's Haunt" }, + { AREA_BEGGARS_HAUNT, "Beggars Haunt" }, { AREA_KODO_GRAVEYARD, "Kodo Graveyard" }, { AREA_GHOST_WALKER_POST, "Ghost Walker Post" }, - { AREA_SARTHERIS_STRAND, "Sar'theris Strand" }, + { AREA_SARTHERIS_STRAND, "Sartheris Strand" }, { AREA_THUNDER_AXE_FORTRESS, "Thunder Axe Fortress" }, - { AREA_BOLGANS_HOLE, "Bolgan's Hole" }, + { 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, "Nijel's Point" }, + { AREA_VALLEY_OF_SPEARS, "Valley Of Spears" }, + { AREA_NIJELS_POINT, "Nijels Point" }, { AREA_KOLKAR_VILLAGE, "Kolkar Village" }, { AREA_HYJAL, "Hyjal" }, { AREA_WINTERSPRING, "Winterspring" }, @@ -2018,27 +3022,27 @@ static const value_string area_strings[] = { { 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 Elune'ara" }, + { 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, "Craftsmen's Terrace UNUSED" }, - { AREA_TRADESMENS_TERRACE_UNUSED, "Tradesmen's 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, "Warrior's Terrace UNUSED" }, - { AREA_RUTTHERAN_VILLAGE, "Rut'theran Village" }, - { AREA_IRONBANDS_COMPOUND, "Ironband's Compound" }, + { 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_DEEPS, "Blackfathom Deeps" }, + { AREA_BLACKFATHOM_DEEPS0, "Blackfathom Deeps0" }, { AREA_FRAY_ISLAND, "Fray Island" }, - { AREA_GNOMEREGAN1, "Gnomeregan" }, - { AREA_RAZORFEN_DOWNS, "Razorfen Downs" }, - { AREA_BANETHIL_HOLLOW, "Ban'ethil Hollow" }, + { AREA_GNOMEREGAN1, "Gnomeregan1" }, + { AREA_RAZORFEN_DOWNS0, "Razorfen Downs0" }, + { AREA_BANETHIL_HOLLOW, "Banethil Hollow" }, { AREA_SCARLET_MONASTERY, "Scarlet Monastery" }, - { AREA_JERODS_LANDING, "Jerod's Landing" }, + { AREA_JERODS_LANDING, "Jerods Landing" }, { AREA_RIDGEPOINT_TOWER, "Ridgepoint Tower" }, { AREA_THE_DARKENED_BANK, "The Darkened Bank" }, { AREA_COLDRIDGE_PASS, "Coldridge Pass" }, @@ -2046,53 +3050,53 @@ static const value_string area_strings[] = { { AREA_SHIMMER_RIDGE, "Shimmer Ridge" }, { AREA_AMBERSTILL_RANCH, "Amberstill Ranch" }, { AREA_THE_TUNDRID_HILLS, "The Tundrid Hills" }, - { AREA_SOUTH_GATE_PASS, "South Gate Pass" }, + { AREA_SOUTH_GATE_PASS0, "South Gate Pass0" }, { AREA_SOUTH_GATE_OUTPOST, "South Gate Outpost" }, - { AREA_NORTH_GATE_PASS, "North Gate Pass" }, + { AREA_NORTH_GATE_PASS0, "North Gate Pass0" }, { AREA_NORTH_GATE_OUTPOST, "North Gate Outpost" }, - { AREA_GATES_OF_IRONFORGE, "Gates of Ironforge" }, + { 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 Bulwark" }, - { AREA_SOUTHFURY_RIVER1, "Southfury River" }, - { AREA_SOUTHFURY_RIVER2, "Southfury River" }, + { 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 Algaz" }, - { AREA_DUN_ALGAZ2, "Dun Algaz" }, - { AREA_NORTH_GATE_PASS1, "North Gate Pass" }, - { AREA_SOUTH_GATE_PASS1, "South Gate Pass" }, + { 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 ME" }, - { AREA_SOUTHFURY_RIVER3, "Southfury River" }, - { AREA_SOUTHFURY_RIVER4, "Southfury River" }, - { AREA_THANDOL_SPAN1, "Thandol Span" }, - { AREA_THANDOL_SPAN2, "Thandol Span" }, + { 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, "Stendel's Pond" }, + { AREA_STENDELS_POND, "Stendels Pond" }, { AREA_THE_DAGGER_HILLS, "The Dagger Hills" }, - { AREA_DEMONTS_PLACE, "Demont's Place" }, + { 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_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 Tide's Hollow" }, + { 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_ZULFARRAK, "Zul'Farrak" }, + { AREA_ZUL_FARRAK0, "Zul Farrak0" }, { AREA_SANDSORROW_WATCH, "Sandsorrow Watch" }, { AREA_THISTLESHRUB_VALLEY, "Thistleshrub Valley" }, { AREA_THE_GAPING_CHASM, "The Gaping Chasm" }, @@ -2100,16 +3104,16 @@ static const value_string area_strings[] = { { AREA_DUNEMAUL_COMPOUND, "Dunemaul Compound" }, { AREA_EASTMOON_RUINS, "Eastmoon Ruins" }, { AREA_WATERSPRING_FIELD, "Waterspring Field" }, - { AREA_ZALASHJIS_DEN, "Zalashji's Den" }, - { AREA_LANDS_END_BEACH, "Land's End Beach" }, + { 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, "Gunstan's Post" }, + { AREA_VALLEY_OF_THE_WATCHERS, "Valley Of The Watchers" }, + { AREA_GUNSTANS_POST, "Gunstans Post" }, { AREA_SOUTHMOON_RUINS, "Southmoon Ruins" }, - { AREA_RENDERS_CAMP, "Render's Camp" }, - { AREA_RENDERS_VALLEY, "Render's Valley" }, - { AREA_RENDERS_ROCK, "Render's Rock" }, + { 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" }, @@ -2117,19 +3121,19 @@ static const value_string area_strings[] = { { AREA_DIREFORGE_HILL, "Direforge Hill" }, { AREA_RAPTOR_RIDGE, "Raptor Ridge" }, { AREA_BLACK_CHANNEL_MARSH, "Black Channel Marsh" }, - { AREA_THE_GREEN_BELT, "The Green Belt" }, + { 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 Belt" }, + { 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_HILL, "Darrow Hill" }, - { AREA_THORADINS_WALL1, "Thoradin's Wall" }, + { 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" }, @@ -2138,7 +3142,7 @@ static const value_string area_strings[] = { { AREA_THE_WRITHING_DEEP, "The Writhing Deep" }, { AREA_WILDWIND_LAKE, "Wildwind Lake" }, { AREA_GORDUNNI_OUTPOST, "Gordunni Outpost" }, - { AREA_MOKGORDUN, "Mok'Gordun" }, + { AREA_MOK_GORDUN, "Mok Gordun" }, { AREA_FERAL_SCAR_VALE, "Feral Scar Vale" }, { AREA_FRAYFEATHER_HIGHLANDS, "Frayfeather Highlands" }, { AREA_IDLEWIND_LAKE, "Idlewind Lake" }, @@ -2148,34 +3152,34 @@ static const value_string area_strings[] = { { AREA_DREAM_BOUGH, "Dream Bough" }, { AREA_JADEMIR_LAKE, "Jademir Lake" }, { AREA_ONEIROS, "Oneiros" }, - { AREA_RUINS_OF_RAVENWIND, "Ruins of Ravenwind" }, + { 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_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_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_ZULFARRAK1, "Zul'Farrak" }, - { AREA_UNUSEDALCAZ_ISLAND, "UNUSEDAlcaz Island" }, - { AREA_TIMBERMAW_HOLD, "Timbermaw Hold" }, + { AREA_ZUL_FARRAK1, "Zul Farrak1" }, + { AREA_UNUSED_ALCAZ_ISLAND, "Unused Alcaz Island" }, + { AREA_TIMBERMAW_HOLD0, "Timbermaw Hold0" }, { AREA_VANNDIR_ENCAMPMENT, "Vanndir Encampment" }, - { AREA_TESTAZSHARA, "TESTAzshara" }, + { 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, "Hetaera's Clutch" }, - { AREA_TEMPLE_OF_ZIN_MALOR, "Temple of Zin-Malor" }, - { AREA_BEARS_HEAD, "Bear's Head" }, + { 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_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_TOWER_OF_ELDARA, "Tower Of Eldara" }, { AREA_JAGGED_REEF, "Jagged Reef" }, { AREA_SOUTHRIDGE_BEACH, "Southridge Beach" }, { AREA_RAVENCREST_MONUMENT, "Ravencrest Monument" }, @@ -2185,38 +3189,38 @@ static const value_string area_strings[] = { { AREA_HALDARR_ENCAMPMENT, "Haldarr Encampment" }, { AREA_VALORMOK, "Valormok" }, { AREA_THE_RUINED_REACHES, "The Ruined Reaches" }, - { AREA_THE_TALONDEEP_PATH, "The Talondeep Path" }, - { AREA_THE_TALONDEEP_PATH1, "The Talondeep Path" }, + { 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 Downs" }, + { AREA_RAZORFEN_DOWNS1, "Razorfen Downs1" }, { AREA_LOST_RIGGER_COVE, "Lost Rigger Cove" }, - { AREA_ULDAMAN, "Uldaman" }, - { AREA_LORDAMERE_LAKE1, "Lordamere Lake" }, - { AREA_LORDAMERE_LAKE2, "Lordamere Lake" }, - { AREA_GALLOWS_CORNER, "Gallows' Corner" }, + { 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, "Serpent's Coil" }, - { AREA_ALTAR_OF_STORMS1, "Altar of Storms" }, + { 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 Mountain" }, - { AREA_UNUSED002, "Unused002" }, + { 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_ATALHAKKAR, "The Temple of Atal'Hakkar" }, + { AREA_THE_TEMPLE_OF_ATAL_HAKKAR, "The Temple Of Atal Hakkar" }, { AREA_UNDERCITY, "Undercity" }, - { AREA_ULDAMAN1, "Uldaman" }, + { 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_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" }, @@ -2224,14 +3228,14 @@ static const value_string area_strings[] = { { 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, "Grol'dom Farm UNUSED" }, - { AREA_THE_MORSHAN_RAMPART_UNUSED, "The Mor'shan Rampart UNUSED" }, - { AREA_HONORS_STAND_UNUSED, "Honor's Stand UNUSED" }, - { AREA_BLACKTHORN_RIDGE_UNUSED, "Blackthorn Ridge UNUSED" }, - { AREA_BRAMBLESCAR_UNUSED, "Bramblescar UNUSED" }, - { AREA_AGAMAGOR_UNUSED, "Agama'gor UNUSED" }, - { AREA_VALLEY_OF_HEROES, "Valley of Heroes" }, + { 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" }, @@ -2239,38 +3243,38 @@ static const value_string area_strings[] = { { AREA_HUNTER_RISE, "Hunter Rise" }, { AREA_DARNASSUS, "Darnassus" }, { AREA_CENARION_ENCLAVE, "Cenarion Enclave" }, - { AREA_CRAFTSMENS_TERRACE, "Craftsmen's Terrace" }, - { AREA_WARRIORS_TERRACE, "Warrior's Terrace" }, + { AREA_CRAFTSMENS_TERRACE, "Craftsmens Terrace" }, + { AREA_WARRIORS_TERRACE, "Warriors Terrace" }, { AREA_THE_TEMPLE_GARDENS, "The Temple Gardens" }, - { AREA_TRADESMENS_TERRACE, "Tradesmen's Terrace" }, - { AREA_GAVINS_NAZE, "Gavin's Naze" }, - { AREA_SOFERAS_NAZE, "Sofera's Naze" }, - { AREA_CORRAHNS_DAGGER, "Corrahn's Dagger" }, + { 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, "Dandred's Fold" }, + { 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, "Agama'gor" }, + { AREA_AGAMAGOR, "Agamagor" }, { AREA_BLACKTHORN_RIDGE, "Blackthorn Ridge" }, - { AREA_HONORS_STAND, "Honor's Stand" }, - { AREA_THE_MORSHAN_RAMPART, "The Mor'shan Rampart" }, - { AREA_GROLDOM_FARM, "Grol'dom Farm" }, - { AREA_RAZORFEN_KRAUL1, "Razorfen Kraul" }, - { AREA_THE_GREAT_LIFT1, "The Great Lift" }, + { 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, "Nek'mani Wellspring" }, + { AREA_NEKMANI_WELLSPRING, "Nekmani Wellspring" }, { AREA_BLOODSAIL_COMPOUND, "Bloodsail Compound" }, - { AREA_VENTURE_CO_BASE_CAMP, "Venture Co. Base Camp" }, + { 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 Damsel's Luck" }, - { AREA_VENTURE_CO_OPERATIONS_CENTER, "Venture Co. Operations Center" }, + { 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" }, @@ -2279,49 +3283,49 @@ static const value_string area_strings[] = { { AREA_SHATTER_SCAR_VALE, "Shatter Scar Vale" }, { AREA_IRONTREE_WOODS, "Irontree Woods" }, { AREA_IRONTREE_CAVERN, "Irontree Cavern" }, - { AREA_TIMBERMAW_HOLD1, "Timbermaw Hold" }, + { AREA_TIMBERMAW_HOLD1, "Timbermaw Hold1" }, { AREA_SHADOW_HOLD, "Shadow Hold" }, - { AREA_SHRINE_OF_THE_DECEIVER, "Shrine of the Deceiver" }, - { AREA_ITHARIUSS_CAVE, "Itharius's Cave" }, + { AREA_SHRINE_OF_THE_DECEIVER, "Shrine Of The Deceiver" }, + { AREA_ITHARIUSS_CAVE, "Ithariuss Cave" }, { AREA_SORROWMURK, "Sorrowmurk" }, - { AREA_DRAENILDUR_VILLAGE, "Draenil'dur Village" }, + { 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, "Thoradin's Wall" }, - { AREA_BOULDERGOR, "Boulder'gor" }, - { AREA_VALLEY_OF_FANGS, "Valley of Fangs" }, + { 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, "Featherbeard's Hovel" }, - { AREA_SHINDIGGERS_CAMP, "Shindigger's Camp" }, + { AREA_FEATHERBEARDS_HOVEL, "Featherbeards Hovel" }, + { AREA_SHINDIGGERS_CAMP, "Shindiggers Camp" }, { AREA_PLAGUEMIST_RAVINE, "Plaguemist Ravine" }, { AREA_VALORWIND_LAKE, "Valorwind Lake" }, - { AREA_AGOLWATHA, "Agol'watha" }, - { AREA_HIRIWATHA, "Hiri'watha" }, + { AREA_AGOLWATHA, "Agolwatha" }, + { AREA_HIRIWATHA, "Hiriwatha" }, { AREA_THE_CREEPING_RUIN, "The Creeping Ruin" }, - { AREA_BOGENS_LEDGE, "Bogen's Ledge" }, - { AREA_THE_MAKERS_TERRACE, "The Maker's Terrace" }, + { AREA_BOGENS_LEDGE, "Bogens Ledge" }, + { AREA_THE_MAKERS_TERRACE, "The Makers Terrace" }, { AREA_DUSTWIND_GULCH, "Dustwind Gulch" }, - { AREA_SHAOLWATHA, "Shaol'watha" }, + { 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_TIME, "Caverns of Time" }, + { 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_ZULGURUB1, "Zul'Gurub" }, + { AREA_ZUL_GURUB1, "Zul Gurub1" }, { AREA_MISTY_REED_POST, "Misty Reed Post" }, - { AREA_BLOODVENOM_POST_, "Bloodvenom Post " }, - { AREA_TALONBRANCH_GLADE_, "Talonbranch Glade " }, - { AREA_STRATHOLME, "Stratholme" }, - { AREA_UNUSEDSHADOWFANG_KEEP_003, "UNUSEDShadowfang Keep 003" }, + { 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" }, @@ -2336,21 +3340,21 @@ static const value_string area_strings[] = { { 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_VISIONUNUSED, "The Pools of VisionUNUSED" }, + { 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, "Bael'dun Keep" }, - { AREA_EMBERSTRIFES_DEN, "Emberstrife's Den" }, - { AREA_ONYXIAS_LAIR, "Onyxia's Lair" }, + { AREA_BAELDUN_KEEP, "Baeldun Keep" }, + { AREA_EMBERSTRIFES_DEN, "Emberstrifes Den" }, + { AREA_ONYXIAS_LAIR, "Onyxias Lair" }, { AREA_WINDSHEAR_MINE, "Windshear Mine" }, - { AREA_ROLANDS_DOOM, "Roland's Doom" }, - { AREA_THE_GREAT_ARENA, "The Great Arena" }, - { AREA_THE_POOLS_OF_VISION, "The Pools of Vision" }, + { 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, "Zane's Eye Crater" }, + { AREA_ZANES_EYE_CRATER, "Zanes Eye Crater" }, { AREA_MIRAGE_RACEWAY, "Mirage Raceway" }, { AREA_FROSTSABER_ROCK, "Frostsaber Rock" }, { AREA_THE_HIDDEN_GROVE, "The Hidden Grove" }, @@ -2362,128 +3366,128 @@ static const value_string area_strings[] = { { AREA_DUN_MANDARR, "Dun Mandarr" }, { AREA_FROSTWHISPER_GORGE, "Frostwhisper Gorge" }, { AREA_OWL_WING_THICKET, "Owl Wing Thicket" }, - { AREA_LAKE_KELTHERIL, "Lake Kel'Theril" }, - { AREA_THE_RUINS_OF_KELTHERIL, "The Ruins of Kel'Theril" }, + { AREA_LAKE_KEL_THERIL, "Lake Kel Theril" }, + { AREA_THE_RUINS_OF_KEL_THERIL, "The Ruins Of Kel Theril" }, { AREA_STARFALL_VILLAGE, "Starfall Village" }, - { AREA_BANTHALLOW_BARROW_DEN, "Ban'Thallow Barrow Den" }, + { 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_UNUSEDTHE_MARRIS_STEAD, "UNUSEDThe Marris Stead" }, + { 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, "Corin's Crossing" }, + { AREA_CORINS_CROSSING, "Corins Crossing" }, { AREA_SCARLET_BASE_CAMP, "Scarlet Base Camp" }, - { AREA_TYRS_HAND, "Tyr's Hand" }, + { AREA_TYRS_HAND, "Tyrs Hand" }, { AREA_THE_SCARLET_BASILICA, "The Scarlet Basilica" }, - { AREA_LIGHTS_HOPE_CHAPEL, "Light's Hope Chapel" }, + { 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_ZULMASHAR, "Zul'Mashar" }, - { AREA_MAZRAALOR, "Mazra'Alor" }, + { AREA_ZUL_MASHAR, "Zul Mashar" }, + { AREA_MAZRA_ALOR, "Mazra Alor" }, { AREA_NORTHPASS_TOWER, "Northpass Tower" }, - { AREA_QUELLITHIEN_LODGE, "Quel'Lithien Lodge" }, + { AREA_QUEL_LITHIEN_LODGE, "Quel Lithien Lodge" }, { AREA_PLAGUEWOOD, "Plaguewood" }, { AREA_SCOURGEHOLD, "Scourgehold" }, - { AREA_STRATHOLME1, "Stratholme" }, - { AREA_UNUSED_STRATHOLME, "UNUSED Stratholme" }, - { AREA_DARROWMERE_LAKE, "Darrowmere Lake" }, + { AREA_STRATHOLME1, "Stratholme1" }, + { AREA_UNUSED_STRATHOLME, "Unused Stratholme" }, + { AREA_DARROWMERE_LAKE0, "Darrowmere Lake0" }, { AREA_CAER_DARROW, "Caer Darrow" }, - { AREA_DARROWMERE_LAKE1, "Darrowmere Lake" }, - { AREA_CAVERNS_OF_TIME1, "Caverns of Time" }, + { 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_SEAS, "South Seas" }, - { AREA_THE_GREAT_SEA2, "The Great Sea" }, - { AREA_THE_GREAT_SEA3, "The Great Sea" }, - { AREA_THE_GREAT_SEA4, "The Great Sea" }, - { AREA_THE_GREAT_SEA5, "The Great Sea" }, - { AREA_THE_VEILED_SEA1, "The Veiled Sea" }, - { AREA_THE_VEILED_SEA2, "The Veiled Sea" }, - { AREA_THE_VEILED_SEA3, "The Veiled Sea" }, - { AREA_THE_VEILED_SEA4, "The Veiled Sea" }, - { AREA_THE_VEILED_SEA5, "The Veiled Sea" }, + { 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 Seas" }, - { AREA_THE_GREAT_SEA6, "The Great Sea" }, + { 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_SHRINE_OF_REMULOS, "Shrine Of Remulos" }, { AREA_STORMRAGE_BARROW_DENS, "Stormrage Barrow Dens" }, - { AREA_THE_GREAT_SEA7, "The Great Sea" }, - { AREA_THE_GREAT_SEA8, "The Great Sea" }, + { 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 Mill" }, - { AREA_SOUTHSHORE1, "Southshore" }, - { AREA_DURNHOLDE_KEEP1, "Durnholde Keep" }, - { AREA_DUN_GAROK1, "Dun Garok" }, - { AREA_HILLSBRAD_FIELDS1, "Hillsbrad Fields" }, - { AREA_EASTERN_STRAND1, "Eastern Strand" }, - { AREA_NETHANDER_STEAD1, "Nethander Stead" }, - { AREA_DARROW_HILL1, "Darrow Hill" }, - { AREA_SOUTHPOINT_TOWER1, "Southpoint Tower" }, - { AREA_THORADINS_WALL3, "Thoradin's Wall" }, - { AREA_WESTERN_STRAND1, "Western Strand" }, - { AREA_AZURELODE_MINE1, "Azurelode Mine" }, - { AREA_THE_GREAT_SEA9, "The Great Sea" }, - { AREA_THE_GREAT_SEA10, "The Great Sea" }, - { AREA_THE_GREAT_SEA11, "The Great Sea" }, - { AREA_THE_FORBIDDING_SEA1, "The Forbidding Sea" }, - { AREA_THE_FORBIDDING_SEA2, "The Forbidding Sea" }, - { AREA_THE_FORBIDDING_SEA3, "The Forbidding Sea" }, - { AREA_THE_FORBIDDING_SEA4, "The Forbidding Sea" }, + { 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, "Kormek's Hut" }, + { AREA_KORMEKS_HUT, "Kormeks Hut" }, { AREA_SHADOWPREY_VILLAGE, "Shadowprey Village" }, { AREA_BLACKROCK_PASS, "Blackrock Pass" }, - { AREA_MORGANS_VIGIL, "Morgan's Vigil" }, + { AREA_MORGANS_VIGIL, "Morgans Vigil" }, { AREA_SLITHER_ROCK, "Slither Rock" }, { AREA_TERROR_WING_PATH, "Terror Wing Path" }, - { AREA_DRACODAR, "Draco'dar" }, + { AREA_DRACODAR, "Dracodar" }, { AREA_RAGEFIRE_CHASM, "Ragefire Chasm" }, { AREA_NIGHTSONG_WOODS, "Nightsong Woods" }, - { AREA_THE_VEILED_SEA6, "The Veiled Sea" }, - { AREA_MORLOSARAN, "Morlos'Aran" }, + { 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_RUINS_OF_CONSTELLAS, "Ruins Of Constellas" }, { AREA_BITTER_REACHES, "Bitter Reaches" }, - { AREA_RISE_OF_THE_DEFILER, "Rise of the Defiler" }, - { AREA_LARISS_PAVILLION, "Lariss Pavillion" }, + { 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_RUINS_OF_ISILDIEN, "Ruins Of Isildien" }, { AREA_GRIMTOTEM_POST, "Grimtotem Post" }, { AREA_CAMP_APARAJE, "Camp Aparaje" }, - { AREA_MALAKAJIN, "Malaka'jin" }, + { AREA_MALAKAJIN, "Malakajin" }, { AREA_BOULDERSLIDE_RAVINE, "Boulderslide Ravine" }, { AREA_SISHIR_CANYON, "Sishir Canyon" }, - { AREA_DIRE_MAUL, "Dire Maul" }, + { AREA_DIRE_MAUL0, "Dire Maul0" }, { AREA_DEADWIND_RAVINE, "Deadwind Ravine" }, { AREA_DIAMONDHEAD_RIVER, "Diamondhead River" }, - { AREA_ARIDENS_CAMP, "Ariden's Camp" }, - { AREA_GROSHGOK_COMPOUND, "Grosh'gok Compound" }, + { AREA_ARIDENS_CAMP, "Aridens Camp" }, + { AREA_THE_VICE, "The Vice" }, { AREA_KARAZHAN, "Karazhan" }, - { AREA_MORGANS_PLOT, "Morgan's Plot" }, - { AREA_DIRE_MAUL1, "Dire Maul" }, - { AREA_ALTERAC_VALLEY, "Alterac Valley" }, - { AREA_SCRABBLESCREWS_CAMP, "Scrabblescrew's Camp" }, + { 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_RIVER, "Thondroril River" }, - { AREA_THONDRORIL_RIVER1, "Thondroril River" }, + { 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" }, @@ -2492,30 +3496,3492 @@ static const value_string area_strings[] = { { AREA_TERRORWEB_TUNNEL, "Terrorweb Tunnel" }, { AREA_TERRORDALE, "Terrordale" }, { AREA_KARGATHIA_KEEP, "Kargathia Keep" }, - { AREA_VALLEY_OF_BONES, "Valley of Bones" }, + { AREA_VALLEY_OF_BONES, "Valley Of Bones" }, { AREA_BLACKWING_LAIR, "Blackwing Lair" }, - { AREA_DEADMANS_CROSSING, "Deadman's Crossing" }, + { 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_HIVEASHI, "Hive'Ashi" }, - { AREA_HIVEZORA, "Hive'Zora" }, - { AREA_HIVEREGAL, "Hive'Regal" }, - { AREA_SHRINE_OF_THE_FALLEN_WARRIOR, "Shrine of the Fallen Warrior" }, - { AREA_UNUSED_ALTERAC_VALLEY, "UNUSED Alterac Valley" }, - { AREA_BLACKFATHOM_DEEPS1, "Blackfathom Deeps" }, - { AREA_ON_MAP_DUNGEON4, "***On Map Dungeon***" }, - { AREA_THE_MASTERS_CELLAR, "The Master's Cellar" }, + { 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 Valley" }, - { AREA_GADGETZAN_ARENA, "Gadgetzan Arena" }, + { AREA_ALTERAC_VALLEY1, "Alterac Valley1" }, + { AREA_THE_RUMBLE_CAGE, "The Rumble Cage" }, { AREA_CHUNK_TEST, "Chunk Test" }, - { AREA_ZORAMGAR_OUTPOST, "Zoram'gar Outpost" }, - { 0, NULL }, + { 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_OR_RELIC = 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, +} e_inventory_type; +static const value_string e_inventory_type_strings[] = { + { INVENTORY_TYPE_NON_EQUIP, "Non Equip" }, + { INVENTORY_TYPE_HEAD, "Head" }, + { INVENTORY_TYPE_NECK_OR_RELIC, "Neck Or Relic" }, + { 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" }, + { 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 { + 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 = 0xFFFFFFFF, +} 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 { + 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 { + 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 { + 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 { + 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 { + 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_NOTBANKER = 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_NOTBANKER, "Notbanker" }, + { 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_DBERROR = 0x0, + GM_TICKET_STATUS_HASTEXT = 0x6, + GM_TICKET_STATUS_DEFAULT = 0xA, +} e_gm_ticket_status; +static const value_string e_gm_ticket_status_strings[] = { + { GM_TICKET_STATUS_DBERROR, "Dberror" }, + { GM_TICKET_STATUS_HASTEXT, "Hastext" }, + { 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_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 = 0xFFFFFFFE, +} 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 = 0xFFFFFFFE, +} 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_HUMAN = 0x51, + CINEMATIC_SEQUENCE_ID_ORC = 0x15, + CINEMATIC_SEQUENCE_ID_DWARF = 0x29, + CINEMATIC_SEQUENCE_ID_NIGHT_ELF = 0x3D, + CINEMATIC_SEQUENCE_ID_UNDEAD = 0x02, + CINEMATIC_SEQUENCE_ID_TAUREN = 0x8D, + CINEMATIC_SEQUENCE_ID_GNOME = 0x65, + CINEMATIC_SEQUENCE_ID_TROLL = 0x79, + CINEMATIC_SEQUENCE_ID_GOBLIN = 0x00, +} e_cinematic_sequence_id; +static const value_string e_cinematic_sequence_id_strings[] = { + { CINEMATIC_SEQUENCE_ID_HUMAN, "Human" }, + { CINEMATIC_SEQUENCE_ID_ORC, "Orc" }, + { CINEMATIC_SEQUENCE_ID_DWARF, "Dwarf" }, + { CINEMATIC_SEQUENCE_ID_NIGHT_ELF, "Night Elf" }, + { CINEMATIC_SEQUENCE_ID_UNDEAD, "Undead" }, + { CINEMATIC_SEQUENCE_ID_TAUREN, "Tauren" }, + { CINEMATIC_SEQUENCE_ID_GNOME, "Gnome" }, + { CINEMATIC_SEQUENCE_ID_TROLL, "Troll" }, + { CINEMATIC_SEQUENCE_ID_GOBLIN, "Goblin" }, + { 0, NULL } +}; + +typedef enum { + PETITION_TURN_IN_RESULT_OK = 0x0, + PETITION_TURN_IN_RESULT_ALREADY_SIGNED = 0x1, + PETITION_TURN_IN_RESULT_ALREADY_IN_GUILD = 0x2, + PETITION_TURN_IN_RESULT_CANT_SIGN_OWN = 0x3, + PETITION_TURN_IN_RESULT_NEED_MORE = 0x4, + PETITION_TURN_IN_RESULT_NOT_SERVER = 0x5, +} e_petition_turn_in_result; +static const value_string e_petition_turn_in_result_strings[] = { + { PETITION_TURN_IN_RESULT_OK, "Ok" }, + { PETITION_TURN_IN_RESULT_ALREADY_SIGNED, "Already Signed" }, + { PETITION_TURN_IN_RESULT_ALREADY_IN_GUILD, "Already In Guild" }, + { PETITION_TURN_IN_RESULT_CANT_SIGN_OWN, "Cant Sign Own" }, + { PETITION_TURN_IN_RESULT_NEED_MORE, "Need More" }, + { PETITION_TURN_IN_RESULT_NOT_SERVER, "Not Server" }, + { 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 { + 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 = 0x80000000, +} 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 { + 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 @@ -4531,133 +8997,6 @@ get_null_terminated_string_length( tvbuff_t* tvb, return 0; } -static void -parse_move_messages(ptvcursor_t* ptv) -{ - guint32 movement_flags = 0; - ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &movement_flags); - - ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN); - - ptvcursor_add(ptv, hf_woww_character_position_x, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_character_position_y, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_character_position_z, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_character_orientation, 4, ENC_LITTLE_ENDIAN); - - if (movement_flags & WOWW_MOVEMENT_ON_TRANSPORT) { - ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "On Transport"); - - ptvcursor_add(ptv, hf_woww_character_guid, 8, ENC_LITTLE_ENDIAN); - - ptvcursor_add(ptv, hf_woww_character_position_x, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_character_position_y, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_character_position_z, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_character_orientation, 4, ENC_LITTLE_ENDIAN); - - ptvcursor_pop_subtree(ptv); - } - - if (movement_flags & WOWW_MOVEMENT_SWIMMING) { - ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Swimming"); - - ptvcursor_add(ptv, hf_woww_movement_swim_pitch, 4, ENC_LITTLE_ENDIAN); - - ptvcursor_pop_subtree(ptv); - } - - ptvcursor_add(ptv, hf_woww_movement_fallen_time, 4, ENC_LITTLE_ENDIAN); - - if (movement_flags & WOWW_MOVEMENT_FALLING) { - ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Falling"); - - ptvcursor_add(ptv, hf_woww_movement_jump_velocity, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_movement_jump_cos_anchor_pitch, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_movement_jump_sin_anchor_pitch, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_movement_jump_current_speed, 4, ENC_LITTLE_ENDIAN); - - ptvcursor_pop_subtree(ptv); - } - - if (movement_flags & WOWW_MOVEMENT_FALL_START_ELEVATION) { - ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Fall Start Elevation"); - - ptvcursor_add(ptv, hf_woww_movement_fall_start_elevation, 4, ENC_LITTLE_ENDIAN); - - ptvcursor_pop_subtree(ptv); - } -} - -static void -parse_SMSG_CHAR_ENUM(ptvcursor_t* ptv) -{ - guint32 amount_of_characters = 0; - ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_characters, 1, ENC_NA, &amount_of_characters); - for (guint32 i = 0; i < amount_of_characters; i++) { - proto_tree* char_tree = ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, - ett_character, "Character"); - - ptvcursor_add(ptv, hf_woww_character_guid, 8, ENC_LITTLE_ENDIAN); - - gint32 character_name_length = 0; - - // Use the character_name later for the tree text - guint8* character_name = tvb_get_stringz_enc(wmem_packet_scope(), ptvcursor_tvbuff(ptv), - ptvcursor_current_offset(ptv), - &character_name_length, ENC_UTF_8); - - ptvcursor_add(ptv, hf_woww_character_name, character_name_length, ENC_UTF_8); - - guint32 race = 0; - ptvcursor_add_ret_uint(ptv, hf_woww_character_race, 1, ENC_NA, &race); - guint32 class = 0; - ptvcursor_add_ret_uint(ptv, hf_woww_character_class, 1, ENC_NA, &class); - ptvcursor_add(ptv, hf_woww_character_gender, 1, ENC_NA); - ptvcursor_add(ptv, hf_woww_character_skin, 1, ENC_NA); - ptvcursor_add(ptv, hf_woww_character_face, 1, ENC_NA); - ptvcursor_add(ptv, hf_woww_character_hairstyle, 1, ENC_NA); - ptvcursor_add(ptv, hf_woww_character_haircolor, 1, ENC_NA); - ptvcursor_add(ptv, hf_woww_character_facialhair, 1, ENC_NA); - - guint32 level = 0; - ptvcursor_add_ret_uint(ptv, hf_woww_character_level, 1, ENC_NA, &level); - - proto_item_set_text(char_tree, - "%s (%i %s %s)", - character_name, - level, - val_to_str_const(race, races_strings, "Unknown"), - val_to_str_const(class, classes_strings, "Unknown")); - - ptvcursor_add(ptv, hf_woww_character_area, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_character_map, 4, ENC_LITTLE_ENDIAN); - - ptvcursor_add(ptv, hf_woww_character_position_x, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_character_position_y, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_character_position_z, 4, ENC_LITTLE_ENDIAN); - - ptvcursor_add(ptv, hf_woww_character_guild_id, 4, ENC_LITTLE_ENDIAN); - - ptvcursor_add(ptv, hf_woww_character_flags, 4, ENC_LITTLE_ENDIAN); - - ptvcursor_add(ptv, hf_woww_character_first_login, 1, ENC_NA); - - ptvcursor_add(ptv, hf_woww_character_pet_display_id, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_character_pet_level, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_character_pet_family, 4, ENC_LITTLE_ENDIAN); - - ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_character, "Equipment"); - - for (gint equipment_slot = 0; equipment_slot < 20; equipment_slot++) { - ptvcursor_add(ptv, hf_woww_character_equipment_display_id, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_character_equipment_inventory_type, 1, ENC_NA); - } - - ptvcursor_pop_subtree(ptv); // Equipment subtree - ptvcursor_pop_subtree(ptv); // Character subtree - } -} - -/* static void add_cstring(ptvcursor_t* ptv, const int* hf) { gint32 len = get_null_terminated_string_length(ptvcursor_tvbuff(ptv), ptvcursor_current_offset(ptv)); @@ -4693,229 +9032,5939 @@ add_packed_guid(ptvcursor_t* ptv, packet_info* pinfo) { 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) + gint32 offset_packet_end, + packet_info* pinfo) { guint32 len = 0; - /*guint32 i = 0;*/ + guint32 i = 0; /* AUTOGENERATED_START_VARIABLES */ + guint32 amount_of_auras = 0; + guint32 amount_of_characters = 0; + guint32 amount_of_choice_item_rewards = 0; + guint32 amount_of_cooldowns = 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_flag_carriers = 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_outbidded_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_spells = 0; + guint32 amount_of_states = 0; + guint32 amount_of_strings = 0; + guint32 amount_of_targets = 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 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; /* AUTOGENERATED_END_VARIABLES */ ptvcursor_t* ptv = ptvcursor_new(wmem_packet_scope(), tree, tvb, offset); /* AUTOGENERATED_START_PARSER */ switch (opcode) { - case SMSG_AUTH_CHALLENGE: - ptvcursor_add(ptv, hf_woww_challenge_seed, 4, ENC_LITTLE_ENDIAN); + 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_outbidded_items, 4, ENC_LITTLE_ENDIAN, &amount_of_outbidded_items); + for (i = 0; i < amount_of_outbidded_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_auction_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_guid, 8, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_object_guid, 8, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_stack_size, 4, 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); - - len = get_null_terminated_string_length(tvb, ptvcursor_current_offset(ptv)); - ptvcursor_add(ptv, hf_woww_account_name, len, ENC_UTF_8); - - ptvcursor_add(ptv, hf_woww_challenge_seed, 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_size, 4, ENC_LITTLE_ENDIAN); - + ptvcursor_add(ptv, hf_woww_decompressed_addon_info_size, 4, ENC_LITTLE_ENDIAN); len = offset_packet_end - ptvcursor_current_offset(ptv); - ptvcursor_add(ptv, hf_woww_addon_info, len, ENC_NA); + ptvcursor_add(ptv, hf_woww_compressed_addon_info, len, ENC_NA); break; - - case SMSG_AUTH_RESPONSE: - ptvcursor_add(ptv, hf_woww_result, 1, ENC_NA); - // There might more fields depending on the value in login_result. - // Not implemented currently because they aren't that important. + 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 SMSG_CHAR_ENUM: - parse_SMSG_CHAR_ENUM(ptv); + 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_SET_SELECTION: - /* Fallthrough */ case CMSG_CHAR_DELETE: - /* Fallthrough */ - case CMSG_SET_ACTIVE_MOVER: - /* Fallthrough */ - case CMSG_NAME_QUERY: - /* Fallthrough */ - case CMSG_PLAYER_LOGIN: + 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 SMSG_LOGIN_VERIFY_WORLD: - ptvcursor_add(ptv, hf_woww_character_map, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_character_position_x, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_character_position_y, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_character_position_z, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_character_orientation, 4, ENC_LITTLE_ENDIAN); + case CMSG_CHAT_IGNORED: + ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN); break; - - case SMSG_TUTORIAL_FLAGS: - for (gint i = 0; i < 8; i++) { - ptvcursor_add(ptv, hf_woww_tutorial_flag, 4, ENC_LITTLE_ENDIAN); + 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); + 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); + len = offset_packet_end - ptvcursor_current_offset(ptv); + ptvcursor_add(ptv, hf_woww_compressed_chat_data, len, ENC_NA); } break; - + case CMSG_GMTICKET_UPDATETEXT: + 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_unknown_int, 1, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_battle_ground_type_id, 1, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_unknown_int, 2, 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_guid, 8, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_slot_id, 1, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_target_player_guid, 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_skip, 4, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_skip, 8, ENC_LITTLE_ENDIAN); + add_cstring(ptv, &hf_woww_name); + ptvcursor_add(ptv, hf_woww_skip, 4, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_skip, 4, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_skip, 4, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_skip, 4, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_skip, 4, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_skip, 4, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_skip, 4, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_skip, 4, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_skip, 4, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_skip, 4, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_skip, 2, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_skip, 1, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_index, 4, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_skip, 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_latency, 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_type, 4, 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_flags, 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_LITTLE_ENDIAN); + 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(ptv, hf_woww_amount_of_carriers, 4, ENC_LITTLE_ENDIAN); + ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_flag_carriers, 4, ENC_LITTLE_ENDIAN, &amount_of_flag_carriers); + for (i = 0; i < amount_of_flag_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: + len = offset_packet_end - ptvcursor_current_offset(ptv); + ptvcursor_add(ptv, hf_woww_unimplemented, len, ENC_NA); + 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); + 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_unknown_int, 1, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_unknown_int, 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_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_map, 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); + len = offset_packet_end - ptvcursor_current_offset(ptv); + for (i = 0; i < len; ++i) { + 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_HASTEXT) { + 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_will_accept_tickets, 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); + 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(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_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_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_guid, 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_guid, 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_guid, 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); + ptvcursor_add(ptv, hf_woww_probability, 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) { + } + 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) { + } + 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) { + } + 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) { + } + 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_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, 8, ENC_LITTLE_ENDIAN); + ptvcursor_add(ptv, hf_woww_amount_of_signatures, 1, ENC_LITTLE_ENDIAN); + 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_CHARACTER_LOGIN_FAILED: - /* Fallthrough */ - case SMSG_CHAR_DELETE: - /* Fallthrough */ - case SMSG_CHAR_CREATE: - ptvcursor_add(ptv, hf_woww_result, 1, ENC_NA); + case SMSG_PROCRESIST: + ptvcursor_add(ptv, hf_woww_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_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); + len = offset_packet_end - ptvcursor_current_offset(ptv); + for (i = 0; i < len; ++i) { + 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); + len = offset_packet_end - ptvcursor_current_offset(ptv); + for (i = 0; i < len; ++i) { + 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_turn_in_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); + } + 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); + } + 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_zone_id, 4, ENC_LITTLE_ENDIAN); break; - case SMSG_NAME_QUERY_RESPONSE: - ptvcursor_add(ptv, hf_woww_character_guid, 8, ENC_LITTLE_ENDIAN); - - len = get_null_terminated_string_length(tvb, ptvcursor_current_offset(ptv)); - ptvcursor_add(ptv, hf_woww_character_name, len, ENC_UTF_8); - - len = get_null_terminated_string_length(tvb, ptvcursor_current_offset(ptv)); - ptvcursor_add(ptv, hf_woww_realm_name, len, ENC_UTF_8); - - ptvcursor_add(ptv, hf_woww_character_race, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_character_gender, 4, ENC_LITTLE_ENDIAN); - ptvcursor_add(ptv, hf_woww_character_class, 4, ENC_LITTLE_ENDIAN); - break; - - case CMSG_CHAR_RENAME: - ptvcursor_add(ptv, hf_woww_character_guid, 8, ENC_LITTLE_ENDIAN); - - len = get_null_terminated_string_length(tvb, ptvcursor_current_offset(ptv)); - ptvcursor_add(ptv, hf_woww_character_name, len, ENC_UTF_8); - break; - - case CMSG_CHAR_CREATE: - len = get_null_terminated_string_length(tvb, ptvcursor_current_offset(ptv)); - ptvcursor_add(ptv, hf_woww_character_name, len, ENC_UTF_8); - - ptvcursor_add(ptv, hf_woww_character_race, 1, ENC_NA); - ptvcursor_add(ptv, hf_woww_character_class, 1, ENC_NA); - ptvcursor_add(ptv, hf_woww_character_gender, 1, ENC_NA); - ptvcursor_add(ptv, hf_woww_character_skin, 1, ENC_NA); - ptvcursor_add(ptv, hf_woww_character_face, 1, ENC_NA); - ptvcursor_add(ptv, hf_woww_character_hairstyle, 1, ENC_NA); - ptvcursor_add(ptv, hf_woww_character_haircolor, 1, ENC_NA); - ptvcursor_add(ptv, hf_woww_character_facialhair, 1, ENC_NA); - ptvcursor_add(ptv, hf_woww_starting_outfit, 1, ENC_NA); - break; - - case MSG_MOVE_START_FORWARD: - /* Fallthrough */ - case MSG_MOVE_START_BACKWARD: - /* Fallthrough */ - case MSG_MOVE_STOP: - /* Fallthrough */ - case MSG_MOVE_START_STRAFE_LEFT: - /* Fallthrough */ - case MSG_MOVE_START_STRAFE_RIGHT: - /* Fallthrough */ - case MSG_MOVE_STOP_STRAFE: - /* Fallthrough */ - case MSG_MOVE_JUMP: - /* Fallthrough */ - case MSG_MOVE_START_TURN_LEFT: - /* Fallthrough */ - case MSG_MOVE_START_TURN_RIGHT: - /* Fallthrough */ - case MSG_MOVE_STOP_TURN: - /* Fallthrough */ - case MSG_MOVE_START_PITCH_UP: - /* Fallthrough */ - case MSG_MOVE_START_PITCH_DOWN: - /* Fallthrough */ - case MSG_MOVE_STOP_PITCH: - /* Fallthrough */ - case MSG_MOVE_SET_RUN_MODE: - /* Fallthrough */ - case MSG_MOVE_SET_WALK_MODE: - /* Fallthrough */ - case MSG_MOVE_TOGGLE_LOGGING: - /* Fallthrough */ - case MSG_MOVE_TELEPORT: - /* Fallthrough */ - case MSG_MOVE_TELEPORT_CHEAT: - /* Fallthrough */ - case MSG_MOVE_TELEPORT_ACK: - /* Fallthrough */ - case MSG_MOVE_TOGGLE_FALL_LOGGING: - /* Fallthrough */ - case MSG_MOVE_FALL_LAND: - /* Fallthrough */ - case MSG_MOVE_START_SWIM: - /* Fallthrough */ - case MSG_MOVE_STOP_SWIM: - /* Fallthrough */ - case MSG_MOVE_SET_RUN_SPEED_CHEAT: - /* Fallthrough */ - case MSG_MOVE_SET_RUN_SPEED: - /* Fallthrough */ - case MSG_MOVE_SET_RUN_BACK_SPEED_CHEAT: - /* Fallthrough */ - case MSG_MOVE_SET_RUN_BACK_SPEED: - /* Fallthrough */ - case MSG_MOVE_SET_WALK_SPEED_CHEAT: - /* Fallthrough */ - case MSG_MOVE_SET_WALK_SPEED: - /* Fallthrough */ - case MSG_MOVE_SET_SWIM_SPEED_CHEAT: - /* Fallthrough */ - case MSG_MOVE_SET_SWIM_SPEED: - /* Fallthrough */ - case MSG_MOVE_SET_SWIM_BACK_SPEED_CHEAT: - /* Fallthrough */ - case MSG_MOVE_SET_SWIM_BACK_SPEED: - /* Fallthrough */ - case MSG_MOVE_SET_ALL_SPEED_CHEAT: - /* Fallthrough */ - case MSG_MOVE_SET_TURN_RATE_CHEAT: - /* Fallthrough */ - case MSG_MOVE_SET_TURN_RATE: - /* Fallthrough */ - case MSG_MOVE_TOGGLE_COLLISION_CHEAT: - /* Fallthrough */ - case MSG_MOVE_SET_FACING: - /* Fallthrough */ - case MSG_MOVE_SET_PITCH: - /* Fallthrough */ - case MSG_MOVE_WORLDPORT_ACK: - /* Fallthrough */ - case SMSG_MONSTER_MOVE: - /* Fallthrough */ - case SMSG_MOVE_WATER_WALK: - /* Fallthrough */ - case SMSG_MOVE_LAND_WALK: - /* Fallthrough */ - case MSG_MOVE_SET_RAW_POSITION_ACK: - /* Fallthrough */ - case MSG_MOVE_HEARTBEAT: - parse_move_messages(ptv); - break; - - case CMSG_CHAR_ENUM: - /* Fallthrough */ - case CMSG_QUERY_TIME: - /* Fallthrough */ default: break; - } + } /* AUTOGENERATED_END_PARSER */ ptvcursor_free(ptv); @@ -4980,7 +15029,7 @@ add_header_to_tree(WowwDecryptedHeader_t* decrypted_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); + add_body_fields(opcode, woww_tree, tvb, start_offset + headerSize, offset_packet_end, pinfo); return offset_packet_end; } @@ -5060,251 +15109,4775 @@ proto_register_woww(void) FT_UINT32, BASE_HEX, VALS(world_packet_strings), 0, "Opcode of the packet", HFILL } }, - /*{ &hf_woww_string_length, + { &hf_woww_string_length, { "String Length", "woww.string_length", FT_UINT32, BASE_DEC_HEX, NULL, 0, NULL, HFILL } - },*/ + }, /* AUTOGENERATED_START_REGISTER */ - { &hf_woww_challenge_seed, - { "Challenge Seed", "woww.challenge_seed", - FT_UINT32, BASE_HEX, NULL, 0, - "Seed used to verify session key", HFILL } + { &hf_woww_absorb, + { "Absorb", "woww.absorb", + FT_UINT32, BASE_HEX_DEC, NULL, 0, + NULL, HFILL + } }, - { &hf_woww_server_id, - { "Server Id", "woww.server.id", - FT_UINT32, BASE_DEC, NULL, 0, - "Id of the server the client is connecting to", HFILL } + { &hf_woww_absorbed, + { "Absorbed", "woww.absorbed", + FT_UINT32, BASE_HEX_DEC, NULL, 0, + NULL, HFILL + } }, - { &hf_woww_build, - { "Client Build", "woww.build", - FT_UINT32, BASE_DEC, NULL, 0, - "Client build/revision", HFILL } + { &hf_woww_absorbed_damage, + { "Absorbed Damage", "woww.absorbed.damage", + FT_UINT32, BASE_HEX_DEC, NULL, 0, + NULL, HFILL + } }, - { &hf_woww_client_proof, - { "Client Proof", "woww.client_proof", - FT_BYTES, BASE_NONE, NULL, 0, - "Client proof calculated using seeds and session key", HFILL } + { &hf_woww_action_bar, + { "Action Bar", "woww.action.bar", + FT_UINT8, BASE_HEX_DEC, NULL, 0, + NULL, HFILL + } }, - { &hf_woww_decompressed_addon_size, - { "Decompressed Addon Size", "woww.decompressed_addon_size", - FT_UINT32, BASE_DEC, NULL, 0, - "Size of the Addon Info after decompression", HFILL } + { &hf_woww_action_bars, + { "Action Bars", "woww.action.bars", + FT_UINT32, BASE_HEX_DEC, NULL, 0, + NULL, HFILL + } }, - { &hf_woww_addon_info, - { "Compressed Addon Info", "woww.addon_info", - FT_BYTES, BASE_NONE, NULL, 0, - NULL, HFILL } + { &hf_woww_action_type, + { "Action Type", "woww.action.type", + FT_UINT32, BASE_HEX_DEC, NULL, 0, + NULL, HFILL + } }, - { &hf_woww_account_name, - { "Account Name", "woww.account.name", - FT_STRINGZ, BASE_NONE, 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_result, - { "Result", "woww.result", - FT_UINT8, BASE_HEX, VALS(account_result_strings), 0, - NULL, HFILL } + { &hf_woww_actual_roll, + { "Actual Roll", "woww.actual.roll", + FT_UINT32, BASE_HEX_DEC, NULL, 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_UINT32, BASE_HEX_DEC, NULL, 0, + NULL, HFILL + } }, { &hf_woww_amount_of_characters, - { "Amount of Characters", "woww.amount_of_characters", - FT_UINT8, BASE_DEC, NULL, 0, - NULL, HFILL } + { "Amount Of Characters", "woww.amount.of.characters", + FT_UINT8, BASE_HEX_DEC, NULL, 0, + NULL, HFILL + } }, - { &hf_woww_character_guid, - { "Character GUID", "woww.character.guid", - FT_UINT64, BASE_HEX_DEC, NULL, 0, - "Globally Unique Identifier of character", 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_character_name, - { "Character Name", "woww.character.name", - FT_STRINGZ, BASE_NONE, 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_realm_name, - { "Realm Name", "woww.realm.name", - FT_STRINGZ, BASE_NONE, NULL, 0, - "Optional realm name shown after the character name", HFILL } + { &hf_woww_amount_of_cooldowns, + { "Amount Of Cooldowns", "woww.amount.of.cooldowns", + FT_UINT8, BASE_HEX_DEC, NULL, 0, + NULL, HFILL + } }, - { &hf_woww_character_race, - { "Race", "woww.character.race", - FT_UINT8, BASE_HEX, VALS(races_strings), 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_character_class, - { "Class", "woww.character.class", - FT_UINT8, BASE_HEX, VALS(classes_strings), 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_character_gender, - { "Gender", "woww.character.gender", - FT_UINT8, BASE_HEX, VALS(genders_strings), 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_character_skin, - { "Skin Color", "woww.character.skin", - FT_UINT8, BASE_HEX, 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_character_face, - { "Face", "woww.character.face", - FT_UINT8, BASE_HEX, 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_character_hairstyle, - { "Hair Style", "woww.character.hairstyle", - FT_UINT8, BASE_HEX, 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_character_haircolor, - { "Hair Color", "woww.character.haircolor", - FT_UINT8, BASE_HEX, NULL, 0, - NULL, HFILL } + { &hf_woww_amount_of_flag_carriers, + { "Amount Of Flag Carriers", "woww.amount.of.flag.carriers", + FT_UINT32, BASE_HEX_DEC, NULL, 0, + NULL, HFILL + } }, - { &hf_woww_character_facialhair, - { "Facial Hair/Accessory", "woww.character.facialhair", - FT_UINT8, BASE_HEX, 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_character_level, - { "Level", "woww.character.level", - FT_UINT8, BASE_DEC_HEX, 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_character_area, - { "Area", "woww.character.area", - FT_UINT32, BASE_DEC_HEX, VALS(area_strings), 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_character_map, - { "Map", "woww.character.map", - FT_UINT32, BASE_DEC_HEX, VALS(map_strings), 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_character_position_x, - { "Position X", "woww.character.position.x", - FT_FLOAT, BASE_NONE, 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_character_position_y, - { "Position Y", "woww.character.position.y", - FT_FLOAT, BASE_NONE, 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_character_position_z, - { "Position Z", "woww.character.position.z", - FT_FLOAT, BASE_NONE, 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_character_orientation, - { "Orientation", "woww.character.orientation", - FT_FLOAT, BASE_NONE, NULL, 0, - "Heading in degrees, with 0 being north", HFILL } + { &hf_woww_amount_of_mails, + { "Amount Of Mails", "woww.amount.of.mails", + FT_UINT8, BASE_HEX_DEC, NULL, 0, + NULL, HFILL + } }, - { &hf_woww_character_guild_id, - { "Guild ID", "woww.character.guild.id", - FT_UINT32, 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_outbidded_items, + { "Amount Of Outbidded Items", "woww.amount.of.outbidded.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_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_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_quality, + { "Auction Quality", "woww.auction.quality", + 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_battle_ground_type_id, + { "Battle Ground Type Id", "woww.battle.ground.type.id", + 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_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_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_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 } + FT_UINT32, BASE_HEX_DEC, NULL, 0, + NULL, HFILL + } }, - { &hf_woww_character_first_login, - { "First Login", "woww.character.first_login", - 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_pet_display_id, - { "Pet Display Id", "woww.character.pet.display_id", - FT_UINT32, 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_character_pet_level, - { "Pet Level", "woww.character.pet.level", - FT_UINT32, BASE_HEX_DEC, 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_character_pet_family, - { "Pet Family", "woww.character.pet.family", - 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_character_equipment_display_id, - { "Display ID", "woww.character.equipment.display_id", - 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_character_equipment_inventory_type, - { "Inventory Type", "woww.character.equipment.inventory_type", - FT_UINT8, 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_tutorial_flag, - { "Tutorial Flag", "woww.tutorial_flag", - FT_UINT32, 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_sequence_id, - { "Sequence Id", "woww.sequence_id", - 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_latency, - { "Latency", "woww.latency", - FT_UINT32, BASE_HEX_DEC, NULL, 0, - "Round time in milliseconds", 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_starting_outfit, - { "Starting Outfit", "woww.starting_outfit", - FT_UINT8, BASE_HEX_DEC, NULL, 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_compressed_addon_info, + { "Compressed Addon Info", "woww.compressed.addon.info", + FT_BYTES, 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_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_type, + { "Damage Type", "woww.damage.type", + 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_UINT8, 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_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_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, NULL, 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_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_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_guid, + { "Loot Guid", "woww.loot.guid", + 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_member_flags, + { "Member Flags", "woww.member.flags", + FT_UINT8, BASE_HEX_DEC, 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_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_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 } + FT_UINT32, BASE_HEX_DEC, NULL, 0, + NULL, HFILL + } }, - { &hf_woww_movement_swim_pitch, - { "Swim Pitch", "woww.movement.swim_pitch", - FT_FLOAT, BASE_NONE, NULL, 0, - NULL, HFILL } + { &hf_woww_name, + { "Name", "woww.name", + FT_STRINGZ, BASE_NONE, NULL, 0, + NULL, HFILL + } }, - { &hf_woww_movement_fallen_time, - { "Fallen Time", "woww.movement.fallen_time", - FT_FLOAT, 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_movement_jump_velocity, - { "Jump Velocity", "woww.movement.jump.velocity", - FT_FLOAT, BASE_NONE, NULL, 0, - NULL, HFILL } + { &hf_woww_nearest_node, + { "Nearest Node", "woww.nearest.node", + FT_UINT32, BASE_HEX_DEC, NULL, 0, + NULL, HFILL + } }, - { &hf_woww_movement_jump_cos_anchor_pitch, - { "Jump Cos Anchor", "woww.movement.jump.cos_anchor", - FT_FLOAT, BASE_NONE, 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_movement_jump_sin_anchor_pitch, - { "Jump Sin Anchor", "woww.movement.jump.sin_anchor", - FT_FLOAT, 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_movement_jump_current_speed, - { "Jump Current Speed", "woww.movement.jump.current_speed", - FT_FLOAT, BASE_NONE, NULL, 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_movement_fall_start_elevation, - { "Fall Start Elevation", "woww.movement.fall.start_elevation", - FT_FLOAT, BASE_NONE, NULL, 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_guid, + { "Object Guid", "woww.object.guid", + FT_UINT64, 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_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_UINT64, 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_petition_turn_in_result, + { "Petition Turn In Result", "woww.petition.turn.in.result", + FT_UINT32, BASE_HEX_DEC, VALS(e_petition_turn_in_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_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_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_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_skip, + { "Skip", "woww.skip", + 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_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_stack_size, + { "Stack Size", "woww.stack.size", + 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_player_guid, + { "Target Player Guid", "woww.target.player.guid", + FT_UINT64, BASE_HEX_DEC, 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_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_DEC_HEX, NULL, 0, - NULL, HFILL } + 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_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_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_will_accept_tickets, + { "Will Accept Tickets", "woww.will.accept.tickets", + FT_UINT32, BASE_HEX_DEC, NULL, 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 */ };