0
|
1 #pragma once
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8 /* 338 */
|
|
9 enum ITEM_FLAGS
|
|
10 {
|
|
11 ITEM_IDENTIFIED = 0x1,
|
|
12 ITEM_BROKEN = 0x2,
|
|
13 ITEM_TEMP_BONUS = 0x8,
|
|
14 ITEM_STOLEN = 0x100,
|
|
15 ITEM_ENCHANTED = 0x200,
|
|
16 };
|
|
17
|
|
18
|
|
19 /* 330 */
|
|
20 enum ITEM_TYPE
|
|
21 {
|
|
22 ITEM_LONGSWORD_1 = 0x1,
|
|
23 ITEM_DAGGER_1 = 0xF,
|
|
24 ITEM_AXE_1 = 0x17,
|
|
25 ITEM_SPEAR_1 = 0x1F,
|
|
26 ITEM_CROSSBOW_1 = 0x2F,
|
|
27 ITEM_MACE_1 = 0x32,
|
|
28 ITEM_STAFF_1 = 0x3D,
|
|
29 ITEM_LEATHER_1 = 0x42,
|
|
30 ITEM_CHAINMAIL_1 = 0x47,
|
|
31 ITEM_PLATE_1 = 0x4C,
|
|
32 ITEM_BUCKLER_1 = 0x54,
|
|
33 ITEM_GAUNTLETS_1 = 0x6E,
|
|
34 ITEM_BOOTS_1 = 0x73,
|
|
35 ITEM_WAND_FIRE = 0x87,
|
|
36 ITEM_WAND_STUN = 0x8A,
|
|
37 ITEM_WAND_INCENERATION = 0x9F,
|
|
38 ITEM_TROLL_BLOOD = 0xCA,
|
|
39 ITEM_DRAGON_EYE = 0xCC,
|
|
40 ITEM_HARPY_FEATHER = 0xCF,
|
|
41 ITEM_DEVIL_ICHOR = 0xD6,
|
|
42 ITEM_OOZE_ECTOPLASM_BOTTLE = 0xD9,
|
|
43 ITEM_POTION_BOTTLE = 0xDC,
|
|
44 ITEM_SPELLBOOK_FIRE_STRIKE = 0x191,
|
|
45 ITEM_SPELLBOOK_AIR_FEATHER_FALL = 0x19C,
|
|
46 ITEM_SPELLBOOK_WATER_POISON_SPRAY = 0x1A7,
|
|
47 ITEM_SPELLBOOK_EARTH_SLOW = 0x1B2,
|
|
48 ITEM_SPELLBOOK_SPIRIT_BLESS = 0x1BD,
|
|
49 ITEM_SPELLBOOK_MIND_MIND_BLAST = 0x1C8,
|
|
50 ITEM_SPELLBOOK_BODY_FIRST_AID = 0x1D3,
|
|
51 ITEM_SPELLBOOK_BODY_HEAL = 0x1D6,
|
|
52 ITEM_SPELLBOOK_BODY_BREAK_POISON = 0x1D7,
|
|
53 ITEM_SPELLBOOK_LIGHT_LIGHT_BOLT = 0x1DD,
|
|
54 ITEM_SPELLBOOK_LIGHT_SUN_BURST = 0x1E6,
|
|
55 ITEM_SPELLBOOK_LIGHT_DIVINE_INTERVENTION = 0x1E7,
|
|
56 ITEM_ARTIFACT_PUCK = 0x1F4,
|
|
57 ITEM_RELIC_MEKORIGS_HAMMER = 0x210,
|
|
58 };
|
|
59
|
|
60 /* 331 */
|
|
61 enum ITEM_EQUIP_TYPE
|
|
62 {
|
|
63 EQUIP_ONE_OR_TWO_HANDS = 0x0,
|
|
64 EQUIP_TWO_HANDED = 0x1,
|
|
65 EQUIP_BOW = 0x2,
|
|
66 EQUIP_ARMOUR = 0x3,
|
|
67 EQUIP_SHIELD = 0x4,
|
|
68 EQUIP_HELMET = 0x5,
|
|
69 EQUIP_BELT = 0x6,
|
|
70 EQUIP_CLOAK = 0x7,
|
|
71 EQUIP_GAUNTLETS = 0x8,
|
|
72 EQUIP_BOOTS = 0x9,
|
|
73 EQUIP_RING = 0xA,
|
|
74 EQUIP_AMULET = 0xB,
|
|
75 EQUIP_C = 0xC,
|
|
76 EQUIP_REAGENT = 0xD,
|
|
77 EQUIP_POTION = 0xE,
|
|
78 EQUIP_F = 0xF,
|
|
79 EQUIP_BOOK = 0x10,
|
|
80 EQUIP_11 = 0x11,
|
|
81 EQUIP_GOLD = 0x12,
|
|
82 EQUIP_GEM = 0x13,
|
|
83 };
|
|
84
|
|
85
|
|
86
|
|
87 /* 64 */
|
|
88 #pragma pack(push, 1)
|
|
89 struct ItemGen
|
|
90 {
|
|
91 //----- (0042EB25) --------------------------------------------------------
|
|
92 inline ItemGen()
|
|
93 {
|
|
94 Reset();
|
|
95 }
|
|
96
|
|
97 bool GenerateArtifact();
|
|
98 unsigned int GetValue();
|
|
99 const char *GetDisplayName();
|
|
100 const char *GetIdentifiedName();
|
|
101 void UpdateTempBonus(__int64 uTimePlayed);
|
|
102 void Reset();
|
|
103 int _439DF3_get_additional_damage(int *a2, int *a3);
|
|
104
|
|
105
|
|
106
|
|
107 unsigned int uItemID;
|
|
108 int _bonus_type;
|
|
109 int _bonus_strength;
|
|
110 int uAdditionalValue;
|
|
111 int uNumCharges;
|
|
112 unsigned int uAttributtes;
|
|
113 unsigned __int8 uBodyAnchor;
|
|
114 char uMaxCharges;
|
|
115 char field_1A;
|
|
116 char field_1B;
|
|
117 unsigned __int64 uExpireTime;
|
|
118 };
|
|
119 #pragma pack(pop)
|
|
120
|
|
121
|
|
122
|
|
123 /* 175 */
|
|
124 #pragma pack(push, 1)
|
|
125 struct ItemDesc
|
|
126 {
|
|
127 unsigned int uItemID;
|
|
128 char *pIconName;
|
|
129 char *pName;
|
|
130 char *pUnidentifiedName;
|
|
131 char *pDescription;
|
|
132 unsigned int uValue;
|
|
133 unsigned __int16 uSpriteID;
|
|
134 __int16 field_1A;
|
|
135 unsigned __int16 uEquipX;
|
|
136 unsigned __int16 uEquipY;
|
|
137 unsigned __int8 uEquipType;
|
|
138 unsigned __int8 uSkillType;
|
|
139 unsigned __int8 uDamageDice;
|
|
140 unsigned __int8 uDamageRoll;
|
|
141 unsigned __int8 uDamageMod;
|
|
142 unsigned __int8 uMaterial;
|
|
143 char _additional_value;
|
|
144 char _bonus_type;
|
|
145 char _bonus_strength;
|
|
146 char field_29;
|
|
147 char field_2A;
|
|
148 char field_2B;
|
|
149 char field_2C;
|
|
150 char field_2D;
|
|
151 char field_2E;
|
|
152 char field_2F;
|
|
153 };
|
|
154 #pragma pack(pop)
|
|
155
|
|
156
|
|
157
|
|
158 /* 177 */
|
|
159 #pragma pack(push, 1)
|
|
160 struct ItemEnchantment
|
|
161 {
|
|
162 char *pName;
|
|
163 char *pParam;
|
|
164 char field_8[12];
|
|
165 };
|
|
166 #pragma pack(pop)
|
|
167
|
|
168 /* 178 */
|
|
169 #pragma pack(push, 1)
|
|
170 struct ItemSpecialEnchantment
|
|
171 {
|
|
172 char *pName;
|
|
173 char *pParam;
|
|
174 char field_8[12];
|
|
175 int field_14;
|
|
176 int field_18;
|
|
177 };
|
|
178 #pragma pack(pop)
|
|
179
|
|
180
|
|
181 /* 176 */
|
|
182 #pragma pack(push, 1)
|
|
183 struct ItemsTable
|
|
184 {
|
|
185 void Initialize();
|
|
186 void LoadPotions();
|
|
187 void LoadPotionNotes();
|
|
188 void GenerateItem(int a2, int a3, ItemGen *pItem);
|
|
189 void SetSpecialBonus(ItemGen *pItem);
|
|
190 bool _456D43_is_material_equals_3(ItemGen *pItem);
|
|
191 bool _456D5E_is_some_material(ItemGen *pItem);
|
|
192 char *Release();
|
|
193
|
|
194
|
|
195 ItemDesc pItems[800];
|
|
196 ItemEnchantment pEnchantments[24];
|
|
197 ItemSpecialEnchantment pSpecialEnchantments[72];
|
|
198 char field_9FC0[5000];
|
|
199 char field_B348[5000];
|
|
200 char field_C6D0[5000];
|
|
201 char field_DA58[5000];
|
|
202 char field_EDE0[5000];
|
|
203 char field_10168[5000];
|
|
204 char field_114F0[388];
|
|
205 char *pItemsTXT_Raw;
|
|
206 char *pRndItemsTXT_Raw;
|
|
207 char *pStdItemsTXT_Raw;
|
|
208 char *pSpcItemsTXT_Raw;
|
|
209 int field_11684[6];
|
|
210 char field_1169C[60];
|
|
211 int field_116D8[24];
|
|
212 int field_11738[24];
|
|
213 int field_11798;
|
|
214 char field_1179C;
|
|
215 };
|
|
216 #pragma pack(pop)
|
|
217
|
|
218
|
|
219
|
|
220
|
|
221 extern ItemGen *ptr_50C9A4;
|
|
222
|
|
223 extern struct ItemsTable *pItemsTable; |