#pragma once #include namespace diablo2 { namespace structures { struct monstats_line { uint16_t id; //0x00 uint16_t base_id; //0x02 uint16_t next_in_class; //0x04 uint16_t name_str; //0x06 uint16_t desc_str; //0x08 uint16_t unk0_x0_a; //0x0A uint32_t mon_stats_flags; //0x0C uint32_t code; //0x10 uint16_t mon_sound; //0x14 uint16_t u_mon_sound; //0x16 uint16_t mon_stats_ex; //0x18 uint16_t mon_prop; //0x1A uint16_t mon_type; //0x1C uint16_t ai; //0x1E uint16_t spawn; //0x20 uint8_t spawn_x; //0x22 uint8_t spawn_y; //0x23 uint16_t spawn_mode; //0x24 uint16_t minion1; //0x26 uint16_t minion2; //0x28 uint16_t unk0_x2_a; //0x2A uint8_t party_min; //0x2C uint8_t party_max; //0x2D uint8_t rarity; //0x2E uint8_t min_grp; //0x2F uint8_t max_grp; //0x30 uint8_t sparse_populate; //0x31 uint16_t velocity; //0x32 uint16_t run; //0x34 uint16_t unk0_x36; //0x36 uint16_t unk0_x38; //0x38 uint16_t miss_a1; //0x3A uint16_t miss_a2; //0x3C uint16_t miss_s1; //0x3E uint16_t miss_s2; //0x40 uint16_t miss_s3; //0x42 uint16_t miss_s4; //0x44 uint16_t miss_c; //0x46 uint16_t miss_sq; //0x48 uint16_t unk0_x4_a; //0x4A uint8_t align; //0x4C uint8_t trans_lvl; //0x4D uint8_t threat; //0x4E uint8_t ai_del; //0x4F uint8_t ai_del_n; //0x50 uint8_t ai_del_h; //0x51 uint8_t ai_dist; //0x52 uint8_t ai_dist_n; //0x53 uint16_t ai_dist_h; //0x54 uint16_t ai_p1; //0x56 uint16_t ai_p1_n; //0x58 uint16_t ai_p1_h; //0x5A uint16_t ai_p2; //0x5C uint16_t ai_p2_n; //0x5E uint16_t ai_p2_h; //0x60 uint16_t ai_p3; //0x62 uint16_t ai_p3_n; //0x64 uint16_t ai_p3_h; //0x66 uint16_t ai_p4; //0x68 uint16_t ai_p4_n; //0x6A uint16_t ai_p4_h; //0x6C uint16_t ai_p5; //0x6E uint16_t ai_p5_n; //0x70 uint16_t ai_p5_h; //0x72 uint16_t ai_p6; //0x74 uint16_t ai_p6_n; //0x76 uint16_t ai_p6_h; //0x78 uint16_t ai_p7; //0x7A uint16_t ai_p7_n; //0x7C uint16_t ai_p7_h; //0x7E uint16_t ai_p8; //0x80 uint16_t ai_p8_n; //0x82 uint16_t ai_p8_h; //0x84 uint16_t treasure_class1; //0x86 uint16_t treasure_class2; //0x88 uint16_t treasure_class3; //0x8A uint16_t treasure_class4; //0x8C uint16_t treasure_class1_n; //0x8E uint16_t treasure_class2_n; //0x90 uint16_t treasure_class3_n; //0x92 uint16_t treasure_class4_n; //0x94 uint16_t treasure_class1_h; //0x96 uint16_t treasure_class2_h; //0x98 uint16_t treasure_class3_h; //0x9A uint16_t treasure_class4_h; //0x9C uint8_t tc_quest_id; //0x9E uint8_t tc_quest_cp; //0x9F uint8_t drain; //0xA0 uint8_t drain_n; //0xA1 uint8_t drain_h; //0xA2 uint8_t to_block; //0xA3 uint8_t b_to_block_n; //0xA4 uint8_t to_block_h; //0xA5 uint16_t crit; //0xA6 uint16_t skill_damage; //0xA8 uint16_t level; //0xAA uint16_t level_n; //0xAC uint16_t level_h; //0xAE uint16_t min_hp; //0xB0 uint16_t min_hp_n; //0xB2 uint16_t min_hp_h; //0xB4 uint16_t max_hp; //0xB6 uint16_t max_hp_n; //0xB8 uint16_t max_hp_h; //0xBA uint16_t ac; //0xBC uint16_t ac_n; //0xBE uint16_t ac_h; //0xC0 uint16_t a1_th; //0xC2 uint16_t a1_th_n; //0xC4 uint16_t a1_th_h; //0xC6 uint16_t a2_th; //0xC8 uint16_t a2_th_n; //0xCA uint16_t a2_th_h; //0xCC uint16_t s1_th; //0xCE uint16_t s1_th_n; //0xD0 uint16_t s1_th_h; //0xD2 uint16_t exp; //0xD4 uint16_t exp_n; //0xD6 uint16_t exp_h; //0xD8 uint16_t a1_min_d; //0xDA uint16_t a1_min_d_n; //0xDC uint16_t a1_min_d_h; //0xDE uint16_t a1_max_d; //0xE0 uint16_t a1_max_d_n; //0xE2 uint16_t a1_max_d_h; //0xE4 uint16_t a2_min_d; //0xE6 uint16_t a2_min_d_n; //0xE8 uint16_t a2_min_d_h; //0xEA uint16_t a2_max_d; //0xEC uint16_t a2_max_d_n; //0xEE uint16_t a2_max_d_h; //0xF0 uint16_t s1_min_d; //0xF2 uint16_t s1_min_d_n; //0xF4 uint16_t s1_min_d_h; //0xF6 uint16_t s1_max_d; //0xF8 uint16_t s1_max_d_n; //0xFA uint16_t s1_max_d_h; //0xFC uint8_t el1_mode; //0xFE uint8_t el2_mode; //0xFF uint8_t el3_mode; //0x100 uint8_t el1_type; //0x101 uint8_t el2_type; //0x102 uint8_t el3_type; //0x103 uint8_t el1_pct; //0x104 uint8_t el1_pct_n; //0x105 uint8_t el1_pct_h; //0x106 uint8_t el2_pct; //0x107 uint8_t el2_pct_n; //0x108 uint8_t el2_pct_h; //0x109 uint8_t el3_pct; //0x10A uint8_t el3_pct_n; //0x10B uint8_t el3_pct_h; //0x10C uint8_t unk0_x_10d; //0x10D uint16_t el1_min_d; //0x10E uint16_t el1_min_d_n; //0x110 uint16_t el1_min_d_h; //0x112 uint16_t el2_min_d; //0x114 uint16_t el2_min_d_n; //0x116 uint16_t el2_min_d_h; //0x118 uint16_t el3_min_d; //0x11A uint16_t el3_min_d_n; //0x11C uint16_t el3_min_d_h; //0x11E uint16_t el1_max_d; //0x120 uint16_t el1_max_d_n; //0x122 uint16_t el1_max_d_h; //0x124 uint16_t el2_max_d; //0x126 uint16_t el2_max_d_n; //0x128 uint16_t el2_max_d_h; //0x12A uint16_t el3_max_d; //0x12C uint16_t el3_max_d_n; //0x12E uint16_t el3_max_d_h; //0x130 uint16_t el_1dur; //0x132 uint16_t el_1dur_n; //0x134 uint16_t el_1dur_h; //0x136 uint16_t el_2dur; //0x138 uint16_t el_2dur_n; //0x13A uint16_t el_2dur_h; //0x13C uint16_t el_3dur; //0x13E uint16_t el_3dur_n; //0x140 uint16_t el_3dur_h; //0x142 uint16_t res_dmg; //0x144 uint16_t res_dmg_n; //0x146 uint16_t res_dmg_h; //0x148 uint16_t res_magic; //0x14A uint16_t res_magic_n; //0x14C uint16_t res_magic_h; //0x14E uint16_t res_fire; //0x150 uint16_t res_fire_n; //0x152 uint16_t res_fire_h; //0x154 uint16_t res_light; //0x156 uint16_t res_light_n; //0x158 uint16_t res_light_h; //0x15A uint16_t res_cold; //0x15C uint16_t res_cold_n; //0x15E uint16_t res_cold_h; //0x160 uint16_t res_poison; //0x162 uint16_t res_poison_n; //0x164 uint16_t res_poiosn_h; //0x166 uint8_t cold_effect; //0x168 uint8_t cold_effect_n; //0x169 uint16_t cold_effect_h; //0x16A uint32_t send_skills; //0x16C uint16_t skill1; //0x170 uint16_t skill2; //0x172 uint16_t skill3; //0x174 uint16_t skill4; //0x176 uint16_t skill5; //0x178 uint16_t skill6; //0x17A uint16_t skill7; //0x17C uint16_t skill8; //0x17E uint32_t unk0_x180[6]; //0x180 uint8_t sk1_lvl; //0x198 uint8_t sk2_lvl; //0x199 uint8_t sk3_lvl; //0x19A uint8_t sk4_lvl; //0x19B uint8_t sk5_lvl; //0x19C uint8_t sk6_lvl; //0x19D uint8_t sk7_lvl; //0x19E uint8_t sk8_lvl; //0x19F uint32_t damage_regen; //0x1A0 uint8_t spl_end_death; //0x1A4 uint8_t spl_get_mode_chart; //0x1A5 uint8_t spl_end_generic; //0x1A6 uint8_t spl_client_end; //0x1A7 }; } }