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