code
proc CG_MachineGunEjectBrass 136 8
file "../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+180
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+184
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
export CG_RailTrail
proc CG_RailTrail 644 16
line 195
;154:
;155:
;156:#ifdef MISSIONPACK
;157:/*
;158:==========================
;159:CG_NailgunEjectBrass
;160:==========================
;161:*/
;162:static void CG_NailgunEjectBrass( centity_t *cent ) {
;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 );
;171:
;172:	offset[0] = 0;
;173:	offset[1] = -12;
;174:	offset[2] = 24;
;175:
;176:	xoffset[0] = offset[0] * v[0][0] + offset[1] * v[1][0] + offset[2] * v[2][0];
;177:	xoffset[1] = offset[0] * v[0][1] + offset[1] * v[1][1] + offset[2] * v[2][1];
;178:	xoffset[2] = offset[0] * v[0][2] + offset[1] * v[1][2] + offset[2] * v[2][2];
;179:	VectorAdd( cent->lerpOrigin, xoffset, origin );
;180:
;181:	VectorSet( up, 0, 0, 64 );
;182:
;183:	smoke = CG_SmokePuff( origin, up, 32, 1, 1, 1, 0.33f, 700, cg.time, 0, 0, cgs.media.smokePuffShader );
;184:	// use the optimized local entity add
;185:	smoke->leType = LE_SCALE_FADE;
;186:}
;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 $202
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 $203
line 212
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 36
LTI4 $202
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+192
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 $213
ADDRLP4 548
ADDRLP4 552
INDIRF4
ADDRLP4 556
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $214
JUMPV
LABELV $213
ADDRLP4 548
ADDRLP4 552
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $214
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 $216
ADDRLP4 560
ADDRLP4 564
INDIRF4
ADDRLP4 568
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $217
JUMPV
LABELV $216
ADDRLP4 560
ADDRLP4 564
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $217
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 $219
ADDRLP4 572
ADDRLP4 576
INDIRF4
ADDRLP4 580
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $220
JUMPV
LABELV $219
ADDRLP4 572
ADDRLP4 576
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $220
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 $231
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 $199
JUMPV
LABELV $231
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 $237
JUMPV
LABELV $234
line 257
;257:		if (i != skip) {
ADDRLP4 4
INDIRI4
ADDRLP4 484
INDIRI4
EQI4 $238
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+188
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 $246
ADDRLP4 600
ADDRLP4 604
INDIRF4
ADDRLP4 608
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $247
JUMPV
LABELV $246
ADDRLP4 600
ADDRLP4 604
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $247
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 $249
ADDRLP4 612
ADDRLP4 616
INDIRF4
ADDRLP4 620
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $250
JUMPV
LABELV $249
ADDRLP4 612
ADDRLP4 616
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $250
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 $252
ADDRLP4 624
ADDRLP4 628
INDIRF4
ADDRLP4 632
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $253
JUMPV
LABELV $252
ADDRLP4 624
ADDRLP4 628
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $253
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 $238
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 $270
ADDRLP4 592
ADDRLP4 20
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRGP4 $271
JUMPV
LABELV $270
ADDRLP4 592
ADDRLP4 20
INDIRI4
CNSTI4 1
ADDI4
CNSTI4 36
MODI4
ASGNI4
LABELV $271
ADDRLP4 20
ADDRLP4 592
INDIRI4
ASGNI4
line 297
;297:	}
LABELV $235
line 256
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 5
ADDI4
ASGNI4
LABELV $237
ADDRLP4 4
INDIRI4
CVIF4 4
ADDRLP4 500
INDIRF4
LTF4 $234
line 298
;298:}
LABELV $199
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 $273
line 316
;316:		return;
ADDRGP4 $272
JUMPV
LABELV $273
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 $279
line 334
;334:		ent->trailTime = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 436
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 335
;335:		return;
ADDRGP4 $272
JUMPV
LABELV $279
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 $290
line 344
;344:		if ( contents & lastContents & CONTENTS_WATER ) {
ADDRLP4 40
INDIRI4
ADDRLP4 60
INDIRI4
BANDI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $272
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 $272
JUMPV
line 350
;348:	}
;349:
;350:	for ( ; t <= ent->trailTime ; t += step ) {
LABELV $287
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+276
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 $288
line 350
ADDRLP4 0
ADDRLP4 0
INDIRI4
ADDRLP4 20
INDIRI4
ADDI4
ASGNI4
LABELV $290
ADDRLP4 0
INDIRI4
ADDRFP4 0
INDIRP4
CNSTI4 436
ADDP4
INDIRI4
LEI4 $287
line 365
;364:
;365:}
LABELV $272
endproc CG_RocketTrail 92 48
proc CG_PlasmaTrail 204 12
line 441
;366:
;367:#ifdef MISSIONPACK
;368:/*
;369:==========================
;370:CG_NailTrail
;371:==========================
;372:*/
;373:static void CG_NailTrail( centity_t *ent, const weaponInfo_t *wi ) {
;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 ) {
;384:		return;
;385:	}
;386:
;387:	up[0] = 0;
;388:	up[1] = 0;
;389:	up[2] = 0;
;390:
;391:	step = 50;
;392:
;393:	es = &ent->currentState;
;394:	startTime = ent->trailTime;
;395:	t = step * ( (startTime + step) / step );
;396:
;397:	BG_EvaluateTrajectory( &es->pos, cg.time, origin );
;398:	contents = CG_PointContents( origin, -1 );
;399:
;400:	// if object (e.g. grenade) is stationary, don't toss up smoke
;401:	if ( es->pos.trType == TR_STATIONARY ) {
;402:		ent->trailTime = cg.time;
;403:		return;
;404:	}
;405:
;406:	BG_EvaluateTrajectory( &es->pos, ent->trailTime, lastPos );
;407:	lastContents = CG_PointContents( lastPos, -1 );
;408:
;409:	ent->trailTime = cg.time;
;410:
;411:	if ( contents & ( CONTENTS_WATER | CONTENTS_SLIME | CONTENTS_LAVA ) ) {
;412:		if ( contents & lastContents & CONTENTS_WATER ) {
;413:			CG_BubbleTrail( lastPos, origin, 8 );
;414:		}
;415:		return;
;416:	}
;417:
;418:	for ( ; t <= ent->trailTime ; t += step ) {
;419:		BG_EvaluateTrajectory( &es->pos, t, lastPos );
;420:
;421:		smoke = CG_SmokePuff( lastPos, up, 
;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;
;431:	}
;432:
;433:}
;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 $298
ADDRGP4 cg_oldPlasma+12
INDIRI4
ADDRLP4 124
INDIRI4
EQI4 $294
LABELV $298
line 453
;453:		return;
ADDRGP4 $293
JUMPV
LABELV $294
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 $330
line 496
;496:		waterScale = 0.10f;
ADDRLP4 92
CNSTF4 1036831949
ASGNF4
line 497
;497:	}
LABELV $330
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+188
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 $358
ADDRLP4 156
ADDRLP4 160
INDIRF4
ADDRLP4 164
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $359
JUMPV
LABELV $358
ADDRLP4 156
ADDRLP4 160
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $359
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 $361
ADDRLP4 168
ADDRLP4 172
INDIRF4
ADDRLP4 176
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $362
JUMPV
LABELV $361
ADDRLP4 168
ADDRLP4 172
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $362
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 $364
ADDRLP4 180
ADDRLP4 184
INDIRF4
ADDRLP4 188
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $365
JUMPV
LABELV $364
ADDRLP4 180
ADDRLP4 184
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $365
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 $293
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 $388
line 556
;556:		return; // Don't draw if close
ADDRGP4 $367
JUMPV
LABELV $388
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+196
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 $367
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 $403
endproc CG_GrenadeTrail 0 8
export CG_RegisterWeapon
proc CG_RegisterWeapon 304 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 $405
line 596
;596:		return;
ADDRGP4 $404
JUMPV
LABELV $405
line 599
;597:	}
;598:
;599:	if ( weaponInfo->registered ) {
ADDRLP4 12
INDIRP4
INDIRI4
CNSTI4 0
EQI4 $407
line 600
;600:		return;
ADDRGP4 $404
JUMPV
LABELV $407
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 $412
JUMPV
LABELV $409
line 607
;607:		if ( item->giType == IT_WEAPON && item->giTag == weaponNum ) {
ADDRLP4 4
INDIRP4
CNSTI4 36
ADDP4
INDIRI4
CNSTI4 1
NEI4 $414
ADDRLP4 4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ADDRFP4 0
INDIRI4
NEI4 $414
line 608
;608:			weaponInfo->item = item;
ADDRLP4 12
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 4
INDIRP4
ASGNP4
line 609
;609:			break;
ADDRGP4 $411
JUMPV
LABELV $414
line 611
;610:		}
;611:	}
LABELV $410
line 606
ADDRLP4 4
ADDRLP4 4
INDIRP4
CNSTI4 52
ADDP4
ASGNP4
LABELV $412
ADDRLP4 4
INDIRP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $409
LABELV $411
line 612
;612:	if ( !item->classname ) {
ADDRLP4 4
INDIRP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $416
line 613
;613:		CG_Error( "Couldn't find weapon %i", weaponNum );
ADDRGP4 $418
ARGP4
ADDRFP4 0
INDIRI4
ARGI4
ADDRGP4 CG_Error
CALLV
pop
line 614
;614:	}
LABELV $416
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 $419
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 $420
line 622
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 3
LTI4 $419
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 $426
JUMPV
LABELV $423
line 630
;630:		if ( ammo->giType == IT_AMMO && ammo->giTag == weaponNum ) {
ADDRLP4 8
INDIRP4
CNSTI4 36
ADDP4
INDIRI4
CNSTI4 2
NEI4 $428
ADDRLP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ADDRFP4 0
INDIRI4
NEI4 $428
line 631
;631:			break;
ADDRGP4 $425
JUMPV
LABELV $428
line 633
;632:		}
;633:	}
LABELV $424
line 629
ADDRLP4 8
ADDRLP4 8
INDIRP4
CNSTI4 52
ADDP4
ASGNP4
LABELV $426
ADDRLP4 8
INDIRP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $423
LABELV $425
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 $430
ADDRLP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRP4
CVPU4 4
ADDRLP4 120
INDIRU4
EQU4 $430
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 $430
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 $432
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 $433
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 $434
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 $435
line 654
;654:		weaponInfo->handsModel = trap_R_RegisterModel( "models/weapons2/shotgun/shotgun_hand.md3" );
ADDRGP4 $437
ARGP4
ADDRLP4 136
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 136
INDIRI4
ASGNI4
line 655
;655:	}
LABELV $435
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 $438
ADDRLP4 136
INDIRI4
CNSTI4 10
GTI4 $438
ADDRLP4 136
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 $513-4
ADDP4
INDIRP4
JUMPV
lit
align 4
LABELV $513
address $440
address $464
address $472
address $480
address $474
address $443
address $495
address $486
address $506
address $462
code
LABELV $440
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 $441
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 $442
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 $439
JUMPV
LABELV $443
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 $444
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 $445
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 $446
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 $449
ARGP4
ADDRLP4 160
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+196
ADDRLP4 160
INDIRI4
ASGNI4
line 673
;673:		cgs.media.lightningExplosionModel = trap_R_RegisterModel( "models/weaphits/crackle.md3" );
ADDRGP4 $452
ARGP4
ADDRLP4 164
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRGP4 cgs+152340+444
ADDRLP4 164
INDIRI4
ASGNI4
line 674
;674:		cgs.media.sfx_lghit1 = trap_S_RegisterSound( "sound/weapons/lightning/lg_hit.wav", qfalse );
ADDRGP4 $455
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 168
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRGP4 cgs+152340+660
ADDRLP4 168
INDIRI4
ASGNI4
line 675
;675:		cgs.media.sfx_lghit2 = trap_S_RegisterSound( "sound/weapons/lightning/lg_hit2.wav", qfalse );
ADDRGP4 $458
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 172
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRGP4 cgs+152340+664
ADDRLP4 172
INDIRI4
ASGNI4
line 676
;676:		cgs.media.sfx_lghit3 = trap_S_RegisterSound( "sound/weapons/lightning/lg_hit3.wav", qfalse );
ADDRGP4 $461
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 176
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRGP4 cgs+152340+668
ADDRLP4 176
INDIRI4
ASGNI4
line 678
;677:
;678:		break;
ADDRGP4 $439
JUMPV
LABELV $462
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 $463
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 $444
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 $441
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 $439
JUMPV
LABELV $464
line 707
;691:
;692:#ifdef MISSIONPACK
;693:	case WP_CHAINGUN:
;694:		weaponInfo->firingSound = trap_S_RegisterSound( "sound/weapons/vulcan/wvulfire.wav", qfalse );
;695:		weaponInfo->loopFireSound = qtrue;
;696:		MAKERGB( weaponInfo->flashDlightColor, 1, 1, 0 );
;697:		weaponInfo->flashSound[0] = trap_S_RegisterSound( "sound/weapons/vulcan/vulcanf1b.wav", qfalse );
;698:		weaponInfo->flashSound[1] = trap_S_RegisterSound( "sound/weapons/vulcan/vulcanf2b.wav", qfalse );
;699:		weaponInfo->flashSound[2] = trap_S_RegisterSound( "sound/weapons/vulcan/vulcanf3b.wav", qfalse );
;700:		weaponInfo->flashSound[3] = trap_S_RegisterSound( "sound/weapons/vulcan/vulcanf4b.wav", qfalse );
;701:		weaponInfo->ejectBrassFunc = CG_MachineGunEjectBrass;
;702:		cgs.media.bulletExplosionShader = trap_R_RegisterShader( "bulletExplosion" );
;703:		break;
;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 $465
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 192
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 192
INDIRI4
ASGNI4
line 709
;709:		weaponInfo->flashSound[1] = trap_S_RegisterSound( "sound/weapons/machinegun/machgf2b.wav", qfalse );
ADDRGP4 $466
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 196
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 56
ADDP4
ADDRLP4 196
INDIRI4
ASGNI4
line 710
;710:		weaponInfo->flashSound[2] = trap_S_RegisterSound( "sound/weapons/machinegun/machgf3b.wav", qfalse );
ADDRGP4 $467
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 200
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 60
ADDP4
ADDRLP4 200
INDIRI4
ASGNI4
line 711
;711:		weaponInfo->flashSound[3] = trap_S_RegisterSound( "sound/weapons/machinegun/machgf4b.wav", qfalse );
ADDRGP4 $468
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 204
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 64
ADDP4
ADDRLP4 204
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 $471
ARGP4
ADDRLP4 208
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+456
ADDRLP4 208
INDIRI4
ASGNI4
line 714
;714:		break;
ADDRGP4 $439
JUMPV
LABELV $472
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 $473
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 212
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 212
INDIRI4
ASGNI4
line 719
;719:		weaponInfo->ejectBrassFunc = CG_ShotgunEjectBrass;
ADDRLP4 12
INDIRP4
CNSTI4 112
ADDP4
ADDRGP4 CG_ShotgunEjectBrass
ASGNP4
line 720
;720:		break;
ADDRGP4 $439
JUMPV
LABELV $474
line 723
;721:
;722:	case WP_ROCKET_LAUNCHER:
;723:		weaponInfo->missileModel = trap_R_RegisterModel( "models/ammo/rocket/rocket.md3" );
ADDRGP4 $463
ARGP4
ADDRLP4 216
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 80
ADDP4
ADDRLP4 216
INDIRI4
ASGNI4
line 724
;724:		weaponInfo->missileSound = trap_S_RegisterSound( "sound/weapons/rocket/rockfly.wav", qfalse );
ADDRGP4 $475
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 220
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 84
ADDP4
ADDRLP4 220
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 $476
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 224
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 224
INDIRI4
ASGNI4
line 734
;734:		cgs.media.rocketExplosionShader = trap_R_RegisterShader( "rocketExplosion" );
ADDRGP4 $479
ARGP4
ADDRLP4 228
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+460
ADDRLP4 228
INDIRI4
ASGNI4
line 735
;735:		break;
ADDRGP4 $439
JUMPV
LABELV $480
line 750
;736:
;737:#ifdef MISSIONPACK
;738:	case WP_PROX_LAUNCHER:
;739:		weaponInfo->missileModel = trap_R_RegisterModel( "models/weaphits/proxmine.md3" );
;740:		weaponInfo->missileTrailFunc = CG_GrenadeTrail;
;741:		weaponInfo->wiTrailTime = 700;
;742:		weaponInfo->trailRadius = 32;
;743:		MAKERGB( weaponInfo->flashDlightColor, 1, 0.70f, 0 );
;744:		weaponInfo->flashSound[0] = trap_S_RegisterSound( "sound/weapons/proxmine/wstbfire.wav", qfalse );
;745:		cgs.media.grenadeExplosionShader = trap_R_RegisterShader( "grenadeExplosion" );
;746:		break;
;747:#endif
;748:
;749:	case WP_GRENADE_LAUNCHER:
;750:		weaponInfo->missileModel = trap_R_RegisterModel( "models/ammo/grenade1.md3" );
ADDRGP4 $481
ARGP4
ADDRLP4 232
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 80
ADDP4
ADDRLP4 232
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 $482
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 236
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 236
INDIRI4
ASGNI4
line 756
;756:		cgs.media.grenadeExplosionShader = trap_R_RegisterShader( "grenadeExplosion" );
ADDRGP4 $485
ARGP4
ADDRLP4 240
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+464
ADDRLP4 240
INDIRI4
ASGNI4
line 757
;757:		break;
ADDRGP4 $439
JUMPV
LABELV $486
line 774
;758:
;759:#ifdef MISSIONPACK
;760:	case WP_NAILGUN:
;761:		weaponInfo->ejectBrassFunc = CG_NailgunEjectBrass;
;762:		weaponInfo->missileTrailFunc = CG_NailTrail;
;763://		weaponInfo->missileSound = trap_S_RegisterSound( "sound/weapons/nailgun/wnalflit.wav", qfalse );
;764:		weaponInfo->trailRadius = 16;
;765:		weaponInfo->wiTrailTime = 250;
;766:		weaponInfo->missileModel = trap_R_RegisterModel( "models/weaphits/nail.md3" );
;767:		MAKERGB( weaponInfo->flashDlightColor, 1, 0.75f, 0 );
;768:		weaponInfo->flashSound[0] = trap_S_RegisterSound( "sound/weapons/nailgun/wnalfire.wav", qfalse );
;769:		break;
;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 $487
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 244
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 84
ADDP4
ADDRLP4 244
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 $488
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 248
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 248
INDIRI4
ASGNI4
line 778
;778:		cgs.media.plasmaExplosionShader = trap_R_RegisterShader( "plasmaExplosion" );
ADDRGP4 $491
ARGP4
ADDRLP4 252
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+452
ADDRLP4 252
INDIRI4
ASGNI4
line 779
;779:		cgs.media.railRingsShader = trap_R_RegisterShader( "railDisc" );
ADDRGP4 $494
ARGP4
ADDRLP4 256
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+188
ADDRLP4 256
INDIRI4
ASGNI4
line 780
;780:		break;
ADDRGP4 $439
JUMPV
LABELV $495
line 783
;781:
;782:	case WP_RAILGUN:
;783:		weaponInfo->readySound = trap_S_RegisterSound( "sound/weapons/railgun/rg_hum.wav", qfalse );
ADDRGP4 $496
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 260
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 124
ADDP4
ADDRLP4 260
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 $497
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 264
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 264
INDIRI4
ASGNI4
line 786
;786:		cgs.media.railExplosionShader = trap_R_RegisterShader( "railExplosion" );
ADDRGP4 $500
ARGP4
ADDRLP4 268
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+448
ADDRLP4 268
INDIRI4
ASGNI4
line 787
;787:		cgs.media.railRingsShader = trap_R_RegisterShader( "railDisc" );
ADDRGP4 $494
ARGP4
ADDRLP4 272
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+188
ADDRLP4 272
INDIRI4
ASGNI4
line 788
;788:		cgs.media.railCoreShader = trap_R_RegisterShader( "railCore" );
ADDRGP4 $505
ARGP4
ADDRLP4 276
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+192
ADDRLP4 276
INDIRI4
ASGNI4
line 789
;789:		break;
ADDRGP4 $439
JUMPV
LABELV $506
line 792
;790:
;791:	case WP_BFG:
;792:		weaponInfo->readySound = trap_S_RegisterSound( "sound/weapons/bfg/bfg_hum.wav", qfalse );
ADDRGP4 $507
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 280
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 124
ADDP4
ADDRLP4 280
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 $508
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 284
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 284
INDIRI4
ASGNI4
line 795
;795:		cgs.media.bfgExplosionShader = trap_R_RegisterShader( "bfgExplosion" );
ADDRGP4 $511
ARGP4
ADDRLP4 288
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRGP4 cgs+152340+468
ADDRLP4 288
INDIRI4
ASGNI4
line 796
;796:		weaponInfo->missileModel = trap_R_RegisterModel( "models/weaphits/bfg.md3" );
ADDRGP4 $512
ARGP4
ADDRLP4 292
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 80
ADDP4
ADDRLP4 292
INDIRI4
ASGNI4
line 797
;797:		weaponInfo->missileSound = trap_S_RegisterSound( "sound/weapons/rocket/rockfly.wav", qfalse );
ADDRGP4 $475
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 296
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 84
ADDP4
ADDRLP4 296
INDIRI4
ASGNI4
line 798
;798:		break;
ADDRGP4 $439
JUMPV
LABELV $438
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 $476
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 300
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 300
INDIRI4
ASGNI4
line 803
;803:		break;
LABELV $439
line 805
;804:	}
;805:}
LABELV $404
endproc CG_RegisterWeapon 304 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 $518
ADDRLP4 8
INDIRI4
ADDRGP4 bg_numItems
INDIRI4
LTI4 $516
LABELV $518
line 819
;819:		CG_Error( "CG_RegisterItemVisuals: itemNum %d out of range [0-%d]", itemNum, bg_numItems-1 );
ADDRGP4 $519
ARGP4
ADDRFP4 0
INDIRI4
ARGI4
ADDRGP4 bg_numItems
INDIRI4
CNSTI4 1
SUBI4
ARGI4
ADDRGP4 CG_Error
CALLV
pop
line 820
;820:	}
LABELV $516
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 $520
line 824
;824:		return;
ADDRGP4 $515
JUMPV
LABELV $520
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 $522
line 837
;837:		CG_RegisterWeapon( item->giTag );
ADDRLP4 0
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_RegisterWeapon
CALLV
pop
line 838
;838:	}
LABELV $522
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 $528
ADDRLP4 20
INDIRI4
CNSTI4 4
EQI4 $528
ADDRLP4 20
INDIRI4
CNSTI4 3
EQI4 $528
ADDRLP4 20
INDIRI4
CNSTI4 6
NEI4 $524
LABELV $528
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 $529
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 $529
line 848
;848:	}
LABELV $524
line 849
;849:}
LABELV $515
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 $532
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRI4
CNSTI4 9
ADDI4
GEI4 $532
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 $531
JUMPV
LABELV $532
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 $534
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRI4
CNSTI4 6
ADDI4
GEI4 $534
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 $531
JUMPV
LABELV $534
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 $536
ADDRLP4 16
INDIRI4
ADDRLP4 20
INDIRI4
CNSTI4 6
ADDI4
GEI4 $536
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 $531
JUMPV
LABELV $536
line 886
;884:	}
;885:	
;886:	return 0;
CNSTI4 0
RETI4
LABELV $531
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 $542
line 905
;905:		scale = -cg.xyspeed;
ADDRLP4 0
ADDRGP4 cg+124776
INDIRF4
NEGF4
ASGNF4
line 906
;906:	} else {
ADDRGP4 $543
JUMPV
LABELV $542
line 907
;907:		scale = cg.xyspeed;
ADDRLP4 0
ADDRGP4 cg+124776
INDIRF4
ASGNF4
line 908
;908:	}
LABELV $543
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 $553
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 $554
JUMPV
LABELV $553
ADDRLP4 8
INDIRI4
CNSTI4 450
GEI4 $556
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 $556
LABELV $554
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 $538
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 $562
line 961
;961:		return;
ADDRGP4 $561
JUMPV
LABELV $562
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 $564
ADDRGP4 cg_trueLightning+8
INDIRF4
CNSTF4 0
EQF4 $564
line 971
;968:		vec3_t angle;
;969:		int i;
;970:
;971:		for (i = 0; i < 3; i++) {
ADDRLP4 232
CNSTI4 0
ASGNI4
LABELV $569
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 $574
line 974
;974:				a -= 360;
ADDRLP4 248
ADDRLP4 248
INDIRF4
CNSTF4 1135869952
SUBF4
ASGNF4
line 975
;975:			}
LABELV $574
line 976
;976:			if (a < -180) {
ADDRLP4 248
INDIRF4
CNSTF4 3274964992
GEF4 $576
line 977
;977:				a += 360;
ADDRLP4 248
ADDRLP4 248
INDIRF4
CNSTF4 1135869952
ADDF4
ASGNF4
line 978
;978:			}
LABELV $576
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 $580
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 $580
line 984
;984:			if (angle[i] > 360) {
ADDRLP4 232
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 236
ADDP4
INDIRF4
CNSTF4 1135869952
LEF4 $582
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 $582
line 987
;987:		}
LABELV $570
line 971
ADDRLP4 232
ADDRLP4 232
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 232
INDIRI4
CNSTI4 3
LTI4 $569
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 $565
JUMPV
LABELV $564
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 $565
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+196
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 $603
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+444
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 $603
line 1041
;1041:}
LABELV $561
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 $637
line 1118
;1118:		return;
ADDRGP4 $636
JUMPV
LABELV $637
line 1120
;1119:	}
;1120:	if ( !cent->pe.railgunFlash ) {
ADDRFP4 0
INDIRP4
CNSTI4 620
ADDP4
INDIRI4
CNSTI4 0
NEI4 $639
line 1121
;1121:		return;
ADDRGP4 $636
JUMPV
LABELV $639
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 $636
endproc CG_SpawnRailTrail 4 12
proc CG_MachinegunSpinAngle 32 4
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 $644
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 $645
JUMPV
LABELV $644
line 1145
;1145:		if ( delta > COAST_TIME ) {
ADDRLP4 0
INDIRI4
CNSTI4 1000
LEI4 $646
line 1146
;1146:			delta = COAST_TIME;
ADDRLP4 0
CNSTI4 1000
ASGNI4
line 1147
;1147:		}
LABELV $646
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 $645
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 $651
ADDRLP4 12
CNSTI4 1
ASGNI4
ADDRGP4 $652
JUMPV
LABELV $651
ADDRLP4 12
CNSTI4 0
ASGNI4
LABELV $652
ADDRLP4 16
INDIRP4
CNSTI4 632
ADDP4
INDIRI4
ADDRLP4 12
INDIRI4
NEI4 $648
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 $655
ADDRLP4 24
CNSTI4 1
ASGNI4
ADDRGP4 $656
JUMPV
LABELV $655
ADDRLP4 24
CNSTI4 0
ASGNI4
LABELV $656
ADDRLP4 28
INDIRP4
CNSTI4 632
ADDP4
ADDRLP4 24
INDIRI4
ASGNI4
line 1162
;1157:#ifdef MISSIONPACK
;1158:		if ( cent->currentState.weapon == WP_CHAINGUN && !cent->pe.barrelSpinning ) {
;1159:			trap_S_StartSound( NULL, cent->currentState.number, CHAN_WEAPON, trap_S_RegisterSound( "sound/weapons/vulcan/wvulwind.wav", qfalse ) );
;1160:		}
;1161:#endif
;1162:	}
LABELV $648
line 1164
;1163:
;1164:	return angle;
ADDRLP4 4
INDIRF4
RETF4
LABELV $642
endproc CG_MachinegunSpinAngle 32 4
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 $658
line 1176
;1176:		gun->customShader = cgs.media.invisShader;
ADDRFP4 0
INDIRP4
CNSTI4 112
ADDP4
ADDRGP4 cgs+152340+404
INDIRI4
ASGNI4
line 1177
;1177:		trap_R_AddRefEntityToScene( gun );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 1178
;1178:	} else {
ADDRGP4 $659
JUMPV
LABELV $658
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 $662
line 1182
;1182:			gun->customShader = cgs.media.battleWeaponShader;
ADDRFP4 0
INDIRP4
CNSTI4 112
ADDP4
ADDRGP4 cgs+152340+416
INDIRI4
ASGNI4
line 1183
;1183:			trap_R_AddRefEntityToScene( gun );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 1184
;1184:		}
LABELV $662
line 1185
;1185:		if ( powerups & ( 1 << PW_QUAD ) ) {
ADDRFP4 4
INDIRI4
CNSTI4 2
BANDI4
CNSTI4 0
EQI4 $666
line 1186
;1186:			gun->customShader = cgs.media.quadWeaponShader;
ADDRFP4 0
INDIRP4
CNSTI4 112
ADDP4
ADDRGP4 cgs+152340+400
INDIRI4
ASGNI4
line 1187
;1187:			trap_R_AddRefEntityToScene( gun );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 1188
;1188:		}
LABELV $666
line 1189
;1189:	}
LABELV $659
line 1190
;1190:}
LABELV $657
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 $674
line 1225
;1225:		if ( cg.predictedPlayerState.weapon == WP_RAILGUN 
ADDRGP4 cg+107636+144
INDIRI4
CNSTI4 7
NEI4 $676
ADDRGP4 cg+107636+148
INDIRI4
CNSTI4 3
NEI4 $676
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 $690
ADDRLP4 448
ADDRLP4 452
INDIRF4
ADDRLP4 456
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $691
JUMPV
LABELV $690
ADDRLP4 448
ADDRLP4 452
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $691
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 $677
JUMPV
LABELV $676
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 $677
line 1239
;1239:	}
LABELV $674
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 $700
line 1243
;1243:		return;
ADDRGP4 $670
JUMPV
LABELV $700
line 1246
;1244:	}
;1245:
;1246:	if ( !ps ) {
ADDRFP4 4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $703
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 $705
ADDRLP4 280
INDIRP4
CNSTI4 128
ADDP4
INDIRI4
ADDRLP4 444
INDIRI4
EQI4 $705
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 $706
JUMPV
LABELV $705
ADDRLP4 280
INDIRP4
CNSTI4 124
ADDP4
INDIRI4
CNSTI4 0
EQI4 $707
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 $707
LABELV $706
line 1256
;1256:	}
LABELV $703
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 $709
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 $710
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 $719
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 $710
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 $720
line 1287
;1287:		nonPredictedCent = cent;
ADDRLP4 440
ADDRFP4 8
INDIRP4
ASGNP4
line 1288
;1288:	}
LABELV $720
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 $725
ADDRLP4 284
INDIRI4
CNSTI4 1
EQI4 $725
ADDRLP4 284
INDIRI4
CNSTI4 10
NEI4 $722
LABELV $725
ADDRLP4 440
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 256
BANDI4
CNSTI4 0
EQI4 $722
line 1293
;1292:		&& ( nonPredictedCent->currentState.eFlags & EF_FIRING ) ) 
;1293:	{
line 1295
;1294:		// continuous flash
;1295:	} else {
ADDRGP4 $723
JUMPV
LABELV $722
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 $726
ADDRLP4 452
INDIRP4
CNSTI4 620
ADDP4
INDIRI4
CNSTI4 0
NEI4 $726
line 1298
;1298:			return;
ADDRGP4 $670
JUMPV
LABELV $726
line 1300
;1299:		}
;1300:	}
LABELV $723
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 $733
line 1309
;1309:		return;
ADDRGP4 $670
JUMPV
LABELV $733
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 $739
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 $744
ADDRLP4 460
ADDRLP4 464
INDIRF4
ADDRLP4 468
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $745
JUMPV
LABELV $744
ADDRLP4 460
ADDRLP4 464
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $745
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 $749
ADDRLP4 472
ADDRLP4 476
INDIRF4
ADDRLP4 480
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $750
JUMPV
LABELV $749
ADDRLP4 472
ADDRLP4 476
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $750
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 $754
ADDRLP4 484
ADDRLP4 488
INDIRF4
ADDRLP4 492
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $755
JUMPV
LABELV $754
ADDRLP4 484
ADDRLP4 488
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $755
ADDRLP4 0+116+2
ADDRLP4 484
INDIRU4
CVUU1 4
ASGNU1
line 1324
;1324:	}
LABELV $739
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 $756
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 $763
ADDRGP4 cg+107628
INDIRI4
CNSTI4 0
NEI4 $763
ADDRFP4 8
INDIRP4
INDIRI4
ADDRGP4 cg+107636+140
INDIRI4
EQI4 $757
LABELV $763
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 $769
ADDRLP4 280
INDIRP4
CNSTI4 44
ADDP4
INDIRF4
ADDRLP4 460
INDIRF4
NEF4 $769
ADDRLP4 280
INDIRP4
CNSTI4 48
ADDP4
INDIRF4
ADDRLP4 460
INDIRF4
EQF4 $766
LABELV $769
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 $766
line 1341
;1341:	}
LABELV $757
line 1342
;1342:}
LABELV $670
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 $772
line 1360
;1360:		return;
ADDRGP4 $771
JUMPV
LABELV $772
line 1363
;1361:	}
;1362:
;1363:	if ( ps->pm_type == PM_INTERMISSION ) {
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
CNSTI4 5
NEI4 $774
line 1364
;1364:		return;
ADDRGP4 $771
JUMPV
LABELV $774
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 $776
line 1370
;1370:		return;
ADDRGP4 $771
JUMPV
LABELV $776
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 $779
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 $771
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 $771
JUMPV
LABELV $779
line 1388
;1385:	}
;1386:
;1387:	// don't draw if testing a gun model
;1388:	if ( cg.testGun ) {
ADDRGP4 cg+124988
INDIRI4
CNSTI4 0
EQI4 $803
line 1389
;1389:		return;
ADDRGP4 $771
JUMPV
LABELV $803
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 $806
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 $807
JUMPV
LABELV $806
line 1396
;1396:		fovOffset = 0;
ADDRLP4 140
CNSTF4 0
ASGNF4
line 1397
;1397:	}
LABELV $807
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 $882
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 $883
JUMPV
LABELV $882
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 $883
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 $771
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 $897
line 1457
;1457:		return;
ADDRGP4 $896
JUMPV
LABELV $897
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 $902
line 1462
;1462:		return;
ADDRGP4 $896
JUMPV
LABELV $902
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 236
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 $906
line 1473
;1473:		if ( bits & ( 1 << i ) ) {
ADDRLP4 12
INDIRI4
CNSTI4 1
ADDRLP4 0
INDIRI4
LSHI4
BANDI4
CNSTI4 0
EQI4 $910
line 1474
;1474:			count++;
ADDRLP4 16
ADDRLP4 16
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1475
;1475:		}
LABELV $910
line 1476
;1476:	}
LABELV $907
line 1472
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 16
LTI4 $906
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 $912
line 1482
;1482:		if ( !( bits & ( 1 << i ) ) ) {
ADDRLP4 12
INDIRI4
CNSTI4 1
ADDRLP4 0
INDIRI4
LSHI4
BANDI4
CNSTI4 0
NEI4 $916
line 1483
;1483:			continue;
ADDRGP4 $913
JUMPV
LABELV $916
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 $919
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+212
INDIRI4
ARGI4
ADDRGP4 CG_DrawPic
CALLV
pop
line 1494
;1494:		}
LABELV $919
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 $924
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+272
INDIRI4
ARGI4
ADDRGP4 CG_DrawPic
CALLV
pop
line 1499
;1499:		}
LABELV $924
line 1501
;1500:
;1501:		x += 40;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 40
ADDI4
ASGNI4
line 1502
;1502:	}
LABELV $913
line 1481
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 16
LTI4 $912
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 $929
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 $935
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 $935
line 1512
;1512:	}
LABELV $929
line 1514
;1513:
;1514:	trap_R_SetColor( NULL );
CNSTP4 0
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 1515
;1515:}
LABELV $896
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 $938
line 1525
;1525:		return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $937
JUMPV
LABELV $938
line 1527
;1526:	}
;1527:	if ( ! (cg.snap->ps.stats[ STAT_WEAPONS ] & ( 1 << i ) ) ) {
ADDRGP4 cg+36
INDIRP4
CNSTI4 236
ADDP4
INDIRI4
CNSTI4 1
ADDRFP4 0
INDIRI4
LSHI4
BANDI4
CNSTI4 0
NEI4 $941
line 1528
;1528:		return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $937
JUMPV
LABELV $941
line 1531
;1529:	}
;1530:
;1531:	return qtrue;
CNSTI4 1
RETI4
LABELV $937
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 $945
line 1544
;1544:		return;
ADDRGP4 $944
JUMPV
LABELV $945
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 $948
line 1547
;1547:		return;
ADDRGP4 $944
JUMPV
LABELV $948
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 $954
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 $959
line 1556
;1556:			cg.weaponSelect = 0;
ADDRGP4 cg+108944
CNSTI4 0
ASGNI4
line 1557
;1557:		}
LABELV $959
line 1558
;1558:		if ( cg.weaponSelect == WP_GAUNTLET ) {
ADDRGP4 cg+108944
INDIRI4
CNSTI4 1
NEI4 $963
line 1559
;1559:			continue;		// never cycle to gauntlet
ADDRGP4 $955
JUMPV
LABELV $963
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 $966
line 1562
;1562:			break;
ADDRGP4 $956
JUMPV
LABELV $966
line 1564
;1563:		}
;1564:	}
LABELV $955
line 1553
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 16
LTI4 $954
LABELV $956
line 1565
;1565:	if ( i == 16 ) {
ADDRLP4 0
INDIRI4
CNSTI4 16
NEI4 $969
line 1566
;1566:		cg.weaponSelect = original;
ADDRGP4 cg+108944
ADDRLP4 4
INDIRI4
ASGNI4
line 1567
;1567:	}
LABELV $969
line 1568
;1568:}
LABELV $944
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 $973
line 1580
;1580:		return;
ADDRGP4 $972
JUMPV
LABELV $973
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 $976
line 1583
;1583:		return;
ADDRGP4 $972
JUMPV
LABELV $976
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 $982
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 $987
line 1592
;1592:			cg.weaponSelect = 15;
ADDRGP4 cg+108944
CNSTI4 15
ASGNI4
line 1593
;1593:		}
LABELV $987
line 1594
;1594:		if ( cg.weaponSelect == WP_GAUNTLET ) {
ADDRGP4 cg+108944
INDIRI4
CNSTI4 1
NEI4 $991
line 1595
;1595:			continue;		// never cycle to gauntlet
ADDRGP4 $983
JUMPV
LABELV $991
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 $994
line 1598
;1598:			break;
ADDRGP4 $984
JUMPV
LABELV $994
line 1600
;1599:		}
;1600:	}
LABELV $983
line 1589
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 16
LTI4 $982
LABELV $984
line 1601
;1601:	if ( i == 16 ) {
ADDRLP4 0
INDIRI4
CNSTI4 16
NEI4 $997
line 1602
;1602:		cg.weaponSelect = original;
ADDRGP4 cg+108944
ADDRLP4 4
INDIRI4
ASGNI4
line 1603
;1603:	}
LABELV $997
line 1604
;1604:}
LABELV $972
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 $1001
line 1615
;1615:		return;
ADDRGP4 $1000
JUMPV
LABELV $1001
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 $1004
line 1618
;1618:		return;
ADDRGP4 $1000
JUMPV
LABELV $1004
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 $1009
ADDRLP4 0
INDIRI4
CNSTI4 15
LEI4 $1007
LABELV $1009
line 1624
;1624:		return;
ADDRGP4 $1000
JUMPV
LABELV $1007
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 236
ADDP4
INDIRI4
CNSTI4 1
ADDRLP4 0
INDIRI4
LSHI4
BANDI4
CNSTI4 0
NEI4 $1012
line 1630
;1630:		return;		// don't have the weapon
ADDRGP4 $1000
JUMPV
LABELV $1012
line 1633
;1631:	}
;1632:
;1633:	cg.weaponSelect = num;
ADDRGP4 cg+108944
ADDRLP4 0
INDIRI4
ASGNI4
line 1634
;1634:}
LABELV $1000
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 $1019
line 1649
;1649:		if ( CG_WeaponSelectable( i ) ) {
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 4
ADDRGP4 CG_WeaponSelectable
CALLI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 0
EQI4 $1023
line 1650
;1650:			cg.weaponSelect = i;
ADDRGP4 cg+108944
ADDRLP4 0
INDIRI4
ASGNI4
line 1651
;1651:			break;
ADDRGP4 $1021
JUMPV
LABELV $1023
line 1653
;1652:		}
;1653:	}
LABELV $1020
line 1648
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
SUBI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 0
GTI4 $1019
LABELV $1021
line 1654
;1654:}
LABELV $1016
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 $1027
line 1680
;1680:		return;
ADDRGP4 $1026
JUMPV
LABELV $1027
line 1682
;1681:	}
;1682:	if ( ent->weapon >= WP_NUM_WEAPONS ) {
ADDRLP4 8
INDIRP4
CNSTI4 192
ADDP4
INDIRI4
CNSTI4 11
LTI4 $1029
line 1683
;1683:		CG_Error( "CG_FireWeapon: ent->weapon >= WP_NUM_WEAPONS" );
ADDRGP4 $1031
ARGP4
ADDRGP4 CG_Error
CALLV
pop
line 1684
;1684:		return;
ADDRGP4 $1026
JUMPV
LABELV $1029
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 $1033
line 1694
;1694:		if ( cent->pe.lightningFiring ) {
ADDRFP4 0
INDIRP4
CNSTI4 604
ADDP4
INDIRI4
CNSTI4 0
EQI4 $1035
line 1695
;1695:			return;
ADDRGP4 $1026
JUMPV
LABELV $1035
line 1697
;1696:		}
;1697:	}
LABELV $1033
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 $1037
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+528
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
line 1702
;1702:	}
LABELV $1037
line 1705
;1703:
;1704:	// play a sound
;1705:	for ( c = 0 ; c < 4 ; c++ ) {
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $1041
line 1706
;1706:		if ( !weap->flashSound[c] ) {
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 4
INDIRP4
CNSTI4 52
ADDP4
ADDP4
INDIRI4
CNSTI4 0
NEI4 $1045
line 1707
;1707:			break;
ADDRGP4 $1043
JUMPV
LABELV $1045
line 1709
;1708:		}
;1709:	}
LABELV $1042
line 1705
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 4
LTI4 $1041
LABELV $1043
line 1710
;1710:	if ( c > 0 ) {
ADDRLP4 0
INDIRI4
CNSTI4 0
LEI4 $1047
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 $1049
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 $1049
line 1716
;1716:	}
LABELV $1047
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 $1051
ADDRGP4 cg_brassTime+12
INDIRI4
CNSTI4 0
LEI4 $1051
line 1720
;1720:		weap->ejectBrassFunc( cent );
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 4
INDIRP4
CNSTI4 112
ADDP4
INDIRP4
CALLV
pop
line 1721
;1721:	}
LABELV $1051
line 1722
;1722:}
LABELV $1026
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 44
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 $1057
ADDRLP4 80
INDIRI4
CNSTI4 9
GTI4 $1057
ADDRLP4 80
INDIRI4
ADDRLP4 84
INDIRI4
LSHI4
ADDRGP4 $1151-8
ADDP4
INDIRP4
JUMPV
lit
align 4
LABELV $1151
address $1134
address $1127
address $1072
address $1081
address $1059
address $1100
address $1109
address $1118
code
LABELV $1057
LABELV $1059
line 1779
;1763:	default:
;1764:#ifdef MISSIONPACK
;1765:	case WP_NAILGUN:
;1766:		if( soundType == IMPACTSOUND_FLESH ) {
;1767:			sfx = cgs.media.sfx_nghitflesh;
;1768:		} else if( soundType == IMPACTSOUND_METAL ) {
;1769:			sfx = cgs.media.sfx_nghitmetal;
;1770:		} else {
;1771:			sfx = cgs.media.sfx_nghit;
;1772:		}
;1773:		mark = cgs.media.holeMarkShader;
;1774:		radius = 12;
;1775:		break;
;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 $1060
line 1781
;1781:			sfx = cgs.media.sfx_lghit2;
ADDRLP4 16
ADDRGP4 cgs+152340+664
INDIRI4
ASGNI4
line 1782
;1782:		} else if ( r == 2 ) {
ADDRGP4 $1061
JUMPV
LABELV $1060
ADDRLP4 52
INDIRI4
CNSTI4 2
NEI4 $1064
line 1783
;1783:			sfx = cgs.media.sfx_lghit1;
ADDRLP4 16
ADDRGP4 cgs+152340+660
INDIRI4
ASGNI4
line 1784
;1784:		} else {
ADDRGP4 $1065
JUMPV
LABELV $1064
line 1785
;1785:			sfx = cgs.media.sfx_lghit3;
ADDRLP4 16
ADDRGP4 cgs+152340+668
INDIRI4
ASGNI4
line 1786
;1786:		}
LABELV $1065
LABELV $1061
line 1787
;1787:		mark = cgs.media.holeMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+384
INDIRI4
ASGNI4
line 1788
;1788:		radius = 12;
ADDRLP4 24
CNSTF4 1094713344
ASGNF4
line 1789
;1789:		break;
ADDRGP4 $1058
JUMPV
LABELV $1072
line 1802
;1790:#ifdef MISSIONPACK
;1791:	case WP_PROX_LAUNCHER:
;1792:		mod = cgs.media.dishFlashModel;
;1793:		shader = cgs.media.grenadeExplosionShader;
;1794:		sfx = cgs.media.sfx_proxexp;
;1795:		mark = cgs.media.burnMarkShader;
;1796:		radius = 64;
;1797:		light = 300;
;1798:		isSprite = qtrue;
;1799:		break;
;1800:#endif
;1801:	case WP_GRENADE_LAUNCHER:
;1802:		mod = cgs.media.dishFlashModel;
ADDRLP4 20
ADDRGP4 cgs+152340+440
INDIRI4
ASGNI4
line 1803
;1803:		shader = cgs.media.grenadeExplosionShader;
ADDRLP4 28
ADDRGP4 cgs+152340+464
INDIRI4
ASGNI4
line 1804
;1804:		sfx = cgs.media.sfx_rockexp;
ADDRLP4 16
ADDRGP4 cgs+152340+688
INDIRI4
ASGNI4
line 1805
;1805:		mark = cgs.media.burnMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+380
INDIRI4
ASGNI4
line 1806
;1806:		radius = 64;
ADDRLP4 24
CNSTF4 1115684864
ASGNF4
line 1807
;1807:		light = 300;
ADDRLP4 44
CNSTF4 1133903872
ASGNF4
line 1808
;1808:		isSprite = qtrue;
ADDRLP4 36
CNSTI4 1
ASGNI4
line 1809
;1809:		break;
ADDRGP4 $1058
JUMPV
LABELV $1081
line 1811
;1810:	case WP_ROCKET_LAUNCHER:
;1811:		mod = cgs.media.dishFlashModel;
ADDRLP4 20
ADDRGP4 cgs+152340+440
INDIRI4
ASGNI4
line 1812
;1812:		shader = cgs.media.rocketExplosionShader;
ADDRLP4 28
ADDRGP4 cgs+152340+460
INDIRI4
ASGNI4
line 1813
;1813:		sfx = cgs.media.sfx_rockexp;
ADDRLP4 16
ADDRGP4 cgs+152340+688
INDIRI4
ASGNI4
line 1814
;1814:		mark = cgs.media.burnMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+380
INDIRI4
ASGNI4
line 1815
;1815:		radius = 64;
ADDRLP4 24
CNSTF4 1115684864
ASGNF4
line 1816
;1816:		light = 300;
ADDRLP4 44
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 $1058
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 $1099
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 $1058
JUMPV
LABELV $1100
line 1831
;1830:	case WP_RAILGUN:
;1831:		mod = cgs.media.ringFlashModel;
ADDRLP4 20
ADDRGP4 cgs+152340+436
INDIRI4
ASGNI4
line 1832
;1832:		shader = cgs.media.railExplosionShader;
ADDRLP4 28
ADDRGP4 cgs+152340+448
INDIRI4
ASGNI4
line 1833
;1833:		sfx = cgs.media.sfx_plasmaexp;
ADDRLP4 16
ADDRGP4 cgs+152340+692
INDIRI4
ASGNI4
line 1834
;1834:		mark = cgs.media.energyMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+388
INDIRI4
ASGNI4
line 1835
;1835:		radius = 24;
ADDRLP4 24
CNSTF4 1103101952
ASGNF4
line 1836
;1836:		break;
ADDRGP4 $1058
JUMPV
LABELV $1109
line 1838
;1837:	case WP_PLASMAGUN:
;1838:		mod = cgs.media.ringFlashModel;
ADDRLP4 20
ADDRGP4 cgs+152340+436
INDIRI4
ASGNI4
line 1839
;1839:		shader = cgs.media.plasmaExplosionShader;
ADDRLP4 28
ADDRGP4 cgs+152340+452
INDIRI4
ASGNI4
line 1840
;1840:		sfx = cgs.media.sfx_plasmaexp;
ADDRLP4 16
ADDRGP4 cgs+152340+692
INDIRI4
ASGNI4
line 1841
;1841:		mark = cgs.media.energyMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+388
INDIRI4
ASGNI4
line 1842
;1842:		radius = 16;
ADDRLP4 24
CNSTF4 1098907648
ASGNF4
line 1843
;1843:		break;
ADDRGP4 $1058
JUMPV
LABELV $1118
line 1845
;1844:	case WP_BFG:
;1845:		mod = cgs.media.dishFlashModel;
ADDRLP4 20
ADDRGP4 cgs+152340+440
INDIRI4
ASGNI4
line 1846
;1846:		shader = cgs.media.bfgExplosionShader;
ADDRLP4 28
ADDRGP4 cgs+152340+468
INDIRI4
ASGNI4
line 1847
;1847:		sfx = cgs.media.sfx_rockexp;
ADDRLP4 16
ADDRGP4 cgs+152340+688
INDIRI4
ASGNI4
line 1848
;1848:		mark = cgs.media.burnMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+380
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 $1058
JUMPV
LABELV $1127
line 1853
;1852:	case WP_SHOTGUN:
;1853:		mod = cgs.media.bulletFlashModel;
ADDRLP4 20
ADDRGP4 cgs+152340+432
INDIRI4
ASGNI4
line 1854
;1854:		shader = cgs.media.bulletExplosionShader;
ADDRLP4 28
ADDRGP4 cgs+152340+456
INDIRI4
ASGNI4
line 1855
;1855:		mark = cgs.media.bulletMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+376
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 $1058
JUMPV
LABELV $1134
line 1886
;1859:
;1860:#ifdef MISSIONPACK
;1861:	case WP_CHAINGUN:
;1862:		mod = cgs.media.bulletFlashModel;
;1863:		if( soundType == IMPACTSOUND_FLESH ) {
;1864:			sfx = cgs.media.sfx_chghitflesh;
;1865:		} else if( soundType == IMPACTSOUND_METAL ) {
;1866:			sfx = cgs.media.sfx_chghitmetal;
;1867:		} else {
;1868:			sfx = cgs.media.sfx_chghit;
;1869:		}
;1870:		mark = cgs.media.bulletMarkShader;
;1871:
;1872:		r = rand() & 3;
;1873:		if ( r < 2 ) {
;1874:			sfx = cgs.media.sfx_ric1;
;1875:		} else if ( r == 2 ) {
;1876:			sfx = cgs.media.sfx_ric2;
;1877:		} else {
;1878:			sfx = cgs.media.sfx_ric3;
;1879:		}
;1880:
;1881:		radius = 8;
;1882:		break;
;1883:#endif
;1884:
;1885:	case WP_MACHINEGUN:
;1886:		mod = cgs.media.bulletFlashModel;
ADDRLP4 20
ADDRGP4 cgs+152340+432
INDIRI4
ASGNI4
line 1887
;1887:		shader = cgs.media.bulletExplosionShader;
ADDRLP4 28
ADDRGP4 cgs+152340+456
INDIRI4
ASGNI4
line 1888
;1888:		mark = cgs.media.bulletMarkShader;
ADDRLP4 0
ADDRGP4 cgs+152340+376
INDIRI4
ASGNI4
line 1890
;1889:
;1890:		r = rand() & 3;
ADDRLP4 92
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 52
ADDRLP4 92
INDIRI4
CNSTI4 3
BANDI4
ASGNI4
line 1891
;1891:		if ( r == 0 ) {
ADDRLP4 52
INDIRI4
CNSTI4 0
NEI4 $1141
line 1892
;1892:			sfx = cgs.media.sfx_ric1;
ADDRLP4 16
ADDRGP4 cgs+152340+672
INDIRI4
ASGNI4
line 1893
;1893:		} else if ( r == 1 ) {
ADDRGP4 $1142
JUMPV
LABELV $1141
ADDRLP4 52
INDIRI4
CNSTI4 1
NEI4 $1145
line 1894
;1894:			sfx = cgs.media.sfx_ric2;
ADDRLP4 16
ADDRGP4 cgs+152340+676
INDIRI4
ASGNI4
line 1895
;1895:		} else {
ADDRGP4 $1146
JUMPV
LABELV $1145
line 1896
;1896:			sfx = cgs.media.sfx_ric3;
ADDRLP4 16
ADDRGP4 cgs+152340+680
INDIRI4
ASGNI4
line 1897
;1897:		}
LABELV $1146
LABELV $1142
line 1899
;1898:
;1899:		radius = 8;
ADDRLP4 24
CNSTF4 1090519040
ASGNF4
line 1900
;1900:		break;
LABELV $1058
line 1903
;1901:	}
;1902:
;1903:	if ( sfx ) {
ADDRLP4 16
INDIRI4
CNSTI4 0
EQI4 $1153
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 $1153
line 1910
;1906:
;1907:	//
;1908:	// create the explosion
;1909:	//
;1910:	if ( mod ) {
ADDRLP4 20
INDIRI4
CNSTI4 0
EQI4 $1155
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 40
ADDRLP4 88
INDIRP4
ASGNP4
line 1914
;1912:							   mod,	shader,
;1913:							   duration, isSprite );
;1914:		le->light = light;
ADDRLP4 40
INDIRP4
CNSTI4 128
ADDP4
ADDRLP4 44
INDIRF4
ASGNF4
line 1915
;1915:		VectorCopy( lightColor, le->lightColor );
ADDRLP4 40
INDIRP4
CNSTI4 132
ADDP4
ADDRLP4 4
INDIRB
ASGNB 12
line 1916
;1916:		if ( weapon == WP_RAILGUN ) {
ADDRFP4 0
INDIRI4
CNSTI4 7
NEI4 $1157
line 1918
;1917:			// colorize with client color
;1918:			VectorCopy( cgs.clientinfo[clientNum].color1, le->color );
ADDRLP4 40
INDIRP4
CNSTI4 108
ADDP4
CNSTI4 1708
ADDRFP4 4
INDIRI4
MULI4
ADDRGP4 cgs+40972+76
ADDP4
INDIRB
ASGNB 12
line 1919
;1919:		}
LABELV $1157
line 1920
;1920:	}
LABELV $1155
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+388
INDIRI4
NEI4 $1164
ADDRLP4 88
CNSTI4 1
ASGNI4
ADDRGP4 $1165
JUMPV
LABELV $1164
ADDRLP4 88
CNSTI4 0
ASGNI4
LABELV $1165
ADDRLP4 32
ADDRLP4 88
INDIRI4
ASGNI4
line 1926
;1926:	if ( weapon == WP_RAILGUN ) {
ADDRFP4 0
INDIRI4
CNSTI4 7
NEI4 $1166
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 $1167
JUMPV
LABELV $1166
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 $1167
line 1935
;1935:}
LABELV $1054
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
EQI4 $1173
ADDRLP4 0
INDIRI4
CNSTI4 5
EQI4 $1173
ADDRGP4 $1172
JUMPV
LABELV $1173
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 $1172
line 1961
;1960:	}
;1961:}
LABELV $1170
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 $1176
line 1989
;1989:		if ( sourceContentType & CONTENTS_WATER ) {
ADDRLP4 56
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $1177
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 $1177
JUMPV
LABELV $1176
ADDRLP4 56
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $1181
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 $1182
JUMPV
LABELV $1181
ADDRLP4 60
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $1184
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 $1184
LABELV $1182
LABELV $1177
line 2004
;2003:
;2004:	if (  tr.surfaceFlags & SURF_NOIMPACT ) {
ADDRLP4 0+44
INDIRI4
CNSTI4 16
BANDI4
CNSTI4 0
EQI4 $1188
line 2005
;2005:		return;
ADDRGP4 $1174
JUMPV
LABELV $1188
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 $1191
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 $1192
JUMPV
LABELV $1191
line 2011
;2011:		if ( tr.surfaceFlags & SURF_NOIMPACT ) {
ADDRLP4 0+44
INDIRI4
CNSTI4 16
BANDI4
CNSTI4 0
EQI4 $1198
line 2013
;2012:			// SURF_NOIMPACT will not make a flame puff or a mark
;2013:			return;
ADDRGP4 $1174
JUMPV
LABELV $1198
line 2015
;2014:		}
;2015:		if ( tr.surfaceFlags & SURF_METALSTEPS ) {
ADDRLP4 0+44
INDIRI4
CNSTI4 4096
BANDI4
CNSTI4 0
EQI4 $1201
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 $1202
JUMPV
LABELV $1201
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 $1202
line 2020
;2020:	}
LABELV $1192
line 2021
;2021:}
LABELV $1174
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 $1209
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 1140457472
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 1140457472
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 $1210
line 2044
ADDRLP4 56
ADDRLP4 56
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 56
INDIRI4
CNSTI4 11
LTI4 $1209
line 2053
;2053:}
LABELV $1208
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 $1240
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 $1244
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+284
INDIRI4
ARGI4
ADDRGP4 CG_SmokePuff
CALLP4
pop
line 2076
;2076:		}
LABELV $1244
line 2077
;2077:	}
LABELV $1240
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 $1229
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 $1254
line 2109
;2109:		return;
ADDRGP4 $1251
JUMPV
LABELV $1254
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 $1257
line 2114
;2114:		end = len;
ADDRLP4 156
ADDRLP4 164
INDIRF4
ASGNF4
line 2115
;2115:	}
LABELV $1257
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+220
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+532
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
line 2167
;2166:
;2167:}
LABELV $1251
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 $1439
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 $1438
JUMPV
LABELV $1439
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 $1447
line 2190
;2190:		return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $1438
JUMPV
LABELV $1447
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 $1451
ADDRLP4 16
INDIRI4
CNSTI4 23
NEI4 $1449
LABELV $1451
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 $1450
JUMPV
LABELV $1449
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 $1450
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 $1438
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 $1455
ADDRGP4 cg_tracerChance+8
INDIRF4
CNSTF4 0
LEF4 $1455
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 $1458
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 $1460
ADDRLP4 88
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $1460
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 $1461
JUMPV
LABELV $1460
line 2233
;2232:			// bubble trail from water into air
;2233:			else if ( ( sourceContentType & CONTENTS_WATER ) ) {
ADDRLP4 12
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $1462
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 $1463
JUMPV
LABELV $1462
line 2238
;2237:			// bubble trail from air into water
;2238:			else if ( ( destContentType & CONTENTS_WATER ) ) {
ADDRLP4 16
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $1465
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 $1465
LABELV $1463
LABELV $1461
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 $1468
line 2245
;2245:				CG_Tracer( start, end );
ADDRLP4 0
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CG_Tracer
CALLV
pop
line 2246
;2246:			}
LABELV $1468
line 2247
;2247:		}
LABELV $1458
line 2248
;2248:	}
LABELV $1455
line 2251
;2249:
;2250:	// impact splash and mark
;2251:	if ( flesh ) {
ADDRFP4 12
INDIRI4
CNSTI4 0
EQI4 $1471
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 $1472
JUMPV
LABELV $1471
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 $1472
line 2257
;2256:
;2257:}
LABELV $1454
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_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_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 $1099
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 $1031
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 $756
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 $719
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 $709
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 $519
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 $512
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 $511
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 $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 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 $507
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 $505
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 $500
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 $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 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 $496
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 $494
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 $491
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 $488
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 $487
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 $485
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 $482
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 $481
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 $479
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 $476
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 $475
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 $473
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 $471
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 $468
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 $467
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 $466
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 $465
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 $463
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 $461
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 $458
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 $455
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 $452
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 $449
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 $446
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 $445
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 $444
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 $442
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 $441
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 $437
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 $434
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 $433
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 $432
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 $418
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
