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