Initial commit

This commit is contained in:
Hash Borgir
2024-04-16 21:45:38 -06:00
commit 3159020c38
533 changed files with 135446 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
#pragma once
#include <cstdint>
namespace diablo2 {
namespace structures {
struct bodylocs_line {
union {
uint32_t code;
char str[4];
};
};
}
}

View File

@@ -0,0 +1,14 @@
#pragma once
#include <cstdint>
namespace diablo2 {
namespace structures {
struct elemtypes_line {
union {
uint32_t code;
char str[4];
};
};
}
}

View File

@@ -0,0 +1,14 @@
#pragma once
#include <cstdint>
namespace diablo2 {
namespace structures {
struct hitclass_line {
union {
uint32_t code;
char str[4];
};
};
}
}

View File

@@ -0,0 +1,45 @@
#pragma once
#include <cstdint>
namespace diablo2 {
namespace structures {
struct item_types_line {
char code[4]; //0x00
int16_t equiv1; //0x04
int16_t equiv2; //0x06
int8_t repair; //0x08
int8_t body; //0x09
int8_t body_loc1; //0x0A
int8_t body_loc2; //0x0B
int16_t shoots; //0x0C
int16_t quiver; //0x0E
int8_t throwable; //0x10
int8_t reload; //0x11
int8_t re_equip; //0x12
int8_t auto_stack; //0x13
int8_t magic; //0x14
int8_t rare; //0x15
int8_t normal; //0x16
int8_t charm; //0x17
int8_t gem; //0x18
int8_t beltable; //0x19
int8_t max_sock1; //0x1A
int8_t max_sock25; //0x1B
int8_t max_sock40; //0x1C
int8_t treasure_class; //0x1D
int8_t rarity; //0x1E
int8_t staff_mods; //0x1F
int8_t cost_formula; //0x20
int8_t item_class; //0x21
int8_t store_page; //0x22
int8_t var_inv_gfx; //0x23
char inv_gfx1[32]; //0x24
char inv_gfx2[32]; //0x44
char inv_gfx3[32]; //0x64
char inv_gfx4[32]; //0x84
char inv_gfx5[32]; //0xA4
char inv_gfx6[32]; //0xC4
};
}
}

View File

@@ -0,0 +1,211 @@
#pragma once
#include <cstdint>
namespace diablo2 {
namespace structures {
//https://phrozen-library.fandom.com/wiki/Items_line
struct items_line {
char flippy_file[32]; //0x00
char inv_file[32]; //0x20
char unique_inv_file[32]; //0x40
char setinv_file[32]; //0x60
union {
uint32_t number_code; //0x80
char string_code[4]; //0x80
};
uint32_t norm_code; //0x84
uint32_t uber_code; //0x88
uint32_t ultra_code; //0x8C
uint32_t alternate_gfx; //0x90
void* spell; //0x94
uint16_t state; //0x98
uint16_t cstate1; //0x9A
uint16_t cstate2; //0x9C
uint16_t stat1; //0x9E
uint16_t stat2; //0xA0
uint16_t stat3; //0xA2
uint32_t calc1; //0xA4
uint32_t calc2; //0xA8
uint32_t calc3; //0xAC
uint32_t len; //0xB0
uint16_t spell_desc; //0xB4
uint16_t spell_desc_str; //0xB6
uint32_t spell_desc_calc; //0xB8
uint32_t better_gem; //0xBC
uint32_t weapon_class; //0xC0
uint32_t two_handed_weapon_class; //0xC4
uint32_t transmog_type; //0xC8
uint32_t min_ac; //0xCC
uint32_t max_ac; //0xD0
uint32_t gamble_cost; //0xD4
uint32_t speed; //0xD8
uint32_t bit_field1; //0xDC
uint32_t cost; //0xE0
uint32_t min_stack; //0xE4
uint32_t max_stack; //0xE8
uint32_t spawn_stack; //0xEC
uint32_t gem_offset; //0xF0
uint16_t name_str; //0xF4
uint16_t version; //0xF6
uint16_t auto_prefix; //0xF8
uint16_t missile_type; //0xFA
uint8_t rarity; //0xFC
uint8_t level; //0xFD
uint8_t min_damage; //0xFE
uint8_t max_damage; //0xFF
uint8_t min_misdamage; //0x100
uint8_t max_misdamage; //0x101
uint8_t two_hand_min_damage; //0x102
uint8_t two_hand_max_damage; //0x103
uint16_t range_adder; //0x104
uint16_t str_bonus; //0x106
uint16_t dex_bonus; //0x108
uint16_t req_str; //0x10A
uint16_t req_dex; //0x10C
uint8_t absorbs; //0x10E
uint8_t inv_width; //0x10F
uint8_t inv_height; //0x110
uint8_t block; //0x111
uint8_t durability; //0x112
uint8_t no_durability; //0x11
uint8_t missile; //0x114
uint8_t component; //0x115
uint8_t right_arm; //0x116
uint8_t left_arm; //0x117
uint8_t torso; //0x118
uint8_t legs; //0x119
uint8_t right_spad; //0x11A
uint8_t left_spad; //0x11B
uint8_t two_handed; //0x11C
uint8_t useable; //0x11D
uint16_t type; //0x11E
uint16_t type2; //0x120
uint16_t subtype; //0x122
uint16_t drop_sound; //0x124
uint16_t use_sound; //0x126
uint8_t drop_sfx_frame; //0x128
uint8_t unique; //0x129
uint8_t quest; //0x12A
uint8_t quest_diff_check; //0x12B
uint8_t transparent; //0x12C
uint8_t trans_tbl; //0x12D
uint8_t pad0_x12_e; //0x12E
uint8_t light_radius; //0x12F
uint8_t belt; //0x130
uint8_t auto_belt; //0x131
uint8_t stackable; //0x132
uint8_t spawnable; //0x133
uint8_t spell_icon; //0x134
uint8_t dur_warning; //0x135
uint8_t quantity_warning; //0x136
uint8_t has_inv; //0x137
uint8_t gem_sockets; //0x138
uint8_t transmogrify; //0x139
uint8_t transmog_min; //0x13A
uint8_t transmog_max; //0x13B
uint8_t hit_class; //0x13C
uint8_t one_or_two_handed; //0x13D
uint8_t gem_apply_type; //0x13E
uint8_t level_req; //0x13F
uint8_t magic_lvl; //0x140
uint8_t transform; //0x141
uint8_t inv_trans; //0x142
uint8_t compact_save; //0x143
uint8_t skip_name; //0x144
uint8_t nameable; //0x145
uint8_t akara_min; //0x146
uint8_t gheed_min; //0x147
uint8_t charsi_min; //0x148
uint8_t fara_min; //0x149
uint8_t lysander_min; //0x14A
uint8_t drognan_min; //0x14B
uint8_t hralti_min; //0x14C
uint8_t alkor_min; //0x14D
uint8_t ormus_min; //0x14E
uint8_t elzix_min; //0x14F
uint8_t asheara_min; //0x150
uint8_t cain_min; //0x151
uint8_t halbu_min; //0x152
uint8_t jamella_min; //0x153
uint8_t malah_min; //0x154
uint8_t larzuk_min; //0x155
uint8_t drehya_min; //0x156
uint8_t akara_max; //0x157
uint8_t gheed_max; //0x158
uint8_t charsi_max; //0x159
uint8_t fara_max; //0x15A
uint8_t lysander_max; //0x15B
uint8_t drognan_max; //0x15C
uint8_t hralti_max; //0x15D
uint8_t alkor_max; //0x15E
uint8_t ormus_max; //0x15F
uint8_t elzix_max; //0x160
uint8_t asheara_max; //0x161
uint8_t cain_max; //0x162
uint8_t halbu_max; //0x163
uint8_t jamella_max; //0x164
uint8_t malah_max; //0x165
uint8_t larzuk_max; //0x166
uint8_t drehya_max; //0x167
uint8_t akara_magic_min; //0x168
uint8_t gheed_magic_min; //0x169
uint8_t charsi_magic_min; //0x16A
uint8_t fara_magic_min; //0x16B
uint8_t lysander_magic_min; //0x16C
uint8_t drognan_magic_min; //0x16D
uint8_t hralti_magic_min; //0x16E
uint8_t alkor_magic_min; //0x16F
uint8_t ormus_magic_min; //0x170
uint8_t elzix_magic_min; //0x171
uint8_t asheara_magic_min; //0x172
uint8_t cain_magic_min; //0x173
uint8_t halbu_magic_min; //0x174
uint8_t jamella_magic_min; //0x175
uint8_t malah_magic_min; //0x176
uint8_t larzuk_magic_min; //0x177
uint8_t drehya_magic_min; //0x178
uint8_t akara_magic_max; //0x179
uint8_t gheed_magic_max; //0x17A
uint8_t charsi_magic_max; //0x17B
uint8_t fara_magic_max; //0x17C
uint8_t lysander_magic_max; //0x17D
uint8_t drognan_magic_max; //0x17E
uint8_t hralti_magic_max; //0x17F
uint8_t alkor_magic_max; //0x180
uint8_t ormus_magic_max; //0x181
uint8_t elzix_magic_max; //0x182
uint8_t asheara_magic_max; //0x183
uint8_t cain_magic_max; //0x184
uint8_t halbu_magic_max; //0x185
uint8_t jamella_magic_max; //0x186
uint8_t malah_magic_max; //0x187
uint8_t larzuk_magic_max; //0x188
uint8_t drehya_magic_max; //0x189
uint8_t akara_magic_lvl; //0x18A
uint8_t gheed_magic_lvl; //0x18B
uint8_t charsi_magic_lvl; //0x18C
uint8_t fara_magic_lvl; //0x18D
uint8_t lysander_magic_lvl; //0x18E
uint8_t drognan_magic_lvl; //0x18F
uint8_t hralti_magic_lvl; //0x190
uint8_t alkor_magic_lvl; //0x191
uint8_t ormus_magic_lvl; //0x192
uint8_t elzix_magic_lvl; //0x193
uint8_t asheara_magic_lvl; //0x194
uint8_t cain_magic_lvl; //0x195
uint8_t halbu_magic_lvl; //0x196
uint8_t jamella_magic_lvl; //0x197
uint8_t malah_magic_lvl; //0x198
uint8_t larzuk_magic_lvl; //0x199
uint8_t drehya_magic_lvl; //0x19A
uint8_t pad0_x19_b; //0x19B
uint32_t nightmare_upgrade; //0x19C
uint32_t hell_upgrade; //0x1A0
uint8_t perm_store_item; //0x1A4
uint8_t multi_buy; //0x1A5
uint16_t pad0_x1_a6; //0x1A6
};
}
}

View File

@@ -0,0 +1,14 @@
#pragma once
#include <cstdint>
namespace diablo2 {
namespace structures {
struct monmode_line {
union {
uint32_t code;
char str[4];
};
};
}
}

View File

@@ -0,0 +1,234 @@
#pragma once
#include <cstdint>
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
};
}
}

View File

@@ -0,0 +1,14 @@
#pragma once
#include <cstdint>
namespace diablo2 {
namespace structures {
struct playerclass_line {
union {
uint32_t code;
char str[4];
};
};
}
}

View File

@@ -0,0 +1,15 @@
#pragma once
#include <cstdint>
namespace diablo2 {
namespace structures {
struct properties_line {
uint16_t prop;
uint8_t set[8];
uint16_t val[7];
uint8_t func[8];
uint16_t stat[7];
};
}
}

View File

@@ -0,0 +1,14 @@
#pragma once
#include <cstdint>
namespace diablo2 {
namespace structures {
struct storepage_line {
union {
uint32_t code;
char str[4];
};
};
}
}