-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patheffect.h
182 lines (174 loc) · 4.53 KB
/
effect.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
/*
effects.h
effect types and defs for Hexen II
*/
#define MAX_EFFECTS 256
/* Types for various chunks */
#define THINGTYPE_GREYSTONE 1
#define THINGTYPE_WOOD 2
#define THINGTYPE_METAL 3
#define THINGTYPE_FLESH 4
#define THINGTYPE_FIRE 5
#define THINGTYPE_CLAY 6
#define THINGTYPE_LEAVES 7
#define THINGTYPE_HAY 8
#define THINGTYPE_BROWNSTONE 9
#define THINGTYPE_CLOTH 10
#define THINGTYPE_WOOD_LEAF 11
#define THINGTYPE_WOOD_METAL 12
#define THINGTYPE_WOOD_STONE 13
#define THINGTYPE_METAL_STONE 14
#define THINGTYPE_METAL_CLOTH 15
#define THINGTYPE_WEBS 16
#define THINGTYPE_GLASS 17
#define THINGTYPE_ICE 18
#define THINGTYPE_CLEARGLASS 19
#define THINGTYPE_REDGLASS 20
#define THINGTYPE_ACID 21
#define THINGTYPE_METEOR 22
#define THINGTYPE_GREENFLESH 23
#define THINGTYPE_BONE 24
#define CE_NONE 0
#define CE_RAIN 1
#define CE_FOUNTAIN 2
#define CE_QUAKE 3
#define CE_WHITE_SMOKE 4 /* whtsmk1.spr */
#define CE_BLUESPARK 5 /* bspark.spr */
#define CE_YELLOWSPARK 6 /* spark.spr */
#define CE_SM_CIRCLE_EXP 7 /* fcircle.spr */
#define CE_BG_CIRCLE_EXP 8 /* fcircle.spr */
#define CE_SM_WHITE_FLASH 9 /* sm_white.spr */
#define CE_WHITE_FLASH 10 /* gryspt.spr */
#define CE_YELLOWRED_FLASH 11 /* yr_flash.spr */
#define CE_BLUE_FLASH 12 /* bluflash.spr */
#define CE_SM_BLUE_FLASH 13 /* bluflash.spr */
#define CE_RED_FLASH 14 /* redspt.spr */
#define CE_SM_EXPLOSION 15 /* sm_expld.spr */
#define CE_LG_EXPLOSION 16 /* bg_expld.spr */
#define CE_FLOOR_EXPLOSION 17 /* fl_expld.spr */
#define CE_RIDER_DEATH 18
#define CE_BLUE_EXPLOSION 19 /* xpspblue.spr */
#define CE_GREEN_SMOKE 20 /* grnsmk1.spr */
#define CE_GREY_SMOKE 21 /* grysmk1.spr */
#define CE_RED_SMOKE 22 /* redsmk1.spr */
#define CE_SLOW_WHITE_SMOKE 23 /* whtsmk1.spr */
#define CE_REDSPARK 24 /* rspark.spr */
#define CE_GREENSPARK 25 /* gspark.spr */
#define CE_TELESMK1 26 /* telesmk1.spr */
#define CE_TELESMK2 27 /* telesmk2.spr */
#define CE_ICEHIT 28 /* icehit.spr */
#define CE_MEDUSA_HIT 29 /* medhit.spr */
#define CE_MEZZO_REFLECT 30 /* mezzoref.spr */
#define CE_FLOOR_EXPLOSION2 31 /* flrexpl2.spr */
#define CE_XBOW_EXPLOSION 32 /* xbowexpl.spr */
#define CE_NEW_EXPLOSION 33 /* gen_expl.spr */
#define CE_MAGIC_MISSILE_EXPLOSION 34 /* mm_expld.spr */
#define CE_GHOST 35 /* ghost.spr */
#define CE_BONE_EXPLOSION 36
#define CE_REDCLOUD 37
#define CE_TELEPORTERPUFFS 38
#define CE_TELEPORTERBODY 39
#define CE_BONESHARD 40
#define CE_BONESHRAPNEL 41
/* New for Mission Pack... */
#define CE_FLAMESTREAM 42 /* Flamethrower */
#define CE_SNOW 43
#define CE_GRAVITYWELL 44
#define CE_BLDRN_EXPL 45
#define CE_ACID_MUZZFL 46
#define CE_ACID_HIT 47
#define CE_FIREWALL_SMALL 48
#define CE_FIREWALL_MEDIUM 49
#define CE_FIREWALL_LARGE 50
#define CE_LBALL_EXPL 51
#define CE_ACID_SPLAT 52
#define CE_ACID_EXPL 53
#define CE_FBOOM 54
#define CE_CHUNK 55
#define CE_BOMB 56
#define CE_BRN_BOUNCE 57
#define CE_LSHOCK 58
#define CE_FLAMEWALL 59
#define CE_FLAMEWALL2 60
#define CE_FLOOR_EXPLOSION3 61
#define CE_ONFIRE 62
struct EffectT
{
int type;
float expire_time;
union
{
struct
{
vec3_t e_size, dir, min_org, max_org;
float next_time, wait;
int color, count, veer, flags;
} Rain;
struct
{
vec3_t pos, angle, movedir;
vec3_t vforward, vup, vright;
int color, cnt;
} Fountain;
struct
{
vec3_t origin;
float radius;
} Quake;
struct
{
vec3_t origin;
vec3_t velocity;
int entity_index;
float time_amount, framelength, frame;
} Smoke;
struct
{
vec3_t origin;
int entity_index;
float time_amount;
int reverse; /* Forward animation has been run,
now go backwards */
} Flash;
struct
{
vec3_t origin;
int entity_index[13];
float time_amount;
int stage;
int color;
float lifetime;
} RD; /* Rider Death */
struct
{
int entity_index[16];
vec3_t origin;
vec3_t velocity[16];
float time_amount, framelength;
float skinnum;
} Teleporter;
struct
{
vec3_t angle;
vec3_t origin;
vec3_t avelocity;
vec3_t velocity;
int entity_index;
float time_amount;
} Missile;
struct
{
int entity_index[16];
vec3_t velocity[16];
vec3_t avel[3];
vec3_t origin;
byte type;
vec3_t srcVel;
byte numChunks;
float time_amount;
float aveScale;
} Chunk;
} effect;
};
void SV_SaveEffects(FILE *FH);
void SV_LoadEffects(FILE *FH);