data
export menuScoreboard
align 4
LABELV menuScoreboard
byte 4 0
export CG_Text_Width
code
proc CG_Text_Width 48 4
file "debug-x86-Linux-2.3/TA/cgame/cgame/cg_draw.c"
line 27
;1:// Copyright (C) 1999-2000 Id Software, Inc.
;2://
;3:// cg_draw.c -- draw all of the graphical elements during
;4:// active (after loading) gameplay
;5:
;6:#include "cg_local.h"
;7:
;8:#ifdef MISSIONPACK
;9:#include "../ui/ui_shared.h"
;10:
;11:// used for scoreboard
;12:extern displayContextDef_t cgDC;
;13:menuDef_t *menuScoreboard = NULL;
;14:#else
;15:int drawTeamOverlayModificationCount = -1;
;16:#endif
;17:
;18:int sortedTeamPlayers[TEAM_MAXOVERLAY];
;19:int	numSortedTeamPlayers;
;20:
;21:char systemChat[256];
;22:char teamChat1[256];
;23:char teamChat2[256];
;24:
;25:#ifdef MISSIONPACK
;26:
;27:int CG_Text_Width(const char *text, float scale, int limit) {
line 34
;28:  int count,len;
;29:	float out;
;30:	glyphInfo_t *glyph;
;31:	float useScale;
;32:// FIXME: see ui_main.c, same problem
;33://	const unsigned char *s = text;
;34:	const char *s = text;
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
line 35
;35:	fontInfo_t *font = &cgDC.Assets.textFont;
ADDRLP4 12
ADDRGP4 cgDC+228+12
ASGNP4
line 36
;36:	if (scale <= cg_smallFont.value) {
ADDRFP4 4
INDIRF4
ADDRGP4 cg_smallFont+8
INDIRF4
GTF4 $82
line 37
;37:		font = &cgDC.Assets.smallFont;
ADDRLP4 12
ADDRGP4 cgDC+228+20560
ASGNP4
line 38
;38:	} else if (scale > cg_bigFont.value) {
ADDRGP4 $83
JUMPV
LABELV $82
ADDRFP4 4
INDIRF4
ADDRGP4 cg_bigFont+8
INDIRF4
LEF4 $87
line 39
;39:		font = &cgDC.Assets.bigFont;
ADDRLP4 12
ADDRGP4 cgDC+228+41108
ASGNP4
line 40
;40:	}
LABELV $87
LABELV $83
line 41
;41:	useScale = scale * font->glyphScale;
ADDRLP4 24
ADDRFP4 4
INDIRF4
ADDRLP4 12
INDIRP4
CNSTI4 20480
ADDP4
INDIRF4
MULF4
ASGNF4
line 42
;42:  out = 0;
ADDRLP4 20
CNSTF4 0
ASGNF4
line 43
;43:  if (text) {
ADDRFP4 0
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $92
line 44
;44:    len = strlen(text);
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 28
ADDRGP4 strlen
CALLI4
ASGNI4
ADDRLP4 8
ADDRLP4 28
INDIRI4
ASGNI4
line 45
;45:		if (limit > 0 && len > limit) {
ADDRLP4 32
ADDRFP4 8
INDIRI4
ASGNI4
ADDRLP4 32
INDIRI4
CNSTI4 0
LEI4 $94
ADDRLP4 8
INDIRI4
ADDRLP4 32
INDIRI4
LEI4 $94
line 46
;46:			len = limit;
ADDRLP4 8
ADDRFP4 8
INDIRI4
ASGNI4
line 47
;47:		}
LABELV $94
line 48
;48:		count = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRGP4 $97
JUMPV
LABELV $96
line 49
;49:		while (s && *s && count < len) {
line 50
;50:			if ( Q_IsColorString(s) ) {
ADDRLP4 0
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $99
ADDRLP4 40
CNSTI4 94
ASGNI4
ADDRLP4 0
INDIRP4
INDIRI1
CVII4 1
ADDRLP4 40
INDIRI4
NEI4 $99
ADDRLP4 44
ADDRLP4 0
INDIRP4
CNSTI4 1
ADDP4
INDIRI1
CVII4 1
ASGNI4
ADDRLP4 44
INDIRI4
CNSTI4 0
EQI4 $99
ADDRLP4 44
INDIRI4
ADDRLP4 40
INDIRI4
EQI4 $99
line 51
;51:				s += 2;
ADDRLP4 0
ADDRLP4 0
INDIRP4
CNSTI4 2
ADDP4
ASGNP4
line 52
;52:				continue;
ADDRGP4 $97
JUMPV
LABELV $99
line 53
;53:			} else {
line 54
;54:				glyph = &font->glyphs[(int)*s]; // TTimo: FIXME: getting nasty warnings without the cast, hopefully this doesn't break the VM build
ADDRLP4 16
CNSTI4 80
ADDRLP4 0
INDIRP4
INDIRI1
CVII4 1
MULI4
ADDRLP4 12
INDIRP4
ADDP4
ASGNP4
line 55
;55:				out += glyph->xSkip;
ADDRLP4 20
ADDRLP4 20
INDIRF4
ADDRLP4 16
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
CVIF4 4
ADDF4
ASGNF4
line 56
;56:				s++;
ADDRLP4 0
ADDRLP4 0
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
line 57
;57:				count++;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 58
;58:			}
line 59
;59:    }
LABELV $97
line 49
ADDRLP4 0
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $102
ADDRLP4 0
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $102
ADDRLP4 4
INDIRI4
ADDRLP4 8
INDIRI4
LTI4 $96
LABELV $102
line 60
;60:  }
LABELV $92
line 61
;61:  return out * useScale;
ADDRLP4 20
INDIRF4
ADDRLP4 24
INDIRF4
MULF4
CVFI4 4
RETI4
LABELV $79
endproc CG_Text_Width 48 4
export CG_Text_Height
proc CG_Text_Height 48 4
line 64
;62:}
;63:
;64:int CG_Text_Height(const char *text, float scale, int limit) {
line 71
;65:  int len, count;
;66:	float max;
;67:	glyphInfo_t *glyph;
;68:	float useScale;
;69:// TTimo: FIXME
;70://	const unsigned char *s = text;
;71:	const char *s = text;
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
line 72
;72:	fontInfo_t *font = &cgDC.Assets.textFont;
ADDRLP4 20
ADDRGP4 cgDC+228+12
ASGNP4
line 73
;73:	if (scale <= cg_smallFont.value) {
ADDRFP4 4
INDIRF4
ADDRGP4 cg_smallFont+8
INDIRF4
GTF4 $106
line 74
;74:		font = &cgDC.Assets.smallFont;
ADDRLP4 20
ADDRGP4 cgDC+228+20560
ASGNP4
line 75
;75:	} else if (scale > cg_bigFont.value) {
ADDRGP4 $107
JUMPV
LABELV $106
ADDRFP4 4
INDIRF4
ADDRGP4 cg_bigFont+8
INDIRF4
LEF4 $111
line 76
;76:		font = &cgDC.Assets.bigFont;
ADDRLP4 20
ADDRGP4 cgDC+228+41108
ASGNP4
line 77
;77:	}
LABELV $111
LABELV $107
line 78
;78:	useScale = scale * font->glyphScale;
ADDRLP4 24
ADDRFP4 4
INDIRF4
ADDRLP4 20
INDIRP4
CNSTI4 20480
ADDP4
INDIRF4
MULF4
ASGNF4
line 79
;79:  max = 0;
ADDRLP4 16
CNSTF4 0
ASGNF4
line 80
;80:  if (text) {
ADDRFP4 0
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $116
line 81
;81:    len = strlen(text);
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 28
ADDRGP4 strlen
CALLI4
ASGNI4
ADDRLP4 8
ADDRLP4 28
INDIRI4
ASGNI4
line 82
;82:		if (limit > 0 && len > limit) {
ADDRLP4 32
ADDRFP4 8
INDIRI4
ASGNI4
ADDRLP4 32
INDIRI4
CNSTI4 0
LEI4 $118
ADDRLP4 8
INDIRI4
ADDRLP4 32
INDIRI4
LEI4 $118
line 83
;83:			len = limit;
ADDRLP4 8
ADDRFP4 8
INDIRI4
ASGNI4
line 84
;84:		}
LABELV $118
line 85
;85:		count = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRGP4 $121
JUMPV
LABELV $120
line 86
;86:		while (s && *s && count < len) {
line 87
;87:			if ( Q_IsColorString(s) ) {
ADDRLP4 0
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $123
ADDRLP4 40
CNSTI4 94
ASGNI4
ADDRLP4 0
INDIRP4
INDIRI1
CVII4 1
ADDRLP4 40
INDIRI4
NEI4 $123
ADDRLP4 44
ADDRLP4 0
INDIRP4
CNSTI4 1
ADDP4
INDIRI1
CVII4 1
ASGNI4
ADDRLP4 44
INDIRI4
CNSTI4 0
EQI4 $123
ADDRLP4 44
INDIRI4
ADDRLP4 40
INDIRI4
EQI4 $123
line 88
;88:				s += 2;
ADDRLP4 0
ADDRLP4 0
INDIRP4
CNSTI4 2
ADDP4
ASGNP4
line 89
;89:				continue;
ADDRGP4 $121
JUMPV
LABELV $123
line 90
;90:			} else {
line 91
;91:				glyph = &font->glyphs[(int)*s]; // TTimo: FIXME: getting nasty warnings without the cast, hopefully this doesn't break the VM build
ADDRLP4 12
CNSTI4 80
ADDRLP4 0
INDIRP4
INDIRI1
CVII4 1
MULI4
ADDRLP4 20
INDIRP4
ADDP4
ASGNP4
line 92
;92:	      if (max < glyph->height) {
ADDRLP4 16
INDIRF4
ADDRLP4 12
INDIRP4
INDIRI4
CVIF4 4
GEF4 $125
line 93
;93:		      max = glyph->height;
ADDRLP4 16
ADDRLP4 12
INDIRP4
INDIRI4
CVIF4 4
ASGNF4
line 94
;94:			  }
LABELV $125
line 95
;95:				s++;
ADDRLP4 0
ADDRLP4 0
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
line 96
;96:				count++;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 97
;97:			}
line 98
;98:    }
LABELV $121
line 86
ADDRLP4 0
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $128
ADDRLP4 0
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $128
ADDRLP4 4
INDIRI4
ADDRLP4 8
INDIRI4
LTI4 $120
LABELV $128
line 99
;99:  }
LABELV $116
line 100
;100:  return max * useScale;
ADDRLP4 16
INDIRF4
ADDRLP4 24
INDIRF4
MULF4
CVFI4 4
RETI4
LABELV $103
endproc CG_Text_Height 48 4
export CG_Text_PaintChar
proc CG_Text_PaintChar 8 36
line 103
;101:}
;102:
;103:void CG_Text_PaintChar(float x, float y, float width, float height, float scale, float s, float t, float s2, float t2, qhandle_t hShader) {
line 105
;104:  float w, h;
;105:  w = width * scale;
ADDRLP4 0
ADDRFP4 8
INDIRF4
ADDRFP4 16
INDIRF4
MULF4
ASGNF4
line 106
;106:  h = height * scale;
ADDRLP4 4
ADDRFP4 12
INDIRF4
ADDRFP4 16
INDIRF4
MULF4
ASGNF4
line 107
;107:  CG_AdjustFrom640( &x, &y, &w, &h );
ADDRFP4 0
ARGP4
ADDRFP4 4
ARGP4
ADDRLP4 0
ARGP4
ADDRLP4 4
ARGP4
ADDRGP4 CG_AdjustFrom640
CALLV
pop
line 108
;108:  trap_R_DrawStretchPic( x, y, w, h, s, t, s2, t2, hShader );
ADDRFP4 0
INDIRF4
ARGF4
ADDRFP4 4
INDIRF4
ARGF4
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 4
INDIRF4
ARGF4
ADDRFP4 20
INDIRF4
ARGF4
ADDRFP4 24
INDIRF4
ARGF4
ADDRFP4 28
INDIRF4
ARGF4
ADDRFP4 32
INDIRF4
ARGF4
ADDRFP4 36
INDIRI4
ARGI4
ADDRGP4 trap_R_DrawStretchPic
CALLV
pop
line 109
;109:}
LABELV $129
endproc CG_Text_PaintChar 8 36
export CG_Text_Paint
proc CG_Text_Paint 84 40
line 111
;110:
;111:void CG_Text_Paint(float x, float y, float scale, vec4_t color, const char *text, float adjust, int limit, int style) {
line 116
;112:  int len, count;
;113:	vec4_t newColor;
;114:	glyphInfo_t *glyph;
;115:	float useScale;
;116:	fontInfo_t *font = &cgDC.Assets.textFont;
ADDRLP4 28
ADDRGP4 cgDC+228+12
ASGNP4
line 117
;117:	if (scale <= cg_smallFont.value) {
ADDRFP4 8
INDIRF4
ADDRGP4 cg_smallFont+8
INDIRF4
GTF4 $133
line 118
;118:		font = &cgDC.Assets.smallFont;
ADDRLP4 28
ADDRGP4 cgDC+228+20560
ASGNP4
line 119
;119:	} else if (scale > cg_bigFont.value) {
ADDRGP4 $134
JUMPV
LABELV $133
ADDRFP4 8
INDIRF4
ADDRGP4 cg_bigFont+8
INDIRF4
LEF4 $138
line 120
;120:		font = &cgDC.Assets.bigFont;
ADDRLP4 28
ADDRGP4 cgDC+228+41108
ASGNP4
line 121
;121:	}
LABELV $138
LABELV $134
line 122
;122:	useScale = scale * font->glyphScale;
ADDRLP4 20
ADDRFP4 8
INDIRF4
ADDRLP4 28
INDIRP4
CNSTI4 20480
ADDP4
INDIRF4
MULF4
ASGNF4
line 123
;123:  if (text) {
ADDRFP4 16
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $143
line 126
;124:// TTimo: FIXME
;125://		const unsigned char *s = text;
;126:		const char *s = text;
ADDRLP4 36
ADDRFP4 16
INDIRP4
ASGNP4
line 127
;127:		trap_R_SetColor( color );
ADDRFP4 12
INDIRP4
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 128
;128:		memcpy(&newColor[0], &color[0], sizeof(vec4_t));
ADDRLP4 4
ARGP4
ADDRFP4 12
INDIRP4
ARGP4
CNSTI4 16
ARGI4
ADDRGP4 memcpy
CALLP4
pop
line 129
;129:    len = strlen(text);
ADDRFP4 16
INDIRP4
ARGP4
ADDRLP4 40
ADDRGP4 strlen
CALLI4
ASGNI4
ADDRLP4 32
ADDRLP4 40
INDIRI4
ASGNI4
line 130
;130:		if (limit > 0 && len > limit) {
ADDRLP4 44
ADDRFP4 24
INDIRI4
ASGNI4
ADDRLP4 44
INDIRI4
CNSTI4 0
LEI4 $145
ADDRLP4 32
INDIRI4
ADDRLP4 44
INDIRI4
LEI4 $145
line 131
;131:			len = limit;
ADDRLP4 32
ADDRFP4 24
INDIRI4
ASGNI4
line 132
;132:		}
LABELV $145
line 133
;133:		count = 0;
ADDRLP4 24
CNSTI4 0
ASGNI4
ADDRGP4 $148
JUMPV
LABELV $147
line 134
;134:		while (s && *s && count < len) {
line 135
;135:			glyph = &font->glyphs[(int)*s]; // TTimo: FIXME: getting nasty warnings without the cast, hopefully this doesn't break the VM build
ADDRLP4 0
CNSTI4 80
ADDRLP4 36
INDIRP4
INDIRI1
CVII4 1
MULI4
ADDRLP4 28
INDIRP4
ADDP4
ASGNP4
line 138
;136:      //int yadj = Assets.textFont.glyphs[text[i]].bottom + Assets.textFont.glyphs[text[i]].top;
;137:      //float yadj = scale * (Assets.textFont.glyphs[text[i]].imageHeight - Assets.textFont.glyphs[text[i]].height);
;138:			if ( Q_IsColorString( s ) ) {
ADDRLP4 36
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $150
ADDRLP4 52
CNSTI4 94
ASGNI4
ADDRLP4 36
INDIRP4
INDIRI1
CVII4 1
ADDRLP4 52
INDIRI4
NEI4 $150
ADDRLP4 56
ADDRLP4 36
INDIRP4
CNSTI4 1
ADDP4
INDIRI1
CVII4 1
ASGNI4
ADDRLP4 56
INDIRI4
CNSTI4 0
EQI4 $150
ADDRLP4 56
INDIRI4
ADDRLP4 52
INDIRI4
EQI4 $150
line 139
;139:				memcpy( newColor, g_color_table[ColorIndex(*(s+1))], sizeof( newColor ) );
ADDRLP4 4
ARGP4
ADDRLP4 36
INDIRP4
CNSTI4 1
ADDP4
INDIRI1
CVII4 1
CNSTI4 48
SUBI4
CNSTI4 7
BANDI4
CNSTI4 4
LSHI4
ADDRGP4 g_color_table
ADDP4
ARGP4
CNSTI4 16
ARGI4
ADDRGP4 memcpy
CALLP4
pop
line 140
;140:				newColor[3] = color[3];
ADDRLP4 4+12
ADDRFP4 12
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
ASGNF4
line 141
;141:				trap_R_SetColor( newColor );
ADDRLP4 4
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 142
;142:				s += 2;
ADDRLP4 36
ADDRLP4 36
INDIRP4
CNSTI4 2
ADDP4
ASGNP4
line 143
;143:				continue;
ADDRGP4 $148
JUMPV
LABELV $150
line 144
;144:			} else {
line 145
;145:				float yadj = useScale * glyph->top;
ADDRLP4 60
ADDRLP4 20
INDIRF4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
CVIF4 4
MULF4
ASGNF4
line 146
;146:				if (style == ITEM_TEXTSTYLE_SHADOWED || style == ITEM_TEXTSTYLE_SHADOWEDMORE) {
ADDRLP4 64
ADDRFP4 28
INDIRI4
ASGNI4
ADDRLP4 64
INDIRI4
CNSTI4 3
EQI4 $155
ADDRLP4 64
INDIRI4
CNSTI4 6
NEI4 $153
LABELV $155
line 147
;147:					int ofs = style == ITEM_TEXTSTYLE_SHADOWED ? 1 : 2;
ADDRFP4 28
INDIRI4
CNSTI4 3
NEI4 $157
ADDRLP4 72
CNSTI4 1
ASGNI4
ADDRGP4 $158
JUMPV
LABELV $157
ADDRLP4 72
CNSTI4 2
ASGNI4
LABELV $158
ADDRLP4 68
ADDRLP4 72
INDIRI4
ASGNI4
line 148
;148:					colorBlack[3] = newColor[3];
ADDRGP4 colorBlack+12
ADDRLP4 4+12
INDIRF4
ASGNF4
line 149
;149:					trap_R_SetColor( colorBlack );
ADDRGP4 colorBlack
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 150
;150:					CG_Text_PaintChar(x + ofs, y - yadj + ofs, 
ADDRLP4 76
ADDRLP4 68
INDIRI4
CVIF4 4
ASGNF4
ADDRFP4 0
INDIRF4
ADDRLP4 76
INDIRF4
ADDF4
ARGF4
ADDRFP4 4
INDIRF4
ADDRLP4 60
INDIRF4
SUBF4
ADDRLP4 76
INDIRF4
ADDF4
ARGF4
ADDRLP4 0
INDIRP4
CNSTI4 20
ADDP4
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 0
INDIRP4
CNSTI4 24
ADDP4
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 20
INDIRF4
ARGF4
ADDRLP4 0
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
ARGF4
ADDRLP4 0
INDIRP4
CNSTI4 32
ADDP4
INDIRF4
ARGF4
ADDRLP4 0
INDIRP4
CNSTI4 36
ADDP4
INDIRF4
ARGF4
ADDRLP4 0
INDIRP4
CNSTI4 40
ADDP4
INDIRF4
ARGF4
ADDRLP4 0
INDIRP4
CNSTI4 44
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_Text_PaintChar
CALLV
pop
line 159
;151:														glyph->imageWidth,
;152:														glyph->imageHeight,
;153:														useScale, 
;154:														glyph->s,
;155:														glyph->t,
;156:														glyph->s2,
;157:														glyph->t2,
;158:														glyph->glyph);
;159:					colorBlack[3] = 1.0;
ADDRGP4 colorBlack+12
CNSTF4 1065353216
ASGNF4
line 160
;160:					trap_R_SetColor( newColor );
ADDRLP4 4
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 161
;161:				}
LABELV $153
line 162
;162:				CG_Text_PaintChar(x, y - yadj, 
ADDRFP4 0
INDIRF4
ARGF4
ADDRFP4 4
INDIRF4
ADDRLP4 60
INDIRF4
SUBF4
ARGF4
ADDRLP4 0
INDIRP4
CNSTI4 20
ADDP4
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 0
INDIRP4
CNSTI4 24
ADDP4
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 20
INDIRF4
ARGF4
ADDRLP4 0
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
ARGF4
ADDRLP4 0
INDIRP4
CNSTI4 32
ADDP4
INDIRF4
ARGF4
ADDRLP4 0
INDIRP4
CNSTI4 36
ADDP4
INDIRF4
ARGF4
ADDRLP4 0
INDIRP4
CNSTI4 40
ADDP4
INDIRF4
ARGF4
ADDRLP4 0
INDIRP4
CNSTI4 44
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_Text_PaintChar
CALLV
pop
line 172
;163:													glyph->imageWidth,
;164:													glyph->imageHeight,
;165:													useScale, 
;166:													glyph->s,
;167:													glyph->t,
;168:													glyph->s2,
;169:													glyph->t2,
;170:													glyph->glyph);
;171:				// CG_DrawPic(x, y - yadj, scale * cgDC.Assets.textFont.glyphs[text[i]].imageWidth, scale * cgDC.Assets.textFont.glyphs[text[i]].imageHeight, cgDC.Assets.textFont.glyphs[text[i]].glyph);
;172:				x += (glyph->xSkip * useScale) + adjust;
ADDRFP4 0
ADDRFP4 0
INDIRF4
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
CVIF4 4
ADDRLP4 20
INDIRF4
MULF4
ADDRFP4 20
INDIRF4
ADDF4
ADDF4
ASGNF4
line 173
;173:				s++;
ADDRLP4 36
ADDRLP4 36
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
line 174
;174:				count++;
ADDRLP4 24
ADDRLP4 24
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 175
;175:			}
line 176
;176:    }
LABELV $148
line 134
ADDRLP4 36
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $163
ADDRLP4 36
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $163
ADDRLP4 24
INDIRI4
ADDRLP4 32
INDIRI4
LTI4 $147
LABELV $163
line 177
;177:	  trap_R_SetColor( NULL );
CNSTP4 0
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 178
;178:  }
LABELV $143
line 179
;179:}
LABELV $130
endproc CG_Text_Paint 84 40
export CG_Draw3DModel
proc CG_Draw3DModel 512 16
line 253
;180:
;181:
;182:#endif
;183:
;184:/*
;185:==============
;186:CG_DrawField
;187:
;188:Draws large numbers for status bar and powerups
;189:==============
;190:*/
;191:#ifndef MISSIONPACK
;192:static void CG_DrawField (int x, int y, int width, int value) {
;193:	char	num[16], *ptr;
;194:	int		l;
;195:	int		frame;
;196:
;197:	if ( width < 1 ) {
;198:		return;
;199:	}
;200:
;201:	// draw number string
;202:	if ( width > 5 ) {
;203:		width = 5;
;204:	}
;205:
;206:	switch ( width ) {
;207:	case 1:
;208:		value = value > 9 ? 9 : value;
;209:		value = value < 0 ? 0 : value;
;210:		break;
;211:	case 2:
;212:		value = value > 99 ? 99 : value;
;213:		value = value < -9 ? -9 : value;
;214:		break;
;215:	case 3:
;216:		value = value > 999 ? 999 : value;
;217:		value = value < -99 ? -99 : value;
;218:		break;
;219:	case 4:
;220:		value = value > 9999 ? 9999 : value;
;221:		value = value < -999 ? -999 : value;
;222:		break;
;223:	}
;224:
;225:	Com_sprintf (num, sizeof(num), "%i", value);
;226:	l = strlen(num);
;227:	if (l > width)
;228:		l = width;
;229:	x += 2 + CHAR_WIDTH*(width - l);
;230:
;231:	ptr = num;
;232:	while (*ptr && l)
;233:	{
;234:		if (*ptr == '-')
;235:			frame = STAT_MINUS;
;236:		else
;237:			frame = *ptr -'0';
;238:
;239:		CG_DrawPic( x,y, CHAR_WIDTH, CHAR_HEIGHT, cgs.media.numberShaders[frame] );
;240:		x += CHAR_WIDTH;
;241:		ptr++;
;242:		l--;
;243:	}
;244:}
;245:#endif // MISSIONPACK
;246:
;247:/*
;248:================
;249:CG_Draw3DModel
;250:
;251:================
;252:*/
;253:void CG_Draw3DModel( float x, float y, float w, float h, qhandle_t model, qhandle_t skin, vec3_t origin, vec3_t angles ) {
line 257
;254:	refdef_t		refdef;
;255:	refEntity_t		ent;
;256:
;257:	if ( !cg_draw3dIcons.integer || !cg_drawIcons.integer ) {
ADDRLP4 508
CNSTI4 0
ASGNI4
ADDRGP4 cg_draw3dIcons+12
INDIRI4
ADDRLP4 508
INDIRI4
EQI4 $169
ADDRGP4 cg_drawIcons+12
INDIRI4
ADDRLP4 508
INDIRI4
NEI4 $165
LABELV $169
line 258
;258:		return;
ADDRGP4 $164
JUMPV
LABELV $165
line 261
;259:	}
;260:
;261:	CG_AdjustFrom640( &x, &y, &w, &h );
ADDRFP4 0
ARGP4
ADDRFP4 4
ARGP4
ADDRFP4 8
ARGP4
ADDRFP4 12
ARGP4
ADDRGP4 CG_AdjustFrom640
CALLV
pop
line 263
;262:
;263:	memset( &refdef, 0, sizeof( refdef ) );
ADDRLP4 0
ARGP4
CNSTI4 0
ARGI4
CNSTI4 368
ARGI4
ADDRGP4 memset
CALLP4
pop
line 265
;264:
;265:	memset( &ent, 0, sizeof( ent ) );
ADDRLP4 368
ARGP4
CNSTI4 0
ARGI4
CNSTI4 140
ARGI4
ADDRGP4 memset
CALLP4
pop
line 266
;266:	AnglesToAxis( angles, ent.axis );
ADDRFP4 28
INDIRP4
ARGP4
ADDRLP4 368+28
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 267
;267:	VectorCopy( origin, ent.origin );
ADDRLP4 368+68
ADDRFP4 24
INDIRP4
INDIRB
ASGNB 12
line 268
;268:	ent.hModel = model;
ADDRLP4 368+8
ADDRFP4 16
INDIRI4
ASGNI4
line 269
;269:	ent.customSkin = skin;
ADDRLP4 368+108
ADDRFP4 20
INDIRI4
ASGNI4
line 270
;270:	ent.renderfx = RF_NOSHADOW;		// no stencil shadows
ADDRLP4 368+4
CNSTI4 64
ASGNI4
line 272
;271:
;272:	refdef.rdflags = RDF_NOWORLDMODEL;
ADDRLP4 0+76
CNSTI4 1
ASGNI4
line 274
;273:
;274:	AxisClear( refdef.viewaxis );
ADDRLP4 0+36
ARGP4
ADDRGP4 AxisClear
CALLV
pop
line 276
;275:
;276:	refdef.fov_x = 30;
ADDRLP4 0+16
CNSTF4 1106247680
ASGNF4
line 277
;277:	refdef.fov_y = 30;
ADDRLP4 0+20
CNSTF4 1106247680
ASGNF4
line 279
;278:
;279:	refdef.x = x;
ADDRLP4 0
ADDRFP4 0
INDIRF4
CVFI4 4
ASGNI4
line 280
;280:	refdef.y = y;
ADDRLP4 0+4
ADDRFP4 4
INDIRF4
CVFI4 4
ASGNI4
line 281
;281:	refdef.width = w;
ADDRLP4 0+8
ADDRFP4 8
INDIRF4
CVFI4 4
ASGNI4
line 282
;282:	refdef.height = h;
ADDRLP4 0+12
ADDRFP4 12
INDIRF4
CVFI4 4
ASGNI4
line 284
;283:
;284:	refdef.time = cg.time;
ADDRLP4 0+72
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 286
;285:
;286:	trap_R_ClearScene();
ADDRGP4 trap_R_ClearScene
CALLV
pop
line 287
;287:	trap_R_AddRefEntityToScene( &ent );
ADDRLP4 368
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 288
;288:	trap_R_RenderScene( &refdef );
ADDRLP4 0
ARGP4
ADDRGP4 trap_R_RenderScene
CALLV
pop
line 289
;289:}
LABELV $164
endproc CG_Draw3DModel 512 16
export CG_DrawHead
proc CG_DrawHead 56 32
line 298
;290:
;291:/*
;292:================
;293:CG_DrawHead
;294:
;295:Used for both the status bar and the scoreboard
;296:================
;297:*/
;298:void CG_DrawHead( float x, float y, float w, float h, int clientNum, vec3_t headAngles ) {
line 305
;299:	clipHandle_t	cm;
;300:	clientInfo_t	*ci;
;301:	float			len;
;302:	vec3_t			origin;
;303:	vec3_t			mins, maxs;
;304:
;305:	ci = &cgs.clientinfo[ clientNum ];
ADDRLP4 0
CNSTI4 1708
ADDRFP4 16
INDIRI4
MULI4
ADDRGP4 cgs+40972
ADDP4
ASGNP4
line 307
;306:
;307:	if ( cg_draw3dIcons.integer ) {
ADDRGP4 cg_draw3dIcons+12
INDIRI4
CNSTI4 0
EQI4 $186
line 308
;308:		cm = ci->headModel;
ADDRLP4 40
ADDRLP4 0
INDIRP4
CNSTI4 532
ADDP4
INDIRI4
ASGNI4
line 309
;309:		if ( !cm ) {
ADDRLP4 40
INDIRI4
CNSTI4 0
NEI4 $189
line 310
;310:			return;
ADDRGP4 $184
JUMPV
LABELV $189
line 314
;311:		}
;312:
;313:		// offset the origin y and z to center the head
;314:		trap_R_ModelBounds( cm, mins, maxs );
ADDRLP4 40
INDIRI4
ARGI4
ADDRLP4 16
ARGP4
ADDRLP4 28
ARGP4
ADDRGP4 trap_R_ModelBounds
CALLV
pop
line 316
;315:
;316:		origin[2] = -0.5 * ( mins[2] + maxs[2] );
ADDRLP4 4+8
CNSTF4 3204448256
ADDRLP4 16+8
INDIRF4
ADDRLP4 28+8
INDIRF4
ADDF4
MULF4
ASGNF4
line 317
;317:		origin[1] = 0.5 * ( mins[1] + maxs[1] );
ADDRLP4 4+4
CNSTF4 1056964608
ADDRLP4 16+4
INDIRF4
ADDRLP4 28+4
INDIRF4
ADDF4
MULF4
ASGNF4
line 321
;318:
;319:		// calculate distance so the head nearly fills the box
;320:		// assume heads are taller than wide
;321:		len = 0.7 * ( maxs[2] - mins[2] );		
ADDRLP4 44
CNSTF4 1060320051
ADDRLP4 28+8
INDIRF4
ADDRLP4 16+8
INDIRF4
SUBF4
MULF4
ASGNF4
line 322
;322:		origin[0] = len / 0.268;	// len / tan( fov/2 )
ADDRLP4 4
ADDRLP4 44
INDIRF4
CNSTF4 1049179980
DIVF4
ASGNF4
line 325
;323:
;324:		// allow per-model tweaking
;325:		VectorAdd( origin, ci->headOffset, origin );
ADDRLP4 4
ADDRLP4 4
INDIRF4
ADDRLP4 0
INDIRP4
CNSTI4 496
ADDP4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 4+4
ADDRLP4 4+4
INDIRF4
ADDRLP4 0
INDIRP4
CNSTI4 500
ADDP4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 4+8
ADDRLP4 4+8
INDIRF4
ADDRLP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRF4
ADDF4
ASGNF4
line 327
;326:
;327:		CG_Draw3DModel( x, y, w, h, ci->headModel, ci->headSkin, origin, headAngles );
ADDRFP4 0
INDIRF4
ARGF4
ADDRFP4 4
INDIRF4
ARGF4
ADDRFP4 8
INDIRF4
ARGF4
ADDRFP4 12
INDIRF4
ARGF4
ADDRLP4 0
INDIRP4
CNSTI4 532
ADDP4
INDIRI4
ARGI4
ADDRLP4 0
INDIRP4
CNSTI4 536
ADDP4
INDIRI4
ARGI4
ADDRLP4 4
ARGP4
ADDRFP4 20
INDIRP4
ARGP4
ADDRGP4 CG_Draw3DModel
CALLV
pop
line 328
;328:	} else if ( cg_drawIcons.integer ) {
ADDRGP4 $187
JUMPV
LABELV $186
ADDRGP4 cg_drawIcons+12
INDIRI4
CNSTI4 0
EQI4 $203
line 329
;329:		CG_DrawPic( x, y, w, h, ci->modelIcon );
ADDRFP4 0
INDIRF4
ARGF4
ADDRFP4 4
INDIRF4
ARGF4
ADDRFP4 8
INDIRF4
ARGF4
ADDRFP4 12
INDIRF4
ARGF4
ADDRLP4 0
INDIRP4
CNSTI4 540
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_DrawPic
CALLV
pop
line 330
;330:	}
LABELV $203
LABELV $187
line 333
;331:
;332:	// if they are deferred, draw a cross out
;333:	if ( ci->deferred ) {
ADDRLP4 0
INDIRP4
CNSTI4 480
ADDP4
INDIRI4
CNSTI4 0
EQI4 $206
line 334
;334:		CG_DrawPic( x, y, w, h, cgs.media.deferShader );
ADDRFP4 0
INDIRF4
ARGF4
ADDRFP4 4
INDIRF4
ARGF4
ADDRFP4 8
INDIRF4
ARGF4
ADDRFP4 12
INDIRF4
ARGF4
ADDRGP4 cgs+152340+164
INDIRI4
ARGI4
ADDRGP4 CG_DrawPic
CALLV
pop
line 335
;335:	}
LABELV $206
line 336
;336:}
LABELV $184
endproc CG_DrawHead 56 32
export CG_DrawFlagModel
proc CG_DrawFlagModel 72 32
line 345
;337:
;338:/*
;339:================
;340:CG_DrawFlagModel
;341:
;342:Used for both the status bar and the scoreboard
;343:================
;344:*/
;345:void CG_DrawFlagModel( float x, float y, float w, float h, int team, qboolean force2D ) {
line 352
;346:	qhandle_t		cm;
;347:	float			len;
;348:	vec3_t			origin, angles;
;349:	vec3_t			mins, maxs;
;350:	qhandle_t		handle;
;351:
;352:	if ( !force2D && cg_draw3dIcons.integer ) {
ADDRLP4 60
CNSTI4 0
ASGNI4
ADDRFP4 20
INDIRI4
ADDRLP4 60
INDIRI4
NEI4 $211
ADDRGP4 cg_draw3dIcons+12
INDIRI4
ADDRLP4 60
INDIRI4
EQI4 $211
line 354
;353:
;354:		VectorClear( angles );
ADDRLP4 64
CNSTF4 0
ASGNF4
ADDRLP4 0+8
ADDRLP4 64
INDIRF4
ASGNF4
ADDRLP4 0+4
ADDRLP4 64
INDIRF4
ASGNF4
ADDRLP4 0
ADDRLP4 64
INDIRF4
ASGNF4
line 356
;355:
;356:		cm = cgs.media.redFlagModel;
ADDRLP4 48
ADDRGP4 cgs+152340+36
INDIRI4
ASGNI4
line 359
;357:
;358:		// offset the origin y and z to center the flag
;359:		trap_R_ModelBounds( cm, mins, maxs );
ADDRLP4 48
INDIRI4
ARGI4
ADDRLP4 24
ARGP4
ADDRLP4 36
ARGP4
ADDRGP4 trap_R_ModelBounds
CALLV
pop
line 361
;360:
;361:		origin[2] = -0.5 * ( mins[2] + maxs[2] );
ADDRLP4 12+8
CNSTF4 3204448256
ADDRLP4 24+8
INDIRF4
ADDRLP4 36+8
INDIRF4
ADDF4
MULF4
ASGNF4
line 362
;362:		origin[1] = 0.5 * ( mins[1] + maxs[1] );
ADDRLP4 12+4
CNSTF4 1056964608
ADDRLP4 24+4
INDIRF4
ADDRLP4 36+4
INDIRF4
ADDF4
MULF4
ASGNF4
line 366
;363:
;364:		// calculate distance so the flag nearly fills the box
;365:		// assume heads are taller than wide
;366:		len = 0.5 * ( maxs[2] - mins[2] );		
ADDRLP4 52
CNSTF4 1056964608
ADDRLP4 36+8
INDIRF4
ADDRLP4 24+8
INDIRF4
SUBF4
MULF4
ASGNF4
line 367
;367:		origin[0] = len / 0.268;	// len / tan( fov/2 )
ADDRLP4 12
ADDRLP4 52
INDIRF4
CNSTF4 1049179980
DIVF4
ASGNF4
line 369
;368:
;369:		angles[YAW] = 60 * sin( cg.time / 2000.0 );;
ADDRGP4 cg+107604
INDIRI4
CVIF4 4
CNSTF4 1157234688
DIVF4
ARGF4
ADDRLP4 68
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 0+4
CNSTF4 1114636288
ADDRLP4 68
INDIRF4
MULF4
ASGNF4
line 371
;370:
;371:		if( team == TEAM_RED ) {
ADDRFP4 16
INDIRI4
CNSTI4 1
NEI4 $228
line 372
;372:			handle = cgs.media.redFlagModel;
ADDRLP4 56
ADDRGP4 cgs+152340+36
INDIRI4
ASGNI4
line 373
;373:		} else if( team == TEAM_BLUE ) {
ADDRGP4 $229
JUMPV
LABELV $228
ADDRFP4 16
INDIRI4
CNSTI4 2
NEI4 $232
line 374
;374:			handle = cgs.media.blueFlagModel;
ADDRLP4 56
ADDRGP4 cgs+152340+40
INDIRI4
ASGNI4
line 375
;375:		} else if( team == TEAM_FREE ) {
ADDRGP4 $233
JUMPV
LABELV $232
ADDRFP4 16
INDIRI4
CNSTI4 0
NEI4 $210
line 376
;376:			handle = cgs.media.neutralFlagModel;
ADDRLP4 56
ADDRGP4 cgs+152340+44
INDIRI4
ASGNI4
line 377
;377:		} else {
line 378
;378:			return;
LABELV $237
LABELV $233
LABELV $229
line 380
;379:		}
;380:		CG_Draw3DModel( x, y, w, h, handle, 0, origin, angles );
ADDRFP4 0
INDIRF4
ARGF4
ADDRFP4 4
INDIRF4
ARGF4
ADDRFP4 8
INDIRF4
ARGF4
ADDRFP4 12
INDIRF4
ARGF4
ADDRLP4 56
INDIRI4
ARGI4
CNSTI4 0
ARGI4
ADDRLP4 12
ARGP4
ADDRLP4 0
ARGP4
ADDRGP4 CG_Draw3DModel
CALLV
pop
line 381
;381:	} else if ( cg_drawIcons.integer ) {
ADDRGP4 $212
JUMPV
LABELV $211
ADDRGP4 cg_drawIcons+12
INDIRI4
CNSTI4 0
EQI4 $240
line 384
;382:		gitem_t *item;
;383:
;384:		if( team == TEAM_RED ) {
ADDRFP4 16
INDIRI4
CNSTI4 1
NEI4 $243
line 385
;385:			item = BG_FindItemForPowerup( PW_REDFLAG );
CNSTI4 7
ARGI4
ADDRLP4 68
ADDRGP4 BG_FindItemForPowerup
CALLP4
ASGNP4
ADDRLP4 64
ADDRLP4 68
INDIRP4
ASGNP4
line 386
;386:		} else if( team == TEAM_BLUE ) {
ADDRGP4 $244
JUMPV
LABELV $243
ADDRFP4 16
INDIRI4
CNSTI4 2
NEI4 $245
line 387
;387:			item = BG_FindItemForPowerup( PW_BLUEFLAG );
CNSTI4 8
ARGI4
ADDRLP4 68
ADDRGP4 BG_FindItemForPowerup
CALLP4
ASGNP4
ADDRLP4 64
ADDRLP4 68
INDIRP4
ASGNP4
line 388
;388:		} else if( team == TEAM_FREE ) {
ADDRGP4 $246
JUMPV
LABELV $245
ADDRFP4 16
INDIRI4
CNSTI4 0
NEI4 $210
line 389
;389:			item = BG_FindItemForPowerup( PW_NEUTRALFLAG );
CNSTI4 9
ARGI4
ADDRLP4 68
ADDRGP4 BG_FindItemForPowerup
CALLP4
ASGNP4
ADDRLP4 64
ADDRLP4 68
INDIRP4
ASGNP4
line 390
;390:		} else {
line 391
;391:			return;
LABELV $248
LABELV $246
LABELV $244
line 393
;392:		}
;393:		if (item) {
ADDRLP4 64
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $249
line 394
;394:		  CG_DrawPic( x, y, w, h, cg_items[ ITEM_INDEX(item) ].icon );
ADDRFP4 0
INDIRF4
ARGF4
ADDRFP4 4
INDIRF4
ARGF4
ADDRFP4 8
INDIRF4
ARGF4
ADDRFP4 12
INDIRF4
ARGF4
CNSTI4 24
ADDRLP4 64
INDIRP4
CVPU4 4
ADDRGP4 bg_itemlist
CVPU4 4
SUBU4
CVUI4 4
CNSTI4 52
DIVI4
MULI4
ADDRGP4 cg_items+20
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_DrawPic
CALLV
pop
line 395
;395:		}
LABELV $249
line 396
;396:	}
LABELV $240
LABELV $212
line 397
;397:}
LABELV $210
endproc CG_DrawFlagModel 72 32
export CG_DrawTeamBackground
proc CG_DrawTeamBackground 16 20
line 478
;398:
;399:/*
;400:================
;401:CG_DrawStatusBarHead
;402:
;403:================
;404:*/
;405:#ifndef MISSIONPACK
;406:
;407:static void CG_DrawStatusBarHead( float x ) {
;408:	vec3_t		angles;
;409:	float		size, stretch;
;410:	float		frac;
;411:
;412:	VectorClear( angles );
;413:
;414:	if ( cg.damageTime && cg.time - cg.damageTime < DAMAGE_TIME ) {
;415:		frac = (float)(cg.time - cg.damageTime ) / DAMAGE_TIME;
;416:		size = ICON_SIZE * 1.25 * ( 1.5 - frac * 0.5 );
;417:
;418:		stretch = size - ICON_SIZE * 1.25;
;419:		// kick in the direction of damage
;420:		x -= stretch * 0.5 + cg.damageX * stretch * 0.5;
;421:
;422:		cg.headStartYaw = 180 + cg.damageX * 45;
;423:
;424:		cg.headEndYaw = 180 + 20 * cos( crandom()*M_PI );
;425:		cg.headEndPitch = 5 * cos( crandom()*M_PI );
;426:
;427:		cg.headStartTime = cg.time;
;428:		cg.headEndTime = cg.time + 100 + random() * 2000;
;429:	} else {
;430:		if ( cg.time >= cg.headEndTime ) {
;431:			// select a new head angle
;432:			cg.headStartYaw = cg.headEndYaw;
;433:			cg.headStartPitch = cg.headEndPitch;
;434:			cg.headStartTime = cg.headEndTime;
;435:			cg.headEndTime = cg.time + 100 + random() * 2000;
;436:
;437:			cg.headEndYaw = 180 + 20 * cos( crandom()*M_PI );
;438:			cg.headEndPitch = 5 * cos( crandom()*M_PI );
;439:		}
;440:
;441:		size = ICON_SIZE * 1.25;
;442:	}
;443:
;444:	// if the server was frozen for a while we may have a bad head start time
;445:	if ( cg.headStartTime > cg.time ) {
;446:		cg.headStartTime = cg.time;
;447:	}
;448:
;449:	frac = ( cg.time - cg.headStartTime ) / (float)( cg.headEndTime - cg.headStartTime );
;450:	frac = frac * frac * ( 3 - 2 * frac );
;451:	angles[YAW] = cg.headStartYaw + ( cg.headEndYaw - cg.headStartYaw ) * frac;
;452:	angles[PITCH] = cg.headStartPitch + ( cg.headEndPitch - cg.headStartPitch ) * frac;
;453:
;454:	CG_DrawHead( x, 480 - size, size, size, 
;455:				cg.snap->ps.clientNum, angles );
;456:}
;457:#endif // MISSIONPACK
;458:
;459:/*
;460:================
;461:CG_DrawStatusBarFlag
;462:
;463:================
;464:*/
;465:#ifndef MISSIONPACK
;466:static void CG_DrawStatusBarFlag( float x, int team ) {
;467:	CG_DrawFlagModel( x, 480 - ICON_SIZE, ICON_SIZE, ICON_SIZE, team, qfalse );
;468:}
;469:#endif // MISSIONPACK
;470:
;471:/*
;472:================
;473:CG_DrawTeamBackground
;474:
;475:================
;476:*/
;477:void CG_DrawTeamBackground( int x, int y, int w, int h, float alpha, int team )
;478:{
line 481
;479:	vec4_t		hcolor;
;480:
;481:	hcolor[3] = alpha;
ADDRLP4 0+12
ADDRFP4 16
INDIRF4
ASGNF4
line 482
;482:	if ( team == TEAM_RED ) {
ADDRFP4 20
INDIRI4
CNSTI4 1
NEI4 $254
line 483
;483:		hcolor[0] = 1;
ADDRLP4 0
CNSTF4 1065353216
ASGNF4
line 484
;484:		hcolor[1] = 0;
ADDRLP4 0+4
CNSTF4 0
ASGNF4
line 485
;485:		hcolor[2] = 0;
ADDRLP4 0+8
CNSTF4 0
ASGNF4
line 486
;486:	} else if ( team == TEAM_BLUE ) {
ADDRGP4 $255
JUMPV
LABELV $254
ADDRFP4 20
INDIRI4
CNSTI4 2
NEI4 $252
line 487
;487:		hcolor[0] = 0;
ADDRLP4 0
CNSTF4 0
ASGNF4
line 488
;488:		hcolor[1] = 0;
ADDRLP4 0+4
CNSTF4 0
ASGNF4
line 489
;489:		hcolor[2] = 1;
ADDRLP4 0+8
CNSTF4 1065353216
ASGNF4
line 490
;490:	} else {
line 491
;491:		return;
LABELV $259
LABELV $255
line 493
;492:	}
;493:	trap_R_SetColor( hcolor );
ADDRLP4 0
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 494
;494:	CG_DrawPic( x, y, w, h, cgs.media.teamStatusBar );
ADDRFP4 0
INDIRI4
CVIF4 4
ARGF4
ADDRFP4 4
INDIRI4
CVIF4 4
ARGF4
ADDRFP4 8
INDIRI4
CVIF4 4
ARGF4
ADDRFP4 12
INDIRI4
CVIF4 4
ARGF4
ADDRGP4 cgs+152340+160
INDIRI4
ARGI4
ADDRGP4 CG_DrawPic
CALLV
pop
line 495
;495:	trap_R_SetColor( NULL );
CNSTP4 0
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 496
;496:}
LABELV $252
endproc CG_DrawTeamBackground 16 20
proc CG_DrawAttacker 52 24
line 686
;497:
;498:/*
;499:================
;500:CG_DrawStatusBar
;501:
;502:================
;503:*/
;504:#ifndef MISSIONPACK
;505:static void CG_DrawStatusBar( void ) {
;506:	int			color;
;507:	centity_t	*cent;
;508:	playerState_t	*ps;
;509:	int			value;
;510:	vec4_t		hcolor;
;511:	vec3_t		angles;
;512:	vec3_t		origin;
;513:#ifdef MISSIONPACK
;514:	qhandle_t	handle;
;515:#endif
;516:	static float colors[4][4] = { 
;517://		{ 0.2, 1.0, 0.2, 1.0 } , { 1.0, 0.2, 0.2, 1.0 }, {0.5, 0.5, 0.5, 1} };
;518:		{ 1.0f, 0.69f, 0.0f, 1.0f },    // normal
;519:		{ 1.0f, 0.2f, 0.2f, 1.0f },     // low health
;520:		{ 0.5f, 0.5f, 0.5f, 1.0f },     // weapon firing
;521:		{ 1.0f, 1.0f, 1.0f, 1.0f } };   // health > 100
;522:
;523:	if ( cg_drawStatus.integer == 0 ) {
;524:		return;
;525:	}
;526:
;527:	// draw the team background
;528:	CG_DrawTeamBackground( 0, 420, 640, 60, 0.33f, cg.snap->ps.persistant[PERS_TEAM] );
;529:
;530:	cent = &cg_entities[cg.snap->ps.clientNum];
;531:	ps = &cg.snap->ps;
;532:
;533:	VectorClear( angles );
;534:
;535:	// draw any 3D icons first, so the changes back to 2D are minimized
;536:	if ( cent->currentState.weapon && cg_weapons[ cent->currentState.weapon ].ammoModel ) {
;537:		origin[0] = 70;
;538:		origin[1] = 0;
;539:		origin[2] = 0;
;540:		angles[YAW] = 90 + 20 * sin( cg.time / 1000.0 );
;541:		CG_Draw3DModel( CHAR_WIDTH*3 + TEXT_ICON_SPACE, 432, ICON_SIZE, ICON_SIZE,
;542:					   cg_weapons[ cent->currentState.weapon ].ammoModel, 0, origin, angles );
;543:	}
;544:
;545:	CG_DrawStatusBarHead( 185 + CHAR_WIDTH*3 + TEXT_ICON_SPACE );
;546:
;547:	if( cg.predictedPlayerState.powerups[PW_REDFLAG] ) {
;548:		CG_DrawStatusBarFlag( 185 + CHAR_WIDTH*3 + TEXT_ICON_SPACE + ICON_SIZE, TEAM_RED );
;549:	} else if( cg.predictedPlayerState.powerups[PW_BLUEFLAG] ) {
;550:		CG_DrawStatusBarFlag( 185 + CHAR_WIDTH*3 + TEXT_ICON_SPACE + ICON_SIZE, TEAM_BLUE );
;551:	} else if( cg.predictedPlayerState.powerups[PW_NEUTRALFLAG] ) {
;552:		CG_DrawStatusBarFlag( 185 + CHAR_WIDTH*3 + TEXT_ICON_SPACE + ICON_SIZE, TEAM_FREE );
;553:	}
;554:
;555:	if ( ps->stats[ STAT_ARMOR ] ) {
;556:		origin[0] = 90;
;557:		origin[1] = 0;
;558:		origin[2] = -10;
;559:		angles[YAW] = ( cg.time & 2047 ) * 360 / 2048.0;
;560:		CG_Draw3DModel( 370 + CHAR_WIDTH*3 + TEXT_ICON_SPACE, 432, ICON_SIZE, ICON_SIZE,
;561:					   cgs.media.armorModel, 0, origin, angles );
;562:	}
;563:#ifdef MISSIONPACK
;564:	if( cgs.gametype == GT_HARVESTER ) {
;565:		origin[0] = 90;
;566:		origin[1] = 0;
;567:		origin[2] = -10;
;568:		angles[YAW] = ( cg.time & 2047 ) * 360 / 2048.0;
;569:		if( cg.snap->ps.persistant[PERS_TEAM] == TEAM_BLUE ) {
;570:			handle = cgs.media.redCubeModel;
;571:		} else {
;572:			handle = cgs.media.blueCubeModel;
;573:		}
;574:		CG_Draw3DModel( 640 - (TEXT_ICON_SPACE + ICON_SIZE), 416, ICON_SIZE, ICON_SIZE, handle, 0, origin, angles );
;575:	}
;576:#endif
;577:	//
;578:	// ammo
;579:	//
;580:	if ( cent->currentState.weapon ) {
;581:		value = ps->ammo[cent->currentState.weapon];
;582:		if ( value > -1 ) {
;583:			if ( cg.predictedPlayerState.weaponstate == WEAPON_FIRING
;584:				&& cg.predictedPlayerState.weaponTime > 100 ) {
;585:				// draw as dark grey when reloading
;586:				color = 2;	// dark grey
;587:			} else {
;588:				if ( value >= 0 ) {
;589:					color = 0;	// green
;590:				} else {
;591:					color = 1;	// red
;592:				}
;593:			}
;594:			trap_R_SetColor( colors[color] );
;595:			
;596:			CG_DrawField (0, 432, 3, value);
;597:			trap_R_SetColor( NULL );
;598:
;599:			// if we didn't draw a 3D icon, draw a 2D icon for ammo
;600:			if ( !cg_draw3dIcons.integer && cg_drawIcons.integer ) {
;601:				qhandle_t	icon;
;602:
;603:				icon = cg_weapons[ cg.predictedPlayerState.weapon ].ammoIcon;
;604:				if ( icon ) {
;605:					CG_DrawPic( CHAR_WIDTH*3 + TEXT_ICON_SPACE, 432, ICON_SIZE, ICON_SIZE, icon );
;606:				}
;607:			}
;608:		}
;609:	}
;610:
;611:	//
;612:	// health
;613:	//
;614:	value = ps->stats[STAT_HEALTH];
;615:	if ( value > 100 ) {
;616:		trap_R_SetColor( colors[3] );		// white
;617:	} else if (value > 25) {
;618:		trap_R_SetColor( colors[0] );	// green
;619:	} else if (value > 0) {
;620:		color = (cg.time >> 8) & 1;	// flash
;621:		trap_R_SetColor( colors[color] );
;622:	} else {
;623:		trap_R_SetColor( colors[1] );	// red
;624:	}
;625:
;626:	// stretch the health up when taking damage
;627:	CG_DrawField ( 185, 432, 3, value);
;628:	CG_ColorForHealth( hcolor );
;629:	trap_R_SetColor( hcolor );
;630:
;631:
;632:	//
;633:	// armor
;634:	//
;635:	value = ps->stats[STAT_ARMOR];
;636:	if (value > 0 ) {
;637:		trap_R_SetColor( colors[0] );
;638:		CG_DrawField (370, 432, 3, value);
;639:		trap_R_SetColor( NULL );
;640:		// if we didn't draw a 3D icon, draw a 2D icon for armor
;641:		if ( !cg_draw3dIcons.integer && cg_drawIcons.integer ) {
;642:			CG_DrawPic( 370 + CHAR_WIDTH*3 + TEXT_ICON_SPACE, 432, ICON_SIZE, ICON_SIZE, cgs.media.armorIcon );
;643:		}
;644:
;645:	}
;646:#ifdef MISSIONPACK
;647:	//
;648:	// cubes
;649:	//
;650:	if( cgs.gametype == GT_HARVESTER ) {
;651:		value = ps->generic1;
;652:		if( value > 99 ) {
;653:			value = 99;
;654:		}
;655:		trap_R_SetColor( colors[0] );
;656:		CG_DrawField (640 - (CHAR_WIDTH*2 + TEXT_ICON_SPACE + ICON_SIZE), 432, 2, value);
;657:		trap_R_SetColor( NULL );
;658:		// if we didn't draw a 3D icon, draw a 2D icon for armor
;659:		if ( !cg_draw3dIcons.integer && cg_drawIcons.integer ) {
;660:			if( cg.snap->ps.persistant[PERS_TEAM] == TEAM_BLUE ) {
;661:				handle = cgs.media.redCubeIcon;
;662:			} else {
;663:				handle = cgs.media.blueCubeIcon;
;664:			}
;665:			CG_DrawPic( 640 - (TEXT_ICON_SPACE + ICON_SIZE), 432, ICON_SIZE, ICON_SIZE, handle );
;666:		}
;667:	}
;668:#endif
;669:}
;670:#endif
;671:
;672:/*
;673:===========================================================================================
;674:
;675:  UPPER RIGHT CORNER
;676:
;677:===========================================================================================
;678:*/
;679:
;680:/*
;681:================
;682:CG_DrawAttacker
;683:
;684:================
;685:*/
;686:static float CG_DrawAttacker( float y ) {
line 694
;687:	int			t;
;688:	float		size;
;689:	vec3_t		angles;
;690:	const char	*info;
;691:	const char	*name;
;692:	int			clientNum;
;693:
;694:	if ( cg.predictedPlayerState.stats[STAT_HEALTH] <= 0 ) {
ADDRGP4 cg+107636+184
INDIRI4
CNSTI4 0
GTI4 $265
line 695
;695:		return y;
ADDRFP4 0
INDIRF4
RETF4
ADDRGP4 $264
JUMPV
LABELV $265
line 698
;696:	}
;697:
;698:	if ( !cg.attackerTime ) {
ADDRGP4 cg+124416
INDIRI4
CNSTI4 0
NEI4 $269
line 699
;699:		return y;
ADDRFP4 0
INDIRF4
RETF4
ADDRGP4 $264
JUMPV
LABELV $269
line 702
;700:	}
;701:
;702:	clientNum = cg.predictedPlayerState.persistant[PERS_ATTACKER];
ADDRLP4 0
ADDRGP4 cg+107636+248+24
INDIRI4
ASGNI4
line 703
;703:	if ( clientNum < 0 || clientNum >= MAX_CLIENTS || clientNum == cg.snap->ps.clientNum ) {
ADDRLP4 0
INDIRI4
CNSTI4 0
LTI4 $279
ADDRLP4 0
INDIRI4
CNSTI4 64
GEI4 $279
ADDRLP4 0
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 184
ADDP4
INDIRI4
NEI4 $275
LABELV $279
line 704
;704:		return y;
ADDRFP4 0
INDIRF4
RETF4
ADDRGP4 $264
JUMPV
LABELV $275
line 707
;705:	}
;706:
;707:	t = cg.time - cg.attackerTime;
ADDRLP4 24
ADDRGP4 cg+107604
INDIRI4
ADDRGP4 cg+124416
INDIRI4
SUBI4
ASGNI4
line 708
;708:	if ( t > ATTACKER_HEAD_TIME ) {
ADDRLP4 24
INDIRI4
CNSTI4 10000
LEI4 $282
line 709
;709:		cg.attackerTime = 0;
ADDRGP4 cg+124416
CNSTI4 0
ASGNI4
line 710
;710:		return y;
ADDRFP4 0
INDIRF4
RETF4
ADDRGP4 $264
JUMPV
LABELV $282
line 713
;711:	}
;712:
;713:	size = ICON_SIZE * 1.25;
ADDRLP4 4
CNSTF4 1114636288
ASGNF4
line 715
;714:
;715:	angles[PITCH] = 0;
ADDRLP4 8
CNSTF4 0
ASGNF4
line 716
;716:	angles[YAW] = 180;
ADDRLP4 8+4
CNSTF4 1127481344
ASGNF4
line 717
;717:	angles[ROLL] = 0;
ADDRLP4 8+8
CNSTF4 0
ASGNF4
line 718
;718:	CG_DrawHead( 640 - size, y, size, size, clientNum, angles );
CNSTF4 1142947840
ADDRLP4 4
INDIRF4
SUBF4
ARGF4
ADDRFP4 0
INDIRF4
ARGF4
ADDRLP4 4
INDIRF4
ARGF4
ADDRLP4 4
INDIRF4
ARGF4
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 8
ARGP4
ADDRGP4 CG_DrawHead
CALLV
pop
line 720
;719:
;720:	info = CG_ConfigString( CS_PLAYERS + clientNum );
ADDRLP4 0
INDIRI4
CNSTI4 544
ADDI4
ARGI4
ADDRLP4 40
ADDRGP4 CG_ConfigString
CALLP4
ASGNP4
ADDRLP4 28
ADDRLP4 40
INDIRP4
ASGNP4
line 721
;721:	name = Info_ValueForKey(  info, "n" );
ADDRLP4 28
INDIRP4
ARGP4
ADDRGP4 $287
ARGP4
ADDRLP4 44
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 20
ADDRLP4 44
INDIRP4
ASGNP4
line 722
;722:	y += size;
ADDRFP4 0
ADDRFP4 0
INDIRF4
ADDRLP4 4
INDIRF4
ADDF4
ASGNF4
line 723
;723:	CG_DrawBigString( 640 - ( Q_PrintStrlen( name ) * BIGCHAR_WIDTH), y, name, 0.5 );
ADDRLP4 20
INDIRP4
ARGP4
ADDRLP4 48
ADDRGP4 Q_PrintStrlen
CALLI4
ASGNI4
CNSTI4 640
ADDRLP4 48
INDIRI4
CNSTI4 4
LSHI4
SUBI4
ARGI4
ADDRFP4 0
INDIRF4
CVFI4 4
ARGI4
ADDRLP4 20
INDIRP4
ARGP4
CNSTF4 1056964608
ARGF4
ADDRGP4 CG_DrawBigString
CALLV
pop
line 725
;724:
;725:	return y + BIGCHAR_HEIGHT + 2;
ADDRFP4 0
INDIRF4
CNSTF4 1098907648
ADDF4
CNSTF4 1073741824
ADDF4
RETF4
LABELV $264
endproc CG_DrawAttacker 52 24
proc CG_DrawSnapshot 16 16
line 733
;726:}
;727:
;728:/*
;729:==================
;730:CG_DrawSnapshot
;731:==================
;732:*/
;733:static float CG_DrawSnapshot( float y ) {
line 737
;734:	char		*s;
;735:	int			w;
;736:
;737:	s = va( "time:%i snap:%i cmd:%i", cg.snap->serverTime, 
ADDRGP4 $289
ARGP4
ADDRGP4 cg+36
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ARGI4
ADDRGP4 cg+28
INDIRI4
ARGI4
ADDRGP4 cgs+31444
INDIRI4
ARGI4
ADDRLP4 8
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 8
INDIRP4
ASGNP4
line 739
;738:		cg.latestSnapshotNum, cgs.serverCommandSequence );
;739:	w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH;
ADDRLP4 0
INDIRP4
ARGP4
ADDRLP4 12
ADDRGP4 CG_DrawStrlen
CALLI4
ASGNI4
ADDRLP4 4
ADDRLP4 12
INDIRI4
CNSTI4 4
LSHI4
ASGNI4
line 741
;740:
;741:	CG_DrawBigString( 635 - w, y + 2, s, 1.0F);
CNSTI4 635
ADDRLP4 4
INDIRI4
SUBI4
ARGI4
ADDRFP4 0
INDIRF4
CNSTF4 1073741824
ADDF4
CVFI4 4
ARGI4
ADDRLP4 0
INDIRP4
ARGP4
CNSTF4 1065353216
ARGF4
ADDRGP4 CG_DrawBigString
CALLV
pop
line 743
;742:
;743:	return y + BIGCHAR_HEIGHT + 4;
ADDRFP4 0
INDIRF4
CNSTF4 1098907648
ADDF4
CNSTF4 1082130432
ADDF4
RETF4
LABELV $288
endproc CG_DrawSnapshot 16 16
bss
align 4
LABELV $294
skip 16
align 4
LABELV $295
skip 4
align 4
LABELV $296
skip 4
code
proc CG_DrawFPS 44 16
line 752
;744:}
;745:
;746:/*
;747:==================
;748:CG_DrawFPS
;749:==================
;750:*/
;751:#define	FPS_FRAMES	4
;752:static float CG_DrawFPS( float y ) {
line 764
;753:	char		*s;
;754:	int			w;
;755:	static int	previousTimes[FPS_FRAMES];
;756:	static int	index;
;757:	int		i, total;
;758:	int		fps;
;759:	static	int	previous;
;760:	int		t, frameTime;
;761:
;762:	// don't use serverTime, because that will be drifting to
;763:	// correct for internet lag changes, timescales, timedemos, etc
;764:	t = trap_Milliseconds();
ADDRLP4 28
ADDRGP4 trap_Milliseconds
CALLI4
ASGNI4
ADDRLP4 8
ADDRLP4 28
INDIRI4
ASGNI4
line 765
;765:	frameTime = t - previous;
ADDRLP4 12
ADDRLP4 8
INDIRI4
ADDRGP4 $296
INDIRI4
SUBI4
ASGNI4
line 766
;766:	previous = t;
ADDRGP4 $296
ADDRLP4 8
INDIRI4
ASGNI4
line 768
;767:
;768:	previousTimes[index % FPS_FRAMES] = frameTime;
ADDRGP4 $295
INDIRI4
CNSTI4 4
MODI4
CNSTI4 2
LSHI4
ADDRGP4 $294
ADDP4
ADDRLP4 12
INDIRI4
ASGNI4
line 769
;769:	index++;
ADDRLP4 32
ADDRGP4 $295
ASGNP4
ADDRLP4 32
INDIRP4
ADDRLP4 32
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 770
;770:	if ( index > FPS_FRAMES ) {
ADDRGP4 $295
INDIRI4
CNSTI4 4
LEI4 $297
line 772
;771:		// average multiple frames together to smooth changes out a bit
;772:		total = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
line 773
;773:		for ( i = 0 ; i < FPS_FRAMES ; i++ ) {
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $299
line 774
;774:			total += previousTimes[i];
ADDRLP4 4
ADDRLP4 4
INDIRI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 $294
ADDP4
INDIRI4
ADDI4
ASGNI4
line 775
;775:		}
LABELV $300
line 773
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 4
LTI4 $299
line 776
;776:		if ( !total ) {
ADDRLP4 4
INDIRI4
CNSTI4 0
NEI4 $303
line 777
;777:			total = 1;
ADDRLP4 4
CNSTI4 1
ASGNI4
line 778
;778:		}
LABELV $303
line 779
;779:		fps = 1000 * FPS_FRAMES / total;
ADDRLP4 24
CNSTI4 4000
ADDRLP4 4
INDIRI4
DIVI4
ASGNI4
line 781
;780:
;781:		s = va( "%ifps", fps );
ADDRGP4 $305
ARGP4
ADDRLP4 24
INDIRI4
ARGI4
ADDRLP4 36
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 16
ADDRLP4 36
INDIRP4
ASGNP4
line 782
;782:		w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH;
ADDRLP4 16
INDIRP4
ARGP4
ADDRLP4 40
ADDRGP4 CG_DrawStrlen
CALLI4
ASGNI4
ADDRLP4 20
ADDRLP4 40
INDIRI4
CNSTI4 4
LSHI4
ASGNI4
line 784
;783:
;784:		CG_DrawBigString( 635 - w, y + 2, s, 1.0F);
CNSTI4 635
ADDRLP4 20
INDIRI4
SUBI4
ARGI4
ADDRFP4 0
INDIRF4
CNSTF4 1073741824
ADDF4
CVFI4 4
ARGI4
ADDRLP4 16
INDIRP4
ARGP4
CNSTF4 1065353216
ARGF4
ADDRGP4 CG_DrawBigString
CALLV
pop
line 785
;785:	}
LABELV $297
line 787
;786:
;787:	return y + BIGCHAR_HEIGHT + 4;
ADDRFP4 0
INDIRF4
CNSTF4 1098907648
ADDF4
CNSTF4 1082130432
ADDF4
RETF4
LABELV $293
endproc CG_DrawFPS 44 16
proc CG_DrawTimer 32 16
line 795
;788:}
;789:
;790:/*
;791:=================
;792:CG_DrawTimer
;793:=================
;794:*/
;795:static float CG_DrawTimer( float y ) {
line 801
;796:	char		*s;
;797:	int			w;
;798:	int			mins, seconds, tens;
;799:	int			msec;
;800:
;801:	msec = cg.time - cgs.levelStartTime;
ADDRLP4 20
ADDRGP4 cg+107604
INDIRI4
ADDRGP4 cgs+34796
INDIRI4
SUBI4
ASGNI4
line 803
;802:
;803:	seconds = msec / 1000;
ADDRLP4 0
ADDRLP4 20
INDIRI4
CNSTI4 1000
DIVI4
ASGNI4
line 804
;804:	mins = seconds / 60;
ADDRLP4 8
ADDRLP4 0
INDIRI4
CNSTI4 60
DIVI4
ASGNI4
line 805
;805:	seconds -= mins * 60;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 60
ADDRLP4 8
INDIRI4
MULI4
SUBI4
ASGNI4
line 806
;806:	tens = seconds / 10;
ADDRLP4 12
ADDRLP4 0
INDIRI4
CNSTI4 10
DIVI4
ASGNI4
line 807
;807:	seconds -= tens * 10;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 10
ADDRLP4 12
INDIRI4
MULI4
SUBI4
ASGNI4
line 809
;808:
;809:	s = va( "%i:%i%i", mins, tens, seconds );
ADDRGP4 $309
ARGP4
ADDRLP4 8
INDIRI4
ARGI4
ADDRLP4 12
INDIRI4
ARGI4
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 24
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 4
ADDRLP4 24
INDIRP4
ASGNP4
line 810
;810:	w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH;
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 28
ADDRGP4 CG_DrawStrlen
CALLI4
ASGNI4
ADDRLP4 16
ADDRLP4 28
INDIRI4
CNSTI4 4
LSHI4
ASGNI4
line 812
;811:
;812:	CG_DrawBigString( 635 - w, y + 2, s, 1.0F);
CNSTI4 635
ADDRLP4 16
INDIRI4
SUBI4
ARGI4
ADDRFP4 0
INDIRF4
CNSTF4 1073741824
ADDF4
CVFI4 4
ARGI4
ADDRLP4 4
INDIRP4
ARGP4
CNSTF4 1065353216
ARGF4
ADDRGP4 CG_DrawBigString
CALLV
pop
line 814
;813:
;814:	return y + BIGCHAR_HEIGHT + 4;
ADDRFP4 0
INDIRF4
CNSTF4 1098907648
ADDF4
CNSTF4 1082130432
ADDF4
RETF4
LABELV $306
endproc CG_DrawTimer 32 16
proc CG_DrawTeamOverlay 148 36
line 824
;815:}
;816:
;817:
;818:/*
;819:=================
;820:CG_DrawTeamOverlay
;821:=================
;822:*/
;823:
;824:static float CG_DrawTeamOverlay( float y, qboolean right, qboolean upper ) {
line 836
;825:	int x, w, h, xx;
;826:	int i, j, len;
;827:	const char *p;
;828:	vec4_t		hcolor;
;829:	int pwidth, lwidth;
;830:	int plyrs;
;831:	char st[16];
;832:	clientInfo_t *ci;
;833:	gitem_t	*item;
;834:	int ret_y, count;
;835:
;836:	if ( !cg_drawTeamOverlay.integer ) {
ADDRGP4 cg_drawTeamOverlay+12
INDIRI4
CNSTI4 0
NEI4 $311
line 837
;837:		return y;
ADDRFP4 0
INDIRF4
RETF4
ADDRGP4 $310
JUMPV
LABELV $311
line 840
;838:	}
;839:
;840:	if ( cg.snap->ps.persistant[PERS_TEAM] != TEAM_RED && cg.snap->ps.persistant[PERS_TEAM] != TEAM_BLUE ) {
ADDRLP4 92
CNSTI4 304
ASGNI4
ADDRGP4 cg+36
INDIRP4
ADDRLP4 92
INDIRI4
ADDP4
INDIRI4
CNSTI4 1
EQI4 $314
ADDRGP4 cg+36
INDIRP4
ADDRLP4 92
INDIRI4
ADDP4
INDIRI4
CNSTI4 2
EQI4 $314
line 841
;841:		return y; // Not on any team
ADDRFP4 0
INDIRF4
RETF4
ADDRGP4 $310
JUMPV
LABELV $314
line 844
;842:	}
;843:
;844:	plyrs = 0;
ADDRLP4 76
CNSTI4 0
ASGNI4
line 847
;845:
;846:	// max player name width
;847:	pwidth = 0;
ADDRLP4 56
CNSTI4 0
ASGNI4
line 848
;848:	count = (numSortedTeamPlayers > 8) ? 8 : numSortedTeamPlayers;
ADDRGP4 numSortedTeamPlayers
INDIRI4
CNSTI4 8
LEI4 $319
ADDRLP4 96
CNSTI4 8
ASGNI4
ADDRGP4 $320
JUMPV
LABELV $319
ADDRLP4 96
ADDRGP4 numSortedTeamPlayers
INDIRI4
ASGNI4
LABELV $320
ADDRLP4 48
ADDRLP4 96
INDIRI4
ASGNI4
line 849
;849:	for (i = 0; i < count; i++) {
ADDRLP4 8
CNSTI4 0
ASGNI4
ADDRGP4 $324
JUMPV
LABELV $321
line 850
;850:		ci = cgs.clientinfo + sortedTeamPlayers[i];
ADDRLP4 4
CNSTI4 1708
ADDRLP4 8
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 sortedTeamPlayers
ADDP4
INDIRI4
MULI4
ADDRGP4 cgs+40972
ADDP4
ASGNP4
line 851
;851:		if ( ci->infoValid && ci->team == cg.snap->ps.persistant[PERS_TEAM]) {
ADDRLP4 4
INDIRP4
INDIRI4
CNSTI4 0
EQI4 $326
ADDRLP4 4
INDIRP4
CNSTI4 68
ADDP4
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 304
ADDP4
INDIRI4
NEI4 $326
line 852
;852:			plyrs++;
ADDRLP4 76
ADDRLP4 76
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 853
;853:			len = CG_DrawStrlen(ci->name);
ADDRLP4 4
INDIRP4
CNSTI4 4
ADDP4
ARGP4
ADDRLP4 104
ADDRGP4 CG_DrawStrlen
CALLI4
ASGNI4
ADDRLP4 40
ADDRLP4 104
INDIRI4
ASGNI4
line 854
;854:			if (len > pwidth)
ADDRLP4 40
INDIRI4
ADDRLP4 56
INDIRI4
LEI4 $329
line 855
;855:				pwidth = len;
ADDRLP4 56
ADDRLP4 40
INDIRI4
ASGNI4
LABELV $329
line 856
;856:		}
LABELV $326
line 857
;857:	}
LABELV $322
line 849
ADDRLP4 8
ADDRLP4 8
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $324
ADDRLP4 8
INDIRI4
ADDRLP4 48
INDIRI4
LTI4 $321
line 859
;858:
;859:	if (!plyrs)
ADDRLP4 76
INDIRI4
CNSTI4 0
NEI4 $331
line 860
;860:		return y;
ADDRFP4 0
INDIRF4
RETF4
ADDRGP4 $310
JUMPV
LABELV $331
line 862
;861:
;862:	if (pwidth > TEAM_OVERLAY_MAXNAME_WIDTH)
ADDRLP4 56
INDIRI4
CNSTI4 12
LEI4 $333
line 863
;863:		pwidth = TEAM_OVERLAY_MAXNAME_WIDTH;
ADDRLP4 56
CNSTI4 12
ASGNI4
LABELV $333
line 866
;864:
;865:	// max location name width
;866:	lwidth = 0;
ADDRLP4 44
CNSTI4 0
ASGNI4
line 867
;867:	for (i = 1; i < MAX_LOCATIONS; i++) {
ADDRLP4 8
CNSTI4 1
ASGNI4
LABELV $335
line 868
;868:		p = CG_ConfigString(CS_LOCATIONS + i);
ADDRLP4 8
INDIRI4
CNSTI4 608
ADDI4
ARGI4
ADDRLP4 100
ADDRGP4 CG_ConfigString
CALLP4
ASGNP4
ADDRLP4 20
ADDRLP4 100
INDIRP4
ASGNP4
line 869
;869:		if (p && *p) {
ADDRLP4 20
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $339
ADDRLP4 20
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $339
line 870
;870:			len = CG_DrawStrlen(p);
ADDRLP4 20
INDIRP4
ARGP4
ADDRLP4 108
ADDRGP4 CG_DrawStrlen
CALLI4
ASGNI4
ADDRLP4 40
ADDRLP4 108
INDIRI4
ASGNI4
line 871
;871:			if (len > lwidth)
ADDRLP4 40
INDIRI4
ADDRLP4 44
INDIRI4
LEI4 $341
line 872
;872:				lwidth = len;
ADDRLP4 44
ADDRLP4 40
INDIRI4
ASGNI4
LABELV $341
line 873
;873:		}
LABELV $339
line 874
;874:	}
LABELV $336
line 867
ADDRLP4 8
ADDRLP4 8
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 8
INDIRI4
CNSTI4 64
LTI4 $335
line 876
;875:
;876:	if (lwidth > TEAM_OVERLAY_MAXLOCATION_WIDTH)
ADDRLP4 44
INDIRI4
CNSTI4 16
LEI4 $343
line 877
;877:		lwidth = TEAM_OVERLAY_MAXLOCATION_WIDTH;
ADDRLP4 44
CNSTI4 16
ASGNI4
LABELV $343
line 879
;878:
;879:	w = (pwidth + lwidth + 4 + 7) * TINYCHAR_WIDTH;
ADDRLP4 80
ADDRLP4 56
INDIRI4
ADDRLP4 44
INDIRI4
ADDI4
CNSTI4 3
LSHI4
CNSTI4 32
ADDI4
CNSTI4 56
ADDI4
ASGNI4
line 881
;880:
;881:	if ( right )
ADDRFP4 4
INDIRI4
CNSTI4 0
EQI4 $345
line 882
;882:		x = 640 - w;
ADDRLP4 52
CNSTI4 640
ADDRLP4 80
INDIRI4
SUBI4
ASGNI4
ADDRGP4 $346
JUMPV
LABELV $345
line 884
;883:	else
;884:		x = 0;
ADDRLP4 52
CNSTI4 0
ASGNI4
LABELV $346
line 886
;885:
;886:	h = plyrs * TINYCHAR_HEIGHT;
ADDRLP4 84
ADDRLP4 76
INDIRI4
CNSTI4 3
LSHI4
ASGNI4
line 888
;887:
;888:	if ( upper ) {
ADDRFP4 8
INDIRI4
CNSTI4 0
EQI4 $347
line 889
;889:		ret_y = y + h;
ADDRLP4 88
ADDRFP4 0
INDIRF4
ADDRLP4 84
INDIRI4
CVIF4 4
ADDF4
CVFI4 4
ASGNI4
line 890
;890:	} else {
ADDRGP4 $348
JUMPV
LABELV $347
line 891
;891:		y -= h;
ADDRFP4 0
ADDRFP4 0
INDIRF4
ADDRLP4 84
INDIRI4
CVIF4 4
SUBF4
ASGNF4
line 892
;892:		ret_y = y;
ADDRLP4 88
ADDRFP4 0
INDIRF4
CVFI4 4
ASGNI4
line 893
;893:	}
LABELV $348
line 895
;894:
;895:	if ( cg.snap->ps.persistant[PERS_TEAM] == TEAM_RED ) {
ADDRGP4 cg+36
INDIRP4
CNSTI4 304
ADDP4
INDIRI4
CNSTI4 1
NEI4 $349
line 896
;896:		hcolor[0] = 1.0f;
ADDRLP4 24
CNSTF4 1065353216
ASGNF4
line 897
;897:		hcolor[1] = 0.0f;
ADDRLP4 24+4
CNSTF4 0
ASGNF4
line 898
;898:		hcolor[2] = 0.0f;
ADDRLP4 24+8
CNSTF4 0
ASGNF4
line 899
;899:		hcolor[3] = 0.33f;
ADDRLP4 24+12
CNSTF4 1051260355
ASGNF4
line 900
;900:	} else { // if ( cg.snap->ps.persistant[PERS_TEAM] == TEAM_BLUE )
ADDRGP4 $350
JUMPV
LABELV $349
line 901
;901:		hcolor[0] = 0.0f;
ADDRLP4 24
CNSTF4 0
ASGNF4
line 902
;902:		hcolor[1] = 0.0f;
ADDRLP4 24+4
CNSTF4 0
ASGNF4
line 903
;903:		hcolor[2] = 1.0f;
ADDRLP4 24+8
CNSTF4 1065353216
ASGNF4
line 904
;904:		hcolor[3] = 0.33f;
ADDRLP4 24+12
CNSTF4 1051260355
ASGNF4
line 905
;905:	}
LABELV $350
line 906
;906:	trap_R_SetColor( hcolor );
ADDRLP4 24
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 907
;907:	CG_DrawPic( x, y, w, h, cgs.media.teamStatusBar );
ADDRLP4 52
INDIRI4
CVIF4 4
ARGF4
ADDRFP4 0
INDIRF4
ARGF4
ADDRLP4 80
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 84
INDIRI4
CVIF4 4
ARGF4
ADDRGP4 cgs+152340+160
INDIRI4
ARGI4
ADDRGP4 CG_DrawPic
CALLV
pop
line 908
;908:	trap_R_SetColor( NULL );
CNSTP4 0
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 910
;909:
;910:	for (i = 0; i < count; i++) {
ADDRLP4 8
CNSTI4 0
ASGNI4
ADDRGP4 $363
JUMPV
LABELV $360
line 911
;911:		ci = cgs.clientinfo + sortedTeamPlayers[i];
ADDRLP4 4
CNSTI4 1708
ADDRLP4 8
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 sortedTeamPlayers
ADDP4
INDIRI4
MULI4
ADDRGP4 cgs+40972
ADDP4
ASGNP4
line 912
;912:		if ( ci->infoValid && ci->team == cg.snap->ps.persistant[PERS_TEAM]) {
ADDRLP4 4
INDIRP4
INDIRI4
CNSTI4 0
EQI4 $365
ADDRLP4 4
INDIRP4
CNSTI4 68
ADDP4
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 304
ADDP4
INDIRI4
NEI4 $365
line 914
;913:
;914:			hcolor[0] = hcolor[1] = hcolor[2] = hcolor[3] = 1.0;
ADDRLP4 104
CNSTF4 1065353216
ASGNF4
ADDRLP4 24+12
ADDRLP4 104
INDIRF4
ASGNF4
ADDRLP4 24+8
ADDRLP4 104
INDIRF4
ASGNF4
ADDRLP4 24+4
ADDRLP4 104
INDIRF4
ASGNF4
ADDRLP4 24
ADDRLP4 104
INDIRF4
ASGNF4
line 916
;915:
;916:			xx = x + TINYCHAR_WIDTH;
ADDRLP4 12
ADDRLP4 52
INDIRI4
CNSTI4 8
ADDI4
ASGNI4
line 918
;917:
;918:			CG_DrawStringExt( xx, y,
ADDRLP4 12
INDIRI4
ARGI4
ADDRFP4 0
INDIRF4
CVFI4 4
ARGI4
ADDRLP4 4
INDIRP4
CNSTI4 4
ADDP4
ARGP4
ADDRLP4 24
ARGP4
ADDRLP4 108
CNSTI4 0
ASGNI4
ADDRLP4 108
INDIRI4
ARGI4
ADDRLP4 108
INDIRI4
ARGI4
ADDRLP4 112
CNSTI4 8
ASGNI4
ADDRLP4 112
INDIRI4
ARGI4
ADDRLP4 112
INDIRI4
ARGI4
CNSTI4 12
ARGI4
ADDRGP4 CG_DrawStringExt
CALLV
pop
line 922
;919:				ci->name, hcolor, qfalse, qfalse,
;920:				TINYCHAR_WIDTH, TINYCHAR_HEIGHT, TEAM_OVERLAY_MAXNAME_WIDTH);
;921:
;922:			if (lwidth) {
ADDRLP4 44
INDIRI4
CNSTI4 0
EQI4 $371
line 923
;923:				p = CG_ConfigString(CS_LOCATIONS + ci->location);
ADDRLP4 4
INDIRP4
CNSTI4 104
ADDP4
INDIRI4
CNSTI4 608
ADDI4
ARGI4
ADDRLP4 116
ADDRGP4 CG_ConfigString
CALLP4
ASGNP4
ADDRLP4 20
ADDRLP4 116
INDIRP4
ASGNP4
line 924
;924:				if (!p || !*p)
ADDRLP4 20
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $375
ADDRLP4 20
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $373
LABELV $375
line 925
;925:					p = "unknown";
ADDRLP4 20
ADDRGP4 $376
ASGNP4
LABELV $373
line 926
;926:				len = CG_DrawStrlen(p);
ADDRLP4 20
INDIRP4
ARGP4
ADDRLP4 124
ADDRGP4 CG_DrawStrlen
CALLI4
ASGNI4
ADDRLP4 40
ADDRLP4 124
INDIRI4
ASGNI4
line 927
;927:				if (len > lwidth)
ADDRLP4 40
INDIRI4
ADDRLP4 44
INDIRI4
LEI4 $377
line 928
;928:					len = lwidth;
ADDRLP4 40
ADDRLP4 44
INDIRI4
ASGNI4
LABELV $377
line 932
;929:
;930://				xx = x + TINYCHAR_WIDTH * 2 + TINYCHAR_WIDTH * pwidth + 
;931://					((lwidth/2 - len/2) * TINYCHAR_WIDTH);
;932:				xx = x + TINYCHAR_WIDTH * 2 + TINYCHAR_WIDTH * pwidth;
ADDRLP4 12
ADDRLP4 52
INDIRI4
CNSTI4 16
ADDI4
ADDRLP4 56
INDIRI4
CNSTI4 3
LSHI4
ADDI4
ASGNI4
line 933
;933:				CG_DrawStringExt( xx, y,
ADDRLP4 12
INDIRI4
ARGI4
ADDRFP4 0
INDIRF4
CVFI4 4
ARGI4
ADDRLP4 20
INDIRP4
ARGP4
ADDRLP4 24
ARGP4
ADDRLP4 128
CNSTI4 0
ASGNI4
ADDRLP4 128
INDIRI4
ARGI4
ADDRLP4 128
INDIRI4
ARGI4
ADDRLP4 132
CNSTI4 8
ASGNI4
ADDRLP4 132
INDIRI4
ARGI4
ADDRLP4 132
INDIRI4
ARGI4
CNSTI4 16
ARGI4
ADDRGP4 CG_DrawStringExt
CALLV
pop
line 936
;934:					p, hcolor, qfalse, qfalse, TINYCHAR_WIDTH, TINYCHAR_HEIGHT,
;935:					TEAM_OVERLAY_MAXLOCATION_WIDTH);
;936:			}
LABELV $371
line 938
;937:
;938:			CG_GetColorForHealth( ci->health, ci->armor, hcolor );
ADDRLP4 4
INDIRP4
CNSTI4 108
ADDP4
INDIRI4
ARGI4
ADDRLP4 4
INDIRP4
CNSTI4 112
ADDP4
INDIRI4
ARGI4
ADDRLP4 24
ARGP4
ADDRGP4 CG_GetColorForHealth
CALLV
pop
line 940
;939:
;940:			Com_sprintf (st, sizeof(st), "%3i %3i", ci->health,	ci->armor);
ADDRLP4 60
ARGP4
CNSTI4 16
ARGI4
ADDRGP4 $379
ARGP4
ADDRLP4 4
INDIRP4
CNSTI4 108
ADDP4
INDIRI4
ARGI4
ADDRLP4 4
INDIRP4
CNSTI4 112
ADDP4
INDIRI4
ARGI4
ADDRGP4 Com_sprintf
CALLV
pop
line 942
;941:
;942:			xx = x + TINYCHAR_WIDTH * 3 + 
ADDRLP4 124
CNSTI4 3
ASGNI4
ADDRLP4 12
ADDRLP4 52
INDIRI4
CNSTI4 24
ADDI4
ADDRLP4 56
INDIRI4
ADDRLP4 124
INDIRI4
LSHI4
ADDI4
ADDRLP4 44
INDIRI4
ADDRLP4 124
INDIRI4
LSHI4
ADDI4
ASGNI4
line 945
;943:				TINYCHAR_WIDTH * pwidth + TINYCHAR_WIDTH * lwidth;
;944:
;945:			CG_DrawStringExt( xx, y,
ADDRLP4 12
INDIRI4
ARGI4
ADDRFP4 0
INDIRF4
CVFI4 4
ARGI4
ADDRLP4 60
ARGP4
ADDRLP4 24
ARGP4
ADDRLP4 128
CNSTI4 0
ASGNI4
ADDRLP4 128
INDIRI4
ARGI4
ADDRLP4 128
INDIRI4
ARGI4
ADDRLP4 132
CNSTI4 8
ASGNI4
ADDRLP4 132
INDIRI4
ARGI4
ADDRLP4 132
INDIRI4
ARGI4
ADDRLP4 128
INDIRI4
ARGI4
ADDRGP4 CG_DrawStringExt
CALLV
pop
line 950
;946:				st, hcolor, qfalse, qfalse,
;947:				TINYCHAR_WIDTH, TINYCHAR_HEIGHT, 0 );
;948:
;949:			// draw weapon icon
;950:			xx += TINYCHAR_WIDTH * 3;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 24
ADDI4
ASGNI4
line 952
;951:
;952:			if ( cg_weapons[ci->curWeapon].weaponIcon ) {
CNSTI4 136
ADDRLP4 4
INDIRP4
CNSTI4 116
ADDP4
INDIRI4
MULI4
ADDRGP4 cg_weapons+68
ADDP4
INDIRI4
CNSTI4 0
EQI4 $380
line 953
;953:				CG_DrawPic( xx, y, TINYCHAR_WIDTH, TINYCHAR_HEIGHT, 
ADDRLP4 12
INDIRI4
CVIF4 4
ARGF4
ADDRFP4 0
INDIRF4
ARGF4
ADDRLP4 136
CNSTF4 1090519040
ASGNF4
ADDRLP4 136
INDIRF4
ARGF4
ADDRLP4 136
INDIRF4
ARGF4
CNSTI4 136
ADDRLP4 4
INDIRP4
CNSTI4 116
ADDP4
INDIRI4
MULI4
ADDRGP4 cg_weapons+68
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_DrawPic
CALLV
pop
line 955
;954:					cg_weapons[ci->curWeapon].weaponIcon );
;955:			} else {
ADDRGP4 $381
JUMPV
LABELV $380
line 956
;956:				CG_DrawPic( xx, y, TINYCHAR_WIDTH, TINYCHAR_HEIGHT, 
ADDRLP4 12
INDIRI4
CVIF4 4
ARGF4
ADDRFP4 0
INDIRF4
ARGF4
ADDRLP4 136
CNSTF4 1090519040
ASGNF4
ADDRLP4 136
INDIRF4
ARGF4
ADDRLP4 136
INDIRF4
ARGF4
ADDRGP4 cgs+152340+164
INDIRI4
ARGI4
ADDRGP4 CG_DrawPic
CALLV
pop
line 958
;957:					cgs.media.deferShader );
;958:			}
LABELV $381
line 961
;959:
;960:			// Draw powerup icons
;961:			if (right) {
ADDRFP4 4
INDIRI4
CNSTI4 0
EQI4 $386
line 962
;962:				xx = x;
ADDRLP4 12
ADDRLP4 52
INDIRI4
ASGNI4
line 963
;963:			} else {
ADDRGP4 $387
JUMPV
LABELV $386
line 964
;964:				xx = x + w - TINYCHAR_WIDTH;
ADDRLP4 12
ADDRLP4 52
INDIRI4
ADDRLP4 80
INDIRI4
ADDI4
CNSTI4 8
SUBI4
ASGNI4
line 965
;965:			}
LABELV $387
line 966
;966:			for (j = 0; j <= PW_NUM_POWERUPS; j++) {
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $388
line 967
;967:				if (ci->powerups & (1 << j)) {
ADDRLP4 4
INDIRP4
CNSTI4 140
ADDP4
INDIRI4
CNSTI4 1
ADDRLP4 0
INDIRI4
LSHI4
BANDI4
CNSTI4 0
EQI4 $392
line 969
;968:
;969:					item = BG_FindItemForPowerup( j );
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 136
ADDRGP4 BG_FindItemForPowerup
CALLP4
ASGNP4
ADDRLP4 16
ADDRLP4 136
INDIRP4
ASGNP4
line 971
;970:
;971:					if (item) {
ADDRLP4 16
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $394
line 972
;972:						CG_DrawPic( xx, y, TINYCHAR_WIDTH, TINYCHAR_HEIGHT, 
ADDRLP4 16
INDIRP4
CNSTI4 24
ADDP4
INDIRP4
ARGP4
ADDRLP4 140
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRLP4 12
INDIRI4
CVIF4 4
ARGF4
ADDRFP4 0
INDIRF4
ARGF4
ADDRLP4 144
CNSTF4 1090519040
ASGNF4
ADDRLP4 144
INDIRF4
ARGF4
ADDRLP4 144
INDIRF4
ARGF4
ADDRLP4 140
INDIRI4
ARGI4
ADDRGP4 CG_DrawPic
CALLV
pop
line 974
;973:						trap_R_RegisterShader( item->icon ) );
;974:						if (right) {
ADDRFP4 4
INDIRI4
CNSTI4 0
EQI4 $396
line 975
;975:							xx -= TINYCHAR_WIDTH;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 8
SUBI4
ASGNI4
line 976
;976:						} else {
ADDRGP4 $397
JUMPV
LABELV $396
line 977
;977:							xx += TINYCHAR_WIDTH;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 8
ADDI4
ASGNI4
line 978
;978:						}
LABELV $397
line 979
;979:					}
LABELV $394
line 980
;980:				}
LABELV $392
line 981
;981:			}
LABELV $389
line 966
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 15
LEI4 $388
line 983
;982:
;983:			y += TINYCHAR_HEIGHT;
ADDRFP4 0
ADDRFP4 0
INDIRF4
CNSTF4 1090519040
ADDF4
ASGNF4
line 984
;984:		}
LABELV $365
line 985
;985:	}
LABELV $361
line 910
ADDRLP4 8
ADDRLP4 8
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $363
ADDRLP4 8
INDIRI4
ADDRLP4 48
INDIRI4
LTI4 $360
line 987
;986:
;987:	return ret_y;
ADDRLP4 88
INDIRI4
CVIF4 4
RETF4
LABELV $310
endproc CG_DrawTeamOverlay 148 36
proc CG_DrawUpperRight 12 12
line 998
;988://#endif
;989:}
;990:
;991:
;992:/*
;993:=====================
;994:CG_DrawUpperRight
;995:
;996:=====================
;997:*/
;998:static void CG_DrawUpperRight( void ) {
line 1001
;999:	float	y;
;1000:
;1001:	y = 0;
ADDRLP4 0
CNSTF4 0
ASGNF4
line 1003
;1002:
;1003:	if ( cgs.gametype >= GT_TEAM && cg_drawTeamOverlay.integer == 1 ) {
ADDRGP4 cgs+31456
INDIRI4
CNSTI4 3
LTI4 $399
ADDRGP4 cg_drawTeamOverlay+12
INDIRI4
CNSTI4 1
NEI4 $399
line 1004
;1004:		y = CG_DrawTeamOverlay( y, qtrue, qtrue );
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 4
CNSTI4 1
ASGNI4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 8
ADDRGP4 CG_DrawTeamOverlay
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 8
INDIRF4
ASGNF4
line 1005
;1005:	} 
LABELV $399
line 1006
;1006:	if ( cg_drawSnapshot.integer ) {
ADDRGP4 cg_drawSnapshot+12
INDIRI4
CNSTI4 0
EQI4 $403
line 1007
;1007:		y = CG_DrawSnapshot( y );
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 4
ADDRGP4 CG_DrawSnapshot
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 4
INDIRF4
ASGNF4
line 1008
;1008:	}
LABELV $403
line 1009
;1009:	if ( cg_drawFPS.integer ) {
ADDRGP4 cg_drawFPS+12
INDIRI4
CNSTI4 0
EQI4 $406
line 1010
;1010:		y = CG_DrawFPS( y );
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 4
ADDRGP4 CG_DrawFPS
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 4
INDIRF4
ASGNF4
line 1011
;1011:	}
LABELV $406
line 1012
;1012:	if ( cg_drawTimer.integer ) {
ADDRGP4 cg_drawTimer+12
INDIRI4
CNSTI4 0
EQI4 $409
line 1013
;1013:		y = CG_DrawTimer( y );
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 4
ADDRGP4 CG_DrawTimer
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 4
INDIRF4
ASGNF4
line 1014
;1014:	}
LABELV $409
line 1015
;1015:	if ( cg_drawAttacker.integer ) {
ADDRGP4 cg_drawAttacker+12
INDIRI4
CNSTI4 0
EQI4 $412
line 1016
;1016:		y = CG_DrawAttacker( y );
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 4
ADDRGP4 CG_DrawAttacker
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 4
INDIRF4
ASGNF4
line 1017
;1017:	}
LABELV $412
line 1019
;1018:
;1019:}
LABELV $398
endproc CG_DrawUpperRight 12 12
proc CG_DrawReward 68 36
line 1491
;1020:
;1021:/*
;1022:===========================================================================================
;1023:
;1024:  LOWER RIGHT CORNER
;1025:
;1026:===========================================================================================
;1027:*/
;1028:
;1029:/*
;1030:=================
;1031:CG_DrawScores
;1032:
;1033:Draw the small two score display
;1034:=================
;1035:*/
;1036:#ifndef MISSIONPACK
;1037:static float CG_DrawScores( float y ) {
;1038:	const char	*s;
;1039:	int			s1, s2, score;
;1040:	int			x, w;
;1041:	int			v;
;1042:	vec4_t		color;
;1043:	float		y1;
;1044:	gitem_t		*item;
;1045:
;1046:	s1 = cgs.scores1;
;1047:	s2 = cgs.scores2;
;1048:
;1049:	y -=  BIGCHAR_HEIGHT + 8;
;1050:
;1051:	y1 = y;
;1052:
;1053:	// draw from the right side to left
;1054:	if ( cgs.gametype >= GT_TEAM ) {
;1055:		x = 640;
;1056:		color[0] = 0.0f;
;1057:		color[1] = 0.0f;
;1058:		color[2] = 1.0f;
;1059:		color[3] = 0.33f;
;1060:		s = va( "%2i", s2 );
;1061:		w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH + 8;
;1062:		x -= w;
;1063:		CG_FillRect( x, y-4,  w, BIGCHAR_HEIGHT+8, color );
;1064:		if ( cg.snap->ps.persistant[PERS_TEAM] == TEAM_BLUE ) {
;1065:			CG_DrawPic( x, y-4, w, BIGCHAR_HEIGHT+8, cgs.media.selectShader );
;1066:		}
;1067:		CG_DrawBigString( x + 4, y, s, 1.0F);
;1068:
;1069:		if ( cgs.gametype == GT_CTF ) {
;1070:			// Display flag status
;1071:			item = BG_FindItemForPowerup( PW_BLUEFLAG );
;1072:
;1073:			if (item) {
;1074:				y1 = y - BIGCHAR_HEIGHT - 8;
;1075:				if( cgs.blueflag >= 0 && cgs.blueflag <= 2 ) {
;1076:					CG_DrawPic( x, y1-4, w, BIGCHAR_HEIGHT+8, cgs.media.blueFlagShader[cgs.blueflag] );
;1077:				}
;1078:			}
;1079:		}
;1080:		color[0] = 1.0f;
;1081:		color[1] = 0.0f;
;1082:		color[2] = 0.0f;
;1083:		color[3] = 0.33f;
;1084:		s = va( "%2i", s1 );
;1085:		w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH + 8;
;1086:		x -= w;
;1087:		CG_FillRect( x, y-4,  w, BIGCHAR_HEIGHT+8, color );
;1088:		if ( cg.snap->ps.persistant[PERS_TEAM] == TEAM_RED ) {
;1089:			CG_DrawPic( x, y-4, w, BIGCHAR_HEIGHT+8, cgs.media.selectShader );
;1090:		}
;1091:		CG_DrawBigString( x + 4, y, s, 1.0F);
;1092:
;1093:		if ( cgs.gametype == GT_CTF ) {
;1094:			// Display flag status
;1095:			item = BG_FindItemForPowerup( PW_REDFLAG );
;1096:
;1097:			if (item) {
;1098:				y1 = y - BIGCHAR_HEIGHT - 8;
;1099:				if( cgs.redflag >= 0 && cgs.redflag <= 2 ) {
;1100:					CG_DrawPic( x, y1-4, w, BIGCHAR_HEIGHT+8, cgs.media.redFlagShader[cgs.redflag] );
;1101:				}
;1102:			}
;1103:		}
;1104:
;1105:#ifdef MISSIONPACK
;1106:		if ( cgs.gametype == GT_1FCTF ) {
;1107:			// Display flag status
;1108:			item = BG_FindItemForPowerup( PW_NEUTRALFLAG );
;1109:
;1110:			if (item) {
;1111:				y1 = y - BIGCHAR_HEIGHT - 8;
;1112:				if( cgs.flagStatus >= 0 && cgs.flagStatus <= 3 ) {
;1113:					CG_DrawPic( x, y1-4, w, BIGCHAR_HEIGHT+8, cgs.media.flagShader[cgs.flagStatus] );
;1114:				}
;1115:			}
;1116:		}
;1117:#endif
;1118:		if ( cgs.gametype >= GT_CTF ) {
;1119:			v = cgs.capturelimit;
;1120:		} else {
;1121:			v = cgs.fraglimit;
;1122:		}
;1123:		if ( v ) {
;1124:			s = va( "%2i", v );
;1125:			w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH + 8;
;1126:			x -= w;
;1127:			CG_DrawBigString( x + 4, y, s, 1.0F);
;1128:		}
;1129:
;1130:	} else {
;1131:		qboolean	spectator;
;1132:
;1133:		x = 640;
;1134:		score = cg.snap->ps.persistant[PERS_SCORE];
;1135:		spectator = ( cg.snap->ps.persistant[PERS_TEAM] == TEAM_SPECTATOR );
;1136:
;1137:		// always show your score in the second box if not in first place
;1138:		if ( s1 != score ) {
;1139:			s2 = score;
;1140:		}
;1141:		if ( s2 != SCORE_NOT_PRESENT ) {
;1142:			s = va( "%2i", s2 );
;1143:			w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH + 8;
;1144:			x -= w;
;1145:			if ( !spectator && score == s2 && score != s1 ) {
;1146:				color[0] = 1.0f;
;1147:				color[1] = 0.0f;
;1148:				color[2] = 0.0f;
;1149:				color[3] = 0.33f;
;1150:				CG_FillRect( x, y-4,  w, BIGCHAR_HEIGHT+8, color );
;1151:				CG_DrawPic( x, y-4, w, BIGCHAR_HEIGHT+8, cgs.media.selectShader );
;1152:			} else {
;1153:				color[0] = 0.5f;
;1154:				color[1] = 0.5f;
;1155:				color[2] = 0.5f;
;1156:				color[3] = 0.33f;
;1157:				CG_FillRect( x, y-4,  w, BIGCHAR_HEIGHT+8, color );
;1158:			}	
;1159:			CG_DrawBigString( x + 4, y, s, 1.0F);
;1160:		}
;1161:
;1162:		// first place
;1163:		if ( s1 != SCORE_NOT_PRESENT ) {
;1164:			s = va( "%2i", s1 );
;1165:			w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH + 8;
;1166:			x -= w;
;1167:			if ( !spectator && score == s1 ) {
;1168:				color[0] = 0.0f;
;1169:				color[1] = 0.0f;
;1170:				color[2] = 1.0f;
;1171:				color[3] = 0.33f;
;1172:				CG_FillRect( x, y-4,  w, BIGCHAR_HEIGHT+8, color );
;1173:				CG_DrawPic( x, y-4, w, BIGCHAR_HEIGHT+8, cgs.media.selectShader );
;1174:			} else {
;1175:				color[0] = 0.5f;
;1176:				color[1] = 0.5f;
;1177:				color[2] = 0.5f;
;1178:				color[3] = 0.33f;
;1179:				CG_FillRect( x, y-4,  w, BIGCHAR_HEIGHT+8, color );
;1180:			}	
;1181:			CG_DrawBigString( x + 4, y, s, 1.0F);
;1182:		}
;1183:
;1184:		if ( cgs.fraglimit ) {
;1185:			s = va( "%2i", cgs.fraglimit );
;1186:			w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH + 8;
;1187:			x -= w;
;1188:			CG_DrawBigString( x + 4, y, s, 1.0F);
;1189:		}
;1190:
;1191:	}
;1192:
;1193:	return y1 - 8;
;1194:}
;1195:#endif // MISSIONPACK
;1196:
;1197:/*
;1198:================
;1199:CG_DrawPowerups
;1200:================
;1201:*/
;1202:#ifndef MISSIONPACK
;1203:static float CG_DrawPowerups( float y ) {
;1204:	int		sorted[MAX_POWERUPS];
;1205:	int		sortedTime[MAX_POWERUPS];
;1206:	int		i, j, k;
;1207:	int		active;
;1208:	playerState_t	*ps;
;1209:	int		t;
;1210:	gitem_t	*item;
;1211:	int		x;
;1212:	int		color;
;1213:	float	size;
;1214:	float	f;
;1215:	static float colors[2][4] = { 
;1216:    { 0.2f, 1.0f, 0.2f, 1.0f } , 
;1217:    { 1.0f, 0.2f, 0.2f, 1.0f } 
;1218:  };
;1219:
;1220:	ps = &cg.snap->ps;
;1221:
;1222:	if ( ps->stats[STAT_HEALTH] <= 0 ) {
;1223:		return y;
;1224:	}
;1225:
;1226:	// sort the list by time remaining
;1227:	active = 0;
;1228:	for ( i = 0 ; i < MAX_POWERUPS ; i++ ) {
;1229:		if ( !ps->powerups[ i ] ) {
;1230:			continue;
;1231:		}
;1232:		t = ps->powerups[ i ] - cg.time;
;1233:		// ZOID--don't draw if the power up has unlimited time (999 seconds)
;1234:		// This is true of the CTF flags
;1235:		if ( t < 0 || t > 999000) {
;1236:			continue;
;1237:		}
;1238:
;1239:		// insert into the list
;1240:		for ( j = 0 ; j < active ; j++ ) {
;1241:			if ( sortedTime[j] >= t ) {
;1242:				for ( k = active - 1 ; k >= j ; k-- ) {
;1243:					sorted[k+1] = sorted[k];
;1244:					sortedTime[k+1] = sortedTime[k];
;1245:				}
;1246:				break;
;1247:			}
;1248:		}
;1249:		sorted[j] = i;
;1250:		sortedTime[j] = t;
;1251:		active++;
;1252:	}
;1253:
;1254:	// draw the icons and timers
;1255:	x = 640 - ICON_SIZE - CHAR_WIDTH * 2;
;1256:	for ( i = 0 ; i < active ; i++ ) {
;1257:		item = BG_FindItemForPowerup( sorted[i] );
;1258:
;1259:    if (item) {
;1260:
;1261:		  color = 1;
;1262:
;1263:		  y -= ICON_SIZE;
;1264:
;1265:		  trap_R_SetColor( colors[color] );
;1266:		  CG_DrawField( x, y, 2, sortedTime[ i ] / 1000 );
;1267:
;1268:		  t = ps->powerups[ sorted[i] ];
;1269:		  if ( t - cg.time >= POWERUP_BLINKS * POWERUP_BLINK_TIME ) {
;1270:			  trap_R_SetColor( NULL );
;1271:		  } else {
;1272:			  vec4_t	modulate;
;1273:
;1274:			  f = (float)( t - cg.time ) / POWERUP_BLINK_TIME;
;1275:			  f -= (int)f;
;1276:			  modulate[0] = modulate[1] = modulate[2] = modulate[3] = f;
;1277:			  trap_R_SetColor( modulate );
;1278:		  }
;1279:
;1280:		  if ( cg.powerupActive == sorted[i] && 
;1281:			  cg.time - cg.powerupTime < PULSE_TIME ) {
;1282:			  f = 1.0 - ( ( (float)cg.time - cg.powerupTime ) / PULSE_TIME );
;1283:			  size = ICON_SIZE * ( 1.0 + ( PULSE_SCALE - 1.0 ) * f );
;1284:		  } else {
;1285:			  size = ICON_SIZE;
;1286:		  }
;1287:
;1288:		  CG_DrawPic( 640 - size, y + ICON_SIZE / 2 - size / 2, 
;1289:			  size, size, trap_R_RegisterShader( item->icon ) );
;1290:    }
;1291:	}
;1292:	trap_R_SetColor( NULL );
;1293:
;1294:	return y;
;1295:}
;1296:#endif // MISSIONPACK
;1297:
;1298:/*
;1299:=====================
;1300:CG_DrawLowerRight
;1301:
;1302:=====================
;1303:*/
;1304:#ifndef MISSIONPACK
;1305:static void CG_DrawLowerRight( void ) {
;1306:	float	y;
;1307:
;1308:	y = 480 - ICON_SIZE;
;1309:
;1310:	if ( cgs.gametype >= GT_TEAM && cg_drawTeamOverlay.integer == 2 ) {
;1311:		y = CG_DrawTeamOverlay( y, qtrue, qfalse );
;1312:	} 
;1313:
;1314:	y = CG_DrawScores( y );
;1315:	y = CG_DrawPowerups( y );
;1316:}
;1317:#endif // MISSIONPACK
;1318:
;1319:/*
;1320:===================
;1321:CG_DrawPickupItem
;1322:===================
;1323:*/
;1324:#ifndef MISSIONPACK
;1325:static int CG_DrawPickupItem( int y ) {
;1326:	int		value;
;1327:	float	*fadeColor;
;1328:
;1329:	if ( cg.snap->ps.stats[STAT_HEALTH] <= 0 ) {
;1330:		return y;
;1331:	}
;1332:
;1333:	y -= ICON_SIZE;
;1334:
;1335:	value = cg.itemPickup;
;1336:	if ( value ) {
;1337:		fadeColor = CG_FadeColor( cg.itemPickupTime, 3000 );
;1338:		if ( fadeColor ) {
;1339:			CG_RegisterItemVisuals( value );
;1340:			trap_R_SetColor( fadeColor );
;1341:			CG_DrawPic( 8, y, ICON_SIZE, ICON_SIZE, cg_items[ value ].icon );
;1342:			CG_DrawBigString( ICON_SIZE + 16, y + (ICON_SIZE/2 - BIGCHAR_HEIGHT/2), bg_itemlist[ value ].pickup_name, fadeColor[0] );
;1343:			trap_R_SetColor( NULL );
;1344:		}
;1345:	}
;1346:	
;1347:	return y;
;1348:}
;1349:#endif // MISSIONPACK
;1350:
;1351:/*
;1352:=====================
;1353:CG_DrawLowerLeft
;1354:
;1355:=====================
;1356:*/
;1357:#ifndef MISSIONPACK
;1358:static void CG_DrawLowerLeft( void ) {
;1359:	float	y;
;1360:
;1361:	y = 480 - ICON_SIZE;
;1362:
;1363:	if ( cgs.gametype >= GT_TEAM && cg_drawTeamOverlay.integer == 3 ) {
;1364:		y = CG_DrawTeamOverlay( y, qfalse, qfalse );
;1365:	} 
;1366:
;1367:
;1368:	y = CG_DrawPickupItem( y );
;1369:}
;1370:#endif // MISSIONPACK
;1371:
;1372:
;1373://===========================================================================================
;1374:
;1375:/*
;1376:=================
;1377:CG_DrawTeamInfo
;1378:=================
;1379:*/
;1380:#ifndef MISSIONPACK
;1381:static void CG_DrawTeamInfo( void ) {
;1382:	int w, h;
;1383:	int i, len;
;1384:	vec4_t		hcolor;
;1385:	int		chatHeight;
;1386:
;1387:#define CHATLOC_Y 420 // bottom end
;1388:#define CHATLOC_X 0
;1389:
;1390:	if (cg_teamChatHeight.integer < TEAMCHAT_HEIGHT)
;1391:		chatHeight = cg_teamChatHeight.integer;
;1392:	else
;1393:		chatHeight = TEAMCHAT_HEIGHT;
;1394:	if (chatHeight <= 0)
;1395:		return; // disabled
;1396:
;1397:	if (cgs.teamLastChatPos != cgs.teamChatPos) {
;1398:		if (cg.time - cgs.teamChatMsgTimes[cgs.teamLastChatPos % chatHeight] > cg_teamChatTime.integer) {
;1399:			cgs.teamLastChatPos++;
;1400:		}
;1401:
;1402:		h = (cgs.teamChatPos - cgs.teamLastChatPos) * TINYCHAR_HEIGHT;
;1403:
;1404:		w = 0;
;1405:
;1406:		for (i = cgs.teamLastChatPos; i < cgs.teamChatPos; i++) {
;1407:			len = CG_DrawStrlen(cgs.teamChatMsgs[i % chatHeight]);
;1408:			if (len > w)
;1409:				w = len;
;1410:		}
;1411:		w *= TINYCHAR_WIDTH;
;1412:		w += TINYCHAR_WIDTH * 2;
;1413:
;1414:		if ( cg.snap->ps.persistant[PERS_TEAM] == TEAM_RED ) {
;1415:			hcolor[0] = 1.0f;
;1416:			hcolor[1] = 0.0f;
;1417:			hcolor[2] = 0.0f;
;1418:			hcolor[3] = 0.33f;
;1419:		} else if ( cg.snap->ps.persistant[PERS_TEAM] == TEAM_BLUE ) {
;1420:			hcolor[0] = 0.0f;
;1421:			hcolor[1] = 0.0f;
;1422:			hcolor[2] = 1.0f;
;1423:			hcolor[3] = 0.33f;
;1424:		} else {
;1425:			hcolor[0] = 0.0f;
;1426:			hcolor[1] = 1.0f;
;1427:			hcolor[2] = 0.0f;
;1428:			hcolor[3] = 0.33f;
;1429:		}
;1430:
;1431:		trap_R_SetColor( hcolor );
;1432:		CG_DrawPic( CHATLOC_X, CHATLOC_Y - h, 640, h, cgs.media.teamStatusBar );
;1433:		trap_R_SetColor( NULL );
;1434:
;1435:		hcolor[0] = hcolor[1] = hcolor[2] = 1.0f;
;1436:		hcolor[3] = 1.0f;
;1437:
;1438:		for (i = cgs.teamChatPos - 1; i >= cgs.teamLastChatPos; i--) {
;1439:			CG_DrawStringExt( CHATLOC_X + TINYCHAR_WIDTH, 
;1440:				CHATLOC_Y - (cgs.teamChatPos - i)*TINYCHAR_HEIGHT, 
;1441:				cgs.teamChatMsgs[i % chatHeight], hcolor, qfalse, qfalse,
;1442:				TINYCHAR_WIDTH, TINYCHAR_HEIGHT, 0 );
;1443:		}
;1444:	}
;1445:}
;1446:#endif // MISSIONPACK
;1447:
;1448:/*
;1449:===================
;1450:CG_DrawHoldableItem
;1451:===================
;1452:*/
;1453:#ifndef MISSIONPACK
;1454:static void CG_DrawHoldableItem( void ) { 
;1455:	int		value;
;1456:
;1457:	value = cg.snap->ps.stats[STAT_HOLDABLE_ITEM];
;1458:	if ( value ) {
;1459:		CG_RegisterItemVisuals( value );
;1460:		CG_DrawPic( 640-ICON_SIZE, (SCREEN_HEIGHT-ICON_SIZE)/2, ICON_SIZE, ICON_SIZE, cg_items[ value ].icon );
;1461:	}
;1462:
;1463:}
;1464:#endif // MISSIONPACK
;1465:
;1466:#ifdef MISSIONPACK
;1467:/*
;1468:===================
;1469:CG_DrawPersistantPowerup
;1470:===================
;1471:*/
;1472:#if 0 // sos001208 - DEAD
;1473:static void CG_DrawPersistantPowerup( void ) { 
;1474:	int		value;
;1475:
;1476:	value = cg.snap->ps.stats[STAT_PERSISTANT_POWERUP];
;1477:	if ( value ) {
;1478:		CG_RegisterItemVisuals( value );
;1479:		CG_DrawPic( 640-ICON_SIZE, (SCREEN_HEIGHT-ICON_SIZE)/2 - ICON_SIZE, ICON_SIZE, ICON_SIZE, cg_items[ value ].icon );
;1480:	}
;1481:}
;1482:#endif
;1483:#endif // MISSIONPACK
;1484:
;1485:
;1486:/*
;1487:===================
;1488:CG_DrawReward
;1489:===================
;1490:*/
;1491:static void CG_DrawReward( void ) { 
line 1497
;1492:	float	*color;
;1493:	int		i, count;
;1494:	float	x, y;
;1495:	char	buf[32];
;1496:
;1497:	if ( !cg_drawRewards.integer ) {
ADDRGP4 cg_drawRewards+12
INDIRI4
CNSTI4 0
NEI4 $416
line 1498
;1498:		return;
ADDRGP4 $415
JUMPV
LABELV $416
line 1501
;1499:	}
;1500:
;1501:	color = CG_FadeColor( cg.rewardTime, REWARD_TIME );
ADDRGP4 cg+124428
INDIRI4
ARGI4
CNSTI4 3000
ARGI4
ADDRLP4 52
ADDRGP4 CG_FadeColor
CALLP4
ASGNP4
ADDRLP4 16
ADDRLP4 52
INDIRP4
ASGNP4
line 1502
;1502:	if ( !color ) {
ADDRLP4 16
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $420
line 1503
;1503:		if (cg.rewardStack > 0) {
ADDRGP4 cg+124424
INDIRI4
CNSTI4 0
LEI4 $415
line 1504
;1504:			for(i = 0; i < cg.rewardStack; i++) {
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $428
JUMPV
LABELV $425
line 1505
;1505:				cg.rewardSound[i] = cg.rewardSound[i+1];
ADDRLP4 56
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 56
INDIRI4
ADDRGP4 cg+124512
ADDP4
ADDRLP4 56
INDIRI4
ADDRGP4 cg+124512+4
ADDP4
INDIRI4
ASGNI4
line 1506
;1506:				cg.rewardShader[i] = cg.rewardShader[i+1];
ADDRLP4 60
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 60
INDIRI4
ADDRGP4 cg+124472
ADDP4
ADDRLP4 60
INDIRI4
ADDRGP4 cg+124472+4
ADDP4
INDIRI4
ASGNI4
line 1507
;1507:				cg.rewardCount[i] = cg.rewardCount[i+1];
ADDRLP4 64
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 64
INDIRI4
ADDRGP4 cg+124432
ADDP4
ADDRLP4 64
INDIRI4
ADDRGP4 cg+124432+4
ADDP4
INDIRI4
ASGNI4
line 1508
;1508:			}
LABELV $426
line 1504
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $428
ADDRLP4 0
INDIRI4
ADDRGP4 cg+124424
INDIRI4
LTI4 $425
line 1509
;1509:			cg.rewardTime = cg.time;
ADDRGP4 cg+124428
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 1510
;1510:			cg.rewardStack--;
ADDRLP4 56
ADDRGP4 cg+124424
ASGNP4
ADDRLP4 56
INDIRP4
ADDRLP4 56
INDIRP4
INDIRI4
CNSTI4 1
SUBI4
ASGNI4
line 1511
;1511:			color = CG_FadeColor( cg.rewardTime, REWARD_TIME );
ADDRGP4 cg+124428
INDIRI4
ARGI4
CNSTI4 3000
ARGI4
ADDRLP4 60
ADDRGP4 CG_FadeColor
CALLP4
ASGNP4
ADDRLP4 16
ADDRLP4 60
INDIRP4
ASGNP4
line 1512
;1512:			trap_S_StartLocalSound(cg.rewardSound[0], CHAN_ANNOUNCER);
ADDRGP4 cg+124512
INDIRI4
ARGI4
CNSTI4 7
ARGI4
ADDRGP4 trap_S_StartLocalSound
CALLV
pop
line 1513
;1513:		} else {
line 1514
;1514:			return;
LABELV $423
line 1516
;1515:		}
;1516:	}
LABELV $420
line 1518
;1517:
;1518:	trap_R_SetColor( color );
ADDRLP4 16
INDIRP4
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 1535
;1519:
;1520:	/*
;1521:	count = cg.rewardCount[0]/10;				// number of big rewards to draw
;1522:
;1523:	if (count) {
;1524:		y = 4;
;1525:		x = 320 - count * ICON_SIZE;
;1526:		for ( i = 0 ; i < count ; i++ ) {
;1527:			CG_DrawPic( x, y, (ICON_SIZE*2)-4, (ICON_SIZE*2)-4, cg.rewardShader[0] );
;1528:			x += (ICON_SIZE*2);
;1529:		}
;1530:	}
;1531:
;1532:	count = cg.rewardCount[0] - count*10;		// number of small rewards to draw
;1533:	*/
;1534:
;1535:	if ( cg.rewardCount[0] >= 10 ) {
ADDRGP4 cg+124432
INDIRI4
CNSTI4 10
LTI4 $444
line 1536
;1536:		y = 56;
ADDRLP4 8
CNSTF4 1113587712
ASGNF4
line 1537
;1537:		x = 320 - ICON_SIZE/2;
ADDRLP4 4
CNSTF4 1133772800
ASGNF4
line 1538
;1538:		CG_DrawPic( x, y, ICON_SIZE-4, ICON_SIZE-4, cg.rewardShader[0] );
ADDRLP4 4
INDIRF4
ARGF4
ADDRLP4 8
INDIRF4
ARGF4
ADDRLP4 56
CNSTF4 1110441984
ASGNF4
ADDRLP4 56
INDIRF4
ARGF4
ADDRLP4 56
INDIRF4
ARGF4
ADDRGP4 cg+124472
INDIRI4
ARGI4
ADDRGP4 CG_DrawPic
CALLV
pop
line 1539
;1539:		Com_sprintf(buf, sizeof(buf), "%d", cg.rewardCount[0]);
ADDRLP4 20
ARGP4
CNSTI4 32
ARGI4
ADDRGP4 $448
ARGP4
ADDRGP4 cg+124432
INDIRI4
ARGI4
ADDRGP4 Com_sprintf
CALLV
pop
line 1540
;1540:		x = ( SCREEN_WIDTH - SMALLCHAR_WIDTH * CG_DrawStrlen( buf ) ) / 2;
ADDRLP4 20
ARGP4
ADDRLP4 60
ADDRGP4 CG_DrawStrlen
CALLI4
ASGNI4
ADDRLP4 4
CNSTI4 640
ADDRLP4 60
INDIRI4
CNSTI4 3
LSHI4
SUBI4
CNSTI4 2
DIVI4
CVIF4 4
ASGNF4
line 1541
;1541:		CG_DrawStringExt( x, y+ICON_SIZE, buf, color, qfalse, qtrue,
ADDRLP4 4
INDIRF4
CVFI4 4
ARGI4
ADDRLP4 8
INDIRF4
CNSTF4 1111490560
ADDF4
CVFI4 4
ARGI4
ADDRLP4 20
ARGP4
ADDRLP4 16
INDIRP4
ARGP4
ADDRLP4 64
CNSTI4 0
ASGNI4
ADDRLP4 64
INDIRI4
ARGI4
CNSTI4 1
ARGI4
CNSTI4 8
ARGI4
CNSTI4 16
ARGI4
ADDRLP4 64
INDIRI4
ARGI4
ADDRGP4 CG_DrawStringExt
CALLV
pop
line 1543
;1542:								SMALLCHAR_WIDTH, SMALLCHAR_HEIGHT, 0 );
;1543:	}
ADDRGP4 $445
JUMPV
LABELV $444
line 1544
;1544:	else {
line 1546
;1545:
;1546:		count = cg.rewardCount[0];
ADDRLP4 12
ADDRGP4 cg+124432
INDIRI4
ASGNI4
line 1548
;1547:
;1548:		y = 56;
ADDRLP4 8
CNSTF4 1113587712
ASGNF4
line 1549
;1549:		x = 320 - count * ICON_SIZE/2;
ADDRLP4 4
CNSTI4 320
CNSTI4 48
ADDRLP4 12
INDIRI4
MULI4
CNSTI4 2
DIVI4
SUBI4
CVIF4 4
ASGNF4
line 1550
;1550:		for ( i = 0 ; i < count ; i++ ) {
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $454
JUMPV
LABELV $451
line 1551
;1551:			CG_DrawPic( x, y, ICON_SIZE-4, ICON_SIZE-4, cg.rewardShader[0] );
ADDRLP4 4
INDIRF4
ARGF4
ADDRLP4 8
INDIRF4
ARGF4
ADDRLP4 56
CNSTF4 1110441984
ASGNF4
ADDRLP4 56
INDIRF4
ARGF4
ADDRLP4 56
INDIRF4
ARGF4
ADDRGP4 cg+124472
INDIRI4
ARGI4
ADDRGP4 CG_DrawPic
CALLV
pop
line 1552
;1552:			x += ICON_SIZE;
ADDRLP4 4
ADDRLP4 4
INDIRF4
CNSTF4 1111490560
ADDF4
ASGNF4
line 1553
;1553:		}
LABELV $452
line 1550
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $454
ADDRLP4 0
INDIRI4
ADDRLP4 12
INDIRI4
LTI4 $451
line 1554
;1554:	}
LABELV $445
line 1555
;1555:	trap_R_SetColor( NULL );
CNSTP4 0
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 1556
;1556:}
LABELV $415
endproc CG_DrawReward 68 36
export CG_AddLagometerFrameInfo
proc CG_AddLagometerFrameInfo 8 0
line 1587
;1557:
;1558:
;1559:/*
;1560:===============================================================================
;1561:
;1562:LAGOMETER
;1563:
;1564:===============================================================================
;1565:*/
;1566:
;1567:#define	LAG_SAMPLES		128
;1568:
;1569:
;1570:typedef struct {
;1571:	int		frameSamples[LAG_SAMPLES];
;1572:	int		frameCount;
;1573:	int		snapshotFlags[LAG_SAMPLES];
;1574:	int		snapshotSamples[LAG_SAMPLES];
;1575:	int		snapshotCount;
;1576:} lagometer_t;
;1577:
;1578:lagometer_t		lagometer;
;1579:
;1580:/*
;1581:==============
;1582:CG_AddLagometerFrameInfo
;1583:
;1584:Adds the current interpolate / extrapolate bar for this frame
;1585:==============
;1586:*/
;1587:void CG_AddLagometerFrameInfo( void ) {
line 1590
;1588:	int			offset;
;1589:
;1590:	offset = cg.time - cg.latestSnapshotTime;
ADDRLP4 0
ADDRGP4 cg+107604
INDIRI4
ADDRGP4 cg+32
INDIRI4
SUBI4
ASGNI4
line 1591
;1591:	lagometer.frameSamples[ lagometer.frameCount & ( LAG_SAMPLES - 1) ] = offset;
ADDRGP4 lagometer+512
INDIRI4
CNSTI4 127
BANDI4
CNSTI4 2
LSHI4
ADDRGP4 lagometer
ADDP4
ADDRLP4 0
INDIRI4
ASGNI4
line 1592
;1592:	lagometer.frameCount++;
ADDRLP4 4
ADDRGP4 lagometer+512
ASGNP4
ADDRLP4 4
INDIRP4
ADDRLP4 4
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1593
;1593:}
LABELV $457
endproc CG_AddLagometerFrameInfo 8 0
export CG_AddLagometerSnapshotInfo
proc CG_AddLagometerSnapshotInfo 4 0
line 1605
;1594:
;1595:/*
;1596:==============
;1597:CG_AddLagometerSnapshotInfo
;1598:
;1599:Each time a snapshot is received, log its ping time and
;1600:the number of snapshots that were dropped before it.
;1601:
;1602:Pass NULL for a dropped packet.
;1603:==============
;1604:*/
;1605:void CG_AddLagometerSnapshotInfo( snapshot_t *snap ) {
line 1607
;1606:	// dropped packet
;1607:	if ( !snap ) {
ADDRFP4 0
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $463
line 1608
;1608:		lagometer.snapshotSamples[ lagometer.snapshotCount & ( LAG_SAMPLES - 1) ] = -1;
ADDRGP4 lagometer+1540
INDIRI4
CNSTI4 127
BANDI4
CNSTI4 2
LSHI4
ADDRGP4 lagometer+1028
ADDP4
CNSTI4 -1
ASGNI4
line 1609
;1609:		lagometer.snapshotCount++;
ADDRLP4 0
ADDRGP4 lagometer+1540
ASGNP4
ADDRLP4 0
INDIRP4
ADDRLP4 0
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1610
;1610:		return;
ADDRGP4 $462
JUMPV
LABELV $463
line 1614
;1611:	}
;1612:
;1613:	// add this snapshot's info
;1614:	lagometer.snapshotSamples[ lagometer.snapshotCount & ( LAG_SAMPLES - 1) ] = snap->ping;
ADDRGP4 lagometer+1540
INDIRI4
CNSTI4 127
BANDI4
CNSTI4 2
LSHI4
ADDRGP4 lagometer+1028
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ASGNI4
line 1615
;1615:	lagometer.snapshotFlags[ lagometer.snapshotCount & ( LAG_SAMPLES - 1) ] = snap->snapFlags;
ADDRGP4 lagometer+1540
INDIRI4
CNSTI4 127
BANDI4
CNSTI4 2
LSHI4
ADDRGP4 lagometer+516
ADDP4
ADDRFP4 0
INDIRP4
INDIRI4
ASGNI4
line 1616
;1616:	lagometer.snapshotCount++;
ADDRLP4 0
ADDRGP4 lagometer+1540
ASGNP4
ADDRLP4 0
INDIRP4
ADDRLP4 0
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1617
;1617:}
LABELV $462
endproc CG_AddLagometerSnapshotInfo 4 0
proc CG_DrawDisconnect 64 20
line 1626
;1618:
;1619:/*
;1620:==============
;1621:CG_DrawDisconnect
;1622:
;1623:Should we draw something differnet for long lag vs no packets?
;1624:==============
;1625:*/
;1626:static void CG_DrawDisconnect( void ) {
line 1634
;1627:	float		x, y;
;1628:	int			cmdNum;
;1629:	usercmd_t	cmd;
;1630:	const char		*s;
;1631:	int			w;  // bk010215 - FIXME char message[1024];
;1632:
;1633:	// draw the phone jack if we are completely past our buffers
;1634:	cmdNum = trap_GetCurrentCmdNumber() - CMD_BACKUP + 1;
ADDRLP4 44
ADDRGP4 trap_GetCurrentCmdNumber
CALLI4
ASGNI4
ADDRLP4 36
ADDRLP4 44
INDIRI4
CNSTI4 64
SUBI4
CNSTI4 1
ADDI4
ASGNI4
line 1635
;1635:	trap_GetUserCmd( cmdNum, &cmd );
ADDRLP4 36
INDIRI4
ARGI4
ADDRLP4 0
ARGP4
ADDRGP4 trap_GetUserCmd
CALLI4
pop
line 1636
;1636:	if ( cmd.serverTime <= cg.snap->ps.commandTime
ADDRLP4 48
ADDRLP4 0
INDIRI4
ASGNI4
ADDRLP4 48
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 44
ADDP4
INDIRI4
LEI4 $478
ADDRLP4 48
INDIRI4
ADDRGP4 cg+107604
INDIRI4
LEI4 $474
LABELV $478
line 1637
;1637:		|| cmd.serverTime > cg.time ) {	// special check for map_restart // bk 0102165 - FIXME
line 1638
;1638:		return;
ADDRGP4 $473
JUMPV
LABELV $474
line 1642
;1639:	}
;1640:
;1641:	// also add text in center of screen
;1642:	s = "Connection Interrupted"; // bk 010215 - FIXME
ADDRLP4 24
ADDRGP4 $479
ASGNP4
line 1643
;1643:	w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH;
ADDRLP4 24
INDIRP4
ARGP4
ADDRLP4 52
ADDRGP4 CG_DrawStrlen
CALLI4
ASGNI4
ADDRLP4 40
ADDRLP4 52
INDIRI4
CNSTI4 4
LSHI4
ASGNI4
line 1644
;1644:	CG_DrawBigString( 320 - w/2, 100, s, 1.0F);
CNSTI4 320
ADDRLP4 40
INDIRI4
CNSTI4 2
DIVI4
SUBI4
ARGI4
CNSTI4 100
ARGI4
ADDRLP4 24
INDIRP4
ARGP4
CNSTF4 1065353216
ARGF4
ADDRGP4 CG_DrawBigString
CALLV
pop
line 1647
;1645:
;1646:	// blink the icon
;1647:	if ( ( cg.time >> 9 ) & 1 ) {
ADDRGP4 cg+107604
INDIRI4
CNSTI4 9
RSHI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $480
line 1648
;1648:		return;
ADDRGP4 $473
JUMPV
LABELV $480
line 1651
;1649:	}
;1650:
;1651:	x = 640 - 48;
ADDRLP4 28
CNSTF4 1142161408
ASGNF4
line 1652
;1652:	y = 480 - 48;
ADDRLP4 32
CNSTF4 1138229248
ASGNF4
line 1654
;1653:
;1654:	CG_DrawPic( x, y, 48, 48, trap_R_RegisterShader("gfx/2d/net.tga" ) );
ADDRGP4 $483
ARGP4
ADDRLP4 56
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRLP4 28
INDIRF4
ARGF4
ADDRLP4 32
INDIRF4
ARGF4
ADDRLP4 60
CNSTF4 1111490560
ASGNF4
ADDRLP4 60
INDIRF4
ARGF4
ADDRLP4 60
INDIRF4
ARGF4
ADDRLP4 56
INDIRI4
ARGI4
ADDRGP4 CG_DrawPic
CALLV
pop
line 1655
;1655:}
LABELV $473
endproc CG_DrawDisconnect 64 20
proc CG_DrawLagometer 68 36
line 1666
;1656:
;1657:
;1658:#define	MAX_LAGOMETER_PING	900
;1659:#define	MAX_LAGOMETER_RANGE	300
;1660:
;1661:/*
;1662:==============
;1663:CG_DrawLagometer
;1664:==============
;1665:*/
;1666:static void CG_DrawLagometer( void ) {
line 1673
;1667:	int		a, x, y, i;
;1668:	float	v;
;1669:	float	ax, ay, aw, ah, mid, range;
;1670:	int		color;
;1671:	float	vscale;
;1672:
;1673:	if ( !cg_lagometer.integer || cgs.localServer ) {
ADDRLP4 52
CNSTI4 0
ASGNI4
ADDRGP4 cg_lagometer+12
INDIRI4
ADDRLP4 52
INDIRI4
EQI4 $489
ADDRGP4 cgs+31452
INDIRI4
ADDRLP4 52
INDIRI4
EQI4 $485
LABELV $489
line 1674
;1674:		CG_DrawDisconnect();
ADDRGP4 CG_DrawDisconnect
CALLV
pop
line 1675
;1675:		return;
ADDRGP4 $484
JUMPV
LABELV $485
line 1682
;1676:	}
;1677:
;1678:	//
;1679:	// draw the graph
;1680:	//
;1681:#ifdef MISSIONPACK
;1682:	x = 640 - 48;
ADDRLP4 44
CNSTI4 592
ASGNI4
line 1683
;1683:	y = 480 - 144;
ADDRLP4 48
CNSTI4 336
ASGNI4
line 1689
;1684:#else
;1685:	x = 640 - 48;
;1686:	y = 480 - 48;
;1687:#endif
;1688:
;1689:	trap_R_SetColor( NULL );
CNSTP4 0
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 1690
;1690:	CG_DrawPic( x, y, 48, 48, cgs.media.lagometerShader );
ADDRLP4 44
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 48
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 56
CNSTF4 1111490560
ASGNF4
ADDRLP4 56
INDIRF4
ARGF4
ADDRLP4 56
INDIRF4
ARGF4
ADDRGP4 cgs+152340+296
INDIRI4
ARGI4
ADDRGP4 CG_DrawPic
CALLV
pop
line 1692
;1691:
;1692:	ax = x;
ADDRLP4 24
ADDRLP4 44
INDIRI4
CVIF4 4
ASGNF4
line 1693
;1693:	ay = y;
ADDRLP4 36
ADDRLP4 48
INDIRI4
CVIF4 4
ASGNF4
line 1694
;1694:	aw = 48;
ADDRLP4 12
CNSTF4 1111490560
ASGNF4
line 1695
;1695:	ah = 48;
ADDRLP4 32
CNSTF4 1111490560
ASGNF4
line 1696
;1696:	CG_AdjustFrom640( &ax, &ay, &aw, &ah );
ADDRLP4 24
ARGP4
ADDRLP4 36
ARGP4
ADDRLP4 12
ARGP4
ADDRLP4 32
ARGP4
ADDRGP4 CG_AdjustFrom640
CALLV
pop
line 1698
;1697:
;1698:	color = -1;
ADDRLP4 20
CNSTI4 -1
ASGNI4
line 1699
;1699:	range = ah / 3;
ADDRLP4 16
ADDRLP4 32
INDIRF4
CNSTF4 1077936128
DIVF4
ASGNF4
line 1700
;1700:	mid = ay + range;
ADDRLP4 40
ADDRLP4 36
INDIRF4
ADDRLP4 16
INDIRF4
ADDF4
ASGNF4
line 1702
;1701:
;1702:	vscale = range / MAX_LAGOMETER_RANGE;
ADDRLP4 28
ADDRLP4 16
INDIRF4
CNSTF4 1133903872
DIVF4
ASGNF4
line 1705
;1703:
;1704:	// draw the frame interpoalte / extrapolate graph
;1705:	for ( a = 0 ; a < aw ; a++ ) {
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRGP4 $495
JUMPV
LABELV $492
line 1706
;1706:		i = ( lagometer.frameCount - 1 - a ) & (LAG_SAMPLES - 1);
ADDRLP4 8
ADDRGP4 lagometer+512
INDIRI4
CNSTI4 1
SUBI4
ADDRLP4 4
INDIRI4
SUBI4
CNSTI4 127
BANDI4
ASGNI4
line 1707
;1707:		v = lagometer.frameSamples[i];
ADDRLP4 0
ADDRLP4 8
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 lagometer
ADDP4
INDIRI4
CVIF4 4
ASGNF4
line 1708
;1708:		v *= vscale;
ADDRLP4 0
ADDRLP4 0
INDIRF4
ADDRLP4 28
INDIRF4
MULF4
ASGNF4
line 1709
;1709:		if ( v > 0 ) {
ADDRLP4 0
INDIRF4
CNSTF4 0
LEF4 $497
line 1710
;1710:			if ( color != 1 ) {
ADDRLP4 20
INDIRI4
CNSTI4 1
EQI4 $499
line 1711
;1711:				color = 1;
ADDRLP4 20
CNSTI4 1
ASGNI4
line 1712
;1712:				trap_R_SetColor( g_color_table[ColorIndex(COLOR_YELLOW)] );
ADDRGP4 g_color_table+48
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 1713
;1713:			}
LABELV $499
line 1714
;1714:			if ( v > range ) {
ADDRLP4 0
INDIRF4
ADDRLP4 16
INDIRF4
LEF4 $502
line 1715
;1715:				v = range;
ADDRLP4 0
ADDRLP4 16
INDIRF4
ASGNF4
line 1716
;1716:			}
LABELV $502
line 1717
;1717:			trap_R_DrawStretchPic ( ax + aw - a, mid - v, 1, v, 0, 0, 0, 0, cgs.media.whiteShader );
ADDRLP4 24
INDIRF4
ADDRLP4 12
INDIRF4
ADDF4
ADDRLP4 4
INDIRI4
CVIF4 4
SUBF4
ARGF4
ADDRLP4 40
INDIRF4
ADDRLP4 0
INDIRF4
SUBF4
ARGF4
CNSTF4 1065353216
ARGF4
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 64
CNSTF4 0
ASGNF4
ADDRLP4 64
INDIRF4
ARGF4
ADDRLP4 64
INDIRF4
ARGF4
ADDRLP4 64
INDIRF4
ARGF4
ADDRLP4 64
INDIRF4
ARGF4
ADDRGP4 cgs+152340+16
INDIRI4
ARGI4
ADDRGP4 trap_R_DrawStretchPic
CALLV
pop
line 1718
;1718:		} else if ( v < 0 ) {
ADDRGP4 $498
JUMPV
LABELV $497
ADDRLP4 0
INDIRF4
CNSTF4 0
GEF4 $506
line 1719
;1719:			if ( color != 2 ) {
ADDRLP4 20
INDIRI4
CNSTI4 2
EQI4 $508
line 1720
;1720:				color = 2;
ADDRLP4 20
CNSTI4 2
ASGNI4
line 1721
;1721:				trap_R_SetColor( g_color_table[ColorIndex(COLOR_BLUE)] );
ADDRGP4 g_color_table+64
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 1722
;1722:			}
LABELV $508
line 1723
;1723:			v = -v;
ADDRLP4 0
ADDRLP4 0
INDIRF4
NEGF4
ASGNF4
line 1724
;1724:			if ( v > range ) {
ADDRLP4 0
INDIRF4
ADDRLP4 16
INDIRF4
LEF4 $511
line 1725
;1725:				v = range;
ADDRLP4 0
ADDRLP4 16
INDIRF4
ASGNF4
line 1726
;1726:			}
LABELV $511
line 1727
;1727:			trap_R_DrawStretchPic( ax + aw - a, mid, 1, v, 0, 0, 0, 0, cgs.media.whiteShader );
ADDRLP4 24
INDIRF4
ADDRLP4 12
INDIRF4
ADDF4
ADDRLP4 4
INDIRI4
CVIF4 4
SUBF4
ARGF4
ADDRLP4 40
INDIRF4
ARGF4
CNSTF4 1065353216
ARGF4
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 60
CNSTF4 0
ASGNF4
ADDRLP4 60
INDIRF4
ARGF4
ADDRLP4 60
INDIRF4
ARGF4
ADDRLP4 60
INDIRF4
ARGF4
ADDRLP4 60
INDIRF4
ARGF4
ADDRGP4 cgs+152340+16
INDIRI4
ARGI4
ADDRGP4 trap_R_DrawStretchPic
CALLV
pop
line 1728
;1728:		}
LABELV $506
LABELV $498
line 1729
;1729:	}
LABELV $493
line 1705
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $495
ADDRLP4 4
INDIRI4
CVIF4 4
ADDRLP4 12
INDIRF4
LTF4 $492
line 1732
;1730:
;1731:	// draw the snapshot latency / drop graph
;1732:	range = ah / 2;
ADDRLP4 16
ADDRLP4 32
INDIRF4
CNSTF4 1073741824
DIVF4
ASGNF4
line 1733
;1733:	vscale = range / MAX_LAGOMETER_PING;
ADDRLP4 28
ADDRLP4 16
INDIRF4
CNSTF4 1147207680
DIVF4
ASGNF4
line 1735
;1734:
;1735:	for ( a = 0 ; a < aw ; a++ ) {
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRGP4 $518
JUMPV
LABELV $515
line 1736
;1736:		i = ( lagometer.snapshotCount - 1 - a ) & (LAG_SAMPLES - 1);
ADDRLP4 8
ADDRGP4 lagometer+1540
INDIRI4
CNSTI4 1
SUBI4
ADDRLP4 4
INDIRI4
SUBI4
CNSTI4 127
BANDI4
ASGNI4
line 1737
;1737:		v = lagometer.snapshotSamples[i];
ADDRLP4 0
ADDRLP4 8
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 lagometer+1028
ADDP4
INDIRI4
CVIF4 4
ASGNF4
line 1738
;1738:		if ( v > 0 ) {
ADDRLP4 0
INDIRF4
CNSTF4 0
LEF4 $521
line 1739
;1739:			if ( lagometer.snapshotFlags[i] & SNAPFLAG_RATE_DELAYED ) {
ADDRLP4 8
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 lagometer+516
ADDP4
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $523
line 1740
;1740:				if ( color != 5 ) {
ADDRLP4 20
INDIRI4
CNSTI4 5
EQI4 $524
line 1741
;1741:					color = 5;	// YELLOW for rate delay
ADDRLP4 20
CNSTI4 5
ASGNI4
line 1742
;1742:					trap_R_SetColor( g_color_table[ColorIndex(COLOR_YELLOW)] );
ADDRGP4 g_color_table+48
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 1743
;1743:				}
line 1744
;1744:			} else {
ADDRGP4 $524
JUMPV
LABELV $523
line 1745
;1745:				if ( color != 3 ) {
ADDRLP4 20
INDIRI4
CNSTI4 3
EQI4 $529
line 1746
;1746:					color = 3;
ADDRLP4 20
CNSTI4 3
ASGNI4
line 1747
;1747:					trap_R_SetColor( g_color_table[ColorIndex(COLOR_GREEN)] );
ADDRGP4 g_color_table+32
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 1748
;1748:				}
LABELV $529
line 1749
;1749:			}
LABELV $524
line 1750
;1750:			v = v * vscale;
ADDRLP4 0
ADDRLP4 0
INDIRF4
ADDRLP4 28
INDIRF4
MULF4
ASGNF4
line 1751
;1751:			if ( v > range ) {
ADDRLP4 0
INDIRF4
ADDRLP4 16
INDIRF4
LEF4 $532
line 1752
;1752:				v = range;
ADDRLP4 0
ADDRLP4 16
INDIRF4
ASGNF4
line 1753
;1753:			}
LABELV $532
line 1754
;1754:			trap_R_DrawStretchPic( ax + aw - a, ay + ah - v, 1, v, 0, 0, 0, 0, cgs.media.whiteShader );
ADDRLP4 24
INDIRF4
ADDRLP4 12
INDIRF4
ADDF4
ADDRLP4 4
INDIRI4
CVIF4 4
SUBF4
ARGF4
ADDRLP4 36
INDIRF4
ADDRLP4 32
INDIRF4
ADDF4
ADDRLP4 0
INDIRF4
SUBF4
ARGF4
CNSTF4 1065353216
ARGF4
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 64
CNSTF4 0
ASGNF4
ADDRLP4 64
INDIRF4
ARGF4
ADDRLP4 64
INDIRF4
ARGF4
ADDRLP4 64
INDIRF4
ARGF4
ADDRLP4 64
INDIRF4
ARGF4
ADDRGP4 cgs+152340+16
INDIRI4
ARGI4
ADDRGP4 trap_R_DrawStretchPic
CALLV
pop
line 1755
;1755:		} else if ( v < 0 ) {
ADDRGP4 $522
JUMPV
LABELV $521
ADDRLP4 0
INDIRF4
CNSTF4 0
GEF4 $536
line 1756
;1756:			if ( color != 4 ) {
ADDRLP4 20
INDIRI4
CNSTI4 4
EQI4 $538
line 1757
;1757:				color = 4;		// RED for dropped snapshots
ADDRLP4 20
CNSTI4 4
ASGNI4
line 1758
;1758:				trap_R_SetColor( g_color_table[ColorIndex(COLOR_RED)] );
ADDRGP4 g_color_table+16
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 1759
;1759:			}
LABELV $538
line 1760
;1760:			trap_R_DrawStretchPic( ax + aw - a, ay + ah - range, 1, range, 0, 0, 0, 0, cgs.media.whiteShader );
ADDRLP4 24
INDIRF4
ADDRLP4 12
INDIRF4
ADDF4
ADDRLP4 4
INDIRI4
CVIF4 4
SUBF4
ARGF4
ADDRLP4 36
INDIRF4
ADDRLP4 32
INDIRF4
ADDF4
ADDRLP4 16
INDIRF4
SUBF4
ARGF4
CNSTF4 1065353216
ARGF4
ADDRLP4 16
INDIRF4
ARGF4
ADDRLP4 64
CNSTF4 0
ASGNF4
ADDRLP4 64
INDIRF4
ARGF4
ADDRLP4 64
INDIRF4
ARGF4
ADDRLP4 64
INDIRF4
ARGF4
ADDRLP4 64
INDIRF4
ARGF4
ADDRGP4 cgs+152340+16
INDIRI4
ARGI4
ADDRGP4 trap_R_DrawStretchPic
CALLV
pop
line 1761
;1761:		}
LABELV $536
LABELV $522
line 1762
;1762:	}
LABELV $516
line 1735
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $518
ADDRLP4 4
INDIRI4
CVIF4 4
ADDRLP4 12
INDIRF4
LTF4 $515
line 1764
;1763:
;1764:	trap_R_SetColor( NULL );
CNSTP4 0
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 1766
;1765:
;1766:	if ( cg_nopredict.integer || cg_synchronousClients.integer ) {
ADDRLP4 60
CNSTI4 0
ASGNI4
ADDRGP4 cg_nopredict+12
INDIRI4
ADDRLP4 60
INDIRI4
NEI4 $547
ADDRGP4 cg_synchronousClients+12
INDIRI4
ADDRLP4 60
INDIRI4
EQI4 $543
LABELV $547
line 1767
;1767:		CG_DrawBigString( ax, ay, "snc", 1.0 );
ADDRLP4 24
INDIRF4
CVFI4 4
ARGI4
ADDRLP4 36
INDIRF4
CVFI4 4
ARGI4
ADDRGP4 $548
ARGP4
CNSTF4 1065353216
ARGF4
ADDRGP4 CG_DrawBigString
CALLV
pop
line 1768
;1768:	}
LABELV $543
line 1770
;1769:
;1770:	CG_DrawDisconnect();
ADDRGP4 CG_DrawDisconnect
CALLV
pop
line 1771
;1771:}
LABELV $484
endproc CG_DrawLagometer 68 36
export CG_CenterPrint
proc CG_CenterPrint 8 12
line 1792
;1772:
;1773:
;1774:
;1775:/*
;1776:===============================================================================
;1777:
;1778:CENTER PRINTING
;1779:
;1780:===============================================================================
;1781:*/
;1782:
;1783:
;1784:/*
;1785:==============
;1786:CG_CenterPrint
;1787:
;1788:Called for important messages that should stay in the center of the screen
;1789:for a few moments
;1790:==============
;1791:*/
;1792:void CG_CenterPrint( const char *str, int y, int charWidth ) {
line 1795
;1793:	char	*s;
;1794:
;1795:	Q_strncpyz( cg.centerPrint, str, sizeof(cg.centerPrint) );
ADDRGP4 cg+123364
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
CNSTI4 1024
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 1797
;1796:
;1797:	cg.centerPrintTime = cg.time;
ADDRGP4 cg+123352
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 1798
;1798:	cg.centerPrintY = y;
ADDRGP4 cg+123360
ADDRFP4 4
INDIRI4
ASGNI4
line 1799
;1799:	cg.centerPrintCharWidth = charWidth;
ADDRGP4 cg+123356
ADDRFP4 8
INDIRI4
ASGNI4
line 1802
;1800:
;1801:	// count the number of lines for centering
;1802:	cg.centerPrintLines = 1;
ADDRGP4 cg+124388
CNSTI4 1
ASGNI4
line 1803
;1803:	s = cg.centerPrint;
ADDRLP4 0
ADDRGP4 cg+123364
ASGNP4
ADDRGP4 $559
JUMPV
LABELV $558
line 1804
;1804:	while( *s ) {
line 1805
;1805:		if (*s == '\n')
ADDRLP4 0
INDIRP4
INDIRI1
CVII4 1
CNSTI4 10
NEI4 $561
line 1806
;1806:			cg.centerPrintLines++;
ADDRLP4 4
ADDRGP4 cg+124388
ASGNP4
ADDRLP4 4
INDIRP4
ADDRLP4 4
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $561
line 1807
;1807:		s++;
ADDRLP4 0
ADDRLP4 0
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
line 1808
;1808:	}
LABELV $559
line 1804
ADDRLP4 0
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $558
line 1809
;1809:}
LABELV $549
endproc CG_CenterPrint 8 12
proc CG_DrawCenterString 1068 32
line 1817
;1810:
;1811:
;1812:/*
;1813:===================
;1814:CG_DrawCenterString
;1815:===================
;1816:*/
;1817:static void CG_DrawCenterString( void ) {
line 1826
;1818:	char	*start;
;1819:	int		l;
;1820:	int		x, y, w;
;1821:#ifdef MISSIONPACK // bk010221 - unused else
;1822:  int h;
;1823:#endif
;1824:	float	*color;
;1825:
;1826:	if ( !cg.centerPrintTime ) {
ADDRGP4 cg+123352
INDIRI4
CNSTI4 0
NEI4 $565
line 1827
;1827:		return;
ADDRGP4 $564
JUMPV
LABELV $565
line 1830
;1828:	}
;1829:
;1830:	color = CG_FadeColor( cg.centerPrintTime, 1000 * cg_centertime.value );
ADDRGP4 cg+123352
INDIRI4
ARGI4
CNSTF4 1148846080
ADDRGP4 cg_centertime+8
INDIRF4
MULF4
CVFI4 4
ARGI4
ADDRLP4 28
ADDRGP4 CG_FadeColor
CALLP4
ASGNP4
ADDRLP4 24
ADDRLP4 28
INDIRP4
ASGNP4
line 1831
;1831:	if ( !color ) {
ADDRLP4 24
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $570
line 1832
;1832:		return;
ADDRGP4 $564
JUMPV
LABELV $570
line 1835
;1833:	}
;1834:
;1835:	trap_R_SetColor( color );
ADDRLP4 24
INDIRP4
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 1837
;1836:
;1837:	start = cg.centerPrint;
ADDRLP4 0
ADDRGP4 cg+123364
ASGNP4
line 1839
;1838:
;1839:	y = cg.centerPrintY - cg.centerPrintLines * BIGCHAR_HEIGHT / 2;
ADDRLP4 12
ADDRGP4 cg+123360
INDIRI4
ADDRGP4 cg+124388
INDIRI4
CNSTI4 4
LSHI4
CNSTI4 2
DIVI4
SUBI4
ASGNI4
ADDRGP4 $576
JUMPV
LABELV $575
line 1841
;1840:
;1841:	while ( 1 ) {
line 1844
;1842:		char linebuffer[1024];
;1843:
;1844:		for ( l = 0; l < 50; l++ ) {
ADDRLP4 4
CNSTI4 0
ASGNI4
LABELV $578
line 1845
;1845:			if ( !start[l] || start[l] == '\n' ) {
ADDRLP4 1056
ADDRLP4 4
INDIRI4
ADDRLP4 0
INDIRP4
ADDP4
INDIRI1
CVII4 1
ASGNI4
ADDRLP4 1056
INDIRI4
CNSTI4 0
EQI4 $584
ADDRLP4 1056
INDIRI4
CNSTI4 10
NEI4 $582
LABELV $584
line 1846
;1846:				break;
ADDRGP4 $580
JUMPV
LABELV $582
line 1848
;1847:			}
;1848:			linebuffer[l] = start[l];
ADDRLP4 4
INDIRI4
ADDRLP4 32
ADDP4
ADDRLP4 4
INDIRI4
ADDRLP4 0
INDIRP4
ADDP4
INDIRI1
ASGNI1
line 1849
;1849:		}
LABELV $579
line 1844
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 50
LTI4 $578
LABELV $580
line 1850
;1850:		linebuffer[l] = 0;
ADDRLP4 4
INDIRI4
ADDRLP4 32
ADDP4
CNSTI1 0
ASGNI1
line 1853
;1851:
;1852:#ifdef MISSIONPACK
;1853:		w = CG_Text_Width(linebuffer, 0.5, 0);
ADDRLP4 32
ARGP4
CNSTF4 1056964608
ARGF4
CNSTI4 0
ARGI4
ADDRLP4 1056
ADDRGP4 CG_Text_Width
CALLI4
ASGNI4
ADDRLP4 20
ADDRLP4 1056
INDIRI4
ASGNI4
line 1854
;1854:		h = CG_Text_Height(linebuffer, 0.5, 0);
ADDRLP4 32
ARGP4
CNSTF4 1056964608
ARGF4
CNSTI4 0
ARGI4
ADDRLP4 1060
ADDRGP4 CG_Text_Height
CALLI4
ASGNI4
ADDRLP4 8
ADDRLP4 1060
INDIRI4
ASGNI4
line 1855
;1855:		x = (SCREEN_WIDTH - w) / 2;
ADDRLP4 16
CNSTI4 640
ADDRLP4 20
INDIRI4
SUBI4
CNSTI4 2
DIVI4
ASGNI4
line 1856
;1856:		CG_Text_Paint(x, y + h, 0.5, color, linebuffer, 0, 0, ITEM_TEXTSTYLE_SHADOWEDMORE);
ADDRLP4 16
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 12
INDIRI4
ADDRLP4 8
INDIRI4
ADDI4
CVIF4 4
ARGF4
CNSTF4 1056964608
ARGF4
ADDRLP4 24
INDIRP4
ARGP4
ADDRLP4 32
ARGP4
CNSTF4 0
ARGF4
CNSTI4 0
ARGI4
CNSTI4 6
ARGI4
ADDRGP4 CG_Text_Paint
CALLV
pop
line 1857
;1857:		y += h + 6;
ADDRLP4 12
ADDRLP4 12
INDIRI4
ADDRLP4 8
INDIRI4
CNSTI4 6
ADDI4
ADDI4
ASGNI4
ADDRGP4 $586
JUMPV
LABELV $585
line 1868
;1858:#else
;1859:		w = cg.centerPrintCharWidth * CG_DrawStrlen( linebuffer );
;1860:
;1861:		x = ( SCREEN_WIDTH - w ) / 2;
;1862:
;1863:		CG_DrawStringExt( x, y, linebuffer, color, qfalse, qtrue,
;1864:			cg.centerPrintCharWidth, (int)(cg.centerPrintCharWidth * 1.5), 0 );
;1865:
;1866:		y += cg.centerPrintCharWidth * 1.5;
;1867:#endif
;1868:		while ( *start && ( *start != '\n' ) ) {
line 1869
;1869:			start++;
ADDRLP4 0
ADDRLP4 0
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
line 1870
;1870:		}
LABELV $586
line 1868
ADDRLP4 1064
ADDRLP4 0
INDIRP4
INDIRI1
CVII4 1
ASGNI4
ADDRLP4 1064
INDIRI4
CNSTI4 0
EQI4 $588
ADDRLP4 1064
INDIRI4
CNSTI4 10
NEI4 $585
LABELV $588
line 1871
;1871:		if ( !*start ) {
ADDRLP4 0
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $589
line 1872
;1872:			break;
ADDRGP4 $577
JUMPV
LABELV $589
line 1874
;1873:		}
;1874:		start++;
ADDRLP4 0
ADDRLP4 0
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
line 1875
;1875:	}
LABELV $576
line 1841
ADDRGP4 $575
JUMPV
LABELV $577
line 1877
;1876:
;1877:	trap_R_SetColor( NULL );
CNSTP4 0
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 1878
;1878:}
LABELV $564
endproc CG_DrawCenterString 1068 32
proc CG_DrawCrosshair 56 36
line 1896
;1879:
;1880:
;1881:
;1882:/*
;1883:================================================================================
;1884:
;1885:CROSSHAIR
;1886:
;1887:================================================================================
;1888:*/
;1889:
;1890:
;1891:/*
;1892:=================
;1893:CG_DrawCrosshair
;1894:=================
;1895:*/
;1896:static void CG_DrawCrosshair(void) {
line 1903
;1897:	float		w, h;
;1898:	qhandle_t	hShader;
;1899:	float		f;
;1900:	float		x, y;
;1901:	int			ca;
;1902:
;1903:	if ( !cg_drawCrosshair.integer ) {
ADDRGP4 cg_drawCrosshair+12
INDIRI4
CNSTI4 0
NEI4 $592
line 1904
;1904:		return;
ADDRGP4 $591
JUMPV
LABELV $592
line 1907
;1905:	}
;1906:
;1907:	if ( cg.snap->ps.persistant[PERS_TEAM] == TEAM_SPECTATOR) {
ADDRGP4 cg+36
INDIRP4
CNSTI4 304
ADDP4
INDIRI4
CNSTI4 3
NEI4 $595
line 1908
;1908:		return;
ADDRGP4 $591
JUMPV
LABELV $595
line 1911
;1909:	}
;1910:
;1911:	if ( cg.renderingThirdPerson ) {
ADDRGP4 cg+107628
INDIRI4
CNSTI4 0
EQI4 $598
line 1912
;1912:		return;
ADDRGP4 $591
JUMPV
LABELV $598
line 1916
;1913:	}
;1914:
;1915:	// set color based on health
;1916:	if ( cg_crosshairHealth.integer ) {
ADDRGP4 cg_crosshairHealth+12
INDIRI4
CNSTI4 0
EQI4 $601
line 1919
;1917:		vec4_t		hcolor;
;1918:
;1919:		CG_ColorForHealth( hcolor );
ADDRLP4 28
ARGP4
ADDRGP4 CG_ColorForHealth
CALLV
pop
line 1920
;1920:		trap_R_SetColor( hcolor );
ADDRLP4 28
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 1921
;1921:	} else {
ADDRGP4 $602
JUMPV
LABELV $601
line 1922
;1922:		trap_R_SetColor( NULL );
CNSTP4 0
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 1923
;1923:	}
LABELV $602
line 1925
;1924:
;1925:	w = h = cg_crosshairSize.value;
ADDRLP4 28
ADDRGP4 cg_crosshairSize+8
INDIRF4
ASGNF4
ADDRLP4 4
ADDRLP4 28
INDIRF4
ASGNF4
ADDRLP4 0
ADDRLP4 28
INDIRF4
ASGNF4
line 1928
;1926:
;1927:	// pulse the size of the crosshair when picking up items
;1928:	f = cg.time - cg.itemPickupBlendTime;
ADDRLP4 8
ADDRGP4 cg+107604
INDIRI4
ADDRGP4 cg+124672
INDIRI4
SUBI4
CVIF4 4
ASGNF4
line 1929
;1929:	if ( f > 0 && f < ITEM_BLOB_TIME ) {
ADDRLP4 8
INDIRF4
CNSTF4 0
LEF4 $607
ADDRLP4 8
INDIRF4
CNSTF4 1128792064
GEF4 $607
line 1930
;1930:		f /= ITEM_BLOB_TIME;
ADDRLP4 8
ADDRLP4 8
INDIRF4
CNSTF4 1128792064
DIVF4
ASGNF4
line 1931
;1931:		w *= ( 1 + f );
ADDRLP4 0
ADDRLP4 0
INDIRF4
ADDRLP4 8
INDIRF4
CNSTF4 1065353216
ADDF4
MULF4
ASGNF4
line 1932
;1932:		h *= ( 1 + f );
ADDRLP4 4
ADDRLP4 4
INDIRF4
ADDRLP4 8
INDIRF4
CNSTF4 1065353216
ADDF4
MULF4
ASGNF4
line 1933
;1933:	}
LABELV $607
line 1935
;1934:
;1935:	x = cg_crosshairX.integer;
ADDRLP4 16
ADDRGP4 cg_crosshairX+12
INDIRI4
CVIF4 4
ASGNF4
line 1936
;1936:	y = cg_crosshairY.integer;
ADDRLP4 20
ADDRGP4 cg_crosshairY+12
INDIRI4
CVIF4 4
ASGNF4
line 1937
;1937:	CG_AdjustFrom640( &x, &y, &w, &h );
ADDRLP4 16
ARGP4
ADDRLP4 20
ARGP4
ADDRLP4 0
ARGP4
ADDRLP4 4
ARGP4
ADDRGP4 CG_AdjustFrom640
CALLV
pop
line 1939
;1938:
;1939:	ca = cg_drawCrosshair.integer;
ADDRLP4 12
ADDRGP4 cg_drawCrosshair+12
INDIRI4
ASGNI4
line 1940
;1940:	if (ca < 0) {
ADDRLP4 12
INDIRI4
CNSTI4 0
GEI4 $612
line 1941
;1941:		ca = 0;
ADDRLP4 12
CNSTI4 0
ASGNI4
line 1942
;1942:	}
LABELV $612
line 1943
;1943:	hShader = cgs.media.crosshairShader[ ca % NUM_CROSSHAIRS ];
ADDRLP4 24
ADDRLP4 12
INDIRI4
CNSTI4 10
MODI4
CNSTI4 2
LSHI4
ADDRGP4 cgs+152340+256
ADDP4
INDIRI4
ASGNI4
line 1945
;1944:
;1945:	trap_R_DrawStretchPic( x + cg.refdef.x + 0.5 * (cg.refdef.width - w), 
ADDRLP4 36
CNSTF4 1056964608
ASGNF4
ADDRLP4 40
ADDRLP4 0
INDIRF4
ASGNF4
ADDRLP4 16
INDIRF4
ADDRGP4 cg+109044
INDIRI4
CVIF4 4
ADDF4
ADDRLP4 36
INDIRF4
ADDRGP4 cg+109044+8
INDIRI4
CVIF4 4
ADDRLP4 40
INDIRF4
SUBF4
MULF4
ADDF4
ARGF4
ADDRLP4 44
ADDRLP4 4
INDIRF4
ASGNF4
ADDRLP4 20
INDIRF4
ADDRGP4 cg+109044+4
INDIRI4
CVIF4 4
ADDF4
ADDRLP4 36
INDIRF4
ADDRGP4 cg+109044+12
INDIRI4
CVIF4 4
ADDRLP4 44
INDIRF4
SUBF4
MULF4
ADDF4
ARGF4
ADDRLP4 40
INDIRF4
ARGF4
ADDRLP4 44
INDIRF4
ARGF4
ADDRLP4 48
CNSTF4 0
ASGNF4
ADDRLP4 48
INDIRF4
ARGF4
ADDRLP4 48
INDIRF4
ARGF4
ADDRLP4 52
CNSTF4 1065353216
ASGNF4
ADDRLP4 52
INDIRF4
ARGF4
ADDRLP4 52
INDIRF4
ARGF4
ADDRLP4 24
INDIRI4
ARGI4
ADDRGP4 trap_R_DrawStretchPic
CALLV
pop
line 1948
;1946:		y + cg.refdef.y + 0.5 * (cg.refdef.height - h), 
;1947:		w, h, 0, 0, 1, 1, hShader );
;1948:}
LABELV $591
endproc CG_DrawCrosshair 56 36
proc CG_ScanForCrosshairEntity 96 28
line 1957
;1949:
;1950:
;1951:
;1952:/*
;1953:=================
;1954:CG_ScanForCrosshairEntity
;1955:=================
;1956:*/
;1957:static void CG_ScanForCrosshairEntity( void ) {
line 1962
;1958:	trace_t		trace;
;1959:	vec3_t		start, end;
;1960:	int			content;
;1961:
;1962:	VectorCopy( cg.refdef.vieworg, start );
ADDRLP4 56
ADDRGP4 cg+109044+24
INDIRB
ASGNB 12
line 1963
;1963:	VectorMA( start, 131072, cg.refdef.viewaxis[0], end );
ADDRLP4 84
CNSTF4 1207959552
ASGNF4
ADDRLP4 68
ADDRLP4 56
INDIRF4
ADDRLP4 84
INDIRF4
ADDRGP4 cg+109044+36
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 68+4
ADDRLP4 56+4
INDIRF4
ADDRLP4 84
INDIRF4
ADDRGP4 cg+109044+36+4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 68+8
ADDRLP4 56+8
INDIRF4
CNSTF4 1207959552
ADDRGP4 cg+109044+36+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 1965
;1964:
;1965:	CG_Trace( &trace, start, vec3_origin, vec3_origin, end, 
ADDRLP4 0
ARGP4
ADDRLP4 56
ARGP4
ADDRLP4 88
ADDRGP4 vec3_origin
ASGNP4
ADDRLP4 88
INDIRP4
ARGP4
ADDRLP4 88
INDIRP4
ARGP4
ADDRLP4 68
ARGP4
ADDRGP4 cg+36
INDIRP4
CNSTI4 184
ADDP4
INDIRI4
ARGI4
CNSTI4 33554433
ARGI4
ADDRGP4 CG_Trace
CALLV
pop
line 1967
;1966:		cg.snap->ps.clientNum, CONTENTS_SOLID|CONTENTS_BODY );
;1967:	if ( trace.entityNum >= MAX_CLIENTS ) {
ADDRLP4 0+52
INDIRI4
CNSTI4 64
LTI4 $639
line 1968
;1968:		return;
ADDRGP4 $623
JUMPV
LABELV $639
line 1972
;1969:	}
;1970:
;1971:	// if the player is in fog, don't show it
;1972:	content = trap_CM_PointContents( trace.endpos, 0 );
ADDRLP4 0+12
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 92
ADDRGP4 trap_CM_PointContents
CALLI4
ASGNI4
ADDRLP4 80
ADDRLP4 92
INDIRI4
ASGNI4
line 1973
;1973:	if ( content & CONTENTS_FOG ) {
ADDRLP4 80
INDIRI4
CNSTI4 64
BANDI4
CNSTI4 0
EQI4 $643
line 1974
;1974:		return;
ADDRGP4 $623
JUMPV
LABELV $643
line 1978
;1975:	}
;1976:
;1977:	// if the player is invisible, don't show it
;1978:	if ( cg_entities[ trace.entityNum ].currentState.powerups & ( 1 << PW_INVIS ) ) {
CNSTI4 728
ADDRLP4 0+52
INDIRI4
MULI4
ADDRGP4 cg_entities+188
ADDP4
INDIRI4
CNSTI4 16
BANDI4
CNSTI4 0
EQI4 $645
line 1979
;1979:		return;
ADDRGP4 $623
JUMPV
LABELV $645
line 1983
;1980:	}
;1981:
;1982:	// update the fade timer
;1983:	cg.crosshairClientNum = trace.entityNum;
ADDRGP4 cg+124400
ADDRLP4 0+52
INDIRI4
ASGNI4
line 1984
;1984:	cg.crosshairClientTime = cg.time;
ADDRGP4 cg+124404
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 1985
;1985:}
LABELV $623
endproc CG_ScanForCrosshairEntity 96 28
proc CG_DrawCrosshairNames 24 32
line 1993
;1986:
;1987:
;1988:/*
;1989:=====================
;1990:CG_DrawCrosshairNames
;1991:=====================
;1992:*/
;1993:static void CG_DrawCrosshairNames( void ) {
line 1998
;1994:	float		*color;
;1995:	char		*name;
;1996:	float		w;
;1997:
;1998:	if ( !cg_drawCrosshair.integer ) {
ADDRGP4 cg_drawCrosshair+12
INDIRI4
CNSTI4 0
NEI4 $654
line 1999
;1999:		return;
ADDRGP4 $653
JUMPV
LABELV $654
line 2001
;2000:	}
;2001:	if ( !cg_drawCrosshairNames.integer ) {
ADDRGP4 cg_drawCrosshairNames+12
INDIRI4
CNSTI4 0
NEI4 $657
line 2002
;2002:		return;
ADDRGP4 $653
JUMPV
LABELV $657
line 2004
;2003:	}
;2004:	if ( cg.renderingThirdPerson ) {
ADDRGP4 cg+107628
INDIRI4
CNSTI4 0
EQI4 $660
line 2005
;2005:		return;
ADDRGP4 $653
JUMPV
LABELV $660
line 2009
;2006:	}
;2007:
;2008:	// scan the known entities to see if the crosshair is sighted on one
;2009:	CG_ScanForCrosshairEntity();
ADDRGP4 CG_ScanForCrosshairEntity
CALLV
pop
line 2012
;2010:
;2011:	// draw the name of the player being looked at
;2012:	color = CG_FadeColor( cg.crosshairClientTime, 1000 );
ADDRGP4 cg+124404
INDIRI4
ARGI4
CNSTI4 1000
ARGI4
ADDRLP4 12
ADDRGP4 CG_FadeColor
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 12
INDIRP4
ASGNP4
line 2013
;2013:	if ( !color ) {
ADDRLP4 0
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $664
line 2014
;2014:		trap_R_SetColor( NULL );
CNSTP4 0
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 2015
;2015:		return;
ADDRGP4 $653
JUMPV
LABELV $664
line 2018
;2016:	}
;2017:
;2018:	name = cgs.clientinfo[ cg.crosshairClientNum ].name;
ADDRLP4 4
CNSTI4 1708
ADDRGP4 cg+124400
INDIRI4
MULI4
ADDRGP4 cgs+40972+4
ADDP4
ASGNP4
line 2020
;2019:#ifdef MISSIONPACK
;2020:	color[3] *= 0.5f;
ADDRLP4 16
ADDRLP4 0
INDIRP4
CNSTI4 12
ADDP4
ASGNP4
ADDRLP4 16
INDIRP4
CNSTF4 1056964608
ADDRLP4 16
INDIRP4
INDIRF4
MULF4
ASGNF4
line 2021
;2021:	w = CG_Text_Width(name, 0.3f, 0);
ADDRLP4 4
INDIRP4
ARGP4
CNSTF4 1050253722
ARGF4
CNSTI4 0
ARGI4
ADDRLP4 20
ADDRGP4 CG_Text_Width
CALLI4
ASGNI4
ADDRLP4 8
ADDRLP4 20
INDIRI4
CVIF4 4
ASGNF4
line 2022
;2022:	CG_Text_Paint( 320 - w / 2, 190, 0.3f, color, name, 0, 0, ITEM_TEXTSTYLE_SHADOWED);
CNSTF4 1134559232
ADDRLP4 8
INDIRF4
CNSTF4 1073741824
DIVF4
SUBF4
ARGF4
CNSTF4 1128136704
ARGF4
CNSTF4 1050253722
ARGF4
ADDRLP4 0
INDIRP4
ARGP4
ADDRLP4 4
INDIRP4
ARGP4
CNSTF4 0
ARGF4
CNSTI4 0
ARGI4
CNSTI4 3
ARGI4
ADDRGP4 CG_Text_Paint
CALLV
pop
line 2027
;2023:#else
;2024:	w = CG_DrawStrlen( name ) * BIGCHAR_WIDTH;
;2025:	CG_DrawBigString( 320 - w / 2, 170, name, color[3] * 0.5f );
;2026:#endif
;2027:	trap_R_SetColor( NULL );
CNSTP4 0
ARGP4
ADDRGP4 trap_R_SetColor
CALLV
pop
line 2028
;2028:}
LABELV $653
endproc CG_DrawCrosshairNames 24 32
proc CG_DrawSpectator 0 16
line 2038
;2029:
;2030:
;2031://==============================================================================
;2032:
;2033:/*
;2034:=================
;2035:CG_DrawSpectator
;2036:=================
;2037:*/
;2038:static void CG_DrawSpectator(void) {
line 2039
;2039:	CG_DrawBigString(320 - 9 * 8, 440, "SPECTATOR", 1.0F);
CNSTI4 248
ARGI4
CNSTI4 440
ARGI4
ADDRGP4 $670
ARGP4
CNSTF4 1065353216
ARGF4
ADDRGP4 CG_DrawBigString
CALLV
pop
line 2040
;2040:	if ( cgs.gametype == GT_TOURNAMENT ) {
ADDRGP4 cgs+31456
INDIRI4
CNSTI4 1
NEI4 $671
line 2041
;2041:		CG_DrawBigString(320 - 15 * 8, 460, "waiting to play", 1.0F);
CNSTI4 200
ARGI4
CNSTI4 460
ARGI4
ADDRGP4 $674
ARGP4
CNSTF4 1065353216
ARGF4
ADDRGP4 CG_DrawBigString
CALLV
pop
line 2042
;2042:	}
ADDRGP4 $672
JUMPV
LABELV $671
line 2043
;2043:	else if ( cgs.gametype >= GT_TEAM ) {
ADDRGP4 cgs+31456
INDIRI4
CNSTI4 3
LTI4 $675
line 2044
;2044:		CG_DrawBigString(320 - 39 * 8, 460, "press ESC and use the JOIN menu to play", 1.0F);
CNSTI4 8
ARGI4
CNSTI4 460
ARGI4
ADDRGP4 $678
ARGP4
CNSTF4 1065353216
ARGF4
ADDRGP4 CG_DrawBigString
CALLV
pop
line 2045
;2045:	}
LABELV $675
LABELV $672
line 2046
;2046:}
LABELV $669
endproc CG_DrawSpectator 0 16
proc CG_DrawVote 12 20
line 2053
;2047:
;2048:/*
;2049:=================
;2050:CG_DrawVote
;2051:=================
;2052:*/
;2053:static void CG_DrawVote(void) {
line 2057
;2054:	char	*s;
;2055:	int		sec;
;2056:
;2057:	if ( !cgs.voteTime ) {
ADDRGP4 cgs+31676
INDIRI4
CNSTI4 0
NEI4 $680
line 2058
;2058:		return;
ADDRGP4 $679
JUMPV
LABELV $680
line 2062
;2059:	}
;2060:
;2061:	// play a talk beep whenever it is modified
;2062:	if ( cgs.voteModified ) {
ADDRGP4 cgs+31688
INDIRI4
CNSTI4 0
EQI4 $683
line 2063
;2063:		cgs.voteModified = qfalse;
ADDRGP4 cgs+31688
CNSTI4 0
ASGNI4
line 2064
;2064:		trap_S_StartLocalSound( cgs.media.talkSound, CHAN_LOCAL_SOUND );
ADDRGP4 cgs+152340+908
INDIRI4
ARGI4
CNSTI4 6
ARGI4
ADDRGP4 trap_S_StartLocalSound
CALLV
pop
line 2065
;2065:	}
LABELV $683
line 2067
;2066:
;2067:	sec = ( VOTE_TIME - ( cg.time - cgs.voteTime ) ) / 1000;
ADDRLP4 4
CNSTI4 30000
ADDRGP4 cg+107604
INDIRI4
ADDRGP4 cgs+31676
INDIRI4
SUBI4
SUBI4
CNSTI4 1000
DIVI4
ASGNI4
line 2068
;2068:	if ( sec < 0 ) {
ADDRLP4 4
INDIRI4
CNSTI4 0
GEI4 $691
line 2069
;2069:		sec = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
line 2070
;2070:	}
LABELV $691
line 2072
;2071:#ifdef MISSIONPACK
;2072:	s = va("VOTE(%i):%s yes:%i no:%i", sec, cgs.voteString, cgs.voteYes, cgs.voteNo);
ADDRGP4 $693
ARGP4
ADDRLP4 4
INDIRI4
ARGI4
ADDRGP4 cgs+31692
ARGP4
ADDRGP4 cgs+31680
INDIRI4
ARGI4
ADDRGP4 cgs+31684
INDIRI4
ARGI4
ADDRLP4 8
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 8
INDIRP4
ASGNP4
line 2073
;2073:	CG_DrawSmallString( 0, 58, s, 1.0F );
CNSTI4 0
ARGI4
CNSTI4 58
ARGI4
ADDRLP4 0
INDIRP4
ARGP4
CNSTF4 1065353216
ARGF4
ADDRGP4 CG_DrawSmallString
CALLV
pop
line 2074
;2074:	s = "or press ESC then click Vote";
ADDRLP4 0
ADDRGP4 $697
ASGNP4
line 2075
;2075:	CG_DrawSmallString( 0, 58 + SMALLCHAR_HEIGHT + 2, s, 1.0F );
CNSTI4 0
ARGI4
CNSTI4 76
ARGI4
ADDRLP4 0
INDIRP4
ARGP4
CNSTF4 1065353216
ARGF4
ADDRGP4 CG_DrawSmallString
CALLV
pop
line 2080
;2076:#else
;2077:	s = va("VOTE(%i):%s yes:%i no:%i", sec, cgs.voteString, cgs.voteYes, cgs.voteNo );
;2078:	CG_DrawSmallString( 0, 58, s, 1.0F );
;2079:#endif
;2080:}
LABELV $679
endproc CG_DrawVote 12 20
proc CG_DrawTeamVote 24 20
line 2087
;2081:
;2082:/*
;2083:=================
;2084:CG_DrawTeamVote
;2085:=================
;2086:*/
;2087:static void CG_DrawTeamVote(void) {
line 2091
;2088:	char	*s;
;2089:	int		sec, cs_offset;
;2090:
;2091:	if ( cgs.clientinfo->team == TEAM_RED )
ADDRGP4 cgs+40972+68
INDIRI4
CNSTI4 1
NEI4 $699
line 2092
;2092:		cs_offset = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $700
JUMPV
LABELV $699
line 2093
;2093:	else if ( cgs.clientinfo->team == TEAM_BLUE )
ADDRGP4 cgs+40972+68
INDIRI4
CNSTI4 2
NEI4 $698
line 2094
;2094:		cs_offset = 1;
ADDRLP4 0
CNSTI4 1
ASGNI4
line 2096
;2095:	else
;2096:		return;
LABELV $704
LABELV $700
line 2098
;2097:
;2098:	if ( !cgs.teamVoteTime[cs_offset] ) {
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 cgs+32716
ADDP4
INDIRI4
CNSTI4 0
NEI4 $707
line 2099
;2099:		return;
ADDRGP4 $698
JUMPV
LABELV $707
line 2103
;2100:	}
;2101:
;2102:	// play a talk beep whenever it is modified
;2103:	if ( cgs.teamVoteModified[cs_offset] ) {
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 cgs+32740
ADDP4
INDIRI4
CNSTI4 0
EQI4 $710
line 2104
;2104:		cgs.teamVoteModified[cs_offset] = qfalse;
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 cgs+32740
ADDP4
CNSTI4 0
ASGNI4
line 2105
;2105:		trap_S_StartLocalSound( cgs.media.talkSound, CHAN_LOCAL_SOUND );
ADDRGP4 cgs+152340+908
INDIRI4
ARGI4
CNSTI4 6
ARGI4
ADDRGP4 trap_S_StartLocalSound
CALLV
pop
line 2106
;2106:	}
LABELV $710
line 2108
;2107:
;2108:	sec = ( VOTE_TIME - ( cg.time - cgs.teamVoteTime[cs_offset] ) ) / 1000;
ADDRLP4 4
CNSTI4 30000
ADDRGP4 cg+107604
INDIRI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 cgs+32716
ADDP4
INDIRI4
SUBI4
SUBI4
CNSTI4 1000
DIVI4
ASGNI4
line 2109
;2109:	if ( sec < 0 ) {
ADDRLP4 4
INDIRI4
CNSTI4 0
GEI4 $718
line 2110
;2110:		sec = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
line 2111
;2111:	}
LABELV $718
line 2112
;2112:	s = va("TEAMVOTE(%i):%s yes:%i no:%i", sec, cgs.teamVoteString[cs_offset],
ADDRGP4 $720
ARGP4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 0
INDIRI4
CNSTI4 10
LSHI4
ADDRGP4 cgs+32748
ADDP4
ARGP4
ADDRLP4 16
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 16
INDIRI4
ADDRGP4 cgs+32724
ADDP4
INDIRI4
ARGI4
ADDRLP4 16
INDIRI4
ADDRGP4 cgs+32732
ADDP4
INDIRI4
ARGI4
ADDRLP4 20
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 8
ADDRLP4 20
INDIRP4
ASGNP4
line 2114
;2113:							cgs.teamVoteYes[cs_offset], cgs.teamVoteNo[cs_offset] );
;2114:	CG_DrawSmallString( 0, 90, s, 1.0F );
CNSTI4 0
ARGI4
CNSTI4 90
ARGI4
ADDRLP4 8
INDIRP4
ARGP4
CNSTF4 1065353216
ARGF4
ADDRGP4 CG_DrawSmallString
CALLV
pop
line 2115
;2115:}
LABELV $698
endproc CG_DrawTeamVote 24 20
data
align 4
LABELV $725
byte 4 1
code
proc CG_DrawScoreboard 20 8
line 2118
;2116:
;2117:
;2118:static qboolean CG_DrawScoreboard() {
line 2123
;2119:#ifdef MISSIONPACK
;2120:	static qboolean firstTime = qtrue;
;2121:	float fade, *fadeColor;
;2122:
;2123:	if (menuScoreboard) {
ADDRGP4 menuScoreboard
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $726
line 2124
;2124:		menuScoreboard->window.flags &= ~WINDOW_FORCED;
ADDRLP4 8
ADDRGP4 menuScoreboard
INDIRP4
CNSTI4 68
ADDP4
ASGNP4
ADDRLP4 8
INDIRP4
ADDRLP4 8
INDIRP4
INDIRI4
CNSTI4 -1048577
BANDI4
ASGNI4
line 2125
;2125:	}
LABELV $726
line 2126
;2126:	if (cg_paused.integer) {
ADDRGP4 cg_paused+12
INDIRI4
CNSTI4 0
EQI4 $728
line 2127
;2127:		cg.deferredPlayerLoading = 0;
ADDRGP4 cg+16
CNSTI4 0
ASGNI4
line 2128
;2128:		firstTime = qtrue;
ADDRGP4 $725
CNSTI4 1
ASGNI4
line 2129
;2129:		return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $724
JUMPV
LABELV $728
line 2133
;2130:	}
;2131:
;2132:	// should never happen in Team Arena
;2133:	if (cgs.gametype == GT_SINGLE_PLAYER && cg.predictedPlayerState.pm_type == PM_INTERMISSION ) {
ADDRGP4 cgs+31456
INDIRI4
CNSTI4 2
NEI4 $732
ADDRGP4 cg+107636+4
INDIRI4
CNSTI4 5
NEI4 $732
line 2134
;2134:		cg.deferredPlayerLoading = 0;
ADDRGP4 cg+16
CNSTI4 0
ASGNI4
line 2135
;2135:		firstTime = qtrue;
ADDRGP4 $725
CNSTI4 1
ASGNI4
line 2136
;2136:		return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $724
JUMPV
LABELV $732
line 2140
;2137:	}
;2138:
;2139:	// don't draw scoreboard during death while warmup up
;2140:	if ( cg.warmup && !cg.showScores ) {
ADDRLP4 8
CNSTI4 0
ASGNI4
ADDRGP4 cg+124656
INDIRI4
ADDRLP4 8
INDIRI4
EQI4 $738
ADDRGP4 cg+114320
INDIRI4
ADDRLP4 8
INDIRI4
NEI4 $738
line 2141
;2141:		return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $724
JUMPV
LABELV $738
line 2144
;2142:	}
;2143:
;2144:	if ( cg.showScores || cg.predictedPlayerState.pm_type == PM_DEAD || cg.predictedPlayerState.pm_type == PM_INTERMISSION ) {
ADDRGP4 cg+114320
INDIRI4
CNSTI4 0
NEI4 $750
ADDRGP4 cg+107636+4
INDIRI4
CNSTI4 3
EQI4 $750
ADDRGP4 cg+107636+4
INDIRI4
CNSTI4 5
NEI4 $742
LABELV $750
line 2145
;2145:		fade = 1.0;
ADDRLP4 4
CNSTF4 1065353216
ASGNF4
line 2146
;2146:		fadeColor = colorWhite;
ADDRLP4 0
ADDRGP4 colorWhite
ASGNP4
line 2147
;2147:	} else {
ADDRGP4 $743
JUMPV
LABELV $742
line 2148
;2148:		fadeColor = CG_FadeColor( cg.scoreFadeTime, FADE_TIME );
ADDRGP4 cg+114328
INDIRI4
ARGI4
CNSTI4 200
ARGI4
ADDRLP4 12
ADDRGP4 CG_FadeColor
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 12
INDIRP4
ASGNP4
line 2149
;2149:		if ( !fadeColor ) {
ADDRLP4 0
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $752
line 2151
;2150:			// next time scoreboard comes up, don't print killer
;2151:			cg.deferredPlayerLoading = 0;
ADDRGP4 cg+16
CNSTI4 0
ASGNI4
line 2152
;2152:			cg.killerName[0] = 0;
ADDRGP4 cg+114332
CNSTI1 0
ASGNI1
line 2153
;2153:			firstTime = qtrue;
ADDRGP4 $725
CNSTI4 1
ASGNI4
line 2154
;2154:			return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $724
JUMPV
LABELV $752
line 2156
;2155:		}
;2156:		fade = *fadeColor;
ADDRLP4 4
ADDRLP4 0
INDIRP4
INDIRF4
ASGNF4
line 2157
;2157:	}																					  
LABELV $743
line 2160
;2158:
;2159:
;2160:	if (menuScoreboard == NULL) {
ADDRGP4 menuScoreboard
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $756
line 2161
;2161:		if ( cgs.gametype >= GT_TEAM ) {
ADDRGP4 cgs+31456
INDIRI4
CNSTI4 3
LTI4 $758
line 2162
;2162:			menuScoreboard = Menus_FindByName("teamscore_menu");
ADDRGP4 $761
ARGP4
ADDRLP4 12
ADDRGP4 Menus_FindByName
CALLP4
ASGNP4
ADDRGP4 menuScoreboard
ADDRLP4 12
INDIRP4
ASGNP4
line 2163
;2163:		} else {
ADDRGP4 $759
JUMPV
LABELV $758
line 2164
;2164:			menuScoreboard = Menus_FindByName("score_menu");
ADDRGP4 $762
ARGP4
ADDRLP4 12
ADDRGP4 Menus_FindByName
CALLP4
ASGNP4
ADDRGP4 menuScoreboard
ADDRLP4 12
INDIRP4
ASGNP4
line 2165
;2165:		}
LABELV $759
line 2166
;2166:	}
LABELV $756
line 2168
;2167:
;2168:	if (menuScoreboard) {
ADDRGP4 menuScoreboard
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $763
line 2169
;2169:		if (firstTime) {
ADDRGP4 $725
INDIRI4
CNSTI4 0
EQI4 $765
line 2170
;2170:			CG_SetScoreSelection(menuScoreboard);
ADDRGP4 menuScoreboard
INDIRP4
ARGP4
ADDRGP4 CG_SetScoreSelection
CALLV
pop
line 2171
;2171:			firstTime = qfalse;
ADDRGP4 $725
CNSTI4 0
ASGNI4
line 2172
;2172:		}
LABELV $765
line 2173
;2173:		Menu_Paint(menuScoreboard, qtrue);
ADDRGP4 menuScoreboard
INDIRP4
ARGP4
CNSTI4 1
ARGI4
ADDRGP4 Menu_Paint
CALLV
pop
line 2174
;2174:	}
LABELV $763
line 2177
;2175:
;2176:	// load any models that have been deferred
;2177:	if ( ++cg.deferredPlayerLoading > 10 ) {
ADDRLP4 12
ADDRGP4 cg+16
ASGNP4
ADDRLP4 16
ADDRLP4 12
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 12
INDIRP4
ADDRLP4 16
INDIRI4
ASGNI4
ADDRLP4 16
INDIRI4
CNSTI4 10
LEI4 $767
line 2178
;2178:		CG_LoadDeferredPlayers();
ADDRGP4 CG_LoadDeferredPlayers
CALLV
pop
line 2179
;2179:	}
LABELV $767
line 2181
;2180:
;2181:	return qtrue;
CNSTI4 1
RETI4
LABELV $724
endproc CG_DrawScoreboard 20 8
proc CG_DrawIntermission 4 0
line 2192
;2182:#else
;2183:	return CG_DrawOldScoreboard();
;2184:#endif
;2185:}
;2186:
;2187:/*
;2188:=================
;2189:CG_DrawIntermission
;2190:=================
;2191:*/
;2192:static void CG_DrawIntermission( void ) {
line 2205
;2193://	int key;
;2194:#ifdef MISSIONPACK
;2195:	//if (cg_singlePlayer.integer) {
;2196:	//	CG_DrawCenterString();
;2197:	//	return;
;2198:	//}
;2199:#else
;2200:	if ( cgs.gametype == GT_SINGLE_PLAYER ) {
;2201:		CG_DrawCenterString();
;2202:		return;
;2203:	}
;2204:#endif
;2205:	cg.scoreFadeTime = cg.time;
ADDRGP4 cg+114328
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 2206
;2206:	cg.scoreBoardShowing = CG_DrawScoreboard();
ADDRLP4 0
ADDRGP4 CG_DrawScoreboard
CALLI4
ASGNI4
ADDRGP4 cg+114324
ADDRLP4 0
INDIRI4
ASGNI4
line 2207
;2207:}
LABELV $770
endproc CG_DrawIntermission 4 0
proc CG_DrawFollow 32 36
line 2214
;2208:
;2209:/*
;2210:=================
;2211:CG_DrawFollow
;2212:=================
;2213:*/
;2214:static qboolean CG_DrawFollow( void ) {
line 2219
;2215:	float		x;
;2216:	vec4_t		color;
;2217:	const char	*name;
;2218:
;2219:	if ( !(cg.snap->ps.pm_flags & PMF_FOLLOW) ) {
ADDRGP4 cg+36
INDIRP4
CNSTI4 56
ADDP4
INDIRI4
CNSTI4 4096
BANDI4
CNSTI4 0
NEI4 $775
line 2220
;2220:		return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $774
JUMPV
LABELV $775
line 2222
;2221:	}
;2222:	color[0] = 1;
ADDRLP4 0
CNSTF4 1065353216
ASGNF4
line 2223
;2223:	color[1] = 1;
ADDRLP4 0+4
CNSTF4 1065353216
ASGNF4
line 2224
;2224:	color[2] = 1;
ADDRLP4 0+8
CNSTF4 1065353216
ASGNF4
line 2225
;2225:	color[3] = 1;
ADDRLP4 0+12
CNSTF4 1065353216
ASGNF4
line 2228
;2226:
;2227:
;2228:	CG_DrawBigString( 320 - 9 * 8, 24, "following", 1.0F );
CNSTI4 248
ARGI4
CNSTI4 24
ARGI4
ADDRGP4 $781
ARGP4
CNSTF4 1065353216
ARGF4
ADDRGP4 CG_DrawBigString
CALLV
pop
line 2230
;2229:
;2230:	name = cgs.clientinfo[ cg.snap->ps.clientNum ].name;
ADDRLP4 16
CNSTI4 1708
ADDRGP4 cg+36
INDIRP4
CNSTI4 184
ADDP4
INDIRI4
MULI4
ADDRGP4 cgs+40972+4
ADDP4
ASGNP4
line 2232
;2231:
;2232:	x = 0.5 * ( 640 - GIANT_WIDTH * CG_DrawStrlen( name ) );
ADDRLP4 16
INDIRP4
ARGP4
ADDRLP4 24
ADDRGP4 CG_DrawStrlen
CALLI4
ASGNI4
ADDRLP4 20
CNSTF4 1056964608
CNSTI4 640
ADDRLP4 24
INDIRI4
CNSTI4 5
LSHI4
SUBI4
CVIF4 4
MULF4
ASGNF4
line 2234
;2233:
;2234:	CG_DrawStringExt( x, 40, name, color, qtrue, qtrue, GIANT_WIDTH, GIANT_HEIGHT, 0 );
ADDRLP4 20
INDIRF4
CVFI4 4
ARGI4
CNSTI4 40
ARGI4
ADDRLP4 16
INDIRP4
ARGP4
ADDRLP4 0
ARGP4
ADDRLP4 28
CNSTI4 1
ASGNI4
ADDRLP4 28
INDIRI4
ARGI4
ADDRLP4 28
INDIRI4
ARGI4
CNSTI4 32
ARGI4
CNSTI4 48
ARGI4
CNSTI4 0
ARGI4
ADDRGP4 CG_DrawStringExt
CALLV
pop
line 2236
;2235:
;2236:	return qtrue;
CNSTI4 1
RETI4
LABELV $774
endproc CG_DrawFollow 32 36
proc CG_DrawAmmoWarning 12 16
line 2246
;2237:}
;2238:
;2239:
;2240:
;2241:/*
;2242:=================
;2243:CG_DrawAmmoWarning
;2244:=================
;2245:*/
;2246:static void CG_DrawAmmoWarning( void ) {
line 2250
;2247:	const char	*s;
;2248:	int			w;
;2249:
;2250:	if ( cg_drawAmmoWarning.integer == 0 ) {
ADDRGP4 cg_drawAmmoWarning+12
INDIRI4
CNSTI4 0
NEI4 $786
line 2251
;2251:		return;
ADDRGP4 $785
JUMPV
LABELV $786
line 2254
;2252:	}
;2253:
;2254:	if ( !cg.lowAmmoWarning ) {
ADDRGP4 cg+124392
INDIRI4
CNSTI4 0
NEI4 $789
line 2255
;2255:		return;
ADDRGP4 $785
JUMPV
LABELV $789
line 2258
;2256:	}
;2257:
;2258:	if ( cg.lowAmmoWarning == 2 ) {
ADDRGP4 cg+124392
INDIRI4
CNSTI4 2
NEI4 $792
line 2259
;2259:		s = "OUT OF AMMO";
ADDRLP4 0
ADDRGP4 $795
ASGNP4
line 2260
;2260:	} else {
ADDRGP4 $793
JUMPV
LABELV $792
line 2261
;2261:		s = "LOW AMMO WARNING";
ADDRLP4 0
ADDRGP4 $796
ASGNP4
line 2262
;2262:	}
LABELV $793
line 2263
;2263:	w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH;
ADDRLP4 0
INDIRP4
ARGP4
ADDRLP4 8
ADDRGP4 CG_DrawStrlen
CALLI4
ASGNI4
ADDRLP4 4
ADDRLP4 8
INDIRI4
CNSTI4 4
LSHI4
ASGNI4
line 2264
;2264:	CG_DrawBigString(320 - w / 2, 64, s, 1.0F);
CNSTI4 320
ADDRLP4 4
INDIRI4
CNSTI4 2
DIVI4
SUBI4
ARGI4
CNSTI4 64
ARGI4
ADDRLP4 0
INDIRP4
ARGP4
CNSTF4 1065353216
ARGF4
ADDRGP4 CG_DrawBigString
CALLV
pop
line 2265
;2265:}
LABELV $785
endproc CG_DrawAmmoWarning 12 16
bss
align 4
LABELV $798
skip 4
align 4
LABELV $799
skip 4
align 4
LABELV $800
skip 4
code
proc CG_DrawProxWarning 44 16
line 2274
;2266:
;2267:
;2268:#ifdef MISSIONPACK
;2269:/*
;2270:=================
;2271:CG_DrawProxWarning
;2272:=================
;2273:*/
;2274:static void CG_DrawProxWarning( void ) {
line 2281
;2275:	char s [32];
;2276:	int			w;
;2277:  static int proxTime;
;2278:  static int proxCounter;
;2279:  static int proxTick;
;2280:
;2281:	if( !(cg.snap->ps.eFlags & EF_TICKING ) ) {
ADDRGP4 cg+36
INDIRP4
CNSTI4 148
ADDP4
INDIRI4
CNSTI4 2
BANDI4
CNSTI4 0
NEI4 $801
line 2282
;2282:    proxTime = 0;
ADDRGP4 $798
CNSTI4 0
ASGNI4
line 2283
;2283:		return;
ADDRGP4 $797
JUMPV
LABELV $801
line 2286
;2284:	}
;2285:
;2286:  if (proxTime == 0) {
ADDRGP4 $798
INDIRI4
CNSTI4 0
NEI4 $804
line 2287
;2287:    proxTime = cg.time + 5000;
ADDRGP4 $798
ADDRGP4 cg+107604
INDIRI4
CNSTI4 5000
ADDI4
ASGNI4
line 2288
;2288:    proxCounter = 5;
ADDRGP4 $799
CNSTI4 5
ASGNI4
line 2289
;2289:    proxTick = 0;
ADDRGP4 $800
CNSTI4 0
ASGNI4
line 2290
;2290:  }
LABELV $804
line 2292
;2291:
;2292:  if (cg.time > proxTime) {
ADDRGP4 cg+107604
INDIRI4
ADDRGP4 $798
INDIRI4
LEI4 $807
line 2293
;2293:    proxTick = proxCounter--;
ADDRLP4 40
ADDRGP4 $799
ASGNP4
ADDRLP4 36
ADDRLP4 40
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 40
INDIRP4
ADDRLP4 36
INDIRI4
CNSTI4 1
SUBI4
ASGNI4
ADDRGP4 $800
ADDRLP4 36
INDIRI4
ASGNI4
line 2294
;2294:    proxTime = cg.time + 1000;
ADDRGP4 $798
ADDRGP4 cg+107604
INDIRI4
CNSTI4 1000
ADDI4
ASGNI4
line 2295
;2295:  }
LABELV $807
line 2297
;2296:
;2297:  if (proxTick != 0) {
ADDRGP4 $800
INDIRI4
CNSTI4 0
EQI4 $811
line 2298
;2298:    Com_sprintf(s, sizeof(s), "INTERNAL COMBUSTION IN: %i", proxTick);
ADDRLP4 0
ARGP4
CNSTI4 32
ARGI4
ADDRGP4 $813
ARGP4
ADDRGP4 $800
INDIRI4
ARGI4
ADDRGP4 Com_sprintf
CALLV
pop
line 2299
;2299:  } else {
ADDRGP4 $812
JUMPV
LABELV $811
line 2300
;2300:    Com_sprintf(s, sizeof(s), "YOU HAVE BEEN MINED");
ADDRLP4 0
ARGP4
CNSTI4 32
ARGI4
ADDRGP4 $814
ARGP4
ADDRGP4 Com_sprintf
CALLV
pop
line 2301
;2301:  }
LABELV $812
line 2303
;2302:
;2303:	w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH;
ADDRLP4 0
ARGP4
ADDRLP4 36
ADDRGP4 CG_DrawStrlen
CALLI4
ASGNI4
ADDRLP4 32
ADDRLP4 36
INDIRI4
CNSTI4 4
LSHI4
ASGNI4
line 2304
;2304:	CG_DrawBigStringColor( 320 - w / 2, 64 + BIGCHAR_HEIGHT, s, g_color_table[ColorIndex(COLOR_RED)] );
CNSTI4 320
ADDRLP4 32
INDIRI4
CNSTI4 2
DIVI4
SUBI4
ARGI4
CNSTI4 80
ARGI4
ADDRLP4 0
ARGP4
ADDRGP4 g_color_table+16
ARGP4
ADDRGP4 CG_DrawBigStringColor
CALLV
pop
line 2305
;2305:}
LABELV $797
endproc CG_DrawProxWarning 44 16
proc CG_DrawWarmup 48 32
line 2314
;2306:#endif
;2307:
;2308:
;2309:/*
;2310:=================
;2311:CG_DrawWarmup
;2312:=================
;2313:*/
;2314:static void CG_DrawWarmup( void ) {
line 2323
;2315:	int			w;
;2316:	int			sec;
;2317:	int			i;
;2318:	float scale;
;2319:	clientInfo_t	*ci1, *ci2;
;2320:	int			cw;
;2321:	const char	*s;
;2322:
;2323:	sec = cg.warmup;
ADDRLP4 4
ADDRGP4 cg+124656
INDIRI4
ASGNI4
line 2324
;2324:	if ( !sec ) {
ADDRLP4 4
INDIRI4
CNSTI4 0
NEI4 $818
line 2325
;2325:		return;
ADDRGP4 $816
JUMPV
LABELV $818
line 2328
;2326:	}
;2327:
;2328:	if ( sec < 0 ) {
ADDRLP4 4
INDIRI4
CNSTI4 0
GEI4 $820
line 2329
;2329:		s = "Waiting for players";		
ADDRLP4 8
ADDRGP4 $822
ASGNP4
line 2330
;2330:		w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH;
ADDRLP4 8
INDIRP4
ARGP4
ADDRLP4 32
ADDRGP4 CG_DrawStrlen
CALLI4
ASGNI4
ADDRLP4 16
ADDRLP4 32
INDIRI4
CNSTI4 4
LSHI4
ASGNI4
line 2331
;2331:		CG_DrawBigString(320 - w / 2, 24, s, 1.0F);
CNSTI4 320
ADDRLP4 16
INDIRI4
CNSTI4 2
DIVI4
SUBI4
ARGI4
CNSTI4 24
ARGI4
ADDRLP4 8
INDIRP4
ARGP4
CNSTF4 1065353216
ARGF4
ADDRGP4 CG_DrawBigString
CALLV
pop
line 2332
;2332:		cg.warmupCount = 0;
ADDRGP4 cg+124660
CNSTI4 0
ASGNI4
line 2333
;2333:		return;
ADDRGP4 $816
JUMPV
LABELV $820
line 2336
;2334:	}
;2335:
;2336:	if (cgs.gametype == GT_TOURNAMENT) {
ADDRGP4 cgs+31456
INDIRI4
CNSTI4 1
NEI4 $824
line 2338
;2337:		// find the two active players
;2338:		ci1 = NULL;
ADDRLP4 12
CNSTP4 0
ASGNP4
line 2339
;2339:		ci2 = NULL;
ADDRLP4 24
CNSTP4 0
ASGNP4
line 2340
;2340:		for ( i = 0 ; i < cgs.maxclients ; i++ ) {
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $830
JUMPV
LABELV $827
line 2341
;2341:			if ( cgs.clientinfo[i].infoValid && cgs.clientinfo[i].team == TEAM_FREE ) {
ADDRLP4 32
CNSTI4 1708
ADDRLP4 0
INDIRI4
MULI4
ASGNI4
ADDRLP4 36
CNSTI4 0
ASGNI4
ADDRLP4 32
INDIRI4
ADDRGP4 cgs+40972
ADDP4
INDIRI4
ADDRLP4 36
INDIRI4
EQI4 $832
ADDRLP4 32
INDIRI4
ADDRGP4 cgs+40972+68
ADDP4
INDIRI4
ADDRLP4 36
INDIRI4
NEI4 $832
line 2342
;2342:				if ( !ci1 ) {
ADDRLP4 12
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $837
line 2343
;2343:					ci1 = &cgs.clientinfo[i];
ADDRLP4 12
CNSTI4 1708
ADDRLP4 0
INDIRI4
MULI4
ADDRGP4 cgs+40972
ADDP4
ASGNP4
line 2344
;2344:				} else {
ADDRGP4 $838
JUMPV
LABELV $837
line 2345
;2345:					ci2 = &cgs.clientinfo[i];
ADDRLP4 24
CNSTI4 1708
ADDRLP4 0
INDIRI4
MULI4
ADDRGP4 cgs+40972
ADDP4
ASGNP4
line 2346
;2346:				}
LABELV $838
line 2347
;2347:			}
LABELV $832
line 2348
;2348:		}
LABELV $828
line 2340
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $830
ADDRLP4 0
INDIRI4
ADDRGP4 cgs+31480
INDIRI4
LTI4 $827
line 2350
;2349:
;2350:		if ( ci1 && ci2 ) {
ADDRLP4 32
CNSTU4 0
ASGNU4
ADDRLP4 12
INDIRP4
CVPU4 4
ADDRLP4 32
INDIRU4
EQU4 $825
ADDRLP4 24
INDIRP4
CVPU4 4
ADDRLP4 32
INDIRU4
EQU4 $825
line 2351
;2351:			s = va( "%s vs %s", ci1->name, ci2->name );
ADDRGP4 $843
ARGP4
ADDRLP4 36
CNSTI4 4
ASGNI4
ADDRLP4 12
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
ARGP4
ADDRLP4 24
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
ARGP4
ADDRLP4 40
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 8
ADDRLP4 40
INDIRP4
ASGNP4
line 2353
;2352:#ifdef MISSIONPACK
;2353:			w = CG_Text_Width(s, 0.6f, 0);
ADDRLP4 8
INDIRP4
ARGP4
CNSTF4 1058642330
ARGF4
CNSTI4 0
ARGI4
ADDRLP4 44
ADDRGP4 CG_Text_Width
CALLI4
ASGNI4
ADDRLP4 16
ADDRLP4 44
INDIRI4
ASGNI4
line 2354
;2354:			CG_Text_Paint(320 - w / 2, 60, 0.6f, colorWhite, s, 0, 0, ITEM_TEXTSTYLE_SHADOWEDMORE);
CNSTI4 320
ADDRLP4 16
INDIRI4
CNSTI4 2
DIVI4
SUBI4
CVIF4 4
ARGF4
CNSTF4 1114636288
ARGF4
CNSTF4 1058642330
ARGF4
ADDRGP4 colorWhite
ARGP4
ADDRLP4 8
INDIRP4
ARGP4
CNSTF4 0
ARGF4
CNSTI4 0
ARGI4
CNSTI4 6
ARGI4
ADDRGP4 CG_Text_Paint
CALLV
pop
line 2365
;2355:#else
;2356:			w = CG_DrawStrlen( s );
;2357:			if ( w > 640 / GIANT_WIDTH ) {
;2358:				cw = 640 / w;
;2359:			} else {
;2360:				cw = GIANT_WIDTH;
;2361:			}
;2362:			CG_DrawStringExt( 320 - w * cw/2, 20,s, colorWhite, 
;2363:					qfalse, qtrue, cw, (int)(cw * 1.5f), 0 );
;2364:#endif
;2365:		}
line 2366
;2366:	} else {
ADDRGP4 $825
JUMPV
LABELV $824
line 2367
;2367:		if ( cgs.gametype == GT_FFA ) {
ADDRGP4 cgs+31456
INDIRI4
CNSTI4 0
NEI4 $844
line 2368
;2368:			s = "Free For All";
ADDRLP4 8
ADDRGP4 $847
ASGNP4
line 2369
;2369:		} else if ( cgs.gametype == GT_TEAM ) {
ADDRGP4 $845
JUMPV
LABELV $844
ADDRGP4 cgs+31456
INDIRI4
CNSTI4 3
NEI4 $848
line 2370
;2370:			s = "Team Deathmatch";
ADDRLP4 8
ADDRGP4 $851
ASGNP4
line 2371
;2371:		} else if ( cgs.gametype == GT_CTF ) {
ADDRGP4 $849
JUMPV
LABELV $848
ADDRGP4 cgs+31456
INDIRI4
CNSTI4 4
NEI4 $852
line 2372
;2372:			s = "Capture the Flag";
ADDRLP4 8
ADDRGP4 $855
ASGNP4
line 2374
;2373:#ifdef MISSIONPACK
;2374:		} else if ( cgs.gametype == GT_1FCTF ) {
ADDRGP4 $853
JUMPV
LABELV $852
ADDRGP4 cgs+31456
INDIRI4
CNSTI4 5
NEI4 $856
line 2375
;2375:			s = "One Flag CTF";
ADDRLP4 8
ADDRGP4 $859
ASGNP4
line 2376
;2376:		} else if ( cgs.gametype == GT_OBELISK ) {
ADDRGP4 $857
JUMPV
LABELV $856
ADDRGP4 cgs+31456
INDIRI4
CNSTI4 6
NEI4 $860
line 2377
;2377:			s = "Overload";
ADDRLP4 8
ADDRGP4 $863
ASGNP4
line 2378
;2378:		} else if ( cgs.gametype == GT_HARVESTER ) {
ADDRGP4 $861
JUMPV
LABELV $860
ADDRGP4 cgs+31456
INDIRI4
CNSTI4 7
NEI4 $864
line 2379
;2379:			s = "Harvester";
ADDRLP4 8
ADDRGP4 $867
ASGNP4
line 2381
;2380:#endif
;2381:		} else {
ADDRGP4 $865
JUMPV
LABELV $864
line 2382
;2382:			s = "";
ADDRLP4 8
ADDRGP4 $868
ASGNP4
line 2383
;2383:		}
LABELV $865
LABELV $861
LABELV $857
LABELV $853
LABELV $849
LABELV $845
line 2385
;2384:#ifdef MISSIONPACK
;2385:		w = CG_Text_Width(s, 0.6f, 0);
ADDRLP4 8
INDIRP4
ARGP4
CNSTF4 1058642330
ARGF4
CNSTI4 0
ARGI4
ADDRLP4 32
ADDRGP4 CG_Text_Width
CALLI4
ASGNI4
ADDRLP4 16
ADDRLP4 32
INDIRI4
ASGNI4
line 2386
;2386:		CG_Text_Paint(320 - w / 2, 90, 0.6f, colorWhite, s, 0, 0, ITEM_TEXTSTYLE_SHADOWEDMORE);
CNSTI4 320
ADDRLP4 16
INDIRI4
CNSTI4 2
DIVI4
SUBI4
CVIF4 4
ARGF4
CNSTF4 1119092736
ARGF4
CNSTF4 1058642330
ARGF4
ADDRGP4 colorWhite
ARGP4
ADDRLP4 8
INDIRP4
ARGP4
CNSTF4 0
ARGF4
CNSTI4 0
ARGI4
CNSTI4 6
ARGI4
ADDRGP4 CG_Text_Paint
CALLV
pop
line 2397
;2387:#else
;2388:		w = CG_DrawStrlen( s );
;2389:		if ( w > 640 / GIANT_WIDTH ) {
;2390:			cw = 640 / w;
;2391:		} else {
;2392:			cw = GIANT_WIDTH;
;2393:		}
;2394:		CG_DrawStringExt( 320 - w * cw/2, 25,s, colorWhite, 
;2395:				qfalse, qtrue, cw, (int)(cw * 1.1f), 0 );
;2396:#endif
;2397:	}
LABELV $825
line 2399
;2398:
;2399:	sec = ( sec - cg.time ) / 1000;
ADDRLP4 4
ADDRLP4 4
INDIRI4
ADDRGP4 cg+107604
INDIRI4
SUBI4
CNSTI4 1000
DIVI4
ASGNI4
line 2400
;2400:	if ( sec < 0 ) {
ADDRLP4 4
INDIRI4
CNSTI4 0
GEI4 $870
line 2401
;2401:		cg.warmup = 0;
ADDRGP4 cg+124656
CNSTI4 0
ASGNI4
line 2402
;2402:		sec = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
line 2403
;2403:	}
LABELV $870
line 2404
;2404:	s = va( "Starts in: %i", sec + 1 );
ADDRGP4 $873
ARGP4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ARGI4
ADDRLP4 32
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 8
ADDRLP4 32
INDIRP4
ASGNP4
line 2405
;2405:	if ( sec != cg.warmupCount ) {
ADDRLP4 4
INDIRI4
ADDRGP4 cg+124660
INDIRI4
EQI4 $874
line 2406
;2406:		cg.warmupCount = sec;
ADDRGP4 cg+124660
ADDRLP4 4
INDIRI4
ASGNI4
line 2407
;2407:		switch ( sec ) {
ADDRLP4 4
INDIRI4
CNSTI4 0
EQI4 $880
ADDRLP4 4
INDIRI4
CNSTI4 1
EQI4 $883
ADDRLP4 4
INDIRI4
CNSTI4 2
EQI4 $886
ADDRGP4 $879
JUMPV
LABELV $880
line 2409
;2408:		case 0:
;2409:			trap_S_StartLocalSound( cgs.media.count1Sound, CHAN_ANNOUNCER );
ADDRGP4 cgs+152340+1144
INDIRI4
ARGI4
CNSTI4 7
ARGI4
ADDRGP4 trap_S_StartLocalSound
CALLV
pop
line 2410
;2410:			break;
ADDRGP4 $879
JUMPV
LABELV $883
line 2412
;2411:		case 1:
;2412:			trap_S_StartLocalSound( cgs.media.count2Sound, CHAN_ANNOUNCER );
ADDRGP4 cgs+152340+1140
INDIRI4
ARGI4
CNSTI4 7
ARGI4
ADDRGP4 trap_S_StartLocalSound
CALLV
pop
line 2413
;2413:			break;
ADDRGP4 $879
JUMPV
LABELV $886
line 2415
;2414:		case 2:
;2415:			trap_S_StartLocalSound( cgs.media.count3Sound, CHAN_ANNOUNCER );
ADDRGP4 cgs+152340+1136
INDIRI4
ARGI4
CNSTI4 7
ARGI4
ADDRGP4 trap_S_StartLocalSound
CALLV
pop
line 2416
;2416:			break;
line 2418
;2417:		default:
;2418:			break;
LABELV $879
line 2420
;2419:		}
;2420:	}
LABELV $874
line 2421
;2421:	scale = 0.45f;
ADDRLP4 20
CNSTF4 1055286886
ASGNF4
line 2422
;2422:	switch ( cg.warmupCount ) {
ADDRLP4 36
ADDRGP4 cg+124660
INDIRI4
ASGNI4
ADDRLP4 36
INDIRI4
CNSTI4 0
EQI4 $892
ADDRLP4 36
INDIRI4
CNSTI4 1
EQI4 $893
ADDRLP4 36
INDIRI4
CNSTI4 2
EQI4 $894
ADDRGP4 $889
JUMPV
LABELV $892
line 2424
;2423:	case 0:
;2424:		cw = 28;
ADDRLP4 28
CNSTI4 28
ASGNI4
line 2425
;2425:		scale = 0.54f;
ADDRLP4 20
CNSTF4 1057635697
ASGNF4
line 2426
;2426:		break;
ADDRGP4 $890
JUMPV
LABELV $893
line 2428
;2427:	case 1:
;2428:		cw = 24;
ADDRLP4 28
CNSTI4 24
ASGNI4
line 2429
;2429:		scale = 0.51f;
ADDRLP4 20
CNSTF4 1057132380
ASGNF4
line 2430
;2430:		break;
ADDRGP4 $890
JUMPV
LABELV $894
line 2432
;2431:	case 2:
;2432:		cw = 20;
ADDRLP4 28
CNSTI4 20
ASGNI4
line 2433
;2433:		scale = 0.48f;
ADDRLP4 20
CNSTF4 1056293519
ASGNF4
line 2434
;2434:		break;
ADDRGP4 $890
JUMPV
LABELV $889
line 2436
;2435:	default:
;2436:		cw = 16;
ADDRLP4 28
CNSTI4 16
ASGNI4
line 2437
;2437:		scale = 0.45f;
ADDRLP4 20
CNSTF4 1055286886
ASGNF4
line 2438
;2438:		break;
LABELV $890
line 2442
;2439:	}
;2440:
;2441:#ifdef MISSIONPACK
;2442:		w = CG_Text_Width(s, scale, 0);
ADDRLP4 8
INDIRP4
ARGP4
ADDRLP4 20
INDIRF4
ARGF4
CNSTI4 0
ARGI4
ADDRLP4 40
ADDRGP4 CG_Text_Width
CALLI4
ASGNI4
ADDRLP4 16
ADDRLP4 40
INDIRI4
ASGNI4
line 2443
;2443:		CG_Text_Paint(320 - w / 2, 125, scale, colorWhite, s, 0, 0, ITEM_TEXTSTYLE_SHADOWEDMORE);
CNSTI4 320
ADDRLP4 16
INDIRI4
CNSTI4 2
DIVI4
SUBI4
CVIF4 4
ARGF4
CNSTF4 1123680256
ARGF4
ADDRLP4 20
INDIRF4
ARGF4
ADDRGP4 colorWhite
ARGP4
ADDRLP4 8
INDIRP4
ARGP4
CNSTF4 0
ARGF4
CNSTI4 0
ARGI4
CNSTI4 6
ARGI4
ADDRGP4 CG_Text_Paint
CALLV
pop
line 2449
;2444:#else
;2445:	w = CG_DrawStrlen( s );
;2446:	CG_DrawStringExt( 320 - w * cw/2, 70, s, colorWhite, 
;2447:			qfalse, qtrue, cw, (int)(cw * 1.5), 0 );
;2448:#endif
;2449:}
LABELV $816
endproc CG_DrawWarmup 48 32
export CG_DrawTimedMenus
proc CG_DrawTimedMenus 4 8
line 2458
;2450:
;2451://==================================================================================
;2452:#ifdef MISSIONPACK
;2453:/* 
;2454:=================
;2455:CG_DrawTimedMenus
;2456:=================
;2457:*/
;2458:void CG_DrawTimedMenus() {
line 2459
;2459:	if (cg.voiceTime) {
ADDRGP4 cg+124420
INDIRI4
CNSTI4 0
EQI4 $896
line 2460
;2460:		int t = cg.time - cg.voiceTime;
ADDRLP4 0
ADDRGP4 cg+107604
INDIRI4
ADDRGP4 cg+124420
INDIRI4
SUBI4
ASGNI4
line 2461
;2461:		if ( t > 2500 ) {
ADDRLP4 0
INDIRI4
CNSTI4 2500
LEI4 $901
line 2462
;2462:			Menus_CloseByName("voiceMenu");
ADDRGP4 $903
ARGP4
ADDRGP4 Menus_CloseByName
CALLV
pop
line 2463
;2463:			trap_Cvar_Set("cl_conXOffset", "0");
ADDRGP4 $904
ARGP4
ADDRGP4 $905
ARGP4
ADDRGP4 trap_Cvar_Set
CALLV
pop
line 2464
;2464:			cg.voiceTime = 0;
ADDRGP4 cg+124420
CNSTI4 0
ASGNI4
line 2465
;2465:		}
LABELV $901
line 2466
;2466:	}
LABELV $896
line 2467
;2467:}
LABELV $895
endproc CG_DrawTimedMenus 4 8
proc CG_Draw2D 8 0
line 2474
;2468:#endif
;2469:/*
;2470:=================
;2471:CG_Draw2D
;2472:=================
;2473:*/
;2474:static void CG_Draw2D( void ) {
line 2476
;2475:#ifdef MISSIONPACK
;2476:	if (cgs.orderPending && cg.time > cgs.orderTime) {
ADDRGP4 cgs+152284
INDIRI4
CNSTI4 0
EQI4 $908
ADDRGP4 cg+107604
INDIRI4
ADDRGP4 cgs+152288
INDIRI4
LEI4 $908
line 2477
;2477:		CG_CheckOrderPending();
ADDRGP4 CG_CheckOrderPending
CALLV
pop
line 2478
;2478:	}
LABELV $908
line 2481
;2479:#endif
;2480:	// if we are taking a levelshot for the menu, don't draw anything
;2481:	if ( cg.levelShot ) {
ADDRGP4 cg+12
INDIRI4
CNSTI4 0
EQI4 $913
line 2482
;2482:		return;
ADDRGP4 $907
JUMPV
LABELV $913
line 2485
;2483:	}
;2484:
;2485:	if ( cg_draw2D.integer == 0 ) {
ADDRGP4 cg_draw2D+12
INDIRI4
CNSTI4 0
NEI4 $916
line 2486
;2486:		return;
ADDRGP4 $907
JUMPV
LABELV $916
line 2489
;2487:	}
;2488:
;2489:	if ( cg.snap->ps.pm_type == PM_INTERMISSION ) {
ADDRGP4 cg+36
INDIRP4
CNSTI4 48
ADDP4
INDIRI4
CNSTI4 5
NEI4 $919
line 2490
;2490:		CG_DrawIntermission();
ADDRGP4 CG_DrawIntermission
CALLV
pop
line 2491
;2491:		return;
ADDRGP4 $907
JUMPV
LABELV $919
line 2499
;2492:	}
;2493:
;2494:/*
;2495:	if (cg.cameraMode) {
;2496:		return;
;2497:	}
;2498:*/
;2499:	if ( cg.snap->ps.persistant[PERS_TEAM] == TEAM_SPECTATOR ) {
ADDRGP4 cg+36
INDIRP4
CNSTI4 304
ADDP4
INDIRI4
CNSTI4 3
NEI4 $922
line 2500
;2500:		CG_DrawSpectator();
ADDRGP4 CG_DrawSpectator
CALLV
pop
line 2501
;2501:		CG_DrawCrosshair();
ADDRGP4 CG_DrawCrosshair
CALLV
pop
line 2502
;2502:		CG_DrawCrosshairNames();
ADDRGP4 CG_DrawCrosshairNames
CALLV
pop
line 2503
;2503:	} else {
ADDRGP4 $923
JUMPV
LABELV $922
line 2505
;2504:		// don't draw any status if dead or the scoreboard is being explicitly shown
;2505:		if ( !cg.showScores && cg.snap->ps.stats[STAT_HEALTH] > 0 ) {
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 cg+114320
INDIRI4
ADDRLP4 0
INDIRI4
NEI4 $925
ADDRGP4 cg+36
INDIRP4
CNSTI4 228
ADDP4
INDIRI4
ADDRLP4 0
INDIRI4
LEI4 $925
line 2508
;2506:
;2507:#ifdef MISSIONPACK
;2508:			if ( cg_drawStatus.integer ) {
ADDRGP4 cg_drawStatus+12
INDIRI4
CNSTI4 0
EQI4 $929
line 2509
;2509:				Menu_PaintAll();
ADDRGP4 Menu_PaintAll
CALLV
pop
line 2510
;2510:				CG_DrawTimedMenus();
ADDRGP4 CG_DrawTimedMenus
CALLV
pop
line 2511
;2511:			}
LABELV $929
line 2516
;2512:#else
;2513:			CG_DrawStatusBar();
;2514:#endif
;2515:      
;2516:			CG_DrawAmmoWarning();
ADDRGP4 CG_DrawAmmoWarning
CALLV
pop
line 2519
;2517:
;2518:#ifdef MISSIONPACK
;2519:			CG_DrawProxWarning();
ADDRGP4 CG_DrawProxWarning
CALLV
pop
line 2521
;2520:#endif      
;2521:			CG_DrawCrosshair();
ADDRGP4 CG_DrawCrosshair
CALLV
pop
line 2522
;2522:			CG_DrawCrosshairNames();
ADDRGP4 CG_DrawCrosshairNames
CALLV
pop
line 2523
;2523:			CG_DrawWeaponSelect();
ADDRGP4 CG_DrawWeaponSelect
CALLV
pop
line 2530
;2524:
;2525:#ifndef MISSIONPACK
;2526:			CG_DrawHoldableItem();
;2527:#else
;2528:			//CG_DrawPersistantPowerup();
;2529:#endif
;2530:			CG_DrawReward();
ADDRGP4 CG_DrawReward
CALLV
pop
line 2531
;2531:		}
LABELV $925
line 2533
;2532:    
;2533:		if ( cgs.gametype >= GT_TEAM ) {
ADDRGP4 cgs+31456
INDIRI4
CNSTI4 3
LTI4 $932
line 2537
;2534:#ifndef MISSIONPACK
;2535:			CG_DrawTeamInfo();
;2536:#endif
;2537:		}
LABELV $932
line 2538
;2538:	}
LABELV $923
line 2540
;2539:
;2540:	CG_DrawVote();
ADDRGP4 CG_DrawVote
CALLV
pop
line 2541
;2541:	CG_DrawTeamVote();
ADDRGP4 CG_DrawTeamVote
CALLV
pop
line 2543
;2542:
;2543:	CG_DrawLagometer();
ADDRGP4 CG_DrawLagometer
CALLV
pop
line 2546
;2544:
;2545:#ifdef MISSIONPACK
;2546:	if (!cg_paused.integer) {
ADDRGP4 cg_paused+12
INDIRI4
CNSTI4 0
NEI4 $935
line 2547
;2547:		CG_DrawUpperRight();
ADDRGP4 CG_DrawUpperRight
CALLV
pop
line 2548
;2548:	}
LABELV $935
line 2558
;2549:#else
;2550:	CG_DrawUpperRight();
;2551:#endif
;2552:
;2553:#ifndef MISSIONPACK
;2554:	CG_DrawLowerRight();
;2555:	CG_DrawLowerLeft();
;2556:#endif
;2557:
;2558:	if ( !CG_DrawFollow() ) {
ADDRLP4 0
ADDRGP4 CG_DrawFollow
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 0
NEI4 $938
line 2559
;2559:		CG_DrawWarmup();
ADDRGP4 CG_DrawWarmup
CALLV
pop
line 2560
;2560:	}
LABELV $938
line 2563
;2561:
;2562:	// don't draw center string if scoreboard is up
;2563:	cg.scoreBoardShowing = CG_DrawScoreboard();
ADDRLP4 4
ADDRGP4 CG_DrawScoreboard
CALLI4
ASGNI4
ADDRGP4 cg+114324
ADDRLP4 4
INDIRI4
ASGNI4
line 2564
;2564:	if ( !cg.scoreBoardShowing) {
ADDRGP4 cg+114324
INDIRI4
CNSTI4 0
NEI4 $941
line 2565
;2565:		CG_DrawCenterString();
ADDRGP4 CG_DrawCenterString
CALLV
pop
line 2566
;2566:	}
LABELV $941
line 2567
;2567:}
LABELV $907
endproc CG_Draw2D 8 0
proc CG_DrawTourneyScoreboard 0 0
line 2570
;2568:
;2569:
;2570:static void CG_DrawTourneyScoreboard() {
line 2575
;2571:#ifdef MISSIONPACK
;2572:#else
;2573:	CG_DrawOldTourneyScoreboard();
;2574:#endif
;2575:}
LABELV $944
endproc CG_DrawTourneyScoreboard 0 0
export CG_DrawActive
proc CG_DrawActive 24 4
line 2584
;2576:
;2577:/*
;2578:=====================
;2579:CG_DrawActive
;2580:
;2581:Perform all drawing needed to completely fill the screen
;2582:=====================
;2583:*/
;2584:void CG_DrawActive( stereoFrame_t stereoView ) {
line 2589
;2585:	float		separation;
;2586:	vec3_t		baseOrg;
;2587:
;2588:	// optionally draw the info screen instead
;2589:	if ( !cg.snap ) {
ADDRGP4 cg+36
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $946
line 2590
;2590:		CG_DrawInformation();
ADDRGP4 CG_DrawInformation
CALLV
pop
line 2591
;2591:		return;
ADDRGP4 $945
JUMPV
LABELV $946
line 2595
;2592:	}
;2593:
;2594:	// optionally draw the tournement scoreboard instead
;2595:	if ( cg.snap->ps.persistant[PERS_TEAM] == TEAM_SPECTATOR &&
ADDRGP4 cg+36
INDIRP4
CNSTI4 304
ADDP4
INDIRI4
CNSTI4 3
NEI4 $949
ADDRGP4 cg+36
INDIRP4
CNSTI4 56
ADDP4
INDIRI4
CNSTI4 8192
BANDI4
CNSTI4 0
EQI4 $949
line 2596
;2596:		( cg.snap->ps.pm_flags & PMF_SCOREBOARD ) ) {
line 2597
;2597:		CG_DrawTourneyScoreboard();
ADDRGP4 CG_DrawTourneyScoreboard
CALLV
pop
line 2598
;2598:		return;
ADDRGP4 $945
JUMPV
LABELV $949
line 2601
;2599:	}
;2600:
;2601:	switch ( stereoView ) {
ADDRLP4 16
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 16
INDIRI4
CNSTI4 0
EQI4 $956
ADDRLP4 16
INDIRI4
CNSTI4 1
EQI4 $957
ADDRLP4 16
INDIRI4
CNSTI4 2
EQI4 $959
ADDRGP4 $953
JUMPV
LABELV $956
line 2603
;2602:	case STEREO_CENTER:
;2603:		separation = 0;
ADDRLP4 0
CNSTF4 0
ASGNF4
line 2604
;2604:		break;
ADDRGP4 $954
JUMPV
LABELV $957
line 2606
;2605:	case STEREO_LEFT:
;2606:		separation = -cg_stereoSeparation.value / 2;
ADDRLP4 0
ADDRGP4 cg_stereoSeparation+8
INDIRF4
NEGF4
CNSTF4 1073741824
DIVF4
ASGNF4
line 2607
;2607:		break;
ADDRGP4 $954
JUMPV
LABELV $959
line 2609
;2608:	case STEREO_RIGHT:
;2609:		separation = cg_stereoSeparation.value / 2;
ADDRLP4 0
ADDRGP4 cg_stereoSeparation+8
INDIRF4
CNSTF4 1073741824
DIVF4
ASGNF4
line 2610
;2610:		break;
ADDRGP4 $954
JUMPV
LABELV $953
line 2612
;2611:	default:
;2612:		separation = 0;
ADDRLP4 0
CNSTF4 0
ASGNF4
line 2613
;2613:		CG_Error( "CG_DrawActive: Undefined stereoView" );
ADDRGP4 $961
ARGP4
ADDRGP4 CG_Error
CALLV
pop
line 2614
;2614:	}
LABELV $954
line 2618
;2615:
;2616:
;2617:	// clear around the rendered view if sized down
;2618:	CG_TileClear();
ADDRGP4 CG_TileClear
CALLV
pop
line 2621
;2619:
;2620:	// offset vieworg appropriately if we're doing stereo separation
;2621:	VectorCopy( cg.refdef.vieworg, baseOrg );
ADDRLP4 4
ADDRGP4 cg+109044+24
INDIRB
ASGNB 12
line 2622
;2622:	if ( separation != 0 ) {
ADDRLP4 0
INDIRF4
CNSTF4 0
EQF4 $964
line 2623
;2623:		VectorMA( cg.refdef.vieworg, -separation, cg.refdef.viewaxis[1], cg.refdef.vieworg );
ADDRGP4 cg+109044+24
ADDRGP4 cg+109044+24
INDIRF4
ADDRGP4 cg+109044+36+12
INDIRF4
ADDRLP4 0
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
ADDRGP4 cg+109044+24+4
ADDRGP4 cg+109044+24+4
INDIRF4
ADDRGP4 cg+109044+36+12+4
INDIRF4
ADDRLP4 0
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
ADDRGP4 cg+109044+24+8
ADDRGP4 cg+109044+24+8
INDIRF4
ADDRGP4 cg+109044+36+12+8
INDIRF4
ADDRLP4 0
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
line 2624
;2624:	}
LABELV $964
line 2627
;2625:
;2626:	// draw 3D view
;2627:	trap_R_RenderScene( &cg.refdef );
ADDRGP4 cg+109044
ARGP4
ADDRGP4 trap_R_RenderScene
CALLV
pop
line 2630
;2628:
;2629:	// restore original viewpoint if running stereo
;2630:	if ( separation != 0 ) {
ADDRLP4 0
INDIRF4
CNSTF4 0
EQF4 $994
line 2631
;2631:		VectorCopy( baseOrg, cg.refdef.vieworg );
ADDRGP4 cg+109044+24
ADDRLP4 4
INDIRB
ASGNB 12
line 2632
;2632:	}
LABELV $994
line 2635
;2633:
;2634:	// draw status bar and other floating elements
;2635: 	CG_Draw2D();
ADDRGP4 CG_Draw2D
CALLV
pop
line 2636
;2636:}
LABELV $945
endproc CG_DrawActive 24 4
bss
export lagometer
align 4
LABELV lagometer
skip 1544
import cgDC
import trap_PC_SourceFileAndLine
import trap_PC_ReadToken
import trap_PC_FreeSource
import trap_PC_LoadSource
import trap_PC_AddGlobalDefine
import Controls_SetDefaults
import Controls_SetConfig
import Controls_GetConfig
import UI_OutOfMemory
import UI_InitMemory
import UI_Alloc
import Display_CacheAll
import Menu_SetFeederSelection
import Menu_Paint
import Menus_CloseAll
import LerpColor
import Display_HandleKey
import Menus_CloseByName
import Menus_ShowByName
import Menus_FindByName
import Menus_OpenByName
import Display_KeyBindPending
import Display_CursorType
import Display_MouseMove
import Display_CaptureItem
import Display_GetContext
import Menus_Activate
import Menus_AnyFullScreenVisible
import Menu_Reset
import Menus_ActivateByName
import Menu_PaintAll
import Menu_New
import Menu_Count
import PC_Script_Parse
import PC_String_Parse
import PC_Rect_Parse
import PC_Int_Parse
import PC_Color_Parse
import PC_Float_Parse
import Script_Parse
import String_Parse
import Rect_Parse
import Int_Parse
import Color_Parse
import Float_Parse
import Menu_ScrollFeeder
import Menu_HandleMouseMove
import Menu_HandleKey
import Menu_GetFocused
import Menu_PostParse
import Item_Init
import Menu_Init
import Display_ExpandMacros
import Init_Display
import String_Report
import String_Init
import String_Alloc
import CG_NewParticleArea
import initparticles
import CG_ParticleExplosion
import CG_ParticleMisc
import CG_ParticleDust
import CG_ParticleSparks
import CG_ParticleBulletDebris
import CG_ParticleSnowFlurry
import CG_AddParticleShrapnel
import CG_ParticleSmoke
import CG_ParticleSnow
import CG_AddParticles
import CG_ClearParticles
import trap_GetEntityToken
import trap_getCameraInfo
import trap_startCamera
import trap_loadCamera
import trap_SnapVector
import trap_CIN_SetExtents
import trap_CIN_DrawCinematic
import trap_CIN_RunCinematic
import trap_CIN_StopCinematic
import trap_CIN_PlayCinematic
import trap_Key_GetKey
import trap_Key_SetCatcher
import trap_Key_GetCatcher
import trap_Key_IsDown
import trap_R_RegisterFont
import trap_MemoryRemaining
import testPrintFloat
import testPrintInt
import trap_SetUserCmdValue
import trap_GetUserCmd
import trap_GetCurrentCmdNumber
import trap_GetServerCommand
import trap_GetSnapshot
import trap_GetCurrentSnapshotNumber
import trap_GetGameState
import trap_GetGlconfig
import trap_R_RemapShader
import trap_R_LerpTag
import trap_R_ModelBounds
import trap_R_DrawStretchPic
import trap_R_SetColor
import trap_R_RenderScene
import trap_R_LightForPoint
import trap_R_AddLightToScene
import trap_R_AddPolysToScene
import trap_R_AddPolyToScene
import trap_R_AddRefEntityToScene
import trap_R_ClearScene
import trap_R_RegisterShaderNoMip
import trap_R_RegisterShader
import trap_R_RegisterSkin
import trap_R_RegisterModel
import trap_R_LoadWorldMap
import trap_S_StopBackgroundTrack
import trap_S_StartBackgroundTrack
import trap_S_RegisterSound
import trap_S_Respatialize
import trap_S_UpdateEntityPosition
import trap_S_AddRealLoopingSound
import trap_S_AddLoopingSound
import trap_S_ClearLoopingSounds
import trap_S_StartLocalSound
import trap_S_StopLoopingSound
import trap_S_StartSound
import trap_CM_MarkFragments
import trap_CM_TransformedBoxTrace
import trap_CM_BoxTrace
import trap_CM_TransformedPointContents
import trap_CM_PointContents
import trap_CM_TempBoxModel
import trap_CM_InlineModel
import trap_CM_NumInlineModels
import trap_CM_LoadMap
import trap_UpdateScreen
import trap_SendClientCommand
import trap_AddCommand
import trap_SendConsoleCommand
import trap_FS_Seek
import trap_FS_FCloseFile
import trap_FS_Write
import trap_FS_Read
import trap_FS_FOpenFile
import trap_Args
import trap_Argv
import trap_Argc
import trap_Cvar_VariableStringBuffer
import trap_Cvar_Set
import trap_Cvar_Update
import trap_Cvar_Register
import trap_Milliseconds
import trap_Error
import trap_Print
import CG_CheckChangedPredictableEvents
import CG_TransitionPlayerState
import CG_Respawn
import CG_PlayBufferedVoiceChats
import CG_VoiceChatLocal
import CG_ShaderStateChanged
import CG_LoadVoiceChats
import CG_SetConfigValues
import CG_ParseServerinfo
import CG_ExecuteNewServerCommands
import CG_InitConsoleCommands
import CG_ConsoleCommand
import CG_DrawOldTourneyScoreboard
import CG_DrawOldScoreboard
import CG_DrawInformation
import CG_LoadingClient
import CG_LoadingItem
import CG_LoadingString
import CG_ProcessSnapshots
import CG_MakeExplosion
import CG_Bleed
import CG_BigExplode
import CG_GibPlayer
import CG_ScorePlum
import CG_LightningBoltBeam
import CG_InvulnerabilityJuiced
import CG_InvulnerabilityImpact
import CG_ObeliskPain
import CG_ObeliskExplode
import CG_KamikazeEffect
import CG_SpawnEffect
import CG_BubbleTrail
import CG_SmokePuff
import CG_AddLocalEntities
import CG_AllocLocalEntity
import CG_InitLocalEntities
import CG_ImpactMark
import CG_AddMarks
import CG_InitMarkPolys
import CG_OutOfAmmoChange
import CG_DrawWeaponSelect
import CG_AddPlayerWeapon
import CG_AddViewWeapon
import CG_GrappleTrail
import CG_RailTrail
import CG_Bullet
import CG_ShotgunFire
import CG_MissileHitPlayer
import CG_MissileHitWall
import CG_FireWeapon
import CG_RegisterItemVisuals
import CG_RegisterWeapon
import CG_Weapon_f
import CG_PrevWeapon_f
import CG_NextWeapon_f
import CG_PositionRotatedEntityOnTag
import CG_PositionEntityOnTag
import CG_AdjustPositionForMover
import CG_Beam
import CG_AddPacketEntities
import CG_SetEntitySoundPosition
import CG_PainEvent
import CG_EntityEvent
import CG_PlaceString
import CG_CheckEvents
import CG_LoadDeferredPlayers
import CG_PredictPlayerState
import CG_Trace
import CG_PointContents
import CG_BuildSolidList
import CG_CustomSound
import CG_NewClientInfo
import CG_AddRefEntityWithPowerups
import CG_ResetPlayerEntity
import CG_Player
import CG_StatusHandle
import CG_OtherTeamHasFlag
import CG_YourTeamHasFlag
import CG_GameTypeString
import CG_CheckOrderPending
import CG_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_OwnerDraw
export teamChat2
align 1
LABELV teamChat2
skip 256
export teamChat1
align 1
LABELV teamChat1
skip 256
export systemChat
align 1
LABELV systemChat
skip 256
import drawTeamOverlayModificationCount
export numSortedTeamPlayers
align 4
LABELV numSortedTeamPlayers
skip 4
export sortedTeamPlayers
align 4
LABELV sortedTeamPlayers
skip 128
import CG_DrawTopBottom
import CG_DrawSides
import CG_DrawRect
import UI_DrawProportionalString
import CG_GetColorForHealth
import CG_ColorForHealth
import CG_TileClear
import CG_TeamColor
import CG_FadeColor
import CG_DrawStrlen
import CG_DrawSmallStringColor
import CG_DrawSmallString
import CG_DrawBigStringColor
import CG_DrawBigString
import CG_DrawStringExt
import CG_DrawString
import CG_DrawPic
import CG_FillRect
import CG_AdjustFrom640
import CG_DrawActiveFrame
import CG_AddBufferedSound
import CG_ZoomUp_f
import CG_ZoomDown_f
import CG_TestModelPrevSkin_f
import CG_TestModelNextSkin_f
import CG_TestModelPrevFrame_f
import CG_TestModelNextFrame_f
import CG_TestGun_f
import CG_TestModel_f
import CG_BuildSpectatorString
import CG_GetSelectedScore
import CG_SetScoreSelection
import CG_RankRunFrame
import CG_EventHandling
import CG_MouseEvent
import CG_KeyEvent
import CG_LoadMenus
import CG_LastAttacker
import CG_CrosshairPlayer
import CG_UpdateCvars
import CG_StartMusic
import CG_Error
import CG_Printf
import CG_Argv
import CG_ConfigString
import cg_obeliskRespawnDelay
import cg_recordSPDemoName
import cg_recordSPDemo
import cg_singlePlayerActive
import cg_enableBreath
import cg_enableDust
import cg_singlePlayer
import cg_currentSelectedPlayerName
import cg_currentSelectedPlayer
import cg_blueTeamName
import cg_redTeamName
import cg_trueLightning
import cg_oldPlasma
import cg_oldRocket
import cg_oldRail
import cg_noProjectileTrail
import cg_noTaunt
import cg_bigFont
import cg_smallFont
import cg_cameraMode
import cg_timescale
import cg_timescaleFadeSpeed
import cg_timescaleFadeEnd
import cg_cameraOrbitDelay
import cg_cameraOrbit
import pmove_msec
import pmove_fixed
import cg_smoothClients
import cg_scorePlum
import cg_noVoiceText
import cg_noVoiceChats
import cg_teamChatsOnly
import cg_drawFriend
import cg_deferPlayers
import cg_predictItems
import cg_blood
import cg_paused
import cg_buildScript
import cg_forceModel
import cg_stats
import cg_teamChatHeight
import cg_teamChatTime
import cg_synchronousClients
import cg_drawAttacker
import cg_lagometer
import cg_stereoSeparation
import cg_thirdPerson
import cg_thirdPersonAngle
import cg_thirdPersonRange
import cg_zoomFov
import cg_fov
import cg_simpleItems
import cg_ignore
import cg_autoswitch
import cg_tracerLength
import cg_tracerWidth
import cg_tracerChance
import cg_viewsize
import cg_drawGun
import cg_gun_z
import cg_gun_y
import cg_gun_x
import cg_gun_frame
import cg_brassTime
import cg_addMarks
import cg_footsteps
import cg_showmiss
import cg_noPlayerAnims
import cg_nopredict
import cg_errorDecay
import cg_railTrailTime
import cg_debugEvents
import cg_debugPosition
import cg_debugAnim
import cg_animSpeed
import cg_draw2D
import cg_drawStatus
import cg_crosshairHealth
import cg_crosshairSize
import cg_crosshairY
import cg_crosshairX
import cg_teamOverlayUserinfo
import cg_drawTeamOverlay
import cg_drawRewards
import cg_drawCrosshairNames
import cg_drawCrosshair
import cg_drawAmmoWarning
import cg_drawIcons
import cg_draw3dIcons
import cg_drawSnapshot
import cg_drawFPS
import cg_drawTimer
import cg_gibs
import cg_shadows
import cg_swingSpeed
import cg_bobroll
import cg_bobpitch
import cg_bobup
import cg_runroll
import cg_runpitch
import cg_centertime
import cg_markPolys
import cg_items
import cg_weapons
import cg_entities
import cg
import cgs
import BG_PlayerTouchesItem
import BG_PlayerStateToEntityStateExtraPolate
import BG_PlayerStateToEntityState
import BG_TouchJumpPad
import BG_AddPredictableEventToPlayerstate
import BG_EvaluateTrajectoryDelta
import BG_EvaluateTrajectory
import BG_CanItemBeGrabbed
import BG_FindItemForHoldable
import BG_FindItemForPowerup
import BG_FindItemForWeapon
import BG_FindItem
import bg_numItems
import bg_itemlist
import Pmove
import PM_UpdateViewAngles
import Com_Printf
import Com_Error
import Info_NextPair
import Info_Validate
import Info_SetValueForKey_Big
import Info_SetValueForKey
import Info_RemoveKey_big
import Info_RemoveKey
import Info_ValueForKey
import va
import Q_CleanStr
import Q_PrintStrlen
import Q_strcat
import Q_strncpyz
import Q_strrchr
import Q_strupr
import Q_strlwr
import Q_stricmpn
import Q_strncmp
import Q_stricmp
import Q_isalpha
import Q_isupper
import Q_islower
import Q_isprint
import Com_sprintf
import Parse3DMatrix
import Parse2DMatrix
import Parse1DMatrix
import SkipRestOfLine
import SkipBracedSection
import COM_MatchToken
import COM_ParseWarning
import COM_ParseError
import COM_Compress
import COM_ParseExt
import COM_Parse
import COM_GetCurrentParseLine
import COM_BeginParseSession
import COM_DefaultExtension
import COM_StripExtension
import COM_SkipPath
import Com_Clamp
import PerpendicularVector
import AngleVectors
import MatrixMultiply
import MakeNormalVectors
import RotateAroundDirection
import RotatePointAroundVector
import ProjectPointOnPlane
import PlaneFromPoints
import AngleDelta
import AngleNormalize180
import AngleNormalize360
import AnglesSubtract
import AngleSubtract
import LerpAngle
import AngleMod
import BoxOnPlaneSide
import SetPlaneSignbits
import AxisCopy
import AxisClear
import AnglesToAxis
import vectoangles
import Q_crandom
import Q_random
import Q_rand
import Q_acos
import Q_log2
import VectorRotate
import Vector4Scale
import VectorNormalize2
import VectorNormalize
import CrossProduct
import VectorInverse
import VectorNormalizeFast
import DistanceSquared
import Distance
import VectorLengthSquared
import VectorLength
import VectorCompare
import AddPointToBounds
import ClearBounds
import RadiusFromBounds
import NormalizeColor
import ColorBytes4
import ColorBytes3
import _VectorMA
import _VectorScale
import _VectorCopy
import _VectorAdd
import _VectorSubtract
import _DotProduct
import ByteToDir
import DirToByte
import ClampShort
import ClampChar
import Q_rsqrt
import Q_fabs
import axisDefault
import vec3_origin
import g_color_table
import colorDkGrey
import colorMdGrey
import colorLtGrey
import colorWhite
import colorCyan
import colorMagenta
import colorYellow
import colorBlue
import colorGreen
import colorRed
import colorBlack
import bytedirs
import Com_Memcpy
import Com_Memset
import Hunk_Alloc
import FloatSwap
import LongSwap
import ShortSwap
import acos
import fabs
import abs
import tan
import atan2
import cos
import sin
import sqrt
import floor
import ceil
import memcpy
import memset
import memmove
import sscanf
import vsprintf
import _atoi
import atoi
import _atof
import atof
import toupper
import tolower
import strncpy
import strstr
import strchr
import strcmp
import strcpy
import strcat
import strlen
import rand
import srand
import qsort
lit
align 1
LABELV $961
byte 1 67
byte 1 71
byte 1 95
byte 1 68
byte 1 114
byte 1 97
byte 1 119
byte 1 65
byte 1 99
byte 1 116
byte 1 105
byte 1 118
byte 1 101
byte 1 58
byte 1 32
byte 1 85
byte 1 110
byte 1 100
byte 1 101
byte 1 102
byte 1 105
byte 1 110
byte 1 101
byte 1 100
byte 1 32
byte 1 115
byte 1 116
byte 1 101
byte 1 114
byte 1 101
byte 1 111
byte 1 86
byte 1 105
byte 1 101
byte 1 119
byte 1 0
align 1
LABELV $905
byte 1 48
byte 1 0
align 1
LABELV $904
byte 1 99
byte 1 108
byte 1 95
byte 1 99
byte 1 111
byte 1 110
byte 1 88
byte 1 79
byte 1 102
byte 1 102
byte 1 115
byte 1 101
byte 1 116
byte 1 0
align 1
LABELV $903
byte 1 118
byte 1 111
byte 1 105
byte 1 99
byte 1 101
byte 1 77
byte 1 101
byte 1 110
byte 1 117
byte 1 0
align 1
LABELV $873
byte 1 83
byte 1 116
byte 1 97
byte 1 114
byte 1 116
byte 1 115
byte 1 32
byte 1 105
byte 1 110
byte 1 58
byte 1 32
byte 1 37
byte 1 105
byte 1 0
align 1
LABELV $868
byte 1 0
align 1
LABELV $867
byte 1 72
byte 1 97
byte 1 114
byte 1 118
byte 1 101
byte 1 115
byte 1 116
byte 1 101
byte 1 114
byte 1 0
align 1
LABELV $863
byte 1 79
byte 1 118
byte 1 101
byte 1 114
byte 1 108
byte 1 111
byte 1 97
byte 1 100
byte 1 0
align 1
LABELV $859
byte 1 79
byte 1 110
byte 1 101
byte 1 32
byte 1 70
byte 1 108
byte 1 97
byte 1 103
byte 1 32
byte 1 67
byte 1 84
byte 1 70
byte 1 0
align 1
LABELV $855
byte 1 67
byte 1 97
byte 1 112
byte 1 116
byte 1 117
byte 1 114
byte 1 101
byte 1 32
byte 1 116
byte 1 104
byte 1 101
byte 1 32
byte 1 70
byte 1 108
byte 1 97
byte 1 103
byte 1 0
align 1
LABELV $851
byte 1 84
byte 1 101
byte 1 97
byte 1 109
byte 1 32
byte 1 68
byte 1 101
byte 1 97
byte 1 116
byte 1 104
byte 1 109
byte 1 97
byte 1 116
byte 1 99
byte 1 104
byte 1 0
align 1
LABELV $847
byte 1 70
byte 1 114
byte 1 101
byte 1 101
byte 1 32
byte 1 70
byte 1 111
byte 1 114
byte 1 32
byte 1 65
byte 1 108
byte 1 108
byte 1 0
align 1
LABELV $843
byte 1 37
byte 1 115
byte 1 32
byte 1 118
byte 1 115
byte 1 32
byte 1 37
byte 1 115
byte 1 0
align 1
LABELV $822
byte 1 87
byte 1 97
byte 1 105
byte 1 116
byte 1 105
byte 1 110
byte 1 103
byte 1 32
byte 1 102
byte 1 111
byte 1 114
byte 1 32
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 115
byte 1 0
align 1
LABELV $814
byte 1 89
byte 1 79
byte 1 85
byte 1 32
byte 1 72
byte 1 65
byte 1 86
byte 1 69
byte 1 32
byte 1 66
byte 1 69
byte 1 69
byte 1 78
byte 1 32
byte 1 77
byte 1 73
byte 1 78
byte 1 69
byte 1 68
byte 1 0
align 1
LABELV $813
byte 1 73
byte 1 78
byte 1 84
byte 1 69
byte 1 82
byte 1 78
byte 1 65
byte 1 76
byte 1 32
byte 1 67
byte 1 79
byte 1 77
byte 1 66
byte 1 85
byte 1 83
byte 1 84
byte 1 73
byte 1 79
byte 1 78
byte 1 32
byte 1 73
byte 1 78
byte 1 58
byte 1 32
byte 1 37
byte 1 105
byte 1 0
align 1
LABELV $796
byte 1 76
byte 1 79
byte 1 87
byte 1 32
byte 1 65
byte 1 77
byte 1 77
byte 1 79
byte 1 32
byte 1 87
byte 1 65
byte 1 82
byte 1 78
byte 1 73
byte 1 78
byte 1 71
byte 1 0
align 1
LABELV $795
byte 1 79
byte 1 85
byte 1 84
byte 1 32
byte 1 79
byte 1 70
byte 1 32
byte 1 65
byte 1 77
byte 1 77
byte 1 79
byte 1 0
align 1
LABELV $781
byte 1 102
byte 1 111
byte 1 108
byte 1 108
byte 1 111
byte 1 119
byte 1 105
byte 1 110
byte 1 103
byte 1 0
align 1
LABELV $762
byte 1 115
byte 1 99
byte 1 111
byte 1 114
byte 1 101
byte 1 95
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 0
align 1
LABELV $761
byte 1 116
byte 1 101
byte 1 97
byte 1 109
byte 1 115
byte 1 99
byte 1 111
byte 1 114
byte 1 101
byte 1 95
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 0
align 1
LABELV $720
byte 1 84
byte 1 69
byte 1 65
byte 1 77
byte 1 86
byte 1 79
byte 1 84
byte 1 69
byte 1 40
byte 1 37
byte 1 105
byte 1 41
byte 1 58
byte 1 37
byte 1 115
byte 1 32
byte 1 121
byte 1 101
byte 1 115
byte 1 58
byte 1 37
byte 1 105
byte 1 32
byte 1 110
byte 1 111
byte 1 58
byte 1 37
byte 1 105
byte 1 0
align 1
LABELV $697
byte 1 111
byte 1 114
byte 1 32
byte 1 112
byte 1 114
byte 1 101
byte 1 115
byte 1 115
byte 1 32
byte 1 69
byte 1 83
byte 1 67
byte 1 32
byte 1 116
byte 1 104
byte 1 101
byte 1 110
byte 1 32
byte 1 99
byte 1 108
byte 1 105
byte 1 99
byte 1 107
byte 1 32
byte 1 86
byte 1 111
byte 1 116
byte 1 101
byte 1 0
align 1
LABELV $693
byte 1 86
byte 1 79
byte 1 84
byte 1 69
byte 1 40
byte 1 37
byte 1 105
byte 1 41
byte 1 58
byte 1 37
byte 1 115
byte 1 32
byte 1 121
byte 1 101
byte 1 115
byte 1 58
byte 1 37
byte 1 105
byte 1 32
byte 1 110
byte 1 111
byte 1 58
byte 1 37
byte 1 105
byte 1 0
align 1
LABELV $678
byte 1 112
byte 1 114
byte 1 101
byte 1 115
byte 1 115
byte 1 32
byte 1 69
byte 1 83
byte 1 67
byte 1 32
byte 1 97
byte 1 110
byte 1 100
byte 1 32
byte 1 117
byte 1 115
byte 1 101
byte 1 32
byte 1 116
byte 1 104
byte 1 101
byte 1 32
byte 1 74
byte 1 79
byte 1 73
byte 1 78
byte 1 32
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 32
byte 1 116
byte 1 111
byte 1 32
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 0
align 1
LABELV $674
byte 1 119
byte 1 97
byte 1 105
byte 1 116
byte 1 105
byte 1 110
byte 1 103
byte 1 32
byte 1 116
byte 1 111
byte 1 32
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 0
align 1
LABELV $670
byte 1 83
byte 1 80
byte 1 69
byte 1 67
byte 1 84
byte 1 65
byte 1 84
byte 1 79
byte 1 82
byte 1 0
align 1
LABELV $548
byte 1 115
byte 1 110
byte 1 99
byte 1 0
align 1
LABELV $483
byte 1 103
byte 1 102
byte 1 120
byte 1 47
byte 1 50
byte 1 100
byte 1 47
byte 1 110
byte 1 101
byte 1 116
byte 1 46
byte 1 116
byte 1 103
byte 1 97
byte 1 0
align 1
LABELV $479
byte 1 67
byte 1 111
byte 1 110
byte 1 110
byte 1 101
byte 1 99
byte 1 116
byte 1 105
byte 1 111
byte 1 110
byte 1 32
byte 1 73
byte 1 110
byte 1 116
byte 1 101
byte 1 114
byte 1 114
byte 1 117
byte 1 112
byte 1 116
byte 1 101
byte 1 100
byte 1 0
align 1
LABELV $448
byte 1 37
byte 1 100
byte 1 0
align 1
LABELV $379
byte 1 37
byte 1 51
byte 1 105
byte 1 32
byte 1 37
byte 1 51
byte 1 105
byte 1 0
align 1
LABELV $376
byte 1 117
byte 1 110
byte 1 107
byte 1 110
byte 1 111
byte 1 119
byte 1 110
byte 1 0
align 1
LABELV $309
byte 1 37
byte 1 105
byte 1 58
byte 1 37
byte 1 105
byte 1 37
byte 1 105
byte 1 0
align 1
LABELV $305
byte 1 37
byte 1 105
byte 1 102
byte 1 112
byte 1 115
byte 1 0
align 1
LABELV $289
byte 1 116
byte 1 105
byte 1 109
byte 1 101
byte 1 58
byte 1 37
byte 1 105
byte 1 32
byte 1 115
byte 1 110
byte 1 97
byte 1 112
byte 1 58
byte 1 37
byte 1 105
byte 1 32
byte 1 99
byte 1 109
byte 1 100
byte 1 58
byte 1 37
byte 1 105
byte 1 0
align 1
LABELV $287
byte 1 110
byte 1 0
