annotate Engine/Objects/SpriteObject.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
2498
Ritor1
parents:
diff changeset
1 #pragma once
2566
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
2 #include "Engine/VectorTypes.h"
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
3 #include "Engine/Objects/Items.h"
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
4
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
5
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
6
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
7
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
8 enum SPRITE_OBJECT_TYPE : unsigned __int16
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
9 {
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
10 SPRITE_NULL = 0,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
11
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
12 SPRITE_SPELL_0 = 10,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
13
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
14 SPRITE_PROJECTILE_500 = 500, // blue bolt projectile + smoke e.g. blue dragon attack
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
15 SPRITE_PROJECTILE_500_IMPACT = 501,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
16 SPRITE_PROJECTILE_505 = 505, // dark-brown bolt
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
17 SPRITE_PROJECTILE_505_IMPACT = 506,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
18 SPRITE_PROJECTILE_510 = 510, // red bolt projectile + smoke e.g. red dragon attack
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
19 SPRITE_PROJECTILE_510_IMPACT = 511,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
20 SPRITE_PROJECTILE_515 = 515, // deep-blue bolt
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
21 SPRITE_PROJECTILE_515_IMPACT = 516,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
22 SPRITE_PROJECTILE_520 = 520, // light-green bolt
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
23 SPRITE_PROJECTILE_520_IMPACT = 521,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
24 SPRITE_PROJECTILE_525 = 525, // yellow bolt
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
25 SPRITE_PROJECTILE_525_IMPACT = 526,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
26 SPRITE_PROJECTILE_530 = 530, // blue bolt projectile + smoke e.g. blue dragon attack
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
27 SPRITE_PROJECTILE_530_IMPACT = 531,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
28 SPRITE_PROJECTILE_535 = 535, // white bolt
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
29 SPRITE_PROJECTILE_535_IMPACT = 536,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
30 SPRITE_PROJECTILE_540 = 540, // gray bolt
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
31 SPRITE_PROJECTILE_540_IMPACT = 541,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
32 SPRITE_PROJECTILE_545 = 545,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
33 SPRITE_PROJECTILE_550 = 550,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
34 SPRITE_PROJECTILE_555 = 555,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
35
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
36 SPRITE_556 = 556, // some red mobile light applied
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
37 SPRITE_600 = 600, // some reddish mobile light applied
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
38 SPRITE_601 = 601,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
39
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
40 SPRITE_800 = 800,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
41
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
42 SPRITE_811 = 811,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
43 SPRITE_812 = 812,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
44 SPRITE_813 = 813,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
45 SPRITE_814 = 814,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
46
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
47 SPRITE_SPELL_FIRE_TORCH_LIGHT = 1000,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
48 SPRITE_SPELL_FIRE_FIRE_BOLT = 1010,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
49 SPRITE_SPELL_FIRE_FIRE_BOLT_IMPACT = 1011,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
50 SPRITE_SPELL_FIRE_PROTECTION_FROM_FIRE = 1020,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
51 SPRITE_SPELL_FIRE_FIRE_AURA = 1030,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
52 SPRITE_SPELL_FIRE_HASTE = 1040,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
53 SPRITE_SPELL_FIRE_FIREBALL = 1050,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
54 SPRITE_SPELL_FIRE_FIREBALL_IMPACT = 1051,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
55 SPRITE_SPELL_FIRE_FIRE_SPIKE = 1060,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
56 SPRITE_SPELL_FIRE_FIRE_SPIKE_IMPACT = 1061,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
57 SPRITE_SPELL_FIRE_IMMOLATION = 1070,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
58 SPRITE_SPELL_FIRE_METEOR_SHOWER = 1080,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
59 SPRITE_SPELL_FIRE_METEOR_SHOWER_1 = 1081,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
60 SPRITE_SPELL_FIRE_INFERNO = 1090,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
61 SPRITE_SPELL_FIRE_INCINERATE = 1100,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
62 SPRITE_SPELL_FIRE_INCINERATE_IMPACT = 1101,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
63
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
64 SPRITE_SPELL_AIR_WIZARD_EYE = 2000,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
65 SPRITE_SPELL_AIR_FEATHER_FALL = 2010,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
66 SPRITE_SPELL_AIR_PROTECTION_FROM_AIR = 2020,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
67 SPRITE_SPELL_AIR_SPARKS = 2030,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
68 SPRITE_SPELL_AIR_JUMP = 2040,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
69 SPRITE_SPELL_AIR_SHIELD = 2050,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
70 SPRITE_SPELL_AIR_LIGHNING_BOLT = 2060,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
71 SPRITE_SPELL_AIR_LIGHNING_BOLT_IMPACT = 2061,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
72 SPRITE_SPELL_AIR_INVISIBILITY = 2070,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
73 SPRITE_SPELL_AIR_IMPLOSION = 2080,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
74 SPRITE_SPELL_AIR_IMPLOSION_IMPACT = 2081,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
75 SPRITE_SPELL_AIR_FLY = 2090,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
76 SPRITE_SPELL_AIR_STARBURST = 2100,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
77 SPRITE_SPELL_AIR_STARBURST_1 = 2101,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
78
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
79 SPRITE_SPELL_WATER_AWAKEN = 3000,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
80 SPRITE_SPELL_WATER_POISON_SPRAY = 3010,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
81 SPRITE_SPELL_WATER_POISON_SPRAY_IMPACT = 3011,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
82 SPRITE_SPELL_WATER_PROTECTION_FROM_WATER = 3020,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
83 SPRITE_SPELL_WATER_ICE_BOLT = 3030,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
84 SPRITE_SPELL_WATER_ICE_BOLT_IMPACT = 3031,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
85 SPRITE_SPELL_WATER_WATER_WALK = 3040,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
86 SPRITE_SPELL_WATER_RECHARGE_ITEM = 3050,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
87 SPRITE_SPELL_WATER_ACID_BURST = 3060,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
88 SPRITE_SPELL_WATER_ACID_BURST_IMPACT = 3061,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
89 SPRITE_SPELL_WATER_ENCHANT_ITEM = 3070,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
90 SPRITE_SPELL_WATER_TOWN_PORTAL = 3080,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
91 SPRITE_SPELL_WATER_ICE_BLAST = 3090,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
92 SPRITE_SPELL_WATER_ICE_BLAST_IMPACT = 3091,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
93 SPRITE_SPELL_WATER_ICE_BLAST_FALLOUT = 3092,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
94 SPRITE_SPELL_WATER_LLOYDS_BEACON = 3100,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
95
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
96 SPRITE_SPELL_EARTH_STUN = 4000,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
97 SPRITE_SPELL_EARTH_SLOW = 4010,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
98 SPRITE_SPELL_EARTH_PROTECTION_FROM_EARTH = 4020,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
99 SPRITE_SPELL_EARTH_DEADLY_SWARM = 4030,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
100 SPRITE_SPELL_EARTH_DEADLY_SWARM_IMPACT = 4031,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
101 SPRITE_SPELL_EARTH_STONESKIN = 4040,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
102 SPRITE_SPELL_EARTH_BLADES = 4050,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
103 SPRITE_SPELL_EARTH_BLADES_IMPACT = 4051,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
104 SPRITE_SPELL_EARTH_STONE_TO_FLESH = 4060,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
105 SPRITE_SPELL_EARTH_ROCK_BLAST = 4070,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
106 SPRITE_SPELL_EARTH_ROCK_BLAST_IMPACT = 4071,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
107 SPRITE_SPELL_EARTH_TELEKINESIS = 4080,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
108 SPRITE_SPELL_EARTH_DEATH_BLOSSOM = 4090,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
109 SPRITE_SPELL_EARTH_DEATH_BLOSSOM_IMPACT = 4091,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
110 SPRITE_SPELL_EARTH_DEATH_BLOSSOM_FALLOUT = 4092,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
111 SPRITE_SPELL_EARTH_MASS_DISTORTION = 4100,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
112
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
113 SPRITE_SPELL_SPIRIT_DETECT_LIFE = 5000,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
114 SPRITE_SPELL_SPIRIT_BLESS = 5010,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
115 SPRITE_SPELL_SPIRIT_FATE = 5020,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
116 SPRITE_SPELL_SPIRIT_TURN_UNDEAD = 5030,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
117 SPRITE_SPELL_SPIRIT_TURN_UNDEAD_1 = 5031,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
118 SPRITE_SPELL_SPIRIT_REMOVE_CURSE = 5040,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
119 SPRITE_SPELL_SPIRIT_PRESERVATION = 5050,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
120 SPRITE_SPELL_SPIRIT_HEROISM = 5060,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
121 SPRITE_SPELL_SPIRIT_SPIRIT_LASH = 5070,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
122 SPRITE_SPELL_SPIRIT_RAISE_DEAD = 5080,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
123 SPRITE_SPELL_SPIRIT_SHARED_LIFE = 5090,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
124 SPRITE_SPELL_SPIRIT_RESSURECTION = 5100,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
125
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
126 SPRITE_SPELL_MIND_REMOVE_FEAR = 6000,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
127 SPRITE_SPELL_MIND_MIND_BLAST = 6010,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
128 SPRITE_SPELL_MIND_MIND_BLAST_IMPACT = 6011,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
129 SPRITE_SPELL_MIND_PROTECTION_FROM_MIND = 6020,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
130 SPRITE_SPELL_MIND_TELEPATHY = 6030,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
131 SPRITE_SPELL_MIND_CHARM = 6040,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
132 SPRITE_SPELL_MIND_CURE_PARALYSIS = 6050,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
133 SPRITE_SPELL_MIND_BERSERK = 6060,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
134 SPRITE_SPELL_MIND_MASS_FEAR = 6070,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
135 SPRITE_SPELL_MIND_MASS_FEAR_1 = 6071,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
136 SPRITE_SPELL_MIND_CURE_INSANITY = 6080,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
137 SPRITE_SPELL_MIND_PSYCHIC_SHOCK = 6090,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
138 SPRITE_SPELL_MIND_ENSLAVE = 6100,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
139
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
140 SPRITE_SPELL_BODY_CURE_WEAKNESS = 7000,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
141 SPRITE_SPELL_BODY_FIRST_AID = 7010,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
142 SPRITE_SPELL_BODY_PROTECTION_FROM_BODY = 7020,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
143 SPRITE_SPELL_BODY_HARM = 7030,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
144 SPRITE_SPELL_BODY_HARM_IMPACT = 7031,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
145 SPRITE_SPELL_BODY_REGENERATION = 7040,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
146 SPRITE_SPELL_BODY_CURE_POISON = 7050,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
147 SPRITE_SPELL_BODY_HAMMERHANDS = 7060,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
148 SPRITE_SPELL_BODY_CURE_DISEASE = 7070,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
149 SPRITE_SPELL_BODY_PROTECTION_FROM_MAGIC = 7080,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
150 SPRITE_SPELL_BODY_FLYING_FIST = 7090,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
151 SPRITE_SPELL_BODY_FLYING_FIST_IMPACT = 7091,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
152 SPRITE_SPELL_BODY_POWER_CURE = 7100,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
153
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
154 SPRITE_SPELL_LIGHT_LIGHT_BOLT = 8000,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
155 SPRITE_SPELL_LIGHT_LIGHT_BOLT_IMPACT = 8001,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
156 SPRITE_SPELL_LIGHT_DESTROY_UNDEAD = 8010,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
157 SPRITE_SPELL_LIGHT_DESTROY_UNDEAD_1 = 8011,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
158 SPRITE_SPELL_LIGHT_DISPEL_MAGIC = 8020,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
159 SPRITE_SPELL_LIGHT_DISPEL_MAGIC_1 = 8021,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
160 SPRITE_SPELL_LIGHT_PARALYZE = 8030,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
161 SPRITE_SPELL_LIGHT_SUMMON_ELEMENTAL = 8040,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
162 SPRITE_SPELL_LIGHT_DAY_OF_THE_GODS = 8050,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
163 SPRITE_SPELL_LIGHT_PRISMATIC_LIGHT = 8060,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
164 SPRITE_SPELL_LIGHT_PRISMATIC_LIGHT_1 = 8061,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
165 SPRITE_SPELL_LIGHT_DAY_OF_PROTECTION = 8070,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
166 SPRITE_SPELL_LIGHT_HOUR_OF_POWER = 8080,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
167 SPRITE_SPELL_LIGHT_SUNRAY = 8090,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
168 SPRITE_SPELL_LIGHT_SUNRAY_IMPACT = 8091,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
169 SPRITE_SPELL_LIGHT_DIVINE_INTERVENTION = 8100,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
170
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
171 SPRITE_SPELL_DARK_REANIMATE = 9000,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
172 SPRITE_SPELL_DARK_REANIMATE_1 = 9001,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
173 SPRITE_SPELL_DARK_TOXIC_CLOUD = 9010,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
174 SPRITE_SPELL_DARK_VAMPIRIC_WEAPON = 9020,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
175 SPRITE_SPELL_DARK_SHRINKING_RAY = 9030,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
176 SPRITE_SPELL_DARK_SHARPMETAL = 9040,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
177 SPRITE_SPELL_DARK_SHARPMETAL_IMPACT = 9041,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
178 SPRITE_SPELL_DARK_CONTROL_UNDEAD = 9050,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
179 SPRITE_SPELL_DARK_PAIN_REFLECTION = 9060,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
180 SPRITE_SPELL_DARK_SACRIFICE = 9070,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
181 SPRITE_SPELL_DARK_DRAGON_BREATH = 9080,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
182 SPRITE_SPELL_DARK_DRAGON_BREATH_1 = 9081,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
183 SPRITE_SPELL_DARK_ARMAGEDDON = 9090,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
184 SPRITE_SPELL_DARK_SOULDRINKER = 9100,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
185
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
186 SPRITE_SPELL_BOW_ARROW = 545,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
187 SPRITE_SPELL_101 = 545,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
188 SPRITE_SPELL_LASER_PROJECTILE = 555,
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
189 };
2498
Ritor1
parents:
diff changeset
190
Ritor1
parents:
diff changeset
191 enum
Ritor1
parents:
diff changeset
192 {
Ritor1
parents:
diff changeset
193 OBJECT_40 = 0x40
Ritor1
parents:
diff changeset
194 , OBJECT_ATTACHED_TO_ACTOR = 0x80
Ritor1
parents:
diff changeset
195 };
Ritor1
parents:
diff changeset
196
Ritor1
parents:
diff changeset
197 #define MAX_SPRITE_OBJECTS 1000
Ritor1
parents:
diff changeset
198 /* 72 */
Ritor1
parents:
diff changeset
199 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
200 struct SpriteObject
Ritor1
parents:
diff changeset
201 {
Ritor1
parents:
diff changeset
202 inline bool AttachedToActor() const {return (uAttributes & OBJECT_ATTACHED_TO_ACTOR) != 0;}
Ritor1
parents:
diff changeset
203
Ritor1
parents:
diff changeset
204 SpriteObject();
Ritor1
parents:
diff changeset
205 int Create(int yaw, int pitch, int a4, int a5);
Ritor1
parents:
diff changeset
206 void _46BEF1_apply_spells_aoe();
Ritor1
parents:
diff changeset
207 void ExplosionTraps();
Ritor1
parents:
diff changeset
208
Ritor1
parents:
diff changeset
209 static void UpdateObject_fn0_BLV(unsigned int uLayingItemID);
Ritor1
parents:
diff changeset
210 static void UpdateObject_fn0_ODM(unsigned int uLayingItemID);
Ritor1
parents:
diff changeset
211 static void OnInteraction(unsigned int uLayingItemID);
2566
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
212 static bool sub_42F7EB_DropItemAt(SPRITE_OBJECT_TYPE sprite, int x, int y, int z, int a4, int count, int a7, unsigned __int16 attributes, ItemGen *a9);
2498
Ritor1
parents:
diff changeset
213 static void sub_42F960_create_object(int x, int y, int z);
Ritor1
parents:
diff changeset
214 static void InitializeSpriteObjects();
Ritor1
parents:
diff changeset
215
Ritor1
parents:
diff changeset
216
2566
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
217 SPRITE_OBJECT_TYPE uType;
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
218 //unsigned __int16 uType;
2498
Ritor1
parents:
diff changeset
219 unsigned __int16 uObjectDescID;
Ritor1
parents:
diff changeset
220 struct Vec3_int_ vPosition;
Ritor1
parents:
diff changeset
221 struct Vec3_short_ vVelocity;
Ritor1
parents:
diff changeset
222 unsigned __int16 uFacing;
Ritor1
parents:
diff changeset
223 unsigned __int16 uSoundID;
Ritor1
parents:
diff changeset
224 unsigned __int16 uAttributes;
Ritor1
parents:
diff changeset
225 __int16 uSectorID;
Ritor1
parents:
diff changeset
226 unsigned __int16 uSpriteFrameID;
Ritor1
parents:
diff changeset
227 __int16 field_20;
Ritor1
parents:
diff changeset
228 __int16 field_22_glow_radius_multiplier;
2566
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
229 struct ItemGen containing_item;
2498
Ritor1
parents:
diff changeset
230 int spell_id;
Ritor1
parents:
diff changeset
231 int spell_level;
Ritor1
parents:
diff changeset
232 int spell_skill;
Ritor1
parents:
diff changeset
233 int field_54;
Ritor1
parents:
diff changeset
234 int spell_caster_pid;
Ritor1
parents:
diff changeset
235 int spell_target_pid;
Ritor1
parents:
diff changeset
236 char field_60_distance_related_prolly_lod;
Ritor1
parents:
diff changeset
237 char field_61;
Ritor1
parents:
diff changeset
238 char field_62[2];
Ritor1
parents:
diff changeset
239 Vec3_int_ field_64;
Ritor1
parents:
diff changeset
240 };
Ritor1
parents:
diff changeset
241 #pragma pack(pop)
Ritor1
parents:
diff changeset
242
Ritor1
parents:
diff changeset
243
Ritor1
parents:
diff changeset
244 void CompactLayingItemsList();
Ritor1
parents:
diff changeset
245
Ritor1
parents:
diff changeset
246 extern size_t uNumSpriteObjects;
Ritor1
parents:
diff changeset
247 extern std::array<SpriteObject, MAX_SPRITE_OBJECTS> pSpriteObjects;
Ritor1
parents:
diff changeset
248
2566
30eb6dcac768 big spell fx overhaul
a.parshin
parents: 2498
diff changeset
249 bool __fastcall _46BFFA_update_spell_fx(unsigned int uLayingItemID, signed int a2);
2498
Ritor1
parents:
diff changeset
250 void __fastcall sub_43A97E(unsigned int uLayingItemID, signed int a2); // idb