shithub: qk2

ref: 8ec7f169c5bb4ff30cacaaccbc99585e95d0d008
dir: /game/m_flash.c/

View raw version
/*
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.

*/
#define GAME_INCLUDE
#include <u.h>
#include <libc.h>
#include <stdio.h>
#include "../dat.h"
#include "../fns.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
};