1 // m_flash.c
2 
3 #include "q_shared.h"
4 
5 // this file is included in both the game dll and quake2,
6 // the game needs it to source shot locations, the client
7 // needs it to position muzzle flashes
8 vec3_t monster_flash_offset [] =
9 {
10 // flash 0 is not used
11 	0.0, 0.0, 0.0,
12 
13 // MZ2_TANK_BLASTER_1				1
14 	20.7, -18.5, 28.7,
15 // MZ2_TANK_BLASTER_2				2
16 	16.6, -21.5, 30.1,
17 // MZ2_TANK_BLASTER_3				3
18 	11.8, -23.9, 32.1,
19 // MZ2_TANK_MACHINEGUN_1			4
20 	22.9, -0.7, 25.3,
21 // MZ2_TANK_MACHINEGUN_2			5
22 	22.2, 6.2, 22.3,
23 // MZ2_TANK_MACHINEGUN_3			6
24 	19.4, 13.1, 18.6,
25 // MZ2_TANK_MACHINEGUN_4			7
26 	19.4, 18.8, 18.6,
27 // MZ2_TANK_MACHINEGUN_5			8
28 	17.9, 25.0, 18.6,
29 // MZ2_TANK_MACHINEGUN_6			9
30 	14.1, 30.5, 20.6,
31 // MZ2_TANK_MACHINEGUN_7			10
32 	9.3, 35.3, 22.1,
33 // MZ2_TANK_MACHINEGUN_8			11
34 	4.7, 38.4, 22.1,
35 // MZ2_TANK_MACHINEGUN_9			12
36 	-1.1, 40.4, 24.1,
37 // MZ2_TANK_MACHINEGUN_10			13
38 	-6.5, 41.2, 24.1,
39 // MZ2_TANK_MACHINEGUN_11			14
40 	3.2, 40.1, 24.7,
41 // MZ2_TANK_MACHINEGUN_12			15
42 	11.7, 36.7, 26.0,
43 // MZ2_TANK_MACHINEGUN_13			16
44 	18.9, 31.3, 26.0,
45 // MZ2_TANK_MACHINEGUN_14			17
46 	24.4, 24.4, 26.4,
47 // MZ2_TANK_MACHINEGUN_15			18
48 	27.1, 17.1, 27.2,
49 // MZ2_TANK_MACHINEGUN_16			19
50 	28.5, 9.1, 28.0,
51 // MZ2_TANK_MACHINEGUN_17			20
52 	27.1, 2.2, 28.0,
53 // MZ2_TANK_MACHINEGUN_18			21
54 	24.9, -2.8, 28.0,
55 // MZ2_TANK_MACHINEGUN_19			22
56 	21.6, -7.0, 26.4,
57 // MZ2_TANK_ROCKET_1				23
58 	6.2, 29.1, 49.1,
59 // MZ2_TANK_ROCKET_2				24
60 	6.9, 23.8, 49.1,
61 // MZ2_TANK_ROCKET_3				25
62 	8.3, 17.8, 49.5,
63 
64 // MZ2_INFANTRY_MACHINEGUN_1		26
65 	26.6, 7.1, 13.1,
66 // MZ2_INFANTRY_MACHINEGUN_2		27
67 	18.2, 7.5, 15.4,
68 // MZ2_INFANTRY_MACHINEGUN_3		28
69 	17.2, 10.3, 17.9,
70 // MZ2_INFANTRY_MACHINEGUN_4		29
71 	17.0, 12.8, 20.1,
72 // MZ2_INFANTRY_MACHINEGUN_5		30
73 	15.1, 14.1, 21.8,
74 // MZ2_INFANTRY_MACHINEGUN_6		31
75 	11.8, 17.2, 23.1,
76 // MZ2_INFANTRY_MACHINEGUN_7		32
77 	11.4, 20.2, 21.0,
78 // MZ2_INFANTRY_MACHINEGUN_8		33
79 	9.0, 23.0, 18.9,
80 // MZ2_INFANTRY_MACHINEGUN_9		34
81 	13.9, 18.6, 17.7,
82 // MZ2_INFANTRY_MACHINEGUN_10		35
83 	15.4, 15.6, 15.8,
84 // MZ2_INFANTRY_MACHINEGUN_11		36
85 	10.2, 15.2, 25.1,
86 // MZ2_INFANTRY_MACHINEGUN_12		37
87 	-1.9, 15.1, 28.2,
88 // MZ2_INFANTRY_MACHINEGUN_13		38
89 	-12.4, 13.0, 20.2,
90 
91 // MZ2_SOLDIER_BLASTER_1			39
92 	10.6 * 1.2, 7.7 * 1.2, 7.8 * 1.2,
93 // MZ2_SOLDIER_BLASTER_2			40
94 	21.1 * 1.2, 3.6 * 1.2, 19.0 * 1.2,
95 // MZ2_SOLDIER_SHOTGUN_1			41
96 	10.6 * 1.2, 7.7 * 1.2, 7.8 * 1.2,
97 // MZ2_SOLDIER_SHOTGUN_2			42
98 	21.1 * 1.2, 3.6 * 1.2, 19.0 * 1.2,
99 // MZ2_SOLDIER_MACHINEGUN_1			43
100 	10.6 * 1.2, 7.7 * 1.2, 7.8 * 1.2,
101 // MZ2_SOLDIER_MACHINEGUN_2			44
102 	21.1 * 1.2, 3.6 * 1.2, 19.0 * 1.2,
103 
104 // MZ2_GUNNER_MACHINEGUN_1			45
105 	30.1 * 1.15, 3.9 * 1.15, 19.6 * 1.15,
106 // MZ2_GUNNER_MACHINEGUN_2			46
107 	29.1 * 1.15, 2.5 * 1.15, 20.7 * 1.15,
108 // MZ2_GUNNER_MACHINEGUN_3			47
109 	28.2 * 1.15, 2.5 * 1.15, 22.2 * 1.15,
110 // MZ2_GUNNER_MACHINEGUN_4			48
111 	28.2 * 1.15, 3.6 * 1.15, 22.0 * 1.15,
112 // MZ2_GUNNER_MACHINEGUN_5			49
113 	26.9 * 1.15, 2.0 * 1.15, 23.4 * 1.15,
114 // MZ2_GUNNER_MACHINEGUN_6			50
115 	26.5 * 1.15, 0.6 * 1.15, 20.8 * 1.15,
116 // MZ2_GUNNER_MACHINEGUN_7			51
117 	26.9 * 1.15, 0.5 * 1.15, 21.5 * 1.15,
118 // MZ2_GUNNER_MACHINEGUN_8			52
119 	29.0 * 1.15, 2.4 * 1.15, 19.5 * 1.15,
120 // MZ2_GUNNER_GRENADE_1				53
121 	4.6 * 1.15, -16.8 * 1.15, 7.3 * 1.15,
122 // MZ2_GUNNER_GRENADE_2				54
123 	4.6 * 1.15, -16.8 * 1.15, 7.3 * 1.15,
124 // MZ2_GUNNER_GRENADE_3				55
125 	4.6 * 1.15, -16.8 * 1.15, 7.3 * 1.15,
126 // MZ2_GUNNER_GRENADE_4				56
127 	4.6 * 1.15, -16.8 * 1.15, 7.3 * 1.15,
128 
129 // MZ2_CHICK_ROCKET_1				57
130 //	-24.8, -9.0, 39.0,
131 	24.8, -9.0, 39.0,			// PGM - this was incorrect in Q2
132 
133 // MZ2_FLYER_BLASTER_1				58
134 	12.1, 13.4, -14.5,
135 // MZ2_FLYER_BLASTER_2				59
136 	12.1, -7.4, -14.5,
137 
138 // MZ2_MEDIC_BLASTER_1				60
139 	12.1, 5.4, 16.5,
140 
141 // MZ2_GLADIATOR_RAILGUN_1			61
142 	30.0, 18.0, 28.0,
143 
144 // MZ2_HOVER_BLASTER_1				62
145 	32.5, -0.8, 10.0,
146 
147 // MZ2_ACTOR_MACHINEGUN_1			63
148 	18.4, 7.4, 9.6,
149 
150 // MZ2_SUPERTANK_MACHINEGUN_1		64
151 	30.0, 30.0, 88.5,
152 // MZ2_SUPERTANK_MACHINEGUN_2		65
153 	30.0, 30.0, 88.5,
154 // MZ2_SUPERTANK_MACHINEGUN_3		66
155 	30.0, 30.0, 88.5,
156 // MZ2_SUPERTANK_MACHINEGUN_4		67
157 	30.0, 30.0, 88.5,
158 // MZ2_SUPERTANK_MACHINEGUN_5		68
159 	30.0, 30.0, 88.5,
160 // MZ2_SUPERTANK_MACHINEGUN_6		69
161 	30.0, 30.0, 88.5,
162 // MZ2_SUPERTANK_ROCKET_1			70
163 	16.0, -22.5, 91.2,
164 // MZ2_SUPERTANK_ROCKET_2			71
165 	16.0, -33.4, 86.7,
166 // MZ2_SUPERTANK_ROCKET_3			72
167 	16.0, -42.8, 83.3,
168 
169 // --- Start Xian Stuff ---
170 // MZ2_BOSS2_MACHINEGUN_L1			73
171 	32,	-40,	70,
172 // MZ2_BOSS2_MACHINEGUN_L2			74
173 	32,	-40,	70,
174 // MZ2_BOSS2_MACHINEGUN_L3			75
175 	32,	-40,	70,
176 // MZ2_BOSS2_MACHINEGUN_L4			76
177 	32,	-40,	70,
178 // MZ2_BOSS2_MACHINEGUN_L5			77
179 	32,	-40,	70,
180 // --- End Xian Stuff
181 
182 // MZ2_BOSS2_ROCKET_1				78
183 	22.0, 16.0, 10.0,
184 // MZ2_BOSS2_ROCKET_2				79
185 	22.0, 8.0, 10.0,
186 // MZ2_BOSS2_ROCKET_3				80
187 	22.0, -8.0, 10.0,
188 // MZ2_BOSS2_ROCKET_4				81
189 	22.0, -16.0, 10.0,
190 
191 // MZ2_FLOAT_BLASTER_1				82
192 	32.5, -0.8, 10,
193 
194 // MZ2_SOLDIER_BLASTER_3			83
195 	20.8 * 1.2, 10.1 * 1.2, -2.7 * 1.2,
196 // MZ2_SOLDIER_SHOTGUN_3			84
197 	20.8 * 1.2, 10.1 * 1.2, -2.7 * 1.2,
198 // MZ2_SOLDIER_MACHINEGUN_3			85
199 	20.8 * 1.2, 10.1 * 1.2, -2.7 * 1.2,
200 // MZ2_SOLDIER_BLASTER_4			86
201 	7.6 * 1.2, 9.3 * 1.2, 0.8 * 1.2,
202 // MZ2_SOLDIER_SHOTGUN_4			87
203 	7.6 * 1.2, 9.3 * 1.2, 0.8 * 1.2,
204 // MZ2_SOLDIER_MACHINEGUN_4			88
205 	7.6 * 1.2, 9.3 * 1.2, 0.8 * 1.2,
206 // MZ2_SOLDIER_BLASTER_5			89
207 	30.5 * 1.2, 9.9 * 1.2, -18.7 * 1.2,
208 // MZ2_SOLDIER_SHOTGUN_5			90
209 	30.5 * 1.2, 9.9 * 1.2, -18.7 * 1.2,
210 // MZ2_SOLDIER_MACHINEGUN_5			91
211 	30.5 * 1.2, 9.9 * 1.2, -18.7 * 1.2,
212 // MZ2_SOLDIER_BLASTER_6			92
213 	27.6 * 1.2, 3.4 * 1.2, -10.4 * 1.2,
214 // MZ2_SOLDIER_SHOTGUN_6			93
215 	27.6 * 1.2, 3.4 * 1.2, -10.4 * 1.2,
216 // MZ2_SOLDIER_MACHINEGUN_6			94
217 	27.6 * 1.2, 3.4 * 1.2, -10.4 * 1.2,
218 // MZ2_SOLDIER_BLASTER_7			95
219 	28.9 * 1.2, 4.6 * 1.2, -8.1 * 1.2,
220 // MZ2_SOLDIER_SHOTGUN_7			96
221 	28.9 * 1.2, 4.6 * 1.2, -8.1 * 1.2,
222 // MZ2_SOLDIER_MACHINEGUN_7			97
223 	28.9 * 1.2, 4.6 * 1.2, -8.1 * 1.2,
224 // MZ2_SOLDIER_BLASTER_8			98
225 //	34.5 * 1.2, 9.6 * 1.2, 6.1 * 1.2,
226 	31.5 * 1.2, 9.6 * 1.2, 10.1 * 1.2,
227 // MZ2_SOLDIER_SHOTGUN_8			99
228 	34.5 * 1.2, 9.6 * 1.2, 6.1 * 1.2,
229 // MZ2_SOLDIER_MACHINEGUN_8			100
230 	34.5 * 1.2, 9.6 * 1.2, 6.1 * 1.2,
231 
232 // --- Xian shit below ---
233 // MZ2_MAKRON_BFG					101
234 	17,		-19.5,	62.9,
235 // MZ2_MAKRON_BLASTER_1				102
236 	-3.6,	-24.1,	59.5,
237 // MZ2_MAKRON_BLASTER_2				103
238 	-1.6,	-19.3,	59.5,
239 // MZ2_MAKRON_BLASTER_3				104
240 	-0.1,	-14.4,	59.5,
241 // MZ2_MAKRON_BLASTER_4				105
242 	2.0,	-7.6,	59.5,
243 // MZ2_MAKRON_BLASTER_5				106
244 	3.4,	1.3,	59.5,
245 // MZ2_MAKRON_BLASTER_6				107
246 	3.7,	11.1,	59.5,
247 // MZ2_MAKRON_BLASTER_7				108
248 	-0.3,	22.3,	59.5,
249 // MZ2_MAKRON_BLASTER_8				109
250 	-6,		33,		59.5,
251 // MZ2_MAKRON_BLASTER_9				110
252 	-9.3,	36.4,	59.5,
253 // MZ2_MAKRON_BLASTER_10			111
254 	-7,		35,		59.5,
255 // MZ2_MAKRON_BLASTER_11			112
256 	-2.1,	29,		59.5,
257 // MZ2_MAKRON_BLASTER_12			113
258 	3.9,	17.3,	59.5,
259 // MZ2_MAKRON_BLASTER_13			114
260 	6.1,	5.8,	59.5,
261 // MZ2_MAKRON_BLASTER_14			115
262 	5.9,	-4.4,	59.5,
263 // MZ2_MAKRON_BLASTER_15			116
264 	4.2,	-14.1,	59.5,
265 // MZ2_MAKRON_BLASTER_16			117
266 	2.4,	-18.8,	59.5,
267 // MZ2_MAKRON_BLASTER_17			118
268 	-1.8,	-25.5,	59.5,
269 // MZ2_MAKRON_RAILGUN_1				119
270 	-17.3,	7.8,	72.4,
271 
272 // MZ2_JORG_MACHINEGUN_L1			120
273 	78.5,	-47.1,	96,
274 // MZ2_JORG_MACHINEGUN_L2			121
275 	78.5,	-47.1,	96,
276 // MZ2_JORG_MACHINEGUN_L3			122
277 	78.5,	-47.1,	96,
278 // MZ2_JORG_MACHINEGUN_L4			123
279 	78.5,	-47.1,	96,
280 // MZ2_JORG_MACHINEGUN_L5			124
281 	78.5,	-47.1,	96,
282 // MZ2_JORG_MACHINEGUN_L6			125
283 	78.5,	-47.1,	96,
284 // MZ2_JORG_MACHINEGUN_R1			126
285 	78.5,	46.7,  96,
286 // MZ2_JORG_MACHINEGUN_R2			127
287 	78.5,	46.7,	96,
288 // MZ2_JORG_MACHINEGUN_R3			128
289 	78.5,	46.7,	96,
290 // MZ2_JORG_MACHINEGUN_R4			129
291 	78.5,	46.7,	96,
292 // MZ2_JORG_MACHINEGUN_R5			130
293 	78.5,	46.7,	96,
294 // MZ2_JORG_MACHINEGUN_R6			131
295 	78.5,	46.7,	96,
296 // MZ2_JORG_BFG_1					132
297 	6.3,	-9,		111.2,
298 
299 // MZ2_BOSS2_MACHINEGUN_R1			73
300 	32,	40,	70,
301 // MZ2_BOSS2_MACHINEGUN_R2			74
302 	32,	40,	70,
303 // MZ2_BOSS2_MACHINEGUN_R3			75
304 	32,	40,	70,
305 // MZ2_BOSS2_MACHINEGUN_R4			76
306 	32,	40,	70,
307 // MZ2_BOSS2_MACHINEGUN_R5			77
308 	32,	40,	70,
309 
310 // --- End Xian Shit ---
311 
312 // ROGUE
313 // note that the above really ends at 137
314 // carrier machineguns
315 // MZ2_CARRIER_MACHINEGUN_L1
316 	56,	-32, 32,
317 // MZ2_CARRIER_MACHINEGUN_R1
318 	56,	32, 32,
319 // MZ2_CARRIER_GRENADE
320 	42,	24, 50,
321 // MZ2_TURRET_MACHINEGUN			141
322 	16, 0, 0,
323 // MZ2_TURRET_ROCKET				142
324 	16, 0, 0,
325 // MZ2_TURRET_BLASTER				143
326 	16, 0, 0,
327 // MZ2_STALKER_BLASTER				144
328 	24, 0, 6,
329 // MZ2_DAEDALUS_BLASTER				145
330 	32.5, -0.8, 10.0,
331 // MZ2_MEDIC_BLASTER_2				146
332 	12.1, 5.4, 16.5,
333 // MZ2_CARRIER_RAILGUN				147
334 	32, 0, 6,
335 // MZ2_WIDOW_DISRUPTOR				148
336 	57.72, 14.50, 88.81,
337 // MZ2_WIDOW_BLASTER				149
338 	56,	32, 32,
339 // MZ2_WIDOW_RAIL					150
340 	62, -20, 84,
341 // MZ2_WIDOW_PLASMABEAM				151		// PMM - not used!
342 	32, 0, 6,
343 // MZ2_CARRIER_MACHINEGUN_L2		152
344 	61,	-32, 12,
345 // MZ2_CARRIER_MACHINEGUN_R2		153
346 	61,	32, 12,
347 // MZ2_WIDOW_RAIL_LEFT				154
348 	17, -62, 91,
349 // MZ2_WIDOW_RAIL_RIGHT				155
350 	68, 12, 86,
351 // MZ2_WIDOW_BLASTER_SWEEP1			156			pmm - the sweeps need to be in sequential order
352 	47.5, 56, 89,
353 // MZ2_WIDOW_BLASTER_SWEEP2			157
354 	54, 52, 91,
355 // MZ2_WIDOW_BLASTER_SWEEP3			158
356 	58, 40, 91,
357 // MZ2_WIDOW_BLASTER_SWEEP4			159
358 	68, 30, 88,
359 // MZ2_WIDOW_BLASTER_SWEEP5			160
360 	74, 20, 88,
361 // MZ2_WIDOW_BLASTER_SWEEP6			161
362 	73, 11, 87,
363 // MZ2_WIDOW_BLASTER_SWEEP7			162
364 	73, 3, 87,
365 // MZ2_WIDOW_BLASTER_SWEEP8			163
366 	70, -12, 87,
367 // MZ2_WIDOW_BLASTER_SWEEP9			164
368 	67, -20, 90,
369 // MZ2_WIDOW_BLASTER_100			165
370 	-20, 76, 90,
371 // MZ2_WIDOW_BLASTER_90				166
372 	-8, 74, 90,
373 // MZ2_WIDOW_BLASTER_80				167
374 	0, 72, 90,
375 // MZ2_WIDOW_BLASTER_70				168		d06
376 	10, 71, 89,
377 // MZ2_WIDOW_BLASTER_60				169		d07
378 	23, 70, 87,
379 // MZ2_WIDOW_BLASTER_50				170		d08
380 	32, 64, 85,
381 // MZ2_WIDOW_BLASTER_40				171
382 	40, 58, 84,
383 // MZ2_WIDOW_BLASTER_30				172		d10
384 	48, 50, 83,
385 // MZ2_WIDOW_BLASTER_20				173
386 	54, 42, 82,
387 // MZ2_WIDOW_BLASTER_10				174		d12
388 	56, 34, 82,
389 // MZ2_WIDOW_BLASTER_0				175
390 	58, 26, 82,
391 // MZ2_WIDOW_BLASTER_10L			176		d14
392 	60, 16, 82,
393 // MZ2_WIDOW_BLASTER_20L			177
394 	59, 6, 81,
395 // MZ2_WIDOW_BLASTER_30L			178		d16
396 	58, -2, 80,
397 // MZ2_WIDOW_BLASTER_40L			179
398 	57, -10, 79,
399 // MZ2_WIDOW_BLASTER_50L			180		d18
400 	54, -18, 78,
401 // MZ2_WIDOW_BLASTER_60L			181
402 	42, -32, 80,
403 // MZ2_WIDOW_BLASTER_70L			182		d20
404 	36, -40, 78,
405 // MZ2_WIDOW_RUN_1					183
406 	68.4, 10.88, 82.08,
407 // MZ2_WIDOW_RUN_2					184
408 	68.51, 8.64, 85.14,
409 // MZ2_WIDOW_RUN_3					185
410 	68.66, 6.38, 88.78,
411 // MZ2_WIDOW_RUN_4					186
412 	68.73, 5.1, 84.47,
413 // MZ2_WIDOW_RUN_5					187
414 	68.82, 4.79, 80.52,
415 // MZ2_WIDOW_RUN_6					188
416 	68.77, 6.11, 85.37,
417 // MZ2_WIDOW_RUN_7					189
418 	68.67, 7.99, 90.24,
419 // MZ2_WIDOW_RUN_8					190
420 	68.55, 9.54, 87.36,
421 // MZ2_CARRIER_ROCKET_1				191
422 	0, 0, -5,
423 // MZ2_CARRIER_ROCKET_2				192
424 	0, 0, -5,
425 // MZ2_CARRIER_ROCKET_3				193
426 	0, 0, -5,
427 // MZ2_CARRIER_ROCKET_4				194
428 	0, 0, -5,
429 // MZ2_WIDOW2_BEAMER_1				195
430 //	72.13, -17.63, 93.77,
431 	69.00, -17.63, 93.77,
432 // MZ2_WIDOW2_BEAMER_2				196
433 //	71.46, -17.08, 89.82,
434 	69.00, -17.08, 89.82,
435 // MZ2_WIDOW2_BEAMER_3				197
436 //	71.47, -18.40, 90.70,
437 	69.00, -18.40, 90.70,
438 // MZ2_WIDOW2_BEAMER_4				198
439 //	71.96, -18.34, 94.32,
440 	69.00, -18.34, 94.32,
441 // MZ2_WIDOW2_BEAMER_5				199
442 //	72.25, -18.30, 97.98,
443 	69.00, -18.30, 97.98,
444 // MZ2_WIDOW2_BEAM_SWEEP_1			200
445 	45.04, -59.02, 92.24,
446 // MZ2_WIDOW2_BEAM_SWEEP_2			201
447 	50.68, -54.70, 91.96,
448 // MZ2_WIDOW2_BEAM_SWEEP_3			202
449 	56.57, -47.72, 91.65,
450 // MZ2_WIDOW2_BEAM_SWEEP_4			203
451 	61.75, -38.75, 91.38,
452 // MZ2_WIDOW2_BEAM_SWEEP_5			204
453 	65.55, -28.76, 91.24,
454 // MZ2_WIDOW2_BEAM_SWEEP_6			205
455 	67.79, -18.90, 91.22,
456 // MZ2_WIDOW2_BEAM_SWEEP_7			206
457 	68.60, -9.52, 91.23,
458 // MZ2_WIDOW2_BEAM_SWEEP_8			207
459 	68.08, 0.18, 91.32,
460 // MZ2_WIDOW2_BEAM_SWEEP_9			208
461 	66.14, 9.79, 91.44,
462 // MZ2_WIDOW2_BEAM_SWEEP_10			209
463 	62.77, 18.91, 91.65,
464 // MZ2_WIDOW2_BEAM_SWEEP_11			210
465 	58.29, 27.11, 92.00,
466 
467 // end of table
468 	0.0, 0.0, 0.0
469 };
470