code
proc CG_MachineGunEjectBrass 136 8
file "debug-x86-Linux-2.3/TA/cgame/cgame/cg_weapons.c"
line 11
;1:// Copyright (C) 1999-2000 Id Software, Inc.
;2://
;3:// cg_weapons.c -- events and effects dealing with weapons
;4:#include "cg_local.h"
;5:
;6:/*
;7:==========================
;8:CG_MachineGunEjectBrass
;9:==========================
;10:*/
;11:static void CG_MachineGunEjectBrass( centity_t *cent ) {
line 16
;12:	localEntity_t	*le;
;13:	refEntity_t		*re;
;14:	vec3_t			velocity, xvelocity;
;15:	vec3_t			offset, xoffset;
;16:	float			waterScale = 1.0f;
ADDRLP4 92
CNSTF4 1065353216
ASGNF4
line 19
;17:	vec3_t			v[3];
;18:
;19:	if ( cg_brassTime.integer <= 0 ) {
ADDRGP4 cg_brassTime+12
INDIRI4
CNSTI4 0
GTI4 $71
line 20
;20:		return;
ADDRGP4 $70
JUMPV
LABELV $71
line 23
;21:	}
;22:
;23:	le = CG_AllocLocalEntity();
ADDRLP4 96
ADDRGP4 CG_AllocLocalEntity
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 96
INDIRP4
ASGNP4
line 24
;24:	re = &le->refEntity;
ADDRLP4 64
ADDRLP4 0
INDIRP4
CNSTI4 152
ADDP4
ASGNP4
line 26
;25:
;26:	velocity[0] = 0;
ADDRLP4 40
CNSTF4 0
ASGNF4
line 27
;27:	velocity[1] = -50 + 40 * crandom();
ADDRLP4 100
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 40+4
CNSTF4 1109393408
CNSTF4 1073741824
ADDRLP4 100
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
CNSTF4 1056964608
SUBF4
MULF4
MULF4
CNSTF4 3259498496
ADDF4
ASGNF4
line 28
;28:	velocity[2] = 100 + 50 * crandom();
ADDRLP4 104
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 40+8
CNSTF4 1112014848
CNSTF4 1073741824
ADDRLP4 104
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
CNSTF4 1056964608
SUBF4
MULF4
MULF4
CNSTF4 1120403456
ADDF4
ASGNF4
line 30
;29:
;30:	le->leType = LE_FRAGMENT;
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
CNSTI4 3
ASGNI4
line 31
;31:	le->startTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 32
;32:	le->endTime = le->startTime + cg_brassTime.integer + ( cg_brassTime.integer / 4 ) * random();
ADDRLP4 108
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 20
ADDP4
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
ADDRGP4 cg_brassTime+12
INDIRI4
ADDI4
CVIF4 4
ADDRGP4 cg_brassTime+12
INDIRI4
CNSTI4 4
DIVI4
CVIF4 4
ADDRLP4 108
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
MULF4
ADDF4
CVFI4 4
ASGNI4
line 34
;33:
;34:	le->pos.trType = TR_GRAVITY;
ADDRLP4 0
INDIRP4
CNSTI4 32
ADDP4
CNSTI4 5
ASGNI4
line 35
;35:	le->pos.trTime = cg.time - (rand()&15);
ADDRLP4 116
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 36
ADDP4
ADDRGP4 cg+107604
INDIRI4
ADDRLP4 116
INDIRI4
CNSTI4 15
BANDI4
SUBI4
ASGNI4
line 37
;36:
;37:	AnglesToAxis( cent->lerpAngles, v );
ADDRFP4 0
INDIRP4
CNSTI4 716
ADDP4
ARGP4
ADDRLP4 4
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 39
;38:
;39:	offset[0] = 8;
ADDRLP4 52
CNSTF4 1090519040
ASGNF4
line 40
;40:	offset[1] = -4;
ADDRLP4 52+4
CNSTF4 3229614080
ASGNF4
line 41
;41:	offset[2] = 24;
ADDRLP4 52+8
CNSTF4 1103101952
ASGNF4
line 43
;42:
;43:	xoffset[0] = offset[0] * v[0][0] + offset[1] * v[1][0] + offset[2] * v[2][0];
ADDRLP4 80
ADDRLP4 52
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ADDRLP4 52+4
INDIRF4
ADDRLP4 4+12
INDIRF4
MULF4
ADDF4
ADDRLP4 52+8
INDIRF4
ADDRLP4 4+24
INDIRF4
MULF4
ADDF4
ASGNF4
line 44
;44:	xoffset[1] = offset[0] * v[0][1] + offset[1] * v[1][1] + offset[2] * v[2][1];
ADDRLP4 80+4
ADDRLP4 52
INDIRF4
ADDRLP4 4+4
INDIRF4
MULF4
ADDRLP4 52+4
INDIRF4
ADDRLP4 4+12+4
INDIRF4
MULF4
ADDF4
ADDRLP4 52+8
INDIRF4
ADDRLP4 4+24+4
INDIRF4
MULF4
ADDF4
ASGNF4
line 45
;45:	xoffset[2] = offset[0] * v[0][2] + offset[1] * v[1][2] + offset[2] * v[2][2];
ADDRLP4 80+8
ADDRLP4 52
INDIRF4
ADDRLP4 4+8
INDIRF4
MULF4
ADDRLP4 52+4
INDIRF4
ADDRLP4 4+12+8
INDIRF4
MULF4
ADDF4
ADDRLP4 52+8
INDIRF4
ADDRLP4 4+24+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 46
;46:	VectorAdd( cent->lerpOrigin, xoffset, re->origin );
ADDRLP4 64
INDIRP4
CNSTI4 68
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 704
ADDP4
INDIRF4
ADDRLP4 80
INDIRF4
ADDF4
ASGNF4
ADDRLP4 64
INDIRP4
CNSTI4 72
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 708
ADDP4
INDIRF4
ADDRLP4 80+4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 64
INDIRP4
CNSTI4 76
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 712
ADDP4
INDIRF4
ADDRLP4 80+8
INDIRF4
ADDF4
ASGNF4
line 48
;47:
;48:	VectorCopy( re->origin, le->pos.trBase );
ADDRLP4 0
INDIRP4
CNSTI4 44
ADDP4
ADDRLP4 64
INDIRP4
CNSTI4 68
ADDP4
INDIRB
ASGNB 12
line 50
;49:
;50:	if ( CG_PointContents( re->origin, -1 ) & CONTENTS_WATER ) {
ADDRLP4 64
INDIRP4
CNSTI4 68
ADDP4
ARGP4
CNSTI4 -1
ARGI4
ADDRLP4 120
ADDRGP4 CG_PointContents
CALLI4
ASGNI4
ADDRLP4 120
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $104
line 51
;51:		waterScale = 0.10f;
ADDRLP4 92
CNSTF4 1036831949
ASGNF4
line 52
;52:	}
LABELV $104
line 54
;53:
;54:	xvelocity[0] = velocity[0] * v[0][0] + velocity[1] * v[1][0] + velocity[2] * v[2][0];
ADDRLP4 68
ADDRLP4 40
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ADDRLP4 40+4
INDIRF4
ADDRLP4 4+12
INDIRF4
MULF4
ADDF4
ADDRLP4 40+8
INDIRF4
ADDRLP4 4+24
INDIRF4
MULF4
ADDF4
ASGNF4
line 55
;55:	xvelocity[1] = velocity[0] * v[0][1] + velocity[1] * v[1][1] + velocity[2] * v[2][1];
ADDRLP4 68+4
ADDRLP4 40
INDIRF4
ADDRLP4 4+4
INDIRF4
MULF4
ADDRLP4 40+4
INDIRF4
ADDRLP4 4+12+4
INDIRF4
MULF4
ADDF4
ADDRLP4 40+8
INDIRF4
ADDRLP4 4+24+4
INDIRF4
MULF4
ADDF4
ASGNF4
line 56
;56:	xvelocity[2] = velocity[0] * v[0][2] + velocity[1] * v[1][2] + velocity[2] * v[2][2];
ADDRLP4 68+8
ADDRLP4 40
INDIRF4
ADDRLP4 4+8
INDIRF4
MULF4
ADDRLP4 40+4
INDIRF4
ADDRLP4 4+12+8
INDIRF4
MULF4
ADDF4
ADDRLP4 40+8
INDIRF4
ADDRLP4 4+24+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 57
;57:	VectorScale( xvelocity, waterScale, le->pos.trDelta );
ADDRLP4 0
INDIRP4
CNSTI4 56
ADDP4
ADDRLP4 68
INDIRF4
ADDRLP4 92
INDIRF4
MULF4
ASGNF4
ADDRLP4 0
INDIRP4
CNSTI4 60
ADDP4
ADDRLP4 68+4
INDIRF4
ADDRLP4 92
INDIRF4
MULF4
ASGNF4
ADDRLP4 0
INDIRP4
CNSTI4 64
ADDP4
ADDRLP4 68+8
INDIRF4
ADDRLP4 92
INDIRF4
MULF4
ASGNF4
line 59
;58:
;59:	AxisCopy( axisDefault, re->axis );
ADDRGP4 axisDefault
ARGP4
ADDRLP4 64
INDIRP4
CNSTI4 28
ADDP4
ARGP4
ADDRGP4 AxisCopy
CALLV
pop
line 60
;60:	re->hModel = cgs.media.machinegunBrassModel;
ADDRLP4 64
INDIRP4
CNSTI4 8
ADDP4
ADDRGP4 cgs+152340+212
INDIRI4
ASGNI4
line 62
;61:
;62:	le->bounceFactor = 0.4 * waterScale;
ADDRLP4 0
INDIRP4
CNSTI4 104
ADDP4
CNSTF4 1053609165
ADDRLP4 92
INDIRF4
MULF4
ASGNF4
line 64
;63:
;64:	le->angles.trType = TR_LINEAR;
ADDRLP4 0
INDIRP4
CNSTI4 68
ADDP4
CNSTI4 2
ASGNI4
line 65
;65:	le->angles.trTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 72
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 66
;66:	le->angles.trBase[0] = rand()&31;
ADDRLP4 124
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 80
ADDP4
ADDRLP4 124
INDIRI4
CNSTI4 31
BANDI4
CVIF4 4
ASGNF4
line 67
;67:	le->angles.trBase[1] = rand()&31;
ADDRLP4 128
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 84
ADDP4
ADDRLP4 128
INDIRI4
CNSTI4 31
BANDI4
CVIF4 4
ASGNF4
line 68
;68:	le->angles.trBase[2] = rand()&31;
ADDRLP4 132
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 88
ADDP4
ADDRLP4 132
INDIRI4
CNSTI4 31
BANDI4
CVIF4 4
ASGNF4
line 69
;69:	le->angles.trDelta[0] = 2;
ADDRLP4 0
INDIRP4
CNSTI4 92
ADDP4
CNSTF4 1073741824
ASGNF4
line 70
;70:	le->angles.trDelta[1] = 1;
ADDRLP4 0
INDIRP4
CNSTI4 96
ADDP4
CNSTF4 1065353216
ASGNF4
line 71
;71:	le->angles.trDelta[2] = 0;
ADDRLP4 0
INDIRP4
CNSTI4 100
ADDP4
CNSTF4 0
ASGNF4
line 73
;72:
;73:	le->leFlags = LEF_TUMBLE;
ADDRLP4 0
INDIRP4
CNSTI4 12
ADDP4
CNSTI4 2
ASGNI4
line 74
;74:	le->leBounceSoundType = LEBS_BRASS;
ADDRLP4 0
INDIRP4
CNSTI4 148
ADDP4
CNSTI4 2
ASGNI4
line 75
;75:	le->leMarkType = LEMT_NONE;
ADDRLP4 0
INDIRP4
CNSTI4 144
ADDP4
CNSTI4 0
ASGNI4
line 76
;76:}
LABELV $70
endproc CG_MachineGunEjectBrass 136 8
proc CG_ShotgunEjectBrass 136 8
line 83
;77:
;78:/*
;79:==========================
;80:CG_ShotgunEjectBrass
;81:==========================
;82:*/
;83:static void CG_ShotgunEjectBrass( centity_t *cent ) {
line 91
;84:	localEntity_t	*le;
;85:	refEntity_t		*re;
;86:	vec3_t			velocity, xvelocity;
;87:	vec3_t			offset, xoffset;
;88:	vec3_t			v[3];
;89:	int				i;
;90:
;91:	if ( cg_brassTime.integer <= 0 ) {
ADDRGP4 cg_brassTime+12
INDIRI4
CNSTI4 0
GTI4 $132
line 92
;92:		return;
ADDRGP4 $131
JUMPV
LABELV $132
line 95
;93:	}
;94:
;95:	for ( i = 0; i < 2; i++ ) {
ADDRLP4 92
CNSTI4 0
ASGNI4
LABELV $135
line 96
;96:		float	waterScale = 1.0f;
ADDRLP4 96
CNSTF4 1065353216
ASGNF4
line 98
;97:
;98:		le = CG_AllocLocalEntity();
ADDRLP4 100
ADDRGP4 CG_AllocLocalEntity
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 100
INDIRP4
ASGNP4
line 99
;99:		re = &le->refEntity;
ADDRLP4 64
ADDRLP4 0
INDIRP4
CNSTI4 152
ADDP4
ASGNP4
line 101
;100:
;101:		velocity[0] = 60 + 60 * crandom();
ADDRLP4 104
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 40
CNSTF4 1114636288
CNSTF4 1073741824
ADDRLP4 104
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
CNSTF4 1056964608
SUBF4
MULF4
MULF4
CNSTF4 1114636288
ADDF4
ASGNF4
line 102
;102:		if ( i == 0 ) {
ADDRLP4 92
INDIRI4
CNSTI4 0
NEI4 $139
line 103
;103:			velocity[1] = 40 + 10 * crandom();
ADDRLP4 108
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 40+4
CNSTF4 1092616192
CNSTF4 1073741824
ADDRLP4 108
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
CNSTF4 1056964608
SUBF4
MULF4
MULF4
CNSTF4 1109393408
ADDF4
ASGNF4
line 104
;104:		} else {
ADDRGP4 $140
JUMPV
LABELV $139
line 105
;105:			velocity[1] = -40 + 10 * crandom();
ADDRLP4 108
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 40+4
CNSTF4 1092616192
CNSTF4 1073741824
ADDRLP4 108
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
CNSTF4 1056964608
SUBF4
MULF4
MULF4
CNSTF4 3256877056
ADDF4
ASGNF4
line 106
;106:		}
LABELV $140
line 107
;107:		velocity[2] = 100 + 50 * crandom();
ADDRLP4 108
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 40+8
CNSTF4 1112014848
CNSTF4 1073741824
ADDRLP4 108
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
CNSTF4 1056964608
SUBF4
MULF4
MULF4
CNSTF4 1120403456
ADDF4
ASGNF4
line 109
;108:
;109:		le->leType = LE_FRAGMENT;
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
CNSTI4 3
ASGNI4
line 110
;110:		le->startTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 111
;111:		le->endTime = le->startTime + cg_brassTime.integer*3 + cg_brassTime.integer * random();
ADDRLP4 112
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 20
ADDP4
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
CNSTI4 3
ADDRGP4 cg_brassTime+12
INDIRI4
MULI4
ADDI4
CVIF4 4
ADDRGP4 cg_brassTime+12
INDIRI4
CVIF4 4
ADDRLP4 112
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
MULF4
ADDF4
CVFI4 4
ASGNI4
line 113
;112:
;113:		le->pos.trType = TR_GRAVITY;
ADDRLP4 0
INDIRP4
CNSTI4 32
ADDP4
CNSTI4 5
ASGNI4
line 114
;114:		le->pos.trTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 36
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 116
;115:
;116:		AnglesToAxis( cent->lerpAngles, v );
ADDRFP4 0
INDIRP4
CNSTI4 716
ADDP4
ARGP4
ADDRLP4 4
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 118
;117:
;118:		offset[0] = 8;
ADDRLP4 52
CNSTF4 1090519040
ASGNF4
line 119
;119:		offset[1] = 0;
ADDRLP4 52+4
CNSTF4 0
ASGNF4
line 120
;120:		offset[2] = 24;
ADDRLP4 52+8
CNSTF4 1103101952
ASGNF4
line 122
;121:
;122:		xoffset[0] = offset[0] * v[0][0] + offset[1] * v[1][0] + offset[2] * v[2][0];
ADDRLP4 80
ADDRLP4 52
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ADDRLP4 52+4
INDIRF4
ADDRLP4 4+12
INDIRF4
MULF4
ADDF4
ADDRLP4 52+8
INDIRF4
ADDRLP4 4+24
INDIRF4
MULF4
ADDF4
ASGNF4
line 123
;123:		xoffset[1] = offset[0] * v[0][1] + offset[1] * v[1][1] + offset[2] * v[2][1];
ADDRLP4 80+4
ADDRLP4 52
INDIRF4
ADDRLP4 4+4
INDIRF4
MULF4
ADDRLP4 52+4
INDIRF4
ADDRLP4 4+12+4
INDIRF4
MULF4
ADDF4
ADDRLP4 52+8
INDIRF4
ADDRLP4 4+24+4
INDIRF4
MULF4
ADDF4
ASGNF4
line 124
;124:		xoffset[2] = offset[0] * v[0][2] + offset[1] * v[1][2] + offset[2] * v[2][2];
ADDRLP4 80+8
ADDRLP4 52
INDIRF4
ADDRLP4 4+8
INDIRF4
MULF4
ADDRLP4 52+4
INDIRF4
ADDRLP4 4+12+8
INDIRF4
MULF4
ADDF4
ADDRLP4 52+8
INDIRF4
ADDRLP4 4+24+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 125
;125:		VectorAdd( cent->lerpOrigin, xoffset, re->origin );
ADDRLP4 64
INDIRP4
CNSTI4 68
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 704
ADDP4
INDIRF4
ADDRLP4 80
INDIRF4
ADDF4
ASGNF4
ADDRLP4 64
INDIRP4
CNSTI4 72
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 708
ADDP4
INDIRF4
ADDRLP4 80+4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 64
INDIRP4
CNSTI4 76
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 712
ADDP4
INDIRF4
ADDRLP4 80+8
INDIRF4
ADDF4
ASGNF4
line 126
;126:		VectorCopy( re->origin, le->pos.trBase );
ADDRLP4 0
INDIRP4
CNSTI4 44
ADDP4
ADDRLP4 64
INDIRP4
CNSTI4 68
ADDP4
INDIRB
ASGNB 12
line 127
;127:		if ( CG_PointContents( re->origin, -1 ) & CONTENTS_WATER ) {
ADDRLP4 64
INDIRP4
CNSTI4 68
ADDP4
ARGP4
CNSTI4 -1
ARGI4
ADDRLP4 120
ADDRGP4 CG_PointContents
CALLI4
ASGNI4
ADDRLP4 120
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $172
line 128
;128:			waterScale = 0.10f;
ADDRLP4 96
CNSTF4 1036831949
ASGNF4
line 129
;129:		}
LABELV $172
line 131
;130:
;131:		xvelocity[0] = velocity[0] * v[0][0] + velocity[1] * v[1][0] + velocity[2] * v[2][0];
ADDRLP4 68
ADDRLP4 40
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ADDRLP4 40+4
INDIRF4
ADDRLP4 4+12
INDIRF4
MULF4
ADDF4
ADDRLP4 40+8
INDIRF4
ADDRLP4 4+24
INDIRF4
MULF4
ADDF4
ASGNF4
line 132
;132:		xvelocity[1] = velocity[0] * v[0][1] + velocity[1] * v[1][1] + velocity[2] * v[2][1];
ADDRLP4 68+4
ADDRLP4 40
INDIRF4
ADDRLP4 4+4
INDIRF4
MULF4
ADDRLP4 40+4
INDIRF4
ADDRLP4 4+12+4
INDIRF4
MULF4
ADDF4
ADDRLP4 40+8
INDIRF4
ADDRLP4 4+24+4
INDIRF4
MULF4
ADDF4
ASGNF4
line 133
;133:		xvelocity[2] = velocity[0] * v[0][2] + velocity[1] * v[1][2] + velocity[2] * v[2][2];
ADDRLP4 68+8
ADDRLP4 40
INDIRF4
ADDRLP4 4+8
INDIRF4
MULF4
ADDRLP4 40+4
INDIRF4
ADDRLP4 4+12+8
INDIRF4
MULF4
ADDF4
ADDRLP4 40+8
INDIRF4
ADDRLP4 4+24+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 134
;134:		VectorScale( xvelocity, waterScale, le->pos.trDelta );
ADDRLP4 0
INDIRP4
CNSTI4 56
ADDP4
ADDRLP4 68
INDIRF4
ADDRLP4 96
INDIRF4
MULF4
ASGNF4
ADDRLP4 0
INDIRP4
CNSTI4 60
ADDP4
ADDRLP4 68+4
INDIRF4
ADDRLP4 96
INDIRF4
MULF4
ASGNF4
ADDRLP4 0
INDIRP4
CNSTI4 64
ADDP4
ADDRLP4 68+8
INDIRF4
ADDRLP4 96
INDIRF4
MULF4
ASGNF4
line 136
;135:
;136:		AxisCopy( axisDefault, re->axis );
ADDRGP4 axisDefault
ARGP4
ADDRLP4 64
INDIRP4
CNSTI4 28
ADDP4
ARGP4
ADDRGP4 AxisCopy
CALLV
pop
line 137
;137:		re->hModel = cgs.media.shotgunBrassModel;
ADDRLP4 64
INDIRP4
CNSTI4 8
ADDP4
ADDRGP4 cgs+152340+216
INDIRI4
ASGNI4
line 138
;138:		le->bounceFactor = 0.3f;
ADDRLP4 0
INDIRP4
CNSTI4 104
ADDP4
CNSTF4 1050253722
ASGNF4
line 140
;139:
;140:		le->angles.trType = TR_LINEAR;
ADDRLP4 0
INDIRP4
CNSTI4 68
ADDP4
CNSTI4 2
ASGNI4
line 141
;141:		le->angles.trTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 72
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 142
;142:		le->angles.trBase[0] = rand()&31;
ADDRLP4 124
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 80
ADDP4
ADDRLP4 124
INDIRI4
CNSTI4 31
BANDI4
CVIF4 4
ASGNF4
line 143
;143:		le->angles.trBase[1] = rand()&31;
ADDRLP4 128
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 84
ADDP4
ADDRLP4 128
INDIRI4
CNSTI4 31
BANDI4
CVIF4 4
ASGNF4
line 144
;144:		le->angles.trBase[2] = rand()&31;
ADDRLP4 132
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 88
ADDP4
ADDRLP4 132
INDIRI4
CNSTI4 31
BANDI4
CVIF4 4
ASGNF4
line 145
;145:		le->angles.trDelta[0] = 1;
ADDRLP4 0
INDIRP4
CNSTI4 92
ADDP4
CNSTF4 1065353216
ASGNF4
line 146
;146:		le->angles.trDelta[1] = 0.5;
ADDRLP4 0
INDIRP4
CNSTI4 96
ADDP4
CNSTF4 1056964608
ASGNF4
line 147
;147:		le->angles.trDelta[2] = 0;
ADDRLP4 0
INDIRP4
CNSTI4 100
ADDP4
CNSTF4 0
ASGNF4
line 149
;148:
;149:		le->leFlags = LEF_TUMBLE;
ADDRLP4 0
INDIRP4
CNSTI4 12
ADDP4
CNSTI4 2
ASGNI4
line 150
;150:		le->leBounceSoundType = LEBS_BRASS;
ADDRLP4 0
INDIRP4
CNSTI4 148
ADDP4
CNSTI4 2
ASGNI4
line 151
;151:		le->leMarkType = LEMT_NONE;
ADDRLP4 0
INDIRP4
CNSTI4 144
ADDP4
CNSTI4 0
ASGNI4
line 152
;152:	}
LABELV $136
line 95
ADDRLP4 92
ADDRLP4 92
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 92
INDIRI4
CNSTI4 2
LTI4 $135
line 153
;153:}
LABELV $131
endproc CG_ShotgunEjectBrass 136 8
proc CG_NailgunEjectBrass 108 48
line 162
;154:
;155:
;156:#ifdef MISSIONPACK
;157:/*
;158:==========================
;159:CG_NailgunEjectBrass
;160:==========================
;161:*/
;162:static void CG_NailgunEjectBrass( centity_t *cent ) {
line 170
;163:	localEntity_t	*smoke;
;164:	vec3_t			origin;
;165:	vec3_t			v[3];
;166:	vec3_t			offset;
;167:	vec3_t			xoffset;
;168:	vec3_t			up;
;169:
;170:	AnglesToAxis( cent->lerpAngles, v );
ADDRFP4 0
INDIRP4
CNSTI4 716
ADDP4
ARGP4
ADDRLP4 12
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 172
;171:
;172:	offset[0] = 0;
ADDRLP4 0
CNSTF4 0
ASGNF4
line 173
;173:	offset[1] = -12;
ADDRLP4 0+4
CNSTF4 3242196992
ASGNF4
line 174
;174:	offset[2] = 24;
ADDRLP4 0+8
CNSTF4 1103101952
ASGNF4
line 176
;175:
;176:	xoffset[0] = offset[0] * v[0][0] + offset[1] * v[1][0] + offset[2] * v[2][0];
ADDRLP4 48
ADDRLP4 0
INDIRF4
ADDRLP4 12
INDIRF4
MULF4
ADDRLP4 0+4
INDIRF4
ADDRLP4 12+12
INDIRF4
MULF4
ADDF4
ADDRLP4 0+8
INDIRF4
ADDRLP4 12+24
INDIRF4
MULF4
ADDF4
ASGNF4
line 177
;177:	xoffset[1] = offset[0] * v[0][1] + offset[1] * v[1][1] + offset[2] * v[2][1];
ADDRLP4 48+4
ADDRLP4 0
INDIRF4
ADDRLP4 12+4
INDIRF4
MULF4
ADDRLP4 0+4
INDIRF4
ADDRLP4 12+12+4
INDIRF4
MULF4
ADDF4
ADDRLP4 0+8
INDIRF4
ADDRLP4 12+24+4
INDIRF4
MULF4
ADDF4
ASGNF4
line 178
;178:	xoffset[2] = offset[0] * v[0][2] + offset[1] * v[1][2] + offset[2] * v[2][2];
ADDRLP4 48+8
ADDRLP4 0
INDIRF4
ADDRLP4 12+8
INDIRF4
MULF4
ADDRLP4 0+4
INDIRF4
ADDRLP4 12+12+8
INDIRF4
MULF4
ADDF4
ADDRLP4 0+8
INDIRF4
ADDRLP4 12+24+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 179
;179:	VectorAdd( cent->lerpOrigin, xoffset, origin );
ADDRLP4 88
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 60
ADDRLP4 88
INDIRP4
CNSTI4 704
ADDP4
INDIRF4
ADDRLP4 48
INDIRF4
ADDF4
ASGNF4
ADDRLP4 60+4
ADDRLP4 88
INDIRP4
CNSTI4 708
ADDP4
INDIRF4
ADDRLP4 48+4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 60+8
ADDRFP4 0
INDIRP4
CNSTI4 712
ADDP4
INDIRF4
ADDRLP4 48+8
INDIRF4
ADDF4
ASGNF4
line 181
;180:
;181:	VectorSet( up, 0, 0, 64 );
ADDRLP4 92
CNSTF4 0
ASGNF4
ADDRLP4 72
ADDRLP4 92
INDIRF4
ASGNF4
ADDRLP4 72+4
ADDRLP4 92
INDIRF4
ASGNF4
ADDRLP4 72+8
CNSTF4 1115684864
ASGNF4
line 183
;182:
;183:	smoke = CG_SmokePuff( origin, up, 32, 1, 1, 1, 0.33f, 700, cg.time, 0, 0, cgs.media.smokePuffShader );
ADDRLP4 60
ARGP4
ADDRLP4 72
ARGP4
CNSTF4 1107296256
ARGF4
ADDRLP4 96
CNSTF4 1065353216
ASGNF4
ADDRLP4 96
INDIRF4
ARGF4
ADDRLP4 96
INDIRF4
ARGF4
ADDRLP4 96
INDIRF4
ARGF4
CNSTF4 1051260355
ARGF4
CNSTF4 1143930880
ARGF4
ADDRGP4 cg+107604
INDIRI4
ARGI4
ADDRLP4 100
CNSTI4 0
ASGNI4
ADDRLP4 100
INDIRI4
ARGI4
ADDRLP4 100
INDIRI4
ARGI4
ADDRGP4 cgs+152340+308
INDIRI4
ARGI4
ADDRLP4 104
ADDRGP4 CG_SmokePuff
CALLP4
ASGNP4
ADDRLP4 84
ADDRLP4 104
INDIRP4
ASGNP4
line 185
;184:	// use the optimized local entity add
;185:	smoke->leType = LE_SCALE_FADE;
ADDRLP4 84
INDIRP4
CNSTI4 8
ADDP4
CNSTI4 7
ASGNI4
line 186
;186:}
LABELV $199
endproc CG_NailgunEjectBrass 108 48
export CG_RailTrail
proc CG_RailTrail 644 16
line 195
;187:#endif
;188:
;189:
;190:/*
;191:==========================
;192:CG_RailTrail
;193:==========================
;194:*/
;195:void CG_RailTrail (clientInfo_t *ci, vec3_t start, vec3_t end) {
line 207
;196:	vec3_t axis[36], move, move2, next_move, vec, temp;
;197:	float  len;
;198:	int    i, j, skip;
;199: 
;200:	localEntity_t *le;
;201:	refEntity_t   *re;
;202: 
;203:#define RADIUS   4
;204:#define ROTATION 1
;205:#define SPACING  5
;206: 
;207:	start[2] -= 4;
ADDRLP4 516
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 516
INDIRP4
ADDRLP4 516
INDIRP4
INDIRF4
CNSTF4 1082130432
SUBF4
ASGNF4
line 208
;208:	VectorCopy (start, move);
ADDRLP4 8
ADDRFP4 4
INDIRP4
INDIRB
ASGNB 12
line 209
;209:	VectorSubtract (end, start, vec);
ADDRLP4 520
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 524
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 28
ADDRLP4 520
INDIRP4
INDIRF4
ADDRLP4 524
INDIRP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 528
CNSTI4 4
ASGNI4
ADDRLP4 28+4
ADDRLP4 520
INDIRP4
ADDRLP4 528
INDIRI4
ADDP4
INDIRF4
ADDRLP4 524
INDIRP4
ADDRLP4 528
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 532
CNSTI4 8
ASGNI4
ADDRLP4 28+8
ADDRFP4 8
INDIRP4
ADDRLP4 532
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
ADDRLP4 532
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 210
;210:	len = VectorNormalize (vec);
ADDRLP4 28
ARGP4
ADDRLP4 536
ADDRGP4 VectorNormalize
CALLF4
ASGNF4
ADDRLP4 500
ADDRLP4 536
INDIRF4
ASGNF4
line 211
;211:	PerpendicularVector(temp, vec);
ADDRLP4 488
ARGP4
ADDRLP4 28
ARGP4
ADDRGP4 PerpendicularVector
CALLV
pop
line 212
;212:	for (i = 0 ; i < 36; i++) {
ADDRLP4 4
CNSTI4 0
ASGNI4
LABELV $234
line 213
;213:		RotatePointAroundVector(axis[i], vec, temp, i * 10);//banshee 2.4 was 10
CNSTI4 12
ADDRLP4 4
INDIRI4
MULI4
ADDRLP4 40
ADDP4
ARGP4
ADDRLP4 28
ARGP4
ADDRLP4 488
ARGP4
CNSTI4 10
ADDRLP4 4
INDIRI4
MULI4
CVIF4 4
ARGF4
ADDRGP4 RotatePointAroundVector
CALLV
pop
line 214
;214:	}
LABELV $235
line 212
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 36
LTI4 $234
line 216
;215: 
;216:	le = CG_AllocLocalEntity();
ADDRLP4 540
ADDRGP4 CG_AllocLocalEntity
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 540
INDIRP4
ASGNP4
line 217
;217:	re = &le->refEntity;
ADDRLP4 24
ADDRLP4 0
INDIRP4
CNSTI4 152
ADDP4
ASGNP4
line 219
;218: 
;219:	le->leType = LE_FADE_RGB;
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
CNSTI4 6
ASGNI4
line 220
;220:	le->startTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 221
;221:	le->endTime = cg.time + cg_railTrailTime.value;
ADDRLP4 0
INDIRP4
CNSTI4 20
ADDP4
ADDRGP4 cg+107604
INDIRI4
CVIF4 4
ADDRGP4 cg_railTrailTime+8
INDIRF4
ADDF4
CVFI4 4
ASGNI4
line 222
;222:	le->lifeRate = 1.0 / (le->endTime - le->startTime);
ADDRLP4 0
INDIRP4
CNSTI4 28
ADDP4
CNSTF4 1065353216
ADDRLP4 0
INDIRP4
CNSTI4 20
ADDP4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
SUBI4
CVIF4 4
DIVF4
ASGNF4
line 224
;223: 
;224:	re->shaderTime = cg.time / 1000.0f;
ADDRLP4 24
INDIRP4
CNSTI4 128
ADDP4
ADDRGP4 cg+107604
INDIRI4
CVIF4 4
CNSTF4 1148846080
DIVF4
ASGNF4
line 225
;225:	re->reType = RT_RAIL_CORE;
ADDRLP4 24
INDIRP4
CNSTI4 4
ASGNI4
line 226
;226:	re->customShader = cgs.media.railCoreShader;
ADDRLP4 24
INDIRP4
CNSTI4 112
ADDP4
ADDRGP4 cgs+152340+224
INDIRI4
ASGNI4
line 228
;227: 
;228:	VectorCopy(start, re->origin);
ADDRLP4 24
INDIRP4
CNSTI4 68
ADDP4
ADDRFP4 4
INDIRP4
INDIRB
ASGNB 12
line 229
;229:	VectorCopy(end, re->oldorigin);
ADDRLP4 24
INDIRP4
CNSTI4 84
ADDP4
ADDRFP4 8
INDIRP4
INDIRB
ASGNB 12
line 231
;230: 
;231:	re->shaderRGBA[0] = ci->color1[0] * 255;
ADDRLP4 552
CNSTF4 1132396544
ADDRFP4 0
INDIRP4
CNSTI4 76
ADDP4
INDIRF4
MULF4
ASGNF4
ADDRLP4 556
CNSTF4 1325400064
ASGNF4
ADDRLP4 552
INDIRF4
ADDRLP4 556
INDIRF4
LTF4 $245
ADDRLP4 548
ADDRLP4 552
INDIRF4
ADDRLP4 556
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $246
JUMPV
LABELV $245
ADDRLP4 548
ADDRLP4 552
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $246
ADDRLP4 24
INDIRP4
CNSTI4 116
ADDP4
ADDRLP4 548
INDIRU4
CVUU1 4
ASGNU1
line 232
;232:    re->shaderRGBA[1] = ci->color1[1] * 255;
ADDRLP4 564
CNSTF4 1132396544
ADDRFP4 0
INDIRP4
CNSTI4 80
ADDP4
INDIRF4
MULF4
ASGNF4
ADDRLP4 568
CNSTF4 1325400064
ASGNF4
ADDRLP4 564
INDIRF4
ADDRLP4 568
INDIRF4
LTF4 $248
ADDRLP4 560
ADDRLP4 564
INDIRF4
ADDRLP4 568
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $249
JUMPV
LABELV $248
ADDRLP4 560
ADDRLP4 564
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $249
ADDRLP4 24
INDIRP4
CNSTI4 117
ADDP4
ADDRLP4 560
INDIRU4
CVUU1 4
ASGNU1
line 233
;233:    re->shaderRGBA[2] = ci->color1[2] * 255;
ADDRLP4 576
CNSTF4 1132396544
ADDRFP4 0
INDIRP4
CNSTI4 84
ADDP4
INDIRF4
MULF4
ASGNF4
ADDRLP4 580
CNSTF4 1325400064
ASGNF4
ADDRLP4 576
INDIRF4
ADDRLP4 580
INDIRF4
LTF4 $251
ADDRLP4 572
ADDRLP4 576
INDIRF4
ADDRLP4 580
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $252
JUMPV
LABELV $251
ADDRLP4 572
ADDRLP4 576
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $252
ADDRLP4 24
INDIRP4
CNSTI4 118
ADDP4
ADDRLP4 572
INDIRU4
CVUU1 4
ASGNU1
line 234
;234:    re->shaderRGBA[3] = 255;
ADDRLP4 24
INDIRP4
CNSTI4 119
ADDP4
CNSTU1 255
ASGNU1
line 236
;235:
;236:	le->color[0] = ci->color1[0] * 0.75;
ADDRLP4 0
INDIRP4
CNSTI4 108
ADDP4
CNSTF4 1061158912
ADDRFP4 0
INDIRP4
CNSTI4 76
ADDP4
INDIRF4
MULF4
ASGNF4
line 237
;237:	le->color[1] = ci->color1[1] * 0.75;
ADDRLP4 0
INDIRP4
CNSTI4 112
ADDP4
CNSTF4 1061158912
ADDRFP4 0
INDIRP4
CNSTI4 80
ADDP4
INDIRF4
MULF4
ASGNF4
line 238
;238:	le->color[2] = ci->color1[2] * 0.75;
ADDRLP4 0
INDIRP4
CNSTI4 116
ADDP4
CNSTF4 1061158912
ADDRFP4 0
INDIRP4
CNSTI4 84
ADDP4
INDIRF4
MULF4
ASGNF4
line 239
;239:	le->color[3] = 1.0f;
ADDRLP4 0
INDIRP4
CNSTI4 120
ADDP4
CNSTF4 1065353216
ASGNF4
line 241
;240:
;241:	AxisClear( re->axis );
ADDRLP4 24
INDIRP4
CNSTI4 28
ADDP4
ARGP4
ADDRGP4 AxisClear
CALLV
pop
line 243
;242: 
;243:	VectorMA(move, 20, vec, move);
ADDRLP4 584
CNSTF4 1101004800
ASGNF4
ADDRLP4 8
ADDRLP4 8
INDIRF4
ADDRLP4 584
INDIRF4
ADDRLP4 28
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 8+4
ADDRLP4 8+4
INDIRF4
ADDRLP4 584
INDIRF4
ADDRLP4 28+4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 8+8
ADDRLP4 8+8
INDIRF4
CNSTF4 1101004800
ADDRLP4 28+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 244
;244:	VectorCopy(move, next_move);
ADDRLP4 504
ADDRLP4 8
INDIRB
ASGNB 12
line 245
;245:	VectorScale (vec, SPACING, vec);
ADDRLP4 588
CNSTF4 1084227584
ASGNF4
ADDRLP4 28
ADDRLP4 588
INDIRF4
ADDRLP4 28
INDIRF4
MULF4
ASGNF4
ADDRLP4 28+4
ADDRLP4 588
INDIRF4
ADDRLP4 28+4
INDIRF4
MULF4
ASGNF4
ADDRLP4 28+8
CNSTF4 1084227584
ADDRLP4 28+8
INDIRF4
MULF4
ASGNF4
line 247
;246:
;247:	if (cg_oldRail.integer != 0) {
ADDRGP4 cg_oldRail+12
INDIRI4
CNSTI4 0
EQI4 $263
line 249
;248:		// nudge down a bit so it isn't exactly in center
;249:		re->origin[2] -= 8;
ADDRLP4 592
ADDRLP4 24
INDIRP4
CNSTI4 76
ADDP4
ASGNP4
ADDRLP4 592
INDIRP4
ADDRLP4 592
INDIRP4
INDIRF4
CNSTF4 1090519040
SUBF4
ASGNF4
line 250
;250:		re->oldorigin[2] -= 8;
ADDRLP4 596
ADDRLP4 24
INDIRP4
CNSTI4 92
ADDP4
ASGNP4
ADDRLP4 596
INDIRP4
ADDRLP4 596
INDIRP4
INDIRF4
CNSTF4 1090519040
SUBF4
ASGNF4
line 251
;251:		return;
ADDRGP4 $231
JUMPV
LABELV $263
line 253
;252:	}
;253:	skip = -1;
ADDRLP4 484
CNSTI4 -1
ASGNI4
line 255
;254: 
;255:	j = 18;
ADDRLP4 20
CNSTI4 18
ASGNI4
line 256
;256:    for (i = 0; i < len; i += SPACING) {
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRGP4 $269
JUMPV
LABELV $266
line 257
;257:		if (i != skip) {
ADDRLP4 4
INDIRI4
ADDRLP4 484
INDIRI4
EQI4 $270
line 258
;258:			skip = i + SPACING;
ADDRLP4 484
ADDRLP4 4
INDIRI4
CNSTI4 5
ADDI4
ASGNI4
line 259
;259:			le = CG_AllocLocalEntity();
ADDRLP4 592
ADDRGP4 CG_AllocLocalEntity
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 592
INDIRP4
ASGNP4
line 260
;260:            re = &le->refEntity;
ADDRLP4 24
ADDRLP4 0
INDIRP4
CNSTI4 152
ADDP4
ASGNP4
line 261
;261:            le->leFlags = LEF_PUFF_DONT_SCALE;
ADDRLP4 0
INDIRP4
CNSTI4 12
ADDP4
CNSTI4 1
ASGNI4
line 262
;262:			le->leType = LE_MOVE_SCALE_FADE;
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
CNSTI4 4
ASGNI4
line 263
;263:            le->startTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 264
;264:            le->endTime = cg.time + (i>>1) + 600;
ADDRLP4 0
INDIRP4
CNSTI4 20
ADDP4
ADDRGP4 cg+107604
INDIRI4
ADDRLP4 4
INDIRI4
CNSTI4 1
RSHI4
ADDI4
CNSTI4 600
ADDI4
ASGNI4
line 265
;265:            le->lifeRate = 1.0 / (le->endTime - le->startTime);
ADDRLP4 0
INDIRP4
CNSTI4 28
ADDP4
CNSTF4 1065353216
ADDRLP4 0
INDIRP4
CNSTI4 20
ADDP4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
SUBI4
CVIF4 4
DIVF4
ASGNF4
line 267
;266:
;267:            re->shaderTime = cg.time / 1000.0f;
ADDRLP4 24
INDIRP4
CNSTI4 128
ADDP4
ADDRGP4 cg+107604
INDIRI4
CVIF4 4
CNSTF4 1148846080
DIVF4
ASGNF4
line 268
;268:            re->reType = RT_SPRITE;
ADDRLP4 24
INDIRP4
CNSTI4 2
ASGNI4
line 269
;269:            re->radius = 1.1f;
ADDRLP4 24
INDIRP4
CNSTI4 132
ADDP4
CNSTF4 1066192077
ASGNF4
line 270
;270:			re->customShader = cgs.media.railRingsShader;
ADDRLP4 24
INDIRP4
CNSTI4 112
ADDP4
ADDRGP4 cgs+152340+220
INDIRI4
ASGNI4
line 272
;271:
;272:            re->shaderRGBA[0] = ci->color2[0] * 255;
ADDRLP4 604
CNSTF4 1132396544
ADDRFP4 0
INDIRP4
CNSTI4 88
ADDP4
INDIRF4
MULF4
ASGNF4
ADDRLP4 608
CNSTF4 1325400064
ASGNF4
ADDRLP4 604
INDIRF4
ADDRLP4 608
INDIRF4
LTF4 $278
ADDRLP4 600
ADDRLP4 604
INDIRF4
ADDRLP4 608
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $279
JUMPV
LABELV $278
ADDRLP4 600
ADDRLP4 604
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $279
ADDRLP4 24
INDIRP4
CNSTI4 116
ADDP4
ADDRLP4 600
INDIRU4
CVUU1 4
ASGNU1
line 273
;273:            re->shaderRGBA[1] = ci->color2[1] * 255;
ADDRLP4 616
CNSTF4 1132396544
ADDRFP4 0
INDIRP4
CNSTI4 92
ADDP4
INDIRF4
MULF4
ASGNF4
ADDRLP4 620
CNSTF4 1325400064
ASGNF4
ADDRLP4 616
INDIRF4
ADDRLP4 620
INDIRF4
LTF4 $281
ADDRLP4 612
ADDRLP4 616
INDIRF4
ADDRLP4 620
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $282
JUMPV
LABELV $281
ADDRLP4 612
ADDRLP4 616
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $282
ADDRLP4 24
INDIRP4
CNSTI4 117
ADDP4
ADDRLP4 612
INDIRU4
CVUU1 4
ASGNU1
line 274
;274:            re->shaderRGBA[2] = ci->color2[2] * 255;
ADDRLP4 628
CNSTF4 1132396544
ADDRFP4 0
INDIRP4
CNSTI4 96
ADDP4
INDIRF4
MULF4
ASGNF4
ADDRLP4 632
CNSTF4 1325400064
ASGNF4
ADDRLP4 628
INDIRF4
ADDRLP4 632
INDIRF4
LTF4 $284
ADDRLP4 624
ADDRLP4 628
INDIRF4
ADDRLP4 632
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $285
JUMPV
LABELV $284
ADDRLP4 624
ADDRLP4 628
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $285
ADDRLP4 24
INDIRP4
CNSTI4 118
ADDP4
ADDRLP4 624
INDIRU4
CVUU1 4
ASGNU1
line 275
;275:            re->shaderRGBA[3] = 255;
ADDRLP4 24
INDIRP4
CNSTI4 119
ADDP4
CNSTU1 255
ASGNU1
line 277
;276:
;277:            le->color[0] = ci->color2[0] * 0.75;
ADDRLP4 0
INDIRP4
CNSTI4 108
ADDP4
CNSTF4 1061158912
ADDRFP4 0
INDIRP4
CNSTI4 88
ADDP4
INDIRF4
MULF4
ASGNF4
line 278
;278:            le->color[1] = ci->color2[1] * 0.75;
ADDRLP4 0
INDIRP4
CNSTI4 112
ADDP4
CNSTF4 1061158912
ADDRFP4 0
INDIRP4
CNSTI4 92
ADDP4
INDIRF4
MULF4
ASGNF4
line 279
;279:            le->color[2] = ci->color2[2] * 0.75;
ADDRLP4 0
INDIRP4
CNSTI4 116
ADDP4
CNSTF4 1061158912
ADDRFP4 0
INDIRP4
CNSTI4 96
ADDP4
INDIRF4
MULF4
ASGNF4
line 280
;280:            le->color[3] = 1.0f;
ADDRLP4 0
INDIRP4
CNSTI4 120
ADDP4
CNSTF4 1065353216
ASGNF4
line 282
;281:
;282:            le->pos.trType = TR_LINEAR;
ADDRLP4 0
INDIRP4
CNSTI4 32
ADDP4
CNSTI4 2
ASGNI4
line 283
;283:            le->pos.trTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 36
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 285
;284:
;285:			VectorCopy( move, move2);
ADDRLP4 472
ADDRLP4 8
INDIRB
ASGNB 12
line 286
;286:            VectorMA(move2, RADIUS , axis[j], move2);
ADDRLP4 636
CNSTF4 1082130432
ASGNF4
ADDRLP4 640
CNSTI4 12
ADDRLP4 20
INDIRI4
MULI4
ASGNI4
ADDRLP4 472
ADDRLP4 472
INDIRF4
ADDRLP4 636
INDIRF4
ADDRLP4 640
INDIRI4
ADDRLP4 40
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 472+4
ADDRLP4 472+4
INDIRF4
ADDRLP4 636
INDIRF4
ADDRLP4 640
INDIRI4
ADDRLP4 40+4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 472+8
ADDRLP4 472+8
INDIRF4
CNSTF4 1082130432
CNSTI4 12
ADDRLP4 20
INDIRI4
MULI4
ADDRLP4 40+8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 287
;287:            VectorCopy(move2, le->pos.trBase);
ADDRLP4 0
INDIRP4
CNSTI4 44
ADDP4
ADDRLP4 472
INDIRB
ASGNB 12
line 289
;288:
;289:            le->pos.trDelta[0] = axis[j][0]*6;
ADDRLP4 0
INDIRP4
CNSTI4 56
ADDP4
CNSTF4 1086324736
CNSTI4 12
ADDRLP4 20
INDIRI4
MULI4
ADDRLP4 40
ADDP4
INDIRF4
MULF4
ASGNF4
line 290
;290:            le->pos.trDelta[1] = axis[j][1]*6;
ADDRLP4 0
INDIRP4
CNSTI4 60
ADDP4
CNSTF4 1086324736
CNSTI4 12
ADDRLP4 20
INDIRI4
MULI4
ADDRLP4 40+4
ADDP4
INDIRF4
MULF4
ASGNF4
line 291
;291:            le->pos.trDelta[2] = axis[j][2]*6;
ADDRLP4 0
INDIRP4
CNSTI4 64
ADDP4
CNSTF4 1086324736
CNSTI4 12
ADDRLP4 20
INDIRI4
MULI4
ADDRLP4 40+8
ADDP4
INDIRF4
MULF4
ASGNF4
line 292
;292:		}
LABELV $270
line 294
;293:
;294:        VectorAdd (move, vec, move);
ADDRLP4 8
ADDRLP4 8
INDIRF4
ADDRLP4 28
INDIRF4
ADDF4
ASGNF4
ADDRLP4 8+4
ADDRLP4 8+4
INDIRF4
ADDRLP4 28+4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 8+8
ADDRLP4 8+8
INDIRF4
ADDRLP4 28+8
INDIRF4
ADDF4
ASGNF4
line 296
;295:
;296:        j = j + ROTATION < 36 ? j + ROTATION : (j + ROTATION) % 36;
ADDRLP4 20
INDIRI4
CNSTI4 1
ADDI4
CNSTI4 36
GEI4 $302
ADDRLP4 592
ADDRLP4 20
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRGP4 $303
JUMPV
LABELV $302
ADDRLP4 592
ADDRLP4 20
INDIRI4
CNSTI4 1
ADDI4
CNSTI4 36
MODI4
ASGNI4
LABELV $303
ADDRLP4 20
ADDRLP4 592
INDIRI4
ASGNI4
line 297
;297:	}
LABELV $267
line 256
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 5
ADDI4
ASGNI4
LABELV $269
ADDRLP4 4
INDIRI4
CVIF4 4
ADDRLP4 500
INDIRF4
LTF4 $266
line 298
;298:}
LABELV $231
endproc CG_RailTrail 644 16
proc CG_RocketTrail 92 48
line 305
;299:
;300:/*
;301:==========================
;302:CG_RocketTrail
;303:==========================
;304:*/
;305:static void CG_RocketTrail( centity_t *ent, const weaponInfo_t *wi ) {
line 315
;306:	int		step;
;307:	vec3_t	origin, lastPos;
;308:	int		t;
;309:	int		startTime, contents;
;310:	int		lastContents;
;311:	entityState_t	*es;
;312:	vec3_t	up;
;313:	localEntity_t	*smoke;
;314:
;315:	if ( cg_noProjectileTrail.integer ) {
ADDRGP4 cg_noProjectileTrail+12
INDIRI4
CNSTI4 0
EQI4 $305
line 316
;316:		return;
ADDRGP4 $304
JUMPV
LABELV $305
line 319
;317:	}
;318:
;319:	up[0] = 0;
ADDRLP4 28
CNSTF4 0
ASGNF4
line 320
;320:	up[1] = 0;
ADDRLP4 28+4
CNSTF4 0
ASGNF4
line 321
;321:	up[2] = 0;
ADDRLP4 28+8
CNSTF4 0
ASGNF4
line 323
;322:
;323:	step = 50;
ADDRLP4 20
CNSTI4 50
ASGNI4
line 325
;324:
;325:	es = &ent->currentState;
ADDRLP4 24
ADDRFP4 0
INDIRP4
ASGNP4
line 326
;326:	startTime = ent->trailTime;
ADDRLP4 56
ADDRFP4 0
INDIRP4
CNSTI4 436
ADDP4
INDIRI4
ASGNI4
line 327
;327:	t = step * ( (startTime + step) / step );
ADDRLP4 0
ADDRLP4 20
INDIRI4
ADDRLP4 56
INDIRI4
ADDRLP4 20
INDIRI4
ADDI4
ADDRLP4 20
INDIRI4
DIVI4
MULI4
ASGNI4
line 329
;328:
;329:	BG_EvaluateTrajectory( &es->pos, cg.time, origin );
ADDRLP4 24
INDIRP4
CNSTI4 12
ADDP4
ARGP4
ADDRGP4 cg+107604
INDIRI4
ARGI4
ADDRLP4 44
ARGP4
ADDRGP4 BG_EvaluateTrajectory
CALLV
pop
line 330
;330:	contents = CG_PointContents( origin, -1 );
ADDRLP4 44
ARGP4
CNSTI4 -1
ARGI4
ADDRLP4 68
ADDRGP4 CG_PointContents
CALLI4
ASGNI4
ADDRLP4 40
ADDRLP4 68
INDIRI4
ASGNI4
line 333
;331:
;332:	// if object (e.g. grenade) is stationary, don't toss up smoke
;333:	if ( es->pos.trType == TR_STATIONARY ) {
ADDRLP4 24
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
NEI4 $311
line 334
;334:		ent->trailTime = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 436
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 335
;335:		return;
ADDRGP4 $304
JUMPV
LABELV $311
line 338
;336:	}
;337:
;338:	BG_EvaluateTrajectory( &es->pos, ent->trailTime, lastPos );
ADDRLP4 24
INDIRP4
CNSTI4 12
ADDP4
ARGP4
ADDRFP4 0
INDIRP4
CNSTI4 436
ADDP4
INDIRI4
ARGI4
ADDRLP4 4
ARGP4
ADDRGP4 BG_EvaluateTrajectory
CALLV
pop
line 339
;339:	lastContents = CG_PointContents( lastPos, -1 );
ADDRLP4 4
ARGP4
CNSTI4 -1
ARGI4
ADDRLP4 72
ADDRGP4 CG_PointContents
CALLI4
ASGNI4
ADDRLP4 60
ADDRLP4 72
INDIRI4
ASGNI4
line 341
;340:
;341:	ent->trailTime = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 436
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 343
;342:
;343:	if ( contents & ( CONTENTS_WATER | CONTENTS_SLIME | CONTENTS_LAVA ) ) {
ADDRLP4 40
INDIRI4
CNSTI4 56
BANDI4
CNSTI4 0
EQI4 $322
line 344
;344:		if ( contents & lastContents & CONTENTS_WATER ) {
ADDRLP4 40
INDIRI4
ADDRLP4 60
INDIRI4
BANDI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $304
line 345
;345:			CG_BubbleTrail( lastPos, origin, 8 );
ADDRLP4 4
ARGP4
ADDRLP4 44
ARGP4
CNSTF4 1090519040
ARGF4
ADDRGP4 CG_BubbleTrail
CALLV
pop
line 346
;346:		}
line 347
;347:		return;
ADDRGP4 $304
JUMPV
line 350
;348:	}
;349:
;350:	for ( ; t <= ent->trailTime ; t += step ) {
LABELV $319
line 351
;351:		BG_EvaluateTrajectory( &es->pos, t, lastPos );
ADDRLP4 24
INDIRP4
CNSTI4 12
ADDP4
ARGP4
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 4
ARGP4
ADDRGP4 BG_EvaluateTrajectory
CALLV
pop
line 353
;352:
;353:		smoke = CG_SmokePuff( lastPos, up, 
ADDRLP4 4
ARGP4
ADDRLP4 28
ARGP4
ADDRLP4 76
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 76
INDIRP4
CNSTI4 116
ADDP4
INDIRF4
ARGF4
ADDRLP4 80
CNSTF4 1065353216
ASGNF4
ADDRLP4 80
INDIRF4
ARGF4
ADDRLP4 80
INDIRF4
ARGF4
ADDRLP4 80
INDIRF4
ARGF4
CNSTF4 1051260355
ARGF4
ADDRLP4 76
INDIRP4
CNSTI4 120
ADDP4
INDIRF4
ARGF4
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 84
CNSTI4 0
ASGNI4
ADDRLP4 84
INDIRI4
ARGI4
ADDRLP4 84
INDIRI4
ARGI4
ADDRGP4 cgs+152340+308
INDIRI4
ARGI4
ADDRLP4 88
ADDRGP4 CG_SmokePuff
CALLP4
ASGNP4
ADDRLP4 16
ADDRLP4 88
INDIRP4
ASGNP4
line 362
;354:					  wi->trailRadius, 
;355:					  1, 1, 1, 0.33f,
;356:					  wi->wiTrailTime, 
;357:					  t,
;358:					  0,
;359:					  0, 
;360:					  cgs.media.smokePuffShader );
;361:		// use the optimized local entity add
;362:		smoke->leType = LE_SCALE_FADE;
ADDRLP4 16
INDIRP4
CNSTI4 8
ADDP4
CNSTI4 7
ASGNI4
line 363
;363:	}
LABELV $320
line 350
ADDRLP4 0
ADDRLP4 0
INDIRI4
ADDRLP4 20
INDIRI4
ADDI4
ASGNI4
LABELV $322
ADDRLP4 0
INDIRI4
ADDRFP4 0
INDIRP4
CNSTI4 436
ADDP4
INDIRI4
LEI4 $319
line 365
;364:
;365:}
LABELV $304
endproc CG_RocketTrail 92 48
proc CG_NailTrail 92 48
line 373
;366:
;367:#ifdef MISSIONPACK
;368:/*
;369:==========================
;370:CG_NailTrail
;371:==========================
;372:*/
;373:static void CG_NailTrail( centity_t *ent, const weaponInfo_t *wi ) {
line 383
;374:	int		step;
;375:	vec3_t	origin, lastPos;
;376:	int		t;
;377:	int		startTime, contents;
;378:	int		lastContents;
;379:	entityState_t	*es;
;380:	vec3_t	up;
;381:	localEntity_t	*smoke;
;382:
;383:	if ( cg_noProjectileTrail.integer ) {
ADDRGP4 cg_noProjectileTrail+12
INDIRI4
CNSTI4 0
EQI4 $326
line 384
;384:		return;
ADDRGP4 $325
JUMPV
LABELV $326
line 387
;385:	}
;386:
;387:	up[0] = 0;
ADDRLP4 28
CNSTF4 0
ASGNF4
line 388
;388:	up[1] = 0;
ADDRLP4 28+4
CNSTF4 0
ASGNF4
line 389
;389:	up[2] = 0;
ADDRLP4 28+8
CNSTF4 0
ASGNF4
line 391
;390:
;391:	step = 50;
ADDRLP4 20
CNSTI4 50
ASGNI4
line 393
;392:
;393:	es = &ent->currentState;
ADDRLP4 24
ADDRFP4 0
INDIRP4
ASGNP4
line 394
;394:	startTime = ent->trailTime;
ADDRLP4 56
ADDRFP4 0
INDIRP4
CNSTI4 436
ADDP4
INDIRI4
ASGNI4
line 395
;395:	t = step * ( (startTime + step) / step );
ADDRLP4 0
ADDRLP4 20
INDIRI4
ADDRLP4 56
INDIRI4
ADDRLP4 20
INDIRI4
ADDI4
ADDRLP4 20
INDIRI4
DIVI4
MULI4
ASGNI4
line 397
;396:
;397:	BG_EvaluateTrajectory( &es->pos, cg.time, origin );
ADDRLP4 24
INDIRP4
CNSTI4 12
ADDP4
ARGP4
ADDRGP4 cg+107604
INDIRI4
ARGI4
ADDRLP4 44
ARGP4
ADDRGP4 BG_EvaluateTrajectory
CALLV
pop
line 398
;398:	contents = CG_PointContents( origin, -1 );
ADDRLP4 44
ARGP4
CNSTI4 -1
ARGI4
ADDRLP4 68
ADDRGP4 CG_PointContents
CALLI4
ASGNI4
ADDRLP4 40
ADDRLP4 68
INDIRI4
ASGNI4
line 401
;399:
;400:	// if object (e.g. grenade) is stationary, don't toss up smoke
;401:	if ( es->pos.trType == TR_STATIONARY ) {
ADDRLP4 24
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
NEI4 $332
line 402
;402:		ent->trailTime = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 436
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 403
;403:		return;
ADDRGP4 $325
JUMPV
LABELV $332
line 406
;404:	}
;405:
;406:	BG_EvaluateTrajectory( &es->pos, ent->trailTime, lastPos );
ADDRLP4 24
INDIRP4
CNSTI4 12
ADDP4
ARGP4
ADDRFP4 0
INDIRP4
CNSTI4 436
ADDP4
INDIRI4
ARGI4
ADDRLP4 4
ARGP4
ADDRGP4 BG_EvaluateTrajectory
CALLV
pop
line 407
;407:	lastContents = CG_PointContents( lastPos, -1 );
ADDRLP4 4
ARGP4
CNSTI4 -1
ARGI4
ADDRLP4 72
ADDRGP4 CG_PointContents
CALLI4
ASGNI4
ADDRLP4 60
ADDRLP4 72
INDIRI4
ASGNI4
line 409
;408:
;409:	ent->trailTime = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 436
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 411
;410:
;411:	if ( contents & ( CONTENTS_WATER | CONTENTS_SLIME | CONTENTS_LAVA ) ) {
ADDRLP4 40
INDIRI4
CNSTI4 56
BANDI4
CNSTI4 0
EQI4 $343
line 412
;412:		if ( contents & lastContents & CONTENTS_WATER ) {
ADDRLP4 40
INDIRI4
ADDRLP4 60
INDIRI4
BANDI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $325
line 413
;413:			CG_BubbleTrail( lastPos, origin, 8 );
ADDRLP4 4
ARGP4
ADDRLP4 44
ARGP4
CNSTF4 1090519040
ARGF4
ADDRGP4 CG_BubbleTrail
CALLV
pop
line 414
;414:		}
line 415
;415:		return;
ADDRGP4 $325
JUMPV
line 418
;416:	}
;417:
;418:	for ( ; t <= ent->trailTime ; t += step ) {
LABELV $340
line 419
;419:		BG_EvaluateTrajectory( &es->pos, t, lastPos );
ADDRLP4 24
INDIRP4
CNSTI4 12
ADDP4
ARGP4
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 4
ARGP4
ADDRGP4 BG_EvaluateTrajectory
CALLV
pop
line 421
;420:
;421:		smoke = CG_SmokePuff( lastPos, up, 
ADDRLP4 4
ARGP4
ADDRLP4 28
ARGP4
ADDRLP4 76
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 76
INDIRP4
CNSTI4 116
ADDP4
INDIRF4
ARGF4
ADDRLP4 80
CNSTF4 1065353216
ASGNF4
ADDRLP4 80
INDIRF4
ARGF4
ADDRLP4 80
INDIRF4
ARGF4
ADDRLP4 80
INDIRF4
ARGF4
CNSTF4 1051260355
ARGF4
ADDRLP4 76
INDIRP4
CNSTI4 120
ADDP4
INDIRF4
ARGF4
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 84
CNSTI4 0
ASGNI4
ADDRLP4 84
INDIRI4
ARGI4
ADDRLP4 84
INDIRI4
ARGI4
ADDRGP4 cgs+152340+332
INDIRI4
ARGI4
ADDRLP4 88
ADDRGP4 CG_SmokePuff
CALLP4
ASGNP4
ADDRLP4 16
ADDRLP4 88
INDIRP4
ASGNP4
line 430
;422:					  wi->trailRadius, 
;423:					  1, 1, 1, 0.33f,
;424:					  wi->wiTrailTime, 
;425:					  t,
;426:					  0,
;427:					  0, 
;428:					  cgs.media.nailPuffShader );
;429:		// use the optimized local entity add
;430:		smoke->leType = LE_SCALE_FADE;
ADDRLP4 16
INDIRP4
CNSTI4 8
ADDP4
CNSTI4 7
ASGNI4
line 431
;431:	}
LABELV $341
line 418
ADDRLP4 0
ADDRLP4 0
INDIRI4
ADDRLP4 20
INDIRI4
ADDI4
ASGNI4
LABELV $343
ADDRLP4 0
INDIRI4
ADDRFP4 0
INDIRP4
CNSTI4 436
ADDP4
INDIRI4
LEI4 $340
line 433
;432:
;433:}
LABELV $325
endproc CG_NailTrail 92 48
proc CG_PlasmaTrail 204 12
line 441
;434:#endif
;435:
;436:/*
;437:==========================
;438:CG_NailTrail
;439:==========================
;440:*/
;441:static void CG_PlasmaTrail( centity_t *cent, const weaponInfo_t *wi ) {
line 450
;442:	localEntity_t	*le;
;443:	refEntity_t		*re;
;444:	entityState_t	*es;
;445:	vec3_t			velocity, xvelocity, origin;
;446:	vec3_t			offset, xoffset;
;447:	vec3_t			v[3];
;448:	int				t, startTime, step;
;449:
;450:	float	waterScale = 1.0f;
ADDRLP4 92
CNSTF4 1065353216
ASGNF4
line 452
;451:
;452:	if ( cg_noProjectileTrail.integer || cg_oldPlasma.integer ) {
ADDRLP4 124
CNSTI4 0
ASGNI4
ADDRGP4 cg_noProjectileTrail+12
INDIRI4
ADDRLP4 124
INDIRI4
NEI4 $351
ADDRGP4 cg_oldPlasma+12
INDIRI4
ADDRLP4 124
INDIRI4
EQI4 $347
LABELV $351
line 453
;453:		return;
ADDRGP4 $346
JUMPV
LABELV $347
line 456
;454:	}
;455:
;456:	step = 50;
ADDRLP4 108
CNSTI4 50
ASGNI4
line 458
;457:
;458:	es = &cent->currentState;
ADDRLP4 112
ADDRFP4 0
INDIRP4
ASGNP4
line 459
;459:	startTime = cent->trailTime;
ADDRLP4 116
ADDRFP4 0
INDIRP4
CNSTI4 436
ADDP4
INDIRI4
ASGNI4
line 460
;460:	t = step * ( (startTime + step) / step );
ADDRLP4 120
ADDRLP4 108
INDIRI4
ADDRLP4 116
INDIRI4
ADDRLP4 108
INDIRI4
ADDI4
ADDRLP4 108
INDIRI4
DIVI4
MULI4
ASGNI4
line 462
;461:
;462:	BG_EvaluateTrajectory( &es->pos, cg.time, origin );
ADDRLP4 112
INDIRP4
CNSTI4 12
ADDP4
ARGP4
ADDRGP4 cg+107604
INDIRI4
ARGI4
ADDRLP4 96
ARGP4
ADDRGP4 BG_EvaluateTrajectory
CALLV
pop
line 464
;463:
;464:	le = CG_AllocLocalEntity();
ADDRLP4 132
ADDRGP4 CG_AllocLocalEntity
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 132
INDIRP4
ASGNP4
line 465
;465:	re = &le->refEntity;
ADDRLP4 40
ADDRLP4 0
INDIRP4
CNSTI4 152
ADDP4
ASGNP4
line 467
;466:
;467:	velocity[0] = 60 - 120 * crandom();
ADDRLP4 136
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 44
CNSTF4 1114636288
CNSTF4 1123024896
CNSTF4 1073741824
ADDRLP4 136
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
CNSTF4 1056964608
SUBF4
MULF4
MULF4
SUBF4
ASGNF4
line 468
;468:	velocity[1] = 40 - 80 * crandom();
ADDRLP4 140
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 44+4
CNSTF4 1109393408
CNSTF4 1117782016
CNSTF4 1073741824
ADDRLP4 140
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
CNSTF4 1056964608
SUBF4
MULF4
MULF4
SUBF4
ASGNF4
line 469
;469:	velocity[2] = 100 - 200 * crandom();
ADDRLP4 144
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 44+8
CNSTF4 1120403456
CNSTF4 1128792064
CNSTF4 1073741824
ADDRLP4 144
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
CNSTF4 1056964608
SUBF4
MULF4
MULF4
SUBF4
ASGNF4
line 471
;470:
;471:	le->leType = LE_MOVE_SCALE_FADE;
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
CNSTI4 4
ASGNI4
line 472
;472:	le->leFlags = LEF_TUMBLE;
ADDRLP4 0
INDIRP4
CNSTI4 12
ADDP4
CNSTI4 2
ASGNI4
line 473
;473:	le->leBounceSoundType = LEBS_NONE;
ADDRLP4 0
INDIRP4
CNSTI4 148
ADDP4
CNSTI4 0
ASGNI4
line 474
;474:	le->leMarkType = LEMT_NONE;
ADDRLP4 0
INDIRP4
CNSTI4 144
ADDP4
CNSTI4 0
ASGNI4
line 476
;475:
;476:	le->startTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 477
;477:	le->endTime = le->startTime + 600;
ADDRLP4 0
INDIRP4
CNSTI4 20
ADDP4
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
CNSTI4 600
ADDI4
ASGNI4
line 479
;478:
;479:	le->pos.trType = TR_GRAVITY;
ADDRLP4 0
INDIRP4
CNSTI4 32
ADDP4
CNSTI4 5
ASGNI4
line 480
;480:	le->pos.trTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 36
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 482
;481:
;482:	AnglesToAxis( cent->lerpAngles, v );
ADDRFP4 0
INDIRP4
CNSTI4 716
ADDP4
ARGP4
ADDRLP4 4
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 484
;483:
;484:	offset[0] = 2;
ADDRLP4 56
CNSTF4 1073741824
ASGNF4
line 485
;485:	offset[1] = 2;
ADDRLP4 56+4
CNSTF4 1073741824
ASGNF4
line 486
;486:	offset[2] = 2;
ADDRLP4 56+8
CNSTF4 1073741824
ASGNF4
line 488
;487:
;488:	xoffset[0] = offset[0] * v[0][0] + offset[1] * v[1][0] + offset[2] * v[2][0];
ADDRLP4 80
ADDRLP4 56
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ADDRLP4 56+4
INDIRF4
ADDRLP4 4+12
INDIRF4
MULF4
ADDF4
ADDRLP4 56+8
INDIRF4
ADDRLP4 4+24
INDIRF4
MULF4
ADDF4
ASGNF4
line 489
;489:	xoffset[1] = offset[0] * v[0][1] + offset[1] * v[1][1] + offset[2] * v[2][1];
ADDRLP4 80+4
ADDRLP4 56
INDIRF4
ADDRLP4 4+4
INDIRF4
MULF4
ADDRLP4 56+4
INDIRF4
ADDRLP4 4+12+4
INDIRF4
MULF4
ADDF4
ADDRLP4 56+8
INDIRF4
ADDRLP4 4+24+4
INDIRF4
MULF4
ADDF4
ASGNF4
line 490
;490:	xoffset[2] = offset[0] * v[0][2] + offset[1] * v[1][2] + offset[2] * v[2][2];
ADDRLP4 80+8
ADDRLP4 56
INDIRF4
ADDRLP4 4+8
INDIRF4
MULF4
ADDRLP4 56+4
INDIRF4
ADDRLP4 4+12+8
INDIRF4
MULF4
ADDF4
ADDRLP4 56+8
INDIRF4
ADDRLP4 4+24+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 492
;491:
;492:	VectorAdd( origin, xoffset, re->origin );
ADDRLP4 40
INDIRP4
CNSTI4 68
ADDP4
ADDRLP4 96
INDIRF4
ADDRLP4 80
INDIRF4
ADDF4
ASGNF4
ADDRLP4 40
INDIRP4
CNSTI4 72
ADDP4
ADDRLP4 96+4
INDIRF4
ADDRLP4 80+4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 40
INDIRP4
CNSTI4 76
ADDP4
ADDRLP4 96+8
INDIRF4
ADDRLP4 80+8
INDIRF4
ADDF4
ASGNF4
line 493
;493:	VectorCopy( re->origin, le->pos.trBase );
ADDRLP4 0
INDIRP4
CNSTI4 44
ADDP4
ADDRLP4 40
INDIRP4
CNSTI4 68
ADDP4
INDIRB
ASGNB 12
line 495
;494:
;495:	if ( CG_PointContents( re->origin, -1 ) & CONTENTS_WATER ) {
ADDRLP4 40
INDIRP4
CNSTI4 68
ADDP4
ARGP4
CNSTI4 -1
ARGI4
ADDRLP4 152
ADDRGP4 CG_PointContents
CALLI4
ASGNI4
ADDRLP4 152
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $383
line 496
;496:		waterScale = 0.10f;
ADDRLP4 92
CNSTF4 1036831949
ASGNF4
line 497
;497:	}
LABELV $383
line 499
;498:
;499:	xvelocity[0] = velocity[0] * v[0][0] + velocity[1] * v[1][0] + velocity[2] * v[2][0];
ADDRLP4 68
ADDRLP4 44
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ADDRLP4 44+4
INDIRF4
ADDRLP4 4+12
INDIRF4
MULF4
ADDF4
ADDRLP4 44+8
INDIRF4
ADDRLP4 4+24
INDIRF4
MULF4
ADDF4
ASGNF4
line 500
;500:	xvelocity[1] = velocity[0] * v[0][1] + velocity[1] * v[1][1] + velocity[2] * v[2][1];
ADDRLP4 68+4
ADDRLP4 44
INDIRF4
ADDRLP4 4+4
INDIRF4
MULF4
ADDRLP4 44+4
INDIRF4
ADDRLP4 4+12+4
INDIRF4
MULF4
ADDF4
ADDRLP4 44+8
INDIRF4
ADDRLP4 4+24+4
INDIRF4
MULF4
ADDF4
ASGNF4
line 501
;501:	xvelocity[2] = velocity[0] * v[0][2] + velocity[1] * v[1][2] + velocity[2] * v[2][2];
ADDRLP4 68+8
ADDRLP4 44
INDIRF4
ADDRLP4 4+8
INDIRF4
MULF4
ADDRLP4 44+4
INDIRF4
ADDRLP4 4+12+8
INDIRF4
MULF4
ADDF4
ADDRLP4 44+8
INDIRF4
ADDRLP4 4+24+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 502
;502:	VectorScale( xvelocity, waterScale, le->pos.trDelta );
ADDRLP4 0
INDIRP4
CNSTI4 56
ADDP4
ADDRLP4 68
INDIRF4
ADDRLP4 92
INDIRF4
MULF4
ASGNF4
ADDRLP4 0
INDIRP4
CNSTI4 60
ADDP4
ADDRLP4 68+4
INDIRF4
ADDRLP4 92
INDIRF4
MULF4
ASGNF4
ADDRLP4 0
INDIRP4
CNSTI4 64
ADDP4
ADDRLP4 68+8
INDIRF4
ADDRLP4 92
INDIRF4
MULF4
ASGNF4
line 504
;503:
;504:	AxisCopy( axisDefault, re->axis );
ADDRGP4 axisDefault
ARGP4
ADDRLP4 40
INDIRP4
CNSTI4 28
ADDP4
ARGP4
ADDRGP4 AxisCopy
CALLV
pop
line 505
;505:    re->shaderTime = cg.time / 1000.0f;
ADDRLP4 40
INDIRP4
CNSTI4 128
ADDP4
ADDRGP4 cg+107604
INDIRI4
CVIF4 4
CNSTF4 1148846080
DIVF4
ASGNF4
line 506
;506:    re->reType = RT_SPRITE;
ADDRLP4 40
INDIRP4
CNSTI4 2
ASGNI4
line 507
;507:    re->radius = 0.25f;
ADDRLP4 40
INDIRP4
CNSTI4 132
ADDP4
CNSTF4 1048576000
ASGNF4
line 508
;508:	re->customShader = cgs.media.railRingsShader;
ADDRLP4 40
INDIRP4
CNSTI4 112
ADDP4
ADDRGP4 cgs+152340+220
INDIRI4
ASGNI4
line 509
;509:	le->bounceFactor = 0.3f;
ADDRLP4 0
INDIRP4
CNSTI4 104
ADDP4
CNSTF4 1050253722
ASGNF4
line 511
;510:
;511:    re->shaderRGBA[0] = wi->flashDlightColor[0] * 63;
ADDRLP4 160
CNSTF4 1115422720
ADDRFP4 4
INDIRP4
CNSTI4 40
ADDP4
INDIRF4
MULF4
ASGNF4
ADDRLP4 164
CNSTF4 1325400064
ASGNF4
ADDRLP4 160
INDIRF4
ADDRLP4 164
INDIRF4
LTF4 $411
ADDRLP4 156
ADDRLP4 160
INDIRF4
ADDRLP4 164
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $412
JUMPV
LABELV $411
ADDRLP4 156
ADDRLP4 160
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $412
ADDRLP4 40
INDIRP4
CNSTI4 116
ADDP4
ADDRLP4 156
INDIRU4
CVUU1 4
ASGNU1
line 512
;512:    re->shaderRGBA[1] = wi->flashDlightColor[1] * 63;
ADDRLP4 172
CNSTF4 1115422720
ADDRFP4 4
INDIRP4
CNSTI4 44
ADDP4
INDIRF4
MULF4
ASGNF4
ADDRLP4 176
CNSTF4 1325400064
ASGNF4
ADDRLP4 172
INDIRF4
ADDRLP4 176
INDIRF4
LTF4 $414
ADDRLP4 168
ADDRLP4 172
INDIRF4
ADDRLP4 176
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $415
JUMPV
LABELV $414
ADDRLP4 168
ADDRLP4 172
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $415
ADDRLP4 40
INDIRP4
CNSTI4 117
ADDP4
ADDRLP4 168
INDIRU4
CVUU1 4
ASGNU1
line 513
;513:    re->shaderRGBA[2] = wi->flashDlightColor[2] * 63;
ADDRLP4 184
CNSTF4 1115422720
ADDRFP4 4
INDIRP4
CNSTI4 48
ADDP4
INDIRF4
MULF4
ASGNF4
ADDRLP4 188
CNSTF4 1325400064
ASGNF4
ADDRLP4 184
INDIRF4
ADDRLP4 188
INDIRF4
LTF4 $417
ADDRLP4 180
ADDRLP4 184
INDIRF4
ADDRLP4 188
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $418
JUMPV
LABELV $417
ADDRLP4 180
ADDRLP4 184
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $418
ADDRLP4 40
INDIRP4
CNSTI4 118
ADDP4
ADDRLP4 180
INDIRU4
CVUU1 4
ASGNU1
line 514
;514:    re->shaderRGBA[3] = 63;
ADDRLP4 40
INDIRP4
CNSTI4 119
ADDP4
CNSTU1 63
ASGNU1
line 516
;515:
;516:    le->color[0] = wi->flashDlightColor[0] * 0.2;
ADDRLP4 0
INDIRP4
CNSTI4 108
ADDP4
CNSTF4 1045220557
ADDRFP4 4
INDIRP4
CNSTI4 40
ADDP4
INDIRF4
MULF4
ASGNF4
line 517
;517:    le->color[1] = wi->flashDlightColor[1] * 0.2;
ADDRLP4 0
INDIRP4
CNSTI4 112
ADDP4
CNSTF4 1045220557
ADDRFP4 4
INDIRP4
CNSTI4 44
ADDP4
INDIRF4
MULF4
ASGNF4
line 518
;518:    le->color[2] = wi->flashDlightColor[2] * 0.2;
ADDRLP4 0
INDIRP4
CNSTI4 116
ADDP4
CNSTF4 1045220557
ADDRFP4 4
INDIRP4
CNSTI4 48
ADDP4
INDIRF4
MULF4
ASGNF4
line 519
;519:    le->color[3] = 0.25f;
ADDRLP4 0
INDIRP4
CNSTI4 120
ADDP4
CNSTF4 1048576000
ASGNF4
line 521
;520:
;521:	le->angles.trType = TR_LINEAR;
ADDRLP4 0
INDIRP4
CNSTI4 68
ADDP4
CNSTI4 2
ASGNI4
line 522
;522:	le->angles.trTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 72
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 523
;523:	le->angles.trBase[0] = rand()&31;
ADDRLP4 192
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 80
ADDP4
ADDRLP4 192
INDIRI4
CNSTI4 31
BANDI4
CVIF4 4
ASGNF4
line 524
;524:	le->angles.trBase[1] = rand()&31;
ADDRLP4 196
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 84
ADDP4
ADDRLP4 196
INDIRI4
CNSTI4 31
BANDI4
CVIF4 4
ASGNF4
line 525
;525:	le->angles.trBase[2] = rand()&31;
ADDRLP4 200
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 88
ADDP4
ADDRLP4 200
INDIRI4
CNSTI4 31
BANDI4
CVIF4 4
ASGNF4
line 526
;526:	le->angles.trDelta[0] = 1;
ADDRLP4 0
INDIRP4
CNSTI4 92
ADDP4
CNSTF4 1065353216
ASGNF4
line 527
;527:	le->angles.trDelta[1] = 0.5;
ADDRLP4 0
INDIRP4
CNSTI4 96
ADDP4
CNSTF4 1056964608
ASGNF4
line 528
;528:	le->angles.trDelta[2] = 0;
ADDRLP4 0
INDIRP4
CNSTI4 100
ADDP4
CNSTF4 0
ASGNF4
line 530
;529:
;530:}
LABELV $346
endproc CG_PlasmaTrail 204 12
export CG_GrappleTrail
proc CG_GrappleTrail 184 16
line 536
;531:/*
;532:==========================
;533:CG_GrappleTrail
;534:==========================
;535:*/
;536:void CG_GrappleTrail( centity_t *ent, const weaponInfo_t *wi ) {
line 542
;537:	vec3_t	origin;
;538:	entityState_t	*es;
;539:	vec3_t			forward, up;
;540:	refEntity_t		beam;
;541:
;542:	es = &ent->currentState;
ADDRLP4 164
ADDRFP4 0
INDIRP4
ASGNP4
line 544
;543:
;544:	BG_EvaluateTrajectory( &es->pos, cg.time, origin );
ADDRLP4 164
INDIRP4
CNSTI4 12
ADDP4
ARGP4
ADDRGP4 cg+107604
INDIRI4
ARGI4
ADDRLP4 152
ARGP4
ADDRGP4 BG_EvaluateTrajectory
CALLV
pop
line 545
;545:	ent->trailTime = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 436
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 547
;546:
;547:	memset( &beam, 0, sizeof( beam ) );
ADDRLP4 0
ARGP4
CNSTI4 0
ARGI4
CNSTI4 140
ARGI4
ADDRGP4 memset
CALLP4
pop
line 549
;548:	//FIXME adjust for muzzle position
;549:	VectorCopy ( cg_entities[ ent->currentState.otherEntityNum ].lerpOrigin, beam.origin );
ADDRLP4 0+68
CNSTI4 728
ADDRFP4 0
INDIRP4
CNSTI4 140
ADDP4
INDIRI4
MULI4
ADDRGP4 cg_entities+704
ADDP4
INDIRB
ASGNB 12
line 550
;550:	beam.origin[2] += 26;
ADDRLP4 0+68+8
ADDRLP4 0+68+8
INDIRF4
CNSTF4 1104150528
ADDF4
ASGNF4
line 551
;551:	AngleVectors( cg_entities[ ent->currentState.otherEntityNum ].lerpAngles, forward, NULL, up );
CNSTI4 728
ADDRFP4 0
INDIRP4
CNSTI4 140
ADDP4
INDIRI4
MULI4
ADDRGP4 cg_entities+716
ADDP4
ARGP4
ADDRLP4 168
ARGP4
CNSTP4 0
ARGP4
ADDRLP4 140
ARGP4
ADDRGP4 AngleVectors
CALLV
pop
line 552
;552:	VectorMA( beam.origin, -6, up, beam.origin );
ADDRLP4 0+68
ADDRLP4 0+68
INDIRF4
CNSTF4 3233808384
ADDRLP4 140
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+68+4
ADDRLP4 0+68+4
INDIRF4
CNSTF4 3233808384
ADDRLP4 140+4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+68+8
ADDRLP4 0+68+8
INDIRF4
CNSTF4 3233808384
ADDRLP4 140+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 553
;553:	VectorCopy( origin, beam.oldorigin );
ADDRLP4 0+84
ADDRLP4 152
INDIRB
ASGNB 12
line 555
;554:
;555:	if (Distance( beam.origin, beam.oldorigin ) < 64 )
ADDRLP4 0+68
ARGP4
ADDRLP4 0+84
ARGP4
ADDRLP4 180
ADDRGP4 Distance
CALLF4
ASGNF4
ADDRLP4 180
INDIRF4
CNSTF4 1115684864
GEF4 $441
line 556
;556:		return; // Don't draw if close
ADDRGP4 $420
JUMPV
LABELV $441
line 558
;557:
;558:	beam.reType = RT_LIGHTNING;
ADDRLP4 0
CNSTI4 6
ASGNI4
line 559
;559:	beam.customShader = cgs.media.lightningShader;
ADDRLP4 0+112
ADDRGP4 cgs+152340+228
INDIRI4
ASGNI4
line 561
;560:
;561:	AxisClear( beam.axis );
ADDRLP4 0+28
ARGP4
ADDRGP4 AxisClear
CALLV
pop
line 562
;562:	beam.shaderRGBA[0] = 0xff;
ADDRLP4 0+116
CNSTU1 255
ASGNU1
line 563
;563:	beam.shaderRGBA[1] = 0xff;
ADDRLP4 0+116+1
CNSTU1 255
ASGNU1
line 564
;564:	beam.shaderRGBA[2] = 0xff;
ADDRLP4 0+116+2
CNSTU1 255
ASGNU1
line 565
;565:	beam.shaderRGBA[3] = 0xff;
ADDRLP4 0+116+3
CNSTU1 255
ASGNU1
line 566
;566:	trap_R_AddRefEntityToScene( &beam );
ADDRLP4 0
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 567
;567:}
LABELV $420
endproc CG_GrappleTrail 184 16
proc CG_GrenadeTrail 0 8
line 574
;568:
;569:/*
;570:==========================
;571:CG_GrenadeTrail
;572:==========================
;573:*/
;574:static void CG_GrenadeTrail( centity_t *ent, const weaponInfo_t *wi ) {
line 575
;575:	CG_RocketTrail( ent, wi );
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 CG_RocketTrail
CALLV
pop
line 576
;576:}
LABELV $456
endproc CG_GrenadeTrail 0 8
export CG_RegisterWeapon
proc CG_RegisterWeapon 348 12
line 586
;577:
;578:
;579:/*
;580:=================
;581:CG_RegisterWeapon
;582:
;583:The server says this item is used on this level
;584:=================
;585:*/
;586:void CG_RegisterWeapon( int weaponNum ) {
line 593
;587:	weaponInfo_t	*weaponInfo;
;588:	gitem_t			*item, *ammo;
;589:	char			path[MAX_QPATH];
;590:	vec3_t			mins, maxs;
;591:	int				i;
;592:
;593:	weaponInfo = &cg_weapons[weaponNum];
ADDRLP4 12
CNSTI4 136
ADDRFP4 0
INDIRI4
MULI4
ADDRGP4 cg_weapons
ADDP4
ASGNP4
line 595
;594:
;595:	if ( weaponNum == 0 ) {
ADDRFP4 0
INDIRI4
CNSTI4 0
NEI4 $458
line 596
;596:		return;
ADDRGP4 $457
JUMPV
LABELV $458
line 599
;597:	}
;598:
;599:	if ( weaponInfo->registered ) {
ADDRLP4 12
INDIRP4
INDIRI4
CNSTI4 0
EQI4 $460
line 600
;600:		return;
ADDRGP4 $457
JUMPV
LABELV $460
line 603
;601:	}
;602:
;603:	memset( weaponInfo, 0, sizeof( *weaponInfo ) );
ADDRLP4 12
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 136
ARGI4
ADDRGP4 memset
CALLP4
pop
line 604
;604:	weaponInfo->registered = qtrue;
ADDRLP4 12
INDIRP4
CNSTI4 1
ASGNI4
line 606
;605:
;606:	for ( item = bg_itemlist + 1 ; item->classname ; item++ ) {
ADDRLP4 4
ADDRGP4 bg_itemlist+52
ASGNP4
ADDRGP4 $465
JUMPV
LABELV $462
line 607
;607:		if ( item->giType == IT_WEAPON && item->giTag == weaponNum ) {
ADDRLP4 4
INDIRP4
CNSTI4 36
ADDP4
INDIRI4
CNSTI4 1
NEI4 $467
ADDRLP4 4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ADDRFP4 0
INDIRI4
NEI4 $467
line 608
;608:			weaponInfo->item = item;
ADDRLP4 12
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 4
INDIRP4
ASGNP4
line 609
;609:			break;
ADDRGP4 $464
JUMPV
LABELV $467
line 611
;610:		}
;611:	}
LABELV $463
line 606
ADDRLP4 4
ADDRLP4 4
INDIRP4
CNSTI4 52
ADDP4
ASGNP4
LABELV $465
ADDRLP4 4
INDIRP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $462
LABELV $464
line 612
;612:	if ( !item->classname ) {
ADDRLP4 4
INDIRP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $469
line 613
;613:		CG_Error( "Couldn't find weapon %i", weaponNum );
ADDRGP4 $471
ARGP4
ADDRFP4 0
INDIRI4
ARGI4
ADDRGP4 CG_Error
CALLV
pop
line 614
;614:	}
LABELV $469
line 615
;615:	CG_RegisterItemVisuals( item - bg_itemlist );
ADDRLP4 4
INDIRP4
CVPU4 4
ADDRGP4 bg_itemlist
CVPU4 4
SUBU4
CVUI4 4
CNSTI4 52
DIVI4
ARGI4
ADDRGP4 CG_RegisterItemVisuals
CALLV
pop
line 618
;616:
;617:	// load cmodel before model so filecache works
;618:	weaponInfo->weaponModel = trap_R_RegisterModel( item->world_model[0] );
ADDRLP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRP4
ARGP4
ADDRLP4 104
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 12
ADDP4
ADDRLP4 104
INDIRI4
ASGNI4
line 621
;619:
;620:	// calc midpoint for rotation
;621:	trap_R_ModelBounds( weaponInfo->weaponModel, mins, maxs );
ADDRLP4 12
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
ARGI4
ADDRLP4 16
ARGP4
ADDRLP4 92
ARGP4
ADDRGP4 trap_R_ModelBounds
CALLV
pop
line 622
;622:	for ( i = 0 ; i < 3 ; i++ ) {
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $472
line 623
;623:		weaponInfo->weaponMidpoint[i] = mins[i] + 0.5 * ( maxs[i] - mins[i] );
ADDRLP4 108
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 112
ADDRLP4 108
INDIRI4
ADDRLP4 16
ADDP4
INDIRF4
ASGNF4
ADDRLP4 108
INDIRI4
ADDRLP4 12
INDIRP4
CNSTI4 24
ADDP4
ADDP4
ADDRLP4 112
INDIRF4
CNSTF4 1056964608
ADDRLP4 108
INDIRI4
ADDRLP4 92
ADDP4
INDIRF4
ADDRLP4 112
INDIRF4
SUBF4
MULF4
ADDF4
ASGNF4
line 624
;624:	}
LABELV $473
line 622
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 3
LTI4 $472
line 626
;625:
;626:	weaponInfo->weaponIcon = trap_R_RegisterShader( item->icon );
ADDRLP4 4
INDIRP4
CNSTI4 24
ADDP4
INDIRP4
ARGP4
ADDRLP4 108
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 68
ADDP4
ADDRLP4 108
INDIRI4
ASGNI4
line 627
;627:	weaponInfo->ammoIcon = trap_R_RegisterShader( item->icon );
ADDRLP4 4
INDIRP4
CNSTI4 24
ADDP4
INDIRP4
ARGP4
ADDRLP4 112
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 72
ADDP4
ADDRLP4 112
INDIRI4
ASGNI4
line 629
;628:
;629:	for ( ammo = bg_itemlist + 1 ; ammo->classname ; ammo++ ) {
ADDRLP4 8
ADDRGP4 bg_itemlist+52
ASGNP4
ADDRGP4 $479
JUMPV
LABELV $476
line 630
;630:		if ( ammo->giType == IT_AMMO && ammo->giTag == weaponNum ) {
ADDRLP4 8
INDIRP4
CNSTI4 36
ADDP4
INDIRI4
CNSTI4 2
NEI4 $481
ADDRLP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ADDRFP4 0
INDIRI4
NEI4 $481
line 631
;631:			break;
ADDRGP4 $478
JUMPV
LABELV $481
line 633
;632:		}
;633:	}
LABELV $477
line 629
ADDRLP4 8
ADDRLP4 8
INDIRP4
CNSTI4 52
ADDP4
ASGNP4
LABELV $479
ADDRLP4 8
INDIRP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $476
LABELV $478
line 634
;634:	if ( ammo->classname && ammo->world_model[0] ) {
ADDRLP4 120
CNSTU4 0
ASGNU4
ADDRLP4 8
INDIRP4
INDIRP4
CVPU4 4
ADDRLP4 120
INDIRU4
EQU4 $483
ADDRLP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRP4
CVPU4 4
ADDRLP4 120
INDIRU4
EQU4 $483
line 635
;635:		weaponInfo->ammoModel = trap_R_RegisterModel( ammo->world_model[0] );
ADDRLP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRP4
ARGP4
ADDRLP4 124
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 76
ADDP4
ADDRLP4 124
INDIRI4
ASGNI4
line 636
;636:	}
LABELV $483
line 638
;637:
;638:	strcpy( path, item->world_model[0] );
ADDRLP4 28
ARGP4
ADDRLP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRP4
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 639
;639:	COM_StripExtension( path, path );
ADDRLP4 28
ARGP4
ADDRLP4 28
ARGP4
ADDRGP4 COM_StripExtension
CALLV
pop
line 640
;640:	strcat( path, "_flash.md3" );
ADDRLP4 28
ARGP4
ADDRGP4 $485
ARGP4
ADDRGP4 strcat
CALLP4
pop
line 641
;641:	weaponInfo->flashModel = trap_R_RegisterModel( path );
ADDRLP4 28
ARGP4
ADDRLP4 124
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 20
ADDP4
ADDRLP4 124
INDIRI4
ASGNI4
line 643
;642:
;643:	strcpy( path, item->world_model[0] );
ADDRLP4 28
ARGP4
ADDRLP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRP4
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 644
;644:	COM_StripExtension( path, path );
ADDRLP4 28
ARGP4
ADDRLP4 28
ARGP4
ADDRGP4 COM_StripExtension
CALLV
pop
line 645
;645:	strcat( path, "_barrel.md3" );
ADDRLP4 28
ARGP4
ADDRGP4 $486
ARGP4
ADDRGP4 strcat
CALLP4
pop
line 646
;646:	weaponInfo->barrelModel = trap_R_RegisterModel( path );
ADDRLP4 28
ARGP4
ADDRLP4 128
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 16
ADDP4
ADDRLP4 128
INDIRI4
ASGNI4
line 648
;647:
;648:	strcpy( path, item->world_model[0] );
ADDRLP4 28
ARGP4
ADDRLP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRP4
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 649
;649:	COM_StripExtension( path, path );
ADDRLP4 28
ARGP4
ADDRLP4 28
ARGP4
ADDRGP4 COM_StripExtension
CALLV
pop
line 650
;650:	strcat( path, "_hand.md3" );
ADDRLP4 28
ARGP4
ADDRGP4 $487
ARGP4
ADDRGP4 strcat
CALLP4
pop
line 651
;651:	weaponInfo->handsModel = trap_R_RegisterModel( path );
ADDRLP4 28
ARGP4
ADDRLP4 132
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 132
INDIRI4
ASGNI4
line 653
;652:
;653:	if ( !weaponInfo->handsModel ) {
ADDRLP4 12
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 0
NEI4 $488
line 654
;654:		weaponInfo->handsModel = trap_R_RegisterModel( "models/weapons2/shotgun/shotgun_hand.md3" );
ADDRGP4 $490
ARGP4
ADDRLP4 136
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 136
INDIRI4
ASGNI4
line 655
;655:	}
LABELV $488
line 657
;656:
;657:	weaponInfo->loopFireSound = qfalse;
ADDRLP4 12
INDIRP4
CNSTI4 132
ADDP4
CNSTI4 0
ASGNI4
line 659
;658:
;659:	switch ( weaponNum ) {
ADDRLP4 136
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 136
INDIRI4
CNSTI4 1
LTI4 $491
ADDRLP4 136
INDIRI4
CNSTI4 13
GTI4 $491
ADDRLP4 136
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 $582-4
ADDP4
INDIRP4
JUMPV
lit
align 4
LABELV $582
address $493
address $526
address $533
address $547
address $535
address $496
address $564
address $555
address $575
address $515
address $552
address $541
address $517
code
LABELV $493
line 661
;660:	case WP_GAUNTLET:
;661:		MAKERGB( weaponInfo->flashDlightColor, 0.6f, 0.6f, 1.0f );
ADDRLP4 12
INDIRP4
CNSTI4 40
ADDP4
CNSTF4 1058642330
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 44
ADDP4
CNSTF4 1058642330
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 48
ADDP4
CNSTF4 1065353216
ASGNF4
line 662
;662:		weaponInfo->firingSound = trap_S_RegisterSound( "sound/weapons/melee/fstrun.wav", qfalse );
ADDRGP4 $494
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 140
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 128
ADDP4
ADDRLP4 140
INDIRI4
ASGNI4
line 663
;663:		weaponInfo->flashSound[0] = trap_S_RegisterSound( "sound/weapons/melee/fstatck.wav", qfalse );
ADDRGP4 $495
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 144
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 144
INDIRI4
ASGNI4
line 664
;664:		break;
ADDRGP4 $492
JUMPV
LABELV $496
line 667
;665:
;666:	case WP_LIGHTNING:
;667:		MAKERGB( weaponInfo->flashDlightColor, 0.6f, 0.6f, 1.0f );
ADDRLP4 12
INDIRP4
CNSTI4 40
ADDP4
CNSTF4 1058642330
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 44
ADDP4
CNSTF4 1058642330
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 48
ADDP4
CNSTF4 1065353216
ASGNF4
line 668
;668:		weaponInfo->readySound = trap_S_RegisterSound( "sound/weapons/melee/fsthum.wav", qfalse );
ADDRGP4 $497
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 148
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 124
ADDP4
ADDRLP4 148
INDIRI4
ASGNI4
line 669
;669:		weaponInfo->firingSound = trap_S_RegisterSound( "sound/weapons/lightning/lg_hum.wav", qfalse );
ADDRGP4 $498
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 152
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 128
ADDP4
ADDRLP4 152
INDIRI4
ASGNI4
line 671
;670:
;671:		weaponInfo->flashSound[0] = trap_S_RegisterSound( "sound/weapons/lightning/lg_fire.wav", qfalse );
ADDRGP4 $499
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 156
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 156
INDIRI4
ASGNI4
line 672
;672:		cgs.media.lightningShader = trap_R_RegisterShader( "lightningBoltNew");
ADDRGP4 $502
ARGP4
ADDRLP4 160
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+228
ADDRLP4 160
INDIRI4
ASGNI4
line 673
;673:		cgs.media.lightningExplosionModel = trap_R_RegisterModel( "models/weaphits/crackle.md3" );
ADDRGP4 $505
ARGP4
ADDRLP4 164
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRGP4 cgs+152340+484
ADDRLP4 164
INDIRI4
ASGNI4
line 674
;674:		cgs.media.sfx_lghit1 = trap_S_RegisterSound( "sound/weapons/lightning/lg_hit.wav", qfalse );
ADDRGP4 $508
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 168
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRGP4 cgs+152340+752
ADDRLP4 168
INDIRI4
ASGNI4
line 675
;675:		cgs.media.sfx_lghit2 = trap_S_RegisterSound( "sound/weapons/lightning/lg_hit2.wav", qfalse );
ADDRGP4 $511
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 172
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRGP4 cgs+152340+756
ADDRLP4 172
INDIRI4
ASGNI4
line 676
;676:		cgs.media.sfx_lghit3 = trap_S_RegisterSound( "sound/weapons/lightning/lg_hit3.wav", qfalse );
ADDRGP4 $514
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 176
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRGP4 cgs+152340+760
ADDRLP4 176
INDIRI4
ASGNI4
line 678
;677:
;678:		break;
ADDRGP4 $492
JUMPV
LABELV $515
line 681
;679:
;680:	case WP_GRAPPLING_HOOK:
;681:		MAKERGB( weaponInfo->flashDlightColor, 0.6f, 0.6f, 1.0f );
ADDRLP4 12
INDIRP4
CNSTI4 40
ADDP4
CNSTF4 1058642330
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 44
ADDP4
CNSTF4 1058642330
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 48
ADDP4
CNSTF4 1065353216
ASGNF4
line 682
;682:		weaponInfo->missileModel = trap_R_RegisterModel( "models/ammo/rocket/rocket.md3" );
ADDRGP4 $516
ARGP4
ADDRLP4 180
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 80
ADDP4
ADDRLP4 180
INDIRI4
ASGNI4
line 683
;683:		weaponInfo->missileTrailFunc = CG_GrappleTrail;
ADDRLP4 12
INDIRP4
CNSTI4 88
ADDP4
ADDRGP4 CG_GrappleTrail
ASGNP4
line 684
;684:		weaponInfo->missileDlight = 200;
ADDRLP4 12
INDIRP4
CNSTI4 92
ADDP4
CNSTF4 1128792064
ASGNF4
line 685
;685:		weaponInfo->wiTrailTime = 2000;
ADDRLP4 12
INDIRP4
CNSTI4 120
ADDP4
CNSTF4 1157234688
ASGNF4
line 686
;686:		weaponInfo->trailRadius = 64;
ADDRLP4 12
INDIRP4
CNSTI4 116
ADDP4
CNSTF4 1115684864
ASGNF4
line 687
;687:		MAKERGB( weaponInfo->missileDlightColor, 1, 0.75f, 0 );
ADDRLP4 12
INDIRP4
CNSTI4 96
ADDP4
CNSTF4 1065353216
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 100
ADDP4
CNSTF4 1061158912
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 104
ADDP4
CNSTF4 0
ASGNF4
line 688
;688:		weaponInfo->readySound = trap_S_RegisterSound( "sound/weapons/melee/fsthum.wav", qfalse );
ADDRGP4 $497
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 184
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 124
ADDP4
ADDRLP4 184
INDIRI4
ASGNI4
line 689
;689:		weaponInfo->firingSound = trap_S_RegisterSound( "sound/weapons/melee/fstrun.wav", qfalse );
ADDRGP4 $494
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 188
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 128
ADDP4
ADDRLP4 188
INDIRI4
ASGNI4
line 690
;690:		break;
ADDRGP4 $492
JUMPV
LABELV $517
line 694
;691:
;692:#ifdef MISSIONPACK
;693:	case WP_CHAINGUN:
;694:		weaponInfo->firingSound = trap_S_RegisterSound( "sound/weapons/vulcan/wvulfire.wav", qfalse );
ADDRGP4 $518
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 192
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 128
ADDP4
ADDRLP4 192
INDIRI4
ASGNI4
line 695
;695:		weaponInfo->loopFireSound = qtrue;
ADDRLP4 12
INDIRP4
CNSTI4 132
ADDP4
CNSTI4 1
ASGNI4
line 696
;696:		MAKERGB( weaponInfo->flashDlightColor, 1, 1, 0 );
ADDRLP4 12
INDIRP4
CNSTI4 40
ADDP4
CNSTF4 1065353216
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 44
ADDP4
CNSTF4 1065353216
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 48
ADDP4
CNSTF4 0
ASGNF4
line 697
;697:		weaponInfo->flashSound[0] = trap_S_RegisterSound( "sound/weapons/vulcan/vulcanf1b.wav", qfalse );
ADDRGP4 $519
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 196
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 196
INDIRI4
ASGNI4
line 698
;698:		weaponInfo->flashSound[1] = trap_S_RegisterSound( "sound/weapons/vulcan/vulcanf2b.wav", qfalse );
ADDRGP4 $520
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 200
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 56
ADDP4
ADDRLP4 200
INDIRI4
ASGNI4
line 699
;699:		weaponInfo->flashSound[2] = trap_S_RegisterSound( "sound/weapons/vulcan/vulcanf3b.wav", qfalse );
ADDRGP4 $521
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 204
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 60
ADDP4
ADDRLP4 204
INDIRI4
ASGNI4
line 700
;700:		weaponInfo->flashSound[3] = trap_S_RegisterSound( "sound/weapons/vulcan/vulcanf4b.wav", qfalse );
ADDRGP4 $522
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 208
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 64
ADDP4
ADDRLP4 208
INDIRI4
ASGNI4
line 701
;701:		weaponInfo->ejectBrassFunc = CG_MachineGunEjectBrass;
ADDRLP4 12
INDIRP4
CNSTI4 112
ADDP4
ADDRGP4 CG_MachineGunEjectBrass
ASGNP4
line 702
;702:		cgs.media.bulletExplosionShader = trap_R_RegisterShader( "bulletExplosion" );
ADDRGP4 $525
ARGP4
ADDRLP4 212
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+496
ADDRLP4 212
INDIRI4
ASGNI4
line 703
;703:		break;
ADDRGP4 $492
JUMPV
LABELV $526
line 707
;704:#endif
;705:
;706:	case WP_MACHINEGUN:
;707:		MAKERGB( weaponInfo->flashDlightColor, 1, 1, 0 );
ADDRLP4 12
INDIRP4
CNSTI4 40
ADDP4
CNSTF4 1065353216
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 44
ADDP4
CNSTF4 1065353216
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 48
ADDP4
CNSTF4 0
ASGNF4
line 708
;708:		weaponInfo->flashSound[0] = trap_S_RegisterSound( "sound/weapons/machinegun/machgf1b.wav", qfalse );
ADDRGP4 $527
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 216
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 216
INDIRI4
ASGNI4
line 709
;709:		weaponInfo->flashSound[1] = trap_S_RegisterSound( "sound/weapons/machinegun/machgf2b.wav", qfalse );
ADDRGP4 $528
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 220
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 56
ADDP4
ADDRLP4 220
INDIRI4
ASGNI4
line 710
;710:		weaponInfo->flashSound[2] = trap_S_RegisterSound( "sound/weapons/machinegun/machgf3b.wav", qfalse );
ADDRGP4 $529
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 224
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 60
ADDP4
ADDRLP4 224
INDIRI4
ASGNI4
line 711
;711:		weaponInfo->flashSound[3] = trap_S_RegisterSound( "sound/weapons/machinegun/machgf4b.wav", qfalse );
ADDRGP4 $530
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 228
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 64
ADDP4
ADDRLP4 228
INDIRI4
ASGNI4
line 712
;712:		weaponInfo->ejectBrassFunc = CG_MachineGunEjectBrass;
ADDRLP4 12
INDIRP4
CNSTI4 112
ADDP4
ADDRGP4 CG_MachineGunEjectBrass
ASGNP4
line 713
;713:		cgs.media.bulletExplosionShader = trap_R_RegisterShader( "bulletExplosion" );
ADDRGP4 $525
ARGP4
ADDRLP4 232
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+496
ADDRLP4 232
INDIRI4
ASGNI4
line 714
;714:		break;
ADDRGP4 $492
JUMPV
LABELV $533
line 717
;715:
;716:	case WP_SHOTGUN:
;717:		MAKERGB( weaponInfo->flashDlightColor, 1, 1, 0 );
ADDRLP4 12
INDIRP4
CNSTI4 40
ADDP4
CNSTF4 1065353216
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 44
ADDP4
CNSTF4 1065353216
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 48
ADDP4
CNSTF4 0
ASGNF4
line 718
;718:		weaponInfo->flashSound[0] = trap_S_RegisterSound( "sound/weapons/shotgun/sshotf1b.wav", qfalse );
ADDRGP4 $534
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 236
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 236
INDIRI4
ASGNI4
line 719
;719:		weaponInfo->ejectBrassFunc = CG_ShotgunEjectBrass;
ADDRLP4 12
INDIRP4
CNSTI4 112
ADDP4
ADDRGP4 CG_ShotgunEjectBrass
ASGNP4
line 720
;720:		break;
ADDRGP4 $492
JUMPV
LABELV $535
line 723
;721:
;722:	case WP_ROCKET_LAUNCHER:
;723:		weaponInfo->missileModel = trap_R_RegisterModel( "models/ammo/rocket/rocket.md3" );
ADDRGP4 $516
ARGP4
ADDRLP4 240
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 80
ADDP4
ADDRLP4 240
INDIRI4
ASGNI4
line 724
;724:		weaponInfo->missileSound = trap_S_RegisterSound( "sound/weapons/rocket/rockfly.wav", qfalse );
ADDRGP4 $536
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 244
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 84
ADDP4
ADDRLP4 244
INDIRI4
ASGNI4
line 725
;725:		weaponInfo->missileTrailFunc = CG_RocketTrail;
ADDRLP4 12
INDIRP4
CNSTI4 88
ADDP4
ADDRGP4 CG_RocketTrail
ASGNP4
line 726
;726:		weaponInfo->missileDlight = 200;
ADDRLP4 12
INDIRP4
CNSTI4 92
ADDP4
CNSTF4 1128792064
ASGNF4
line 727
;727:		weaponInfo->wiTrailTime = 2000;
ADDRLP4 12
INDIRP4
CNSTI4 120
ADDP4
CNSTF4 1157234688
ASGNF4
line 728
;728:		weaponInfo->trailRadius = 64;
ADDRLP4 12
INDIRP4
CNSTI4 116
ADDP4
CNSTF4 1115684864
ASGNF4
line 730
;729:		
;730:		MAKERGB( weaponInfo->missileDlightColor, 1, 0.75f, 0 );
ADDRLP4 12
INDIRP4
CNSTI4 96
ADDP4
CNSTF4 1065353216
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 100
ADDP4
CNSTF4 1061158912
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 104
ADDP4
CNSTF4 0
ASGNF4
line 731
;731:		MAKERGB( weaponInfo->flashDlightColor, 1, 0.75f, 0 );
ADDRLP4 12
INDIRP4
CNSTI4 40
ADDP4
CNSTF4 1065353216
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 44
ADDP4
CNSTF4 1061158912
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 48
ADDP4
CNSTF4 0
ASGNF4
line 733
;732:
;733:		weaponInfo->flashSound[0] = trap_S_RegisterSound( "sound/weapons/rocket/rocklf1a.wav", qfalse );
ADDRGP4 $537
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 248
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 248
INDIRI4
ASGNI4
line 734
;734:		cgs.media.rocketExplosionShader = trap_R_RegisterShader( "rocketExplosion" );
ADDRGP4 $540
ARGP4
ADDRLP4 252
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+500
ADDRLP4 252
INDIRI4
ASGNI4
line 735
;735:		break;
ADDRGP4 $492
JUMPV
LABELV $541
line 739
;736:
;737:#ifdef MISSIONPACK
;738:	case WP_PROX_LAUNCHER:
;739:		weaponInfo->missileModel = trap_R_RegisterModel( "models/weaphits/proxmine.md3" );
ADDRGP4 $542
ARGP4
ADDRLP4 256
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 80
ADDP4
ADDRLP4 256
INDIRI4
ASGNI4
line 740
;740:		weaponInfo->missileTrailFunc = CG_GrenadeTrail;
ADDRLP4 12
INDIRP4
CNSTI4 88
ADDP4
ADDRGP4 CG_GrenadeTrail
ASGNP4
line 741
;741:		weaponInfo->wiTrailTime = 700;
ADDRLP4 12
INDIRP4
CNSTI4 120
ADDP4
CNSTF4 1143930880
ASGNF4
line 742
;742:		weaponInfo->trailRadius = 32;
ADDRLP4 12
INDIRP4
CNSTI4 116
ADDP4
CNSTF4 1107296256
ASGNF4
line 743
;743:		MAKERGB( weaponInfo->flashDlightColor, 1, 0.70f, 0 );
ADDRLP4 12
INDIRP4
CNSTI4 40
ADDP4
CNSTF4 1065353216
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 44
ADDP4
CNSTF4 1060320051
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 48
ADDP4
CNSTF4 0
ASGNF4
line 744
;744:		weaponInfo->flashSound[0] = trap_S_RegisterSound( "sound/weapons/proxmine/wstbfire.wav", qfalse );
ADDRGP4 $543
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 260
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 260
INDIRI4
ASGNI4
line 745
;745:		cgs.media.grenadeExplosionShader = trap_R_RegisterShader( "grenadeExplosion" );
ADDRGP4 $546
ARGP4
ADDRLP4 264
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+504
ADDRLP4 264
INDIRI4
ASGNI4
line 746
;746:		break;
ADDRGP4 $492
JUMPV
LABELV $547
line 750
;747:#endif
;748:
;749:	case WP_GRENADE_LAUNCHER:
;750:		weaponInfo->missileModel = trap_R_RegisterModel( "models/ammo/grenade1.md3" );
ADDRGP4 $548
ARGP4
ADDRLP4 268
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 80
ADDP4
ADDRLP4 268
INDIRI4
ASGNI4
line 751
;751:		weaponInfo->missileTrailFunc = CG_GrenadeTrail;
ADDRLP4 12
INDIRP4
CNSTI4 88
ADDP4
ADDRGP4 CG_GrenadeTrail
ASGNP4
line 752
;752:		weaponInfo->wiTrailTime = 700;
ADDRLP4 12
INDIRP4
CNSTI4 120
ADDP4
CNSTF4 1143930880
ASGNF4
line 753
;753:		weaponInfo->trailRadius = 32;
ADDRLP4 12
INDIRP4
CNSTI4 116
ADDP4
CNSTF4 1107296256
ASGNF4
line 754
;754:		MAKERGB( weaponInfo->flashDlightColor, 1, 0.70f, 0 );
ADDRLP4 12
INDIRP4
CNSTI4 40
ADDP4
CNSTF4 1065353216
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 44
ADDP4
CNSTF4 1060320051
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 48
ADDP4
CNSTF4 0
ASGNF4
line 755
;755:		weaponInfo->flashSound[0] = trap_S_RegisterSound( "sound/weapons/grenade/grenlf1a.wav", qfalse );
ADDRGP4 $549
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 272
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 272
INDIRI4
ASGNI4
line 756
;756:		cgs.media.grenadeExplosionShader = trap_R_RegisterShader( "grenadeExplosion" );
ADDRGP4 $546
ARGP4
ADDRLP4 276
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+504
ADDRLP4 276
INDIRI4
ASGNI4
line 757
;757:		break;
ADDRGP4 $492
JUMPV
LABELV $552
line 761
;758:
;759:#ifdef MISSIONPACK
;760:	case WP_NAILGUN:
;761:		weaponInfo->ejectBrassFunc = CG_NailgunEjectBrass;
ADDRLP4 12
INDIRP4
CNSTI4 112
ADDP4
ADDRGP4 CG_NailgunEjectBrass
ASGNP4
line 762
;762:		weaponInfo->missileTrailFunc = CG_NailTrail;
ADDRLP4 12
INDIRP4
CNSTI4 88
ADDP4
ADDRGP4 CG_NailTrail
ASGNP4
line 764
;763://		weaponInfo->missileSound = trap_S_RegisterSound( "sound/weapons/nailgun/wnalflit.wav", qfalse );
;764:		weaponInfo->trailRadius = 16;
ADDRLP4 12
INDIRP4
CNSTI4 116
ADDP4
CNSTF4 1098907648
ASGNF4
line 765
;765:		weaponInfo->wiTrailTime = 250;
ADDRLP4 12
INDIRP4
CNSTI4 120
ADDP4
CNSTF4 1132068864
ASGNF4
line 766
;766:		weaponInfo->missileModel = trap_R_RegisterModel( "models/weaphits/nail.md3" );
ADDRGP4 $553
ARGP4
ADDRLP4 280
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 80
ADDP4
ADDRLP4 280
INDIRI4
ASGNI4
line 767
;767:		MAKERGB( weaponInfo->flashDlightColor, 1, 0.75f, 0 );
ADDRLP4 12
INDIRP4
CNSTI4 40
ADDP4
CNSTF4 1065353216
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 44
ADDP4
CNSTF4 1061158912
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 48
ADDP4
CNSTF4 0
ASGNF4
line 768
;768:		weaponInfo->flashSound[0] = trap_S_RegisterSound( "sound/weapons/nailgun/wnalfire.wav", qfalse );
ADDRGP4 $554
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 284
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 284
INDIRI4
ASGNI4
line 769
;769:		break;
ADDRGP4 $492
JUMPV
LABELV $555
line 774
;770:#endif
;771:
;772:	case WP_PLASMAGUN:
;773://		weaponInfo->missileModel = cgs.media.invulnerabilityPowerupModel;
;774:		weaponInfo->missileTrailFunc = CG_PlasmaTrail;
ADDRLP4 12
INDIRP4
CNSTI4 88
ADDP4
ADDRGP4 CG_PlasmaTrail
ASGNP4
line 775
;775:		weaponInfo->missileSound = trap_S_RegisterSound( "sound/weapons/plasma/lasfly.wav", qfalse );
ADDRGP4 $556
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 288
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 84
ADDP4
ADDRLP4 288
INDIRI4
ASGNI4
line 776
;776:		MAKERGB( weaponInfo->flashDlightColor, 0.6f, 0.6f, 1.0f );
ADDRLP4 12
INDIRP4
CNSTI4 40
ADDP4
CNSTF4 1058642330
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 44
ADDP4
CNSTF4 1058642330
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 48
ADDP4
CNSTF4 1065353216
ASGNF4
line 777
;777:		weaponInfo->flashSound[0] = trap_S_RegisterSound( "sound/weapons/plasma/hyprbf1a.wav", qfalse );
ADDRGP4 $557
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 292
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 292
INDIRI4
ASGNI4
line 778
;778:		cgs.media.plasmaExplosionShader = trap_R_RegisterShader( "plasmaExplosion" );
ADDRGP4 $560
ARGP4
ADDRLP4 296
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+492
ADDRLP4 296
INDIRI4
ASGNI4
line 779
;779:		cgs.media.railRingsShader = trap_R_RegisterShader( "railDisc" );
ADDRGP4 $563
ARGP4
ADDRLP4 300
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+220
ADDRLP4 300
INDIRI4
ASGNI4
line 780
;780:		break;
ADDRGP4 $492
JUMPV
LABELV $564
line 783
;781:
;782:	case WP_RAILGUN:
;783:		weaponInfo->readySound = trap_S_RegisterSound( "sound/weapons/railgun/rg_hum.wav", qfalse );
ADDRGP4 $565
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 304
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 124
ADDP4
ADDRLP4 304
INDIRI4
ASGNI4
line 784
;784:		MAKERGB( weaponInfo->flashDlightColor, 1, 0.5f, 0 );
ADDRLP4 12
INDIRP4
CNSTI4 40
ADDP4
CNSTF4 1065353216
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 44
ADDP4
CNSTF4 1056964608
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 48
ADDP4
CNSTF4 0
ASGNF4
line 785
;785:		weaponInfo->flashSound[0] = trap_S_RegisterSound( "sound/weapons/railgun/railgf1a.wav", qfalse );
ADDRGP4 $566
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 308
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 308
INDIRI4
ASGNI4
line 786
;786:		cgs.media.railExplosionShader = trap_R_RegisterShader( "railExplosion" );
ADDRGP4 $569
ARGP4
ADDRLP4 312
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+488
ADDRLP4 312
INDIRI4
ASGNI4
line 787
;787:		cgs.media.railRingsShader = trap_R_RegisterShader( "railDisc" );
ADDRGP4 $563
ARGP4
ADDRLP4 316
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+220
ADDRLP4 316
INDIRI4
ASGNI4
line 788
;788:		cgs.media.railCoreShader = trap_R_RegisterShader( "railCore" );
ADDRGP4 $574
ARGP4
ADDRLP4 320
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+224
ADDRLP4 320
INDIRI4
ASGNI4
line 789
;789:		break;
ADDRGP4 $492
JUMPV
LABELV $575
line 792
;790:
;791:	case WP_BFG:
;792:		weaponInfo->readySound = trap_S_RegisterSound( "sound/weapons/bfg/bfg_hum.wav", qfalse );
ADDRGP4 $576
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 324
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 124
ADDP4
ADDRLP4 324
INDIRI4
ASGNI4
line 793
;793:		MAKERGB( weaponInfo->flashDlightColor, 1, 0.7f, 1 );
ADDRLP4 12
INDIRP4
CNSTI4 40
ADDP4
CNSTF4 1065353216
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 44
ADDP4
CNSTF4 1060320051
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 48
ADDP4
CNSTF4 1065353216
ASGNF4
line 794
;794:		weaponInfo->flashSound[0] = trap_S_RegisterSound( "sound/weapons/bfg/bfg_fire.wav", qfalse );
ADDRGP4 $577
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 328
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 328
INDIRI4
ASGNI4
line 795
;795:		cgs.media.bfgExplosionShader = trap_R_RegisterShader( "bfgExplosion" );
ADDRGP4 $580
ARGP4
ADDRLP4 332
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+508
ADDRLP4 332
INDIRI4
ASGNI4
line 796
;796:		weaponInfo->missileModel = trap_R_RegisterModel( "models/weaphits/bfg.md3" );
ADDRGP4 $581
ARGP4
ADDRLP4 336
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 80
ADDP4
ADDRLP4 336
INDIRI4
ASGNI4
line 797
;797:		weaponInfo->missileSound = trap_S_RegisterSound( "sound/weapons/rocket/rockfly.wav", qfalse );
ADDRGP4 $536
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 340
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 84
ADDP4
ADDRLP4 340
INDIRI4
ASGNI4
line 798
;798:		break;
ADDRGP4 $492
JUMPV
LABELV $491
line 801
;799:
;800:	 default:
;801:		MAKERGB( weaponInfo->flashDlightColor, 1, 1, 1 );
ADDRLP4 12
INDIRP4
CNSTI4 40
ADDP4
CNSTF4 1065353216
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 44
ADDP4
CNSTF4 1065353216
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 48
ADDP4
CNSTF4 1065353216
ASGNF4
line 802
;802:		weaponInfo->flashSound[0] = trap_S_RegisterSound( "sound/weapons/rocket/rocklf1a.wav", qfalse );
ADDRGP4 $537
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 344
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 344
INDIRI4
ASGNI4
line 803
;803:		break;
LABELV $492
line 805
;804:	}
;805:}
LABELV $457
endproc CG_RegisterWeapon 348 12
export CG_RegisterItemVisuals
proc CG_RegisterItemVisuals 28 12
line 814
;806:
;807:/*
;808:=================
;809:CG_RegisterItemVisuals
;810:
;811:The server says this item is used on this level
;812:=================
;813:*/
;814:void CG_RegisterItemVisuals( int itemNum ) {
line 818
;815:	itemInfo_t		*itemInfo;
;816:	gitem_t			*item;
;817:
;818:	if ( itemNum < 0 || itemNum >= bg_numItems ) {
ADDRLP4 8
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 8
INDIRI4
CNSTI4 0
LTI4 $587
ADDRLP4 8
INDIRI4
ADDRGP4 bg_numItems
INDIRI4
LTI4 $585
LABELV $587
line 819
;819:		CG_Error( "CG_RegisterItemVisuals: itemNum %d out of range [0-%d]", itemNum, bg_numItems-1 );
ADDRGP4 $588
ARGP4
ADDRFP4 0
INDIRI4
ARGI4
ADDRGP4 bg_numItems
INDIRI4
CNSTI4 1
SUBI4
ARGI4
ADDRGP4 CG_Error
CALLV
pop
line 820
;820:	}
LABELV $585
line 822
;821:
;822:	itemInfo = &cg_items[ itemNum ];
ADDRLP4 4
CNSTI4 24
ADDRFP4 0
INDIRI4
MULI4
ADDRGP4 cg_items
ADDP4
ASGNP4
line 823
;823:	if ( itemInfo->registered ) {
ADDRLP4 4
INDIRP4
INDIRI4
CNSTI4 0
EQI4 $589
line 824
;824:		return;
ADDRGP4 $584
JUMPV
LABELV $589
line 827
;825:	}
;826:
;827:	item = &bg_itemlist[ itemNum ];
ADDRLP4 0
CNSTI4 52
ADDRFP4 0
INDIRI4
MULI4
ADDRGP4 bg_itemlist
ADDP4
ASGNP4
line 829
;828:
;829:	memset( itemInfo, 0, sizeof( &itemInfo ) );
ADDRLP4 4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 4
ARGI4
ADDRGP4 memset
CALLP4
pop
line 830
;830:	itemInfo->registered = qtrue;
ADDRLP4 4
INDIRP4
CNSTI4 1
ASGNI4
line 832
;831:
;832:	itemInfo->models[0] = trap_R_RegisterModel( item->world_model[0] );
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRP4
ARGP4
ADDRLP4 12
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 4
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 12
INDIRI4
ASGNI4
line 834
;833:
;834:	itemInfo->icon = trap_R_RegisterShader( item->icon );
ADDRLP4 0
INDIRP4
CNSTI4 24
ADDP4
INDIRP4
ARGP4
ADDRLP4 16
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRLP4 4
INDIRP4
CNSTI4 20
ADDP4
ADDRLP4 16
INDIRI4
ASGNI4
line 836
;835:
;836:	if ( item->giType == IT_WEAPON ) {
ADDRLP4 0
INDIRP4
CNSTI4 36
ADDP4
INDIRI4
CNSTI4 1
NEI4 $591
line 837
;837:		CG_RegisterWeapon( item->giTag );
ADDRLP4 0
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_RegisterWeapon
CALLV
pop
line 838
;838:	}
LABELV $591
line 843
;839:
;840:	//
;841:	// powerups have an accompanying ring or sphere
;842:	//
;843:	if ( item->giType == IT_POWERUP || item->giType == IT_HEALTH || 
ADDRLP4 20
ADDRLP4 0
INDIRP4
CNSTI4 36
ADDP4
INDIRI4
ASGNI4
ADDRLP4 20
INDIRI4
CNSTI4 5
EQI4 $597
ADDRLP4 20
INDIRI4
CNSTI4 4
EQI4 $597
ADDRLP4 20
INDIRI4
CNSTI4 3
EQI4 $597
ADDRLP4 20
INDIRI4
CNSTI4 6
NEI4 $593
LABELV $597
line 844
;844:		item->giType == IT_ARMOR || item->giType == IT_HOLDABLE ) {
line 845
;845:		if ( item->world_model[1] ) {
ADDRLP4 0
INDIRP4
CNSTI4 12
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $598
line 846
;846:			itemInfo->models[1] = trap_R_RegisterModel( item->world_model[1] );
ADDRLP4 0
INDIRP4
CNSTI4 12
ADDP4
INDIRP4
ARGP4
ADDRLP4 24
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 4
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 24
INDIRI4
ASGNI4
line 847
;847:		}
LABELV $598
line 848
;848:	}
LABELV $593
line 849
;849:}
LABELV $584
endproc CG_RegisterItemVisuals 28 12
proc CG_MapTorsoToWeaponFrame 24 0
line 866
;850:
;851:
;852:/*
;853:========================================================================================
;854:
;855:VIEW WEAPON
;856:
;857:========================================================================================
;858:*/
;859:
;860:/*
;861:=================
;862:CG_MapTorsoToWeaponFrame
;863:
;864:=================
;865:*/
;866:static int CG_MapTorsoToWeaponFrame( clientInfo_t *ci, int frame ) {
line 869
;867:
;868:	// change weapon
;869:	if ( frame >= ci->animations[TORSO_DROP].firstFrame 
ADDRLP4 0
ADDRFP4 4
INDIRI4
ASGNI4
ADDRLP4 4
ADDRFP4 0
INDIRP4
CNSTI4 796
ADDP4
INDIRI4
ASGNI4
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRI4
LTI4 $601
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRI4
CNSTI4 9
ADDI4
GEI4 $601
line 870
;870:		&& frame < ci->animations[TORSO_DROP].firstFrame + 9 ) {
line 871
;871:		return frame - ci->animations[TORSO_DROP].firstFrame + 6;
ADDRFP4 4
INDIRI4
ADDRFP4 0
INDIRP4
CNSTI4 796
ADDP4
INDIRI4
SUBI4
CNSTI4 6
ADDI4
RETI4
ADDRGP4 $600
JUMPV
LABELV $601
line 875
;872:	}
;873:
;874:	// stand attack
;875:	if ( frame >= ci->animations[TORSO_ATTACK].firstFrame 
ADDRLP4 8
ADDRFP4 4
INDIRI4
ASGNI4
ADDRLP4 12
ADDRFP4 0
INDIRP4
CNSTI4 740
ADDP4
INDIRI4
ASGNI4
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRI4
LTI4 $603
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRI4
CNSTI4 6
ADDI4
GEI4 $603
line 876
;876:		&& frame < ci->animations[TORSO_ATTACK].firstFrame + 6 ) {
line 877
;877:		return 1 + frame - ci->animations[TORSO_ATTACK].firstFrame;
ADDRFP4 4
INDIRI4
CNSTI4 1
ADDI4
ADDRFP4 0
INDIRP4
CNSTI4 740
ADDP4
INDIRI4
SUBI4
RETI4
ADDRGP4 $600
JUMPV
LABELV $603
line 881
;878:	}
;879:
;880:	// stand attack 2
;881:	if ( frame >= ci->animations[TORSO_ATTACK2].firstFrame 
ADDRLP4 16
ADDRFP4 4
INDIRI4
ASGNI4
ADDRLP4 20
ADDRFP4 0
INDIRP4
CNSTI4 768
ADDP4
INDIRI4
ASGNI4
ADDRLP4 16
INDIRI4
ADDRLP4 20
INDIRI4
LTI4 $605
ADDRLP4 16
INDIRI4
ADDRLP4 20
INDIRI4
CNSTI4 6
ADDI4
GEI4 $605
line 882
;882:		&& frame < ci->animations[TORSO_ATTACK2].firstFrame + 6 ) {
line 883
;883:		return 1 + frame - ci->animations[TORSO_ATTACK2].firstFrame;
ADDRFP4 4
INDIRI4
CNSTI4 1
ADDI4
ADDRFP4 0
INDIRP4
CNSTI4 768
ADDP4
INDIRI4
SUBI4
RETI4
ADDRGP4 $600
JUMPV
LABELV $605
line 886
;884:	}
;885:	
;886:	return 0;
CNSTI4 0
RETI4
LABELV $600
endproc CG_MapTorsoToWeaponFrame 24 0
proc CG_CalculateWeaponPosition 40 4
line 895
;887:}
;888:
;889:
;890:/*
;891:==============
;892:CG_CalculateWeaponPosition
;893:==============
;894:*/
;895:static void CG_CalculateWeaponPosition( vec3_t origin, vec3_t angles ) {
line 900
;896:	float	scale;
;897:	int		delta;
;898:	float	fracsin;
;899:
;900:	VectorCopy( cg.refdef.vieworg, origin );
ADDRFP4 0
INDIRP4
ADDRGP4 cg+109044+24
INDIRB
ASGNB 12
line 901
;901:	VectorCopy( cg.refdefViewAngles, angles );
ADDRFP4 4
INDIRP4
ADDRGP4 cg+109412
INDIRB
ASGNB 12
line 904
;902:
;903:	// on odd legs, invert some angles
;904:	if ( cg.bobcycle & 1 ) {
ADDRGP4 cg+124772
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $611
line 905
;905:		scale = -cg.xyspeed;
ADDRLP4 0
ADDRGP4 cg+124776
INDIRF4
NEGF4
ASGNF4
line 906
;906:	} else {
ADDRGP4 $612
JUMPV
LABELV $611
line 907
;907:		scale = cg.xyspeed;
ADDRLP4 0
ADDRGP4 cg+124776
INDIRF4
ASGNF4
line 908
;908:	}
LABELV $612
line 911
;909:
;910:	// gun angles from bobbing
;911:	angles[ROLL] += scale * cg.bobfracsin * 0.005;
ADDRLP4 12
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 12
INDIRP4
ADDRLP4 12
INDIRP4
INDIRF4
CNSTF4 1000593162
ADDRLP4 0
INDIRF4
ADDRGP4 cg+124768
INDIRF4
MULF4
MULF4
ADDF4
ASGNF4
line 912
;912:	angles[YAW] += scale * cg.bobfracsin * 0.01;
ADDRLP4 16
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
ASGNP4
ADDRLP4 16
INDIRP4
ADDRLP4 16
INDIRP4
INDIRF4
CNSTF4 1008981770
ADDRLP4 0
INDIRF4
ADDRGP4 cg+124768
INDIRF4
MULF4
MULF4
ADDF4
ASGNF4
line 913
;913:	angles[PITCH] += cg.xyspeed * cg.bobfracsin * 0.005;
ADDRLP4 20
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
ADDRLP4 20
INDIRP4
INDIRF4
CNSTF4 1000593162
ADDRGP4 cg+124776
INDIRF4
ADDRGP4 cg+124768
INDIRF4
MULF4
MULF4
ADDF4
ASGNF4
line 916
;914:
;915:	// drop the weapon when landing
;916:	delta = cg.time - cg.landTime;
ADDRLP4 8
ADDRGP4 cg+107604
INDIRI4
ADDRGP4 cg+108940
INDIRI4
SUBI4
ASGNI4
line 917
;917:	if ( delta < LAND_DEFLECT_TIME ) {
ADDRLP4 8
INDIRI4
CNSTI4 150
GEI4 $622
line 918
;918:		origin[2] += cg.landChange*0.25 * delta / LAND_DEFLECT_TIME;
ADDRLP4 24
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 24
INDIRP4
ADDRLP4 24
INDIRP4
INDIRF4
CNSTF4 1048576000
ADDRGP4 cg+108936
INDIRF4
MULF4
ADDRLP4 8
INDIRI4
CVIF4 4
MULF4
CNSTF4 1125515264
DIVF4
ADDF4
ASGNF4
line 919
;919:	} else if ( delta < LAND_DEFLECT_TIME + LAND_RETURN_TIME ) {
ADDRGP4 $623
JUMPV
LABELV $622
ADDRLP4 8
INDIRI4
CNSTI4 450
GEI4 $625
line 920
;920:		origin[2] += cg.landChange*0.25 * 
ADDRLP4 24
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 24
INDIRP4
ADDRLP4 24
INDIRP4
INDIRF4
CNSTF4 1048576000
ADDRGP4 cg+108936
INDIRF4
MULF4
CNSTI4 450
ADDRLP4 8
INDIRI4
SUBI4
CVIF4 4
MULF4
CNSTF4 1133903872
DIVF4
ADDF4
ASGNF4
line 922
;921:			(LAND_DEFLECT_TIME + LAND_RETURN_TIME - delta) / LAND_RETURN_TIME;
;922:	}
LABELV $625
LABELV $623
line 935
;923:
;924:#if 0
;925:	// drop the weapon when stair climbing
;926:	delta = cg.time - cg.stepTime;
;927:	if ( delta < STEP_TIME/2 ) {
;928:		origin[2] -= cg.stepChange*0.25 * delta / (STEP_TIME/2);
;929:	} else if ( delta < STEP_TIME ) {
;930:		origin[2] -= cg.stepChange*0.25 * (STEP_TIME - delta) / (STEP_TIME/2);
;931:	}
;932:#endif
;933:
;934:	// idle drift
;935:	scale = cg.xyspeed + 40;
ADDRLP4 0
ADDRGP4 cg+124776
INDIRF4
CNSTF4 1109393408
ADDF4
ASGNF4
line 936
;936:	fracsin = sin( cg.time * 0.001 );
CNSTF4 981668463
ADDRGP4 cg+107604
INDIRI4
CVIF4 4
MULF4
ARGF4
ADDRLP4 24
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 4
ADDRLP4 24
INDIRF4
ASGNF4
line 937
;937:	angles[ROLL] += scale * fracsin * 0.01;
ADDRLP4 28
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 28
INDIRP4
ADDRLP4 28
INDIRP4
INDIRF4
CNSTF4 1008981770
ADDRLP4 0
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
MULF4
ADDF4
ASGNF4
line 938
;938:	angles[YAW] += scale * fracsin * 0.01;
ADDRLP4 32
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
ASGNP4
ADDRLP4 32
INDIRP4
ADDRLP4 32
INDIRP4
INDIRF4
CNSTF4 1008981770
ADDRLP4 0
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
MULF4
ADDF4
ASGNF4
line 939
;939:	angles[PITCH] += scale * fracsin * 0.01;
ADDRLP4 36
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 36
INDIRP4
ADDRLP4 36
INDIRP4
INDIRF4
CNSTF4 1008981770
ADDRLP4 0
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
MULF4
ADDF4
ASGNF4
line 940
;940:}
LABELV $607
endproc CG_CalculateWeaponPosition 40 4
proc CG_LightningBolt 280 28
line 954
;941:
;942:
;943:/*
;944:===============
;945:CG_LightningBolt
;946:
;947:Origin will be the exact tag point, which is slightly
;948:different than the muzzle point used for determining hits.
;949:The cent should be the non-predicted cent if it is from the player,
;950:so the endpoint will reflect the simulated strike (lagging the predicted
;951:angle)
;952:===============
;953:*/
;954:static void CG_LightningBolt( centity_t *cent, vec3_t origin ) {
line 960
;955:	trace_t  trace;
;956:	refEntity_t  beam;
;957:	vec3_t   forward;
;958:	vec3_t   muzzlePoint, endPoint;
;959:
;960:	if (cent->currentState.weapon != WP_LIGHTNING) {
ADDRFP4 0
INDIRP4
CNSTI4 192
ADDP4
INDIRI4
CNSTI4 6
EQI4 $631
line 961
;961:		return;
ADDRGP4 $630
JUMPV
LABELV $631
line 964
;962:	}
;963:
;964:	memset( &beam, 0, sizeof( beam ) );
ADDRLP4 0
ARGP4
CNSTI4 0
ARGI4
CNSTI4 140
ARGI4
ADDRGP4 memset
CALLP4
pop
line 967
;965:
;966:	// CPMA  "true" lightning
;967:	if ((cent->currentState.number == cg.predictedPlayerState.clientNum) && (cg_trueLightning.value != 0)) {
ADDRFP4 0
INDIRP4
INDIRI4
ADDRGP4 cg+107636+140
INDIRI4
NEI4 $633
ADDRGP4 cg_trueLightning+8
INDIRF4
CNSTF4 0
EQF4 $633
line 971
;968:		vec3_t angle;
;969:		int i;
;970:
;971:		for (i = 0; i < 3; i++) {
ADDRLP4 232
CNSTI4 0
ASGNI4
LABELV $638
line 972
;972:			float a = cent->lerpAngles[i] - cg.refdefViewAngles[i];
ADDRLP4 252
ADDRLP4 232
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 248
ADDRLP4 252
INDIRI4
ADDRFP4 0
INDIRP4
CNSTI4 716
ADDP4
ADDP4
INDIRF4
ADDRLP4 252
INDIRI4
ADDRGP4 cg+109412
ADDP4
INDIRF4
SUBF4
ASGNF4
line 973
;973:			if (a > 180) {
ADDRLP4 248
INDIRF4
CNSTF4 1127481344
LEF4 $643
line 974
;974:				a -= 360;
ADDRLP4 248
ADDRLP4 248
INDIRF4
CNSTF4 1135869952
SUBF4
ASGNF4
line 975
;975:			}
LABELV $643
line 976
;976:			if (a < -180) {
ADDRLP4 248
INDIRF4
CNSTF4 3274964992
GEF4 $645
line 977
;977:				a += 360;
ADDRLP4 248
ADDRLP4 248
INDIRF4
CNSTF4 1135869952
ADDF4
ASGNF4
line 978
;978:			}
LABELV $645
line 980
;979:
;980:			angle[i] = cg.refdefViewAngles[i] + a * (1.0 - cg_trueLightning.value);
ADDRLP4 256
ADDRLP4 232
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 256
INDIRI4
ADDRLP4 236
ADDP4
ADDRLP4 256
INDIRI4
ADDRGP4 cg+109412
ADDP4
INDIRF4
ADDRLP4 248
INDIRF4
CNSTF4 1065353216
ADDRGP4 cg_trueLightning+8
INDIRF4
SUBF4
MULF4
ADDF4
ASGNF4
line 981
;981:			if (angle[i] < 0) {
ADDRLP4 232
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 236
ADDP4
INDIRF4
CNSTF4 0
GEF4 $649
line 982
;982:				angle[i] += 360;
ADDRLP4 260
ADDRLP4 232
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 236
ADDP4
ASGNP4
ADDRLP4 260
INDIRP4
ADDRLP4 260
INDIRP4
INDIRF4
CNSTF4 1135869952
ADDF4
ASGNF4
line 983
;983:			}
LABELV $649
line 984
;984:			if (angle[i] > 360) {
ADDRLP4 232
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 236
ADDP4
INDIRF4
CNSTF4 1135869952
LEF4 $651
line 985
;985:				angle[i] -= 360;
ADDRLP4 260
ADDRLP4 232
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 236
ADDP4
ASGNP4
ADDRLP4 260
INDIRP4
ADDRLP4 260
INDIRP4
INDIRF4
CNSTF4 1135869952
SUBF4
ASGNF4
line 986
;986:			}
LABELV $651
line 987
;987:		}
LABELV $639
line 971
ADDRLP4 232
ADDRLP4 232
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 232
INDIRI4
CNSTI4 3
LTI4 $638
line 989
;988:
;989:		AngleVectors(angle, forward, NULL, NULL );
ADDRLP4 236
ARGP4
ADDRLP4 152
ARGP4
ADDRLP4 248
CNSTP4 0
ASGNP4
ADDRLP4 248
INDIRP4
ARGP4
ADDRLP4 248
INDIRP4
ARGP4
ADDRGP4 AngleVectors
CALLV
pop
line 990
;990:		VectorCopy(cent->lerpOrigin, muzzlePoint );
ADDRLP4 140
ADDRFP4 0
INDIRP4
CNSTI4 704
ADDP4
INDIRB
ASGNB 12
line 992
;991://		VectorCopy(cg.refdef.vieworg, muzzlePoint );
;992:	} else {
ADDRGP4 $634
JUMPV
LABELV $633
line 994
;993:		// !CPMA
;994:		AngleVectors( cent->lerpAngles, forward, NULL, NULL );
ADDRFP4 0
INDIRP4
CNSTI4 716
ADDP4
ARGP4
ADDRLP4 152
ARGP4
ADDRLP4 232
CNSTP4 0
ASGNP4
ADDRLP4 232
INDIRP4
ARGP4
ADDRLP4 232
INDIRP4
ARGP4
ADDRGP4 AngleVectors
CALLV
pop
line 995
;995:		VectorCopy(cent->lerpOrigin, muzzlePoint );
ADDRLP4 140
ADDRFP4 0
INDIRP4
CNSTI4 704
ADDP4
INDIRB
ASGNB 12
line 996
;996:	}
LABELV $634
line 999
;997:
;998:	// FIXME: crouch
;999:	muzzlePoint[2] += DEFAULT_VIEWHEIGHT;
ADDRLP4 140+8
ADDRLP4 140+8
INDIRF4
CNSTF4 1104150528
ADDF4
ASGNF4
line 1001
;1000:
;1001:	VectorMA( muzzlePoint, 14, forward, muzzlePoint );
ADDRLP4 232
CNSTF4 1096810496
ASGNF4
ADDRLP4 140
ADDRLP4 140
INDIRF4
ADDRLP4 232
INDIRF4
ADDRLP4 152
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 140+4
ADDRLP4 140+4
INDIRF4
ADDRLP4 232
INDIRF4
ADDRLP4 152+4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 140+8
ADDRLP4 140+8
INDIRF4
CNSTF4 1096810496
ADDRLP4 152+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 1004
;1002:
;1003:	// project forward by the lightning range
;1004:	VectorMA( muzzlePoint, LIGHTNING_RANGE, forward, endPoint );
ADDRLP4 236
CNSTF4 1145044992
ASGNF4
ADDRLP4 220
ADDRLP4 140
INDIRF4
ADDRLP4 236
INDIRF4
ADDRLP4 152
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 220+4
ADDRLP4 140+4
INDIRF4
ADDRLP4 236
INDIRF4
ADDRLP4 152+4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 220+8
ADDRLP4 140+8
INDIRF4
CNSTF4 1145044992
ADDRLP4 152+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 1007
;1005:
;1006:	// see if it hit a wall
;1007:	CG_Trace( &trace, muzzlePoint, vec3_origin, vec3_origin, endPoint, 
ADDRLP4 164
ARGP4
ADDRLP4 140
ARGP4
ADDRLP4 240
ADDRGP4 vec3_origin
ASGNP4
ADDRLP4 240
INDIRP4
ARGP4
ADDRLP4 240
INDIRP4
ARGP4
ADDRLP4 220
ARGP4
ADDRFP4 0
INDIRP4
INDIRI4
ARGI4
CNSTI4 100663297
ARGI4
ADDRGP4 CG_Trace
CALLV
pop
line 1011
;1008:		cent->currentState.number, MASK_SHOT );
;1009:
;1010:	// this is the endpoint
;1011:	VectorCopy( trace.endpos, beam.oldorigin );
ADDRLP4 0+84
ADDRLP4 164+12
INDIRB
ASGNB 12
line 1015
;1012:
;1013:	// use the provided origin, even though it may be slightly
;1014:	// different than the muzzle origin
;1015:	VectorCopy( origin, beam.origin );
ADDRLP4 0+68
ADDRFP4 4
INDIRP4
INDIRB
ASGNB 12
line 1017
;1016:
;1017:	beam.reType = RT_LIGHTNING;
ADDRLP4 0
CNSTI4 6
ASGNI4
line 1018
;1018:	beam.customShader = cgs.media.lightningShader;
ADDRLP4 0+112
ADDRGP4 cgs+152340+228
INDIRI4
ASGNI4
line 1019
;1019:	trap_R_AddRefEntityToScene( &beam );
ADDRLP4 0
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 1022
;1020:
;1021:	// add the impact flare if it hit something
;1022:	if ( trace.fraction < 1.0 ) {
ADDRLP4 164+8
INDIRF4
CNSTF4 1065353216
GEF4 $672
line 1026
;1023:		vec3_t	angles;
;1024:		vec3_t	dir;
;1025:
;1026:		VectorSubtract( beam.oldorigin, beam.origin, dir );
ADDRLP4 244
ADDRLP4 0+84
INDIRF4
ADDRLP4 0+68
INDIRF4
SUBF4
ASGNF4
ADDRLP4 244+4
ADDRLP4 0+84+4
INDIRF4
ADDRLP4 0+68+4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 244+8
ADDRLP4 0+84+8
INDIRF4
ADDRLP4 0+68+8
INDIRF4
SUBF4
ASGNF4
line 1027
;1027:		VectorNormalize( dir );
ADDRLP4 244
ARGP4
ADDRGP4 VectorNormalize
CALLF4
pop
line 1029
;1028:
;1029:		memset( &beam, 0, sizeof( beam ) );
ADDRLP4 0
ARGP4
CNSTI4 0
ARGI4
CNSTI4 140
ARGI4
ADDRGP4 memset
CALLP4
pop
line 1030
;1030:		beam.hModel = cgs.media.lightningExplosionModel;
ADDRLP4 0+8
ADDRGP4 cgs+152340+484
INDIRI4
ASGNI4
line 1032
;1031:
;1032:		VectorMA( trace.endpos, -16, dir, beam.origin );
ADDRLP4 0+68
ADDRLP4 164+12
INDIRF4
CNSTF4 3246391296
ADDRLP4 244
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+68+4
ADDRLP4 164+12+4
INDIRF4
CNSTF4 3246391296
ADDRLP4 244+4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+68+8
ADDRLP4 164+12+8
INDIRF4
CNSTF4 3246391296
ADDRLP4 244+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 1035
;1033:
;1034:		// make a random orientation
;1035:		angles[0] = rand() % 360;
ADDRLP4 268
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 256
ADDRLP4 268
INDIRI4
CNSTI4 360
MODI4
CVIF4 4
ASGNF4
line 1036
;1036:		angles[1] = rand() % 360;
ADDRLP4 272
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 256+4
ADDRLP4 272
INDIRI4
CNSTI4 360
MODI4
CVIF4 4
ASGNF4
line 1037
;1037:		angles[2] = rand() % 360;
ADDRLP4 276
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 256+8
ADDRLP4 276
INDIRI4
CNSTI4 360
MODI4
CVIF4 4
ASGNF4
line 1038
;1038:		AnglesToAxis( angles, beam.axis );
ADDRLP4 256
ARGP4
ADDRLP4 0+28
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 1039
;1039:		trap_R_AddRefEntityToScene( &beam );
ADDRLP4 0
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 1040
;1040:	}
LABELV $672
line 1041
;1041:}
LABELV $630
endproc CG_LightningBolt 280 28
proc CG_SpawnRailTrail 4 12
line 1114
;1042:/*
;1043:
;1044:static void CG_LightningBolt( centity_t *cent, vec3_t origin ) {
;1045:	trace_t		trace;
;1046:	refEntity_t		beam;
;1047:	vec3_t			forward;
;1048:	vec3_t			muzzlePoint, endPoint;
;1049:
;1050:	if ( cent->currentState.weapon != WP_LIGHTNING ) {
;1051:		return;
;1052:	}
;1053:
;1054:	memset( &beam, 0, sizeof( beam ) );
;1055:
;1056:	// find muzzle point for this frame
;1057:	VectorCopy( cent->lerpOrigin, muzzlePoint );
;1058:	AngleVectors( cent->lerpAngles, forward, NULL, NULL );
;1059:
;1060:	// FIXME: crouch
;1061:	muzzlePoint[2] += DEFAULT_VIEWHEIGHT;
;1062:
;1063:	VectorMA( muzzlePoint, 14, forward, muzzlePoint );
;1064:
;1065:	// project forward by the lightning range
;1066:	VectorMA( muzzlePoint, LIGHTNING_RANGE, forward, endPoint );
;1067:
;1068:	// see if it hit a wall
;1069:	CG_Trace( &trace, muzzlePoint, vec3_origin, vec3_origin, endPoint, 
;1070:		cent->currentState.number, MASK_SHOT );
;1071:
;1072:	// this is the endpoint
;1073:	VectorCopy( trace.endpos, beam.oldorigin );
;1074:
;1075:	// use the provided origin, even though it may be slightly
;1076:	// different than the muzzle origin
;1077:	VectorCopy( origin, beam.origin );
;1078:
;1079:	beam.reType = RT_LIGHTNING;
;1080:	beam.customShader = cgs.media.lightningShader;
;1081:	trap_R_AddRefEntityToScene( &beam );
;1082:
;1083:	// add the impact flare if it hit something
;1084:	if ( trace.fraction < 1.0 ) {
;1085:		vec3_t	angles;
;1086:		vec3_t	dir;
;1087:
;1088:		VectorSubtract( beam.oldorigin, beam.origin, dir );
;1089:		VectorNormalize( dir );
;1090:
;1091:		memset( &beam, 0, sizeof( beam ) );
;1092:		beam.hModel = cgs.media.lightningExplosionModel;
;1093:
;1094:		VectorMA( trace.endpos, -16, dir, beam.origin );
;1095:
;1096:		// make a random orientation
;1097:		angles[0] = rand() % 360;
;1098:		angles[1] = rand() % 360;
;1099:		angles[2] = rand() % 360;
;1100:		AnglesToAxis( angles, beam.axis );
;1101:		trap_R_AddRefEntityToScene( &beam );
;1102:	}
;1103:}
;1104:*/
;1105:
;1106:/*
;1107:===============
;1108:CG_SpawnRailTrail
;1109:
;1110:Origin will be the exact tag point, which is slightly
;1111:different than the muzzle point used for determining hits.
;1112:===============
;1113:*/
;1114:static void CG_SpawnRailTrail( centity_t *cent, vec3_t origin ) {
line 1117
;1115:	clientInfo_t	*ci;
;1116:
;1117:	if ( cent->currentState.weapon != WP_RAILGUN ) {
ADDRFP4 0
INDIRP4
CNSTI4 192
ADDP4
INDIRI4
CNSTI4 7
EQI4 $706
line 1118
;1118:		return;
ADDRGP4 $705
JUMPV
LABELV $706
line 1120
;1119:	}
;1120:	if ( !cent->pe.railgunFlash ) {
ADDRFP4 0
INDIRP4
CNSTI4 620
ADDP4
INDIRI4
CNSTI4 0
NEI4 $708
line 1121
;1121:		return;
ADDRGP4 $705
JUMPV
LABELV $708
line 1123
;1122:	}
;1123:	cent->pe.railgunFlash = qtrue;
ADDRFP4 0
INDIRP4
CNSTI4 620
ADDP4
CNSTI4 1
ASGNI4
line 1124
;1124:	ci = &cgs.clientinfo[ cent->currentState.clientNum ];
ADDRLP4 0
CNSTI4 1708
ADDRFP4 0
INDIRP4
CNSTI4 168
ADDP4
INDIRI4
MULI4
ADDRGP4 cgs+40972
ADDP4
ASGNP4
line 1125
;1125:	CG_RailTrail( ci, origin, cent->pe.railgunImpact );
ADDRLP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 0
INDIRP4
CNSTI4 608
ADDP4
ARGP4
ADDRGP4 CG_RailTrail
CALLV
pop
line 1126
;1126:}
LABELV $705
endproc CG_SpawnRailTrail 4 12
proc CG_MachinegunSpinAngle 40 16
line 1136
;1127:
;1128:
;1129:/*
;1130:======================
;1131:CG_MachinegunSpinAngle
;1132:======================
;1133:*/
;1134:#define		SPIN_SPEED	0.9
;1135:#define		COAST_TIME	1000
;1136:static float	CG_MachinegunSpinAngle( centity_t *cent ) {
line 1141
;1137:	int		delta;
;1138:	float	angle;
;1139:	float	speed;
;1140:
;1141:	delta = cg.time - cent->pe.barrelTime;
ADDRLP4 0
ADDRGP4 cg+107604
INDIRI4
ADDRFP4 0
INDIRP4
CNSTI4 628
ADDP4
INDIRI4
SUBI4
ASGNI4
line 1142
;1142:	if ( cent->pe.barrelSpinning ) {
ADDRFP4 0
INDIRP4
CNSTI4 632
ADDP4
INDIRI4
CNSTI4 0
EQI4 $713
line 1143
;1143:		angle = cent->pe.barrelAngle + delta * SPIN_SPEED;
ADDRLP4 4
ADDRFP4 0
INDIRP4
CNSTI4 624
ADDP4
INDIRF4
CNSTF4 1063675494
ADDRLP4 0
INDIRI4
CVIF4 4
MULF4
ADDF4
ASGNF4
line 1144
;1144:	} else {
ADDRGP4 $714
JUMPV
LABELV $713
line 1145
;1145:		if ( delta > COAST_TIME ) {
ADDRLP4 0
INDIRI4
CNSTI4 1000
LEI4 $715
line 1146
;1146:			delta = COAST_TIME;
ADDRLP4 0
CNSTI4 1000
ASGNI4
line 1147
;1147:		}
LABELV $715
line 1149
;1148:
;1149:		speed = 0.5 * ( SPIN_SPEED + (float)( COAST_TIME - delta ) / COAST_TIME );
ADDRLP4 8
CNSTF4 1056964608
CNSTI4 1000
ADDRLP4 0
INDIRI4
SUBI4
CVIF4 4
CNSTF4 1148846080
DIVF4
CNSTF4 1063675494
ADDF4
MULF4
ASGNF4
line 1150
;1150:		angle = cent->pe.barrelAngle + delta * speed;
ADDRLP4 4
ADDRFP4 0
INDIRP4
CNSTI4 624
ADDP4
INDIRF4
ADDRLP4 0
INDIRI4
CVIF4 4
ADDRLP4 8
INDIRF4
MULF4
ADDF4
ASGNF4
line 1151
;1151:	}
LABELV $714
line 1153
;1152:
;1153:	if ( cent->pe.barrelSpinning == !(cent->currentState.eFlags & EF_FIRING) ) {
ADDRLP4 16
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 16
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 256
BANDI4
CNSTI4 0
NEI4 $720
ADDRLP4 12
CNSTI4 1
ASGNI4
ADDRGP4 $721
JUMPV
LABELV $720
ADDRLP4 12
CNSTI4 0
ASGNI4
LABELV $721
ADDRLP4 16
INDIRP4
CNSTI4 632
ADDP4
INDIRI4
ADDRLP4 12
INDIRI4
NEI4 $717
line 1154
;1154:		cent->pe.barrelTime = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 628
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 1155
;1155:		cent->pe.barrelAngle = AngleMod( angle );
ADDRLP4 4
INDIRF4
ARGF4
ADDRLP4 20
ADDRGP4 AngleMod
CALLF4
ASGNF4
ADDRFP4 0
INDIRP4
CNSTI4 624
ADDP4
ADDRLP4 20
INDIRF4
ASGNF4
line 1156
;1156:		cent->pe.barrelSpinning = !!(cent->currentState.eFlags & EF_FIRING);
ADDRLP4 28
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 28
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 256
BANDI4
CNSTI4 0
EQI4 $724
ADDRLP4 24
CNSTI4 1
ASGNI4
ADDRGP4 $725
JUMPV
LABELV $724
ADDRLP4 24
CNSTI4 0
ASGNI4
LABELV $725
ADDRLP4 28
INDIRP4
CNSTI4 632
ADDP4
ADDRLP4 24
INDIRI4
ASGNI4
line 1158
;1157:#ifdef MISSIONPACK
;1158:		if ( cent->currentState.weapon == WP_CHAINGUN && !cent->pe.barrelSpinning ) {
ADDRLP4 32
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 32
INDIRP4
CNSTI4 192
ADDP4
INDIRI4
CNSTI4 13
NEI4 $726
ADDRLP4 32
INDIRP4
CNSTI4 632
ADDP4
INDIRI4
CNSTI4 0
NEI4 $726
line 1159
;1159:			trap_S_StartSound( NULL, cent->currentState.number, CHAN_WEAPON, trap_S_RegisterSound( "sound/weapons/vulcan/wvulwind.wav", qfalse ) );
ADDRGP4 $728
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 36
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
CNSTP4 0
ARGP4
ADDRFP4 0
INDIRP4
INDIRI4
ARGI4
CNSTI4 2
ARGI4
ADDRLP4 36
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
line 1160
;1160:		}
LABELV $726
line 1162
;1161:#endif
;1162:	}
LABELV $717
line 1164
;1163:
;1164:	return angle;
ADDRLP4 4
INDIRF4
RETF4
LABELV $711
endproc CG_MachinegunSpinAngle 40 16
proc CG_AddWeaponWithPowerups 0 4
line 1173
;1165:}
;1166:
;1167:
;1168:/*
;1169:========================
;1170:CG_AddWeaponWithPowerups
;1171:========================
;1172:*/
;1173:static void CG_AddWeaponWithPowerups( refEntity_t *gun, int powerups ) {
line 1175
;1174:	// add powerup effects
;1175:	if ( powerups & ( 1 << PW_INVIS ) ) {
ADDRFP4 4
INDIRI4
CNSTI4 16
BANDI4
CNSTI4 0
EQI4 $730
line 1176
;1176:		gun->customShader = cgs.media.invisShader;
ADDRFP4 0
INDIRP4
CNSTI4 112
ADDP4
ADDRGP4 cgs+152340+444
INDIRI4
ASGNI4
line 1177
;1177:		trap_R_AddRefEntityToScene( gun );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 1178
;1178:	} else {
ADDRGP4 $731
JUMPV
LABELV $730
line 1179
;1179:		trap_R_AddRefEntityToScene( gun );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 1181
;1180:
;1181:		if ( powerups & ( 1 << PW_BATTLESUIT ) ) {
ADDRFP4 4
INDIRI4
CNSTI4 4
BANDI4
CNSTI4 0
EQI4 $734
line 1182
;1182:			gun->customShader = cgs.media.battleWeaponShader;
ADDRFP4 0
INDIRP4
CNSTI4 112
ADDP4
ADDRGP4 cgs+152340+456
INDIRI4
ASGNI4
line 1183
;1183:			trap_R_AddRefEntityToScene( gun );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 1184
;1184:		}
LABELV $734
line 1185
;1185:		if ( powerups & ( 1 << PW_QUAD ) ) {
ADDRFP4 4
INDIRI4
CNSTI4 2
BANDI4
CNSTI4 0
EQI4 $738
line 1186
;1186:			gun->customShader = cgs.media.quadWeaponShader;
ADDRFP4 0
INDIRP4
CNSTI4 112
ADDP4
ADDRGP4 cgs+152340+440
INDIRI4
ASGNI4
line 1187
;1187:			trap_R_AddRefEntityToScene( gun );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 1188
;1188:		}
LABELV $738
line 1189
;1189:	}
LABELV $731
line 1190
;1190:}
LABELV $729
endproc CG_AddWeaponWithPowerups 0 4
export CG_AddPlayerWeapon
proc CG_AddPlayerWeapon 496 20
line 1202
;1191:
;1192:
;1193:/*
;1194:=============
;1195:CG_AddPlayerWeapon
;1196:
;1197:Used for both the view weapon (ps is valid) and the world modelother character models (ps is NULL)
;1198:The main player will have this called for BOTH cases, so effects like light and
;1199:sound should only be done on the world model case.
;1200:=============
;1201:*/
;1202:void CG_AddPlayerWeapon( refEntity_t *parent, playerState_t *ps, centity_t *cent, int team ) {
line 1212
;1203:	refEntity_t	gun;
;1204:	refEntity_t	barrel;
;1205:	refEntity_t	flash;
;1206:	vec3_t		angles;
;1207:	weapon_t	weaponNum;
;1208:	weaponInfo_t	*weapon;
;1209:	centity_t	*nonPredictedCent;
;1210://	int	col;
;1211:
;1212:	weaponNum = cent->currentState.weapon;
ADDRLP4 284
ADDRFP4 8
INDIRP4
CNSTI4 192
ADDP4
INDIRI4
ASGNI4
line 1214
;1213:
;1214:	CG_RegisterWeapon( weaponNum );
ADDRLP4 284
INDIRI4
ARGI4
ADDRGP4 CG_RegisterWeapon
CALLV
pop
line 1215
;1215:	weapon = &cg_weapons[weaponNum];
ADDRLP4 280
CNSTI4 136
ADDRLP4 284
INDIRI4
MULI4
ADDRGP4 cg_weapons
ADDP4
ASGNP4
line 1218
;1216:
;1217:	// add the weapon
;1218:	memset( &gun, 0, sizeof( gun ) );
ADDRLP4 140
ARGP4
CNSTI4 0
ARGI4
CNSTI4 140
ARGI4
ADDRGP4 memset
CALLP4
pop
line 1219
;1219:	VectorCopy( parent->lightingOrigin, gun.lightingOrigin );
ADDRLP4 140+12
ADDRFP4 0
INDIRP4
CNSTI4 12
ADDP4
INDIRB
ASGNB 12
line 1220
;1220:	gun.shadowPlane = parent->shadowPlane;
ADDRLP4 140+24
ADDRFP4 0
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
ASGNF4
line 1221
;1221:	gun.renderfx = parent->renderfx;
ADDRLP4 140+4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ASGNI4
line 1224
;1222:
;1223:	// set custom shading for railgun refire rate
;1224:	if ( ps ) {
ADDRFP4 4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $746
line 1225
;1225:		if ( cg.predictedPlayerState.weapon == WP_RAILGUN 
ADDRGP4 cg+107636+144
INDIRI4
CNSTI4 7
NEI4 $748
ADDRGP4 cg+107636+148
INDIRI4
CNSTI4 3
NEI4 $748
line 1226
;1226:			&& cg.predictedPlayerState.weaponstate == WEAPON_FIRING ) {
line 1229
;1227:			float	f;
;1228:
;1229:			f = (float)cg.predictedPlayerState.weaponTime / 1500;
ADDRLP4 444
ADDRGP4 cg+107636+44
INDIRI4
CVIF4 4
CNSTF4 1153138688
DIVF4
ASGNF4
line 1230
;1230:			gun.shaderRGBA[1] = 0;
ADDRLP4 140+116+1
CNSTU1 0
ASGNU1
line 1231
;1231:			gun.shaderRGBA[0] = 
ADDRLP4 452
CNSTF4 1132396544
CNSTF4 1065353216
ADDRLP4 444
INDIRF4
SUBF4
MULF4
ASGNF4
ADDRLP4 456
CNSTF4 1325400064
ASGNF4
ADDRLP4 452
INDIRF4
ADDRLP4 456
INDIRF4
LTF4 $762
ADDRLP4 448
ADDRLP4 452
INDIRF4
ADDRLP4 456
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $763
JUMPV
LABELV $762
ADDRLP4 448
ADDRLP4 452
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $763
ADDRLP4 460
ADDRLP4 448
INDIRU4
CVUU1 4
ASGNU1
ADDRLP4 140+116+2
ADDRLP4 460
INDIRU1
ASGNU1
ADDRLP4 140+116
ADDRLP4 460
INDIRU1
ASGNU1
line 1233
;1232:			gun.shaderRGBA[2] = 255 * ( 1.0 - f );
;1233:		} else {
ADDRGP4 $749
JUMPV
LABELV $748
line 1234
;1234:			gun.shaderRGBA[0] = 255;
ADDRLP4 140+116
CNSTU1 255
ASGNU1
line 1235
;1235:			gun.shaderRGBA[1] = 255;
ADDRLP4 140+116+1
CNSTU1 255
ASGNU1
line 1236
;1236:			gun.shaderRGBA[2] = 255;
ADDRLP4 140+116+2
CNSTU1 255
ASGNU1
line 1237
;1237:			gun.shaderRGBA[3] = 255;
ADDRLP4 140+116+3
CNSTU1 255
ASGNU1
line 1238
;1238:		}
LABELV $749
line 1239
;1239:	}
LABELV $746
line 1241
;1240:
;1241:	gun.hModel = weapon->weaponModel;
ADDRLP4 140+8
ADDRLP4 280
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
ASGNI4
line 1242
;1242:	if (!gun.hModel) {
ADDRLP4 140+8
INDIRI4
CNSTI4 0
NEI4 $772
line 1243
;1243:		return;
ADDRGP4 $742
JUMPV
LABELV $772
line 1246
;1244:	}
;1245:
;1246:	if ( !ps ) {
ADDRFP4 4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $775
line 1248
;1247:		// add weapon ready sound
;1248:		cent->pe.lightningFiring = qfalse;
ADDRFP4 8
INDIRP4
CNSTI4 604
ADDP4
CNSTI4 0
ASGNI4
line 1249
;1249:		if ( ( cent->currentState.eFlags & EF_FIRING ) && weapon->firingSound ) {
ADDRLP4 444
CNSTI4 0
ASGNI4
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 256
BANDI4
ADDRLP4 444
INDIRI4
EQI4 $777
ADDRLP4 280
INDIRP4
CNSTI4 128
ADDP4
INDIRI4
ADDRLP4 444
INDIRI4
EQI4 $777
line 1251
;1250:			// lightning gun and guantlet make a different sound when fire is held down
;1251:			trap_S_AddLoopingSound( cent->currentState.number, cent->lerpOrigin, vec3_origin, weapon->firingSound );
ADDRLP4 448
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 448
INDIRP4
INDIRI4
ARGI4
ADDRLP4 448
INDIRP4
CNSTI4 704
ADDP4
ARGP4
ADDRGP4 vec3_origin
ARGP4
ADDRLP4 280
INDIRP4
CNSTI4 128
ADDP4
INDIRI4
ARGI4
ADDRGP4 trap_S_AddLoopingSound
CALLV
pop
line 1252
;1252:			cent->pe.lightningFiring = qtrue;
ADDRFP4 8
INDIRP4
CNSTI4 604
ADDP4
CNSTI4 1
ASGNI4
line 1253
;1253:		} else if ( weapon->readySound ) {
ADDRGP4 $778
JUMPV
LABELV $777
ADDRLP4 280
INDIRP4
CNSTI4 124
ADDP4
INDIRI4
CNSTI4 0
EQI4 $779
line 1254
;1254:			trap_S_AddLoopingSound( cent->currentState.number, cent->lerpOrigin, vec3_origin, weapon->readySound );
ADDRLP4 448
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 448
INDIRP4
INDIRI4
ARGI4
ADDRLP4 448
INDIRP4
CNSTI4 704
ADDP4
ARGP4
ADDRGP4 vec3_origin
ARGP4
ADDRLP4 280
INDIRP4
CNSTI4 124
ADDP4
INDIRI4
ARGI4
ADDRGP4 trap_S_AddLoopingSound
CALLV
pop
line 1255
;1255:		}
LABELV $779
LABELV $778
line 1256
;1256:	}
LABELV $775
line 1258
;1257:
;1258:	CG_PositionEntityOnTag( &gun, parent, parent->hModel, "tag_weapon");
ADDRLP4 140
ARGP4
ADDRLP4 444
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 444
INDIRP4
ARGP4
ADDRLP4 444
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ARGI4
ADDRGP4 $781
ARGP4
ADDRGP4 CG_PositionEntityOnTag
CALLV
pop
line 1260
;1259:
;1260:	CG_AddWeaponWithPowerups( &gun, cent->currentState.powerups );
ADDRLP4 140
ARGP4
ADDRFP4 8
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_AddWeaponWithPowerups
CALLV
pop
line 1263
;1261:
;1262:	// add the spinning barrel
;1263:	if ( weapon->barrelModel ) {
ADDRLP4 280
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
CNSTI4 0
EQI4 $782
line 1264
;1264:		memset( &barrel, 0, sizeof( barrel ) );
ADDRLP4 300
ARGP4
CNSTI4 0
ARGI4
CNSTI4 140
ARGI4
ADDRGP4 memset
CALLP4
pop
line 1265
;1265:		VectorCopy( parent->lightingOrigin, barrel.lightingOrigin );
ADDRLP4 300+12
ADDRFP4 0
INDIRP4
CNSTI4 12
ADDP4
INDIRB
ASGNB 12
line 1266
;1266:		barrel.shadowPlane = parent->shadowPlane;
ADDRLP4 300+24
ADDRFP4 0
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
ASGNF4
line 1267
;1267:		barrel.renderfx = parent->renderfx;
ADDRLP4 300+4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ASGNI4
line 1269
;1268:
;1269:		barrel.hModel = weapon->barrelModel;
ADDRLP4 300+8
ADDRLP4 280
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
ASGNI4
line 1270
;1270:		angles[YAW] = 0;
ADDRLP4 288+4
CNSTF4 0
ASGNF4
line 1271
;1271:		angles[PITCH] = 0;
ADDRLP4 288
CNSTF4 0
ASGNF4
line 1272
;1272:		angles[ROLL] = CG_MachinegunSpinAngle( cent );
ADDRFP4 8
INDIRP4
ARGP4
ADDRLP4 448
ADDRGP4 CG_MachinegunSpinAngle
CALLF4
ASGNF4
ADDRLP4 288+8
ADDRLP4 448
INDIRF4
ASGNF4
line 1273
;1273:		AnglesToAxis( angles, barrel.axis );
ADDRLP4 288
ARGP4
ADDRLP4 300+28
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 1275
;1274:
;1275:		CG_PositionRotatedEntityOnTag( &barrel, &gun, weapon->weaponModel, "tag_barrel" );
ADDRLP4 300
ARGP4
ADDRLP4 140
ARGP4
ADDRLP4 280
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
ARGI4
ADDRGP4 $791
ARGP4
ADDRGP4 CG_PositionRotatedEntityOnTag
CALLV
pop
line 1277
;1276:
;1277:		CG_AddWeaponWithPowerups( &barrel, cent->currentState.powerups );
ADDRLP4 300
ARGP4
ADDRFP4 8
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_AddWeaponWithPowerups
CALLV
pop
line 1278
;1278:	}
LABELV $782
line 1281
;1279:
;1280:	// make sure we aren't looking at cg.predictedPlayerEntity for LG
;1281:	nonPredictedCent = &cg_entities[cent->currentState.clientNum];
ADDRLP4 440
CNSTI4 728
ADDRFP4 8
INDIRP4
CNSTI4 168
ADDP4
INDIRI4
MULI4
ADDRGP4 cg_entities
ADDP4
ASGNP4
line 1286
;1282:
;1283:	// if the index of the nonPredictedCent is not the same as the clientNum
;1284:	// then this is a fake player (like on teh single player podiums), so
;1285:	// go ahead and use the cent
;1286:	if( ( nonPredictedCent - cg_entities ) != cent->currentState.clientNum ) {
ADDRLP4 440
INDIRP4
CVPU4 4
ADDRGP4 cg_entities
CVPU4 4
SUBU4
CVUI4 4
CNSTI4 728
DIVI4
ADDRFP4 8
INDIRP4
CNSTI4 168
ADDP4
INDIRI4
EQI4 $792
line 1287
;1287:		nonPredictedCent = cent;
ADDRLP4 440
ADDRFP4 8
INDIRP4
ASGNP4
line 1288
;1288:	}
LABELV $792
line 1291
;1289:
;1290:	// add the flash
;1291:	if ( ( weaponNum == WP_LIGHTNING || weaponNum == WP_GAUNTLET || weaponNum == WP_GRAPPLING_HOOK )
ADDRLP4 284
INDIRI4
CNSTI4 6
EQI4 $797
ADDRLP4 284
INDIRI4
CNSTI4 1
EQI4 $797
ADDRLP4 284
INDIRI4
CNSTI4 10
NEI4 $794
LABELV $797
ADDRLP4 440
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 256
BANDI4
CNSTI4 0
EQI4 $794
line 1293
;1292:		&& ( nonPredictedCent->currentState.eFlags & EF_FIRING ) ) 
;1293:	{
line 1295
;1294:		// continuous flash
;1295:	} else {
ADDRGP4 $795
JUMPV
LABELV $794
line 1297
;1296:		// impulse flash
;1297:		if ( cg.time - cent->muzzleFlashTime > MUZZLE_FLASH_TIME && !cent->pe.railgunFlash ) {
ADDRLP4 452
ADDRFP4 8
INDIRP4
ASGNP4
ADDRGP4 cg+107604
INDIRI4
ADDRLP4 452
INDIRP4
CNSTI4 424
ADDP4
INDIRI4
SUBI4
CNSTI4 20
LEI4 $798
ADDRLP4 452
INDIRP4
CNSTI4 620
ADDP4
INDIRI4
CNSTI4 0
NEI4 $798
line 1298
;1298:			return;
ADDRGP4 $742
JUMPV
LABELV $798
line 1300
;1299:		}
;1300:	}
LABELV $795
line 1302
;1301:
;1302:	memset( &flash, 0, sizeof( flash ) );
ADDRLP4 0
ARGP4
CNSTI4 0
ARGI4
CNSTI4 140
ARGI4
ADDRGP4 memset
CALLP4
pop
line 1303
;1303:	VectorCopy( parent->lightingOrigin, flash.lightingOrigin );
ADDRLP4 0+12
ADDRFP4 0
INDIRP4
CNSTI4 12
ADDP4
INDIRB
ASGNB 12
line 1304
;1304:	flash.shadowPlane = parent->shadowPlane;
ADDRLP4 0+24
ADDRFP4 0
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
ASGNF4
line 1305
;1305:	flash.renderfx = parent->renderfx;
ADDRLP4 0+4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ASGNI4
line 1307
;1306:
;1307:	flash.hModel = weapon->flashModel;
ADDRLP4 0+8
ADDRLP4 280
INDIRP4
CNSTI4 20
ADDP4
INDIRI4
ASGNI4
line 1308
;1308:	if (!flash.hModel) {
ADDRLP4 0+8
INDIRI4
CNSTI4 0
NEI4 $805
line 1309
;1309:		return;
ADDRGP4 $742
JUMPV
LABELV $805
line 1311
;1310:	}
;1311:	angles[YAW] = 0;
ADDRLP4 288+4
CNSTF4 0
ASGNF4
line 1312
;1312:	angles[PITCH] = 0;
ADDRLP4 288
CNSTF4 0
ASGNF4
line 1313
;1313:	angles[ROLL] = crandom() * 10;
ADDRLP4 452
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 288+8
CNSTF4 1092616192
CNSTF4 1073741824
ADDRLP4 452
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
CNSTF4 1056964608
SUBF4
MULF4
MULF4
ASGNF4
line 1314
;1314:	AnglesToAxis( angles, flash.axis );
ADDRLP4 288
ARGP4
ADDRLP4 0+28
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 1317
;1315:
;1316:	// colorize the railgun blast
;1317:	if ( weaponNum == WP_RAILGUN ) {
ADDRLP4 284
INDIRI4
CNSTI4 7
NEI4 $811
line 1320
;1318:		clientInfo_t	*ci;
;1319:
;1320:		ci = &cgs.clientinfo[ cent->currentState.clientNum ];
ADDRLP4 456
CNSTI4 1708
ADDRFP4 8
INDIRP4
CNSTI4 168
ADDP4
INDIRI4
MULI4
ADDRGP4 cgs+40972
ADDP4
ASGNP4
line 1321
;1321:		flash.shaderRGBA[0] = 255 * ci->color1[0];
ADDRLP4 464
CNSTF4 1132396544
ADDRLP4 456
INDIRP4
CNSTI4 76
ADDP4
INDIRF4
MULF4
ASGNF4
ADDRLP4 468
CNSTF4 1325400064
ASGNF4
ADDRLP4 464
INDIRF4
ADDRLP4 468
INDIRF4
LTF4 $816
ADDRLP4 460
ADDRLP4 464
INDIRF4
ADDRLP4 468
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $817
JUMPV
LABELV $816
ADDRLP4 460
ADDRLP4 464
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $817
ADDRLP4 0+116
ADDRLP4 460
INDIRU4
CVUU1 4
ASGNU1
line 1322
;1322:		flash.shaderRGBA[1] = 255 * ci->color1[1];
ADDRLP4 476
CNSTF4 1132396544
ADDRLP4 456
INDIRP4
CNSTI4 80
ADDP4
INDIRF4
MULF4
ASGNF4
ADDRLP4 480
CNSTF4 1325400064
ASGNF4
ADDRLP4 476
INDIRF4
ADDRLP4 480
INDIRF4
LTF4 $821
ADDRLP4 472
ADDRLP4 476
INDIRF4
ADDRLP4 480
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $822
JUMPV
LABELV $821
ADDRLP4 472
ADDRLP4 476
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $822
ADDRLP4 0+116+1
ADDRLP4 472
INDIRU4
CVUU1 4
ASGNU1
line 1323
;1323:		flash.shaderRGBA[2] = 255 * ci->color1[2];
ADDRLP4 488
CNSTF4 1132396544
ADDRLP4 456
INDIRP4
CNSTI4 84
ADDP4
INDIRF4
MULF4
ASGNF4
ADDRLP4 492
CNSTF4 1325400064
ASGNF4
ADDRLP4 488
INDIRF4
ADDRLP4 492
INDIRF4
LTF4 $826
ADDRLP4 484
ADDRLP4 488
INDIRF4
ADDRLP4 492
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $827
JUMPV
LABELV $826
ADDRLP4 484
ADDRLP4 488
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $827
ADDRLP4 0+116+2
ADDRLP4 484
INDIRU4
CVUU1 4
ASGNU1
line 1324
;1324:	}
LABELV $811
line 1326
;1325:
;1326:	CG_PositionRotatedEntityOnTag( &flash, &gun, weapon->weaponModel, "tag_flash");
ADDRLP4 0
ARGP4
ADDRLP4 140
ARGP4
ADDRLP4 280
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
ARGI4
ADDRGP4 $828
ARGP4
ADDRGP4 CG_PositionRotatedEntityOnTag
CALLV
pop
line 1327
;1327:	trap_R_AddRefEntityToScene( &flash );
ADDRLP4 0
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 1329
;1328:
;1329:	if ( ps || cg.renderingThirdPerson ||
ADDRFP4 4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $835
ADDRGP4 cg+107628
INDIRI4
CNSTI4 0
NEI4 $835
ADDRFP4 8
INDIRP4
INDIRI4
ADDRGP4 cg+107636+140
INDIRI4
EQI4 $829
LABELV $835
line 1330
;1330:		cent->currentState.number != cg.predictedPlayerState.clientNum ) {
line 1332
;1331:		// add lightning bolt
;1332:		CG_LightningBolt( nonPredictedCent, flash.origin );
ADDRLP4 440
INDIRP4
ARGP4
ADDRLP4 0+68
ARGP4
ADDRGP4 CG_LightningBolt
CALLV
pop
line 1335
;1333:
;1334:		// add rail trail
;1335:		CG_SpawnRailTrail( cent, flash.origin );
ADDRFP4 8
INDIRP4
ARGP4
ADDRLP4 0+68
ARGP4
ADDRGP4 CG_SpawnRailTrail
CALLV
pop
line 1337
;1336:
;1337:		if ( weapon->flashDlightColor[0] || weapon->flashDlightColor[1] || weapon->flashDlightColor[2] ) {
ADDRLP4 460
CNSTF4 0
ASGNF4
ADDRLP4 280
INDIRP4
CNSTI4 40
ADDP4
INDIRF4
ADDRLP4 460
INDIRF4
NEF4 $841
ADDRLP4 280
INDIRP4
CNSTI4 44
ADDP4
INDIRF4
ADDRLP4 460
INDIRF4
NEF4 $841
ADDRLP4 280
INDIRP4
CNSTI4 48
ADDP4
INDIRF4
ADDRLP4 460
INDIRF4
EQF4 $838
LABELV $841
line 1338
;1338:			trap_R_AddLightToScene( flash.origin, 300 + (rand()&31), weapon->flashDlightColor[0],
ADDRLP4 464
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 0+68
ARGP4
ADDRLP4 464
INDIRI4
CNSTI4 31
BANDI4
CNSTI4 300
ADDI4
CVIF4 4
ARGF4
ADDRLP4 280
INDIRP4
CNSTI4 40
ADDP4
INDIRF4
ARGF4
ADDRLP4 280
INDIRP4
CNSTI4 44
ADDP4
INDIRF4
ARGF4
ADDRLP4 280
INDIRP4
CNSTI4 48
ADDP4
INDIRF4
ARGF4
ADDRGP4 trap_R_AddLightToScene
CALLV
pop
line 1340
;1339:				weapon->flashDlightColor[1], weapon->flashDlightColor[2] );
;1340:		}
LABELV $838
line 1341
;1341:	}
LABELV $829
line 1342
;1342:}
LABELV $742
endproc CG_AddPlayerWeapon 496 20
export CG_AddViewWeapon
proc CG_AddViewWeapon 184 16
line 1351
;1343:
;1344:/*
;1345:==============
;1346:CG_AddViewWeapon
;1347:
;1348:Add the weapon, and flash for the player's view
;1349:==============
;1350:*/
;1351:void CG_AddViewWeapon( playerState_t *ps ) {
line 1359
;1352:	refEntity_t	hand;
;1353:	centity_t	*cent;
;1354:	clientInfo_t	*ci;
;1355:	float		fovOffset;
;1356:	vec3_t		angles;
;1357:	weaponInfo_t	*weapon;
;1358:
;1359:	if ( ps->persistant[PERS_TEAM] == TEAM_SPECTATOR ) {
ADDRFP4 0
INDIRP4
CNSTI4 260
ADDP4
INDIRI4
CNSTI4 3
NEI4 $844
line 1360
;1360:		return;
ADDRGP4 $843
JUMPV
LABELV $844
line 1363
;1361:	}
;1362:
;1363:	if ( ps->pm_type == PM_INTERMISSION ) {
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
CNSTI4 5
NEI4 $846
line 1364
;1364:		return;
ADDRGP4 $843
JUMPV
LABELV $846
line 1369
;1365:	}
;1366:
;1367:	// no gun if in third person view or a camera is active
;1368:	//if ( cg.renderingThirdPerson || cg.cameraMode) {
;1369:	if ( cg.renderingThirdPerson ) {
ADDRGP4 cg+107628
INDIRI4
CNSTI4 0
EQI4 $848
line 1370
;1370:		return;
ADDRGP4 $843
JUMPV
LABELV $848
line 1375
;1371:	}
;1372:
;1373:
;1374:	// allow the gun to be completely removed
;1375:	if ( !cg_drawGun.integer ) {
ADDRGP4 cg_drawGun+12
INDIRI4
CNSTI4 0
NEI4 $851
line 1378
;1376:		vec3_t		origin;
;1377:
;1378:		if ( cg.predictedPlayerState.eFlags & EF_FIRING ) {
ADDRGP4 cg+107636+104
INDIRI4
CNSTI4 256
BANDI4
CNSTI4 0
EQI4 $843
line 1380
;1379:			// special hack for lightning gun...
;1380:			VectorCopy( cg.refdef.vieworg, origin );
ADDRLP4 168
ADDRGP4 cg+109044+24
INDIRB
ASGNB 12
line 1381
;1381:			VectorMA( origin, -8, cg.refdef.viewaxis[2], origin );
ADDRLP4 180
CNSTF4 3238002688
ASGNF4
ADDRLP4 168
ADDRLP4 168
INDIRF4
ADDRLP4 180
INDIRF4
ADDRGP4 cg+109044+36+24
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 168+4
ADDRLP4 168+4
INDIRF4
ADDRLP4 180
INDIRF4
ADDRGP4 cg+109044+36+24+4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 168+8
ADDRLP4 168+8
INDIRF4
CNSTF4 3238002688
ADDRGP4 cg+109044+36+24+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 1382
;1382:			CG_LightningBolt( &cg_entities[ps->clientNum], origin );
CNSTI4 728
ADDRFP4 0
INDIRP4
CNSTI4 140
ADDP4
INDIRI4
MULI4
ADDRGP4 cg_entities
ADDP4
ARGP4
ADDRLP4 168
ARGP4
ADDRGP4 CG_LightningBolt
CALLV
pop
line 1383
;1383:		}
line 1384
;1384:		return;
ADDRGP4 $843
JUMPV
LABELV $851
line 1388
;1385:	}
;1386:
;1387:	// don't draw if testing a gun model
;1388:	if ( cg.testGun ) {
ADDRGP4 cg+124988
INDIRI4
CNSTI4 0
EQI4 $875
line 1389
;1389:		return;
ADDRGP4 $843
JUMPV
LABELV $875
line 1393
;1390:	}
;1391:
;1392:	// drop gun lower at higher fov
;1393:	if ( cg_fov.integer > 90 ) {
ADDRGP4 cg_fov+12
INDIRI4
CNSTI4 90
LEI4 $878
line 1394
;1394:		fovOffset = -0.2 * ( cg_fov.integer - 90 );
ADDRLP4 140
CNSTF4 3192704205
ADDRGP4 cg_fov+12
INDIRI4
CNSTI4 90
SUBI4
CVIF4 4
MULF4
ASGNF4
line 1395
;1395:	} else {
ADDRGP4 $879
JUMPV
LABELV $878
line 1396
;1396:		fovOffset = 0;
ADDRLP4 140
CNSTF4 0
ASGNF4
line 1397
;1397:	}
LABELV $879
line 1399
;1398:
;1399:	cent = &cg.predictedPlayerEntity;	// &cg_entities[cg.snap->ps.clientNum];
ADDRLP4 144
ADDRGP4 cg+108104
ASGNP4
line 1400
;1400:	CG_RegisterWeapon( ps->weapon );
ADDRFP4 0
INDIRP4
CNSTI4 144
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_RegisterWeapon
CALLV
pop
line 1401
;1401:	weapon = &cg_weapons[ ps->weapon ];
ADDRLP4 160
CNSTI4 136
ADDRFP4 0
INDIRP4
CNSTI4 144
ADDP4
INDIRI4
MULI4
ADDRGP4 cg_weapons
ADDP4
ASGNP4
line 1403
;1402:
;1403:	memset (&hand, 0, sizeof(hand));
ADDRLP4 0
ARGP4
CNSTI4 0
ARGI4
CNSTI4 140
ARGI4
ADDRGP4 memset
CALLP4
pop
line 1406
;1404:
;1405:	// set up gun position
;1406:	CG_CalculateWeaponPosition( hand.origin, angles );
ADDRLP4 0+68
ARGP4
ADDRLP4 148
ARGP4
ADDRGP4 CG_CalculateWeaponPosition
CALLV
pop
line 1408
;1407:
;1408:	VectorMA( hand.origin, cg_gun_x.value, cg.refdef.viewaxis[0], hand.origin );
ADDRLP4 0+68
ADDRLP4 0+68
INDIRF4
ADDRGP4 cg+109044+36
INDIRF4
ADDRGP4 cg_gun_x+8
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+68+4
ADDRLP4 0+68+4
INDIRF4
ADDRGP4 cg+109044+36+4
INDIRF4
ADDRGP4 cg_gun_x+8
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+68+8
ADDRLP4 0+68+8
INDIRF4
ADDRGP4 cg+109044+36+8
INDIRF4
ADDRGP4 cg_gun_x+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 1409
;1409:	VectorMA( hand.origin, cg_gun_y.value, cg.refdef.viewaxis[1], hand.origin );
ADDRLP4 0+68
ADDRLP4 0+68
INDIRF4
ADDRGP4 cg+109044+36+12
INDIRF4
ADDRGP4 cg_gun_y+8
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+68+4
ADDRLP4 0+68+4
INDIRF4
ADDRGP4 cg+109044+36+12+4
INDIRF4
ADDRGP4 cg_gun_y+8
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+68+8
ADDRLP4 0+68+8
INDIRF4
ADDRGP4 cg+109044+36+12+8
INDIRF4
ADDRGP4 cg_gun_y+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 1410
;1410:	VectorMA( hand.origin, (cg_gun_z.value+fovOffset), cg.refdef.viewaxis[2], hand.origin );
ADDRLP4 0+68
ADDRLP4 0+68
INDIRF4
ADDRGP4 cg+109044+36+24
INDIRF4
ADDRGP4 cg_gun_z+8
INDIRF4
ADDRLP4 140
INDIRF4
ADDF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+68+4
ADDRLP4 0+68+4
INDIRF4
ADDRGP4 cg+109044+36+24+4
INDIRF4
ADDRGP4 cg_gun_z+8
INDIRF4
ADDRLP4 140
INDIRF4
ADDF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+68+8
ADDRLP4 0+68+8
INDIRF4
ADDRGP4 cg+109044+36+24+8
INDIRF4
ADDRGP4 cg_gun_z+8
INDIRF4
ADDRLP4 140
INDIRF4
ADDF4
MULF4
ADDF4
ASGNF4
line 1412
;1411:
;1412:	AnglesToAxis( angles, hand.axis );
ADDRLP4 148
ARGP4
ADDRLP4 0+28
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 1415
;1413:
;1414:	// map torso animations to weapon animations
;1415:	if ( cg_gun_frame.integer ) {
ADDRGP4 cg_gun_frame+12
INDIRI4
CNSTI4 0
EQI4 $954
line 1417
;1416:		// development tool
;1417:		hand.frame = hand.oldframe = cg_gun_frame.integer;
ADDRLP4 168
ADDRGP4 cg_gun_frame+12
INDIRI4
ASGNI4
ADDRLP4 0+96
ADDRLP4 168
INDIRI4
ASGNI4
ADDRLP4 0+80
ADDRLP4 168
INDIRI4
ASGNI4
line 1418
;1418:		hand.backlerp = 0;
ADDRLP4 0+100
CNSTF4 0
ASGNF4
line 1419
;1419:	} else {
ADDRGP4 $955
JUMPV
LABELV $954
line 1421
;1420:		// get clientinfo for animation map
;1421:		ci = &cgs.clientinfo[ cent->currentState.clientNum ];
ADDRLP4 164
CNSTI4 1708
ADDRLP4 144
INDIRP4
CNSTI4 168
ADDP4
INDIRI4
MULI4
ADDRGP4 cgs+40972
ADDP4
ASGNP4
line 1422
;1422:		hand.frame = CG_MapTorsoToWeaponFrame( ci, cent->pe.torso.frame );
ADDRLP4 164
INDIRP4
ARGP4
ADDRLP4 144
INDIRP4
CNSTI4 508
ADDP4
INDIRI4
ARGI4
ADDRLP4 168
ADDRGP4 CG_MapTorsoToWeaponFrame
CALLI4
ASGNI4
ADDRLP4 0+80
ADDRLP4 168
INDIRI4
ASGNI4
line 1423
;1423:		hand.oldframe = CG_MapTorsoToWeaponFrame( ci, cent->pe.torso.oldFrame );
ADDRLP4 164
INDIRP4
ARGP4
ADDRLP4 144
INDIRP4
CNSTI4 500
ADDP4
INDIRI4
ARGI4
ADDRLP4 172
ADDRGP4 CG_MapTorsoToWeaponFrame
CALLI4
ASGNI4
ADDRLP4 0+96
ADDRLP4 172
INDIRI4
ASGNI4
line 1424
;1424:		hand.backlerp = cent->pe.torso.backlerp;
ADDRLP4 0+100
ADDRLP4 144
INDIRP4
CNSTI4 516
ADDP4
INDIRF4
ASGNF4
line 1425
;1425:	}
LABELV $955
line 1427
;1426:
;1427:	hand.hModel = weapon->handsModel;
ADDRLP4 0+8
ADDRLP4 160
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ASGNI4
line 1428
;1428:	hand.renderfx = RF_DEPTHHACK | RF_FIRST_PERSON | RF_MINLIGHT;
ADDRLP4 0+4
CNSTI4 13
ASGNI4
line 1431
;1429:
;1430:	// add everything onto the hand
;1431:	CG_AddPlayerWeapon( &hand, ps, &cg.predictedPlayerEntity, ps->persistant[PERS_TEAM] );
ADDRLP4 0
ARGP4
ADDRLP4 168
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 168
INDIRP4
ARGP4
ADDRGP4 cg+108104
ARGP4
ADDRLP4 168
INDIRP4
CNSTI4 260
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_AddPlayerWeapon
CALLV
pop
line 1432
;1432:}
LABELV $843
endproc CG_AddViewWeapon 184 16
export CG_DrawWeaponSelect
proc CG_DrawWeaponSelect 48 20
line 1447
;1433:
;1434:/*
;1435:==============================================================================
;1436:
;1437:WEAPON SELECTION
;1438:
;1439:==============================================================================
;1440:*/
;1441:
;1442:/*
;1443:===================
;1444:CG_DrawWeaponSelect
;1445:===================
;1446:*/
;1447:void CG_DrawWeaponSelect( void ) {
line 1456
;1448:	int		i;
;1449:	int		bits;
;1450:	int		count;
;1451:	int		x, y, w;
;1452:	char	*name;
;1453:	float	*color;
;1454:
;1455:	// don't display if dead
;1456:	if ( cg.predictedPlayerState.stats[STAT_HEALTH] <= 0 ) {
ADDRGP4 cg+107636+184
INDIRI4
CNSTI4 0
GTI4 $969
line 1457
;1457:		return;
ADDRGP4 $968
JUMPV
LABELV $969
line 1460
;1458:	}
;1459:
;1460:	color = CG_FadeColor( cg.weaponSelectTime, WEAPON_SELECT_TIME );
ADDRGP4 cg+124676
INDIRI4
ARGI4
CNSTI4 1400
ARGI4
ADDRLP4 32
ADDRGP4 CG_FadeColor
CALLP4
ASGNP4
ADDRLP4 20
ADDRLP4 32
INDIRP4
ASGNP4
line 1461
;1461:	if ( !color ) {
ADDRLP4 20
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $974
line 1462
;1462:		return;
ADDRGP4 $968
JUMPV
LABELV $974
line 1464
;1463:	}
;1464:	trap_R_SetColor( color );
ADDRLP4 20
INDIRP4
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 1467
;1465:
;1466:	// showing weapon select clears pickup item display, but not the blend blob
;1467:	cg.itemPickupTime = 0;
ADDRGP4 cg+124668
CNSTI4 0
ASGNI4
line 1470
;1468:
;1469:	// count the number of weapons owned
;1470:	bits = cg.snap->ps.stats[ STAT_WEAPONS ];
ADDRLP4 12
ADDRGP4 cg+36
INDIRP4
CNSTI4 240
ADDP4
INDIRI4
ASGNI4
line 1471
;1471:	count = 0;
ADDRLP4 16
CNSTI4 0
ASGNI4
line 1472
;1472:	for ( i = 1 ; i < 16 ; i++ ) {
ADDRLP4 0
CNSTI4 1
ASGNI4
LABELV $978
line 1473
;1473:		if ( bits & ( 1 << i ) ) {
ADDRLP4 12
INDIRI4
CNSTI4 1
ADDRLP4 0
INDIRI4
LSHI4
BANDI4
CNSTI4 0
EQI4 $982
line 1474
;1474:			count++;
ADDRLP4 16
ADDRLP4 16
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1475
;1475:		}
LABELV $982
line 1476
;1476:	}
LABELV $979
line 1472
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 16
LTI4 $978
line 1478
;1477:
;1478:	x = 320 - count * 20;
ADDRLP4 4
CNSTI4 320
CNSTI4 20
ADDRLP4 16
INDIRI4
MULI4
SUBI4
ASGNI4
line 1479
;1479:	y = 380;
ADDRLP4 8
CNSTI4 380
ASGNI4
line 1481
;1480:
;1481:	for ( i = 1 ; i < 16 ; i++ ) {
ADDRLP4 0
CNSTI4 1
ASGNI4
LABELV $984
line 1482
;1482:		if ( !( bits & ( 1 << i ) ) ) {
ADDRLP4 12
INDIRI4
CNSTI4 1
ADDRLP4 0
INDIRI4
LSHI4
BANDI4
CNSTI4 0
NEI4 $988
line 1483
;1483:			continue;
ADDRGP4 $985
JUMPV
LABELV $988
line 1486
;1484:		}
;1485:
;1486:		CG_RegisterWeapon( i );
ADDRLP4 0
INDIRI4
ARGI4
ADDRGP4 CG_RegisterWeapon
CALLV
pop
line 1489
;1487:
;1488:		// draw weapon icon
;1489:		CG_DrawPic( x, y, 32, 32, cg_weapons[i].weaponIcon );
ADDRLP4 4
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 8
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 36
CNSTF4 1107296256
ASGNF4
ADDRLP4 36
INDIRF4
ARGF4
ADDRLP4 36
INDIRF4
ARGF4
CNSTI4 136
ADDRLP4 0
INDIRI4
MULI4
ADDRGP4 cg_weapons+68
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_DrawPic
CALLV
pop
line 1492
;1490:
;1491:		// draw selection marker
;1492:		if ( i == cg.weaponSelect ) {
ADDRLP4 0
INDIRI4
ADDRGP4 cg+108944
INDIRI4
NEI4 $991
line 1493
;1493:			CG_DrawPic( x-4, y-4, 40, 40, cgs.media.selectShader );
ADDRLP4 40
CNSTI4 4
ASGNI4
ADDRLP4 4
INDIRI4
ADDRLP4 40
INDIRI4
SUBI4
CVIF4 4
ARGF4
ADDRLP4 8
INDIRI4
ADDRLP4 40
INDIRI4
SUBI4
CVIF4 4
ARGF4
ADDRLP4 44
CNSTF4 1109393408
ASGNF4
ADDRLP4 44
INDIRF4
ARGF4
ADDRLP4 44
INDIRF4
ARGF4
ADDRGP4 cgs+152340+244
INDIRI4
ARGI4
ADDRGP4 CG_DrawPic
CALLV
pop
line 1494
;1494:		}
LABELV $991
line 1497
;1495:
;1496:		// no ammo cross on top
;1497:		if ( !cg.snap->ps.ammo[ i ] ) {
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 420
ADDP4
ADDP4
INDIRI4
CNSTI4 0
NEI4 $996
line 1498
;1498:			CG_DrawPic( x, y, 32, 32, cgs.media.noammoShader );
ADDRLP4 4
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 8
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 40
CNSTF4 1107296256
ASGNF4
ADDRLP4 40
INDIRF4
ARGF4
ADDRLP4 40
INDIRF4
ARGF4
ADDRGP4 cgs+152340+304
INDIRI4
ARGI4
ADDRGP4 CG_DrawPic
CALLV
pop
line 1499
;1499:		}
LABELV $996
line 1501
;1500:
;1501:		x += 40;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 40
ADDI4
ASGNI4
line 1502
;1502:	}
LABELV $985
line 1481
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 16
LTI4 $984
line 1505
;1503:
;1504:	// draw the selected name
;1505:	if ( cg_weapons[ cg.weaponSelect ].item ) {
CNSTI4 136
ADDRGP4 cg+108944
INDIRI4
MULI4
ADDRGP4 cg_weapons+4
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $1001
line 1506
;1506:		name = cg_weapons[ cg.weaponSelect ].item->pickup_name;
ADDRLP4 24
CNSTI4 136
ADDRGP4 cg+108944
INDIRI4
MULI4
ADDRGP4 cg_weapons+4
ADDP4
INDIRP4
CNSTI4 28
ADDP4
INDIRP4
ASGNP4
line 1507
;1507:		if ( name ) {
ADDRLP4 24
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $1007
line 1508
;1508:			w = CG_DrawStrlen( name ) * BIGCHAR_WIDTH;
ADDRLP4 24
INDIRP4
ARGP4
ADDRLP4 36
ADDRGP4 CG_DrawStrlen
CALLI4
ASGNI4
ADDRLP4 28
ADDRLP4 36
INDIRI4
CNSTI4 4
LSHI4
ASGNI4
line 1509
;1509:			x = ( SCREEN_WIDTH - w ) / 2;
ADDRLP4 4
CNSTI4 640
ADDRLP4 28
INDIRI4
SUBI4
CNSTI4 2
DIVI4
ASGNI4
line 1510
;1510:			CG_DrawBigStringColor(x, y - 22, name, color);
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 8
INDIRI4
CNSTI4 22
SUBI4
ARGI4
ADDRLP4 24
INDIRP4
ARGP4
ADDRLP4 20
INDIRP4
ARGP4
ADDRGP4 CG_DrawBigStringColor
CALLV
pop
line 1511
;1511:		}
LABELV $1007
line 1512
;1512:	}
LABELV $1001
line 1514
;1513:
;1514:	trap_R_SetColor( NULL );
CNSTP4 0
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 1515
;1515:}
LABELV $968
endproc CG_DrawWeaponSelect 48 20
proc CG_WeaponSelectable 0 0
line 1523
;1516:
;1517:
;1518:/*
;1519:===============
;1520:CG_WeaponSelectable
;1521:===============
;1522:*/
;1523:static qboolean CG_WeaponSelectable( int i ) {
line 1524
;1524:	if ( !cg.snap->ps.ammo[i] ) {
ADDRFP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 420
ADDP4
ADDP4
INDIRI4
CNSTI4 0
NEI4 $1010
line 1525
;1525:		return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $1009
JUMPV
LABELV $1010
line 1527
;1526:	}
;1527:	if ( ! (cg.snap->ps.stats[ STAT_WEAPONS ] & ( 1 << i ) ) ) {
ADDRGP4 cg+36
INDIRP4
CNSTI4 240
ADDP4
INDIRI4
CNSTI4 1
ADDRFP4 0
INDIRI4
LSHI4
BANDI4
CNSTI4 0
NEI4 $1013
line 1528
;1528:		return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $1009
JUMPV
LABELV $1013
line 1531
;1529:	}
;1530:
;1531:	return qtrue;
CNSTI4 1
RETI4
LABELV $1009
endproc CG_WeaponSelectable 0 0
export CG_NextWeapon_f
proc CG_NextWeapon_f 16 4
line 1539
;1532:}
;1533:
;1534:/*
;1535:===============
;1536:CG_NextWeapon_f
;1537:===============
;1538:*/
;1539:void CG_NextWeapon_f( void ) {
line 1543
;1540:	int		i;
;1541:	int		original;
;1542:
;1543:	if ( !cg.snap ) {
ADDRGP4 cg+36
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $1017
line 1544
;1544:		return;
ADDRGP4 $1016
JUMPV
LABELV $1017
line 1546
;1545:	}
;1546:	if ( cg.snap->ps.pm_flags & PMF_FOLLOW ) {
ADDRGP4 cg+36
INDIRP4
CNSTI4 56
ADDP4
INDIRI4
CNSTI4 4096
BANDI4
CNSTI4 0
EQI4 $1020
line 1547
;1547:		return;
ADDRGP4 $1016
JUMPV
LABELV $1020
line 1550
;1548:	}
;1549:
;1550:	cg.weaponSelectTime = cg.time;
ADDRGP4 cg+124676
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 1551
;1551:	original = cg.weaponSelect;
ADDRLP4 4
ADDRGP4 cg+108944
INDIRI4
ASGNI4
line 1553
;1552:
;1553:	for ( i = 0 ; i < 16 ; i++ ) {
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $1026
line 1554
;1554:		cg.weaponSelect++;
ADDRLP4 8
ADDRGP4 cg+108944
ASGNP4
ADDRLP4 8
INDIRP4
ADDRLP4 8
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1555
;1555:		if ( cg.weaponSelect == 16 ) {
ADDRGP4 cg+108944
INDIRI4
CNSTI4 16
NEI4 $1031
line 1556
;1556:			cg.weaponSelect = 0;
ADDRGP4 cg+108944
CNSTI4 0
ASGNI4
line 1557
;1557:		}
LABELV $1031
line 1558
;1558:		if ( cg.weaponSelect == WP_GAUNTLET ) {
ADDRGP4 cg+108944
INDIRI4
CNSTI4 1
NEI4 $1035
line 1559
;1559:			continue;		// never cycle to gauntlet
ADDRGP4 $1027
JUMPV
LABELV $1035
line 1561
;1560:		}
;1561:		if ( CG_WeaponSelectable( cg.weaponSelect ) ) {
ADDRGP4 cg+108944
INDIRI4
ARGI4
ADDRLP4 12
ADDRGP4 CG_WeaponSelectable
CALLI4
ASGNI4
ADDRLP4 12
INDIRI4
CNSTI4 0
EQI4 $1038
line 1562
;1562:			break;
ADDRGP4 $1028
JUMPV
LABELV $1038
line 1564
;1563:		}
;1564:	}
LABELV $1027
line 1553
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 16
LTI4 $1026
LABELV $1028
line 1565
;1565:	if ( i == 16 ) {
ADDRLP4 0
INDIRI4
CNSTI4 16
NEI4 $1041
line 1566
;1566:		cg.weaponSelect = original;
ADDRGP4 cg+108944
ADDRLP4 4
INDIRI4
ASGNI4
line 1567
;1567:	}
LABELV $1041
line 1568
;1568:}
LABELV $1016
endproc CG_NextWeapon_f 16 4
export CG_PrevWeapon_f
proc CG_PrevWeapon_f 16 4
line 1575
;1569:
;1570:/*
;1571:===============
;1572:CG_PrevWeapon_f
;1573:===============
;1574:*/
;1575:void CG_PrevWeapon_f( void ) {
line 1579
;1576:	int		i;
;1577:	int		original;
;1578:
;1579:	if ( !cg.snap ) {
ADDRGP4 cg+36
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $1045
line 1580
;1580:		return;
ADDRGP4 $1044
JUMPV
LABELV $1045
line 1582
;1581:	}
;1582:	if ( cg.snap->ps.pm_flags & PMF_FOLLOW ) {
ADDRGP4 cg+36
INDIRP4
CNSTI4 56
ADDP4
INDIRI4
CNSTI4 4096
BANDI4
CNSTI4 0
EQI4 $1048
line 1583
;1583:		return;
ADDRGP4 $1044
JUMPV
LABELV $1048
line 1586
;1584:	}
;1585:
;1586:	cg.weaponSelectTime = cg.time;
ADDRGP4 cg+124676
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 1587
;1587:	original = cg.weaponSelect;
ADDRLP4 4
ADDRGP4 cg+108944
INDIRI4
ASGNI4
line 1589
;1588:
;1589:	for ( i = 0 ; i < 16 ; i++ ) {
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $1054
line 1590
;1590:		cg.weaponSelect--;
ADDRLP4 8
ADDRGP4 cg+108944
ASGNP4
ADDRLP4 8
INDIRP4
ADDRLP4 8
INDIRP4
INDIRI4
CNSTI4 1
SUBI4
ASGNI4
line 1591
;1591:		if ( cg.weaponSelect == -1 ) {
ADDRGP4 cg+108944
INDIRI4
CNSTI4 -1
NEI4 $1059
line 1592
;1592:			cg.weaponSelect = 15;
ADDRGP4 cg+108944
CNSTI4 15
ASGNI4
line 1593
;1593:		}
LABELV $1059
line 1594
;1594:		if ( cg.weaponSelect == WP_GAUNTLET ) {
ADDRGP4 cg+108944
INDIRI4
CNSTI4 1
NEI4 $1063
line 1595
;1595:			continue;		// never cycle to gauntlet
ADDRGP4 $1055
JUMPV
LABELV $1063
line 1597
;1596:		}
;1597:		if ( CG_WeaponSelectable( cg.weaponSelect ) ) {
ADDRGP4 cg+108944
INDIRI4
ARGI4
ADDRLP4 12
ADDRGP4 CG_WeaponSelectable
CALLI4
ASGNI4
ADDRLP4 12
INDIRI4
CNSTI4 0
EQI4 $1066
line 1598
;1598:			break;
ADDRGP4 $1056
JUMPV
LABELV $1066
line 1600
;1599:		}
;1600:	}
LABELV $1055
line 1589
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 16
LTI4 $1054
LABELV $1056
line 1601
;1601:	if ( i == 16 ) {
ADDRLP4 0
INDIRI4
CNSTI4 16
NEI4 $1069
line 1602
;1602:		cg.weaponSelect = original;
ADDRGP4 cg+108944
ADDRLP4 4
INDIRI4
ASGNI4
line 1603
;1603:	}
LABELV $1069
line 1604
;1604:}
LABELV $1044
endproc CG_PrevWeapon_f 16 4
export CG_Weapon_f
proc CG_Weapon_f 16 4
line 1611
;1605:
;1606:/*
;1607:===============
;1608:CG_Weapon_f
;1609:===============
;1610:*/
;1611:void CG_Weapon_f( void ) {
line 1614
;1612:	int		num;
;1613:
;1614:	if ( !cg.snap ) {
ADDRGP4 cg+36
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $1073
line 1615
;1615:		return;
ADDRGP4 $1072
JUMPV
LABELV $1073
line 1617
;1616:	}
;1617:	if ( cg.snap->ps.pm_flags & PMF_FOLLOW ) {
ADDRGP4 cg+36
INDIRP4
CNSTI4 56
ADDP4
INDIRI4
CNSTI4 4096
BANDI4
CNSTI4 0
EQI4 $1076
line 1618
;1618:		return;
ADDRGP4 $1072
JUMPV
LABELV $1076
line 1621
;1619:	}
;1620:
;1621:	num = atoi( CG_Argv( 1 ) );
CNSTI4 1
ARGI4
ADDRLP4 4
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 8
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
ADDRLP4 8
INDIRI4
ASGNI4
line 1623
;1622:
;1623:	if ( num < 1 || num > 15 ) {
ADDRLP4 0
INDIRI4
CNSTI4 1
LTI4 $1081
ADDRLP4 0
INDIRI4
CNSTI4 15
LEI4 $1079
LABELV $1081
line 1624
;1624:		return;
ADDRGP4 $1072
JUMPV
LABELV $1079
line 1627
;1625:	}
;1626:
;1627:	cg.weaponSelectTime = cg.time;
ADDRGP4 cg+124676
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 1629
;1628:
;1629:	if ( ! ( cg.snap->ps.stats[STAT_WEAPONS] & ( 1 << num ) ) ) {
ADDRGP4 cg+36
INDIRP4
CNSTI4 240
ADDP4
INDIRI4
CNSTI4 1
ADDRLP4 0
INDIRI4
LSHI4
BANDI4
CNSTI4 0
NEI4 $1084
line 1630
;1630:		return;		// don't have the weapon
ADDRGP4 $1072
JUMPV
LABELV $1084
line 1633
;1631:	}
;1632:
;1633:	cg.weaponSelect = num;
ADDRGP4 cg+108944
ADDRLP4 0
INDIRI4
ASGNI4
line 1634
;1634:}
LABELV $1072
endproc CG_Weapon_f 16 4
export CG_OutOfAmmoChange
proc CG_OutOfAmmoChange 8 4
line 1643
;1635:
;1636:/*
;1637:===================
;1638:CG_OutOfAmmoChange
;1639:
;1640:The current weapon has just run out of ammo
;1641:===================
;1642:*/
;1643:void CG_OutOfAmmoChange( void ) {
line 1646
;1644:	int		i;
;1645:
;1646:	cg.weaponSelectTime = cg.time;
ADDRGP4 cg+124676
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 1648
;1647:
;1648:	for ( i = 15 ; i > 0 ; i-- ) {
ADDRLP4 0
CNSTI4 15
ASGNI4
LABELV $1091
line 1649
;1649:		if ( CG_WeaponSelectable( i ) ) {
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 4
ADDRGP4 CG_WeaponSelectable
CALLI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 0
EQI4 $1095
line 1650
;1650:			cg.weaponSelect = i;
ADDRGP4 cg+108944
ADDRLP4 0
INDIRI4
ASGNI4
line 1651
;1651:			break;
ADDRGP4 $1093
JUMPV
LABELV $1095
line 1653
;1652:		}
;1653:	}
LABELV $1092
line 1648
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
SUBI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 0
GTI4 $1091
LABELV $1093
line 1654
;1654:}
LABELV $1088
endproc CG_OutOfAmmoChange 8 4
export CG_FireWeapon
proc CG_FireWeapon 20 16
line 1673
;1655:
;1656:
;1657:
;1658:/*
;1659:===================================================================================================
;1660:
;1661:WEAPON EVENTS
;1662:
;1663:===================================================================================================
;1664:*/
;1665:
;1666:/*
;1667:================
;1668:CG_FireWeapon
;1669:
;1670:Caused by an EV_FIRE_WEAPON event
;1671:================
;1672:*/
;1673:void CG_FireWeapon( centity_t *cent ) {
line 1678
;1674:	entityState_t *ent;
;1675:	int				c;
;1676:	weaponInfo_t	*weap;
;1677:
;1678:	ent = &cent->currentState;
ADDRLP4 8
ADDRFP4 0
INDIRP4
ASGNP4
line 1679
;1679:	if ( ent->weapon == WP_NONE ) {
ADDRLP4 8
INDIRP4
CNSTI4 192
ADDP4
INDIRI4
CNSTI4 0
NEI4 $1099
line 1680
;1680:		return;
ADDRGP4 $1098
JUMPV
LABELV $1099
line 1682
;1681:	}
;1682:	if ( ent->weapon >= WP_NUM_WEAPONS ) {
ADDRLP4 8
INDIRP4
CNSTI4 192
ADDP4
INDIRI4
CNSTI4 14
LTI4 $1101
line 1683
;1683:		CG_Error( "CG_FireWeapon: ent->weapon >= WP_NUM_WEAPONS" );
ADDRGP4 $1103
ARGP4
ADDRGP4 CG_Error
CALLV
pop
line 1684
;1684:		return;
ADDRGP4 $1098
JUMPV
LABELV $1101
line 1686
;1685:	}
;1686:	weap = &cg_weapons[ ent->weapon ];
ADDRLP4 4
CNSTI4 136
ADDRLP4 8
INDIRP4
CNSTI4 192
ADDP4
INDIRI4
MULI4
ADDRGP4 cg_weapons
ADDP4
ASGNP4
line 1690
;1687:
;1688:	// mark the entity as muzzle flashing, so when it is added it will
;1689:	// append the flash to the weapon model
;1690:	cent->muzzleFlashTime = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 424
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 1693
;1691:
;1692:	// lightning gun only does this this on initial press
;1693:	if ( ent->weapon == WP_LIGHTNING ) {
ADDRLP4 8
INDIRP4
CNSTI4 192
ADDP4
INDIRI4
CNSTI4 6
NEI4 $1105
line 1694
;1694:		if ( cent->pe.lightningFiring ) {
ADDRFP4 0
INDIRP4
CNSTI4 604
ADDP4
INDIRI4
CNSTI4 0
EQI4 $1107
line 1695
;1695:			return;
ADDRGP4 $1098
JUMPV
LABELV $1107
line 1697
;1696:		}
;1697:	}
LABELV $1105
line 1700
;1698:
;1699:	// play quad sound if needed
;1700:	if ( cent->currentState.powerups & ( 1 << PW_QUAD ) ) {
ADDRFP4 0
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
CNSTI4 2
BANDI4
CNSTI4 0
EQI4 $1109
line 1701
;1701:		trap_S_StartSound (NULL, cent->currentState.number, CHAN_ITEM, cgs.media.quadSound );
CNSTP4 0
ARGP4
ADDRFP4 0
INDIRP4
INDIRI4
ARGI4
CNSTI4 4
ARGI4
ADDRGP4 cgs+152340+620
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
line 1702
;1702:	}
LABELV $1109
line 1705
;1703:
;1704:	// play a sound
;1705:	for ( c = 0 ; c < 4 ; c++ ) {
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $1113
line 1706
;1706:		if ( !weap->flashSound[c] ) {
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 4
INDIRP4
CNSTI4 52
ADDP4
ADDP4
INDIRI4
CNSTI4 0
NEI4 $1117
line 1707
;1707:			break;
ADDRGP4 $1115
JUMPV
LABELV $1117
line 1709
;1708:		}
;1709:	}
LABELV $1114
line 1705
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 4
LTI4 $1113
LABELV $1115
line 1710
;1710:	if ( c > 0 ) {
ADDRLP4 0
INDIRI4
CNSTI4 0
LEI4 $1119
line 1711
;1711:		c = rand() % c;
ADDRLP4 12
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 0
ADDRLP4 12
INDIRI4
ADDRLP4 0
INDIRI4
MODI4
ASGNI4
line 1712
;1712:		if ( weap->flashSound[c] )
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 4
INDIRP4
CNSTI4 52
ADDP4
ADDP4
INDIRI4
CNSTI4 0
EQI4 $1121
line 1713
;1713:		{
line 1714
;1714:			trap_S_StartSound( NULL, ent->number, CHAN_WEAPON, weap->flashSound[c] );
CNSTP4 0
ARGP4
ADDRLP4 8
INDIRP4
INDIRI4
ARGI4
ADDRLP4 16
CNSTI4 2
ASGNI4
ADDRLP4 16
INDIRI4
ARGI4
ADDRLP4 0
INDIRI4
ADDRLP4 16
INDIRI4
LSHI4
ADDRLP4 4
INDIRP4
CNSTI4 52
ADDP4
ADDP4
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
line 1715
;1715:		}
LABELV $1121
line 1716
;1716:	}
LABELV $1119
line 1719
;1717:
;1718:	// do brass ejection
;1719:	if ( weap->ejectBrassFunc && cg_brassTime.integer > 0 ) {
ADDRLP4 4
INDIRP4
CNSTI4 112
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $1123
ADDRGP4 cg_brassTime+12
INDIRI4
CNSTI4 0
LEI4 $1123
line 1720
;1720:		weap->ejectBrassFunc( cent );
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 4
INDIRP4
CNSTI4 112
ADDP4
INDIRP4
CALLV
pop
line 1721
;1721:	}
LABELV $1123
line 1722
;1722:}
LABELV $1098
endproc CG_FireWeapon 20 16
export CG_MissileHitWall
proc CG_MissileHitWall 120 44
line 1732
;1723:
;1724:
;1725:/*
;1726:=================
;1727:CG_MissileHitWall
;1728:
;1729:Caused by an EV_MISSILE_MISS event, or directly by local bullet tracing
;1730:=================
;1731:*/
;1732:void CG_MissileHitWall( int weapon, int clientNum, vec3_t origin, vec3_t dir, impactSound_t soundType ) {
line 1748
;1733:	qhandle_t		mod;
;1734:	qhandle_t		mark;
;1735:	qhandle_t		shader;
;1736:	sfxHandle_t		sfx;
;1737:	float			radius;
;1738:	float			light;
;1739:	vec3_t			lightColor;
;1740:	localEntity_t	*le;
;1741:	int				r;
;1742:	qboolean		alphaFade;
;1743:	qboolean		isSprite;
;1744:	int				duration;
;1745:	vec3_t			sprOrg;
;1746:	vec3_t			sprVel;
;1747:
;1748:	mark = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 1749
;1749:	radius = 32;
ADDRLP4 24
CNSTF4 1107296256
ASGNF4
line 1750
;1750:	sfx = 0;
ADDRLP4 16
CNSTI4 0
ASGNI4
line 1751
;1751:	mod = 0;
ADDRLP4 20
CNSTI4 0
ASGNI4
line 1752
;1752:	shader = 0;
ADDRLP4 28
CNSTI4 0
ASGNI4
line 1753
;1753:	light = 0;
ADDRLP4 40
CNSTF4 0
ASGNF4
line 1754
;1754:	lightColor[0] = 1;
ADDRLP4 4
CNSTF4 1065353216
ASGNF4
line 1755
;1755:	lightColor[1] = 1;
ADDRLP4 4+4
CNSTF4 1065353216
ASGNF4
line 1756
;1756:	lightColor[2] = 0;
ADDRLP4 4+8
CNSTF4 0
ASGNF4
line 1759
;1757:
;1758:	// set defaults
;1759:	isSprite = qfalse;
ADDRLP4 36
CNSTI4 0
ASGNI4
line 1760
;1760:	duration = 600;
ADDRLP4 48
CNSTI4 600
ASGNI4
line 1762
;1761:
;1762:	switch ( weapon ) {
ADDRLP4 80
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 84
CNSTI4 2
ASGNI4
ADDRLP4 80
INDIRI4
ADDRLP4 84
INDIRI4
LTI4 $1129
ADDRLP4 80
INDIRI4
CNSTI4 13
GTI4 $1129
ADDRLP4 80
INDIRI4
ADDRLP4 84
INDIRI4
LSHI4
ADDRGP4 $1270-8
ADDP4
INDIRP4
JUMPV
lit
align 4
LABELV $1270
address $1253
address $1221
address $1166
address $1175
address $1144
address $1194
address $1203
address $1212
address $1129
address $1131
address $1157
address $1228
code
LABELV $1129
LABELV $1131
line 1766
;1763:	default:
;1764:#ifdef MISSIONPACK
;1765:	case WP_NAILGUN:
;1766:		if( soundType == IMPACTSOUND_FLESH ) {
ADDRFP4 16
INDIRI4
CNSTI4 2
NEI4 $1132
line 1767
;1767:			sfx = cgs.media.sfx_nghitflesh;
ADDRLP4 16
ADDRGP4 cgs+152340+796
INDIRI4
ASGNI4
line 1768
;1768:		} else if( soundType == IMPACTSOUND_METAL ) {
ADDRGP4 $1133
JUMPV
LABELV $1132
ADDRFP4 16
INDIRI4
CNSTI4 1
NEI4 $1136
line 1769
;1769:			sfx = cgs.media.sfx_nghitmetal;
ADDRLP4 16
ADDRGP4 cgs+152340+800
INDIRI4
ASGNI4
line 1770
;1770:		} else {
ADDRGP4 $1137
JUMPV
LABELV $1136
line 1771
;1771:			sfx = cgs.media.sfx_nghit;
ADDRLP4 16
ADDRGP4 cgs+152340+792
INDIRI4
ASGNI4
line 1772
;1772:		}
LABELV $1137
LABELV $1133
line 1773
;1773:		mark = cgs.media.holeMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+424
INDIRI4
ASGNI4
line 1774
;1774:		radius = 12;
ADDRLP4 24
CNSTF4 1094713344
ASGNF4
line 1775
;1775:		break;
ADDRGP4 $1130
JUMPV
LABELV $1144
line 1779
;1776:#endif
;1777:	case WP_LIGHTNING:
;1778:		// no explosion at LG impact, it is added with the beam
;1779:		r = rand() & 3;
ADDRLP4 88
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 52
ADDRLP4 88
INDIRI4
CNSTI4 3
BANDI4
ASGNI4
line 1780
;1780:		if ( r < 2 ) {
ADDRLP4 52
INDIRI4
CNSTI4 2
GEI4 $1145
line 1781
;1781:			sfx = cgs.media.sfx_lghit2;
ADDRLP4 16
ADDRGP4 cgs+152340+756
INDIRI4
ASGNI4
line 1782
;1782:		} else if ( r == 2 ) {
ADDRGP4 $1146
JUMPV
LABELV $1145
ADDRLP4 52
INDIRI4
CNSTI4 2
NEI4 $1149
line 1783
;1783:			sfx = cgs.media.sfx_lghit1;
ADDRLP4 16
ADDRGP4 cgs+152340+752
INDIRI4
ASGNI4
line 1784
;1784:		} else {
ADDRGP4 $1150
JUMPV
LABELV $1149
line 1785
;1785:			sfx = cgs.media.sfx_lghit3;
ADDRLP4 16
ADDRGP4 cgs+152340+760
INDIRI4
ASGNI4
line 1786
;1786:		}
LABELV $1150
LABELV $1146
line 1787
;1787:		mark = cgs.media.holeMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+424
INDIRI4
ASGNI4
line 1788
;1788:		radius = 12;
ADDRLP4 24
CNSTF4 1094713344
ASGNF4
line 1789
;1789:		break;
ADDRGP4 $1130
JUMPV
LABELV $1157
line 1792
;1790:#ifdef MISSIONPACK
;1791:	case WP_PROX_LAUNCHER:
;1792:		mod = cgs.media.dishFlashModel;
ADDRLP4 20
ADDRGP4 cgs+152340+480
INDIRI4
ASGNI4
line 1793
;1793:		shader = cgs.media.grenadeExplosionShader;
ADDRLP4 28
ADDRGP4 cgs+152340+504
INDIRI4
ASGNI4
line 1794
;1794:		sfx = cgs.media.sfx_proxexp;
ADDRLP4 16
ADDRGP4 cgs+152340+788
INDIRI4
ASGNI4
line 1795
;1795:		mark = cgs.media.burnMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+420
INDIRI4
ASGNI4
line 1796
;1796:		radius = 64;
ADDRLP4 24
CNSTF4 1115684864
ASGNF4
line 1797
;1797:		light = 300;
ADDRLP4 40
CNSTF4 1133903872
ASGNF4
line 1798
;1798:		isSprite = qtrue;
ADDRLP4 36
CNSTI4 1
ASGNI4
line 1799
;1799:		break;
ADDRGP4 $1130
JUMPV
LABELV $1166
line 1802
;1800:#endif
;1801:	case WP_GRENADE_LAUNCHER:
;1802:		mod = cgs.media.dishFlashModel;
ADDRLP4 20
ADDRGP4 cgs+152340+480
INDIRI4
ASGNI4
line 1803
;1803:		shader = cgs.media.grenadeExplosionShader;
ADDRLP4 28
ADDRGP4 cgs+152340+504
INDIRI4
ASGNI4
line 1804
;1804:		sfx = cgs.media.sfx_rockexp;
ADDRLP4 16
ADDRGP4 cgs+152340+780
INDIRI4
ASGNI4
line 1805
;1805:		mark = cgs.media.burnMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+420
INDIRI4
ASGNI4
line 1806
;1806:		radius = 64;
ADDRLP4 24
CNSTF4 1115684864
ASGNF4
line 1807
;1807:		light = 300;
ADDRLP4 40
CNSTF4 1133903872
ASGNF4
line 1808
;1808:		isSprite = qtrue;
ADDRLP4 36
CNSTI4 1
ASGNI4
line 1809
;1809:		break;
ADDRGP4 $1130
JUMPV
LABELV $1175
line 1811
;1810:	case WP_ROCKET_LAUNCHER:
;1811:		mod = cgs.media.dishFlashModel;
ADDRLP4 20
ADDRGP4 cgs+152340+480
INDIRI4
ASGNI4
line 1812
;1812:		shader = cgs.media.rocketExplosionShader;
ADDRLP4 28
ADDRGP4 cgs+152340+500
INDIRI4
ASGNI4
line 1813
;1813:		sfx = cgs.media.sfx_rockexp;
ADDRLP4 16
ADDRGP4 cgs+152340+780
INDIRI4
ASGNI4
line 1814
;1814:		mark = cgs.media.burnMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+420
INDIRI4
ASGNI4
line 1815
;1815:		radius = 64;
ADDRLP4 24
CNSTF4 1115684864
ASGNF4
line 1816
;1816:		light = 300;
ADDRLP4 40
CNSTF4 1133903872
ASGNF4
line 1817
;1817:		isSprite = qtrue;
ADDRLP4 36
CNSTI4 1
ASGNI4
line 1818
;1818:		duration = 1000;
ADDRLP4 48
CNSTI4 1000
ASGNI4
line 1819
;1819:		lightColor[0] = 1;
ADDRLP4 4
CNSTF4 1065353216
ASGNF4
line 1820
;1820:		lightColor[1] = 0.75;
ADDRLP4 4+4
CNSTF4 1061158912
ASGNF4
line 1821
;1821:		lightColor[2] = 0.0;
ADDRLP4 4+8
CNSTF4 0
ASGNF4
line 1822
;1822:		if (cg_oldRocket.integer == 0) {
ADDRGP4 cg_oldRocket+12
INDIRI4
CNSTI4 0
NEI4 $1130
line 1824
;1823:			// explosion sprite animation
;1824:			VectorMA( origin, 24, dir, sprOrg );
ADDRLP4 92
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 96
CNSTF4 1103101952
ASGNF4
ADDRLP4 100
ADDRFP4 12
INDIRP4
ASGNP4
ADDRLP4 56
ADDRLP4 92
INDIRP4
INDIRF4
ADDRLP4 96
INDIRF4
ADDRLP4 100
INDIRP4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 104
CNSTI4 4
ASGNI4
ADDRLP4 56+4
ADDRLP4 92
INDIRP4
ADDRLP4 104
INDIRI4
ADDP4
INDIRF4
ADDRLP4 96
INDIRF4
ADDRLP4 100
INDIRP4
ADDRLP4 104
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 108
CNSTI4 8
ASGNI4
ADDRLP4 56+8
ADDRFP4 8
INDIRP4
ADDRLP4 108
INDIRI4
ADDP4
INDIRF4
CNSTF4 1103101952
ADDRFP4 12
INDIRP4
ADDRLP4 108
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1825
;1825:			VectorScale( dir, 64, sprVel );
ADDRLP4 112
CNSTF4 1115684864
ASGNF4
ADDRLP4 116
ADDRFP4 12
INDIRP4
ASGNP4
ADDRLP4 68
ADDRLP4 112
INDIRF4
ADDRLP4 116
INDIRP4
INDIRF4
MULF4
ASGNF4
ADDRLP4 68+4
ADDRLP4 112
INDIRF4
ADDRLP4 116
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ASGNF4
ADDRLP4 68+8
CNSTF4 1115684864
ADDRFP4 12
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ASGNF4
line 1827
;1826:
;1827:			CG_ParticleExplosion( "explode1", sprOrg, sprVel, 1400, 20, 30 );
ADDRGP4 $1193
ARGP4
ADDRLP4 56
ARGP4
ADDRLP4 68
ARGP4
CNSTI4 1400
ARGI4
CNSTI4 20
ARGI4
CNSTI4 30
ARGI4
ADDRGP4 CG_ParticleExplosion
CALLV
pop
line 1828
;1828:		}
line 1829
;1829:		break;
ADDRGP4 $1130
JUMPV
LABELV $1194
line 1831
;1830:	case WP_RAILGUN:
;1831:		mod = cgs.media.ringFlashModel;
ADDRLP4 20
ADDRGP4 cgs+152340+476
INDIRI4
ASGNI4
line 1832
;1832:		shader = cgs.media.railExplosionShader;
ADDRLP4 28
ADDRGP4 cgs+152340+488
INDIRI4
ASGNI4
line 1833
;1833:		sfx = cgs.media.sfx_plasmaexp;
ADDRLP4 16
ADDRGP4 cgs+152340+784
INDIRI4
ASGNI4
line 1834
;1834:		mark = cgs.media.energyMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+428
INDIRI4
ASGNI4
line 1835
;1835:		radius = 24;
ADDRLP4 24
CNSTF4 1103101952
ASGNF4
line 1836
;1836:		break;
ADDRGP4 $1130
JUMPV
LABELV $1203
line 1838
;1837:	case WP_PLASMAGUN:
;1838:		mod = cgs.media.ringFlashModel;
ADDRLP4 20
ADDRGP4 cgs+152340+476
INDIRI4
ASGNI4
line 1839
;1839:		shader = cgs.media.plasmaExplosionShader;
ADDRLP4 28
ADDRGP4 cgs+152340+492
INDIRI4
ASGNI4
line 1840
;1840:		sfx = cgs.media.sfx_plasmaexp;
ADDRLP4 16
ADDRGP4 cgs+152340+784
INDIRI4
ASGNI4
line 1841
;1841:		mark = cgs.media.energyMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+428
INDIRI4
ASGNI4
line 1842
;1842:		radius = 16;
ADDRLP4 24
CNSTF4 1098907648
ASGNF4
line 1843
;1843:		break;
ADDRGP4 $1130
JUMPV
LABELV $1212
line 1845
;1844:	case WP_BFG:
;1845:		mod = cgs.media.dishFlashModel;
ADDRLP4 20
ADDRGP4 cgs+152340+480
INDIRI4
ASGNI4
line 1846
;1846:		shader = cgs.media.bfgExplosionShader;
ADDRLP4 28
ADDRGP4 cgs+152340+508
INDIRI4
ASGNI4
line 1847
;1847:		sfx = cgs.media.sfx_rockexp;
ADDRLP4 16
ADDRGP4 cgs+152340+780
INDIRI4
ASGNI4
line 1848
;1848:		mark = cgs.media.burnMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+420
INDIRI4
ASGNI4
line 1849
;1849:		radius = 32;
ADDRLP4 24
CNSTF4 1107296256
ASGNF4
line 1850
;1850:		isSprite = qtrue;
ADDRLP4 36
CNSTI4 1
ASGNI4
line 1851
;1851:		break;
ADDRGP4 $1130
JUMPV
LABELV $1221
line 1853
;1852:	case WP_SHOTGUN:
;1853:		mod = cgs.media.bulletFlashModel;
ADDRLP4 20
ADDRGP4 cgs+152340+472
INDIRI4
ASGNI4
line 1854
;1854:		shader = cgs.media.bulletExplosionShader;
ADDRLP4 28
ADDRGP4 cgs+152340+496
INDIRI4
ASGNI4
line 1855
;1855:		mark = cgs.media.bulletMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+416
INDIRI4
ASGNI4
line 1856
;1856:		sfx = 0;
ADDRLP4 16
CNSTI4 0
ASGNI4
line 1857
;1857:		radius = 4;
ADDRLP4 24
CNSTF4 1082130432
ASGNF4
line 1858
;1858:		break;
ADDRGP4 $1130
JUMPV
LABELV $1228
line 1862
;1859:
;1860:#ifdef MISSIONPACK
;1861:	case WP_CHAINGUN:
;1862:		mod = cgs.media.bulletFlashModel;
ADDRLP4 20
ADDRGP4 cgs+152340+472
INDIRI4
ASGNI4
line 1863
;1863:		if( soundType == IMPACTSOUND_FLESH ) {
ADDRFP4 16
INDIRI4
CNSTI4 2
NEI4 $1231
line 1864
;1864:			sfx = cgs.media.sfx_chghitflesh;
ADDRLP4 16
ADDRGP4 cgs+152340+808
INDIRI4
ASGNI4
line 1865
;1865:		} else if( soundType == IMPACTSOUND_METAL ) {
ADDRGP4 $1232
JUMPV
LABELV $1231
ADDRFP4 16
INDIRI4
CNSTI4 1
NEI4 $1235
line 1866
;1866:			sfx = cgs.media.sfx_chghitmetal;
ADDRLP4 16
ADDRGP4 cgs+152340+812
INDIRI4
ASGNI4
line 1867
;1867:		} else {
ADDRGP4 $1236
JUMPV
LABELV $1235
line 1868
;1868:			sfx = cgs.media.sfx_chghit;
ADDRLP4 16
ADDRGP4 cgs+152340+804
INDIRI4
ASGNI4
line 1869
;1869:		}
LABELV $1236
LABELV $1232
line 1870
;1870:		mark = cgs.media.bulletMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+416
INDIRI4
ASGNI4
line 1872
;1871:
;1872:		r = rand() & 3;
ADDRLP4 92
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 52
ADDRLP4 92
INDIRI4
CNSTI4 3
BANDI4
ASGNI4
line 1873
;1873:		if ( r < 2 ) {
ADDRLP4 52
INDIRI4
CNSTI4 2
GEI4 $1243
line 1874
;1874:			sfx = cgs.media.sfx_ric1;
ADDRLP4 16
ADDRGP4 cgs+152340+764
INDIRI4
ASGNI4
line 1875
;1875:		} else if ( r == 2 ) {
ADDRGP4 $1244
JUMPV
LABELV $1243
ADDRLP4 52
INDIRI4
CNSTI4 2
NEI4 $1247
line 1876
;1876:			sfx = cgs.media.sfx_ric2;
ADDRLP4 16
ADDRGP4 cgs+152340+768
INDIRI4
ASGNI4
line 1877
;1877:		} else {
ADDRGP4 $1248
JUMPV
LABELV $1247
line 1878
;1878:			sfx = cgs.media.sfx_ric3;
ADDRLP4 16
ADDRGP4 cgs+152340+772
INDIRI4
ASGNI4
line 1879
;1879:		}
LABELV $1248
LABELV $1244
line 1881
;1880:
;1881:		radius = 8;
ADDRLP4 24
CNSTF4 1090519040
ASGNF4
line 1882
;1882:		break;
ADDRGP4 $1130
JUMPV
LABELV $1253
line 1886
;1883:#endif
;1884:
;1885:	case WP_MACHINEGUN:
;1886:		mod = cgs.media.bulletFlashModel;
ADDRLP4 20
ADDRGP4 cgs+152340+472
INDIRI4
ASGNI4
line 1887
;1887:		shader = cgs.media.bulletExplosionShader;
ADDRLP4 28
ADDRGP4 cgs+152340+496
INDIRI4
ASGNI4
line 1888
;1888:		mark = cgs.media.bulletMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+416
INDIRI4
ASGNI4
line 1890
;1889:
;1890:		r = rand() & 3;
ADDRLP4 96
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 52
ADDRLP4 96
INDIRI4
CNSTI4 3
BANDI4
ASGNI4
line 1891
;1891:		if ( r == 0 ) {
ADDRLP4 52
INDIRI4
CNSTI4 0
NEI4 $1260
line 1892
;1892:			sfx = cgs.media.sfx_ric1;
ADDRLP4 16
ADDRGP4 cgs+152340+764
INDIRI4
ASGNI4
line 1893
;1893:		} else if ( r == 1 ) {
ADDRGP4 $1261
JUMPV
LABELV $1260
ADDRLP4 52
INDIRI4
CNSTI4 1
NEI4 $1264
line 1894
;1894:			sfx = cgs.media.sfx_ric2;
ADDRLP4 16
ADDRGP4 cgs+152340+768
INDIRI4
ASGNI4
line 1895
;1895:		} else {
ADDRGP4 $1265
JUMPV
LABELV $1264
line 1896
;1896:			sfx = cgs.media.sfx_ric3;
ADDRLP4 16
ADDRGP4 cgs+152340+772
INDIRI4
ASGNI4
line 1897
;1897:		}
LABELV $1265
LABELV $1261
line 1899
;1898:
;1899:		radius = 8;
ADDRLP4 24
CNSTF4 1090519040
ASGNF4
line 1900
;1900:		break;
LABELV $1130
line 1903
;1901:	}
;1902:
;1903:	if ( sfx ) {
ADDRLP4 16
INDIRI4
CNSTI4 0
EQI4 $1272
line 1904
;1904:		trap_S_StartSound( origin, ENTITYNUM_WORLD, CHAN_AUTO, sfx );
ADDRFP4 8
INDIRP4
ARGP4
CNSTI4 1022
ARGI4
CNSTI4 0
ARGI4
ADDRLP4 16
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
line 1905
;1905:	}
LABELV $1272
line 1910
;1906:
;1907:	//
;1908:	// create the explosion
;1909:	//
;1910:	if ( mod ) {
ADDRLP4 20
INDIRI4
CNSTI4 0
EQI4 $1274
line 1911
;1911:		le = CG_MakeExplosion( origin, dir, 
ADDRFP4 8
INDIRP4
ARGP4
ADDRFP4 12
INDIRP4
ARGP4
ADDRLP4 20
INDIRI4
ARGI4
ADDRLP4 28
INDIRI4
ARGI4
ADDRLP4 48
INDIRI4
ARGI4
ADDRLP4 36
INDIRI4
ARGI4
ADDRLP4 88
ADDRGP4 CG_MakeExplosion
CALLP4
ASGNP4
ADDRLP4 44
ADDRLP4 88
INDIRP4
ASGNP4
line 1914
;1912:							   mod,	shader,
;1913:							   duration, isSprite );
;1914:		le->light = light;
ADDRLP4 44
INDIRP4
CNSTI4 128
ADDP4
ADDRLP4 40
INDIRF4
ASGNF4
line 1915
;1915:		VectorCopy( lightColor, le->lightColor );
ADDRLP4 44
INDIRP4
CNSTI4 132
ADDP4
ADDRLP4 4
INDIRB
ASGNB 12
line 1916
;1916:		if ( weapon == WP_RAILGUN ) {
ADDRFP4 0
INDIRI4
CNSTI4 7
NEI4 $1276
line 1918
;1917:			// colorize with client color
;1918:			VectorCopy( cgs.clientinfo[clientNum].color1, le->color );
ADDRLP4 44
INDIRP4
CNSTI4 108
ADDP4
CNSTI4 1708
ADDRFP4 4
INDIRI4
MULI4
ADDRGP4 cgs+40972+76
ADDP4
INDIRB
ASGNB 12
line 1919
;1919:		}
LABELV $1276
line 1920
;1920:	}
LABELV $1274
line 1925
;1921:
;1922:	//
;1923:	// impact mark
;1924:	//
;1925:	alphaFade = (mark == cgs.media.energyMarkShader);	// plasma fades alpha, all others fade color
ADDRLP4 0
INDIRI4
ADDRGP4 cgs+152340+428
INDIRI4
NEI4 $1283
ADDRLP4 88
CNSTI4 1
ASGNI4
ADDRGP4 $1284
JUMPV
LABELV $1283
ADDRLP4 88
CNSTI4 0
ASGNI4
LABELV $1284
ADDRLP4 32
ADDRLP4 88
INDIRI4
ASGNI4
line 1926
;1926:	if ( weapon == WP_RAILGUN ) {
ADDRFP4 0
INDIRI4
CNSTI4 7
NEI4 $1285
line 1930
;1927:		float	*color;
;1928:
;1929:		// colorize with client color
;1930:		color = cgs.clientinfo[clientNum].color2;
ADDRLP4 92
CNSTI4 1708
ADDRFP4 4
INDIRI4
MULI4
ADDRGP4 cgs+40972+88
ADDP4
ASGNP4
line 1931
;1931:		CG_ImpactMark( mark, origin, dir, random()*360, color[0],color[1], color[2],1, alphaFade, radius, qfalse );
ADDRLP4 96
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
ARGI4
ADDRFP4 8
INDIRP4
ARGP4
ADDRFP4 12
INDIRP4
ARGP4
CNSTF4 1135869952
ADDRLP4 96
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
MULF4
ARGF4
ADDRLP4 100
ADDRLP4 92
INDIRP4
ASGNP4
ADDRLP4 100
INDIRP4
INDIRF4
ARGF4
ADDRLP4 100
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ARGF4
ADDRLP4 100
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ARGF4
CNSTF4 1065353216
ARGF4
ADDRLP4 32
INDIRI4
ARGI4
ADDRLP4 24
INDIRF4
ARGF4
CNSTI4 0
ARGI4
ADDRGP4 CG_ImpactMark
CALLV
pop
line 1932
;1932:	} else {
ADDRGP4 $1286
JUMPV
LABELV $1285
line 1933
;1933:		CG_ImpactMark( mark, origin, dir, random()*360, 1,1,1,1, alphaFade, radius, qfalse );
ADDRLP4 92
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
ARGI4
ADDRFP4 8
INDIRP4
ARGP4
ADDRFP4 12
INDIRP4
ARGP4
CNSTF4 1135869952
ADDRLP4 92
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
MULF4
ARGF4
ADDRLP4 96
CNSTF4 1065353216
ASGNF4
ADDRLP4 96
INDIRF4
ARGF4
ADDRLP4 96
INDIRF4
ARGF4
ADDRLP4 96
INDIRF4
ARGF4
ADDRLP4 96
INDIRF4
ARGF4
ADDRLP4 32
INDIRI4
ARGI4
ADDRLP4 24
INDIRF4
ARGF4
CNSTI4 0
ARGI4
ADDRGP4 CG_ImpactMark
CALLV
pop
line 1934
;1934:	}
LABELV $1286
line 1935
;1935:}
LABELV $1126
endproc CG_MissileHitWall 120 44
export CG_MissileHitPlayer
proc CG_MissileHitPlayer 4 20
line 1943
;1936:
;1937:
;1938:/*
;1939:=================
;1940:CG_MissileHitPlayer
;1941:=================
;1942:*/
;1943:void CG_MissileHitPlayer( int weapon, vec3_t origin, vec3_t dir, int entityNum ) {
line 1944
;1944:	CG_Bleed( origin, entityNum );
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 12
INDIRI4
ARGI4
ADDRGP4 CG_Bleed
CALLV
pop
line 1948
;1945:
;1946:	// some weapons will make an explosion with the blood, while
;1947:	// others will just make the blood
;1948:	switch ( weapon ) {
ADDRLP4 0
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 4
LTI4 $1291
ADDRLP4 0
INDIRI4
CNSTI4 13
GTI4 $1291
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 $1293-16
ADDP4
INDIRP4
JUMPV
lit
align 4
LABELV $1293
address $1292
address $1292
address $1291
address $1291
address $1291
address $1291
address $1291
address $1292
address $1292
address $1292
code
LABELV $1292
line 1956
;1949:	case WP_GRENADE_LAUNCHER:
;1950:	case WP_ROCKET_LAUNCHER:
;1951:#ifdef MISSIONPACK
;1952:	case WP_NAILGUN:
;1953:	case WP_CHAINGUN:
;1954:	case WP_PROX_LAUNCHER:
;1955:#endif
;1956:		CG_MissileHitWall( weapon, 0, origin, dir, IMPACTSOUND_FLESH );
ADDRFP4 0
INDIRI4
ARGI4
CNSTI4 0
ARGI4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
ARGP4
CNSTI4 2
ARGI4
ADDRGP4 CG_MissileHitWall
CALLV
pop
line 1957
;1957:		break;
line 1959
;1958:	default:
;1959:		break;
LABELV $1291
line 1961
;1960:	}
;1961:}
LABELV $1289
endproc CG_MissileHitPlayer 4 20
proc CG_ShotgunPellet 136 28
line 1978
;1962:
;1963:
;1964:
;1965:/*
;1966:============================================================================
;1967:
;1968:SHOTGUN TRACING
;1969:
;1970:============================================================================
;1971:*/
;1972:
;1973:/*
;1974:================
;1975:CG_ShotgunPellet
;1976:================
;1977:*/
;1978:static void CG_ShotgunPellet( vec3_t start, vec3_t end, int skipNum ) {
line 1982
;1979:	trace_t		tr;
;1980:	int sourceContentType, destContentType;
;1981:
;1982:	CG_Trace( &tr, start, NULL, NULL, end, skipNum, MASK_SHOT );
ADDRLP4 0
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 64
CNSTP4 0
ASGNP4
ADDRLP4 64
INDIRP4
ARGP4
ADDRLP4 64
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRI4
ARGI4
CNSTI4 100663297
ARGI4
ADDRGP4 CG_Trace
CALLV
pop
line 1984
;1983:
;1984:	sourceContentType = trap_CM_PointContents( start, 0 );
ADDRFP4 0
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 68
ADDRGP4 trap_CM_PointContents
CALLI4
ASGNI4
ADDRLP4 56
ADDRLP4 68
INDIRI4
ASGNI4
line 1985
;1985:	destContentType = trap_CM_PointContents( tr.endpos, 0 );
ADDRLP4 0+12
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 72
ADDRGP4 trap_CM_PointContents
CALLI4
ASGNI4
ADDRLP4 60
ADDRLP4 72
INDIRI4
ASGNI4
line 1988
;1986:
;1987:	// FIXME: should probably move this cruft into CG_BubbleTrail
;1988:	if ( sourceContentType == destContentType ) {
ADDRLP4 56
INDIRI4
ADDRLP4 60
INDIRI4
NEI4 $1297
line 1989
;1989:		if ( sourceContentType & CONTENTS_WATER ) {
ADDRLP4 56
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $1298
line 1990
;1990:			CG_BubbleTrail( start, tr.endpos, 32 );
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 0+12
ARGP4
CNSTF4 1107296256
ARGF4
ADDRGP4 CG_BubbleTrail
CALLV
pop
line 1991
;1991:		}
line 1992
;1992:	} else if ( sourceContentType & CONTENTS_WATER ) {
ADDRGP4 $1298
JUMPV
LABELV $1297
ADDRLP4 56
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $1302
line 1995
;1993:		trace_t trace;
;1994:
;1995:		trap_CM_BoxTrace( &trace, end, start, NULL, NULL, 0, CONTENTS_WATER );
ADDRLP4 76
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 132
CNSTP4 0
ASGNP4
ADDRLP4 132
INDIRP4
ARGP4
ADDRLP4 132
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 32
ARGI4
ADDRGP4 trap_CM_BoxTrace
CALLV
pop
line 1996
;1996:		CG_BubbleTrail( start, trace.endpos, 32 );
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 76+12
ARGP4
CNSTF4 1107296256
ARGF4
ADDRGP4 CG_BubbleTrail
CALLV
pop
line 1997
;1997:	} else if ( destContentType & CONTENTS_WATER ) {
ADDRGP4 $1303
JUMPV
LABELV $1302
ADDRLP4 60
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $1305
line 2000
;1998:		trace_t trace;
;1999:
;2000:		trap_CM_BoxTrace( &trace, start, end, NULL, NULL, 0, CONTENTS_WATER );
ADDRLP4 76
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRLP4 132
CNSTP4 0
ASGNP4
ADDRLP4 132
INDIRP4
ARGP4
ADDRLP4 132
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 32
ARGI4
ADDRGP4 trap_CM_BoxTrace
CALLV
pop
line 2001
;2001:		CG_BubbleTrail( tr.endpos, trace.endpos, 32 );
ADDRLP4 0+12
ARGP4
ADDRLP4 76+12
ARGP4
CNSTF4 1107296256
ARGF4
ADDRGP4 CG_BubbleTrail
CALLV
pop
line 2002
;2002:	}
LABELV $1305
LABELV $1303
LABELV $1298
line 2004
;2003:
;2004:	if (  tr.surfaceFlags & SURF_NOIMPACT ) {
ADDRLP4 0+44
INDIRI4
CNSTI4 16
BANDI4
CNSTI4 0
EQI4 $1309
line 2005
;2005:		return;
ADDRGP4 $1295
JUMPV
LABELV $1309
line 2008
;2006:	}
;2007:
;2008:	if ( cg_entities[tr.entityNum].currentState.eType == ET_PLAYER ) {
CNSTI4 728
ADDRLP4 0+52
INDIRI4
MULI4
ADDRGP4 cg_entities+4
ADDP4
INDIRI4
CNSTI4 1
NEI4 $1312
line 2009
;2009:		CG_MissileHitPlayer( WP_SHOTGUN, tr.endpos, tr.plane.normal, tr.entityNum );
CNSTI4 3
ARGI4
ADDRLP4 0+12
ARGP4
ADDRLP4 0+24
ARGP4
ADDRLP4 0+52
INDIRI4
ARGI4
ADDRGP4 CG_MissileHitPlayer
CALLV
pop
line 2010
;2010:	} else {
ADDRGP4 $1313
JUMPV
LABELV $1312
line 2011
;2011:		if ( tr.surfaceFlags & SURF_NOIMPACT ) {
ADDRLP4 0+44
INDIRI4
CNSTI4 16
BANDI4
CNSTI4 0
EQI4 $1319
line 2013
;2012:			// SURF_NOIMPACT will not make a flame puff or a mark
;2013:			return;
ADDRGP4 $1295
JUMPV
LABELV $1319
line 2015
;2014:		}
;2015:		if ( tr.surfaceFlags & SURF_METALSTEPS ) {
ADDRLP4 0+44
INDIRI4
CNSTI4 4096
BANDI4
CNSTI4 0
EQI4 $1322
line 2016
;2016:			CG_MissileHitWall( WP_SHOTGUN, 0, tr.endpos, tr.plane.normal, IMPACTSOUND_METAL );
CNSTI4 3
ARGI4
CNSTI4 0
ARGI4
ADDRLP4 0+12
ARGP4
ADDRLP4 0+24
ARGP4
CNSTI4 1
ARGI4
ADDRGP4 CG_MissileHitWall
CALLV
pop
line 2017
;2017:		} else {
ADDRGP4 $1323
JUMPV
LABELV $1322
line 2018
;2018:			CG_MissileHitWall( WP_SHOTGUN, 0, tr.endpos, tr.plane.normal, IMPACTSOUND_DEFAULT );
CNSTI4 3
ARGI4
ADDRLP4 76
CNSTI4 0
ASGNI4
ADDRLP4 76
INDIRI4
ARGI4
ADDRLP4 0+12
ARGP4
ADDRLP4 0+24
ARGP4
ADDRLP4 76
INDIRI4
ARGI4
ADDRGP4 CG_MissileHitWall
CALLV
pop
line 2019
;2019:		}
LABELV $1323
line 2020
;2020:	}
LABELV $1313
line 2021
;2021:}
LABELV $1295
endproc CG_ShotgunPellet 136 28
proc CG_ShotgunPattern 84 12
line 2031
;2022:
;2023:/*
;2024:================
;2025:CG_ShotgunPattern
;2026:
;2027:Perform the same traces the server did to locate the
;2028:hit splashes
;2029:================
;2030:*/
;2031:static void CG_ShotgunPattern( vec3_t origin, vec3_t origin2, int seed, int otherEntNum ) {
line 2039
;2032:	int			i;
;2033:	float		r, u;
;2034:	vec3_t		end;
;2035:	vec3_t		forward, right, up;
;2036:
;2037:	// derive the right and up vectors from the forward vector, because
;2038:	// the client won't have any other information
;2039:	VectorNormalize2( origin2, forward );
ADDRFP4 4
INDIRP4
ARGP4
ADDRLP4 20
ARGP4
ADDRGP4 VectorNormalize2
CALLF4
pop
line 2040
;2040:	PerpendicularVector( right, forward );
ADDRLP4 32
ARGP4
ADDRLP4 20
ARGP4
ADDRGP4 PerpendicularVector
CALLV
pop
line 2041
;2041:	CrossProduct( forward, right, up );
ADDRLP4 20
ARGP4
ADDRLP4 32
ARGP4
ADDRLP4 44
ARGP4
ADDRGP4 CrossProduct
CALLV
pop
line 2044
;2042:
;2043:	// generate the "random" spread pattern
;2044:	for ( i = 0 ; i < DEFAULT_SHOTGUN_COUNT ; i++ ) {
ADDRLP4 56
CNSTI4 0
ASGNI4
LABELV $1330
line 2045
;2045:		r = Q_crandom( &seed ) * DEFAULT_SHOTGUN_SPREAD * 16;
ADDRFP4 8
ARGP4
ADDRLP4 60
ADDRGP4 Q_crandom
CALLF4
ASGNF4
ADDRLP4 12
CNSTF4 1098907648
CNSTF4 1143930880
ADDRLP4 60
INDIRF4
MULF4
MULF4
ASGNF4
line 2046
;2046:		u = Q_crandom( &seed ) * DEFAULT_SHOTGUN_SPREAD * 16;
ADDRFP4 8
ARGP4
ADDRLP4 64
ADDRGP4 Q_crandom
CALLF4
ASGNF4
ADDRLP4 16
CNSTF4 1098907648
CNSTF4 1143930880
ADDRLP4 64
INDIRF4
MULF4
MULF4
ASGNF4
line 2047
;2047:		VectorMA( origin, 8192 * 16, forward, end);
ADDRLP4 68
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 72
CNSTF4 1207959552
ASGNF4
ADDRLP4 0
ADDRLP4 68
INDIRP4
INDIRF4
ADDRLP4 72
INDIRF4
ADDRLP4 20
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+4
ADDRLP4 68
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 72
INDIRF4
ADDRLP4 20+4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+8
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
CNSTF4 1207959552
ADDRLP4 20+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 2048
;2048:		VectorMA (end, r, right, end);
ADDRLP4 0
ADDRLP4 0
INDIRF4
ADDRLP4 32
INDIRF4
ADDRLP4 12
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+4
ADDRLP4 0+4
INDIRF4
ADDRLP4 32+4
INDIRF4
ADDRLP4 12
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+8
ADDRLP4 0+8
INDIRF4
ADDRLP4 32+8
INDIRF4
ADDRLP4 12
INDIRF4
MULF4
ADDF4
ASGNF4
line 2049
;2049:		VectorMA (end, u, up, end);
ADDRLP4 0
ADDRLP4 0
INDIRF4
ADDRLP4 44
INDIRF4
ADDRLP4 16
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+4
ADDRLP4 0+4
INDIRF4
ADDRLP4 44+4
INDIRF4
ADDRLP4 16
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+8
ADDRLP4 0+8
INDIRF4
ADDRLP4 44+8
INDIRF4
ADDRLP4 16
INDIRF4
MULF4
ADDF4
ASGNF4
line 2051
;2050:
;2051:		CG_ShotgunPellet( origin, end, otherEntNum );
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 0
ARGP4
ADDRFP4 12
INDIRI4
ARGI4
ADDRGP4 CG_ShotgunPellet
CALLV
pop
line 2052
;2052:	}
LABELV $1331
line 2044
ADDRLP4 56
ADDRLP4 56
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 56
INDIRI4
CNSTI4 11
LTI4 $1330
line 2053
;2053:}
LABELV $1329
endproc CG_ShotgunPattern 84 12
export CG_ShotgunFire
proc CG_ShotgunFire 56 48
line 2060
;2054:
;2055:/*
;2056:==============
;2057:CG_ShotgunFire
;2058:==============
;2059:*/
;2060:void CG_ShotgunFire( entityState_t *es ) {
line 2064
;2061:	vec3_t	v;
;2062:	int		contents;
;2063:
;2064:	VectorSubtract( es->origin2, es->pos.trBase, v );
ADDRLP4 16
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 0
ADDRLP4 16
INDIRP4
CNSTI4 104
ADDP4
INDIRF4
ADDRLP4 16
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 0+4
ADDRLP4 16
INDIRP4
CNSTI4 108
ADDP4
INDIRF4
ADDRLP4 16
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 20
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 0+8
ADDRLP4 20
INDIRP4
CNSTI4 112
ADDP4
INDIRF4
ADDRLP4 20
INDIRP4
CNSTI4 32
ADDP4
INDIRF4
SUBF4
ASGNF4
line 2065
;2065:	VectorNormalize( v );
ADDRLP4 0
ARGP4
ADDRGP4 VectorNormalize
CALLF4
pop
line 2066
;2066:	VectorScale( v, 32, v );
ADDRLP4 24
CNSTF4 1107296256
ASGNF4
ADDRLP4 0
ADDRLP4 24
INDIRF4
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+4
ADDRLP4 24
INDIRF4
ADDRLP4 0+4
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+8
CNSTF4 1107296256
ADDRLP4 0+8
INDIRF4
MULF4
ASGNF4
line 2067
;2067:	VectorAdd( es->pos.trBase, v, v );
ADDRLP4 28
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 0
ADDRLP4 28
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
ADDRLP4 0
INDIRF4
ADDF4
ASGNF4
ADDRLP4 0+4
ADDRLP4 28
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
ADDRLP4 0+4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 0+8
ADDRFP4 0
INDIRP4
CNSTI4 32
ADDP4
INDIRF4
ADDRLP4 0+8
INDIRF4
ADDF4
ASGNF4
line 2068
;2068:	if ( cgs.glconfig.hardwareType != GLHW_RAGEPRO ) {
ADDRGP4 cgs+20100+11288
INDIRI4
CNSTI4 3
EQI4 $1361
line 2072
;2069:		// ragepro can't alpha fade, so don't even bother with smoke
;2070:		vec3_t			up;
;2071:
;2072:		contents = trap_CM_PointContents( es->pos.trBase, 0 );
ADDRFP4 0
INDIRP4
CNSTI4 24
ADDP4
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 44
ADDRGP4 trap_CM_PointContents
CALLI4
ASGNI4
ADDRLP4 12
ADDRLP4 44
INDIRI4
ASGNI4
line 2073
;2073:		if ( !( contents & CONTENTS_WATER ) ) {
ADDRLP4 12
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
NEI4 $1365
line 2074
;2074:			VectorSet( up, 0, 0, 8 );
ADDRLP4 48
CNSTF4 0
ASGNF4
ADDRLP4 32
ADDRLP4 48
INDIRF4
ASGNF4
ADDRLP4 32+4
ADDRLP4 48
INDIRF4
ASGNF4
ADDRLP4 32+8
CNSTF4 1090519040
ASGNF4
line 2075
;2075:			CG_SmokePuff( v, up, 32, 1, 1, 1, 0.33f, 900, cg.time, 0, LEF_PUFF_DONT_SCALE, cgs.media.shotgunSmokePuffShader );
ADDRLP4 0
ARGP4
ADDRLP4 32
ARGP4
CNSTF4 1107296256
ARGF4
ADDRLP4 52
CNSTF4 1065353216
ASGNF4
ADDRLP4 52
INDIRF4
ARGF4
ADDRLP4 52
INDIRF4
ARGF4
ADDRLP4 52
INDIRF4
ARGF4
CNSTF4 1051260355
ARGF4
CNSTF4 1147207680
ARGF4
ADDRGP4 cg+107604
INDIRI4
ARGI4
CNSTI4 0
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 cgs+152340+316
INDIRI4
ARGI4
ADDRGP4 CG_SmokePuff
CALLP4
pop
line 2076
;2076:		}
LABELV $1365
line 2077
;2077:	}
LABELV $1361
line 2078
;2078:	CG_ShotgunPattern( es->pos.trBase, es->origin2, es->eventParm, es->otherEntityNum );
ADDRLP4 32
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 32
INDIRP4
CNSTI4 24
ADDP4
ARGP4
ADDRLP4 32
INDIRP4
CNSTI4 104
ADDP4
ARGP4
ADDRLP4 32
INDIRP4
CNSTI4 184
ADDP4
INDIRI4
ARGI4
ADDRLP4 32
INDIRP4
CNSTI4 140
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_ShotgunPattern
CALLV
pop
line 2079
;2079:}
LABELV $1350
endproc CG_ShotgunFire 56 48
export CG_Tracer
proc CG_Tracer 224 16
line 2095
;2080:
;2081:/*
;2082:============================================================================
;2083:
;2084:BULLETS
;2085:
;2086:============================================================================
;2087:*/
;2088:
;2089:
;2090:/*
;2091:===============
;2092:CG_Tracer
;2093:===============
;2094:*/
;2095:void CG_Tracer( vec3_t source, vec3_t dest ) {
line 2104
;2096:	vec3_t		forward, right;
;2097:	polyVert_t	verts[4];
;2098:	vec3_t		line;
;2099:	float		len, begin, end;
;2100:	vec3_t		start, finish;
;2101:	vec3_t		midpoint;
;2102:
;2103:	// tracer
;2104:	VectorSubtract( dest, source, forward );
ADDRLP4 180
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 184
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 108
ADDRLP4 180
INDIRP4
INDIRF4
ADDRLP4 184
INDIRP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 188
CNSTI4 4
ASGNI4
ADDRLP4 108+4
ADDRLP4 180
INDIRP4
ADDRLP4 188
INDIRI4
ADDP4
INDIRF4
ADDRLP4 184
INDIRP4
ADDRLP4 188
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 192
CNSTI4 8
ASGNI4
ADDRLP4 108+8
ADDRFP4 4
INDIRP4
ADDRLP4 192
INDIRI4
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
ADDRLP4 192
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 2105
;2105:	len = VectorNormalize( forward );
ADDRLP4 108
ARGP4
ADDRLP4 196
ADDRGP4 VectorNormalize
CALLF4
ASGNF4
ADDRLP4 164
ADDRLP4 196
INDIRF4
ASGNF4
line 2108
;2106:
;2107:	// start at least a little ways from the muzzle
;2108:	if ( len < 100 ) {
ADDRLP4 164
INDIRF4
CNSTF4 1120403456
GEF4 $1375
line 2109
;2109:		return;
ADDRGP4 $1372
JUMPV
LABELV $1375
line 2111
;2110:	}
;2111:	begin = 50 + random() * (len - 60);
ADDRLP4 200
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 160
ADDRLP4 200
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
ADDRLP4 164
INDIRF4
CNSTF4 1114636288
SUBF4
MULF4
CNSTF4 1112014848
ADDF4
ASGNF4
line 2112
;2112:	end = begin + cg_tracerLength.value;
ADDRLP4 156
ADDRLP4 160
INDIRF4
ADDRGP4 cg_tracerLength+8
INDIRF4
ADDF4
ASGNF4
line 2113
;2113:	if ( end > len ) {
ADDRLP4 156
INDIRF4
ADDRLP4 164
INDIRF4
LEF4 $1378
line 2114
;2114:		end = len;
ADDRLP4 156
ADDRLP4 164
INDIRF4
ASGNF4
line 2115
;2115:	}
LABELV $1378
line 2116
;2116:	VectorMA( source, begin, forward, start );
ADDRLP4 204
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 120
ADDRLP4 204
INDIRP4
INDIRF4
ADDRLP4 108
INDIRF4
ADDRLP4 160
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 120+4
ADDRLP4 204
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 108+4
INDIRF4
ADDRLP4 160
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 120+8
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 108+8
INDIRF4
ADDRLP4 160
INDIRF4
MULF4
ADDF4
ASGNF4
line 2117
;2117:	VectorMA( source, end, forward, finish );
ADDRLP4 212
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 132
ADDRLP4 212
INDIRP4
INDIRF4
ADDRLP4 108
INDIRF4
ADDRLP4 156
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 132+4
ADDRLP4 212
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 108+4
INDIRF4
ADDRLP4 156
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 132+8
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 108+8
INDIRF4
ADDRLP4 156
INDIRF4
MULF4
ADDF4
ASGNF4
line 2119
;2118:
;2119:	line[0] = DotProduct( forward, cg.refdef.viewaxis[1] );
ADDRLP4 144
ADDRLP4 108
INDIRF4
ADDRGP4 cg+109044+36+12
INDIRF4
MULF4
ADDRLP4 108+4
INDIRF4
ADDRGP4 cg+109044+36+12+4
INDIRF4
MULF4
ADDF4
ADDRLP4 108+8
INDIRF4
ADDRGP4 cg+109044+36+12+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 2120
;2120:	line[1] = DotProduct( forward, cg.refdef.viewaxis[2] );
ADDRLP4 144+4
ADDRLP4 108
INDIRF4
ADDRGP4 cg+109044+36+24
INDIRF4
MULF4
ADDRLP4 108+4
INDIRF4
ADDRGP4 cg+109044+36+24+4
INDIRF4
MULF4
ADDF4
ADDRLP4 108+8
INDIRF4
ADDRGP4 cg+109044+36+24+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 2122
;2121:
;2122:	VectorScale( cg.refdef.viewaxis[1], line[1], right );
ADDRLP4 96
ADDRGP4 cg+109044+36+12
INDIRF4
ADDRLP4 144+4
INDIRF4
MULF4
ASGNF4
ADDRLP4 96+4
ADDRGP4 cg+109044+36+12+4
INDIRF4
ADDRLP4 144+4
INDIRF4
MULF4
ASGNF4
ADDRLP4 96+8
ADDRGP4 cg+109044+36+12+8
INDIRF4
ADDRLP4 144+4
INDIRF4
MULF4
ASGNF4
line 2123
;2123:	VectorMA( right, -line[0], cg.refdef.viewaxis[2], right );
ADDRLP4 220
ADDRLP4 144
INDIRF4
NEGF4
ASGNF4
ADDRLP4 96
ADDRLP4 96
INDIRF4
ADDRGP4 cg+109044+36+24
INDIRF4
ADDRLP4 220
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 96+4
ADDRLP4 96+4
INDIRF4
ADDRGP4 cg+109044+36+24+4
INDIRF4
ADDRLP4 220
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 96+8
ADDRLP4 96+8
INDIRF4
ADDRGP4 cg+109044+36+24+8
INDIRF4
ADDRLP4 144
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
line 2124
;2124:	VectorNormalize( right );
ADDRLP4 96
ARGP4
ADDRGP4 VectorNormalize
CALLF4
pop
line 2126
;2125:
;2126:	VectorMA( finish, cg_tracerWidth.value, right, verts[0].xyz );
ADDRLP4 0
ADDRLP4 132
INDIRF4
ADDRLP4 96
INDIRF4
ADDRGP4 cg_tracerWidth+8
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+4
ADDRLP4 132+4
INDIRF4
ADDRLP4 96+4
INDIRF4
ADDRGP4 cg_tracerWidth+8
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+8
ADDRLP4 132+8
INDIRF4
ADDRLP4 96+8
INDIRF4
ADDRGP4 cg_tracerWidth+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 2127
;2127:	verts[0].st[0] = 0;
ADDRLP4 0+12
CNSTF4 0
ASGNF4
line 2128
;2128:	verts[0].st[1] = 1;
ADDRLP4 0+12+4
CNSTF4 1065353216
ASGNF4
line 2129
;2129:	verts[0].modulate[0] = 255;
ADDRLP4 0+20
CNSTU1 255
ASGNU1
line 2130
;2130:	verts[0].modulate[1] = 255;
ADDRLP4 0+20+1
CNSTU1 255
ASGNU1
line 2131
;2131:	verts[0].modulate[2] = 255;
ADDRLP4 0+20+2
CNSTU1 255
ASGNU1
line 2132
;2132:	verts[0].modulate[3] = 255;
ADDRLP4 0+20+3
CNSTU1 255
ASGNU1
line 2134
;2133:
;2134:	VectorMA( finish, -cg_tracerWidth.value, right, verts[1].xyz );
ADDRLP4 0+24
ADDRLP4 132
INDIRF4
ADDRLP4 96
INDIRF4
ADDRGP4 cg_tracerWidth+8
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+24+4
ADDRLP4 132+4
INDIRF4
ADDRLP4 96+4
INDIRF4
ADDRGP4 cg_tracerWidth+8
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+24+8
ADDRLP4 132+8
INDIRF4
ADDRLP4 96+8
INDIRF4
ADDRGP4 cg_tracerWidth+8
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
line 2135
;2135:	verts[1].st[0] = 1;
ADDRLP4 0+24+12
CNSTF4 1065353216
ASGNF4
line 2136
;2136:	verts[1].st[1] = 0;
ADDRLP4 0+24+12+4
CNSTF4 0
ASGNF4
line 2137
;2137:	verts[1].modulate[0] = 255;
ADDRLP4 0+24+20
CNSTU1 255
ASGNU1
line 2138
;2138:	verts[1].modulate[1] = 255;
ADDRLP4 0+24+20+1
CNSTU1 255
ASGNU1
line 2139
;2139:	verts[1].modulate[2] = 255;
ADDRLP4 0+24+20+2
CNSTU1 255
ASGNU1
line 2140
;2140:	verts[1].modulate[3] = 255;
ADDRLP4 0+24+20+3
CNSTU1 255
ASGNU1
line 2142
;2141:
;2142:	VectorMA( start, -cg_tracerWidth.value, right, verts[2].xyz );
ADDRLP4 0+48
ADDRLP4 120
INDIRF4
ADDRLP4 96
INDIRF4
ADDRGP4 cg_tracerWidth+8
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+48+4
ADDRLP4 120+4
INDIRF4
ADDRLP4 96+4
INDIRF4
ADDRGP4 cg_tracerWidth+8
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+48+8
ADDRLP4 120+8
INDIRF4
ADDRLP4 96+8
INDIRF4
ADDRGP4 cg_tracerWidth+8
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
line 2143
;2143:	verts[2].st[0] = 1;
ADDRLP4 0+48+12
CNSTF4 1065353216
ASGNF4
line 2144
;2144:	verts[2].st[1] = 1;
ADDRLP4 0+48+12+4
CNSTF4 1065353216
ASGNF4
line 2145
;2145:	verts[2].modulate[0] = 255;
ADDRLP4 0+48+20
CNSTU1 255
ASGNU1
line 2146
;2146:	verts[2].modulate[1] = 255;
ADDRLP4 0+48+20+1
CNSTU1 255
ASGNU1
line 2147
;2147:	verts[2].modulate[2] = 255;
ADDRLP4 0+48+20+2
CNSTU1 255
ASGNU1
line 2148
;2148:	verts[2].modulate[3] = 255;
ADDRLP4 0+48+20+3
CNSTU1 255
ASGNU1
line 2150
;2149:
;2150:	VectorMA( start, cg_tracerWidth.value, right, verts[3].xyz );
ADDRLP4 0+72
ADDRLP4 120
INDIRF4
ADDRLP4 96
INDIRF4
ADDRGP4 cg_tracerWidth+8
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+72+4
ADDRLP4 120+4
INDIRF4
ADDRLP4 96+4
INDIRF4
ADDRGP4 cg_tracerWidth+8
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+72+8
ADDRLP4 120+8
INDIRF4
ADDRLP4 96+8
INDIRF4
ADDRGP4 cg_tracerWidth+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 2151
;2151:	verts[3].st[0] = 0;
ADDRLP4 0+72+12
CNSTF4 0
ASGNF4
line 2152
;2152:	verts[3].st[1] = 0;
ADDRLP4 0+72+12+4
CNSTF4 0
ASGNF4
line 2153
;2153:	verts[3].modulate[0] = 255;
ADDRLP4 0+72+20
CNSTU1 255
ASGNU1
line 2154
;2154:	verts[3].modulate[1] = 255;
ADDRLP4 0+72+20+1
CNSTU1 255
ASGNU1
line 2155
;2155:	verts[3].modulate[2] = 255;
ADDRLP4 0+72+20+2
CNSTU1 255
ASGNU1
line 2156
;2156:	verts[3].modulate[3] = 255;
ADDRLP4 0+72+20+3
CNSTU1 255
ASGNU1
line 2158
;2157:
;2158:	trap_R_AddPolyToScene( cgs.media.tracerShader, 4, verts );
ADDRGP4 cgs+152340+252
INDIRI4
ARGI4
CNSTI4 4
ARGI4
ADDRLP4 0
ARGP4
ADDRGP4 trap_R_AddPolyToScene
CALLV
pop
line 2160
;2159:
;2160:	midpoint[0] = ( start[0] + finish[0] ) * 0.5;
ADDRLP4 168
CNSTF4 1056964608
ADDRLP4 120
INDIRF4
ADDRLP4 132
INDIRF4
ADDF4
MULF4
ASGNF4
line 2161
;2161:	midpoint[1] = ( start[1] + finish[1] ) * 0.5;
ADDRLP4 168+4
CNSTF4 1056964608
ADDRLP4 120+4
INDIRF4
ADDRLP4 132+4
INDIRF4
ADDF4
MULF4
ASGNF4
line 2162
;2162:	midpoint[2] = ( start[2] + finish[2] ) * 0.5;
ADDRLP4 168+8
CNSTF4 1056964608
ADDRLP4 120+8
INDIRF4
ADDRLP4 132+8
INDIRF4
ADDF4
MULF4
ASGNF4
line 2165
;2163:
;2164:	// add the tracer sound
;2165:	trap_S_StartSound( midpoint, ENTITYNUM_WORLD, CHAN_AUTO, cgs.media.tracerSound );
ADDRLP4 168
ARGP4
CNSTI4 1022
ARGI4
CNSTI4 0
ARGI4
ADDRGP4 cgs+152340+624
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
line 2167
;2166:
;2167:}
LABELV $1372
endproc CG_Tracer 224 16
proc CG_CalcMuzzlePoint 40 16
line 2175
;2168:
;2169:
;2170:/*
;2171:======================
;2172:CG_CalcMuzzlePoint
;2173:======================
;2174:*/
;2175:static qboolean	CG_CalcMuzzlePoint( int entityNum, vec3_t muzzle ) {
line 2180
;2176:	vec3_t		forward;
;2177:	centity_t	*cent;
;2178:	int			anim;
;2179:
;2180:	if ( entityNum == cg.snap->ps.clientNum ) {
ADDRFP4 0
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 184
ADDP4
INDIRI4
NEI4 $1560
line 2181
;2181:		VectorCopy( cg.snap->ps.origin, muzzle );
ADDRFP4 4
INDIRP4
ADDRGP4 cg+36
INDIRP4
CNSTI4 64
ADDP4
INDIRB
ASGNB 12
line 2182
;2182:		muzzle[2] += cg.snap->ps.viewheight;
ADDRLP4 20
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 20
INDIRP4
ADDRLP4 20
INDIRP4
INDIRF4
ADDRGP4 cg+36
INDIRP4
CNSTI4 208
ADDP4
INDIRI4
CVIF4 4
ADDF4
ASGNF4
line 2183
;2183:		AngleVectors( cg.snap->ps.viewangles, forward, NULL, NULL );
ADDRGP4 cg+36
INDIRP4
CNSTI4 196
ADDP4
ARGP4
ADDRLP4 0
ARGP4
ADDRLP4 24
CNSTP4 0
ASGNP4
ADDRLP4 24
INDIRP4
ARGP4
ADDRLP4 24
INDIRP4
ARGP4
ADDRGP4 AngleVectors
CALLV
pop
line 2184
;2184:		VectorMA( muzzle, 14, forward, muzzle );
ADDRLP4 28
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 28
INDIRP4
ADDRLP4 28
INDIRP4
INDIRF4
CNSTF4 1096810496
ADDRLP4 0
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 32
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
ASGNP4
ADDRLP4 32
INDIRP4
ADDRLP4 32
INDIRP4
INDIRF4
CNSTF4 1096810496
ADDRLP4 0+4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 36
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 36
INDIRP4
ADDRLP4 36
INDIRP4
INDIRF4
CNSTF4 1096810496
ADDRLP4 0+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 2185
;2185:		return qtrue;
CNSTI4 1
RETI4
ADDRGP4 $1559
JUMPV
LABELV $1560
line 2188
;2186:	}
;2187:
;2188:	cent = &cg_entities[entityNum];
ADDRLP4 12
CNSTI4 728
ADDRFP4 0
INDIRI4
MULI4
ADDRGP4 cg_entities
ADDP4
ASGNP4
line 2189
;2189:	if ( !cent->currentValid ) {
ADDRLP4 12
INDIRP4
CNSTI4 420
ADDP4
INDIRI4
CNSTI4 0
NEI4 $1568
line 2190
;2190:		return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $1559
JUMPV
LABELV $1568
line 2193
;2191:	}
;2192:
;2193:	VectorCopy( cent->currentState.pos.trBase, muzzle );
ADDRFP4 4
INDIRP4
ADDRLP4 12
INDIRP4
CNSTI4 24
ADDP4
INDIRB
ASGNB 12
line 2195
;2194:
;2195:	AngleVectors( cent->currentState.apos.trBase, forward, NULL, NULL );
ADDRLP4 12
INDIRP4
CNSTI4 60
ADDP4
ARGP4
ADDRLP4 0
ARGP4
ADDRLP4 20
CNSTP4 0
ASGNP4
ADDRLP4 20
INDIRP4
ARGP4
ADDRLP4 20
INDIRP4
ARGP4
ADDRGP4 AngleVectors
CALLV
pop
line 2196
;2196:	anim = cent->currentState.legsAnim & ~ANIM_TOGGLEBIT;
ADDRLP4 16
ADDRLP4 12
INDIRP4
CNSTI4 196
ADDP4
INDIRI4
CNSTI4 -129
BANDI4
ASGNI4
line 2197
;2197:	if ( anim == LEGS_WALKCR || anim == LEGS_IDLECR ) {
ADDRLP4 16
INDIRI4
CNSTI4 13
EQI4 $1572
ADDRLP4 16
INDIRI4
CNSTI4 23
NEI4 $1570
LABELV $1572
line 2198
;2198:		muzzle[2] += CROUCH_VIEWHEIGHT;
ADDRLP4 28
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 28
INDIRP4
ADDRLP4 28
INDIRP4
INDIRF4
CNSTF4 1094713344
ADDF4
ASGNF4
line 2199
;2199:	} else {
ADDRGP4 $1571
JUMPV
LABELV $1570
line 2200
;2200:		muzzle[2] += DEFAULT_VIEWHEIGHT;
ADDRLP4 28
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 28
INDIRP4
ADDRLP4 28
INDIRP4
INDIRF4
CNSTF4 1104150528
ADDF4
ASGNF4
line 2201
;2201:	}
LABELV $1571
line 2203
;2202:
;2203:	VectorMA( muzzle, 14, forward, muzzle );
ADDRLP4 28
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 28
INDIRP4
ADDRLP4 28
INDIRP4
INDIRF4
CNSTF4 1096810496
ADDRLP4 0
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 32
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
ASGNP4
ADDRLP4 32
INDIRP4
ADDRLP4 32
INDIRP4
INDIRF4
CNSTF4 1096810496
ADDRLP4 0+4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 36
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 36
INDIRP4
ADDRLP4 36
INDIRP4
INDIRF4
CNSTF4 1096810496
ADDRLP4 0+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 2205
;2204:
;2205:	return qtrue;
CNSTI4 1
RETI4
LABELV $1559
endproc CG_CalcMuzzlePoint 40 16
export CG_Bullet
proc CG_Bullet 96 28
line 2216
;2206:
;2207:}
;2208:
;2209:/*
;2210:======================
;2211:CG_Bullet
;2212:
;2213:Renders bullet effects.
;2214:======================
;2215:*/
;2216:void CG_Bullet( vec3_t end, int sourceEntityNum, vec3_t normal, qboolean flesh, int fleshEntityNum ) {
line 2223
;2217:	trace_t trace;
;2218:	int sourceContentType, destContentType;
;2219:	vec3_t		start;
;2220:
;2221:	// if the shooter is currently valid, calc a source point and possibly
;2222:	// do trail effects
;2223:	if ( sourceEntityNum >= 0 && cg_tracerChance.value > 0 ) {
ADDRFP4 4
INDIRI4
CNSTI4 0
LTI4 $1576
ADDRGP4 cg_tracerChance+8
INDIRF4
CNSTF4 0
LEF4 $1576
line 2224
;2224:		if ( CG_CalcMuzzlePoint( sourceEntityNum, start ) ) {
ADDRFP4 4
INDIRI4
ARGI4
ADDRLP4 0
ARGP4
ADDRLP4 76
ADDRGP4 CG_CalcMuzzlePoint
CALLI4
ASGNI4
ADDRLP4 76
INDIRI4
CNSTI4 0
EQI4 $1579
line 2225
;2225:			sourceContentType = trap_CM_PointContents( start, 0 );
ADDRLP4 0
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 80
ADDRGP4 trap_CM_PointContents
CALLI4
ASGNI4
ADDRLP4 12
ADDRLP4 80
INDIRI4
ASGNI4
line 2226
;2226:			destContentType = trap_CM_PointContents( end, 0 );
ADDRFP4 0
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 84
ADDRGP4 trap_CM_PointContents
CALLI4
ASGNI4
ADDRLP4 16
ADDRLP4 84
INDIRI4
ASGNI4
line 2229
;2227:
;2228:			// do a complete bubble trail if necessary
;2229:			if ( ( sourceContentType == destContentType ) && ( sourceContentType & CONTENTS_WATER ) ) {
ADDRLP4 88
ADDRLP4 12
INDIRI4
ASGNI4
ADDRLP4 88
INDIRI4
ADDRLP4 16
INDIRI4
NEI4 $1581
ADDRLP4 88
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $1581
line 2230
;2230:				CG_BubbleTrail( start, end, 32 );
ADDRLP4 0
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
CNSTF4 1107296256
ARGF4
ADDRGP4 CG_BubbleTrail
CALLV
pop
line 2231
;2231:			}
ADDRGP4 $1582
JUMPV
LABELV $1581
line 2233
;2232:			// bubble trail from water into air
;2233:			else if ( ( sourceContentType & CONTENTS_WATER ) ) {
ADDRLP4 12
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $1583
line 2234
;2234:				trap_CM_BoxTrace( &trace, end, start, NULL, NULL, 0, CONTENTS_WATER );
ADDRLP4 20
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 0
ARGP4
ADDRLP4 92
CNSTP4 0
ASGNP4
ADDRLP4 92
INDIRP4
ARGP4
ADDRLP4 92
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 32
ARGI4
ADDRGP4 trap_CM_BoxTrace
CALLV
pop
line 2235
;2235:				CG_BubbleTrail( start, trace.endpos, 32 );
ADDRLP4 0
ARGP4
ADDRLP4 20+12
ARGP4
CNSTF4 1107296256
ARGF4
ADDRGP4 CG_BubbleTrail
CALLV
pop
line 2236
;2236:			}
ADDRGP4 $1584
JUMPV
LABELV $1583
line 2238
;2237:			// bubble trail from air into water
;2238:			else if ( ( destContentType & CONTENTS_WATER ) ) {
ADDRLP4 16
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $1586
line 2239
;2239:				trap_CM_BoxTrace( &trace, start, end, NULL, NULL, 0, CONTENTS_WATER );
ADDRLP4 20
ARGP4
ADDRLP4 0
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 92
CNSTP4 0
ASGNP4
ADDRLP4 92
INDIRP4
ARGP4
ADDRLP4 92
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 32
ARGI4
ADDRGP4 trap_CM_BoxTrace
CALLV
pop
line 2240
;2240:				CG_BubbleTrail( trace.endpos, end, 32 );
ADDRLP4 20+12
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
CNSTF4 1107296256
ARGF4
ADDRGP4 CG_BubbleTrail
CALLV
pop
line 2241
;2241:			}
LABELV $1586
LABELV $1584
LABELV $1582
line 2244
;2242:
;2243:			// draw a tracer
;2244:			if ( random() < cg_tracerChance.value ) {
ADDRLP4 92
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 92
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
ADDRGP4 cg_tracerChance+8
INDIRF4
GEF4 $1589
line 2245
;2245:				CG_Tracer( start, end );
ADDRLP4 0
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CG_Tracer
CALLV
pop
line 2246
;2246:			}
LABELV $1589
line 2247
;2247:		}
LABELV $1579
line 2248
;2248:	}
LABELV $1576
line 2251
;2249:
;2250:	// impact splash and mark
;2251:	if ( flesh ) {
ADDRFP4 12
INDIRI4
CNSTI4 0
EQI4 $1592
line 2252
;2252:		CG_Bleed( end, fleshEntityNum );
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 16
INDIRI4
ARGI4
ADDRGP4 CG_Bleed
CALLV
pop
line 2253
;2253:	} else {
ADDRGP4 $1593
JUMPV
LABELV $1592
line 2254
;2254:		CG_MissileHitWall( WP_MACHINEGUN, 0, end, normal, IMPACTSOUND_DEFAULT );
CNSTI4 2
ARGI4
ADDRLP4 76
CNSTI4 0
ASGNI4
ADDRLP4 76
INDIRI4
ARGI4
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
ARGP4
ADDRLP4 76
INDIRI4
ARGI4
ADDRGP4 CG_MissileHitWall
CALLV
pop
line 2255
;2255:	}
LABELV $1593
line 2257
;2256:
;2257:}
LABELV $1575
endproc CG_Bullet 96 28
import CG_NewParticleArea
import initparticles
import CG_ParticleExplosion
import CG_ParticleMisc
import CG_ParticleDust
import CG_ParticleSparks
import CG_ParticleBulletDebris
import CG_ParticleSnowFlurry
import CG_AddParticleShrapnel
import CG_ParticleSmoke
import CG_ParticleSnow
import CG_AddParticles
import CG_ClearParticles
import trap_GetEntityToken
import trap_getCameraInfo
import trap_startCamera
import trap_loadCamera
import trap_SnapVector
import trap_CIN_SetExtents
import trap_CIN_DrawCinematic
import trap_CIN_RunCinematic
import trap_CIN_StopCinematic
import trap_CIN_PlayCinematic
import trap_Key_GetKey
import trap_Key_SetCatcher
import trap_Key_GetCatcher
import trap_Key_IsDown
import trap_R_RegisterFont
import trap_MemoryRemaining
import testPrintFloat
import testPrintInt
import trap_SetUserCmdValue
import trap_GetUserCmd
import trap_GetCurrentCmdNumber
import trap_GetServerCommand
import trap_GetSnapshot
import trap_GetCurrentSnapshotNumber
import trap_GetGameState
import trap_GetGlconfig
import trap_R_RemapShader
import trap_R_LerpTag
import trap_R_ModelBounds
import trap_R_DrawStretchPic
import trap_R_SetColor
import trap_R_RenderScene
import trap_R_LightForPoint
import trap_R_AddLightToScene
import trap_R_AddPolysToScene
import trap_R_AddPolyToScene
import trap_R_AddRefEntityToScene
import trap_R_ClearScene
import trap_R_RegisterShaderNoMip
import trap_R_RegisterShader
import trap_R_RegisterSkin
import trap_R_RegisterModel
import trap_R_LoadWorldMap
import trap_S_StopBackgroundTrack
import trap_S_StartBackgroundTrack
import trap_S_RegisterSound
import trap_S_Respatialize
import trap_S_UpdateEntityPosition
import trap_S_AddRealLoopingSound
import trap_S_AddLoopingSound
import trap_S_ClearLoopingSounds
import trap_S_StartLocalSound
import trap_S_StopLoopingSound
import trap_S_StartSound
import trap_CM_MarkFragments
import trap_CM_TransformedBoxTrace
import trap_CM_BoxTrace
import trap_CM_TransformedPointContents
import trap_CM_PointContents
import trap_CM_TempBoxModel
import trap_CM_InlineModel
import trap_CM_NumInlineModels
import trap_CM_LoadMap
import trap_UpdateScreen
import trap_SendClientCommand
import trap_AddCommand
import trap_SendConsoleCommand
import trap_FS_Seek
import trap_FS_FCloseFile
import trap_FS_Write
import trap_FS_Read
import trap_FS_FOpenFile
import trap_Args
import trap_Argv
import trap_Argc
import trap_Cvar_VariableStringBuffer
import trap_Cvar_Set
import trap_Cvar_Update
import trap_Cvar_Register
import trap_Milliseconds
import trap_Error
import trap_Print
import CG_CheckChangedPredictableEvents
import CG_TransitionPlayerState
import CG_Respawn
import CG_PlayBufferedVoiceChats
import CG_VoiceChatLocal
import CG_ShaderStateChanged
import CG_LoadVoiceChats
import CG_SetConfigValues
import CG_ParseServerinfo
import CG_ExecuteNewServerCommands
import CG_InitConsoleCommands
import CG_ConsoleCommand
import CG_DrawOldTourneyScoreboard
import CG_DrawOldScoreboard
import CG_DrawInformation
import CG_LoadingClient
import CG_LoadingItem
import CG_LoadingString
import CG_ProcessSnapshots
import CG_MakeExplosion
import CG_Bleed
import CG_BigExplode
import CG_GibPlayer
import CG_ScorePlum
import CG_LightningBoltBeam
import CG_InvulnerabilityJuiced
import CG_InvulnerabilityImpact
import CG_ObeliskPain
import CG_ObeliskExplode
import CG_KamikazeEffect
import CG_SpawnEffect
import CG_BubbleTrail
import CG_SmokePuff
import CG_AddLocalEntities
import CG_AllocLocalEntity
import CG_InitLocalEntities
import CG_ImpactMark
import CG_AddMarks
import CG_InitMarkPolys
import CG_PositionRotatedEntityOnTag
import CG_PositionEntityOnTag
import CG_AdjustPositionForMover
import CG_Beam
import CG_AddPacketEntities
import CG_SetEntitySoundPosition
import CG_PainEvent
import CG_EntityEvent
import CG_PlaceString
import CG_CheckEvents
import CG_LoadDeferredPlayers
import CG_PredictPlayerState
import CG_Trace
import CG_PointContents
import CG_BuildSolidList
import CG_CustomSound
import CG_NewClientInfo
import CG_AddRefEntityWithPowerups
import CG_ResetPlayerEntity
import CG_Player
import CG_StatusHandle
import CG_OtherTeamHasFlag
import CG_YourTeamHasFlag
import CG_GameTypeString
import CG_CheckOrderPending
import CG_Text_PaintChar
import CG_Draw3DModel
import CG_GetKillerText
import CG_GetGameStatusText
import CG_GetTeamColor
import CG_InitTeamChat
import CG_SetPrintString
import CG_ShowResponseHead
import CG_RunMenuScript
import CG_OwnerDrawVisible
import CG_GetValue
import CG_SelectNextPlayer
import CG_SelectPrevPlayer
import CG_Text_Height
import CG_Text_Width
import CG_Text_Paint
import CG_OwnerDraw
import CG_DrawTeamBackground
import CG_DrawFlagModel
import CG_DrawActive
import CG_DrawHead
import CG_CenterPrint
import CG_AddLagometerSnapshotInfo
import CG_AddLagometerFrameInfo
import teamChat2
import teamChat1
import systemChat
import drawTeamOverlayModificationCount
import numSortedTeamPlayers
import sortedTeamPlayers
import CG_DrawTopBottom
import CG_DrawSides
import CG_DrawRect
import UI_DrawProportionalString
import CG_GetColorForHealth
import CG_ColorForHealth
import CG_TileClear
import CG_TeamColor
import CG_FadeColor
import CG_DrawStrlen
import CG_DrawSmallStringColor
import CG_DrawSmallString
import CG_DrawBigStringColor
import CG_DrawBigString
import CG_DrawStringExt
import CG_DrawString
import CG_DrawPic
import CG_FillRect
import CG_AdjustFrom640
import CG_DrawActiveFrame
import CG_AddBufferedSound
import CG_ZoomUp_f
import CG_ZoomDown_f
import CG_TestModelPrevSkin_f
import CG_TestModelNextSkin_f
import CG_TestModelPrevFrame_f
import CG_TestModelNextFrame_f
import CG_TestGun_f
import CG_TestModel_f
import CG_BuildSpectatorString
import CG_GetSelectedScore
import CG_SetScoreSelection
import CG_RankRunFrame
import CG_EventHandling
import CG_MouseEvent
import CG_KeyEvent
import CG_LoadMenus
import CG_LastAttacker
import CG_CrosshairPlayer
import CG_UpdateCvars
import CG_StartMusic
import CG_Error
import CG_Printf
import CG_Argv
import CG_ConfigString
import cg_obeliskRespawnDelay
import cg_recordSPDemoName
import cg_recordSPDemo
import cg_singlePlayerActive
import cg_enableBreath
import cg_enableDust
import cg_singlePlayer
import cg_currentSelectedPlayerName
import cg_currentSelectedPlayer
import cg_blueTeamName
import cg_redTeamName
import cg_trueLightning
import cg_oldPlasma
import cg_oldRocket
import cg_oldRail
import cg_noProjectileTrail
import cg_noTaunt
import cg_bigFont
import cg_smallFont
import cg_cameraMode
import cg_timescale
import cg_timescaleFadeSpeed
import cg_timescaleFadeEnd
import cg_cameraOrbitDelay
import cg_cameraOrbit
import pmove_msec
import pmove_fixed
import cg_smoothClients
import cg_scorePlum
import cg_noVoiceText
import cg_noVoiceChats
import cg_teamChatsOnly
import cg_drawFriend
import cg_deferPlayers
import cg_predictItems
import cg_blood
import cg_paused
import cg_buildScript
import cg_forceModel
import cg_stats
import cg_teamChatHeight
import cg_teamChatTime
import cg_synchronousClients
import cg_drawAttacker
import cg_lagometer
import cg_stereoSeparation
import cg_thirdPerson
import cg_thirdPersonAngle
import cg_thirdPersonRange
import cg_zoomFov
import cg_fov
import cg_simpleItems
import cg_ignore
import cg_autoswitch
import cg_tracerLength
import cg_tracerWidth
import cg_tracerChance
import cg_viewsize
import cg_drawGun
import cg_gun_z
import cg_gun_y
import cg_gun_x
import cg_gun_frame
import cg_brassTime
import cg_addMarks
import cg_footsteps
import cg_showmiss
import cg_noPlayerAnims
import cg_nopredict
import cg_errorDecay
import cg_railTrailTime
import cg_debugEvents
import cg_debugPosition
import cg_debugAnim
import cg_animSpeed
import cg_draw2D
import cg_drawStatus
import cg_crosshairHealth
import cg_crosshairSize
import cg_crosshairY
import cg_crosshairX
import cg_teamOverlayUserinfo
import cg_drawTeamOverlay
import cg_drawRewards
import cg_drawCrosshairNames
import cg_drawCrosshair
import cg_drawAmmoWarning
import cg_drawIcons
import cg_draw3dIcons
import cg_drawSnapshot
import cg_drawFPS
import cg_drawTimer
import cg_gibs
import cg_shadows
import cg_swingSpeed
import cg_bobroll
import cg_bobpitch
import cg_bobup
import cg_runroll
import cg_runpitch
import cg_centertime
import cg_markPolys
import cg_items
import cg_weapons
import cg_entities
import cg
import cgs
import BG_PlayerTouchesItem
import BG_PlayerStateToEntityStateExtraPolate
import BG_PlayerStateToEntityState
import BG_TouchJumpPad
import BG_AddPredictableEventToPlayerstate
import BG_EvaluateTrajectoryDelta
import BG_EvaluateTrajectory
import BG_CanItemBeGrabbed
import BG_FindItemForHoldable
import BG_FindItemForPowerup
import BG_FindItemForWeapon
import BG_FindItem
import bg_numItems
import bg_itemlist
import Pmove
import PM_UpdateViewAngles
import Com_Printf
import Com_Error
import Info_NextPair
import Info_Validate
import Info_SetValueForKey_Big
import Info_SetValueForKey
import Info_RemoveKey_big
import Info_RemoveKey
import Info_ValueForKey
import va
import Q_CleanStr
import Q_PrintStrlen
import Q_strcat
import Q_strncpyz
import Q_strrchr
import Q_strupr
import Q_strlwr
import Q_stricmpn
import Q_strncmp
import Q_stricmp
import Q_isalpha
import Q_isupper
import Q_islower
import Q_isprint
import Com_sprintf
import Parse3DMatrix
import Parse2DMatrix
import Parse1DMatrix
import SkipRestOfLine
import SkipBracedSection
import COM_MatchToken
import COM_ParseWarning
import COM_ParseError
import COM_Compress
import COM_ParseExt
import COM_Parse
import COM_GetCurrentParseLine
import COM_BeginParseSession
import COM_DefaultExtension
import COM_StripExtension
import COM_SkipPath
import Com_Clamp
import PerpendicularVector
import AngleVectors
import MatrixMultiply
import MakeNormalVectors
import RotateAroundDirection
import RotatePointAroundVector
import ProjectPointOnPlane
import PlaneFromPoints
import AngleDelta
import AngleNormalize180
import AngleNormalize360
import AnglesSubtract
import AngleSubtract
import LerpAngle
import AngleMod
import BoxOnPlaneSide
import SetPlaneSignbits
import AxisCopy
import AxisClear
import AnglesToAxis
import vectoangles
import Q_crandom
import Q_random
import Q_rand
import Q_acos
import Q_log2
import VectorRotate
import Vector4Scale
import VectorNormalize2
import VectorNormalize
import CrossProduct
import VectorInverse
import VectorNormalizeFast
import DistanceSquared
import Distance
import VectorLengthSquared
import VectorLength
import VectorCompare
import AddPointToBounds
import ClearBounds
import RadiusFromBounds
import NormalizeColor
import ColorBytes4
import ColorBytes3
import _VectorMA
import _VectorScale
import _VectorCopy
import _VectorAdd
import _VectorSubtract
import _DotProduct
import ByteToDir
import DirToByte
import ClampShort
import ClampChar
import Q_rsqrt
import Q_fabs
import axisDefault
import vec3_origin
import g_color_table
import colorDkGrey
import colorMdGrey
import colorLtGrey
import colorWhite
import colorCyan
import colorMagenta
import colorYellow
import colorBlue
import colorGreen
import colorRed
import colorBlack
import bytedirs
import Com_Memcpy
import Com_Memset
import Hunk_Alloc
import FloatSwap
import LongSwap
import ShortSwap
import acos
import fabs
import abs
import tan
import atan2
import cos
import sin
import sqrt
import floor
import ceil
import memcpy
import memset
import memmove
import sscanf
import vsprintf
import _atoi
import atoi
import _atof
import atof
import toupper
import tolower
import strncpy
import strstr
import strchr
import strcmp
import strcpy
import strcat
import strlen
import rand
import srand
import qsort
lit
align 1
LABELV $1193
byte 1 101
byte 1 120
byte 1 112
byte 1 108
byte 1 111
byte 1 100
byte 1 101
byte 1 49
byte 1 0
align 1
LABELV $1103
byte 1 67
byte 1 71
byte 1 95
byte 1 70
byte 1 105
byte 1 114
byte 1 101
byte 1 87
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 58
byte 1 32
byte 1 101
byte 1 110
byte 1 116
byte 1 45
byte 1 62
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 32
byte 1 62
byte 1 61
byte 1 32
byte 1 87
byte 1 80
byte 1 95
byte 1 78
byte 1 85
byte 1 77
byte 1 95
byte 1 87
byte 1 69
byte 1 65
byte 1 80
byte 1 79
byte 1 78
byte 1 83
byte 1 0
align 1
LABELV $828
byte 1 116
byte 1 97
byte 1 103
byte 1 95
byte 1 102
byte 1 108
byte 1 97
byte 1 115
byte 1 104
byte 1 0
align 1
LABELV $791
byte 1 116
byte 1 97
byte 1 103
byte 1 95
byte 1 98
byte 1 97
byte 1 114
byte 1 114
byte 1 101
byte 1 108
byte 1 0
align 1
LABELV $781
byte 1 116
byte 1 97
byte 1 103
byte 1 95
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 0
align 1
LABELV $728
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 118
byte 1 117
byte 1 108
byte 1 99
byte 1 97
byte 1 110
byte 1 47
byte 1 119
byte 1 118
byte 1 117
byte 1 108
byte 1 119
byte 1 105
byte 1 110
byte 1 100
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $588
byte 1 67
byte 1 71
byte 1 95
byte 1 82
byte 1 101
byte 1 103
byte 1 105
byte 1 115
byte 1 116
byte 1 101
byte 1 114
byte 1 73
byte 1 116
byte 1 101
byte 1 109
byte 1 86
byte 1 105
byte 1 115
byte 1 117
byte 1 97
byte 1 108
byte 1 115
byte 1 58
byte 1 32
byte 1 105
byte 1 116
byte 1 101
byte 1 109
byte 1 78
byte 1 117
byte 1 109
byte 1 32
byte 1 37
byte 1 100
byte 1 32
byte 1 111
byte 1 117
byte 1 116
byte 1 32
byte 1 111
byte 1 102
byte 1 32
byte 1 114
byte 1 97
byte 1 110
byte 1 103
byte 1 101
byte 1 32
byte 1 91
byte 1 48
byte 1 45
byte 1 37
byte 1 100
byte 1 93
byte 1 0
align 1
LABELV $581
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 104
byte 1 105
byte 1 116
byte 1 115
byte 1 47
byte 1 98
byte 1 102
byte 1 103
byte 1 46
byte 1 109
byte 1 100
byte 1 51
byte 1 0
align 1
LABELV $580
byte 1 98
byte 1 102
byte 1 103
byte 1 69
byte 1 120
byte 1 112
byte 1 108
byte 1 111
byte 1 115
byte 1 105
byte 1 111
byte 1 110
byte 1 0
align 1
LABELV $577
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 98
byte 1 102
byte 1 103
byte 1 47
byte 1 98
byte 1 102
byte 1 103
byte 1 95
byte 1 102
byte 1 105
byte 1 114
byte 1 101
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $576
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 98
byte 1 102
byte 1 103
byte 1 47
byte 1 98
byte 1 102
byte 1 103
byte 1 95
byte 1 104
byte 1 117
byte 1 109
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $574
byte 1 114
byte 1 97
byte 1 105
byte 1 108
byte 1 67
byte 1 111
byte 1 114
byte 1 101
byte 1 0
align 1
LABELV $569
byte 1 114
byte 1 97
byte 1 105
byte 1 108
byte 1 69
byte 1 120
byte 1 112
byte 1 108
byte 1 111
byte 1 115
byte 1 105
byte 1 111
byte 1 110
byte 1 0
align 1
LABELV $566
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 114
byte 1 97
byte 1 105
byte 1 108
byte 1 103
byte 1 117
byte 1 110
byte 1 47
byte 1 114
byte 1 97
byte 1 105
byte 1 108
byte 1 103
byte 1 102
byte 1 49
byte 1 97
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $565
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 114
byte 1 97
byte 1 105
byte 1 108
byte 1 103
byte 1 117
byte 1 110
byte 1 47
byte 1 114
byte 1 103
byte 1 95
byte 1 104
byte 1 117
byte 1 109
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $563
byte 1 114
byte 1 97
byte 1 105
byte 1 108
byte 1 68
byte 1 105
byte 1 115
byte 1 99
byte 1 0
align 1
LABELV $560
byte 1 112
byte 1 108
byte 1 97
byte 1 115
byte 1 109
byte 1 97
byte 1 69
byte 1 120
byte 1 112
byte 1 108
byte 1 111
byte 1 115
byte 1 105
byte 1 111
byte 1 110
byte 1 0
align 1
LABELV $557
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 112
byte 1 108
byte 1 97
byte 1 115
byte 1 109
byte 1 97
byte 1 47
byte 1 104
byte 1 121
byte 1 112
byte 1 114
byte 1 98
byte 1 102
byte 1 49
byte 1 97
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $556
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 112
byte 1 108
byte 1 97
byte 1 115
byte 1 109
byte 1 97
byte 1 47
byte 1 108
byte 1 97
byte 1 115
byte 1 102
byte 1 108
byte 1 121
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $554
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 110
byte 1 97
byte 1 105
byte 1 108
byte 1 103
byte 1 117
byte 1 110
byte 1 47
byte 1 119
byte 1 110
byte 1 97
byte 1 108
byte 1 102
byte 1 105
byte 1 114
byte 1 101
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $553
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 104
byte 1 105
byte 1 116
byte 1 115
byte 1 47
byte 1 110
byte 1 97
byte 1 105
byte 1 108
byte 1 46
byte 1 109
byte 1 100
byte 1 51
byte 1 0
align 1
LABELV $549
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 103
byte 1 114
byte 1 101
byte 1 110
byte 1 97
byte 1 100
byte 1 101
byte 1 47
byte 1 103
byte 1 114
byte 1 101
byte 1 110
byte 1 108
byte 1 102
byte 1 49
byte 1 97
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $548
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 97
byte 1 109
byte 1 109
byte 1 111
byte 1 47
byte 1 103
byte 1 114
byte 1 101
byte 1 110
byte 1 97
byte 1 100
byte 1 101
byte 1 49
byte 1 46
byte 1 109
byte 1 100
byte 1 51
byte 1 0
align 1
LABELV $546
byte 1 103
byte 1 114
byte 1 101
byte 1 110
byte 1 97
byte 1 100
byte 1 101
byte 1 69
byte 1 120
byte 1 112
byte 1 108
byte 1 111
byte 1 115
byte 1 105
byte 1 111
byte 1 110
byte 1 0
align 1
LABELV $543
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 112
byte 1 114
byte 1 111
byte 1 120
byte 1 109
byte 1 105
byte 1 110
byte 1 101
byte 1 47
byte 1 119
byte 1 115
byte 1 116
byte 1 98
byte 1 102
byte 1 105
byte 1 114
byte 1 101
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $542
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 104
byte 1 105
byte 1 116
byte 1 115
byte 1 47
byte 1 112
byte 1 114
byte 1 111
byte 1 120
byte 1 109
byte 1 105
byte 1 110
byte 1 101
byte 1 46
byte 1 109
byte 1 100
byte 1 51
byte 1 0
align 1
LABELV $540
byte 1 114
byte 1 111
byte 1 99
byte 1 107
byte 1 101
byte 1 116
byte 1 69
byte 1 120
byte 1 112
byte 1 108
byte 1 111
byte 1 115
byte 1 105
byte 1 111
byte 1 110
byte 1 0
align 1
LABELV $537
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 114
byte 1 111
byte 1 99
byte 1 107
byte 1 101
byte 1 116
byte 1 47
byte 1 114
byte 1 111
byte 1 99
byte 1 107
byte 1 108
byte 1 102
byte 1 49
byte 1 97
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $536
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 114
byte 1 111
byte 1 99
byte 1 107
byte 1 101
byte 1 116
byte 1 47
byte 1 114
byte 1 111
byte 1 99
byte 1 107
byte 1 102
byte 1 108
byte 1 121
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $534
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 115
byte 1 104
byte 1 111
byte 1 116
byte 1 103
byte 1 117
byte 1 110
byte 1 47
byte 1 115
byte 1 115
byte 1 104
byte 1 111
byte 1 116
byte 1 102
byte 1 49
byte 1 98
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $530
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 109
byte 1 97
byte 1 99
byte 1 104
byte 1 105
byte 1 110
byte 1 101
byte 1 103
byte 1 117
byte 1 110
byte 1 47
byte 1 109
byte 1 97
byte 1 99
byte 1 104
byte 1 103
byte 1 102
byte 1 52
byte 1 98
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $529
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 109
byte 1 97
byte 1 99
byte 1 104
byte 1 105
byte 1 110
byte 1 101
byte 1 103
byte 1 117
byte 1 110
byte 1 47
byte 1 109
byte 1 97
byte 1 99
byte 1 104
byte 1 103
byte 1 102
byte 1 51
byte 1 98
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $528
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 109
byte 1 97
byte 1 99
byte 1 104
byte 1 105
byte 1 110
byte 1 101
byte 1 103
byte 1 117
byte 1 110
byte 1 47
byte 1 109
byte 1 97
byte 1 99
byte 1 104
byte 1 103
byte 1 102
byte 1 50
byte 1 98
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $527
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 109
byte 1 97
byte 1 99
byte 1 104
byte 1 105
byte 1 110
byte 1 101
byte 1 103
byte 1 117
byte 1 110
byte 1 47
byte 1 109
byte 1 97
byte 1 99
byte 1 104
byte 1 103
byte 1 102
byte 1 49
byte 1 98
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $525
byte 1 98
byte 1 117
byte 1 108
byte 1 108
byte 1 101
byte 1 116
byte 1 69
byte 1 120
byte 1 112
byte 1 108
byte 1 111
byte 1 115
byte 1 105
byte 1 111
byte 1 110
byte 1 0
align 1
LABELV $522
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 118
byte 1 117
byte 1 108
byte 1 99
byte 1 97
byte 1 110
byte 1 47
byte 1 118
byte 1 117
byte 1 108
byte 1 99
byte 1 97
byte 1 110
byte 1 102
byte 1 52
byte 1 98
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $521
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 118
byte 1 117
byte 1 108
byte 1 99
byte 1 97
byte 1 110
byte 1 47
byte 1 118
byte 1 117
byte 1 108
byte 1 99
byte 1 97
byte 1 110
byte 1 102
byte 1 51
byte 1 98
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $520
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 118
byte 1 117
byte 1 108
byte 1 99
byte 1 97
byte 1 110
byte 1 47
byte 1 118
byte 1 117
byte 1 108
byte 1 99
byte 1 97
byte 1 110
byte 1 102
byte 1 50
byte 1 98
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $519
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 118
byte 1 117
byte 1 108
byte 1 99
byte 1 97
byte 1 110
byte 1 47
byte 1 118
byte 1 117
byte 1 108
byte 1 99
byte 1 97
byte 1 110
byte 1 102
byte 1 49
byte 1 98
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $518
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 118
byte 1 117
byte 1 108
byte 1 99
byte 1 97
byte 1 110
byte 1 47
byte 1 119
byte 1 118
byte 1 117
byte 1 108
byte 1 102
byte 1 105
byte 1 114
byte 1 101
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $516
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 97
byte 1 109
byte 1 109
byte 1 111
byte 1 47
byte 1 114
byte 1 111
byte 1 99
byte 1 107
byte 1 101
byte 1 116
byte 1 47
byte 1 114
byte 1 111
byte 1 99
byte 1 107
byte 1 101
byte 1 116
byte 1 46
byte 1 109
byte 1 100
byte 1 51
byte 1 0
align 1
LABELV $514
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 108
byte 1 105
byte 1 103
byte 1 104
byte 1 116
byte 1 110
byte 1 105
byte 1 110
byte 1 103
byte 1 47
byte 1 108
byte 1 103
byte 1 95
byte 1 104
byte 1 105
byte 1 116
byte 1 51
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $511
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 108
byte 1 105
byte 1 103
byte 1 104
byte 1 116
byte 1 110
byte 1 105
byte 1 110
byte 1 103
byte 1 47
byte 1 108
byte 1 103
byte 1 95
byte 1 104
byte 1 105
byte 1 116
byte 1 50
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $508
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 108
byte 1 105
byte 1 103
byte 1 104
byte 1 116
byte 1 110
byte 1 105
byte 1 110
byte 1 103
byte 1 47
byte 1 108
byte 1 103
byte 1 95
byte 1 104
byte 1 105
byte 1 116
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $505
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 104
byte 1 105
byte 1 116
byte 1 115
byte 1 47
byte 1 99
byte 1 114
byte 1 97
byte 1 99
byte 1 107
byte 1 108
byte 1 101
byte 1 46
byte 1 109
byte 1 100
byte 1 51
byte 1 0
align 1
LABELV $502
byte 1 108
byte 1 105
byte 1 103
byte 1 104
byte 1 116
byte 1 110
byte 1 105
byte 1 110
byte 1 103
byte 1 66
byte 1 111
byte 1 108
byte 1 116
byte 1 78
byte 1 101
byte 1 119
byte 1 0
align 1
LABELV $499
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 108
byte 1 105
byte 1 103
byte 1 104
byte 1 116
byte 1 110
byte 1 105
byte 1 110
byte 1 103
byte 1 47
byte 1 108
byte 1 103
byte 1 95
byte 1 102
byte 1 105
byte 1 114
byte 1 101
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $498
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 108
byte 1 105
byte 1 103
byte 1 104
byte 1 116
byte 1 110
byte 1 105
byte 1 110
byte 1 103
byte 1 47
byte 1 108
byte 1 103
byte 1 95
byte 1 104
byte 1 117
byte 1 109
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $497
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 109
byte 1 101
byte 1 108
byte 1 101
byte 1 101
byte 1 47
byte 1 102
byte 1 115
byte 1 116
byte 1 104
byte 1 117
byte 1 109
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $495
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 109
byte 1 101
byte 1 108
byte 1 101
byte 1 101
byte 1 47
byte 1 102
byte 1 115
byte 1 116
byte 1 97
byte 1 116
byte 1 99
byte 1 107
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $494
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 109
byte 1 101
byte 1 108
byte 1 101
byte 1 101
byte 1 47
byte 1 102
byte 1 115
byte 1 116
byte 1 114
byte 1 117
byte 1 110
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $490
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 50
byte 1 47
byte 1 115
byte 1 104
byte 1 111
byte 1 116
byte 1 103
byte 1 117
byte 1 110
byte 1 47
byte 1 115
byte 1 104
byte 1 111
byte 1 116
byte 1 103
byte 1 117
byte 1 110
byte 1 95
byte 1 104
byte 1 97
byte 1 110
byte 1 100
byte 1 46
byte 1 109
byte 1 100
byte 1 51
byte 1 0
align 1
LABELV $487
byte 1 95
byte 1 104
byte 1 97
byte 1 110
byte 1 100
byte 1 46
byte 1 109
byte 1 100
byte 1 51
byte 1 0
align 1
LABELV $486
byte 1 95
byte 1 98
byte 1 97
byte 1 114
byte 1 114
byte 1 101
byte 1 108
byte 1 46
byte 1 109
byte 1 100
byte 1 51
byte 1 0
align 1
LABELV $485
byte 1 95
byte 1 102
byte 1 108
byte 1 97
byte 1 115
byte 1 104
byte 1 46
byte 1 109
byte 1 100
byte 1 51
byte 1 0
align 1
LABELV $471
byte 1 67
byte 1 111
byte 1 117
byte 1 108
byte 1 100
byte 1 110
byte 1 39
byte 1 116
byte 1 32
byte 1 102
byte 1 105
byte 1 110
byte 1 100
byte 1 32
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 32
byte 1 37
byte 1 105
byte 1 0
