/* Copyright (C) 1997-2001 Id Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ // m_flash.c #include "q_shared.h" // this file is included in both the game dll and quake2, // the game needs it to source shot locations, the client // needs it to position muzzle flashes vec3_t monster_flash_offset [] = { // flash 0 is not used {0.0, 0.0, 0.0}, // MZ2_TANK_BLASTER_1 1 {20.7, -18.5, 28.7}, // MZ2_TANK_BLASTER_2 2 {16.6, -21.5, 30.1}, // MZ2_TANK_BLASTER_3 3 {11.8, -23.9, 32.1}, // MZ2_TANK_MACHINEGUN_1 4 {22.9, -0.7, 25.3}, // MZ2_TANK_MACHINEGUN_2 5 {22.2, 6.2, 22.3}, // MZ2_TANK_MACHINEGUN_3 6 {19.4, 13.1, 18.6}, // MZ2_TANK_MACHINEGUN_4 7 {19.4, 18.8, 18.6}, // MZ2_TANK_MACHINEGUN_5 8 {17.9, 25.0, 18.6}, // MZ2_TANK_MACHINEGUN_6 9 {14.1, 30.5, 20.6}, // MZ2_TANK_MACHINEGUN_7 10 {9.3, 35.3, 22.1}, // MZ2_TANK_MACHINEGUN_8 11 {4.7, 38.4, 22.1}, // MZ2_TANK_MACHINEGUN_9 12 {-1.1, 40.4, 24.1}, // MZ2_TANK_MACHINEGUN_10 13 {-6.5, 41.2, 24.1}, // MZ2_TANK_MACHINEGUN_11 14 {3.2, 40.1, 24.7}, // MZ2_TANK_MACHINEGUN_12 15 {11.7, 36.7, 26.0}, // MZ2_TANK_MACHINEGUN_13 16 {18.9, 31.3, 26.0}, // MZ2_TANK_MACHINEGUN_14 17 {24.4, 24.4, 26.4}, // MZ2_TANK_MACHINEGUN_15 18 {27.1, 17.1, 27.2}, // MZ2_TANK_MACHINEGUN_16 19 {28.5, 9.1, 28.0}, // MZ2_TANK_MACHINEGUN_17 20 {27.1, 2.2, 28.0}, // MZ2_TANK_MACHINEGUN_18 21 {24.9, -2.8, 28.0}, // MZ2_TANK_MACHINEGUN_19 22 {21.6, -7.0, 26.4}, // MZ2_TANK_ROCKET_1 23 {6.2, 29.1, 49.1}, // MZ2_TANK_ROCKET_2 24 {6.9, 23.8, 49.1}, // MZ2_TANK_ROCKET_3 25 {8.3, 17.8, 49.5}, // MZ2_INFANTRY_MACHINEGUN_1 26 {26.6, 7.1, 13.1}, // MZ2_INFANTRY_MACHINEGUN_2 27 {18.2, 7.5, 15.4}, // MZ2_INFANTRY_MACHINEGUN_3 28 {17.2, 10.3, 17.9}, // MZ2_INFANTRY_MACHINEGUN_4 29 {17.0, 12.8, 20.1}, // MZ2_INFANTRY_MACHINEGUN_5 30 {15.1, 14.1, 21.8}, // MZ2_INFANTRY_MACHINEGUN_6 31 {11.8, 17.2, 23.1}, // MZ2_INFANTRY_MACHINEGUN_7 32 {11.4, 20.2, 21.0}, // MZ2_INFANTRY_MACHINEGUN_8 33 {9.0, 23.0, 18.9}, // MZ2_INFANTRY_MACHINEGUN_9 34 {13.9, 18.6, 17.7}, // MZ2_INFANTRY_MACHINEGUN_10 35 {15.4, 15.6, 15.8}, // MZ2_INFANTRY_MACHINEGUN_11 36 {10.2, 15.2, 25.1}, // MZ2_INFANTRY_MACHINEGUN_12 37 {-1.9, 15.1, 28.2}, // MZ2_INFANTRY_MACHINEGUN_13 38 {-12.4, 13.0, 20.2}, // MZ2_SOLDIER_BLASTER_1 39 {10.6 * 1.2, 7.7 * 1.2, 7.8 * 1.2}, // MZ2_SOLDIER_BLASTER_2 40 {21.1 * 1.2, 3.6 * 1.2, 19.0 * 1.2}, // MZ2_SOLDIER_SHOTGUN_1 41 {10.6 * 1.2, 7.7 * 1.2, 7.8 * 1.2}, // MZ2_SOLDIER_SHOTGUN_2 42 {21.1 * 1.2, 3.6 * 1.2, 19.0 * 1.2}, // MZ2_SOLDIER_MACHINEGUN_1 43 {10.6 * 1.2, 7.7 * 1.2, 7.8 * 1.2}, // MZ2_SOLDIER_MACHINEGUN_2 44 {21.1 * 1.2, 3.6 * 1.2, 19.0 * 1.2}, // MZ2_GUNNER_MACHINEGUN_1 45 {30.1 * 1.15, 3.9 * 1.15, 19.6 * 1.15}, // MZ2_GUNNER_MACHINEGUN_2 46 {29.1 * 1.15, 2.5 * 1.15, 20.7 * 1.15}, // MZ2_GUNNER_MACHINEGUN_3 47 {28.2 * 1.15, 2.5 * 1.15, 22.2 * 1.15}, // MZ2_GUNNER_MACHINEGUN_4 48 {28.2 * 1.15, 3.6 * 1.15, 22.0 * 1.15}, // MZ2_GUNNER_MACHINEGUN_5 49 {26.9 * 1.15, 2.0 * 1.15, 23.4 * 1.15}, // MZ2_GUNNER_MACHINEGUN_6 50 {26.5 * 1.15, 0.6 * 1.15, 20.8 * 1.15}, // MZ2_GUNNER_MACHINEGUN_7 51 {26.9 * 1.15, 0.5 * 1.15, 21.5 * 1.15}, // MZ2_GUNNER_MACHINEGUN_8 52 {29.0 * 1.15, 2.4 * 1.15, 19.5 * 1.15}, // MZ2_GUNNER_GRENADE_1 53 {4.6 * 1.15, -16.8 * 1.15, 7.3 * 1.15}, // MZ2_GUNNER_GRENADE_2 54 {4.6 * 1.15, -16.8 * 1.15, 7.3 * 1.15}, // MZ2_GUNNER_GRENADE_3 55 {4.6 * 1.15, -16.8 * 1.15, 7.3 * 1.15}, // MZ2_GUNNER_GRENADE_4 56 {4.6 * 1.15, -16.8 * 1.15, 7.3 * 1.15}, // MZ2_CHICK_ROCKET_1 57 // {-24.8, -9.0, 39.0}, {24.8, -9.0, 39.0}, // PGM - this was incorrect in Q2 // MZ2_FLYER_BLASTER_1 58 {12.1, 13.4, -14.5}, // MZ2_FLYER_BLASTER_2 59 {12.1, -7.4, -14.5}, // MZ2_MEDIC_BLASTER_1 60 {12.1, 5.4, 16.5}, // MZ2_GLADIATOR_RAILGUN_1 61 {30.0, 18.0, 28.0}, // MZ2_HOVER_BLASTER_1 62 {32.5, -0.8, 10.0}, // MZ2_ACTOR_MACHINEGUN_1 63 {18.4, 7.4, 9.6}, // MZ2_SUPERTANK_MACHINEGUN_1 64 {30.0, 30.0, 88.5}, // MZ2_SUPERTANK_MACHINEGUN_2 65 {30.0, 30.0, 88.5}, // MZ2_SUPERTANK_MACHINEGUN_3 66 {30.0, 30.0, 88.5}, // MZ2_SUPERTANK_MACHINEGUN_4 67 {30.0, 30.0, 88.5}, // MZ2_SUPERTANK_MACHINEGUN_5 68 {30.0, 30.0, 88.5}, // MZ2_SUPERTANK_MACHINEGUN_6 69 {30.0, 30.0, 88.5}, // MZ2_SUPERTANK_ROCKET_1 70 {16.0, -22.5, 91.2}, // MZ2_SUPERTANK_ROCKET_2 71 {16.0, -33.4, 86.7}, // MZ2_SUPERTANK_ROCKET_3 72 {16.0, -42.8, 83.3}, // --- Start Xian Stuff --- // MZ2_BOSS2_MACHINEGUN_L1 73 {32, -40, 70}, // MZ2_BOSS2_MACHINEGUN_L2 74 {32, -40, 70}, // MZ2_BOSS2_MACHINEGUN_L3 75 {32, -40, 70}, // MZ2_BOSS2_MACHINEGUN_L4 76 {32, -40, 70}, // MZ2_BOSS2_MACHINEGUN_L5 77 {32, -40, 70}, // --- End Xian Stuff // MZ2_BOSS2_ROCKET_1 78 {22.0, 16.0, 10.0}, // MZ2_BOSS2_ROCKET_2 79 {22.0, 8.0, 10.0}, // MZ2_BOSS2_ROCKET_3 80 {22.0, -8.0, 10.0}, // MZ2_BOSS2_ROCKET_4 81 {22.0, -16.0, 10.0}, // MZ2_FLOAT_BLASTER_1 82 {32.5, -0.8, 10}, // MZ2_SOLDIER_BLASTER_3 83 {20.8 * 1.2, 10.1 * 1.2, -2.7 * 1.2}, // MZ2_SOLDIER_SHOTGUN_3 84 {20.8 * 1.2, 10.1 * 1.2, -2.7 * 1.2}, // MZ2_SOLDIER_MACHINEGUN_3 85 {20.8 * 1.2, 10.1 * 1.2, -2.7 * 1.2}, // MZ2_SOLDIER_BLASTER_4 86 {7.6 * 1.2, 9.3 * 1.2, 0.8 * 1.2}, // MZ2_SOLDIER_SHOTGUN_4 87 {7.6 * 1.2, 9.3 * 1.2, 0.8 * 1.2}, // MZ2_SOLDIER_MACHINEGUN_4 88 {7.6 * 1.2, 9.3 * 1.2, 0.8 * 1.2}, // MZ2_SOLDIER_BLASTER_5 89 {30.5 * 1.2, 9.9 * 1.2, -18.7 * 1.2}, // MZ2_SOLDIER_SHOTGUN_5 90 {30.5 * 1.2, 9.9 * 1.2, -18.7 * 1.2}, // MZ2_SOLDIER_MACHINEGUN_5 91 {30.5 * 1.2, 9.9 * 1.2, -18.7 * 1.2}, // MZ2_SOLDIER_BLASTER_6 92 {27.6 * 1.2, 3.4 * 1.2, -10.4 * 1.2}, // MZ2_SOLDIER_SHOTGUN_6 93 {27.6 * 1.2, 3.4 * 1.2, -10.4 * 1.2}, // MZ2_SOLDIER_MACHINEGUN_6 94 {27.6 * 1.2, 3.4 * 1.2, -10.4 * 1.2}, // MZ2_SOLDIER_BLASTER_7 95 {28.9 * 1.2, 4.6 * 1.2, -8.1 * 1.2}, // MZ2_SOLDIER_SHOTGUN_7 96 {28.9 * 1.2, 4.6 * 1.2, -8.1 * 1.2}, // MZ2_SOLDIER_MACHINEGUN_7 97 {28.9 * 1.2, 4.6 * 1.2, -8.1 * 1.2}, // MZ2_SOLDIER_BLASTER_8 98 // {34.5 * 1.2, 9.6 * 1.2, 6.1 * 1.2}, {31.5 * 1.2, 9.6 * 1.2, 10.1 * 1.2}, // MZ2_SOLDIER_SHOTGUN_8 99 {34.5 * 1.2, 9.6 * 1.2, 6.1 * 1.2}, // MZ2_SOLDIER_MACHINEGUN_8 100 {34.5 * 1.2, 9.6 * 1.2, 6.1 * 1.2}, // --- Xian shit below --- // MZ2_MAKRON_BFG 101 {17, -19.5, 62.9}, // MZ2_MAKRON_BLASTER_1 102 {-3.6, -24.1, 59.5}, // MZ2_MAKRON_BLASTER_2 103 {-1.6, -19.3, 59.5}, // MZ2_MAKRON_BLASTER_3 104 {-0.1, -14.4, 59.5}, // MZ2_MAKRON_BLASTER_4 105 {2.0, -7.6, 59.5}, // MZ2_MAKRON_BLASTER_5 106 {3.4, 1.3, 59.5}, // MZ2_MAKRON_BLASTER_6 107 {3.7, 11.1, 59.5}, // MZ2_MAKRON_BLASTER_7 108 {-0.3, 22.3, 59.5}, // MZ2_MAKRON_BLASTER_8 109 {-6, 33, 59.5}, // MZ2_MAKRON_BLASTER_9 110 {-9.3, 36.4, 59.5}, // MZ2_MAKRON_BLASTER_10 111 {-7, 35, 59.5}, // MZ2_MAKRON_BLASTER_11 112 {-2.1, 29, 59.5}, // MZ2_MAKRON_BLASTER_12 113 {3.9, 17.3, 59.5}, // MZ2_MAKRON_BLASTER_13 114 {6.1, 5.8, 59.5}, // MZ2_MAKRON_BLASTER_14 115 {5.9, -4.4, 59.5}, // MZ2_MAKRON_BLASTER_15 116 {4.2, -14.1, 59.5}, // MZ2_MAKRON_BLASTER_16 117 {2.4, -18.8, 59.5}, // MZ2_MAKRON_BLASTER_17 118 {-1.8, -25.5, 59.5}, // MZ2_MAKRON_RAILGUN_1 119 {-17.3, 7.8, 72.4}, // MZ2_JORG_MACHINEGUN_L1 120 {78.5, -47.1, 96}, // MZ2_JORG_MACHINEGUN_L2 121 {78.5, -47.1, 96}, // MZ2_JORG_MACHINEGUN_L3 122 {78.5, -47.1, 96}, // MZ2_JORG_MACHINEGUN_L4 123 {78.5, -47.1, 96}, // MZ2_JORG_MACHINEGUN_L5 124 {78.5, -47.1, 96}, // MZ2_JORG_MACHINEGUN_L6 125 {78.5, -47.1, 96}, // MZ2_JORG_MACHINEGUN_R1 126 {78.5, 46.7, 96}, // MZ2_JORG_MACHINEGUN_R2 127 {78.5, 46.7, 96}, // MZ2_JORG_MACHINEGUN_R3 128 {78.5, 46.7, 96}, // MZ2_JORG_MACHINEGUN_R4 129 {78.5, 46.7, 96}, // MZ2_JORG_MACHINEGUN_R5 130 {78.5, 46.7, 96}, // MZ2_JORG_MACHINEGUN_R6 131 {78.5, 46.7, 96}, // MZ2_JORG_BFG_1 132 {6.3, -9, 111.2}, // MZ2_BOSS2_MACHINEGUN_R1 73 {32, 40, 70}, // MZ2_BOSS2_MACHINEGUN_R2 74 {32, 40, 70}, // MZ2_BOSS2_MACHINEGUN_R3 75 {32, 40, 70}, // MZ2_BOSS2_MACHINEGUN_R4 76 {32, 40, 70}, // MZ2_BOSS2_MACHINEGUN_R5 77 {32, 40, 70}, // --- End Xian Shit --- // ROGUE // note that the above really ends at 137 // carrier machineguns // MZ2_CARRIER_MACHINEGUN_L1 {56, -32, 32}, // MZ2_CARRIER_MACHINEGUN_R1 {56, 32, 32}, // MZ2_CARRIER_GRENADE {42, 24, 50}, // MZ2_TURRET_MACHINEGUN 141 {16, 0, 0}, // MZ2_TURRET_ROCKET 142 {16, 0, 0}, // MZ2_TURRET_BLASTER 143 {16, 0, 0}, // MZ2_STALKER_BLASTER 144 {24, 0, 6}, // MZ2_DAEDALUS_BLASTER 145 {32.5, -0.8, 10.0}, // MZ2_MEDIC_BLASTER_2 146 {12.1, 5.4, 16.5}, // MZ2_CARRIER_RAILGUN 147 {32, 0, 6}, // MZ2_WIDOW_DISRUPTOR 148 {57.72, 14.50, 88.81}, // MZ2_WIDOW_BLASTER 149 {56, 32, 32}, // MZ2_WIDOW_RAIL 150 {62, -20, 84}, // MZ2_WIDOW_PLASMABEAM 151 // PMM - not used! {32, 0, 6}, // MZ2_CARRIER_MACHINEGUN_L2 152 {61, -32, 12}, // MZ2_CARRIER_MACHINEGUN_R2 153 {61, 32, 12}, // MZ2_WIDOW_RAIL_LEFT 154 {17, -62, 91}, // MZ2_WIDOW_RAIL_RIGHT 155 {68, 12, 86}, // MZ2_WIDOW_BLASTER_SWEEP1 156 pmm - the sweeps need to be in sequential order {47.5, 56, 89}, // MZ2_WIDOW_BLASTER_SWEEP2 157 {54, 52, 91}, // MZ2_WIDOW_BLASTER_SWEEP3 158 {58, 40, 91}, // MZ2_WIDOW_BLASTER_SWEEP4 159 {68, 30, 88}, // MZ2_WIDOW_BLASTER_SWEEP5 160 {74, 20, 88}, // MZ2_WIDOW_BLASTER_SWEEP6 161 {73, 11, 87}, // MZ2_WIDOW_BLASTER_SWEEP7 162 {73, 3, 87}, // MZ2_WIDOW_BLASTER_SWEEP8 163 {70, -12, 87}, // MZ2_WIDOW_BLASTER_SWEEP9 164 {67, -20, 90}, // MZ2_WIDOW_BLASTER_100 165 {-20, 76, 90}, // MZ2_WIDOW_BLASTER_90 166 {-8, 74, 90}, // MZ2_WIDOW_BLASTER_80 167 {0, 72, 90}, // MZ2_WIDOW_BLASTER_70 168 d06 {10, 71, 89}, // MZ2_WIDOW_BLASTER_60 169 d07 {23, 70, 87}, // MZ2_WIDOW_BLASTER_50 170 d08 {32, 64, 85}, // MZ2_WIDOW_BLASTER_40 171 {40, 58, 84}, // MZ2_WIDOW_BLASTER_30 172 d10 {48, 50, 83}, // MZ2_WIDOW_BLASTER_20 173 {54, 42, 82}, // MZ2_WIDOW_BLASTER_10 174 d12 {56, 34, 82}, // MZ2_WIDOW_BLASTER_0 175 {58, 26, 82}, // MZ2_WIDOW_BLASTER_10L 176 d14 {60, 16, 82}, // MZ2_WIDOW_BLASTER_20L 177 {59, 6, 81}, // MZ2_WIDOW_BLASTER_30L 178 d16 {58, -2, 80}, // MZ2_WIDOW_BLASTER_40L 179 {57, -10, 79}, // MZ2_WIDOW_BLASTER_50L 180 d18 {54, -18, 78}, // MZ2_WIDOW_BLASTER_60L 181 {42, -32, 80}, // MZ2_WIDOW_BLASTER_70L 182 d20 {36, -40, 78}, // MZ2_WIDOW_RUN_1 183 {68.4, 10.88, 82.08}, // MZ2_WIDOW_RUN_2 184 {68.51, 8.64, 85.14}, // MZ2_WIDOW_RUN_3 185 {68.66, 6.38, 88.78}, // MZ2_WIDOW_RUN_4 186 {68.73, 5.1, 84.47}, // MZ2_WIDOW_RUN_5 187 {68.82, 4.79, 80.52}, // MZ2_WIDOW_RUN_6 188 {68.77, 6.11, 85.37}, // MZ2_WIDOW_RUN_7 189 {68.67, 7.99, 90.24}, // MZ2_WIDOW_RUN_8 190 {68.55, 9.54, 87.36}, // MZ2_CARRIER_ROCKET_1 191 {0, 0, -5}, // MZ2_CARRIER_ROCKET_2 192 {0, 0, -5}, // MZ2_CARRIER_ROCKET_3 193 {0, 0, -5}, // MZ2_CARRIER_ROCKET_4 194 {0, 0, -5}, // MZ2_WIDOW2_BEAMER_1 195 // {72.13, -17.63, 93.77}, {69.00, -17.63, 93.77}, // MZ2_WIDOW2_BEAMER_2 196 // {71.46, -17.08, 89.82}, {69.00, -17.08, 89.82}, // MZ2_WIDOW2_BEAMER_3 197 // {71.47, -18.40, 90.70}, {69.00, -18.40, 90.70}, // MZ2_WIDOW2_BEAMER_4 198 // {71.96, -18.34, 94.32}, {69.00, -18.34, 94.32}, // MZ2_WIDOW2_BEAMER_5 199 // {72.25, -18.30, 97.98}, {69.00, -18.30, 97.98}, // MZ2_WIDOW2_BEAM_SWEEP_1 200 {45.04, -59.02, 92.24}, // MZ2_WIDOW2_BEAM_SWEEP_2 201 {50.68, -54.70, 91.96}, // MZ2_WIDOW2_BEAM_SWEEP_3 202 {56.57, -47.72, 91.65}, // MZ2_WIDOW2_BEAM_SWEEP_4 203 {61.75, -38.75, 91.38}, // MZ2_WIDOW2_BEAM_SWEEP_5 204 {65.55, -28.76, 91.24}, // MZ2_WIDOW2_BEAM_SWEEP_6 205 {67.79, -18.90, 91.22}, // MZ2_WIDOW2_BEAM_SWEEP_7 206 {68.60, -9.52, 91.23}, // MZ2_WIDOW2_BEAM_SWEEP_8 207 {68.08, 0.18, 91.32}, // MZ2_WIDOW2_BEAM_SWEEP_9 208 {66.14, 9.79, 91.44}, // MZ2_WIDOW2_BEAM_SWEEP_10 209 {62.77, 18.91, 91.65}, // MZ2_WIDOW2_BEAM_SWEEP_11 210 {58.29, 27.11, 92.00}, // end of table {0.0, 0.0, 0.0} };