cg_servercmds.asm
themuffinator_dm-game/build/win32-qvm/vm/cgame/cg_servercmds.asm
code
proc CG_ParseScores 208 12
file "..\..\..\..\code\cgame\cg_servercmds.c"
line 15
;1:// Copyright (C) 1999-2000 Id Software, Inc.
;2://
;3:// cg_servercmds.c -- reliably sequenced text commands sent by the server
;4:// these are processed at snapshot transition time, so there will definately
;5:// be a valid snapshot this frame
;6:
;7:#include "cg_local.h"
;8:
;9:/*
;10:=================
;11:CG_ParseScores
;12:
;13:=================
;14:*/
;15:static void CG_ParseScores( void ) {
line 18
;16:	int		i, powerups;
;17:
;18:	cg.numScores = atoi( CG_Argv( 1 ) );
CNSTI4 1
ARGI4
ADDRLP4 8
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 8
INDIRP4
ARGP4
ADDRLP4 12
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cg+110476
ADDRLP4 12
INDIRI4
ASGNI4
line 19
;19:	if ( cg.numScores > MAX_CLIENTS ) {
ADDRGP4 cg+110476
INDIRI4
CNSTI4 64
LEI4 $75
line 20
;20:		cg.numScores = MAX_CLIENTS;
ADDRGP4 cg+110476
CNSTI4 64
ASGNI4
line 21
;21:	}
LABELV $75
line 23
;22:
;23:	cg.teamScores[0] = atoi( CG_Argv( 2 ) );
CNSTI4 2
ARGI4
ADDRLP4 16
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 16
INDIRP4
ARGP4
ADDRLP4 20
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cg+110484
ADDRLP4 20
INDIRI4
ASGNI4
line 24
;24:	cg.teamScores[1] = atoi( CG_Argv( 3 ) );
CNSTI4 3
ARGI4
ADDRLP4 24
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 24
INDIRP4
ARGP4
ADDRLP4 28
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cg+110484+4
ADDRLP4 28
INDIRI4
ASGNI4
line 26
;25:
;26:	memset( cg.scores, 0, sizeof( cg.scores ) );
ADDRGP4 cg+110492
ARGP4
CNSTI4 0
ARGI4
CNSTI4 4864
ARGI4
ADDRGP4 memset
CALLP4
pop
line 27
;27:	for ( i = 0 ; i < cg.numScores ; i++ ) {
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $87
JUMPV
LABELV $84
line 29
;28:		//
;29:		cg.scores[i].client = atoi( CG_Argv( i * 14 + 4 ) );
ADDRLP4 0
INDIRI4
CNSTI4 14
MULI4
CNSTI4 4
ADDI4
ARGI4
ADDRLP4 36
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 36
INDIRP4
ARGP4
ADDRLP4 40
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492
ADDP4
ADDRLP4 40
INDIRI4
ASGNI4
line 30
;30:		cg.scores[i].score = atoi( CG_Argv( i * 14 + 5 ) );
ADDRLP4 0
INDIRI4
CNSTI4 14
MULI4
CNSTI4 5
ADDI4
ARGI4
ADDRLP4 48
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 48
INDIRP4
ARGP4
ADDRLP4 52
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492+4
ADDP4
ADDRLP4 52
INDIRI4
ASGNI4
line 31
;31:		cg.scores[i].ping = atoi( CG_Argv( i * 14 + 6 ) );
ADDRLP4 0
INDIRI4
CNSTI4 14
MULI4
CNSTI4 6
ADDI4
ARGI4
ADDRLP4 60
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 60
INDIRP4
ARGP4
ADDRLP4 64
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492+8
ADDP4
ADDRLP4 64
INDIRI4
ASGNI4
line 32
;32:		cg.scores[i].time = atoi( CG_Argv( i * 14 + 7 ) );
ADDRLP4 0
INDIRI4
CNSTI4 14
MULI4
CNSTI4 7
ADDI4
ARGI4
ADDRLP4 72
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 72
INDIRP4
ARGP4
ADDRLP4 76
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492+12
ADDP4
ADDRLP4 76
INDIRI4
ASGNI4
line 33
;33:		cg.scores[i].scoreFlags = atoi( CG_Argv( i * 14 + 8 ) );
ADDRLP4 0
INDIRI4
CNSTI4 14
MULI4
CNSTI4 8
ADDI4
ARGI4
ADDRLP4 84
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 84
INDIRP4
ARGP4
ADDRLP4 88
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492+16
ADDP4
ADDRLP4 88
INDIRI4
ASGNI4
line 34
;34:		powerups = atoi( CG_Argv( i * 14 + 9 ) );
ADDRLP4 0
INDIRI4
CNSTI4 14
MULI4
CNSTI4 9
ADDI4
ARGI4
ADDRLP4 92
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 92
INDIRP4
ARGP4
ADDRLP4 96
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 4
ADDRLP4 96
INDIRI4
ASGNI4
line 35
;35:		cg.scores[i].accuracy = atoi(CG_Argv(i * 14 + 10));
ADDRLP4 0
INDIRI4
CNSTI4 14
MULI4
CNSTI4 10
ADDI4
ARGI4
ADDRLP4 104
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 104
INDIRP4
ARGP4
ADDRLP4 108
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492+24
ADDP4
ADDRLP4 108
INDIRI4
ASGNI4
line 36
;36:		cg.scores[i].impressiveCount = atoi(CG_Argv(i * 14 + 11));
ADDRLP4 0
INDIRI4
CNSTI4 14
MULI4
CNSTI4 11
ADDI4
ARGI4
ADDRLP4 116
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 116
INDIRP4
ARGP4
ADDRLP4 120
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492+28
ADDP4
ADDRLP4 120
INDIRI4
ASGNI4
line 37
;37:		cg.scores[i].excellentCount = atoi(CG_Argv(i * 14 + 12));
ADDRLP4 0
INDIRI4
CNSTI4 14
MULI4
CNSTI4 12
ADDI4
ARGI4
ADDRLP4 128
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 128
INDIRP4
ARGP4
ADDRLP4 132
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492+32
ADDP4
ADDRLP4 132
INDIRI4
ASGNI4
line 38
;38:		cg.scores[i].gauntletCount = atoi(CG_Argv(i * 14 + 13));
ADDRLP4 0
INDIRI4
CNSTI4 14
MULI4
CNSTI4 13
ADDI4
ARGI4
ADDRLP4 140
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 140
INDIRP4
ARGP4
ADDRLP4 144
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492+36
ADDP4
ADDRLP4 144
INDIRI4
ASGNI4
line 39
;39:		cg.scores[i].defendCount = atoi(CG_Argv(i * 14 + 14));
ADDRLP4 0
INDIRI4
CNSTI4 14
MULI4
CNSTI4 14
ADDI4
ARGI4
ADDRLP4 152
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 152
INDIRP4
ARGP4
ADDRLP4 156
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492+40
ADDP4
ADDRLP4 156
INDIRI4
ASGNI4
line 40
;40:		cg.scores[i].assistCount = atoi(CG_Argv(i * 14 + 15));
ADDRLP4 0
INDIRI4
CNSTI4 14
MULI4
CNSTI4 15
ADDI4
ARGI4
ADDRLP4 164
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 164
INDIRP4
ARGP4
ADDRLP4 168
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492+44
ADDP4
ADDRLP4 168
INDIRI4
ASGNI4
line 41
;41:		cg.scores[i].perfect = atoi(CG_Argv(i * 14 + 16));
ADDRLP4 0
INDIRI4
CNSTI4 14
MULI4
CNSTI4 16
ADDI4
ARGI4
ADDRLP4 176
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 176
INDIRP4
ARGP4
ADDRLP4 180
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492+52
ADDP4
ADDRLP4 180
INDIRI4
ASGNI4
line 42
;42:		cg.scores[i].captures = atoi(CG_Argv(i * 14 + 17));
ADDRLP4 0
INDIRI4
CNSTI4 14
MULI4
CNSTI4 17
ADDI4
ARGI4
ADDRLP4 188
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 188
INDIRP4
ARGP4
ADDRLP4 192
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492+48
ADDP4
ADDRLP4 192
INDIRI4
ASGNI4
line 44
;43:
;44:		if ( cg.scores[i].client < 0 || cg.scores[i].client >= MAX_CLIENTS ) {
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492
ADDP4
INDIRI4
CNSTI4 0
LTI4 $118
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492
ADDP4
INDIRI4
CNSTI4 64
LTI4 $114
LABELV $118
line 45
;45:			cg.scores[i].client = 0;
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492
ADDP4
CNSTI4 0
ASGNI4
line 46
;46:		}
LABELV $114
line 47
;47:		cgs.clientinfo[ cg.scores[i].client ].score = cg.scores[i].score;
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492
ADDP4
INDIRI4
CNSTI4 1652
MULI4
ADDRGP4 cgs+40996+68
ADDP4
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492+4
ADDP4
INDIRI4
ASGNI4
line 48
;48:		cgs.clientinfo[ cg.scores[i].client ].powerups = powerups;
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492
ADDP4
INDIRI4
CNSTI4 1652
MULI4
ADDRGP4 cgs+40996+108
ADDP4
ADDRLP4 4
INDIRI4
ASGNI4
line 50
;49:
;50:		cg.scores[i].team = cgs.clientinfo[cg.scores[i].client].team;
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492+56
ADDP4
ADDRLP4 0
INDIRI4
CNSTI4 76
MULI4
ADDRGP4 cg+110492
ADDP4
INDIRI4
CNSTI4 1652
MULI4
ADDRGP4 cgs+40996+36
ADDP4
INDIRI4
ASGNI4
line 51
;51:	}
LABELV $85
line 27
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $87
ADDRLP4 0
INDIRI4
ADDRGP4 cg+110476
INDIRI4
LTI4 $84
line 52
;52:}
LABELV $73
endproc CG_ParseScores 208 12
proc CG_ParseTeamInfo 64 4
line 60
;53:
;54:
;55:/*
;56:=================
;57:CG_ParseTeamInfo
;58:=================
;59:*/
;60:static void CG_ParseTeamInfo( void ) {
line 64
;61:	int		i;
;62:	int		client;
;63:
;64:	numSortedTeamPlayers = atoi( CG_Argv( 1 ) );
CNSTI4 1
ARGI4
ADDRLP4 8
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 8
INDIRP4
ARGP4
ADDRLP4 12
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 numSortedTeamPlayers
ADDRLP4 12
INDIRI4
ASGNI4
line 65
;65:	if( (unsigned) numSortedTeamPlayers > TEAM_MAXOVERLAY )
ADDRGP4 numSortedTeamPlayers
INDIRI4
CVIU4 4
CNSTU4 32
LEU4 $134
line 66
;66:		numSortedTeamPlayers = TEAM_MAXOVERLAY;
ADDRGP4 numSortedTeamPlayers
CNSTI4 32
ASGNI4
LABELV $134
line 68
;67:
;68:	for ( i = 0 ; i < numSortedTeamPlayers ; i++ ) {
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $139
JUMPV
LABELV $136
line 69
;69:		client = atoi( CG_Argv( i * 6 + 2 ) );
ADDRLP4 0
INDIRI4
CNSTI4 6
MULI4
CNSTI4 2
ADDI4
ARGI4
ADDRLP4 16
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 16
INDIRP4
ARGP4
ADDRLP4 20
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 4
ADDRLP4 20
INDIRI4
ASGNI4
line 70
;70:		if ( (unsigned) client >= MAX_CLIENTS )
ADDRLP4 4
INDIRI4
CVIU4 4
CNSTU4 64
LTU4 $140
line 71
;71:			continue;
ADDRGP4 $137
JUMPV
LABELV $140
line 73
;72:
;73:		sortedTeamPlayers[i] = client;
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 sortedTeamPlayers
ADDP4
ADDRLP4 4
INDIRI4
ASGNI4
line 75
;74:
;75:		cgs.clientinfo[ client ].location = atoi( CG_Argv( i * 6 + 3 ) );
ADDRLP4 0
INDIRI4
CNSTI4 6
MULI4
CNSTI4 3
ADDI4
ARGI4
ADDRLP4 24
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 24
INDIRP4
ARGP4
ADDRLP4 28
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 1652
MULI4
ADDRGP4 cgs+40996+72
ADDP4
ADDRLP4 28
INDIRI4
ASGNI4
line 76
;76:		cgs.clientinfo[ client ].health = atoi( CG_Argv( i * 6 + 4 ) );
ADDRLP4 0
INDIRI4
CNSTI4 6
MULI4
CNSTI4 4
ADDI4
ARGI4
ADDRLP4 32
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 32
INDIRP4
ARGP4
ADDRLP4 36
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 1652
MULI4
ADDRGP4 cgs+40996+76
ADDP4
ADDRLP4 36
INDIRI4
ASGNI4
line 77
;77:		cgs.clientinfo[ client ].armor = atoi( CG_Argv( i * 6 + 5 ) );
ADDRLP4 0
INDIRI4
CNSTI4 6
MULI4
CNSTI4 5
ADDI4
ARGI4
ADDRLP4 40
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 40
INDIRP4
ARGP4
ADDRLP4 44
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 1652
MULI4
ADDRGP4 cgs+40996+80
ADDP4
ADDRLP4 44
INDIRI4
ASGNI4
line 78
;78:		cgs.clientinfo[ client ].curWeapon = atoi( CG_Argv( i * 6 + 6 ) );
ADDRLP4 0
INDIRI4
CNSTI4 6
MULI4
CNSTI4 6
ADDI4
ARGI4
ADDRLP4 48
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 48
INDIRP4
ARGP4
ADDRLP4 52
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 1652
MULI4
ADDRGP4 cgs+40996+84
ADDP4
ADDRLP4 52
INDIRI4
ASGNI4
line 79
;79:		cgs.clientinfo[ client ].powerups = atoi( CG_Argv( i * 6 + 7 ) );
ADDRLP4 0
INDIRI4
CNSTI4 6
MULI4
CNSTI4 7
ADDI4
ARGI4
ADDRLP4 56
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 56
INDIRP4
ARGP4
ADDRLP4 60
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 1652
MULI4
ADDRGP4 cgs+40996+108
ADDP4
ADDRLP4 60
INDIRI4
ASGNI4
line 80
;80:	}
LABELV $137
line 68
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $139
ADDRLP4 0
INDIRI4
ADDRGP4 numSortedTeamPlayers
INDIRI4
LTI4 $136
line 81
;81:}
LABELV $133
endproc CG_ParseTeamInfo 64 4
export CG_ParseServerinfo
proc CG_ParseServerinfo 84 16
line 92
;82:
;83:
;84:/*
;85:================
;86:CG_ParseServerinfo
;87:
;88:This is called explicitly when the gamestate is first received,
;89:and whenever the server updates any serverinfo flagged cvars
;90:================
;91:*/
;92:void CG_ParseServerinfo( void ) {
line 96
;93:	const char	*info;
;94:	char	*mapname;
;95:
;96:	info = CG_ConfigString( CS_SERVERINFO );
CNSTI4 0
ARGI4
ADDRLP4 8
ADDRGP4 CG_ConfigString
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 8
INDIRP4
ASGNP4
line 97
;97:	cgs.gametype = atoi( Info_ValueForKey( info, "g_gametype" ) );
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $154
ARGP4
ADDRLP4 12
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 12
INDIRP4
ARGP4
ADDRLP4 16
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cgs+31480
ADDRLP4 16
INDIRI4
ASGNI4
line 98
;98:	trap_Cvar_Set( "ui_gametype", va( "%i", cgs.gametype ) );
ADDRGP4 $156
ARGP4
ADDRGP4 cgs+31480
INDIRI4
ARGI4
ADDRLP4 20
ADDRGP4 va
CALLP4
ASGNP4
ADDRGP4 $155
ARGP4
ADDRLP4 20
INDIRP4
ARGP4
ADDRGP4 trap_Cvar_Set
CALLV
pop
line 99
;99:	cgs.dmflags = atoi( Info_ValueForKey( info, "dmflags" ) );
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $159
ARGP4
ADDRLP4 24
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 24
INDIRP4
ARGP4
ADDRLP4 28
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cgs+31484
ADDRLP4 28
INDIRI4
ASGNI4
line 100
;100:	cgs.teamflags = atoi( Info_ValueForKey( info, "teamflags" ) );
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $161
ARGP4
ADDRLP4 32
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 32
INDIRP4
ARGP4
ADDRLP4 36
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cgs+31488
ADDRLP4 36
INDIRI4
ASGNI4
line 101
;101:	cgs.fraglimit = atoi( Info_ValueForKey( info, "fraglimit" ) );
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $163
ARGP4
ADDRLP4 40
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 40
INDIRP4
ARGP4
ADDRLP4 44
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cgs+31492
ADDRLP4 44
INDIRI4
ASGNI4
line 102
;102:	cgs.capturelimit = atoi( Info_ValueForKey( info, "capturelimit" ) );
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $165
ARGP4
ADDRLP4 48
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 48
INDIRP4
ARGP4
ADDRLP4 52
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cgs+31496
ADDRLP4 52
INDIRI4
ASGNI4
line 103
;103:	cgs.timelimit = atoi( Info_ValueForKey( info, "timelimit" ) );
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $167
ARGP4
ADDRLP4 56
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 56
INDIRP4
ARGP4
ADDRLP4 60
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cgs+31500
ADDRLP4 60
INDIRI4
ASGNI4
line 104
;104:	cgs.maxclients = atoi( Info_ValueForKey( info, "sv_maxclients" ) );
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $169
ARGP4
ADDRLP4 64
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 64
INDIRP4
ARGP4
ADDRLP4 68
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cgs+31504
ADDRLP4 68
INDIRI4
ASGNI4
line 105
;105:	mapname = Info_ValueForKey( info, "mapname" );
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $170
ARGP4
ADDRLP4 72
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 4
ADDRLP4 72
INDIRP4
ASGNP4
line 106
;106:	Com_sprintf( cgs.mapname, sizeof( cgs.mapname ), "maps/%s.bsp", mapname );
ADDRGP4 cgs+31508
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 $173
ARGP4
ADDRLP4 4
INDIRP4
ARGP4
ADDRGP4 Com_sprintf
CALLI4
pop
line 107
;107:	Q_strncpyz( cgs.redTeam, Info_ValueForKey( info, "g_redTeam" ), sizeof(cgs.redTeam) );
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $175
ARGP4
ADDRLP4 76
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRGP4 cgs+31572
ARGP4
ADDRLP4 76
INDIRP4
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 108
;108:	Q_strncpyz( cgs.blueTeam, Info_ValueForKey( info, "g_blueTeam" ), sizeof(cgs.blueTeam) );
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $178
ARGP4
ADDRLP4 80
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRGP4 cgs+31636
ARGP4
ADDRLP4 80
INDIRP4
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 109
;109:}
LABELV $152
endproc CG_ParseServerinfo 84 16
export CG_ParseSysteminfo
proc CG_ParseSysteminfo 40 8
line 112
;110:
;111:
;112:void CG_ParseSysteminfo( void ) {
line 115
;113:	const char	*info;
;114:
;115:	info = CG_ConfigString( CS_SYSTEMINFO );
CNSTI4 1
ARGI4
ADDRLP4 4
ADDRGP4 CG_ConfigString
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 4
INDIRP4
ASGNP4
line 117
;116:
;117:	cgs.pmove_fixed = ( atoi( Info_ValueForKey( info, "pmove_fixed" ) ) ) ? qtrue : qfalse;
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $182
ARGP4
ADDRLP4 12
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 12
INDIRP4
ARGP4
ADDRLP4 16
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 16
INDIRI4
CNSTI4 0
EQI4 $184
ADDRLP4 8
CNSTI4 1
ASGNI4
ADDRGP4 $185
JUMPV
LABELV $184
ADDRLP4 8
CNSTI4 0
ASGNI4
LABELV $185
ADDRGP4 cgs+149896
ADDRLP4 8
INDIRI4
ASGNI4
line 118
;118:	cgs.pmove_msec = atoi( Info_ValueForKey( info, "pmove_msec" ) );
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $187
ARGP4
ADDRLP4 20
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 20
INDIRP4
ARGP4
ADDRLP4 24
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cgs+149900
ADDRLP4 24
INDIRI4
ASGNI4
line 119
;119:	if ( cgs.pmove_msec < 8 ) {
ADDRGP4 cgs+149900
INDIRI4
CNSTI4 8
GEI4 $188
line 120
;120:		cgs.pmove_msec = 8;
ADDRGP4 cgs+149900
CNSTI4 8
ASGNI4
line 121
;121:	} else if ( cgs.pmove_msec > 33 ) {
ADDRGP4 $189
JUMPV
LABELV $188
ADDRGP4 cgs+149900
INDIRI4
CNSTI4 33
LEI4 $192
line 122
;122:		cgs.pmove_msec = 33;
ADDRGP4 cgs+149900
CNSTI4 33
ASGNI4
line 123
;123:	}
LABELV $192
LABELV $189
line 125
;124:
;125:	cgs.synchronousClients = ( atoi( Info_ValueForKey( info, "g_synchronousClients" ) ) ) ? qtrue : qfalse;
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $197
ARGP4
ADDRLP4 32
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 32
INDIRP4
ARGP4
ADDRLP4 36
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 36
INDIRI4
CNSTI4 0
EQI4 $199
ADDRLP4 28
CNSTI4 1
ASGNI4
ADDRGP4 $200
JUMPV
LABELV $199
ADDRLP4 28
CNSTI4 0
ASGNI4
LABELV $200
ADDRGP4 cgs+149904
ADDRLP4 28
INDIRI4
ASGNI4
line 126
;126:}
LABELV $180
endproc CG_ParseSysteminfo 40 8
proc CG_ParseWarmup 24 4
line 134
;127:
;128:
;129:/*
;130:==================
;131:CG_ParseWarmup
;132:==================
;133:*/
;134:static void CG_ParseWarmup( void ) {
line 138
;135:	const char	*info;
;136:	int			warmup;
;137:
;138:	info = CG_ConfigString( CS_WARMUP );
CNSTI4 5
ARGI4
ADDRLP4 8
ADDRGP4 CG_ConfigString
CALLP4
ASGNP4
ADDRLP4 4
ADDRLP4 8
INDIRP4
ASGNP4
line 140
;139:
;140:	warmup = atoi( info );
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 12
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
ADDRLP4 12
INDIRI4
ASGNI4
line 141
;141:	cg.warmupCount = -1;
ADDRGP4 cg+125760
CNSTI4 -1
ASGNI4
line 143
;142:
;143:	if ( warmup ) {
ADDRLP4 0
INDIRI4
CNSTI4 0
EQI4 $203
line 144
;144:		cg.timelimitWarnings |= 1 | 2 | 4;
ADDRLP4 16
ADDRGP4 cg+107616
ASGNP4
ADDRLP4 16
INDIRP4
ADDRLP4 16
INDIRP4
INDIRI4
CNSTI4 7
BORI4
ASGNI4
line 145
;145:		cg.fraglimitWarnings |= 1 | 2 | 4;
ADDRLP4 20
ADDRGP4 cg+107620
ASGNP4
ADDRLP4 20
INDIRP4
ADDRLP4 20
INDIRP4
INDIRI4
CNSTI4 7
BORI4
ASGNI4
line 146
;146:	}
LABELV $203
line 148
;147:
;148:	if ( cg.clientFrame == 0 ) {
ADDRGP4 cg
INDIRI4
CNSTI4 0
NEI4 $207
line 149
;149:		if ( warmup == 0 && cgs.gametype != GT_CAMPAIGN ) {
ADDRLP4 0
INDIRI4
CNSTI4 0
NEI4 $209
ADDRGP4 cgs+31480
INDIRI4
CNSTI4 0
EQI4 $209
line 150
;150:			if ( cg.snap && ( cg.snap->ps.persistant[PERS_TEAM] != TEAM_SPECTATOR || cg.snap->ps.pm_flags & PMF_FOLLOW ) ) {
ADDRGP4 cg+36
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $201
ADDRGP4 cg+36
INDIRP4
CNSTI4 304
ADDP4
INDIRI4
CNSTI4 3
NEI4 $217
ADDRGP4 cg+36
INDIRP4
CNSTI4 56
ADDP4
INDIRI4
CNSTI4 4096
BANDI4
CNSTI4 0
EQI4 $201
LABELV $217
line 152
;151:				// force sound playback in CG_WarmupEvents()
;152:				cg.warmup = cg.time;
ADDRGP4 cg+125756
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 153
;153:				cg.warmupCount = -2; // special value to silent FIGHT sound for demo playback
ADDRGP4 cg+125760
CNSTI4 -2
ASGNI4
line 154
;154:			}
line 155
;155:			return;
ADDRGP4 $201
JUMPV
LABELV $209
line 157
;156:		}
;157:	}
LABELV $207
line 159
;158:
;159:	if ( warmup == 0 && cg.warmup ) {
ADDRLP4 0
INDIRI4
CNSTI4 0
NEI4 $221
ADDRGP4 cg+125756
INDIRI4
CNSTI4 0
EQI4 $221
line 161
;160:
;161:	} else if ( warmup > 0 && cg.warmup <= 0 ) {
ADDRGP4 $222
JUMPV
LABELV $221
ADDRLP4 0
INDIRI4
CNSTI4 0
LEI4 $224
ADDRGP4 cg+125756
INDIRI4
CNSTI4 0
GTI4 $224
line 162
;162:		{
line 163
;163:			if ( cg.soundPlaying != cgs.media.countPrepareSound ) {
ADDRGP4 cg+125752
INDIRI4
ADDRGP4 cgs+148692+1120
INDIRI4
EQI4 $227
line 164
;164:				CG_AddBufferedSound( -1 );
CNSTI4 -1
ARGI4
ADDRGP4 CG_AddBufferedSound
CALLV
pop
line 165
;165:				CG_AddBufferedSound( cgs.media.countPrepareSound );
ADDRGP4 cgs+148692+1120
INDIRI4
ARGI4
ADDRGP4 CG_AddBufferedSound
CALLV
pop
line 166
;166:				cg.soundTime = cg.time + 1; // play in next frame
ADDRGP4 cg+125668
ADDRGP4 cg+107604
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 167
;167:			}
LABELV $227
line 168
;168:		}
line 169
;169:	}
LABELV $224
LABELV $222
line 171
;170:
;171:	cg.warmup = warmup;
ADDRGP4 cg+125756
ADDRLP4 0
INDIRI4
ASGNI4
line 172
;172:}
LABELV $201
endproc CG_ParseWarmup 24 4
export CG_SetConfigValues
proc CG_SetConfigValues 32 4
line 182
;173:
;174:
;175:/*
;176:================
;177:CG_SetConfigValues
;178:
;179:Called on load to set the initial values from configure strings
;180:================
;181:*/
;182:void CG_SetConfigValues( void ) {
line 185
;183:	const char *s;
;184:
;185:	cgs.scores1 = atoi( CG_ConfigString( CS_SCORES1 ) );
CNSTI4 6
ARGI4
ADDRLP4 4
ADDRGP4 CG_ConfigString
CALLP4
ASGNP4
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 8
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cgs+34824
ADDRLP4 8
INDIRI4
ASGNI4
line 186
;186:	cgs.scores2 = atoi( CG_ConfigString( CS_SCORES2 ) );
CNSTI4 7
ARGI4
ADDRLP4 12
ADDRGP4 CG_ConfigString
CALLP4
ASGNP4
ADDRLP4 12
INDIRP4
ARGP4
ADDRLP4 16
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cgs+34828
ADDRLP4 16
INDIRI4
ASGNI4
line 187
;187:	cgs.levelStartTime = atoi( CG_ConfigString( CS_LEVEL_START_TIME ) );
CNSTI4 21
ARGI4
ADDRLP4 20
ADDRGP4 CG_ConfigString
CALLP4
ASGNP4
ADDRLP4 20
INDIRP4
ARGP4
ADDRLP4 24
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cgs+34820
ADDRLP4 24
INDIRI4
ASGNI4
line 188
;188:	if( cgs.gametype == GT_CTF ) {
ADDRGP4 cgs+31480
INDIRI4
CNSTI4 4
NEI4 $241
line 189
;189:		s = CG_ConfigString( CS_FLAGSTATUS );
CNSTI4 23
ARGI4
ADDRLP4 28
ADDRGP4 CG_ConfigString
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 28
INDIRP4
ASGNP4
line 190
;190:		cgs.redflag = s[0] - '0';
ADDRGP4 cgs+34832
ADDRLP4 0
INDIRP4
INDIRI1
CVII4 1
CNSTI4 48
SUBI4
ASGNI4
line 191
;191:		cgs.blueflag = s[1] - '0';
ADDRGP4 cgs+34836
ADDRLP4 0
INDIRP4
CNSTI4 1
ADDP4
INDIRI1
CVII4 1
CNSTI4 48
SUBI4
ASGNI4
line 192
;192:	}
ADDRGP4 $242
JUMPV
LABELV $241
line 193
;193:	else if( cgs.gametype == GT_ONEFLAG ) {
ADDRGP4 cgs+31480
INDIRI4
CNSTI4 5
NEI4 $246
line 194
;194:		s = CG_ConfigString( CS_FLAGSTATUS );
CNSTI4 23
ARGI4
ADDRLP4 28
ADDRGP4 CG_ConfigString
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 28
INDIRP4
ASGNP4
line 195
;195:		cgs.flagStatus = s[0] - '0';
ADDRGP4 cgs+34840
ADDRLP4 0
INDIRP4
INDIRI1
CVII4 1
CNSTI4 48
SUBI4
ASGNI4
line 196
;196:	}
LABELV $246
LABELV $242
line 197
;197:	CG_ParseWarmup();
ADDRGP4 CG_ParseWarmup
CALLV
pop
line 198
;198:}
LABELV $237
endproc CG_SetConfigValues 32 4
export CG_ShaderStateChanged
proc CG_ShaderStateChanged 180 12
line 206
;199:
;200:
;201:/*
;202:=====================
;203:CG_ShaderStateChanged
;204:=====================
;205:*/
;206:void CG_ShaderStateChanged(void) {
line 213
;207:	char originalShader[MAX_QPATH];
;208:	char newShader[MAX_QPATH];
;209:	char timeOffset[16];
;210:	const char *o;
;211:	char *n,*t;
;212:
;213:	o = CG_ConfigString( CS_SHADERSTATE );
CNSTI4 24
ARGI4
ADDRLP4 156
ADDRGP4 CG_ConfigString
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 156
INDIRP4
ASGNP4
ADDRGP4 $252
JUMPV
LABELV $251
line 214
;214:	while (o && *o) {
line 215
;215:		n = strchr(o, '=');
ADDRLP4 0
INDIRP4
ARGP4
CNSTI4 61
ARGI4
ADDRLP4 160
ADDRGP4 strchr
CALLP4
ASGNP4
ADDRLP4 4
ADDRLP4 160
INDIRP4
ASGNP4
line 216
;216:		if (n) {
ADDRLP4 4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $253
line 217
;217:			strncpy(originalShader, o, n-o);
ADDRLP4 12
ARGP4
ADDRLP4 0
INDIRP4
ARGP4
ADDRLP4 4
INDIRP4
CVPU4 4
ADDRLP4 0
INDIRP4
CVPU4 4
SUBU4
CVUI4 4
ARGI4
ADDRGP4 strncpy
CALLP4
pop
line 218
;218:			originalShader[n-o] = '\0';
ADDRLP4 4
INDIRP4
CVPU4 4
ADDRLP4 0
INDIRP4
CVPU4 4
SUBU4
CVUI4 4
ADDRLP4 12
ADDP4
CNSTI1 0
ASGNI1
line 219
;219:			n++;
ADDRLP4 4
ADDRLP4 4
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
line 220
;220:			t = strchr(n, ':');
ADDRLP4 4
INDIRP4
ARGP4
CNSTI4 58
ARGI4
ADDRLP4 168
ADDRGP4 strchr
CALLP4
ASGNP4
ADDRLP4 8
ADDRLP4 168
INDIRP4
ASGNP4
line 221
;221:			if (t) {
ADDRLP4 8
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $253
line 222
;222:				strncpy(newShader, n, t-n);
ADDRLP4 76
ARGP4
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 8
INDIRP4
CVPU4 4
ADDRLP4 4
INDIRP4
CVPU4 4
SUBU4
CVUI4 4
ARGI4
ADDRGP4 strncpy
CALLP4
pop
line 223
;223:				newShader[t-n] = '\0';
ADDRLP4 8
INDIRP4
CVPU4 4
ADDRLP4 4
INDIRP4
CVPU4 4
SUBU4
CVUI4 4
ADDRLP4 76
ADDP4
CNSTI1 0
ASGNI1
line 224
;224:			} else {
line 225
;225:				break;
LABELV $257
line 227
;226:			}
;227:			t++;
ADDRLP4 8
ADDRLP4 8
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
line 228
;228:			o = strchr(t, '@');
ADDRLP4 8
INDIRP4
ARGP4
CNSTI4 64
ARGI4
ADDRLP4 172
ADDRGP4 strchr
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 172
INDIRP4
ASGNP4
line 229
;229:			if (o) {
ADDRLP4 0
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $255
line 230
;230:				strncpy(timeOffset, t, o-t);
ADDRLP4 140
ARGP4
ADDRLP4 8
INDIRP4
ARGP4
ADDRLP4 0
INDIRP4
CVPU4 4
ADDRLP4 8
INDIRP4
CVPU4 4
SUBU4
CVUI4 4
ARGI4
ADDRGP4 strncpy
CALLP4
pop
line 231
;231:				timeOffset[o-t] = 0;
ADDRLP4 0
INDIRP4
CVPU4 4
ADDRLP4 8
INDIRP4
CVPU4 4
SUBU4
CVUI4 4
ADDRLP4 140
ADDP4
CNSTI1 0
ASGNI1
line 232
;232:				o++;
ADDRLP4 0
ADDRLP4 0
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
line 233
;233:				trap_R_RemapShader( originalShader, newShader, timeOffset );
ADDRLP4 12
ARGP4
ADDRLP4 76
ARGP4
ADDRLP4 140
ARGP4
ADDRGP4 trap_R_RemapShader
CALLV
pop
line 234
;234:			}
line 235
;235:		} else {
line 236
;236:			break;
LABELV $255
line 238
;237:		}
;238:	}
LABELV $252
line 214
ADDRLP4 0
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $260
ADDRLP4 0
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $251
LABELV $260
LABELV $253
line 239
;239:}
LABELV $250
endproc CG_ShaderStateChanged 180 12
proc CG_ConfigStringModified 48 12
line 248
;240:
;241:
;242:/*
;243:================
;244:CG_ConfigStringModified
;245:
;246:================
;247:*/
;248:static void CG_ConfigStringModified( void ) {
line 252
;249:	const char	*str;
;250:	int		num;
;251:
;252:	num = atoi( CG_Argv( 1 ) );
CNSTI4 1
ARGI4
ADDRLP4 8
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 8
INDIRP4
ARGP4
ADDRLP4 12
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
ADDRLP4 12
INDIRI4
ASGNI4
line 256
;253:
;254:	// get the gamestate from the client system, which will have the
;255:	// new configstring already integrated
;256:	trap_GetGameState( &cgs.gameState );
ADDRGP4 cgs
ARGP4
ADDRGP4 trap_GetGameState
CALLV
pop
line 259
;257:
;258:	// look up the individual string that was modified
;259:	str = CG_ConfigString( num );
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 16
ADDRGP4 CG_ConfigString
CALLP4
ASGNP4
ADDRLP4 4
ADDRLP4 16
INDIRP4
ASGNP4
line 262
;260:
;261:	// do something with it if necessary
;262:	if ( num == CS_MUSIC ) {
ADDRLP4 0
INDIRI4
CNSTI4 2
NEI4 $262
line 263
;263:		CG_StartMusic();
ADDRGP4 CG_StartMusic
CALLV
pop
line 264
;264:	} else if ( num == CS_SYSTEMINFO ) {
ADDRGP4 $263
JUMPV
LABELV $262
ADDRLP4 0
INDIRI4
CNSTI4 1
NEI4 $264
line 265
;265:		CG_ParseSysteminfo();
ADDRGP4 CG_ParseSysteminfo
CALLV
pop
line 266
;266:	} else if ( num == CS_SERVERINFO ) {
ADDRGP4 $265
JUMPV
LABELV $264
ADDRLP4 0
INDIRI4
CNSTI4 0
NEI4 $266
line 267
;267:		CG_ParseServerinfo();
ADDRGP4 CG_ParseServerinfo
CALLV
pop
line 268
;268:	} else if ( num == CS_WARMUP ) {
ADDRGP4 $267
JUMPV
LABELV $266
ADDRLP4 0
INDIRI4
CNSTI4 5
NEI4 $268
line 269
;269:		CG_ParseWarmup();
ADDRGP4 CG_ParseWarmup
CALLV
pop
line 270
;270:	} else if ( num == CS_SCORES1 ) {
ADDRGP4 $269
JUMPV
LABELV $268
ADDRLP4 0
INDIRI4
CNSTI4 6
NEI4 $270
line 271
;271:		cgs.scores1 = atoi( str );
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 20
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cgs+34824
ADDRLP4 20
INDIRI4
ASGNI4
line 272
;272:	} else if ( num == CS_SCORES2 ) {
ADDRGP4 $271
JUMPV
LABELV $270
ADDRLP4 0
INDIRI4
CNSTI4 7
NEI4 $273
line 273
;273:		cgs.scores2 = atoi( str );
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 20
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cgs+34828
ADDRLP4 20
INDIRI4
ASGNI4
line 274
;274:	} else if ( num == CS_LEVEL_START_TIME ) {
ADDRGP4 $274
JUMPV
LABELV $273
ADDRLP4 0
INDIRI4
CNSTI4 21
NEI4 $276
line 275
;275:		cgs.levelStartTime = atoi( str );
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 20
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cgs+34820
ADDRLP4 20
INDIRI4
ASGNI4
line 276
;276:	} else if ( num == CS_VOTE_TIME ) {
ADDRGP4 $277
JUMPV
LABELV $276
ADDRLP4 0
INDIRI4
CNSTI4 8
NEI4 $279
line 277
;277:		cgs.voteTime = atoi( str );
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 20
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cgs+31700
ADDRLP4 20
INDIRI4
ASGNI4
line 278
;278:		cgs.voteModified = qtrue;
ADDRGP4 cgs+31712
CNSTI4 1
ASGNI4
line 279
;279:	} else if ( num == CS_VOTE_YES ) {
ADDRGP4 $280
JUMPV
LABELV $279
ADDRLP4 0
INDIRI4
CNSTI4 10
NEI4 $283
line 280
;280:		cgs.voteYes = atoi( str );
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 20
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cgs+31704
ADDRLP4 20
INDIRI4
ASGNI4
line 281
;281:		cgs.voteModified = qtrue;
ADDRGP4 cgs+31712
CNSTI4 1
ASGNI4
line 282
;282:	} else if ( num == CS_VOTE_NO ) {
ADDRGP4 $284
JUMPV
LABELV $283
ADDRLP4 0
INDIRI4
CNSTI4 11
NEI4 $287
line 283
;283:		cgs.voteNo = atoi( str );
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 20
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cgs+31708
ADDRLP4 20
INDIRI4
ASGNI4
line 284
;284:		cgs.voteModified = qtrue;
ADDRGP4 cgs+31712
CNSTI4 1
ASGNI4
line 285
;285:	} else if ( num == CS_VOTE_STRING ) {
ADDRGP4 $288
JUMPV
LABELV $287
ADDRLP4 0
INDIRI4
CNSTI4 9
NEI4 $291
line 286
;286:		Q_strncpyz( cgs.voteString, str, sizeof( cgs.voteString ) );
ADDRGP4 cgs+31716
ARGP4
ADDRLP4 4
INDIRP4
ARGP4
CNSTI4 1024
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 287
;287:	} else if ( num >= CS_TEAMVOTE_TIME && num <= CS_TEAMVOTE_TIME + 1) {
ADDRGP4 $292
JUMPV
LABELV $291
ADDRLP4 0
INDIRI4
CNSTI4 12
LTI4 $295
ADDRLP4 0
INDIRI4
CNSTI4 13
GTI4 $295
line 288
;288:		cgs.teamVoteTime[num-CS_TEAMVOTE_TIME] = atoi( str );
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 24
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 cgs+32740-48
ADDP4
ADDRLP4 24
INDIRI4
ASGNI4
line 289
;289:		cgs.teamVoteModified[num-CS_TEAMVOTE_TIME] = qtrue;
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 cgs+32764-48
ADDP4
CNSTI4 1
ASGNI4
line 290
;290:	} else if ( num >= CS_TEAMVOTE_YES && num <= CS_TEAMVOTE_YES + 1) {
ADDRGP4 $296
JUMPV
LABELV $295
ADDRLP4 0
INDIRI4
CNSTI4 16
LTI4 $301
ADDRLP4 0
INDIRI4
CNSTI4 17
GTI4 $301
line 291
;291:		cgs.teamVoteYes[num-CS_TEAMVOTE_YES] = atoi( str );
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 28
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 cgs+32748-64
ADDP4
ADDRLP4 28
INDIRI4
ASGNI4
line 292
;292:		cgs.teamVoteModified[num-CS_TEAMVOTE_YES] = qtrue;
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 cgs+32764-64
ADDP4
CNSTI4 1
ASGNI4
line 293
;293:	} else if ( num >= CS_TEAMVOTE_NO && num <= CS_TEAMVOTE_NO + 1) {
ADDRGP4 $302
JUMPV
LABELV $301
ADDRLP4 0
INDIRI4
CNSTI4 18
LTI4 $307
ADDRLP4 0
INDIRI4
CNSTI4 19
GTI4 $307
line 294
;294:		cgs.teamVoteNo[num-CS_TEAMVOTE_NO] = atoi( str );
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 32
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 cgs+32756-72
ADDP4
ADDRLP4 32
INDIRI4
ASGNI4
line 295
;295:		cgs.teamVoteModified[num-CS_TEAMVOTE_NO] = qtrue;
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 cgs+32764-72
ADDP4
CNSTI4 1
ASGNI4
line 296
;296:	} else if ( num >= CS_TEAMVOTE_STRING && num <= CS_TEAMVOTE_STRING + 1) {
ADDRGP4 $308
JUMPV
LABELV $307
ADDRLP4 0
INDIRI4
CNSTI4 14
LTI4 $313
ADDRLP4 0
INDIRI4
CNSTI4 15
GTI4 $313
line 297
;297:		Q_strncpyz( cgs.teamVoteString[num-CS_TEAMVOTE_STRING], str, sizeof( cgs.teamVoteString[0] ) );
ADDRLP4 0
INDIRI4
CNSTI4 10
LSHI4
ADDRGP4 cgs+32772-14336
ADDP4
ARGP4
ADDRLP4 4
INDIRP4
ARGP4
CNSTI4 1024
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 298
;298:	} else if ( num == CS_INTERMISSION ) {
ADDRGP4 $314
JUMPV
LABELV $313
ADDRLP4 0
INDIRI4
CNSTI4 22
NEI4 $318
line 299
;299:		cg.intermissionStarted = atoi( str );
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 36
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 cg+24
ADDRLP4 36
INDIRI4
ASGNI4
line 300
;300:	} else if ( num >= CS_MODELS && num < CS_MODELS+MAX_MODELS ) {
ADDRGP4 $319
JUMPV
LABELV $318
ADDRLP4 0
INDIRI4
CNSTI4 32
LTI4 $321
ADDRLP4 0
INDIRI4
CNSTI4 288
GEI4 $321
line 301
;301:		cgs.gameModels[ num-CS_MODELS ] = trap_R_RegisterModel( str );
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 40
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 cgs+34848-128
ADDP4
ADDRLP4 40
INDIRI4
ASGNI4
line 302
;302:	} else if ( num >= CS_SOUNDS && num < CS_SOUNDS+MAX_SOUNDS ) {
ADDRGP4 $322
JUMPV
LABELV $321
ADDRLP4 0
INDIRI4
CNSTI4 288
LTI4 $325
ADDRLP4 0
INDIRI4
CNSTI4 544
GEI4 $325
line 303
;303:		if ( str[0] != '*' ) {	// player specific sounds don't register here
ADDRLP4 4
INDIRP4
INDIRI1
CVII4 1
CNSTI4 42
EQI4 $326
line 304
;304:			cgs.gameSounds[ num-CS_SOUNDS] = trap_S_RegisterSound( str, qfalse );
ADDRLP4 4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 44
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 cgs+35872-1152
ADDP4
ADDRLP4 44
INDIRI4
ASGNI4
line 305
;305:		}
line 306
;306:	} else if ( num >= CS_PLAYERS && num < CS_PLAYERS+MAX_CLIENTS ) {
ADDRGP4 $326
JUMPV
LABELV $325
ADDRLP4 0
INDIRI4
CNSTI4 544
LTI4 $331
ADDRLP4 0
INDIRI4
CNSTI4 608
GEI4 $331
line 307
;307:		CG_NewClientInfo( num - CS_PLAYERS );
ADDRLP4 0
INDIRI4
CNSTI4 544
SUBI4
ARGI4
ADDRGP4 CG_NewClientInfo
CALLV
pop
line 308
;308:		CG_BuildSpectatorString();
ADDRGP4 CG_BuildSpectatorString
CALLV
pop
line 309
;309:	} else if ( num == CS_FLAGSTATUS ) {
ADDRGP4 $332
JUMPV
LABELV $331
ADDRLP4 0
INDIRI4
CNSTI4 23
NEI4 $333
line 310
;310:		if( cgs.gametype == GT_CTF ) {
ADDRGP4 cgs+31480
INDIRI4
CNSTI4 4
NEI4 $335
line 312
;311:			// format is rb where its red/blue, 0 is at base, 1 is taken, 2 is dropped
;312:			cgs.redflag = str[0] - '0';
ADDRGP4 cgs+34832
ADDRLP4 4
INDIRP4
INDIRI1
CVII4 1
CNSTI4 48
SUBI4
ASGNI4
line 313
;313:			cgs.blueflag = str[1] - '0';
ADDRGP4 cgs+34836
ADDRLP4 4
INDIRP4
CNSTI4 1
ADDP4
INDIRI1
CVII4 1
CNSTI4 48
SUBI4
ASGNI4
line 314
;314:		}
ADDRGP4 $334
JUMPV
LABELV $335
line 315
;315:		else if( cgs.gametype == GT_ONEFLAG ) {
ADDRGP4 cgs+31480
INDIRI4
CNSTI4 5
NEI4 $334
line 316
;316:			cgs.flagStatus = str[0] - '0';
ADDRGP4 cgs+34840
ADDRLP4 4
INDIRP4
INDIRI1
CVII4 1
CNSTI4 48
SUBI4
ASGNI4
line 317
;317:		}
line 318
;318:	}
ADDRGP4 $334
JUMPV
LABELV $333
line 319
;319:	else if ( num == CS_SHADERSTATE ) {
ADDRLP4 0
INDIRI4
CNSTI4 24
NEI4 $344
line 320
;320:		CG_ShaderStateChanged();
ADDRGP4 CG_ShaderStateChanged
CALLV
pop
line 321
;321:	}
LABELV $344
LABELV $334
LABELV $332
LABELV $326
LABELV $322
LABELV $319
LABELV $314
LABELV $308
LABELV $302
LABELV $296
LABELV $292
LABELV $288
LABELV $284
LABELV $280
LABELV $277
LABELV $274
LABELV $271
LABELV $269
LABELV $267
LABELV $265
LABELV $263
line 323
;322:		
;323:}
LABELV $261
endproc CG_ConfigStringModified 48 12
proc CG_AddToTeamChat 40 0
line 332
;324:
;325:
;326:/*
;327:=======================
;328:CG_AddToTeamChat
;329:
;330:=======================
;331:*/
;332:static void CG_AddToTeamChat( const char *str ) {
line 338
;333:	int len;
;334:	char *p, *ls;
;335:	int lastcolor;
;336:	int chatHeight;
;337:
;338:	if (cg_teamChatHeight.integer < TEAMCHAT_HEIGHT) {
ADDRGP4 cg_teamChatHeight+12
INDIRI4
CNSTI4 8
GEI4 $347
line 339
;339:		chatHeight = cg_teamChatHeight.integer;
ADDRLP4 12
ADDRGP4 cg_teamChatHeight+12
INDIRI4
ASGNI4
line 340
;340:	} else {
ADDRGP4 $348
JUMPV
LABELV $347
line 341
;341:		chatHeight = TEAMCHAT_HEIGHT;
ADDRLP4 12
CNSTI4 8
ASGNI4
line 342
;342:	}
LABELV $348
line 344
;343:
;344:	if (chatHeight <= 0 || cg_teamChatTime.integer <= 0) {
ADDRLP4 12
INDIRI4
CNSTI4 0
LEI4 $354
ADDRGP4 cg_teamChatTime+12
INDIRI4
CNSTI4 0
GTI4 $351
LABELV $354
line 346
;345:		// team chat disabled, dump into normal chat
;346:		cgs.teamChatPos = cgs.teamLastChatPos = 0;
ADDRLP4 20
CNSTI4 0
ASGNI4
ADDRGP4 cgs+148688
ADDRLP4 20
INDIRI4
ASGNI4
ADDRGP4 cgs+148684
ADDRLP4 20
INDIRI4
ASGNI4
line 347
;347:		return;
ADDRGP4 $346
JUMPV
LABELV $351
line 350
;348:	}
;349:
;350:	len = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
line 352
;351:
;352:	p = cgs.teamChatMsgs[cgs.teamChatPos % chatHeight];
ADDRLP4 0
ADDRGP4 cgs+148684
INDIRI4
ADDRLP4 12
INDIRI4
MODI4
CNSTI4 241
MULI4
ADDRGP4 cgs+146724
ADDP4
ASGNP4
line 353
;353:	*p = 0;
ADDRLP4 0
INDIRP4
CNSTI1 0
ASGNI1
line 355
;354:
;355:	lastcolor = '7';
ADDRLP4 16
CNSTI4 55
ASGNI4
line 357
;356:
;357:	ls = NULL;
ADDRLP4 8
CNSTP4 0
ASGNP4
ADDRGP4 $360
JUMPV
LABELV $359
line 358
;358:	while (*str) {
line 359
;359:		if (len > TEAMCHAT_WIDTH - 1) {
ADDRLP4 4
INDIRI4
CNSTI4 79
LEI4 $362
line 360
;360:			if (ls) {
ADDRLP4 8
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $364
line 361
;361:				str -= (p - ls);
ADDRFP4 0
ADDRFP4 0
INDIRP4
ADDRLP4 0
INDIRP4
CVPU4 4
ADDRLP4 8
INDIRP4
CVPU4 4
SUBU4
CVUI4 4
SUBP4
ASGNP4
line 362
;362:				str++;
ADDRFP4 0
ADDRFP4 0
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
line 363
;363:				p -= (p - ls);
ADDRLP4 0
ADDRLP4 0
INDIRP4
ADDRLP4 0
INDIRP4
CVPU4 4
ADDRLP4 8
INDIRP4
CVPU4 4
SUBU4
CVUI4 4
SUBP4
ASGNP4
line 364
;364:			}
LABELV $364
line 365
;365:			*p = 0;
ADDRLP4 0
INDIRP4
CNSTI1 0
ASGNI1
line 367
;366:
;367:			cgs.teamChatMsgTimes[cgs.teamChatPos % chatHeight] = cg.time;
ADDRGP4 cgs+148684
INDIRI4
ADDRLP4 12
INDIRI4
MODI4
CNSTI4 2
LSHI4
ADDRGP4 cgs+148652
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 369
;368:
;369:			cgs.teamChatPos++;
ADDRLP4 20
ADDRGP4 cgs+148684
ASGNP4
ADDRLP4 20
INDIRP4
ADDRLP4 20
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 370
;370:			p = cgs.teamChatMsgs[cgs.teamChatPos % chatHeight];
ADDRLP4 0
ADDRGP4 cgs+148684
INDIRI4
ADDRLP4 12
INDIRI4
MODI4
CNSTI4 241
MULI4
ADDRGP4 cgs+146724
ADDP4
ASGNP4
line 371
;371:			*p = 0;
ADDRLP4 0
INDIRP4
CNSTI1 0
ASGNI1
line 372
;372:			*p++ = Q_COLOR_ESCAPE;
ADDRLP4 24
ADDRLP4 0
INDIRP4
ASGNP4
ADDRLP4 0
ADDRLP4 24
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
ADDRLP4 24
INDIRP4
CNSTI1 94
ASGNI1
line 373
;373:			*p++ = lastcolor;
ADDRLP4 28
ADDRLP4 0
INDIRP4
ASGNP4
ADDRLP4 0
ADDRLP4 28
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
ADDRLP4 28
INDIRP4
ADDRLP4 16
INDIRI4
CVII1 4
ASGNI1
line 374
;374:			len = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
line 375
;375:			ls = NULL;
ADDRLP4 8
CNSTP4 0
ASGNP4
line 376
;376:		}
LABELV $362
line 378
;377:
;378:		if ( Q_IsColorString( str ) ) {
ADDRLP4 20
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $372
ADDRLP4 20
INDIRP4
INDIRI1
CVII4 1
CNSTI4 94
NEI4 $372
ADDRLP4 20
INDIRP4
CNSTI4 1
ADDP4
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $372
ADDRLP4 20
INDIRP4
CNSTI4 1
ADDP4
INDIRI1
CVII4 1
CNSTI4 94
EQI4 $372
line 379
;379:			*p++ = *str++;
ADDRLP4 24
ADDRLP4 0
INDIRP4
ASGNP4
ADDRLP4 0
ADDRLP4 24
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
ADDRLP4 28
ADDRFP4 0
INDIRP4
ASGNP4
ADDRFP4 0
ADDRLP4 28
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
ADDRLP4 24
INDIRP4
ADDRLP4 28
INDIRP4
INDIRI1
ASGNI1
line 380
;380:			lastcolor = *str;
ADDRLP4 16
ADDRFP4 0
INDIRP4
INDIRI1
CVII4 1
ASGNI4
line 381
;381:			*p++ = *str++;
ADDRLP4 32
ADDRLP4 0
INDIRP4
ASGNP4
ADDRLP4 0
ADDRLP4 32
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
ADDRLP4 36
ADDRFP4 0
INDIRP4
ASGNP4
ADDRFP4 0
ADDRLP4 36
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
ADDRLP4 32
INDIRP4
ADDRLP4 36
INDIRP4
INDIRI1
ASGNI1
line 382
;382:			continue;
ADDRGP4 $360
JUMPV
LABELV $372
line 384
;383:		}
;384:		if (*str == ' ') {
ADDRFP4 0
INDIRP4
INDIRI1
CVII4 1
CNSTI4 32
NEI4 $374
line 385
;385:			ls = p;
ADDRLP4 8
ADDRLP4 0
INDIRP4
ASGNP4
line 386
;386:		}
LABELV $374
line 387
;387:		*p++ = *str++;
ADDRLP4 24
ADDRLP4 0
INDIRP4
ASGNP4
ADDRLP4 0
ADDRLP4 24
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
ADDRLP4 28
ADDRFP4 0
INDIRP4
ASGNP4
ADDRFP4 0
ADDRLP4 28
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
ADDRLP4 24
INDIRP4
ADDRLP4 28
INDIRP4
INDIRI1
ASGNI1
line 388
;388:		len++;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 389
;389:	}
LABELV $360
line 358
ADDRFP4 0
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $359
line 390
;390:	*p = 0;
ADDRLP4 0
INDIRP4
CNSTI1 0
ASGNI1
line 392
;391:
;392:	cgs.teamChatMsgTimes[cgs.teamChatPos % chatHeight] = cg.time;
ADDRGP4 cgs+148684
INDIRI4
ADDRLP4 12
INDIRI4
MODI4
CNSTI4 2
LSHI4
ADDRGP4 cgs+148652
ADDP4
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 393
;393:	cgs.teamChatPos++;
ADDRLP4 20
ADDRGP4 cgs+148684
ASGNP4
ADDRLP4 20
INDIRP4
ADDRLP4 20
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 395
;394:
;395:	if (cgs.teamChatPos - cgs.teamLastChatPos > chatHeight)
ADDRGP4 cgs+148684
INDIRI4
ADDRGP4 cgs+148688
INDIRI4
SUBI4
ADDRLP4 12
INDIRI4
LEI4 $380
line 396
;396:		cgs.teamLastChatPos = cgs.teamChatPos - chatHeight;
ADDRGP4 cgs+148688
ADDRGP4 cgs+148684
INDIRI4
ADDRLP4 12
INDIRI4
SUBI4
ASGNI4
LABELV $380
line 397
;397:}
LABELV $346
endproc CG_AddToTeamChat 40 0
proc CG_MapRestart 8 8
line 410
;398:
;399:/*
;400:===============
;401:CG_MapRestart
;402:
;403:The server has issued a map_restart, so the next snapshot
;404:is completely new and should not be interpolated to.
;405:
;406:A tournement restart will clear everything, but doesn't
;407:require a reload of all the media
;408:===============
;409:*/
;410:static void CG_MapRestart( void ) {
line 411
;411:	if ( cg_showmiss.integer ) {
ADDRGP4 cg_showmiss+12
INDIRI4
CNSTI4 0
EQI4 $387
line 412
;412:		CG_Printf( "CG_MapRestart\n" );
ADDRGP4 $390
ARGP4
ADDRGP4 CG_Printf
CALLV
pop
line 413
;413:	}
LABELV $387
line 415
;414:
;415:	CG_InitLocalEntities();
ADDRGP4 CG_InitLocalEntities
CALLV
pop
line 416
;416:	CG_InitMarkPolys();
ADDRGP4 CG_InitMarkPolys
CALLV
pop
line 417
;417:	CG_ClearParticles ();
ADDRGP4 CG_ClearParticles
CALLV
pop
line 420
;418:
;419:	// make sure the "3 frags left" warnings play again
;420:	cg.fraglimitWarnings = 0;
ADDRGP4 cg+107620
CNSTI4 0
ASGNI4
line 421
;421:	cg.timelimitWarnings = 0;
ADDRGP4 cg+107616
CNSTI4 0
ASGNI4
line 423
;422:
;423:	cg.rewardTime = 0;
ADDRGP4 cg+125536
CNSTI4 0
ASGNI4
line 424
;424:	cg.rewardStack = 0;
ADDRGP4 cg+125532
CNSTI4 0
ASGNI4
line 425
;425:	cg.intermissionStarted = qfalse;
ADDRGP4 cg+24
CNSTI4 0
ASGNI4
line 426
;426:	cg.levelShot = qfalse;
ADDRGP4 cg+12
CNSTI4 0
ASGNI4
line 428
;427:
;428:	cgs.voteTime = 0;
ADDRGP4 cgs+31700
CNSTI4 0
ASGNI4
line 430
;429:
;430:	cg.mapRestart = qtrue;
ADDRGP4 cg+107624
CNSTI4 1
ASGNI4
line 432
;431:
;432:	CG_StartMusic();
ADDRGP4 CG_StartMusic
CALLV
pop
line 434
;433:
;434:	trap_S_ClearLoopingSounds( qtrue );
CNSTI4 1
ARGI4
ADDRGP4 trap_S_ClearLoopingSounds
CALLV
pop
line 436
;435:
;436:	cg.allowPickupPrediction = cg.time + PICKUP_PREDICTION_DELAY;
ADDRGP4 cg+157012
ADDRGP4 cg+107604
INDIRI4
CNSTI4 200
ADDI4
ASGNI4
line 441
;437:
;438:	// we really should clear more parts of cg here and stop sounds
;439:
;440:	// play the "fight" sound if this is a restart without warmup
;441:	if ( cg.warmup == 0 /* && cgs.gametype == GT_DUEL */ ) {
ADDRGP4 cg+125756
INDIRI4
CNSTI4 0
NEI4 $401
line 443
;442:		// force sound playback in CG_WarmupEvents()
;443:		cg.warmup = cg.time;
ADDRGP4 cg+125756
ADDRGP4 cg+107604
INDIRI4
ASGNI4
line 444
;444:		cg.warmupCount = -1;
ADDRGP4 cg+125760
CNSTI4 -1
ASGNI4
line 445
;445:	}
LABELV $401
line 447
;446:
;447:	if (cg_singlePlayerActive.integer) {
ADDRGP4 cg_singlePlayerActive+12
INDIRI4
CNSTI4 0
EQI4 $407
line 448
;448:		trap_Cvar_Set("ui_matchStartTime", va("%i", cg.time));
ADDRGP4 $156
ARGP4
ADDRGP4 cg+107604
INDIRI4
ARGI4
ADDRLP4 0
ADDRGP4 va
CALLP4
ASGNP4
ADDRGP4 $410
ARGP4
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 trap_Cvar_Set
CALLV
pop
line 449
;449:		if (cg_recordSPDemo.integer && *cg_recordSPDemoName.string) {
ADDRGP4 cg_recordSPDemo+12
INDIRI4
CNSTI4 0
EQI4 $412
ADDRGP4 cg_recordSPDemoName+16
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $412
line 450
;450:			trap_SendConsoleCommand(va("set g_synchronousclients 1 ; record %s \n", cg_recordSPDemoName.string));
ADDRGP4 $416
ARGP4
ADDRGP4 cg_recordSPDemoName+16
ARGP4
ADDRLP4 4
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 4
INDIRP4
ARGP4
ADDRGP4 trap_SendConsoleCommand
CALLV
pop
line 451
;451:		}
LABELV $412
line 452
;452:	}
LABELV $407
line 454
;453:
;454:	trap_Cvar_Set( "cg_thirdPerson", "0" );
ADDRGP4 $418
ARGP4
ADDRGP4 $419
ARGP4
ADDRGP4 trap_Cvar_Set
CALLV
pop
line 455
;455:}
LABELV $386
endproc CG_MapRestart 8 8
proc CG_RemoveChatEscapeChar 12 0
line 463
;456:
;457:
;458:/*
;459:=================
;460:CG_RemoveChatEscapeChar
;461:=================
;462:*/
;463:static void CG_RemoveChatEscapeChar( char *text ) {
line 466
;464:	int i, l;
;465:
;466:	l = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
line 467
;467:	for ( i = 0; text[i]; i++ ) {
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $424
JUMPV
LABELV $421
line 468
;468:		if (text[i] == '\x19')
ADDRLP4 0
INDIRI4
ADDRFP4 0
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 25
NEI4 $425
line 469
;469:			continue;
ADDRGP4 $422
JUMPV
LABELV $425
line 470
;470:		text[l] = text[i];
ADDRLP4 8
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
INDIRI4
ADDRLP4 8
INDIRP4
ADDP4
ADDRLP4 0
INDIRI4
ADDRLP4 8
INDIRP4
ADDP4
INDIRI1
ASGNI1
line 471
;471:		l++;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 472
;472:	}
LABELV $422
line 467
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $424
ADDRLP4 0
INDIRI4
ADDRFP4 0
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $421
line 473
;473:	text[l] = '\0';
ADDRLP4 4
INDIRI4
ADDRFP4 0
INDIRP4
ADDP4
CNSTI1 0
ASGNI1
line 474
;474:}
LABELV $420
endproc CG_RemoveChatEscapeChar 12 0
proc CG_ServerCommand 408 12
line 485
;475:
;476:
;477:/*
;478:=================
;479:CG_ServerCommand
;480:
;481:The string has been tokenized and can be retrieved with
;482:Cmd_Argc() / Cmd_Argv()
;483:=================
;484:*/
;485:static void CG_ServerCommand( void ) {
line 489
;486:	const char	*cmd, *id;
;487:	char		text[MAX_SAY_TEXT];
;488:
;489:	cmd = CG_Argv(0);
CNSTI4 0
ARGI4
ADDRLP4 160
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 160
INDIRP4
ASGNP4
line 491
;490:
;491:	if ( !cmd[0] ) {
ADDRLP4 0
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $428
line 493
;492:		// server claimed the command
;493:		return;
ADDRGP4 $427
JUMPV
LABELV $428
line 496
;494:	}
;495:
;496:	if ( !strcmp( cmd, "cp" ) ) {
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $432
ARGP4
ADDRLP4 164
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 164
INDIRI4
CNSTI4 0
NEI4 $430
line 497
;497:		CG_CenterPrint( CG_Argv(1), SCREEN_HEIGHT * 0.30, BIGCHAR_WIDTH );
CNSTI4 1
ARGI4
ADDRLP4 168
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 168
INDIRP4
ARGP4
CNSTI4 144
ARGI4
CNSTI4 16
ARGI4
ADDRGP4 CG_CenterPrint
CALLV
pop
line 498
;498:		return;
ADDRGP4 $427
JUMPV
LABELV $430
line 501
;499:	}
;500:
;501:	if ( !strcmp( cmd, "cs" ) ) {
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $435
ARGP4
ADDRLP4 168
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 168
INDIRI4
CNSTI4 0
NEI4 $433
line 502
;502:		CG_ConfigStringModified();
ADDRGP4 CG_ConfigStringModified
CALLV
pop
line 503
;503:		return;
ADDRGP4 $427
JUMPV
LABELV $433
line 506
;504:	}
;505:
;506:	if ( !strcmp( cmd, "print" ) ) {
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $438
ARGP4
ADDRLP4 172
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 172
INDIRI4
CNSTI4 0
NEI4 $436
line 507
;507:		CG_Printf( "%s", CG_Argv(1) );
CNSTI4 1
ARGI4
ADDRLP4 176
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRGP4 $439
ARGP4
ADDRLP4 176
INDIRP4
ARGP4
ADDRGP4 CG_Printf
CALLV
pop
line 508
;508:		return;
ADDRGP4 $427
JUMPV
LABELV $436
line 511
;509:	}
;510:
;511:	if ( !strcmp( cmd, "chat" ) ) {
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $442
ARGP4
ADDRLP4 176
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 176
INDIRI4
CNSTI4 0
NEI4 $440
line 512
;512:		if ( !cg_teamChatsOnly.integer ) {
ADDRGP4 cg_teamChatsOnly+12
INDIRI4
CNSTI4 0
NEI4 $427
line 513
;513:			trap_S_StartLocalSound( cgs.media.talkSound, CHAN_LOCAL_SOUND );
ADDRGP4 cgs+148692+892
INDIRI4
ARGI4
CNSTI4 6
ARGI4
ADDRGP4 trap_S_StartLocalSound
CALLV
pop
line 514
;514:			Q_strncpyz( text, CG_Argv(1), MAX_SAY_TEXT );
CNSTI4 1
ARGI4
ADDRLP4 180
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 4
ARGP4
ADDRLP4 180
INDIRP4
ARGP4
CNSTI4 150
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 515
;515:			CG_RemoveChatEscapeChar( text );
ADDRLP4 4
ARGP4
ADDRGP4 CG_RemoveChatEscapeChar
CALLV
pop
line 516
;516:			id = CG_Argv( 2 );
CNSTI4 2
ARGI4
ADDRLP4 184
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 156
ADDRLP4 184
INDIRP4
ASGNP4
line 517
;517:			if ( *id >= '0' && *id <= '9' )
ADDRLP4 188
ADDRLP4 156
INDIRP4
INDIRI1
CVII4 1
ASGNI4
ADDRLP4 188
INDIRI4
CNSTI4 48
LTI4 $448
ADDRLP4 188
INDIRI4
CNSTI4 57
GTI4 $448
line 518
;518:				CG_Printf( "(%i) %s\n", atoi( id ), text );
ADDRLP4 156
INDIRP4
ARGP4
ADDRLP4 192
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 $450
ARGP4
ADDRLP4 192
INDIRI4
ARGI4
ADDRLP4 4
ARGP4
ADDRGP4 CG_Printf
CALLV
pop
ADDRGP4 $427
JUMPV
LABELV $448
line 520
;519:			else
;520:				CG_Printf( "%s\n", text );
ADDRGP4 $451
ARGP4
ADDRLP4 4
ARGP4
ADDRGP4 CG_Printf
CALLV
pop
line 521
;521:		}
line 522
;522:		return;
ADDRGP4 $427
JUMPV
LABELV $440
line 525
;523:	}
;524:
;525:	if ( !strcmp( cmd, "tchat" ) ) {
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $454
ARGP4
ADDRLP4 180
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 180
INDIRI4
CNSTI4 0
NEI4 $452
line 526
;526:		trap_S_StartLocalSound( cgs.media.talkSound, CHAN_LOCAL_SOUND );
ADDRGP4 cgs+148692+892
INDIRI4
ARGI4
CNSTI4 6
ARGI4
ADDRGP4 trap_S_StartLocalSound
CALLV
pop
line 527
;527:		Q_strncpyz( text, CG_Argv(1), MAX_SAY_TEXT );
CNSTI4 1
ARGI4
ADDRLP4 184
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 4
ARGP4
ADDRLP4 184
INDIRP4
ARGP4
CNSTI4 150
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 528
;528:		CG_RemoveChatEscapeChar( text );
ADDRLP4 4
ARGP4
ADDRGP4 CG_RemoveChatEscapeChar
CALLV
pop
line 529
;529:		CG_AddToTeamChat( text );
ADDRLP4 4
ARGP4
ADDRGP4 CG_AddToTeamChat
CALLV
pop
line 530
;530:		id = CG_Argv( 2 );
CNSTI4 2
ARGI4
ADDRLP4 188
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 156
ADDRLP4 188
INDIRP4
ASGNP4
line 531
;531:		if ( *id >= '0' && *id <= '9' )
ADDRLP4 192
ADDRLP4 156
INDIRP4
INDIRI1
CVII4 1
ASGNI4
ADDRLP4 192
INDIRI4
CNSTI4 48
LTI4 $457
ADDRLP4 192
INDIRI4
CNSTI4 57
GTI4 $457
line 532
;532:			CG_Printf( "(%i) %s\n", atoi( id ), text );
ADDRLP4 156
INDIRP4
ARGP4
ADDRLP4 196
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 $450
ARGP4
ADDRLP4 196
INDIRI4
ARGI4
ADDRLP4 4
ARGP4
ADDRGP4 CG_Printf
CALLV
pop
ADDRGP4 $427
JUMPV
LABELV $457
line 534
;533:		else
;534:			CG_Printf( "%s\n", text );
ADDRGP4 $451
ARGP4
ADDRLP4 4
ARGP4
ADDRGP4 CG_Printf
CALLV
pop
line 535
;535:		return;
ADDRGP4 $427
JUMPV
LABELV $452
line 538
;536:	}
;537:
;538:	if ( !strcmp( cmd, "scores" ) ) {
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $461
ARGP4
ADDRLP4 184
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 184
INDIRI4
CNSTI4 0
NEI4 $459
line 539
;539:		CG_ParseScores();
ADDRGP4 CG_ParseScores
CALLV
pop
line 540
;540:		return;
ADDRGP4 $427
JUMPV
LABELV $459
line 543
;541:	}
;542:
;543:	if ( !strcmp( cmd, "tinfo" ) ) {
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $464
ARGP4
ADDRLP4 188
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 188
INDIRI4
CNSTI4 0
NEI4 $462
line 544
;544:		CG_ParseTeamInfo();
ADDRGP4 CG_ParseTeamInfo
CALLV
pop
line 545
;545:		return;
ADDRGP4 $427
JUMPV
LABELV $462
line 548
;546:	}
;547:
;548:	if ( !strcmp( cmd, "map_restart" ) ) {
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $467
ARGP4
ADDRLP4 192
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 192
INDIRI4
CNSTI4 0
NEI4 $465
line 549
;549:		CG_MapRestart();
ADDRGP4 CG_MapRestart
CALLV
pop
line 550
;550:		return;
ADDRGP4 $427
JUMPV
LABELV $465
line 553
;551:	}
;552:
;553:	if ( Q_stricmp (cmd, "remapShader") == 0 )
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $470
ARGP4
ADDRLP4 196
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 196
INDIRI4
CNSTI4 0
NEI4 $468
line 554
;554:	{
line 555
;555:		if (trap_Argc() == 4)
ADDRLP4 200
ADDRGP4 trap_Argc
CALLI4
ASGNI4
ADDRLP4 200
INDIRI4
CNSTI4 4
NEI4 $427
line 556
;556:		{
line 561
;557:			char shader1[MAX_QPATH];
;558:			char shader2[MAX_QPATH];
;559:			char shader3[MAX_QPATH];
;560:
;561:			Q_strncpyz(shader1, CG_Argv(1), sizeof(shader1));
CNSTI4 1
ARGI4
ADDRLP4 396
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 204
ARGP4
ADDRLP4 396
INDIRP4
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 562
;562:			Q_strncpyz(shader2, CG_Argv(2), sizeof(shader2));
CNSTI4 2
ARGI4
ADDRLP4 400
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 268
ARGP4
ADDRLP4 400
INDIRP4
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 563
;563:			Q_strncpyz(shader3, CG_Argv(3), sizeof(shader3));
CNSTI4 3
ARGI4
ADDRLP4 404
ADDRGP4 CG_Argv
CALLP4
ASGNP4
ADDRLP4 332
ARGP4
ADDRLP4 404
INDIRP4
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 565
;564:
;565:			trap_R_RemapShader(shader1, shader2, shader3);
ADDRLP4 204
ARGP4
ADDRLP4 268
ARGP4
ADDRLP4 332
ARGP4
ADDRGP4 trap_R_RemapShader
CALLV
pop
line 566
;566:		}
line 568
;567:		
;568:		return;
ADDRGP4 $427
JUMPV
LABELV $468
line 572
;569:	}
;570:
;571:	// loaddeferred can be both a servercmd and a consolecmd
;572:	if ( !strcmp( cmd, "loaddeferred" ) ) {	// FIXME: spelled wrong, but not changing for demo
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $475
ARGP4
ADDRLP4 200
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 200
INDIRI4
CNSTI4 0
NEI4 $473
line 573
;573:		CG_LoadDeferredPlayers();
ADDRGP4 CG_LoadDeferredPlayers
CALLV
pop
line 574
;574:		return;
ADDRGP4 $427
JUMPV
LABELV $473
line 579
;575:	}
;576:
;577:	// clientLevelShot is sent before taking a special screenshot for
;578:	// the menu system during development
;579:	if ( !strcmp( cmd, "clientLevelShot" ) ) {
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $478
ARGP4
ADDRLP4 204
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 204
INDIRI4
CNSTI4 0
NEI4 $476
line 580
;580:		cg.levelShot = qtrue;
ADDRGP4 cg+12
CNSTI4 1
ASGNI4
line 581
;581:		return;
ADDRGP4 $427
JUMPV
LABELV $476
line 584
;582:	}
;583:
;584:	if ( cgs.defrag && cg.demoPlayback ) {
ADDRGP4 cgs+149912
INDIRI4
CNSTI4 0
EQI4 $480
ADDRGP4 cg+8
INDIRI4
CNSTI4 0
EQI4 $480
line 585
;585:		if ( !strcmp( cmd, "aswitch" ) || !strcmp( cmd, "stats" ) ) {
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $486
ARGP4
ADDRLP4 208
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 208
INDIRI4
CNSTI4 0
EQI4 $488
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $487
ARGP4
ADDRLP4 212
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 212
INDIRI4
CNSTI4 0
NEI4 $484
LABELV $488
line 586
;586:			return;
ADDRGP4 $427
JUMPV
LABELV $484
line 588
;587:		}
;588:	}
LABELV $480
line 590
;589:
;590:	CG_Printf( "Unknown client game command: %s\n", cmd );
ADDRGP4 $489
ARGP4
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 CG_Printf
CALLV
pop
line 591
;591:}
LABELV $427
endproc CG_ServerCommand 408 12
export CG_ExecuteNewServerCommands
proc CG_ExecuteNewServerCommands 12 4
line 602
;592:
;593:
;594:/*
;595:====================
;596:CG_ExecuteNewServerCommands
;597:
;598:Execute all of the server commands that were received along
;599:with this this snapshot.
;600:====================
;601:*/
;602:void CG_ExecuteNewServerCommands( int latestSequence ) {
ADDRGP4 $492
JUMPV
LABELV $491
line 603
;603:	while ( cgs.serverCommandSequence < latestSequence ) {
line 604
;604:		if ( trap_GetServerCommand( ++cgs.serverCommandSequence ) ) {
ADDRLP4 0
ADDRGP4 cgs+31468
ASGNP4
ADDRLP4 4
ADDRLP4 0
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRP4
ADDRLP4 4
INDIRI4
ASGNI4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 8
ADDRGP4 trap_GetServerCommand
CALLI4
ASGNI4
ADDRLP4 8
INDIRI4
CNSTI4 0
EQI4 $495
line 605
;605:			CG_ServerCommand();
ADDRGP4 CG_ServerCommand
CALLV
pop
line 606
;606:		}
LABELV $495
line 607
;607:	}
LABELV $492
line 603
ADDRGP4 cgs+31468
INDIRI4
ADDRFP4 0
INDIRI4
LTI4 $491
line 608
;608:}
LABELV $490
endproc CG_ExecuteNewServerCommands 12 4
import trap_R_AddLinearLightToScene
import trap_R_AddRefEntityToScene2
import linearLight
import intShaderTime
import CG_NewParticleArea
import initparticles
import CG_ParticleExplosion
import CG_ParticleMisc
import CG_ParticleDust
import CG_ParticleSparks
import CG_ParticleBulletDebris
import CG_ParticleSnowFlurry
import CG_AddParticleShrapnel
import CG_ParticleSmoke
import CG_ParticleSnow
import CG_AddParticles
import CG_ClearParticles
import trap_GetEntityToken
import trap_getCameraInfo
import trap_startCamera
import trap_loadCamera
import trap_SnapVector
import trap_CIN_SetExtents
import trap_CIN_DrawCinematic
import trap_CIN_RunCinematic
import trap_CIN_StopCinematic
import trap_CIN_PlayCinematic
import trap_Key_GetKey
import trap_Key_SetCatcher
import trap_Key_GetCatcher
import trap_Key_IsDown
import trap_R_RegisterFont
import trap_MemoryRemaining
import testPrintFloat
import testPrintInt
import trap_SetUserCmdValue
import trap_GetUserCmd
import trap_GetCurrentCmdNumber
import trap_GetServerCommand
import trap_GetSnapshot
import trap_GetCurrentSnapshotNumber
import trap_GetGameState
import trap_GetGlconfig
import trap_R_inPVS
import trap_R_RemapShader
import trap_R_LerpTag
import trap_R_ModelBounds
import trap_R_DrawStretchPic
import trap_R_SetColor
import trap_R_RenderScene
import trap_R_LightForPoint
import trap_R_AddAdditiveLightToScene
import trap_R_AddLightToScene
import trap_R_AddPolysToScene
import trap_R_AddPolyToScene
import trap_R_AddRefEntityToScene
import trap_R_ClearScene
import trap_R_RegisterShaderNoMip
import trap_R_RegisterShader
import trap_R_RegisterSkin
import trap_R_RegisterModel
import trap_R_LoadWorldMap
import trap_S_StopBackgroundTrack
import trap_S_StartBackgroundTrack
import trap_S_RegisterSound
import trap_S_Respatialize
import trap_S_UpdateEntityPosition
import trap_S_AddRealLoopingSound
import trap_S_AddLoopingSound
import trap_S_ClearLoopingSounds
import trap_S_StartLocalSound
import trap_S_StopLoopingSound
import trap_S_StartSound
import trap_CM_MarkFragments
import trap_CM_TransformedCapsuleTrace
import trap_CM_TransformedBoxTrace
import trap_CM_CapsuleTrace
import trap_CM_BoxTrace
import trap_CM_TransformedPointContents
import trap_CM_PointContents
import trap_CM_TempBoxModel
import trap_CM_InlineModel
import trap_CM_NumInlineModels
import trap_CM_LoadMap
import trap_UpdateScreen
import trap_SendClientCommand
import trap_RemoveCommand
import trap_AddCommand
import trap_RealTime
import trap_SendConsoleCommand
import trap_FS_Seek
import trap_FS_FCloseFile
import trap_FS_Write
import trap_FS_Read
import trap_FS_FOpenFile
import trap_Args
import trap_Argv
import trap_Argc
import trap_Cvar_VariableStringBuffer
import trap_Cvar_Set
import trap_Cvar_Update
import trap_Cvar_Register
import trap_Milliseconds
import trap_Error
import trap_Print
import CG_CheckChangedPredictableEvents
import CG_TransitionPlayerState
import CG_Respawn
import CG_InitConsoleCommands
import CG_ConsoleCommand
import CG_ScoreboardClick
import CG_DrawOldTourneyScoreboard
import CG_DrawOldScoreboard
import CG_DrawInformation
import CG_LoadingClient
import CG_LoadingItem
import CG_LoadingString
import CG_ProcessSnapshots
import CG_MakeExplosion
import CG_Bleed
import CG_BigExplode
import CG_GibPlayer
import CG_ScorePlum
import CG_LightningBoltBeam
import CG_InvulnerabilityJuiced
import CG_InvulnerabilityImpact
import CG_ObeliskPain
import CG_ObeliskExplode
import CG_KamikazeEffect
import CG_SpawnEffect
import CG_BubbleTrail
import CG_SmokePuff
import CG_AddLocalEntities
import CG_AllocLocalEntity
import CG_InitLocalEntities
import CG_ImpactMark
import CG_AddMarks
import CG_InitMarkPolys
import CG_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_PlayDroppedEvents
import CG_LoadDeferredPlayers
import CG_PredictPlayerState
import CG_Trace
import CG_PointContents
import CG_BuildSolidList
import CG_CustomSound
import CG_NewClientInfo
import CG_AddRefEntityWithPowerups
import CG_ResetPlayerEntity
import CG_Player
import CG_TrackClientTeamChange
import CG_ForceModelChange
import CG_StatusHandle
import CG_OtherTeamHasFlag
import CG_YourTeamHasFlag
import CG_GameTypeString
import CG_CheckOrderPending
import CG_Text_PaintChar
import CG_Draw3DModel
import CG_GetKillerText
import CG_GetGameStatusText
import CG_GetTeamColor
import CG_InitTeamChat
import CG_SetPrintString
import CG_ShowResponseHead
import CG_RunMenuScript
import CG_OwnerDrawVisible
import CG_GetValue
import CG_SelectNextPlayer
import CG_SelectPrevPlayer
import CG_Text_Height
import CG_Text_Width
import CG_Text_Paint
import CG_OwnerDraw
import CG_DrawTeamBackground
import CG_DrawFlagModel
import CG_DrawActive
import CG_DrawHead
import CG_CenterPrint
import CG_AddLagometerSnapshotInfo
import CG_AddLagometerFrameInfo
import teamChat2
import teamChat1
import systemChat
import drawTeamOverlayModificationCount
import numSortedTeamPlayers
import sortedTeamPlayers
import CG_SelectFont
import CG_LoadFonts
import CG_DrawString
import CG_DrawTopBottom
import CG_DrawSides
import CG_DrawRect
import UI_DrawProportionalString
import CG_GetColorForHealth
import CG_ColorForHealth
import CG_TileClear
import CG_TeamColor
import CG_FadeColorTime
import CG_FadeColor
import CG_DrawStrlen
import CG_DrawStringExt
import CG_DrawPic
import CG_FillScreen
import CG_FillRect
import CG_AdjustFrom640
import CG_DrawActiveFrame
import CG_AddBufferedSound
import CG_ZoomUp_f
import CG_ZoomDown_f
import CG_TestModelPrevSkin_f
import CG_TestModelNextSkin_f
import CG_TestModelPrevFrame_f
import CG_TestModelNextFrame_f
import CG_TestGun_f
import CG_TestModel_f
import CG_SetScoreCatcher
import CG_BuildSpectatorString
import CG_MouseEvent
import CG_KeyEvent
import CG_LastAttacker
import CG_CrosshairPlayer
import CG_UpdateCvars
import CG_StartMusic
import CG_Error
import CG_Printf
import CG_Argv
import CG_ConfigString
import eventnames
import cg_followKiller
import cg_fovAdjust
import cg_deadBodyDarken
import cg_teamColors
import cg_teamModel
import cg_enemyColors
import cg_enemyModel
import cg_hitSounds
import cg_obeliskRespawnDelay
import cg_recordSPDemoName
import cg_recordSPDemo
import cg_singlePlayerActive
import cg_enableBreath
import cg_enableDust
import cg_singlePlayer
import cg_blueTeamName
import cg_redTeamName
import cg_trueLightning
import cg_oldPlasma
import cg_oldRocket
import cg_oldRail
import cg_noProjectileTrail
import cg_noTaunt
import cg_bigFont
import cg_smallFont
import cg_cameraMode
import cg_timescale
import cg_timescaleFadeSpeed
import cg_timescaleFadeEnd
import cg_cameraOrbitDelay
import cg_cameraOrbit
import cg_smoothClients
import cg_scorePlum
import cg_teamChatsOnly
import cg_drawFriend
import cg_deferPlayers
import cg_predictItems
import cg_blood
import cg_paused
import cg_buildScript
import cg_forceModel
import cg_stats
import cg_teamChatHeight
import cg_teamChatTime
import cg_drawSpeed
import cg_drawAttacker
import cg_lagometer
import cg_thirdPerson
import cg_thirdPersonAngle
import cg_thirdPersonRange
import cg_zoomFov
import cg_fov
import cg_simpleItems
import cg_ignore
import cg_autoswitch
import cg_tracerLength
import cg_tracerWidth
import cg_tracerChance
import cg_viewsize
import cg_drawGun
import cg_gun_z
import cg_gun_y
import cg_gun_x
import cg_gun_frame
import cg_brassTime
import cg_addMarks
import cg_footsteps
import cg_showmiss
import cg_noPlayerAnims
import cg_nopredict
import cg_errorDecay
import cg_railTrailRadius
import cg_railTrailTime
import cg_debugEvents
import cg_debugPosition
import cg_debugAnim
import cg_animSpeed
import cg_draw2D
import cg_drawStatus
import cg_crosshairHealth
import cg_crosshairSize
import cg_crosshairY
import cg_crosshairX
import cg_drawWeaponSelect
import cg_teamOverlayUserinfo
import cg_drawTeamOverlay
import cg_drawRewards
import cg_drawCrosshairNames
import cg_drawCrosshair
import cg_drawAmmoWarning
import cg_drawIcons
import cg_draw3dIcons
import cg_drawSnapshot
import cg_drawFPS
import cg_drawTimer
import cg_gibs
import cg_shadows
import cg_swingSpeed
import cg_bobroll
import cg_bobpitch
import cg_bobup
import cg_runroll
import cg_runpitch
import cg_centertime
import cg_markPolys
import cg_items
import cg_weapons
import cg_entities
import cg
import cgs
import BigEndian
import replace1
import Q_stradd
import Q_strcpy
import BG_StripColor
import BG_CleanName
import DecodedString
import EncodedString
import strtok
import Q_stristr
import BG_sprintf
import BG_PlayerTouchesItem
import BG_PlayerStateToEntityStateExtraPolate
import BG_PlayerStateToEntityState
import BG_TouchJumpPad
import BG_AddPredictableEventToPlayerstate
import BG_EvaluateTrajectoryDelta
import BG_EvaluateTrajectory
import BG_CanItemBeGrabbed
import BG_FindItemForHoldable
import BG_FindItemForPowerup
import BG_FindItemForWeapon
import BG_FindItem
import bg_numItems
import bg_itemlist
import Pmove
import PM_UpdateViewAngles
import gt
import Com_Printf
import Com_Error
import Info_NextPair
import Info_ValidateKeyValue
import Info_Validate
import Info_SetValueForKey_Big
import Info_SetValueForKey
import Info_ValueForKey
import va
import Q_CleanStr
import Q_PrintStrlen
import Q_strcat
import Q_strncpyz
import Q_strrchr
import Q_strupr
import Q_strlwr
import Q_stricmpn
import Q_strncmp
import Q_stricmp
import Q_isalpha
import Q_isupper
import Q_islower
import Q_isprint
import locase
import Com_sprintf
import Parse3DMatrix
import Parse2DMatrix
import Parse1DMatrix
import SkipRestOfLine
import SkipBracedSection
import COM_MatchToken
import Com_Split
import COM_ParseSep
import Com_InitSeparators
import SkipTillSeparators
import COM_ParseWarning
import COM_ParseError
import COM_Compress
import COM_ParseExt
import COM_Parse
import COM_GetCurrentParseLine
import COM_BeginParseSession
import COM_DefaultExtension
import COM_StripExtension
import COM_SkipPath
import Com_Clamp
import PerpendicularVector
import AngleVectors
import MatrixMultiply
import MakeNormalVectors
import RotateAroundDirection
import RotatePointAroundVector
import ProjectPointOnPlane
import PlaneFromPoints
import AngleDelta
import AngleNormalize180
import AngleNormalize360
import AnglesSubtract
import AngleSubtract
import LerpAngle
import AngleMod
import BoxOnPlaneSide
import SetPlaneSignbits
import AxisCopy
import AxisClear
import AnglesToAxis
import vectoangles
import Q_crandom
import Q_random
import Q_rand
import Q_acos
import Q_log2
import VectorRotate
import Vector4Scale
import VectorNormalize2
import VectorNormalize
import CrossProduct
import VectorInverse
import VectorNormalizeFast
import DistanceSquared
import Distance
import VectorLengthSquared
import VectorLength
import VectorCompare
import AddPointToBounds
import ClearBounds
import RadiusFromBounds
import NormalizeColor
import ColorBytes4
import ColorBytes3
import _VectorMA
import _VectorScale
import _VectorCopy
import _VectorAdd
import _VectorSubtract
import _DotProduct
import ByteToDir
import DirToByte
import ClampShort
import ClampChar
import Q_rsqrt
import Q_fabs
import axisDefault
import vec3_origin
import g_color_table
import colorDkGrey
import colorMdGrey
import colorLtGrey
import colorWhite
import colorCyan
import colorMagenta
import colorYellow
import colorBlue
import colorGreen
import colorRed
import colorBlack
import bytedirs
import Hunk_Alloc
import acos
import fabs
import abs
import tan
import atan2
import cos
import sin
import sqrt
import floor
import ceil
import memcpy
import memset
import memmove
import Q_sscanf
import ED_vsprintf
import atoi
import atof
import toupper
import tolower
import strncpy
import strstr
import strchr
import strcmp
import strcpy
import strcat
import strlen
import rand
import srand
import qsort
lit
align 1
LABELV $489
byte 1 85
byte 1 110
byte 1 107
byte 1 110
byte 1 111
byte 1 119
byte 1 110
byte 1 32
byte 1 99
byte 1 108
byte 1 105
byte 1 101
byte 1 110
byte 1 116
byte 1 32
byte 1 103
byte 1 97
byte 1 109
byte 1 101
byte 1 32
byte 1 99
byte 1 111
byte 1 109
byte 1 109
byte 1 97
byte 1 110
byte 1 100
byte 1 58
byte 1 32
byte 1 37
byte 1 115
byte 1 10
byte 1 0
align 1
LABELV $487
byte 1 115
byte 1 116
byte 1 97
byte 1 116
byte 1 115
byte 1 0
align 1
LABELV $486
byte 1 97
byte 1 115
byte 1 119
byte 1 105
byte 1 116
byte 1 99
byte 1 104
byte 1 0
align 1
LABELV $478
byte 1 99
byte 1 108
byte 1 105
byte 1 101
byte 1 110
byte 1 116
byte 1 76
byte 1 101
byte 1 118
byte 1 101
byte 1 108
byte 1 83
byte 1 104
byte 1 111
byte 1 116
byte 1 0
align 1
LABELV $475
byte 1 108
byte 1 111
byte 1 97
byte 1 100
byte 1 100
byte 1 101
byte 1 102
byte 1 101
byte 1 114
byte 1 114
byte 1 101
byte 1 100
byte 1 0
align 1
LABELV $470
byte 1 114
byte 1 101
byte 1 109
byte 1 97
byte 1 112
byte 1 83
byte 1 104
byte 1 97
byte 1 100
byte 1 101
byte 1 114
byte 1 0
align 1
LABELV $467
byte 1 109
byte 1 97
byte 1 112
byte 1 95
byte 1 114
byte 1 101
byte 1 115
byte 1 116
byte 1 97
byte 1 114
byte 1 116
byte 1 0
align 1
LABELV $464
byte 1 116
byte 1 105
byte 1 110
byte 1 102
byte 1 111
byte 1 0
align 1
LABELV $461
byte 1 115
byte 1 99
byte 1 111
byte 1 114
byte 1 101
byte 1 115
byte 1 0
align 1
LABELV $454
byte 1 116
byte 1 99
byte 1 104
byte 1 97
byte 1 116
byte 1 0
align 1
LABELV $451
byte 1 37
byte 1 115
byte 1 10
byte 1 0
align 1
LABELV $450
byte 1 40
byte 1 37
byte 1 105
byte 1 41
byte 1 32
byte 1 37
byte 1 115
byte 1 10
byte 1 0
align 1
LABELV $442
byte 1 99
byte 1 104
byte 1 97
byte 1 116
byte 1 0
align 1
LABELV $439
byte 1 37
byte 1 115
byte 1 0
align 1
LABELV $438
byte 1 112
byte 1 114
byte 1 105
byte 1 110
byte 1 116
byte 1 0
align 1
LABELV $435
byte 1 99
byte 1 115
byte 1 0
align 1
LABELV $432
byte 1 99
byte 1 112
byte 1 0
align 1
LABELV $419
byte 1 48
byte 1 0
align 1
LABELV $418
byte 1 99
byte 1 103
byte 1 95
byte 1 116
byte 1 104
byte 1 105
byte 1 114
byte 1 100
byte 1 80
byte 1 101
byte 1 114
byte 1 115
byte 1 111
byte 1 110
byte 1 0
align 1
LABELV $416
byte 1 115
byte 1 101
byte 1 116
byte 1 32
byte 1 103
byte 1 95
byte 1 115
byte 1 121
byte 1 110
byte 1 99
byte 1 104
byte 1 114
byte 1 111
byte 1 110
byte 1 111
byte 1 117
byte 1 115
byte 1 99
byte 1 108
byte 1 105
byte 1 101
byte 1 110
byte 1 116
byte 1 115
byte 1 32
byte 1 49
byte 1 32
byte 1 59
byte 1 32
byte 1 114
byte 1 101
byte 1 99
byte 1 111
byte 1 114
byte 1 100
byte 1 32
byte 1 37
byte 1 115
byte 1 32
byte 1 10
byte 1 0
align 1
LABELV $410
byte 1 117
byte 1 105
byte 1 95
byte 1 109
byte 1 97
byte 1 116
byte 1 99
byte 1 104
byte 1 83
byte 1 116
byte 1 97
byte 1 114
byte 1 116
byte 1 84
byte 1 105
byte 1 109
byte 1 101
byte 1 0
align 1
LABELV $390
byte 1 67
byte 1 71
byte 1 95
byte 1 77
byte 1 97
byte 1 112
byte 1 82
byte 1 101
byte 1 115
byte 1 116
byte 1 97
byte 1 114
byte 1 116
byte 1 10
byte 1 0
align 1
LABELV $197
byte 1 103
byte 1 95
byte 1 115
byte 1 121
byte 1 110
byte 1 99
byte 1 104
byte 1 114
byte 1 111
byte 1 110
byte 1 111
byte 1 117
byte 1 115
byte 1 67
byte 1 108
byte 1 105
byte 1 101
byte 1 110
byte 1 116
byte 1 115
byte 1 0
align 1
LABELV $187
byte 1 112
byte 1 109
byte 1 111
byte 1 118
byte 1 101
byte 1 95
byte 1 109
byte 1 115
byte 1 101
byte 1 99
byte 1 0
align 1
LABELV $182
byte 1 112
byte 1 109
byte 1 111
byte 1 118
byte 1 101
byte 1 95
byte 1 102
byte 1 105
byte 1 120
byte 1 101
byte 1 100
byte 1 0
align 1
LABELV $178
byte 1 103
byte 1 95
byte 1 98
byte 1 108
byte 1 117
byte 1 101
byte 1 84
byte 1 101
byte 1 97
byte 1 109
byte 1 0
align 1
LABELV $175
byte 1 103
byte 1 95
byte 1 114
byte 1 101
byte 1 100
byte 1 84
byte 1 101
byte 1 97
byte 1 109
byte 1 0
align 1
LABELV $173
byte 1 109
byte 1 97
byte 1 112
byte 1 115
byte 1 47
byte 1 37
byte 1 115
byte 1 46
byte 1 98
byte 1 115
byte 1 112
byte 1 0
align 1
LABELV $170
byte 1 109
byte 1 97
byte 1 112
byte 1 110
byte 1 97
byte 1 109
byte 1 101
byte 1 0
align 1
LABELV $169
byte 1 115
byte 1 118
byte 1 95
byte 1 109
byte 1 97
byte 1 120
byte 1 99
byte 1 108
byte 1 105
byte 1 101
byte 1 110
byte 1 116
byte 1 115
byte 1 0
align 1
LABELV $167
byte 1 116
byte 1 105
byte 1 109
byte 1 101
byte 1 108
byte 1 105
byte 1 109
byte 1 105
byte 1 116
byte 1 0
align 1
LABELV $165
byte 1 99
byte 1 97
byte 1 112
byte 1 116
byte 1 117
byte 1 114
byte 1 101
byte 1 108
byte 1 105
byte 1 109
byte 1 105
byte 1 116
byte 1 0
align 1
LABELV $163
byte 1 102
byte 1 114
byte 1 97
byte 1 103
byte 1 108
byte 1 105
byte 1 109
byte 1 105
byte 1 116
byte 1 0
align 1
LABELV $161
byte 1 116
byte 1 101
byte 1 97
byte 1 109
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 115
byte 1 0
align 1
LABELV $159
byte 1 100
byte 1 109
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 115
byte 1 0
align 1
LABELV $156
byte 1 37
byte 1 105
byte 1 0
align 1
LABELV $155
byte 1 117
byte 1 105
byte 1 95
byte 1 103
byte 1 97
byte 1 109
byte 1 101
byte 1 116
byte 1 121
byte 1 112
byte 1 101
byte 1 0
align 1
LABELV $154
byte 1 103
byte 1 95
byte 1 103
byte 1 97
byte 1 109
byte 1 101
byte 1 116
byte 1 121
byte 1 112
byte 1 101
byte 1 0
