0
|
1 #pragma once
|
|
2
|
839
|
3 #include "VectorTypes.h"
|
0
|
4
|
|
5 /* 360 */
|
|
6 enum SPELL_TYPE
|
|
7 {
|
486
|
8 SPELL_FIRE_TORCH_LIGHT = 1,
|
|
9 SPELL_FIRE_FIRE_BOLT = 2,
|
|
10 SPELL_FIRE_PROTECTION_FROM_FIRE = 3,
|
|
11 SPELL_FIRE_FIRE_AURA = 4,
|
|
12 SPELL_FIRE_HASTE = 5,
|
|
13 SPELL_FIRE_FIREBALL = 6,
|
|
14 SPELL_FIRE_FIRE_SPIKE = 7,
|
|
15 SPELL_FIRE_IMMOLATION = 8,
|
|
16 SPELL_FIRE_METEOR_SHOWER = 9,
|
|
17 SPELL_FIRE_INFERNO = 10,
|
|
18 SPELL_FIRE_INCINERATE = 11,
|
|
19
|
|
20 SPELL_AIR_WIZARD_EYE = 12,
|
|
21 SPELL_AIR_FEATHER_FALL = 13,
|
|
22 SPELL_AIR_PROTECTION_FROM_AIR = 14,
|
|
23 SPELL_AIR_SPARKS = 15,
|
|
24 SPELL_AIR_JUMP = 16,
|
|
25 SPELL_AIR_SHIELD = 17,
|
|
26 SPELL_AIR_LIGHNING_BOLT = 18,
|
|
27 SPELL_AIR_INVISIBILITY = 19,
|
|
28 SPELL_AIR_IMPLOSION = 20,
|
|
29 SPELL_AIR_FLY = 21,
|
|
30 SPELL_AIR_STARBURST = 22,
|
|
31
|
|
32 SPELL_WATER_AWAKEN = 23,
|
|
33 SPELL_WATER_POISON_SPRAY = 24,
|
|
34 SPELL_WATER_PROTECTION_FROM_WATER = 25,
|
|
35 SPELL_WATER_ICE_BOLT = 26,
|
|
36 SPELL_WATER_WATER_WALK = 27,
|
|
37 SPELL_WATER_RECHARGE_ITEM = 28,
|
|
38 SPELL_WATER_ACID_BURST = 29,
|
|
39 SPELL_WATER_ENCHANT_ITEM = 30,
|
|
40 SPELL_WATER_TOWN_PORTAL = 31,
|
|
41 SPELL_WATER_ICE_BLAST = 32,
|
|
42 SPELL_WATER_LLOYDS_BEACON = 33,
|
|
43
|
|
44 SPELL_EARTH_STUN = 34,
|
|
45 SPELL_EARTH_SLOW = 35,
|
|
46 SPELL_EARTH_PROTECTION_FROM_EARTH = 36,
|
|
47 SPELL_EARTH_DEADLY_SWARM = 37,
|
|
48 SPELL_EARTH_STONESKIN = 38,
|
|
49 SPELL_EARTH_BLADES = 39,
|
|
50 SPELL_EARTH_STONE_TO_FLESH = 40,
|
|
51 SPELL_EARTH_ROCK_BLAST = 41,
|
|
52 SPELL_EARTH_TELEKINESIS = 42,
|
|
53 SPELL_EARTH_DEATH_BLOSSOM = 43,
|
|
54 SPELL_EARTH_MASS_DISTORTION = 44,
|
|
55
|
|
56 SPELL_SPIRIT_DETECT_LIFE = 45,
|
|
57 SPELL_SPIRIT_BLESS = 46,
|
|
58 SPELL_SPIRIT_FATE = 47,
|
|
59 SPELL_SPIRIT_TURN_UNDEAD = 48,
|
|
60 SPELL_SPIRIT_REMOVE_CURSE = 49,
|
|
61 SPELL_SPIRIT_PRESERVATION = 50,
|
|
62 SPELL_SPIRIT_HEROISM = 51,
|
|
63 SPELL_SPIRIT_SPIRIT_LASH = 52,
|
|
64 SPELL_SPIRIT_RAISE_DEAD = 53,
|
|
65 SPELL_SPIRIT_SHARED_LIFE = 54,
|
|
66 SPELL_SPIRIT_RESSURECTION = 55,
|
|
67
|
|
68 SPELL_MIND_REMOVE_FEAR = 56,
|
|
69 SPELL_MIND_MIND_BLAST = 57,
|
|
70 SPELL_MIND_PROTECTION_FROM_MIND = 58,
|
|
71 SPELL_MIND_TELEPATHY = 59,
|
|
72 SPELL_MIND_CHARM = 60,
|
|
73 SPELL_MIND_CURE_PARALYSIS = 61,
|
|
74 SPELL_MIND_BERSERK = 62,
|
|
75 SPELL_MIND_MASS_FEAR = 63,
|
|
76 SPELL_MIND_CURE_INSANITY = 64,
|
|
77 SPELL_MIND_PSYCHIC_SHOCK = 65,
|
|
78 SPELL_MIND_ENSLAVE = 66,
|
|
79
|
|
80 SPELL_BODY_CURE_WEAKNESS = 67,
|
|
81 SPELL_BODY_FIRST_AID = 68,
|
|
82 SPELL_BODY_PROTECTION_FROM_BODY = 69,
|
|
83 SPELL_BODY_HARM = 70,
|
|
84 SPELL_BODY_REGENERATION = 71,
|
|
85 SPELL_BODY_CURE_POISON = 72,
|
|
86 SPELL_BODY_HAMMERHANDS = 73,
|
|
87 SPELL_BODY_CURE_DISEASE = 74,
|
|
88 SPELL_BODY_PROTECTION_FROM_MAGIC = 75,
|
|
89 SPELL_BODY_FLYING_FIST = 76,
|
|
90 SPELL_BODY_POWER_CURE = 77,
|
|
91
|
|
92 SPELL_LIGHT_LIGHT_BOLT = 78,
|
|
93 SPELL_LIGHT_DESTROY_UNDEAD = 79,
|
|
94 SPELL_LIGHT_DISPEL_MAGIC = 80,
|
|
95 SPELL_LIGHT_PARALYZE = 81,
|
|
96 SPELL_LIGHT_SUMMON_ELEMENTAL = 82,
|
|
97 SPELL_LIGHT_DAY_OF_THE_GODS = 83,
|
|
98 SPELL_LIGHT_PRISMATIC_LIGHT = 84,
|
|
99 SPELL_LIGHT_DAY_OF_PROTECTION = 85,
|
|
100 SPELL_LIGHT_HOUR_OF_POWER = 86,
|
|
101 SPELL_LIGHT_SUNRAY = 87,
|
|
102 SPELL_LIGHT_DIVINE_INTERVENTION = 88,
|
|
103
|
|
104 SPELL_DARK_REANIMATE = 89,
|
|
105 SPELL_DARK_TOXIC_CLOUD = 90,
|
|
106 SPELL_DARK_VAMPIRIC_WEAPON = 91,
|
|
107 SPELL_DARK_SHRINKING_RAY = 92,
|
|
108 SPELL_DARK_SHARPMETAL = 93,
|
|
109 SPELL_DARK_CONTROL_UNDEAD = 94,
|
|
110 SPELL_DARK_PAIN_REFLECTION = 95,
|
|
111 SPELL_DARK_SACRIFICE = 96,
|
|
112 SPELL_DARK_DRAGON_BREATH = 97,
|
|
113 SPELL_DARK_ARMAGEDDON = 98,
|
488
|
114 SPELL_DARK_SOULDRINKER = 99,
|
|
115
|
|
116 SPELL_BOW_ARROW = 100,
|
|
117 SPELL_101 = 101,
|
490
|
118 SPELL_LASER_PROJECTILE = 102,
|
488
|
119
|
495
|
120 BECOME_MAGIC_GUILD_MEMBER = 150,
|
511
|
121 SPELL_QUEST_COMPLETED = 151,
|
488
|
122 SPELL_152 = 152,
|
920
|
123 SPELL_DISEASE = 153
|
0
|
124 };
|
|
125
|
|
126
|
192
|
127 enum SPELL_SCHOOL : int
|
|
128 {
|
|
129 SPELL_SCHOOL_FIRE = 0,
|
|
130 SPELL_SCHOOL_AIR = 1,
|
|
131 SPELL_SCHOOL_WATER = 2,
|
|
132 SPELL_SCHOOL_EARTH = 3,
|
|
133 SPELL_SCHOOL_NONE = 4,
|
|
134 SPELL_SCHOOL_MAGIC = 5,
|
|
135 SPELL_SCHOOL_SPIRIT = 6,
|
|
136 SPELL_SCHOOL_MIND = 7,
|
|
137 SPELL_SCHOOL_BODY = 8,
|
|
138 SPELL_SCHOOL_LIGHT = 9,
|
|
139 SPELL_SCHOOL_DARK = 10
|
|
140 };
|
|
141
|
0
|
142
|
|
143
|
|
144 /* 68 */
|
|
145 #pragma pack(push, 1)
|
|
146 struct SpellBuff
|
|
147 {
|
|
148 inline SpellBuff()
|
|
149 {
|
|
150 uExpireTime = 0;
|
|
151 uPower = 0;
|
|
152 uSkill = 0;
|
|
153 uOverlayID = 0;
|
|
154 uCaster = 0;
|
|
155 uFlags = 0;
|
|
156 }
|
|
157
|
982
|
158 bool Apply(unsigned __int64 uExpireTime, unsigned __int16 uSkillLevel, unsigned __int16 uPower, int uOverlayID, unsigned __int8 caster);
|
0
|
159 void Reset();
|
|
160 signed int _4585CA(__int64 a2);
|
|
161 bool NotExpired();
|
|
162
|
|
163 unsigned __int64 uExpireTime;
|
|
164 unsigned __int16 uPower;
|
|
165 unsigned __int16 uSkill;
|
|
166 unsigned __int16 uOverlayID;
|
|
167 unsigned __int8 uCaster;
|
|
168 unsigned __int8 uFlags;
|
|
169 };
|
|
170 #pragma pack(pop)
|
|
171
|
|
172
|
|
173 #pragma pack(push, 1)
|
|
174 struct SpellInfo
|
|
175 {
|
|
176 char *pName;
|
|
177 char *pShortName;
|
|
178 char *pDescription;
|
|
179 char *pBasicSkillDesc;
|
|
180 char *pExpertSkillDesc;
|
|
181 char *pMasterSkillDesc;
|
|
182 char *pGrandmasterSkillDesc;
|
192
|
183 SPELL_SCHOOL uSchool;
|
0
|
184 int field_20;
|
|
185 };
|
|
186 #pragma pack(pop)
|
|
187
|
|
188
|
|
189
|
|
190 #pragma pack(push, 1)
|
|
191 struct SpellStats
|
|
192 {
|
|
193 void Initialize();
|
|
194
|
|
195 SpellInfo pInfos[100];
|
|
196 };
|
|
197 #pragma pack(pop)
|
|
198
|
|
199
|
|
200
|
|
201
|
|
202
|
|
203
|
|
204
|
|
205
|
|
206
|
|
207 /* 364 */
|
|
208 #pragma pack(push, 1)
|
|
209 struct stru324_spell
|
|
210 {
|
924
|
211 __int16 uType;
|
0
|
212 __int16 field_2;
|
|
213 };
|
|
214 #pragma pack(pop)
|
|
215
|
|
216 /* 151 */
|
|
217 #pragma pack(push, 1)
|
|
218 struct SpellData
|
|
219 {
|
488
|
220 union
|
|
221 {
|
|
222 unsigned __int16 mana_per_skill[4];
|
|
223 struct
|
|
224 {
|
|
225 unsigned __int16 uNormalLevelMana;
|
|
226 unsigned __int16 uExpertLevelMana;
|
|
227 unsigned __int16 uMasterLevelMana;
|
|
228 unsigned __int16 uMagisterLevelMana;
|
|
229 };
|
|
230 };
|
|
231 union
|
|
232 {
|
|
233 unsigned __int16 recovery_per_skill[4];
|
|
234 struct
|
|
235 {
|
|
236 unsigned __int16 uNormalLevelRecovery;
|
|
237 unsigned __int16 uExpertLevelRecovery;
|
|
238 unsigned __int16 uMasterLevelRecovery;
|
|
239 unsigned __int16 uMagisterLevelRecovery;
|
|
240 };
|
|
241 };
|
0
|
242 __int16 field_10;
|
192
|
243 __int16 field_12;
|
|
244 // char field_12;
|
|
245 // char field_13;
|
189
|
246 // __int16 field_14;
|
0
|
247 };
|
|
248 #pragma pack(pop)
|
|
249
|
357
|
250 #pragma pack(push, 1)
|
|
251 struct SpellBookIconPos
|
|
252 {
|
|
253 unsigned int Xpos;
|
|
254 unsigned int Ypos;
|
|
255 };
|
0
|
256
|
357
|
257 #pragma pack(pop)
|
0
|
258
|
839
|
259 /* 154 */
|
|
260 #pragma pack(push, 1)
|
|
261 struct TownPortalData
|
|
262 {
|
|
263 Vec3_int_ pos;
|
|
264 __int16 rot_y;
|
|
265 __int16 rot_x;
|
|
266 unsigned __int16 uMapInfoID;
|
|
267 __int16 field_12;
|
|
268 };
|
|
269 #pragma pack(pop)
|
|
270 extern TownPortalData TownPortalList[6]; //4ECBB8
|
|
271
|
0
|
272
|
|
273 extern struct SpellStats *pSpellStats;
|
|
274
|
363
|
275 extern struct SpellBookIconPos pIconPos[9][12];
|
0
|
276
|
|
277 extern stru324_spell stru_4E3ACC[];
|
490
|
278 extern SpellData pSpellDatas[100];
|
|
279 extern unsigned int wand_spell_ids[]; |