annotate Engine/Spells/Spells.h @ 2575:a76d408c5132 tip

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