Mercurial > mm7
annotate Items.h @ 193:821fd955c379
fixed potion data parsing. Somehow 3d render was affected
author | Gloval |
---|---|
date | Sat, 16 Feb 2013 18:46:59 +0400 |
parents | 9c0607679772 |
children | 30aa44013f7a 8113753ed2ae |
rev | line source |
---|---|
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 uAttributes; | |
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 | |
193
821fd955c379
fixed potion data parsing. Somehow 3d render was affected
Gloval
parents:
0
diff
changeset
|
181 |
0 | 182 /* 176 */ |
183 #pragma pack(push, 1) | |
184 struct ItemsTable | |
185 { | |
186 void Initialize(); | |
187 void LoadPotions(); | |
188 void LoadPotionNotes(); | |
189 void GenerateItem(int a2, int a3, ItemGen *pItem); | |
190 void SetSpecialBonus(ItemGen *pItem); | |
191 bool _456D43_is_material_equals_3(ItemGen *pItem); | |
192 bool _456D5E_is_some_material(ItemGen *pItem); | |
193 char *Release(); | |
194 | |
195 | |
193
821fd955c379
fixed potion data parsing. Somehow 3d render was affected
Gloval
parents:
0
diff
changeset
|
196 ItemDesc pItems[638]; |
821fd955c379
fixed potion data parsing. Somehow 3d render was affected
Gloval
parents:
0
diff
changeset
|
197 char align1[18]; |
821fd955c379
fixed potion data parsing. Somehow 3d render was affected
Gloval
parents:
0
diff
changeset
|
198 unsigned __int8 potion_data[50][50]; //int8!!!! not int16 as in decomp code. hexrays wrong!! |
821fd955c379
fixed potion data parsing. Somehow 3d render was affected
Gloval
parents:
0
diff
changeset
|
199 unsigned __int8 potion_note[50][50]; |
821fd955c379
fixed potion data parsing. Somehow 3d render was affected
Gloval
parents:
0
diff
changeset
|
200 char align2[2758]; |
0 | 201 ItemEnchantment pEnchantments[24]; |
202 ItemSpecialEnchantment pSpecialEnchantments[72]; | |
203 char field_9FC0[5000]; | |
204 char field_B348[5000]; | |
205 char field_C6D0[5000]; | |
206 char field_DA58[5000]; | |
207 char field_EDE0[5000]; | |
208 char field_10168[5000]; | |
209 char field_114F0[388]; | |
210 char *pItemsTXT_Raw; | |
211 char *pRndItemsTXT_Raw; | |
212 char *pStdItemsTXT_Raw; | |
213 char *pSpcItemsTXT_Raw; | |
214 int field_11684[6]; | |
215 char field_1169C[60]; | |
216 int field_116D8[24]; | |
217 int field_11738[24]; | |
218 int field_11798; | |
219 char field_1179C; | |
220 }; | |
221 #pragma pack(pop) | |
222 | |
223 | |
224 | |
225 | |
226 extern ItemGen *ptr_50C9A4; | |
227 | |
228 extern struct ItemsTable *pItemsTable; |