struct Bind {
    u32 zoneid;
    float x;
    float y;
    float z;
    float heading;
};

struct ArmorProperty
{
    s32 type;
    s32 variation;
    s32 material;
    s32 newArmorId;
    s32 newArmorType;
};

struct AA
{
    s32 index;
    s32 points_spent;
    s32 charges_spent;
};

struct EQGuid
{
    u32 entity_id;
    u32 realm_id;
};

struct SlotData
{
    s32 slot_id;
    s64 value;
};

struct EQAffect
{
    float modifier;
    EQGuid caster_id;
    u32 duration;
    u32 max_duration;
    u8 level;
    s32 spell_id;
    s32 hitcount;
    u32 flags;
    u32 viral_timer;
    u8 type;
    SlotData slots[6];
};

struct Coin
{
    u32 platinum;
    u32 gold;
    u32 silver;
    u32 copper;
};

struct BandolierItemInfo {
    char name[];
    s32 item_id;
    s32 icon;
};

struct BandolierSet
{
    char name[];
    BandolierItemInfo items[4];
};

struct ItemIndex
{
    s16 slot1;
    s16 slot2;
    s16 slot3;
};

struct Claim
{
    s32 feature_id;
    s32 count;
};

struct Tribute {
    u32 BenefitTimer;
    s32 unknown1;
    s32 current_favor;
    s32 unknown2;
    s32 all_time_favor;
    s32 unknown3; //some of these are probably the bools on the pcclient;
    u16 unknown4;
};

struct TributeBenefit
{
    s32 benefit_id;
    s32 benefit_tier;
};

struct RaidData
{
    u32 main_assist1;
    u32 main_assist2;
    u32 main_assist3;
    char main_assist_name1[];
    char main_assist_name2[];
    char main_assist_name3[];
    u32 main_marker1;
    u32 main_marker2;
    u32 main_marker3;
    u32 master_looter;
};

struct LdonData
{
    u32 count;
    u32 ldon_categories[count];
    u32 ldon_points_available;
};

struct PvPData
{
    u32 kills;
    u32 deaths;
    u32 current_points;
    u32 career_points;
    u32 best_kill_streak;
    u32 worst_death_streak;
    u32 current_kill_streak;
};

struct PvPKill
{
    char name[];
    u32 level;
    u32 unknown1; //not sure
    u32 unknown2; //not sure
    u32 race;
    u32 class;
    u32 zone;
    u32 time;
    u32 points;
};

struct PvPDeath
{
    char name[];
    u32 level;
    u32 race;
    u32 class;
    u32 zone;
    u32 time;
    u32 points;
};

struct AltCurrency
{
    u32 alt_currency_str_length;
    u32 unknown1;
    char alt_currency_string[alt_currency_str_length];
};

struct AchivementSubComponentData
{
    s32 achievement_id;
    s32 component_id;
    s32 requirement_id;
    s32 requirement_type;
    s32 count;
};

struct AlchemyBonusSkillData
{
    s32 skill_id;
    s32 bonus;
};

struct PersonaItemSlot
{
    u32 item_id;
    u32 slot_id;
};

struct PersonaEquipment
{
    PersonaItemSlot item;
    u32 augment_count;
    PersonaItemSlot augments[augment_count];
};

struct PersonaEquipmentSet
{
    u32 class_id;
    u32 equipment_count;
    PersonaEquipment equipment[equipment_count];
};

struct PcProfile
{
    u32 profile_type;
    u32 profile_id;
    u32 shroud_template_id;
    u8 gender;
    u32 race;
    u32 class;
    u8 level;
    u8 level1;
    u32 bind_count;
    Bind binds[bind_count];
    u32 deity;
    u32 intoxication;
    u32 property_count;
    u32 properties[property_count]; 
    u32 armor_prop_count;
    ArmorProperty armor_props[armor_prop_count];
    u32 base_armor_prop_count;
    ArmorProperty base_armor_props[base_armor_prop_count];
    u32 body_tint_count;
    u32 body_tints[body_tint_count];
    u32 equip_tint_count;
    u32 equip_tints[equip_tint_count];
    u8 hair_color;
    u8 facial_hair_color;
    u32 npc_tint_index;
    u8 eye_color1;
    u8 eye_color2;
    u8 hair_style;
    u8 facial_hair;
    u8 face;
    u8 old_face;
    u32 heritage;
    u32 tattoo;
    u32 details;
    u8 texture_type;
    u8 material;
    u8 variation;
    float height;
    float width;
    float length;
    float view_height;
    u32 primary;
    u32 secondary;
    u32 practices;
    u32 base_mana;
    u32 base_hp;
    u32 base_str;
    u32 base_sta;
    u32 base_cha;
    u32 base_dex;
    u32 base_int;
    u32 base_agi;
    u32 base_wis;
    u32 base_heroic_str;
    u32 base_heroic_sta;
    u32 base_heroic_cha;
    u32 base_heroic_dex;
    u32 base_heroic_int;
    u32 base_heroic_agi;
    u32 base_heroic_wis;
    u32 aa_count;
    AA aas[aa_count];
    u32 skill_count;
    s32 skills[skill_count];
    u32 innate_skill_count;
    s32 innate_skills[innate_skill_count];
    u32 combat_ability_count;
    s32 combat_abilities[combat_ability_count];
    u32 combat_ability_timer_count;
    s32 combat_ability_timers[combat_ability_timer_count];
    u32 unk_ability_count;
    u32 linked_spell_timer_count;
    s32 linked_spell_timers[linked_spell_timer_count];
    u32 item_recast_timer_count;
    s32 item_recast_timers[item_recast_timer_count];
    u32 spell_book_slot_count;
    s32 spell_book_slots[spell_book_slot_count];
    u32 spell_gem_count;
    s32 spell_gems[spell_gem_count];
    u32 spell_recast_timer_count;
    s32 spell_recast_timers[spell_recast_timer_count];
    u8 max_allowed_spell_slots;
    u32 buff_count;
    EQAffect buffs[buff_count];
    Coin coin;
    Coin cursor_coin;
    u32 disc_timer;
    u32 mend_timer;
    u32 forage_timer;
    u32 thirst;
    u32 hunger;
    u32 aa_spent;
    u32 aa_window_count;
    u32 aa_window_stats[aa_window_count];
    u32 aa_points_unspent;
    u8 sneak;
    u8 hide;
    u32 bandolier_count;
    BandolierSet bandolier_sets[bandolier_count];
    u32 invslot_bitmask;
    u32 basedata_hp;
    u32 basedata_mana;
    u32 basedata_endur;
    u32 basedata_mr;
    u32 basedata_fr;
    u32 basedata_cr;
    u32 basedata_pr;
    u32 basedata_dr;
    u32 basedata_corrupt;
    u32 basedata_phr;
    float basedata_walkspeed;
    float basedata_runspeed;
    u32 basedata_hpregen;
    u32 basedata_manaregen;
    u32 basedata_mountmanaregen;
    u32 basedata_endurregen;
    u32 basedata_ac;
    u32 basedata_atk;
    u32 basedata_dmg;
    u32 basedata_delay;
    u32 endurance;
    u32 heroic_type;
    ItemIndex keyring_item_index[5];
    u64 exp;
    u64 aa_exp; //this is a guess, used to be 32 upped to 64
    u16 unknown1;
    EQGuid character_id;
    u32 name_length;
    char name[name_length];
    u32 last_name_length;
    char last_name[last_name_length];
    u32 creation_time;
    u32 account_creation_time;
    u32 last_played_time;
    u32 played_minutes;
    u32 entitled_days;
    u32 expansion_flags;
    u32 unknown2; //new field from laurion to obrood
    u32 language_count;
    u8 languages[language_count];
    u32 current_zone;
    float current_x;
    float current_y;
    float current_z;
    float current_heading;
    u8 animation;
    u8 pvp;
    u8 anon;
    u8 gm;
    u64 guild_id;
    u8 guild_show_sprite;
    u8 status;
    Coin coin2;
    Coin bank2;
    u32 bank_shared_plat;
    u32 claim_count;
    Claim claims[claim_count];
    Tribute tribute;
    u32 tribute_benefit_count;
    TributeBenefit tribute_benefits[tribute_benefit_count];
    u32 trophy_tribute_benefit_count;
    TributeBenefit trophy_tribute_benefit[trophy_tribute_benefit_count];
    u8 tasks[137]; //honestly not sure what this is, was just a guess
    u32 good_points_available;
    u32 good_points_earned;
    u32 bad_points_available;
    u32 bad_points_earned;
    u32 momentum_balance;
    u32 loyalty_reward_balance;
    u32 parcel_status;
    u32 vehicle_name_length;
    char vehicle_name[vehicle_name_length];
    u8 super_pkill;
    u8 unclone;
    u8 dead;
    u32 ld_timer;
    u32 spell_interrupt_count;
    u8 autosplit;
    u8 tells_off;
    u8 gm_invis;
    u32 kill_me;
    u8 cheater_ld_flag;
    u8 norent;
    u8 corpse;
    u8 client_gm_flag_set;
    u32 mentor_pct;
    RaidData raid;
    u32 unique_player_id;
    LdonData ldon_data;
    u32 air_supply;
    PvPData pvp_data;
    PvPKill last_kill;
    PvPDeath last_death;
    u32 kills_in_past_24_hours;
    u32 kill_list_count;
    PvPKill kill_list[kill_list_count];
    u32 pvp_infamy_level;
    u32 pvp_vitality;
    u32 cursor_krono;
    u32 krono;
    u8 autoconsent_group;
    u8 autoconsent_raid;
    u8 autoconsent_guild;
    u8 autoconsent_fellowship;
    u8 private_for_eq_players;
    u32 main_level;
    u8 show_helm;
    u32 downtime;
    AltCurrency alt_currency;
    u32 completed_event_subcomponent_count;
    AchivementSubComponentData completed_event_subcomponents[completed_event_subcomponent_count];
    u32 inprogress_event_subcomponent_count;
    AchivementSubComponentData inprogress_event_subcomponents[inprogress_event_subcomponent_count];
    u64 merc_aa_exp;
    u32 merc_aa_points;
    u32 merc_aa_spent;
    u32 starting_city_zone_id;
    u8 use_advanced_looting;
    u8 is_master_loot_candidate;
    u32 alchemy_bonus_list_count;
    AlchemyBonusSkillData alchemy_bonus_list[alchemy_bonus_list_count];
    u32 persona_count;
    PersonaEquipmentSet persona_equipment_set[persona_count];
    u8 term;
};

struct Packet 
{
    u32 crc;
    u32 length;
    PcProfile profile;
};

Packet p @ 0x00;
