data
align 4
LABELV master_items
address $67
address $68
address $69
address $70
byte 4 0
align 4
LABELV servertype_items
address $71
address $72
address $73
address $74
address $75
byte 4 0
align 4
LABELV sortkey_items
address $76
address $77
address $78
address $79
address $80
byte 4 0
align 4
LABELV gamenames
address $81
address $82
address $83
address $84
address $85
address $86
address $87
address $88
address $89
address $90
address $91
address $92
address $93
byte 4 0
align 4
LABELV netnames
address $93
address $94
address $95
byte 4 0
align 1
LABELV quake3worldMessage
byte 1 86
byte 1 105
byte 1 115
byte 1 105
byte 1 116
byte 1 32
byte 1 119
byte 1 119
byte 1 119
byte 1 46
byte 1 113
byte 1 117
byte 1 97
byte 1 107
byte 1 101
byte 1 51
byte 1 119
byte 1 111
byte 1 114
byte 1 108
byte 1 100
byte 1 46
byte 1 99
byte 1 111
byte 1 109
byte 1 32
byte 1 45
byte 1 32
byte 1 78
byte 1 101
byte 1 119
byte 1 115
byte 1 44
byte 1 32
byte 1 67
byte 1 111
byte 1 109
byte 1 109
byte 1 117
byte 1 110
byte 1 105
byte 1 116
byte 1 121
byte 1 44
byte 1 32
byte 1 69
byte 1 118
byte 1 101
byte 1 110
byte 1 116
byte 1 115
byte 1 44
byte 1 32
byte 1 70
byte 1 105
byte 1 108
byte 1 101
byte 1 115
byte 1 0
code
proc ArenaServers_MaxPing 8 4
file "../ui_servers2.c"
line 220
;1:// Copyright (C) 1999-2000 Id Software, Inc.
;2://
;3:/*
;4:=======================================================================
;5:
;6:MULTIPLAYER MENU (SERVER BROWSER)
;7:
;8:=======================================================================
;9:*/
;10:
;11:
;12:#include "ui_local.h"
;13:
;14:
;15:#define MAX_GLOBALSERVERS		128
;16:#define MAX_PINGREQUESTS		32
;17:#define MAX_ADDRESSLENGTH		64
;18:#define MAX_HOSTNAMELENGTH		22
;19:#define MAX_MAPNAMELENGTH		16
;20:#define MAX_LISTBOXITEMS		128
;21:#define MAX_LOCALSERVERS		128
;22:#define MAX_STATUSLENGTH		64
;23:#define MAX_LEAGUELENGTH		28
;24:#define MAX_LISTBOXWIDTH		61
;25:
;26:#define ART_BACK0				"menu/art/back_0"
;27:#define ART_BACK1				"menu/art/back_1"
;28:#define ART_CREATE0				"menu/art/create_0"
;29:#define ART_CREATE1				"menu/art/create_1"
;30:#define ART_SPECIFY0			"menu/art/specify_0"
;31:#define ART_SPECIFY1			"menu/art/specify_1"
;32:#define ART_REFRESH0			"menu/art/refresh_0"
;33:#define ART_REFRESH1			"menu/art/refresh_1"
;34:#define ART_CONNECT0			"menu/art/fight_0"
;35:#define ART_CONNECT1			"menu/art/fight_1"
;36:#define ART_ARROWS0				"menu/art/arrows_vert_0"
;37:#define ART_ARROWS_UP			"menu/art/arrows_vert_top"
;38:#define ART_ARROWS_DOWN			"menu/art/arrows_vert_bot"
;39:#define ART_UNKNOWNMAP			"menu/art/unknownmap"
;40:#define ART_REMOVE0				"menu/art/delete_0"
;41:#define ART_REMOVE1				"menu/art/delete_1"
;42:
;43:#define ID_MASTER			10
;44:#define ID_GAMETYPE			11
;45:#define ID_SORTKEY			12
;46:#define ID_SHOW_FULL		13
;47:#define ID_SHOW_EMPTY		14
;48:#define ID_LIST				15
;49:#define ID_SCROLL_UP		16
;50:#define ID_SCROLL_DOWN		17
;51:#define ID_BACK				18
;52:#define ID_REFRESH			19
;53:#define ID_SPECIFY			20
;54:#define ID_CREATE			21
;55:#define ID_CONNECT			22
;56:#define ID_REMOVE			23
;57:
;58:#define GR_LOGO				30
;59:#define GR_LETTERS			31
;60:
;61:#define AS_LOCAL			0
;62:#define AS_MPLAYER			1
;63:#define AS_GLOBAL			2
;64:#define AS_FAVORITES		3
;65:
;66:#define SORT_HOST			0
;67:#define SORT_MAP			1
;68:#define SORT_CLIENTS		2
;69:#define SORT_GAME			3
;70:#define SORT_PING			4
;71:
;72:#define GAMES_ALL			0
;73:#define GAMES_FFA			1
;74:#define GAMES_TEAMPLAY		2
;75:#define GAMES_TOURNEY		3
;76:#define GAMES_CTF			4
;77:
;78:static const char *master_items[] = {
;79:	"Local",
;80:	"Mplayer",
;81:	"Internet",
;82:	"Favorites",
;83:	0
;84:};
;85:
;86:static const char *servertype_items[] = {
;87:	"All",
;88:	"Free For All",
;89:	"Team Deathmatch",
;90:	"Tournament",
;91:	"Capture the Flag",
;92:	0
;93:};
;94:
;95:static const char *sortkey_items[] = {
;96:	"Server Name",
;97:	"Map Name",
;98:	"Open Player Spots",
;99:	"Game Type",
;100:	"Ping Time",
;101:	0
;102:};
;103:
;104:static char* gamenames[] = {
;105:	"DM ",	// deathmatch
;106:	"1v1",	// tournament
;107:	"SP ",	// single player
;108:	"Team DM",	// team deathmatch
;109:	"CTF",	// capture the flag
;110:	"One Flag CTF",		// one flag ctf
;111:	"OverLoad",				// Overload
;112:	"Harvester",			// Harvester
;113:	"Rocket Arena 3",	// Rocket Arena 3
;114:	"Q3F",						// Q3F
;115:	"Urban Terror",		// Urban Terror
;116:	"OSP",						// Orange Smoothie Productions
;117:	"???",			// unknown
;118:	0
;119:};
;120:
;121:static char* netnames[] = {
;122:	"???",
;123:	"UDP",
;124:	"IPX",
;125:	NULL
;126:};
;127:
;128:static char quake3worldMessage[] = "Visit www.quake3world.com - News, Community, Events, Files";
;129:
;130:typedef struct {
;131:	char	adrstr[MAX_ADDRESSLENGTH];
;132:	int		start;
;133:} pinglist_t;
;134:
;135:typedef struct servernode_s {
;136:	char	adrstr[MAX_ADDRESSLENGTH];
;137:	char	hostname[MAX_HOSTNAMELENGTH+3];
;138:	char	mapname[MAX_MAPNAMELENGTH];
;139:	int		numclients;
;140:	int		maxclients;
;141:	int		pingtime;
;142:	int		gametype;
;143:	char	gamename[12];
;144:	int		nettype;
;145:	int		minPing;
;146:	int		maxPing;
;147:
;148:} servernode_t; 
;149:
;150:typedef struct {
;151:	char			buff[MAX_LISTBOXWIDTH];
;152:	servernode_t*	servernode;
;153:} table_t;
;154:
;155:typedef struct {
;156:	menuframework_s		menu;
;157:
;158:	menutext_s			banner;
;159:
;160:	menulist_s			master;
;161:	menulist_s			gametype;
;162:	menulist_s			sortkey;
;163:	menuradiobutton_s	showfull;
;164:	menuradiobutton_s	showempty;
;165:
;166:	menulist_s			list;
;167:	menubitmap_s		mappic;
;168:	menubitmap_s		arrows;
;169:	menubitmap_s		up;
;170:	menubitmap_s		down;
;171:	menutext_s			status;
;172:	menutext_s			statusbar;
;173:
;174:	menubitmap_s		remove;
;175:	menubitmap_s		back;
;176:	menubitmap_s		refresh;
;177:	menubitmap_s		specify;
;178:	menubitmap_s		create;
;179:	menubitmap_s		go;
;180:
;181:	pinglist_t			pinglist[MAX_PINGREQUESTS];
;182:	table_t				table[MAX_LISTBOXITEMS];
;183:	char*				items[MAX_LISTBOXITEMS];
;184:	int					numqueriedservers;
;185:	int					*numservers;
;186:	servernode_t		*serverlist;	
;187:	int					currentping;
;188:	qboolean			refreshservers;
;189:	int					nextpingtime;
;190:	int					maxservers;
;191:	int					refreshtime;
;192:	char				favoriteaddresses[MAX_FAVORITESERVERS][MAX_ADDRESSLENGTH];
;193:	int					numfavoriteaddresses;
;194:
;195:} arenaservers_t;
;196:
;197:static arenaservers_t	g_arenaservers;
;198:
;199:
;200:static servernode_t		g_globalserverlist[MAX_GLOBALSERVERS];
;201:static int				g_numglobalservers;
;202:static servernode_t		g_localserverlist[MAX_LOCALSERVERS];
;203:static int				g_numlocalservers;
;204:static servernode_t		g_favoriteserverlist[MAX_FAVORITESERVERS];
;205:static int				g_numfavoriteservers;
;206:static servernode_t		g_mplayerserverlist[MAX_GLOBALSERVERS];
;207:static int				g_nummplayerservers;
;208:static int				g_servertype;
;209:static int				g_gametype;
;210:static int				g_sortkey;
;211:static int				g_emptyservers;
;212:static int				g_fullservers;
;213:
;214:
;215:/*
;216:=================
;217:ArenaServers_MaxPing
;218:=================
;219:*/
;220:static int ArenaServers_MaxPing( void ) {
line 223
;221:	int		maxPing;
;222:
;223:	maxPing = (int)trap_Cvar_VariableValue( "cl_maxPing" );
ADDRGP4 $100
ARGP4
ADDRLP4 4
ADDRGP4 trap_Cvar_VariableValue
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 4
INDIRF4
CVFI4 4
ASGNI4
line 224
;224:	if( maxPing < 100 ) {
ADDRLP4 0
INDIRI4
CNSTI4 100
GEI4 $101
line 225
;225:		maxPing = 100;
ADDRLP4 0
CNSTI4 100
ASGNI4
line 226
;226:	}
LABELV $101
line 227
;227:	return maxPing;
ADDRLP4 0
INDIRI4
RETI4
LABELV $99
endproc ArenaServers_MaxPing 8 4
proc ArenaServers_Compare 68 8
line 236
;228:}
;229:
;230:
;231:/*
;232:=================
;233:ArenaServers_Compare
;234:=================
;235:*/
;236:static int QDECL ArenaServers_Compare( const void *arg1, const void *arg2 ) {
line 242
;237:	float			f1;
;238:	float			f2;
;239:	servernode_t*	t1;
;240:	servernode_t*	t2;
;241:
;242:	t1 = (servernode_t *)arg1;
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
line 243
;243:	t2 = (servernode_t *)arg2;
ADDRLP4 4
ADDRFP4 4
INDIRP4
ASGNP4
line 245
;244:
;245:	switch( g_sortkey ) {
ADDRLP4 16
ADDRGP4 g_sortkey
INDIRI4
ASGNI4
ADDRLP4 16
INDIRI4
CNSTI4 0
LTI4 $104
ADDRLP4 16
INDIRI4
CNSTI4 4
GTI4 $104
ADDRLP4 16
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 $127
ADDP4
INDIRP4
JUMPV
lit
align 4
LABELV $127
address $106
address $107
address $108
address $117
address $122
code
LABELV $106
line 247
;246:	case SORT_HOST:
;247:		return Q_stricmp( t1->hostname, t2->hostname );
ADDRLP4 20
CNSTI4 64
ASGNI4
ADDRLP4 0
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
ARGP4
ADDRLP4 4
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
ARGP4
ADDRLP4 24
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 24
INDIRI4
RETI4
ADDRGP4 $103
JUMPV
LABELV $107
line 250
;248:
;249:	case SORT_MAP:
;250:		return Q_stricmp( t1->mapname, t2->mapname );
ADDRLP4 28
CNSTI4 89
ASGNI4
ADDRLP4 0
INDIRP4
ADDRLP4 28
INDIRI4
ADDP4
ARGP4
ADDRLP4 4
INDIRP4
ADDRLP4 28
INDIRI4
ADDP4
ARGP4
ADDRLP4 32
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 32
INDIRI4
RETI4
ADDRGP4 $103
JUMPV
LABELV $108
line 253
;251:
;252:	case SORT_CLIENTS:
;253:		f1 = t1->maxclients - t1->numclients;
ADDRLP4 36
ADDRLP4 0
INDIRP4
ASGNP4
ADDRLP4 8
ADDRLP4 36
INDIRP4
CNSTI4 112
ADDP4
INDIRI4
ADDRLP4 36
INDIRP4
CNSTI4 108
ADDP4
INDIRI4
SUBI4
CVIF4 4
ASGNF4
line 254
;254:		if( f1 < 0 ) {
ADDRLP4 8
INDIRF4
CNSTF4 0
GEF4 $109
line 255
;255:			f1 = 0;
ADDRLP4 8
CNSTF4 0
ASGNF4
line 256
;256:		}
LABELV $109
line 258
;257:
;258:		f2 = t2->maxclients - t2->numclients;
ADDRLP4 40
ADDRLP4 4
INDIRP4
ASGNP4
ADDRLP4 12
ADDRLP4 40
INDIRP4
CNSTI4 112
ADDP4
INDIRI4
ADDRLP4 40
INDIRP4
CNSTI4 108
ADDP4
INDIRI4
SUBI4
CVIF4 4
ASGNF4
line 259
;259:		if( f2 < 0 ) {
ADDRLP4 12
INDIRF4
CNSTF4 0
GEF4 $111
line 260
;260:			f2 = 0;
ADDRLP4 12
CNSTF4 0
ASGNF4
line 261
;261:		}
LABELV $111
line 263
;262:
;263:		if( f1 < f2 ) {
ADDRLP4 8
INDIRF4
ADDRLP4 12
INDIRF4
GEF4 $113
line 264
;264:			return 1;
CNSTI4 1
RETI4
ADDRGP4 $103
JUMPV
LABELV $113
line 266
;265:		}
;266:		if( f1 == f2 ) {
ADDRLP4 8
INDIRF4
ADDRLP4 12
INDIRF4
NEF4 $115
line 267
;267:			return 0;
CNSTI4 0
RETI4
ADDRGP4 $103
JUMPV
LABELV $115
line 269
;268:		}
;269:		return -1;
CNSTI4 -1
RETI4
ADDRGP4 $103
JUMPV
LABELV $117
line 272
;270:
;271:	case SORT_GAME:
;272:		if( t1->gametype < t2->gametype ) {
ADDRLP4 44
CNSTI4 120
ASGNI4
ADDRLP4 0
INDIRP4
ADDRLP4 44
INDIRI4
ADDP4
INDIRI4
ADDRLP4 4
INDIRP4
ADDRLP4 44
INDIRI4
ADDP4
INDIRI4
GEI4 $118
line 273
;273:			return -1;
CNSTI4 -1
RETI4
ADDRGP4 $103
JUMPV
LABELV $118
line 275
;274:		}
;275:		if( t1->gametype == t2->gametype ) {
ADDRLP4 48
CNSTI4 120
ASGNI4
ADDRLP4 0
INDIRP4
ADDRLP4 48
INDIRI4
ADDP4
INDIRI4
ADDRLP4 4
INDIRP4
ADDRLP4 48
INDIRI4
ADDP4
INDIRI4
NEI4 $120
line 276
;276:			return 0;
CNSTI4 0
RETI4
ADDRGP4 $103
JUMPV
LABELV $120
line 278
;277:		}
;278:		return 1;
CNSTI4 1
RETI4
ADDRGP4 $103
JUMPV
LABELV $122
line 281
;279:
;280:	case SORT_PING:
;281:		if( t1->pingtime < t2->pingtime ) {
ADDRLP4 52
CNSTI4 116
ASGNI4
ADDRLP4 0
INDIRP4
ADDRLP4 52
INDIRI4
ADDP4
INDIRI4
ADDRLP4 4
INDIRP4
ADDRLP4 52
INDIRI4
ADDP4
INDIRI4
GEI4 $123
line 282
;282:			return -1;
CNSTI4 -1
RETI4
ADDRGP4 $103
JUMPV
LABELV $123
line 284
;283:		}
;284:		if( t1->pingtime > t2->pingtime ) {
ADDRLP4 56
CNSTI4 116
ASGNI4
ADDRLP4 0
INDIRP4
ADDRLP4 56
INDIRI4
ADDP4
INDIRI4
ADDRLP4 4
INDIRP4
ADDRLP4 56
INDIRI4
ADDP4
INDIRI4
LEI4 $125
line 285
;285:			return 1;
CNSTI4 1
RETI4
ADDRGP4 $103
JUMPV
LABELV $125
line 287
;286:		}
;287:		return Q_stricmp( t1->hostname, t2->hostname );
ADDRLP4 60
CNSTI4 64
ASGNI4
ADDRLP4 0
INDIRP4
ADDRLP4 60
INDIRI4
ADDP4
ARGP4
ADDRLP4 4
INDIRP4
ADDRLP4 60
INDIRI4
ADDP4
ARGP4
ADDRLP4 64
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 64
INDIRI4
RETI4
ADDRGP4 $103
JUMPV
LABELV $104
line 290
;288:	}
;289:
;290:	return 0;
CNSTI4 0
RETI4
LABELV $103
endproc ArenaServers_Compare 68 8
proc ArenaServers_Go 8 8
line 299
;291:}
;292:
;293:
;294:/*
;295:=================
;296:ArenaServers_Go
;297:=================
;298:*/
;299:static void ArenaServers_Go( void ) {
line 302
;300:	servernode_t*	servernode;
;301:
;302:	servernode = g_arenaservers.table[g_arenaservers.list.curvalue].servernode;
ADDRLP4 0
CNSTI4 68
ADDRGP4 g_arenaservers+776+64
INDIRI4
MULI4
ADDRGP4 g_arenaservers+4072+64
ADDP4
INDIRP4
ASGNP4
line 303
;303:	if( servernode ) {
ADDRLP4 0
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $133
line 304
;304:		trap_Cmd_ExecuteText( EXEC_APPEND, va( "connect %s\n", servernode->adrstr ) );
ADDRGP4 $135
ARGP4
ADDRLP4 0
INDIRP4
ARGP4
ADDRLP4 4
ADDRGP4 va
CALLP4
ASGNP4
CNSTI4 2
ARGI4
ADDRLP4 4
INDIRP4
ARGP4
ADDRGP4 trap_Cmd_ExecuteText
CALLV
pop
line 305
;305:	}
LABELV $133
line 306
;306:}
LABELV $128
endproc ArenaServers_Go 8 8
bss
align 1
LABELV $137
skip 64
code
proc ArenaServers_UpdatePicture 4 16
line 314
;307:
;308:
;309:/*
;310:=================
;311:ArenaServers_UpdatePicture
;312:=================
;313:*/
;314:static void ArenaServers_UpdatePicture( void ) {
line 318
;315:	static char		picname[64];
;316:	servernode_t*	servernodeptr;
;317:
;318:	if( !g_arenaservers.list.numitems ) {
ADDRGP4 g_arenaservers+776+68
INDIRI4
CNSTI4 0
NEI4 $138
line 319
;319:		g_arenaservers.mappic.generic.name = NULL;
ADDRGP4 g_arenaservers+872+4
CNSTP4 0
ASGNP4
line 320
;320:	}
ADDRGP4 $139
JUMPV
LABELV $138
line 321
;321:	else {
line 322
;322:		servernodeptr = g_arenaservers.table[g_arenaservers.list.curvalue].servernode;
ADDRLP4 0
CNSTI4 68
ADDRGP4 g_arenaservers+776+64
INDIRI4
MULI4
ADDRGP4 g_arenaservers+4072+64
ADDP4
INDIRP4
ASGNP4
line 323
;323:		Com_sprintf( picname, sizeof(picname), "levelshots/%s.tga", servernodeptr->mapname );
ADDRGP4 $137
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 $148
ARGP4
ADDRLP4 0
INDIRP4
CNSTI4 89
ADDP4
ARGP4
ADDRGP4 Com_sprintf
CALLV
pop
line 324
;324:		g_arenaservers.mappic.generic.name = picname;
ADDRGP4 g_arenaservers+872+4
ADDRGP4 $137
ASGNP4
line 326
;325:	
;326:	}
LABELV $139
line 329
;327:
;328:	// force shader update during draw
;329:	g_arenaservers.mappic.shader = 0;
ADDRGP4 g_arenaservers+872+68
CNSTI4 0
ASGNI4
line 330
;330:}
LABELV $136
endproc ArenaServers_UpdatePicture 4 16
proc ArenaServers_UpdateMenu 64 44
line 338
;331:
;332:
;333:/*
;334:=================
;335:ArenaServers_UpdateMenu
;336:=================
;337:*/
;338:static void ArenaServers_UpdateMenu( void ) {
line 347
;339:	int				i;
;340:	int				j;
;341:	int				count;
;342:	char*			buff;
;343:	servernode_t*	servernodeptr;
;344:	table_t*		tableptr;
;345:	char			*pingColor;
;346:
;347:	if( g_arenaservers.numqueriedservers > 0 ) {
ADDRGP4 g_arenaservers+13288
INDIRI4
CNSTI4 0
LEI4 $154
line 349
;348:		// servers found
;349:		if( g_arenaservers.refreshservers && ( g_arenaservers.currentping <= g_arenaservers.numqueriedservers ) ) {
ADDRGP4 g_arenaservers+13304
INDIRI4
CNSTI4 0
EQI4 $157
ADDRGP4 g_arenaservers+13300
INDIRI4
ADDRGP4 g_arenaservers+13288
INDIRI4
GTI4 $157
line 351
;350:			// show progress
;351:			Com_sprintf( g_arenaservers.status.string, MAX_STATUSLENGTH, "%d of %d Arena Servers.", g_arenaservers.currentping, g_arenaservers.numqueriedservers);
ADDRGP4 g_arenaservers+1224+60
INDIRP4
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 $164
ARGP4
ADDRGP4 g_arenaservers+13300
INDIRI4
ARGI4
ADDRGP4 g_arenaservers+13288
INDIRI4
ARGI4
ADDRGP4 Com_sprintf
CALLV
pop
line 352
;352:			g_arenaservers.statusbar.string  = "Press SPACE to stop";
ADDRGP4 g_arenaservers+1296+60
ADDRGP4 $169
ASGNP4
line 353
;353:			qsort( g_arenaservers.serverlist, *g_arenaservers.numservers, sizeof( servernode_t ), ArenaServers_Compare);
ADDRGP4 g_arenaservers+13296
INDIRP4
ARGP4
ADDRGP4 g_arenaservers+13292
INDIRP4
INDIRI4
ARGI4
CNSTI4 148
ARGI4
ADDRGP4 ArenaServers_Compare
ARGP4
ADDRGP4 qsort
CALLV
pop
line 354
;354:		}
ADDRGP4 $155
JUMPV
LABELV $157
line 355
;355:		else {
line 357
;356:			// all servers pinged - enable controls
;357:			g_arenaservers.master.generic.flags		&= ~QMF_GRAYED;
ADDRLP4 28
ADDRGP4 g_arenaservers+360+44
ASGNP4
ADDRLP4 28
INDIRP4
ADDRLP4 28
INDIRP4
INDIRU4
CNSTU4 4294959103
BANDU4
ASGNU4
line 358
;358:			g_arenaservers.gametype.generic.flags	&= ~QMF_GRAYED;
ADDRLP4 32
ADDRGP4 g_arenaservers+456+44
ASGNP4
ADDRLP4 32
INDIRP4
ADDRLP4 32
INDIRP4
INDIRU4
CNSTU4 4294959103
BANDU4
ASGNU4
line 359
;359:			g_arenaservers.sortkey.generic.flags	&= ~QMF_GRAYED;
ADDRLP4 36
ADDRGP4 g_arenaservers+552+44
ASGNP4
ADDRLP4 36
INDIRP4
ADDRLP4 36
INDIRP4
INDIRU4
CNSTU4 4294959103
BANDU4
ASGNU4
line 360
;360:			g_arenaservers.showempty.generic.flags	&= ~QMF_GRAYED;
ADDRLP4 40
ADDRGP4 g_arenaservers+712+44
ASGNP4
ADDRLP4 40
INDIRP4
ADDRLP4 40
INDIRP4
INDIRU4
CNSTU4 4294959103
BANDU4
ASGNU4
line 361
;361:			g_arenaservers.showfull.generic.flags	&= ~QMF_GRAYED;
ADDRLP4 44
ADDRGP4 g_arenaservers+648+44
ASGNP4
ADDRLP4 44
INDIRP4
ADDRLP4 44
INDIRP4
INDIRU4
CNSTU4 4294959103
BANDU4
ASGNU4
line 362
;362:			g_arenaservers.list.generic.flags		&= ~QMF_GRAYED;
ADDRLP4 48
ADDRGP4 g_arenaservers+776+44
ASGNP4
ADDRLP4 48
INDIRP4
ADDRLP4 48
INDIRP4
INDIRU4
CNSTU4 4294959103
BANDU4
ASGNU4
line 363
;363:			g_arenaservers.refresh.generic.flags	&= ~QMF_GRAYED;
ADDRLP4 52
ADDRGP4 g_arenaservers+1544+44
ASGNP4
ADDRLP4 52
INDIRP4
ADDRLP4 52
INDIRP4
INDIRU4
CNSTU4 4294959103
BANDU4
ASGNU4
line 364
;364:			g_arenaservers.go.generic.flags			&= ~QMF_GRAYED;
ADDRLP4 56
ADDRGP4 g_arenaservers+1808+44
ASGNP4
ADDRLP4 56
INDIRP4
ADDRLP4 56
INDIRP4
INDIRU4
CNSTU4 4294959103
BANDU4
ASGNU4
line 367
;365:
;366:			// update status bar
;367:			if( g_servertype == AS_GLOBAL || g_servertype == AS_MPLAYER ) {
ADDRLP4 60
ADDRGP4 g_servertype
INDIRI4
ASGNI4
ADDRLP4 60
INDIRI4
CNSTI4 2
EQI4 $190
ADDRLP4 60
INDIRI4
CNSTI4 1
NEI4 $188
LABELV $190
line 368
;368:				g_arenaservers.statusbar.string = quake3worldMessage;
ADDRGP4 g_arenaservers+1296+60
ADDRGP4 quake3worldMessage
ASGNP4
line 369
;369:			}
ADDRGP4 $155
JUMPV
LABELV $188
line 370
;370:			else {
line 371
;371:				g_arenaservers.statusbar.string = "";
ADDRGP4 g_arenaservers+1296+60
ADDRGP4 $195
ASGNP4
line 372
;372:			}
line 374
;373:
;374:		}
line 375
;375:	}
ADDRGP4 $155
JUMPV
LABELV $154
line 376
;376:	else {
line 378
;377:		// no servers found
;378:		if( g_arenaservers.refreshservers ) {
ADDRGP4 g_arenaservers+13304
INDIRI4
CNSTI4 0
EQI4 $196
line 379
;379:			strcpy( g_arenaservers.status.string,"Scanning For Servers." );
ADDRGP4 g_arenaservers+1224+60
INDIRP4
ARGP4
ADDRGP4 $201
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 380
;380:			g_arenaservers.statusbar.string = "Press SPACE to stop";
ADDRGP4 g_arenaservers+1296+60
ADDRGP4 $169
ASGNP4
line 383
;381:
;382:			// disable controls during refresh
;383:			g_arenaservers.master.generic.flags		|= QMF_GRAYED;
ADDRLP4 28
ADDRGP4 g_arenaservers+360+44
ASGNP4
ADDRLP4 28
INDIRP4
ADDRLP4 28
INDIRP4
INDIRU4
CNSTU4 8192
BORU4
ASGNU4
line 384
;384:			g_arenaservers.gametype.generic.flags	|= QMF_GRAYED;
ADDRLP4 32
ADDRGP4 g_arenaservers+456+44
ASGNP4
ADDRLP4 32
INDIRP4
ADDRLP4 32
INDIRP4
INDIRU4
CNSTU4 8192
BORU4
ASGNU4
line 385
;385:			g_arenaservers.sortkey.generic.flags	|= QMF_GRAYED;
ADDRLP4 36
ADDRGP4 g_arenaservers+552+44
ASGNP4
ADDRLP4 36
INDIRP4
ADDRLP4 36
INDIRP4
INDIRU4
CNSTU4 8192
BORU4
ASGNU4
line 386
;386:			g_arenaservers.showempty.generic.flags	|= QMF_GRAYED;
ADDRLP4 40
ADDRGP4 g_arenaservers+712+44
ASGNP4
ADDRLP4 40
INDIRP4
ADDRLP4 40
INDIRP4
INDIRU4
CNSTU4 8192
BORU4
ASGNU4
line 387
;387:			g_arenaservers.showfull.generic.flags	|= QMF_GRAYED;
ADDRLP4 44
ADDRGP4 g_arenaservers+648+44
ASGNP4
ADDRLP4 44
INDIRP4
ADDRLP4 44
INDIRP4
INDIRU4
CNSTU4 8192
BORU4
ASGNU4
line 388
;388:			g_arenaservers.list.generic.flags		|= QMF_GRAYED;
ADDRLP4 48
ADDRGP4 g_arenaservers+776+44
ASGNP4
ADDRLP4 48
INDIRP4
ADDRLP4 48
INDIRP4
INDIRU4
CNSTU4 8192
BORU4
ASGNU4
line 389
;389:			g_arenaservers.refresh.generic.flags	|= QMF_GRAYED;
ADDRLP4 52
ADDRGP4 g_arenaservers+1544+44
ASGNP4
ADDRLP4 52
INDIRP4
ADDRLP4 52
INDIRP4
INDIRU4
CNSTU4 8192
BORU4
ASGNU4
line 390
;390:			g_arenaservers.go.generic.flags			|= QMF_GRAYED;
ADDRLP4 56
ADDRGP4 g_arenaservers+1808+44
ASGNP4
ADDRLP4 56
INDIRP4
ADDRLP4 56
INDIRP4
INDIRU4
CNSTU4 8192
BORU4
ASGNU4
line 391
;391:		}
ADDRGP4 $197
JUMPV
LABELV $196
line 392
;392:		else {
line 393
;393:			if( g_arenaservers.numqueriedservers < 0 ) {
ADDRGP4 g_arenaservers+13288
INDIRI4
CNSTI4 0
GEI4 $220
line 394
;394:				strcpy(g_arenaservers.status.string,"No Response From Master Server." );
ADDRGP4 g_arenaservers+1224+60
INDIRP4
ARGP4
ADDRGP4 $225
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 395
;395:			}
ADDRGP4 $221
JUMPV
LABELV $220
line 396
;396:			else {
line 397
;397:				strcpy(g_arenaservers.status.string,"No Servers Found." );
ADDRGP4 g_arenaservers+1224+60
INDIRP4
ARGP4
ADDRGP4 $228
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 398
;398:			}
LABELV $221
line 401
;399:
;400:			// update status bar
;401:			if( g_servertype == AS_GLOBAL || g_servertype == AS_MPLAYER ) {
ADDRLP4 28
ADDRGP4 g_servertype
INDIRI4
ASGNI4
ADDRLP4 28
INDIRI4
CNSTI4 2
EQI4 $231
ADDRLP4 28
INDIRI4
CNSTI4 1
NEI4 $229
LABELV $231
line 402
;402:				g_arenaservers.statusbar.string = quake3worldMessage;
ADDRGP4 g_arenaservers+1296+60
ADDRGP4 quake3worldMessage
ASGNP4
line 403
;403:			}
ADDRGP4 $230
JUMPV
LABELV $229
line 404
;404:			else {
line 405
;405:				g_arenaservers.statusbar.string = "";
ADDRGP4 g_arenaservers+1296+60
ADDRGP4 $195
ASGNP4
line 406
;406:			}
LABELV $230
line 409
;407:
;408:			// end of refresh - set control state
;409:			g_arenaservers.master.generic.flags		&= ~QMF_GRAYED;
ADDRLP4 32
ADDRGP4 g_arenaservers+360+44
ASGNP4
ADDRLP4 32
INDIRP4
ADDRLP4 32
INDIRP4
INDIRU4
CNSTU4 4294959103
BANDU4
ASGNU4
line 410
;410:			g_arenaservers.gametype.generic.flags	&= ~QMF_GRAYED;
ADDRLP4 36
ADDRGP4 g_arenaservers+456+44
ASGNP4
ADDRLP4 36
INDIRP4
ADDRLP4 36
INDIRP4
INDIRU4
CNSTU4 4294959103
BANDU4
ASGNU4
line 411
;411:			g_arenaservers.sortkey.generic.flags	&= ~QMF_GRAYED;
ADDRLP4 40
ADDRGP4 g_arenaservers+552+44
ASGNP4
ADDRLP4 40
INDIRP4
ADDRLP4 40
INDIRP4
INDIRU4
CNSTU4 4294959103
BANDU4
ASGNU4
line 412
;412:			g_arenaservers.showempty.generic.flags	&= ~QMF_GRAYED;
ADDRLP4 44
ADDRGP4 g_arenaservers+712+44
ASGNP4
ADDRLP4 44
INDIRP4
ADDRLP4 44
INDIRP4
INDIRU4
CNSTU4 4294959103
BANDU4
ASGNU4
line 413
;413:			g_arenaservers.showfull.generic.flags	&= ~QMF_GRAYED;
ADDRLP4 48
ADDRGP4 g_arenaservers+648+44
ASGNP4
ADDRLP4 48
INDIRP4
ADDRLP4 48
INDIRP4
INDIRU4
CNSTU4 4294959103
BANDU4
ASGNU4
line 414
;414:			g_arenaservers.list.generic.flags		|= QMF_GRAYED;
ADDRLP4 52
ADDRGP4 g_arenaservers+776+44
ASGNP4
ADDRLP4 52
INDIRP4
ADDRLP4 52
INDIRP4
INDIRU4
CNSTU4 8192
BORU4
ASGNU4
line 415
;415:			g_arenaservers.refresh.generic.flags	&= ~QMF_GRAYED;
ADDRLP4 56
ADDRGP4 g_arenaservers+1544+44
ASGNP4
ADDRLP4 56
INDIRP4
ADDRLP4 56
INDIRP4
INDIRU4
CNSTU4 4294959103
BANDU4
ASGNU4
line 416
;416:			g_arenaservers.go.generic.flags			|= QMF_GRAYED;
ADDRLP4 60
ADDRGP4 g_arenaservers+1808+44
ASGNP4
ADDRLP4 60
INDIRP4
ADDRLP4 60
INDIRP4
INDIRU4
CNSTU4 8192
BORU4
ASGNU4
line 417
;417:		}
LABELV $197
line 420
;418:
;419:		// zero out list box
;420:		g_arenaservers.list.numitems = 0;
ADDRGP4 g_arenaservers+776+68
CNSTI4 0
ASGNI4
line 421
;421:		g_arenaservers.list.curvalue = 0;
ADDRGP4 g_arenaservers+776+64
CNSTI4 0
ASGNI4
line 422
;422:		g_arenaservers.list.top      = 0;
ADDRGP4 g_arenaservers+776+72
CNSTI4 0
ASGNI4
line 425
;423:
;424:		// update picture
;425:		ArenaServers_UpdatePicture();
ADDRGP4 ArenaServers_UpdatePicture
CALLV
pop
line 426
;426:		return;
ADDRGP4 $153
JUMPV
LABELV $155
line 430
;427:	}
;428:
;429:	// build list box strings - apply culling filters
;430:	servernodeptr = g_arenaservers.serverlist;
ADDRLP4 0
ADDRGP4 g_arenaservers+13296
INDIRP4
ASGNP4
line 431
;431:	count         = *g_arenaservers.numservers;
ADDRLP4 24
ADDRGP4 g_arenaservers+13292
INDIRP4
INDIRI4
ASGNI4
line 432
;432:	for( i = 0, j = 0; i < count; i++, servernodeptr++ ) {
ADDRLP4 28
CNSTI4 0
ASGNI4
ADDRLP4 12
ADDRLP4 28
INDIRI4
ASGNI4
ADDRLP4 8
ADDRLP4 28
INDIRI4
ASGNI4
ADDRGP4 $263
JUMPV
LABELV $260
line 433
;433:		tableptr = &g_arenaservers.table[j];
ADDRLP4 4
CNSTI4 68
ADDRLP4 8
INDIRI4
MULI4
ADDRGP4 g_arenaservers+4072
ADDP4
ASGNP4
line 434
;434:		tableptr->servernode = servernodeptr;
ADDRLP4 4
INDIRP4
CNSTI4 64
ADDP4
ADDRLP4 0
INDIRP4
ASGNP4
line 435
;435:		buff = tableptr->buff;
ADDRLP4 16
ADDRLP4 4
INDIRP4
ASGNP4
line 438
;436:
;437:		// can only cull valid results
;438:		if( !g_emptyservers && !servernodeptr->numclients ) {
ADDRLP4 32
CNSTI4 0
ASGNI4
ADDRGP4 g_emptyservers
INDIRI4
ADDRLP4 32
INDIRI4
NEI4 $265
ADDRLP4 0
INDIRP4
CNSTI4 108
ADDP4
INDIRI4
ADDRLP4 32
INDIRI4
NEI4 $265
line 439
;439:			continue;
ADDRGP4 $261
JUMPV
LABELV $265
line 442
;440:		}
;441:
;442:		if( !g_fullservers && ( servernodeptr->numclients == servernodeptr->maxclients ) ) {
ADDRGP4 g_fullservers
INDIRI4
CNSTI4 0
NEI4 $267
ADDRLP4 0
INDIRP4
CNSTI4 108
ADDP4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 112
ADDP4
INDIRI4
NEI4 $267
line 443
;443:			continue;
ADDRGP4 $261
JUMPV
LABELV $267
line 446
;444:		}
;445:
;446:		switch( g_gametype ) {
ADDRLP4 40
ADDRGP4 g_gametype
INDIRI4
ASGNI4
ADDRLP4 40
INDIRI4
CNSTI4 0
LTI4 $269
ADDRLP4 40
INDIRI4
CNSTI4 4
GTI4 $269
ADDRLP4 40
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 $284
ADDP4
INDIRP4
JUMPV
lit
align 4
LABELV $284
address $270
address $272
address $275
address $278
address $281
code
line 448
;447:		case GAMES_ALL:
;448:			break;
LABELV $272
line 451
;449:
;450:		case GAMES_FFA:
;451:			if( servernodeptr->gametype != GT_FFA ) {
ADDRLP4 0
INDIRP4
CNSTI4 120
ADDP4
INDIRI4
CNSTI4 0
EQI4 $270
line 452
;452:				continue;
ADDRGP4 $261
JUMPV
line 454
;453:			}
;454:			break;
LABELV $275
line 457
;455:
;456:		case GAMES_TEAMPLAY:
;457:			if( servernodeptr->gametype != GT_TEAM ) {
ADDRLP4 0
INDIRP4
CNSTI4 120
ADDP4
INDIRI4
CNSTI4 3
EQI4 $270
line 458
;458:				continue;
ADDRGP4 $261
JUMPV
line 460
;459:			}
;460:			break;
LABELV $278
line 463
;461:
;462:		case GAMES_TOURNEY:
;463:			if( servernodeptr->gametype != GT_TOURNAMENT ) {
ADDRLP4 0
INDIRP4
CNSTI4 120
ADDP4
INDIRI4
CNSTI4 1
EQI4 $270
line 464
;464:				continue;
ADDRGP4 $261
JUMPV
line 466
;465:			}
;466:			break;
LABELV $281
line 469
;467:
;468:		case GAMES_CTF:
;469:			if( servernodeptr->gametype != GT_CTF ) {
ADDRLP4 0
INDIRP4
CNSTI4 120
ADDP4
INDIRI4
CNSTI4 4
EQI4 $270
line 470
;470:				continue;
ADDRGP4 $261
JUMPV
line 472
;471:			}
;472:			break;
LABELV $269
LABELV $270
line 475
;473:		}
;474:
;475:		if( servernodeptr->pingtime < servernodeptr->minPing ) {
ADDRLP4 0
INDIRP4
CNSTI4 116
ADDP4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 140
ADDP4
INDIRI4
GEI4 $285
line 476
;476:			pingColor = S_COLOR_BLUE;
ADDRLP4 20
ADDRGP4 $287
ASGNP4
line 477
;477:		}
ADDRGP4 $286
JUMPV
LABELV $285
line 478
;478:		else if( servernodeptr->maxPing && servernodeptr->pingtime > servernodeptr->maxPing ) {
ADDRLP4 52
ADDRLP4 0
INDIRP4
CNSTI4 144
ADDP4
INDIRI4
ASGNI4
ADDRLP4 52
INDIRI4
CNSTI4 0
EQI4 $288
ADDRLP4 0
INDIRP4
CNSTI4 116
ADDP4
INDIRI4
ADDRLP4 52
INDIRI4
LEI4 $288
line 479
;479:			pingColor = S_COLOR_BLUE;
ADDRLP4 20
ADDRGP4 $287
ASGNP4
line 480
;480:		}
ADDRGP4 $289
JUMPV
LABELV $288
line 481
;481:		else if( servernodeptr->pingtime < 200 ) {
ADDRLP4 0
INDIRP4
CNSTI4 116
ADDP4
INDIRI4
CNSTI4 200
GEI4 $290
line 482
;482:			pingColor = S_COLOR_GREEN;
ADDRLP4 20
ADDRGP4 $292
ASGNP4
line 483
;483:		}
ADDRGP4 $291
JUMPV
LABELV $290
line 484
;484:		else if( servernodeptr->pingtime < 400 ) {
ADDRLP4 0
INDIRP4
CNSTI4 116
ADDP4
INDIRI4
CNSTI4 400
GEI4 $293
line 485
;485:			pingColor = S_COLOR_YELLOW;
ADDRLP4 20
ADDRGP4 $295
ASGNP4
line 486
;486:		}
ADDRGP4 $294
JUMPV
LABELV $293
line 487
;487:		else {
line 488
;488:			pingColor = S_COLOR_RED;
ADDRLP4 20
ADDRGP4 $296
ASGNP4
line 489
;489:		}
LABELV $294
LABELV $291
LABELV $289
LABELV $286
line 491
;490:
;491:		Com_sprintf( buff, MAX_LISTBOXWIDTH, "%-20.20s %-12.12s %2d/%2d %-8.8s %3s %s%3d", 
ADDRLP4 16
INDIRP4
ARGP4
CNSTI4 61
ARGI4
ADDRGP4 $297
ARGP4
ADDRLP4 0
INDIRP4
CNSTI4 64
ADDP4
ARGP4
ADDRLP4 0
INDIRP4
CNSTI4 89
ADDP4
ARGP4
ADDRLP4 0
INDIRP4
CNSTI4 108
ADDP4
INDIRI4
ARGI4
ADDRLP4 0
INDIRP4
CNSTI4 112
ADDP4
INDIRI4
ARGI4
ADDRLP4 0
INDIRP4
CNSTI4 124
ADDP4
ARGP4
ADDRLP4 0
INDIRP4
CNSTI4 136
ADDP4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 netnames
ADDP4
INDIRP4
ARGP4
ADDRLP4 20
INDIRP4
ARGP4
ADDRLP4 0
INDIRP4
CNSTI4 116
ADDP4
INDIRI4
ARGI4
ADDRGP4 Com_sprintf
CALLV
pop
line 496
;492:			servernodeptr->hostname, servernodeptr->mapname, servernodeptr->numclients,
;493: 			servernodeptr->maxclients, servernodeptr->gamename,
;494:			netnames[servernodeptr->nettype], pingColor, servernodeptr->pingtime );
;495:
;496:		j++;
ADDRLP4 8
ADDRLP4 8
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 497
;497:	}
LABELV $261
line 432
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
ADDRLP4 0
INDIRP4
CNSTI4 148
ADDP4
ASGNP4
LABELV $263
ADDRLP4 12
INDIRI4
ADDRLP4 24
INDIRI4
LTI4 $260
line 501
;498:
;499://	Com_sprintf( g_arenaservers.status.string, MAX_STATUSLENGTH, "%d of %d Arena Servers.", j, *g_arenaservers.numservers );
;500:
;501:	g_arenaservers.list.numitems = j;
ADDRGP4 g_arenaservers+776+68
ADDRLP4 8
INDIRI4
ASGNI4
line 502
;502:	g_arenaservers.list.curvalue = 0;
ADDRGP4 g_arenaservers+776+64
CNSTI4 0
ASGNI4
line 503
;503:	g_arenaservers.list.top      = 0;
ADDRGP4 g_arenaservers+776+72
CNSTI4 0
ASGNI4
line 506
;504:
;505:	// update picture
;506:	ArenaServers_UpdatePicture();
ADDRGP4 ArenaServers_UpdatePicture
CALLV
pop
line 507
;507:}
LABELV $153
endproc ArenaServers_UpdateMenu 64 44
proc ArenaServers_Remove 24 12
line 516
;508:
;509:
;510:/*
;511:=================
;512:ArenaServers_Remove
;513:=================
;514:*/
;515:static void ArenaServers_Remove( void )
;516:{
line 521
;517:	int				i;
;518:	servernode_t*	servernodeptr;
;519:	table_t*		tableptr;
;520:
;521:	if (!g_arenaservers.list.numitems)
ADDRGP4 g_arenaservers+776+68
INDIRI4
CNSTI4 0
NEI4 $305
line 522
;522:		return;
ADDRGP4 $304
JUMPV
LABELV $305
line 528
;523:
;524:	// remove selected item from display list
;525:	// items are in scattered order due to sort and cull
;526:	// perform delete on list box contents, resync all lists
;527:
;528:	tableptr      = &g_arenaservers.table[g_arenaservers.list.curvalue];
ADDRLP4 8
CNSTI4 68
ADDRGP4 g_arenaservers+776+64
INDIRI4
MULI4
ADDRGP4 g_arenaservers+4072
ADDP4
ASGNP4
line 529
;529:	servernodeptr = tableptr->servernode;
ADDRLP4 4
ADDRLP4 8
INDIRP4
CNSTI4 64
ADDP4
INDIRP4
ASGNP4
line 532
;530:
;531:	// find address in master list
;532:	for (i=0; i<g_arenaservers.numfavoriteaddresses; i++)
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $315
JUMPV
LABELV $312
line 533
;533:		if (!Q_stricmp(g_arenaservers.favoriteaddresses[i],servernodeptr->adrstr))
ADDRLP4 0
INDIRI4
CNSTI4 6
LSHI4
ADDRGP4 g_arenaservers+13320
ADDP4
ARGP4
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 12
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 12
INDIRI4
CNSTI4 0
NEI4 $317
line 534
;534:				break;
ADDRGP4 $314
JUMPV
LABELV $317
LABELV $313
line 532
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $315
ADDRLP4 0
INDIRI4
ADDRGP4 g_arenaservers+14344
INDIRI4
LTI4 $312
LABELV $314
line 537
;535:
;536:	// delete address from master list
;537:	if (i <= g_arenaservers.numfavoriteaddresses-1)
ADDRLP4 0
INDIRI4
ADDRGP4 g_arenaservers+14344
INDIRI4
CNSTI4 1
SUBI4
GTI4 $320
line 538
;538:	{
line 539
;539:		if (i < g_arenaservers.numfavoriteaddresses-1)
ADDRLP4 0
INDIRI4
ADDRGP4 g_arenaservers+14344
INDIRI4
CNSTI4 1
SUBI4
GEI4 $323
line 540
;540:		{
line 542
;541:			// shift items up
;542:			memcpy( &g_arenaservers.favoriteaddresses[i], &g_arenaservers.favoriteaddresses[i+1], (g_arenaservers.numfavoriteaddresses - i - 1)*sizeof(MAX_ADDRESSLENGTH));
ADDRLP4 20
ADDRLP4 0
INDIRI4
CNSTI4 6
LSHI4
ASGNI4
ADDRLP4 20
INDIRI4
ADDRGP4 g_arenaservers+13320
ADDP4
ARGP4
ADDRLP4 20
INDIRI4
ADDRGP4 g_arenaservers+13320+64
ADDP4
ARGP4
ADDRGP4 g_arenaservers+14344
INDIRI4
ADDRLP4 0
INDIRI4
SUBI4
CNSTI4 1
SUBI4
CVIU4 4
CNSTI4 2
LSHU4
CVUI4 4
ARGI4
ADDRGP4 memcpy
CALLP4
pop
line 543
;543:		}
LABELV $323
line 544
;544:		g_arenaservers.numfavoriteaddresses--;
ADDRLP4 16
ADDRGP4 g_arenaservers+14344
ASGNP4
ADDRLP4 16
INDIRP4
ADDRLP4 16
INDIRP4
INDIRI4
CNSTI4 1
SUBI4
ASGNI4
line 545
;545:	}	
LABELV $320
line 548
;546:
;547:	// find address in server list
;548:	for (i=0; i<g_numfavoriteservers; i++)
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $334
JUMPV
LABELV $331
line 549
;549:		if (&g_favoriteserverlist[i] == servernodeptr)
CNSTI4 148
ADDRLP4 0
INDIRI4
MULI4
ADDRGP4 g_favoriteserverlist
ADDP4
CVPU4 4
ADDRLP4 4
INDIRP4
CVPU4 4
NEU4 $335
line 550
;550:				break;
ADDRGP4 $333
JUMPV
LABELV $335
LABELV $332
line 548
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $334
ADDRLP4 0
INDIRI4
ADDRGP4 g_numfavoriteservers
INDIRI4
LTI4 $331
LABELV $333
line 553
;551:
;552:	// delete address from server list
;553:	if (i <= g_numfavoriteservers-1)
ADDRLP4 0
INDIRI4
ADDRGP4 g_numfavoriteservers
INDIRI4
CNSTI4 1
SUBI4
GTI4 $337
line 554
;554:	{
line 555
;555:		if (i < g_numfavoriteservers-1)
ADDRLP4 0
INDIRI4
ADDRGP4 g_numfavoriteservers
INDIRI4
CNSTI4 1
SUBI4
GEI4 $339
line 556
;556:		{
line 558
;557:			// shift items up
;558:			memcpy( &g_favoriteserverlist[i], &g_favoriteserverlist[i+1], (g_numfavoriteservers - i - 1)*sizeof(servernode_t));
ADDRLP4 20
CNSTI4 148
ADDRLP4 0
INDIRI4
MULI4
ASGNI4
ADDRLP4 20
INDIRI4
ADDRGP4 g_favoriteserverlist
ADDP4
ARGP4
ADDRLP4 20
INDIRI4
ADDRGP4 g_favoriteserverlist+148
ADDP4
ARGP4
CNSTU4 148
ADDRGP4 g_numfavoriteservers
INDIRI4
ADDRLP4 0
INDIRI4
SUBI4
CNSTI4 1
SUBI4
CVIU4 4
MULU4
CVUI4 4
ARGI4
ADDRGP4 memcpy
CALLP4
pop
line 559
;559:		}
LABELV $339
line 560
;560:		g_numfavoriteservers--;
ADDRLP4 16
ADDRGP4 g_numfavoriteservers
ASGNP4
ADDRLP4 16
INDIRP4
ADDRLP4 16
INDIRP4
INDIRI4
CNSTI4 1
SUBI4
ASGNI4
line 561
;561:	}	
LABELV $337
line 563
;562:
;563:	g_arenaservers.numqueriedservers = g_arenaservers.numfavoriteaddresses;
ADDRGP4 g_arenaservers+13288
ADDRGP4 g_arenaservers+14344
INDIRI4
ASGNI4
line 564
;564:	g_arenaservers.currentping       = g_arenaservers.numfavoriteaddresses;
ADDRGP4 g_arenaservers+13300
ADDRGP4 g_arenaservers+14344
INDIRI4
ASGNI4
line 565
;565:}
LABELV $304
endproc ArenaServers_Remove 24 12
proc ArenaServers_Insert 84 16
line 574
;566:
;567:
;568:/*
;569:=================
;570:ArenaServers_Insert
;571:=================
;572:*/
;573:static void ArenaServers_Insert( char* adrstr, char* info, int pingtime )
;574:{
line 580
;575:	servernode_t*	servernodeptr;
;576:	char*			s;
;577:	int				i;
;578:
;579:
;580:	if ((pingtime >= ArenaServers_MaxPing()) && (g_servertype != AS_FAVORITES))
ADDRLP4 12
ADDRGP4 ArenaServers_MaxPing
CALLI4
ASGNI4
ADDRFP4 8
INDIRI4
ADDRLP4 12
INDIRI4
LTI4 $347
ADDRGP4 g_servertype
INDIRI4
CNSTI4 3
EQI4 $347
line 581
;581:	{
line 583
;582:		// slow global or local servers do not get entered
;583:		return;
ADDRGP4 $346
JUMPV
LABELV $347
line 588
;584:	}
;585:	//remove
;586:	//trap_Cmd_ExecuteText( EXEC_NOW, va( "echo infostring: %s\n", info )  );
;587:
;588:	if (*g_arenaservers.numservers >= g_arenaservers.maxservers) {
ADDRGP4 g_arenaservers+13292
INDIRP4
INDIRI4
ADDRGP4 g_arenaservers+13312
INDIRI4
LTI4 $349
line 590
;589:		// list full;
;590:		servernodeptr = g_arenaservers.serverlist+(*g_arenaservers.numservers)-1;
ADDRLP4 0
CNSTI4 148
ADDRGP4 g_arenaservers+13292
INDIRP4
INDIRI4
MULI4
ADDRGP4 g_arenaservers+13296
INDIRP4
ADDP4
CNSTI4 -148
ADDP4
ASGNP4
line 591
;591:	} else {
ADDRGP4 $350
JUMPV
LABELV $349
line 593
;592:		// next slot
;593:		servernodeptr = g_arenaservers.serverlist+(*g_arenaservers.numservers);
ADDRLP4 0
CNSTI4 148
ADDRGP4 g_arenaservers+13292
INDIRP4
INDIRI4
MULI4
ADDRGP4 g_arenaservers+13296
INDIRP4
ADDP4
ASGNP4
line 594
;594:		(*g_arenaservers.numservers)++;
ADDRLP4 16
ADDRGP4 g_arenaservers+13292
INDIRP4
ASGNP4
ADDRLP4 16
INDIRP4
ADDRLP4 16
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 595
;595:	}
LABELV $350
line 597
;596:
;597:	Q_strncpyz( servernodeptr->adrstr, adrstr, MAX_ADDRESSLENGTH );
ADDRLP4 0
INDIRP4
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 599
;598:
;599:	Q_strncpyz( servernodeptr->hostname, Info_ValueForKey( info, "hostname"), MAX_HOSTNAMELENGTH );
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 $358
ARGP4
ADDRLP4 16
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 0
INDIRP4
CNSTI4 64
ADDP4
ARGP4
ADDRLP4 16
INDIRP4
ARGP4
CNSTI4 22
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 600
;600:	Q_CleanStr( servernodeptr->hostname );
ADDRLP4 0
INDIRP4
CNSTI4 64
ADDP4
ARGP4
ADDRGP4 Q_CleanStr
CALLP4
pop
line 601
;601:	Q_strupr( servernodeptr->hostname );
ADDRLP4 0
INDIRP4
CNSTI4 64
ADDP4
ARGP4
ADDRGP4 Q_strupr
CALLP4
pop
line 603
;602:
;603:	Q_strncpyz( servernodeptr->mapname, Info_ValueForKey( info, "mapname"), MAX_MAPNAMELENGTH );
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 $359
ARGP4
ADDRLP4 20
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 0
INDIRP4
CNSTI4 89
ADDP4
ARGP4
ADDRLP4 20
INDIRP4
ARGP4
CNSTI4 16
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 604
;604:	Q_CleanStr( servernodeptr->mapname );
ADDRLP4 0
INDIRP4
CNSTI4 89
ADDP4
ARGP4
ADDRGP4 Q_CleanStr
CALLP4
pop
line 605
;605:	Q_strupr( servernodeptr->mapname );
ADDRLP4 0
INDIRP4
CNSTI4 89
ADDP4
ARGP4
ADDRGP4 Q_strupr
CALLP4
pop
line 607
;606:
;607:	servernodeptr->numclients = atoi( Info_ValueForKey( info, "clients") );
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 $360
ARGP4
ADDRLP4 24
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 24
INDIRP4
ARGP4
ADDRLP4 28
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 108
ADDP4
ADDRLP4 28
INDIRI4
ASGNI4
line 608
;608:	servernodeptr->maxclients = atoi( Info_ValueForKey( info, "sv_maxclients") );
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 $361
ARGP4
ADDRLP4 32
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 32
INDIRP4
ARGP4
ADDRLP4 36
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 112
ADDP4
ADDRLP4 36
INDIRI4
ASGNI4
line 609
;609:	servernodeptr->pingtime   = pingtime;
ADDRLP4 0
INDIRP4
CNSTI4 116
ADDP4
ADDRFP4 8
INDIRI4
ASGNI4
line 610
;610:	servernodeptr->minPing    = atoi( Info_ValueForKey( info, "minPing") );
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 $362
ARGP4
ADDRLP4 40
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 40
INDIRP4
ARGP4
ADDRLP4 44
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 140
ADDP4
ADDRLP4 44
INDIRI4
ASGNI4
line 611
;611:	servernodeptr->maxPing    = atoi( Info_ValueForKey( info, "maxPing") );
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 $363
ARGP4
ADDRLP4 48
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 48
INDIRP4
ARGP4
ADDRLP4 52
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 144
ADDP4
ADDRLP4 52
INDIRI4
ASGNI4
line 612
;612:	if (atoi( Info_ValueForKey( info, "sv_allowAnonymous")) != 0 ) {
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 $366
ARGP4
ADDRLP4 56
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 56
INDIRP4
ARGP4
ADDRLP4 60
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 60
INDIRI4
CNSTI4 0
EQI4 $364
line 613
;613:		Com_sprintf(servernodeptr->hostname, MAX_HOSTNAMELENGTH, "(A)%s", servernodeptr->hostname);
ADDRLP4 64
ADDRLP4 0
INDIRP4
CNSTI4 64
ADDP4
ASGNP4
ADDRLP4 64
INDIRP4
ARGP4
CNSTI4 22
ARGI4
ADDRGP4 $367
ARGP4
ADDRLP4 64
INDIRP4
ARGP4
ADDRGP4 Com_sprintf
CALLV
pop
line 614
;614:	}
LABELV $364
line 632
;615:
;616:	/*
;617:	s = Info_ValueForKey( info, "nettype" );
;618:	for (i=0; ;i++)
;619:	{
;620:		if (!netnames[i])
;621:		{
;622:			servernodeptr->nettype = 0;
;623:			break;
;624:		}
;625:		else if (!Q_stricmp( netnames[i], s ))
;626:		{
;627:			servernodeptr->nettype = i;
;628:			break;
;629:		}
;630:	}
;631:	*/
;632:	servernodeptr->nettype = atoi(Info_ValueForKey(info, "nettype"));
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 $368
ARGP4
ADDRLP4 64
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 64
INDIRP4
ARGP4
ADDRLP4 68
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 136
ADDP4
ADDRLP4 68
INDIRI4
ASGNI4
line 634
;633:
;634:	s = Info_ValueForKey( info, "game");
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 $369
ARGP4
ADDRLP4 72
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 8
ADDRLP4 72
INDIRP4
ASGNP4
line 635
;635:	i = atoi( Info_ValueForKey( info, "gametype") );
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 $370
ARGP4
ADDRLP4 76
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 76
INDIRP4
ARGP4
ADDRLP4 80
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 4
ADDRLP4 80
INDIRI4
ASGNI4
line 636
;636:	if( i < 0 ) {
ADDRLP4 4
INDIRI4
CNSTI4 0
GEI4 $371
line 637
;637:		i = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
line 638
;638:	}
ADDRGP4 $372
JUMPV
LABELV $371
line 639
;639:	else if( i > 11 ) {
ADDRLP4 4
INDIRI4
CNSTI4 11
LEI4 $373
line 640
;640:		i = 12;
ADDRLP4 4
CNSTI4 12
ASGNI4
line 641
;641:	}
LABELV $373
LABELV $372
line 642
;642:	if( *s ) {
ADDRLP4 8
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $375
line 643
;643:		servernodeptr->gametype = i;//-1;
ADDRLP4 0
INDIRP4
CNSTI4 120
ADDP4
ADDRLP4 4
INDIRI4
ASGNI4
line 644
;644:		Q_strncpyz( servernodeptr->gamename, s, sizeof(servernodeptr->gamename) );
ADDRLP4 0
INDIRP4
CNSTI4 124
ADDP4
ARGP4
ADDRLP4 8
INDIRP4
ARGP4
CNSTI4 12
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 645
;645:	}
ADDRGP4 $376
JUMPV
LABELV $375
line 646
;646:	else {
line 647
;647:		servernodeptr->gametype = i;
ADDRLP4 0
INDIRP4
CNSTI4 120
ADDP4
ADDRLP4 4
INDIRI4
ASGNI4
line 648
;648:		Q_strncpyz( servernodeptr->gamename, gamenames[i], sizeof(servernodeptr->gamename) );
ADDRLP4 0
INDIRP4
CNSTI4 124
ADDP4
ARGP4
ADDRLP4 4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gamenames
ADDP4
INDIRP4
ARGP4
CNSTI4 12
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 649
;649:	}
LABELV $376
line 650
;650:}
LABELV $346
endproc ArenaServers_Insert 84 16
export ArenaServers_InsertFavorites
proc ArenaServers_InsertFavorites 1040 12
line 661
;651:
;652:
;653:/*
;654:=================
;655:ArenaServers_InsertFavorites
;656:
;657:Insert nonresponsive address book entries into display lists.
;658:=================
;659:*/
;660:void ArenaServers_InsertFavorites( void )
;661:{
line 667
;662:	int		i;
;663:	int		j;
;664:	char	info[MAX_INFO_STRING];
;665:
;666:	// resync existing results with new or deleted cvars
;667:	info[0] = '\0';
ADDRLP4 8
CNSTI1 0
ASGNI1
line 668
;668:	Info_SetValueForKey( info, "hostname", "No Response" );
ADDRLP4 8
ARGP4
ADDRGP4 $358
ARGP4
ADDRGP4 $378
ARGP4
ADDRGP4 Info_SetValueForKey
CALLV
pop
line 669
;669:	for (i=0; i<g_arenaservers.numfavoriteaddresses; i++)
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRGP4 $382
JUMPV
LABELV $379
line 670
;670:	{
line 672
;671:		// find favorite address in refresh list
;672:		for (j=0; j<g_numfavoriteservers; j++)
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $387
JUMPV
LABELV $384
line 673
;673:			if (!Q_stricmp(g_arenaservers.favoriteaddresses[i],g_favoriteserverlist[j].adrstr))
ADDRLP4 4
INDIRI4
CNSTI4 6
LSHI4
ADDRGP4 g_arenaservers+13320
ADDP4
ARGP4
CNSTI4 148
ADDRLP4 0
INDIRI4
MULI4
ADDRGP4 g_favoriteserverlist
ADDP4
ARGP4
ADDRLP4 1032
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 1032
INDIRI4
CNSTI4 0
NEI4 $388
line 674
;674:				break;
ADDRGP4 $386
JUMPV
LABELV $388
LABELV $385
line 672
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $387
ADDRLP4 0
INDIRI4
ADDRGP4 g_numfavoriteservers
INDIRI4
LTI4 $384
LABELV $386
line 676
;675:
;676:		if ( j >= g_numfavoriteservers)
ADDRLP4 0
INDIRI4
ADDRGP4 g_numfavoriteservers
INDIRI4
LTI4 $391
line 677
;677:		{
line 679
;678:			// not in list, add it
;679:			ArenaServers_Insert( g_arenaservers.favoriteaddresses[i], info, ArenaServers_MaxPing() );
ADDRLP4 1036
ADDRGP4 ArenaServers_MaxPing
CALLI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 6
LSHI4
ADDRGP4 g_arenaservers+13320
ADDP4
ARGP4
ADDRLP4 8
ARGP4
ADDRLP4 1036
INDIRI4
ARGI4
ADDRGP4 ArenaServers_Insert
CALLV
pop
line 680
;680:		}
LABELV $391
line 681
;681:	}
LABELV $380
line 669
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $382
ADDRLP4 4
INDIRI4
ADDRGP4 g_arenaservers+14344
INDIRI4
LTI4 $379
line 682
;682:}
LABELV $377
endproc ArenaServers_InsertFavorites 1040 12
export ArenaServers_LoadFavorites
proc ArenaServers_LoadFavorites 3488 12
line 693
;683:
;684:
;685:/*
;686:=================
;687:ArenaServers_LoadFavorites
;688:
;689:Load cvar address book entries into local lists.
;690:=================
;691:*/
;692:void ArenaServers_LoadFavorites( void )
;693:{
line 702
;694:	int				i;
;695:	int				j;
;696:	int				numtempitems;
;697:	char			emptyinfo[MAX_INFO_STRING];
;698:	char			adrstr[MAX_ADDRESSLENGTH];
;699:	servernode_t	templist[MAX_FAVORITESERVERS];
;700:	qboolean		found;
;701:
;702:	found        = qfalse;
ADDRLP4 2444
CNSTI4 0
ASGNI4
line 703
;703:	emptyinfo[0] = '\0';
ADDRLP4 2448
CNSTI1 0
ASGNI1
line 706
;704:
;705:	// copy the old
;706:	memcpy( templist, g_favoriteserverlist, sizeof(servernode_t)*MAX_FAVORITESERVERS );
ADDRLP4 72
ARGP4
ADDRGP4 g_favoriteserverlist
ARGP4
CNSTI4 2368
ARGI4
ADDRGP4 memcpy
CALLP4
pop
line 707
;707:	numtempitems = g_numfavoriteservers;
ADDRLP4 68
ADDRGP4 g_numfavoriteservers
INDIRI4
ASGNI4
line 710
;708:
;709:	// clear the current for sync
;710:	memset( g_favoriteserverlist, 0, sizeof(servernode_t)*MAX_FAVORITESERVERS );
ADDRGP4 g_favoriteserverlist
ARGP4
CNSTI4 0
ARGI4
CNSTI4 2368
ARGI4
ADDRGP4 memset
CALLP4
pop
line 711
;711:	g_numfavoriteservers = 0;
ADDRGP4 g_numfavoriteservers
CNSTI4 0
ASGNI4
line 714
;712:
;713:	// resync existing results with new or deleted cvars
;714:	for (i=0; i<MAX_FAVORITESERVERS; i++)
ADDRLP4 2440
CNSTI4 0
ASGNI4
LABELV $395
line 715
;715:	{
line 716
;716:		trap_Cvar_VariableStringBuffer( va("server%d",i+1), adrstr, MAX_ADDRESSLENGTH );
ADDRGP4 $399
ARGP4
ADDRLP4 2440
INDIRI4
CNSTI4 1
ADDI4
ARGI4
ADDRLP4 3472
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 3472
INDIRP4
ARGP4
ADDRLP4 4
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 trap_Cvar_VariableStringBuffer
CALLV
pop
line 717
;717:		if (!adrstr[0])
ADDRLP4 4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $400
line 718
;718:			continue;
ADDRGP4 $396
JUMPV
LABELV $400
line 722
;719:
;720:		// quick sanity check to avoid slow domain name resolving
;721:		// first character must be numeric
;722:		if (adrstr[0] < '0' || adrstr[0] > '9')
ADDRLP4 3476
ADDRLP4 4
INDIRI1
CVII4 1
ASGNI4
ADDRLP4 3476
INDIRI4
CNSTI4 48
LTI4 $404
ADDRLP4 3476
INDIRI4
CNSTI4 57
LEI4 $402
LABELV $404
line 723
;723:			continue;
ADDRGP4 $396
JUMPV
LABELV $402
line 728
;724:
;725:		// favorite server addresses must be maintained outside refresh list
;726:		// this mimics local and global netadr's stored in client
;727:		// these can be fetched to fill ping list
;728:		strcpy( g_arenaservers.favoriteaddresses[g_numfavoriteservers], adrstr );
ADDRGP4 g_numfavoriteservers
INDIRI4
CNSTI4 6
LSHI4
ADDRGP4 g_arenaservers+13320
ADDP4
ARGP4
ADDRLP4 4
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 731
;729:
;730:		// find this server in the old list
;731:		for (j=0; j<numtempitems; j++)
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $409
JUMPV
LABELV $406
line 732
;732:			if (!Q_stricmp( templist[j].adrstr, adrstr ))
CNSTI4 148
ADDRLP4 0
INDIRI4
MULI4
ADDRLP4 72
ADDP4
ARGP4
ADDRLP4 4
ARGP4
ADDRLP4 3480
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 3480
INDIRI4
CNSTI4 0
NEI4 $410
line 733
;733:				break;
ADDRGP4 $408
JUMPV
LABELV $410
LABELV $407
line 731
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $409
ADDRLP4 0
INDIRI4
ADDRLP4 68
INDIRI4
LTI4 $406
LABELV $408
line 735
;734:
;735:		if (j < numtempitems)
ADDRLP4 0
INDIRI4
ADDRLP4 68
INDIRI4
GEI4 $412
line 736
;736:		{
line 738
;737:			// found server - add exisiting results
;738:			memcpy( &g_favoriteserverlist[g_numfavoriteservers], &templist[j], sizeof(servernode_t) );
ADDRLP4 3484
CNSTI4 148
ASGNI4
ADDRLP4 3484
INDIRI4
ADDRGP4 g_numfavoriteservers
INDIRI4
MULI4
ADDRGP4 g_favoriteserverlist
ADDP4
ARGP4
ADDRLP4 3484
INDIRI4
ADDRLP4 0
INDIRI4
MULI4
ADDRLP4 72
ADDP4
ARGP4
ADDRLP4 3484
INDIRI4
ARGI4
ADDRGP4 memcpy
CALLP4
pop
line 739
;739:			found = qtrue;
ADDRLP4 2444
CNSTI4 1
ASGNI4
line 740
;740:		}
ADDRGP4 $413
JUMPV
LABELV $412
line 742
;741:		else
;742:		{
line 744
;743:			// add new server
;744:			Q_strncpyz( g_favoriteserverlist[g_numfavoriteservers].adrstr, adrstr, MAX_ADDRESSLENGTH );
CNSTI4 148
ADDRGP4 g_numfavoriteservers
INDIRI4
MULI4
ADDRGP4 g_favoriteserverlist
ADDP4
ARGP4
ADDRLP4 4
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 745
;745:			g_favoriteserverlist[g_numfavoriteservers].pingtime = ArenaServers_MaxPing();
ADDRLP4 3484
ADDRGP4 ArenaServers_MaxPing
CALLI4
ASGNI4
CNSTI4 148
ADDRGP4 g_numfavoriteservers
INDIRI4
MULI4
ADDRGP4 g_favoriteserverlist+116
ADDP4
ADDRLP4 3484
INDIRI4
ASGNI4
line 746
;746:		}
LABELV $413
line 748
;747:
;748:		g_numfavoriteservers++;
ADDRLP4 3484
ADDRGP4 g_numfavoriteservers
ASGNP4
ADDRLP4 3484
INDIRP4
ADDRLP4 3484
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 749
;749:	}
LABELV $396
line 714
ADDRLP4 2440
ADDRLP4 2440
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 2440
INDIRI4
CNSTI4 16
LTI4 $395
line 751
;750:
;751:	g_arenaservers.numfavoriteaddresses = g_numfavoriteservers;
ADDRGP4 g_arenaservers+14344
ADDRGP4 g_numfavoriteservers
INDIRI4
ASGNI4
line 753
;752:
;753:	if (!found)
ADDRLP4 2444
INDIRI4
CNSTI4 0
NEI4 $416
line 754
;754:	{
line 757
;755:		// no results were found, reset server list
;756:		// list will be automatically refreshed when selected
;757:		g_numfavoriteservers = 0;
ADDRGP4 g_numfavoriteservers
CNSTI4 0
ASGNI4
line 758
;758:	}
LABELV $416
line 759
;759:}
LABELV $394
endproc ArenaServers_LoadFavorites 3488 12
proc ArenaServers_StopRefresh 0 16
line 768
;760:
;761:
;762:/*
;763:=================
;764:ArenaServers_StopRefresh
;765:=================
;766:*/
;767:static void ArenaServers_StopRefresh( void )
;768:{
line 769
;769:	if (!g_arenaservers.refreshservers)
ADDRGP4 g_arenaservers+13304
INDIRI4
CNSTI4 0
NEI4 $419
line 771
;770:		// not currently refreshing
;771:		return;
ADDRGP4 $418
JUMPV
LABELV $419
line 773
;772:
;773:	g_arenaservers.refreshservers = qfalse;
ADDRGP4 g_arenaservers+13304
CNSTI4 0
ASGNI4
line 775
;774:
;775:	if (g_servertype == AS_FAVORITES)
ADDRGP4 g_servertype
INDIRI4
CNSTI4 3
NEI4 $423
line 776
;776:	{
line 778
;777:		// nonresponsive favorites must be shown
;778:		ArenaServers_InsertFavorites();
ADDRGP4 ArenaServers_InsertFavorites
CALLV
pop
line 779
;779:	}
LABELV $423
line 782
;780:
;781:	// final tally
;782:	if (g_arenaservers.numqueriedservers >= 0)
ADDRGP4 g_arenaservers+13288
INDIRI4
CNSTI4 0
LTI4 $425
line 783
;783:	{
line 784
;784:		g_arenaservers.currentping       = *g_arenaservers.numservers;
ADDRGP4 g_arenaservers+13300
ADDRGP4 g_arenaservers+13292
INDIRP4
INDIRI4
ASGNI4
line 785
;785:		g_arenaservers.numqueriedservers = *g_arenaservers.numservers; 
ADDRGP4 g_arenaservers+13288
ADDRGP4 g_arenaservers+13292
INDIRP4
INDIRI4
ASGNI4
line 786
;786:	}
LABELV $425
line 789
;787:	
;788:	// sort
;789:	qsort( g_arenaservers.serverlist, *g_arenaservers.numservers, sizeof( servernode_t ), ArenaServers_Compare);
ADDRGP4 g_arenaservers+13296
INDIRP4
ARGP4
ADDRGP4 g_arenaservers+13292
INDIRP4
INDIRI4
ARGI4
CNSTI4 148
ARGI4
ADDRGP4 ArenaServers_Compare
ARGP4
ADDRGP4 qsort
CALLV
pop
line 791
;790:
;791:	ArenaServers_UpdateMenu();
ADDRGP4 ArenaServers_UpdateMenu
CALLV
pop
line 792
;792:}
LABELV $418
endproc ArenaServers_StopRefresh 0 16
proc ArenaServers_DoRefresh 1120 16
line 801
;793:
;794:
;795:/*
;796:=================
;797:ArenaServers_DoRefresh
;798:=================
;799:*/
;800:static void ArenaServers_DoRefresh( void )
;801:{
line 809
;802:	int		i;
;803:	int		j;
;804:	int		time;
;805:	int		maxPing;
;806:	char	adrstr[MAX_ADDRESSLENGTH];
;807:	char	info[MAX_INFO_STRING];
;808:
;809:	if (uis.realtime < g_arenaservers.refreshtime)
ADDRGP4 uis+4
INDIRI4
ADDRGP4 g_arenaservers+13316
INDIRI4
GEI4 $435
line 810
;810:	{
line 811
;811:	  if (g_servertype != AS_FAVORITES) {
ADDRGP4 g_servertype
INDIRI4
CNSTI4 3
EQI4 $439
line 812
;812:			if (g_servertype == AS_LOCAL) {
ADDRGP4 g_servertype
INDIRI4
CNSTI4 0
NEI4 $441
line 813
;813:				if (!trap_LAN_GetServerCount(g_servertype)) {
ADDRGP4 g_servertype
INDIRI4
ARGI4
ADDRLP4 1104
ADDRGP4 trap_LAN_GetServerCount
CALLI4
ASGNI4
ADDRLP4 1104
INDIRI4
CNSTI4 0
NEI4 $443
line 814
;814:					return;
ADDRGP4 $434
JUMPV
LABELV $443
line 816
;815:				}
;816:			}
LABELV $441
line 817
;817:			if (trap_LAN_GetServerCount(g_servertype) < 0) {
ADDRGP4 g_servertype
INDIRI4
ARGI4
ADDRLP4 1104
ADDRGP4 trap_LAN_GetServerCount
CALLI4
ASGNI4
ADDRLP4 1104
INDIRI4
CNSTI4 0
GEI4 $445
line 819
;818:			  // still waiting for response
;819:			  return;
ADDRGP4 $434
JUMPV
LABELV $445
line 821
;820:			}
;821:	  }
LABELV $439
line 822
;822:	}
LABELV $435
line 824
;823:
;824:	if (uis.realtime < g_arenaservers.nextpingtime)
ADDRGP4 uis+4
INDIRI4
ADDRGP4 g_arenaservers+13308
INDIRI4
GEI4 $447
line 825
;825:	{
line 827
;826:		// wait for time trigger
;827:		return;
ADDRGP4 $434
JUMPV
LABELV $447
line 831
;828:	}
;829:
;830:	// trigger at 10Hz intervals
;831:	g_arenaservers.nextpingtime = uis.realtime + 10;
ADDRGP4 g_arenaservers+13308
ADDRGP4 uis+4
INDIRI4
CNSTI4 10
ADDI4
ASGNI4
line 834
;832:
;833:	// process ping results
;834:	maxPing = ArenaServers_MaxPing();
ADDRLP4 1104
ADDRGP4 ArenaServers_MaxPing
CALLI4
ASGNI4
ADDRLP4 76
ADDRLP4 1104
INDIRI4
ASGNI4
line 835
;835:	for (i=0; i<MAX_PINGREQUESTS; i++)
ADDRLP4 68
CNSTI4 0
ASGNI4
LABELV $453
line 836
;836:	{
line 837
;837:		trap_LAN_GetPing( i, adrstr, MAX_ADDRESSLENGTH, &time );
ADDRLP4 68
INDIRI4
ARGI4
ADDRLP4 4
ARGP4
CNSTI4 64
ARGI4
ADDRLP4 72
ARGP4
ADDRGP4 trap_LAN_GetPing
CALLV
pop
line 838
;838:		if (!adrstr[0])
ADDRLP4 4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $457
line 839
;839:		{
line 841
;840:			// ignore empty or pending pings
;841:			continue;
ADDRGP4 $454
JUMPV
LABELV $457
line 845
;842:		}
;843:
;844:		// find ping result in our local list
;845:		for (j=0; j<MAX_PINGREQUESTS; j++)
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $459
line 846
;846:			if (!Q_stricmp( adrstr, g_arenaservers.pinglist[j].adrstr ))
ADDRLP4 4
ARGP4
CNSTI4 68
ADDRLP4 0
INDIRI4
MULI4
ADDRGP4 g_arenaservers+1896
ADDP4
ARGP4
ADDRLP4 1108
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 1108
INDIRI4
CNSTI4 0
NEI4 $463
line 847
;847:				break;
ADDRGP4 $461
JUMPV
LABELV $463
LABELV $460
line 845
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 32
LTI4 $459
LABELV $461
line 849
;848:
;849:		if (j < MAX_PINGREQUESTS)
ADDRLP4 0
INDIRI4
CNSTI4 32
GEI4 $466
line 850
;850:		{
line 852
;851:			// found it
;852:			if (!time)
ADDRLP4 72
INDIRI4
CNSTI4 0
NEI4 $468
line 853
;853:			{
line 854
;854:				time = uis.realtime - g_arenaservers.pinglist[j].start;
ADDRLP4 72
ADDRGP4 uis+4
INDIRI4
CNSTI4 68
ADDRLP4 0
INDIRI4
MULI4
ADDRGP4 g_arenaservers+1896+64
ADDP4
INDIRI4
SUBI4
ASGNI4
line 855
;855:				if (time < maxPing)
ADDRLP4 72
INDIRI4
ADDRLP4 76
INDIRI4
GEI4 $473
line 856
;856:				{
line 858
;857:					// still waiting
;858:					continue;
ADDRGP4 $454
JUMPV
LABELV $473
line 860
;859:				}
;860:			}
LABELV $468
line 862
;861:
;862:			if (time > maxPing)
ADDRLP4 72
INDIRI4
ADDRLP4 76
INDIRI4
LEI4 $475
line 863
;863:			{
line 865
;864:				// stale it out
;865:				info[0] = '\0';
ADDRLP4 80
CNSTI1 0
ASGNI1
line 866
;866:				time    = maxPing;
ADDRLP4 72
ADDRLP4 76
INDIRI4
ASGNI4
line 867
;867:			}
ADDRGP4 $476
JUMPV
LABELV $475
line 869
;868:			else
;869:			{
line 870
;870:				trap_LAN_GetPingInfo( i, info, MAX_INFO_STRING );
ADDRLP4 68
INDIRI4
ARGI4
ADDRLP4 80
ARGP4
CNSTI4 1024
ARGI4
ADDRGP4 trap_LAN_GetPingInfo
CALLV
pop
line 871
;871:			}
LABELV $476
line 874
;872:
;873:			// insert ping results
;874:			ArenaServers_Insert( adrstr, info, time );
ADDRLP4 4
ARGP4
ADDRLP4 80
ARGP4
ADDRLP4 72
INDIRI4
ARGI4
ADDRGP4 ArenaServers_Insert
CALLV
pop
line 877
;875:
;876:			// clear this query from internal list
;877:			g_arenaservers.pinglist[j].adrstr[0] = '\0';
CNSTI4 68
ADDRLP4 0
INDIRI4
MULI4
ADDRGP4 g_arenaservers+1896
ADDP4
CNSTI1 0
ASGNI1
line 878
;878:   		}
LABELV $466
line 881
;879:
;880:		// clear this query from external list
;881:		trap_LAN_ClearPing( i );
ADDRLP4 68
INDIRI4
ARGI4
ADDRGP4 trap_LAN_ClearPing
CALLV
pop
line 882
;882:	}
LABELV $454
line 835
ADDRLP4 68
ADDRLP4 68
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 68
INDIRI4
CNSTI4 32
LTI4 $453
line 886
;883:
;884:	// get results of servers query
;885:	// counts can increase as servers respond
;886:	if (g_servertype == AS_FAVORITES) {
ADDRGP4 g_servertype
INDIRI4
CNSTI4 3
NEI4 $478
line 887
;887:	  g_arenaservers.numqueriedservers = g_arenaservers.numfavoriteaddresses;
ADDRGP4 g_arenaservers+13288
ADDRGP4 g_arenaservers+14344
INDIRI4
ASGNI4
line 888
;888:	} else {
ADDRGP4 $479
JUMPV
LABELV $478
line 889
;889:	  g_arenaservers.numqueriedservers = trap_LAN_GetServerCount(g_servertype);
ADDRGP4 g_servertype
INDIRI4
ARGI4
ADDRLP4 1108
ADDRGP4 trap_LAN_GetServerCount
CALLI4
ASGNI4
ADDRGP4 g_arenaservers+13288
ADDRLP4 1108
INDIRI4
ASGNI4
line 890
;890:	}
LABELV $479
line 897
;891:
;892://	if (g_arenaservers.numqueriedservers > g_arenaservers.maxservers)
;893://		g_arenaservers.numqueriedservers = g_arenaservers.maxservers;
;894:
;895:	// send ping requests in reasonable bursts
;896:	// iterate ping through all found servers
;897:	for (i=0; i<MAX_PINGREQUESTS && g_arenaservers.currentping < g_arenaservers.numqueriedservers; i++)
ADDRLP4 68
CNSTI4 0
ASGNI4
ADDRGP4 $486
JUMPV
LABELV $483
line 898
;898:	{
line 899
;899:		if (trap_LAN_GetPingQueueCount() >= MAX_PINGREQUESTS)
ADDRLP4 1108
ADDRGP4 trap_LAN_GetPingQueueCount
CALLI4
ASGNI4
ADDRLP4 1108
INDIRI4
CNSTI4 32
LTI4 $489
line 900
;900:		{
line 902
;901:			// ping queue is full
;902:			break;
ADDRGP4 $485
JUMPV
LABELV $489
line 906
;903:		}
;904:
;905:		// find empty slot
;906:		for (j=0; j<MAX_PINGREQUESTS; j++)
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $491
line 907
;907:			if (!g_arenaservers.pinglist[j].adrstr[0])
CNSTI4 68
ADDRLP4 0
INDIRI4
MULI4
ADDRGP4 g_arenaservers+1896
ADDP4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $495
line 908
;908:				break;
ADDRGP4 $493
JUMPV
LABELV $495
LABELV $492
line 906
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 32
LTI4 $491
LABELV $493
line 910
;909:
;910:		if (j >= MAX_PINGREQUESTS)
ADDRLP4 0
INDIRI4
CNSTI4 32
LTI4 $498
line 912
;911:			// no empty slots available yet - wait for timeout
;912:			break;
ADDRGP4 $485
JUMPV
LABELV $498
line 916
;913:
;914:		// get an address to ping
;915:
;916:		if (g_servertype == AS_FAVORITES) {
ADDRGP4 g_servertype
INDIRI4
CNSTI4 3
NEI4 $500
line 917
;917:		  strcpy( adrstr, g_arenaservers.favoriteaddresses[g_arenaservers.currentping] ); 		
ADDRLP4 4
ARGP4
ADDRGP4 g_arenaservers+13300
INDIRI4
CNSTI4 6
LSHI4
ADDRGP4 g_arenaservers+13320
ADDP4
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 918
;918:		} else {
ADDRGP4 $501
JUMPV
LABELV $500
line 919
;919:		  trap_LAN_GetServerAddressString(g_servertype, g_arenaservers.currentping, adrstr, MAX_ADDRESSLENGTH );
ADDRGP4 g_servertype
INDIRI4
ARGI4
ADDRGP4 g_arenaservers+13300
INDIRI4
ARGI4
ADDRLP4 4
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 trap_LAN_GetServerAddressString
CALLV
pop
line 920
;920:		}
LABELV $501
line 922
;921:
;922:		strcpy( g_arenaservers.pinglist[j].adrstr, adrstr );
CNSTI4 68
ADDRLP4 0
INDIRI4
MULI4
ADDRGP4 g_arenaservers+1896
ADDP4
ARGP4
ADDRLP4 4
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 923
;923:		g_arenaservers.pinglist[j].start = uis.realtime;
CNSTI4 68
ADDRLP4 0
INDIRI4
MULI4
ADDRGP4 g_arenaservers+1896+64
ADDP4
ADDRGP4 uis+4
INDIRI4
ASGNI4
line 925
;924:
;925:		trap_Cmd_ExecuteText( EXEC_NOW, va( "ping %s\n", adrstr )  );
ADDRGP4 $509
ARGP4
ADDRLP4 4
ARGP4
ADDRLP4 1112
ADDRGP4 va
CALLP4
ASGNP4
CNSTI4 0
ARGI4
ADDRLP4 1112
INDIRP4
ARGP4
ADDRGP4 trap_Cmd_ExecuteText
CALLV
pop
line 928
;926:		
;927:		// advance to next server
;928:		g_arenaservers.currentping++;
ADDRLP4 1116
ADDRGP4 g_arenaservers+13300
ASGNP4
ADDRLP4 1116
INDIRP4
ADDRLP4 1116
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 929
;929:	}
LABELV $484
line 897
ADDRLP4 68
ADDRLP4 68
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $486
ADDRLP4 68
INDIRI4
CNSTI4 32
GEI4 $511
ADDRGP4 g_arenaservers+13300
INDIRI4
ADDRGP4 g_arenaservers+13288
INDIRI4
LTI4 $483
LABELV $511
LABELV $485
line 931
;930:
;931:	if (!trap_LAN_GetPingQueueCount())
ADDRLP4 1108
ADDRGP4 trap_LAN_GetPingQueueCount
CALLI4
ASGNI4
ADDRLP4 1108
INDIRI4
CNSTI4 0
NEI4 $512
line 932
;932:	{
line 934
;933:		// all pings completed
;934:		ArenaServers_StopRefresh();
ADDRGP4 ArenaServers_StopRefresh
CALLV
pop
line 935
;935:		return;
ADDRGP4 $434
JUMPV
LABELV $512
line 939
;936:	}
;937:
;938:	// update the user interface with ping status
;939:	ArenaServers_UpdateMenu();
ADDRGP4 ArenaServers_UpdateMenu
CALLV
pop
line 940
;940:}
LABELV $434
endproc ArenaServers_DoRefresh 1120 16
proc ArenaServers_StartRefresh 88 16
line 949
;941:
;942:
;943:/*
;944:=================
;945:ArenaServers_StartRefresh
;946:=================
;947:*/
;948:static void ArenaServers_StartRefresh( void )
;949:{
line 953
;950:	int		i;
;951:	char	myargs[32], protocol[32];
;952:
;953:	memset( g_arenaservers.serverlist, 0, g_arenaservers.maxservers*sizeof(table_t) );
ADDRGP4 g_arenaservers+13296
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTU4 68
ADDRGP4 g_arenaservers+13312
INDIRI4
CVIU4 4
MULU4
CVUI4 4
ARGI4
ADDRGP4 memset
CALLP4
pop
line 955
;954:
;955:	for (i=0; i<MAX_PINGREQUESTS; i++)
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $517
line 956
;956:	{
line 957
;957:		g_arenaservers.pinglist[i].adrstr[0] = '\0';
CNSTI4 68
ADDRLP4 0
INDIRI4
MULI4
ADDRGP4 g_arenaservers+1896
ADDP4
CNSTI1 0
ASGNI1
line 958
;958:		trap_LAN_ClearPing( i );
ADDRLP4 0
INDIRI4
ARGI4
ADDRGP4 trap_LAN_ClearPing
CALLV
pop
line 959
;959:	}
LABELV $518
line 955
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 32
LTI4 $517
line 961
;960:
;961:	g_arenaservers.refreshservers    = qtrue;
ADDRGP4 g_arenaservers+13304
CNSTI4 1
ASGNI4
line 962
;962:	g_arenaservers.currentping       = 0;
ADDRGP4 g_arenaservers+13300
CNSTI4 0
ASGNI4
line 963
;963:	g_arenaservers.nextpingtime      = 0;
ADDRGP4 g_arenaservers+13308
CNSTI4 0
ASGNI4
line 964
;964:	*g_arenaservers.numservers       = 0;
ADDRGP4 g_arenaservers+13292
INDIRP4
CNSTI4 0
ASGNI4
line 965
;965:	g_arenaservers.numqueriedservers = 0;
ADDRGP4 g_arenaservers+13288
CNSTI4 0
ASGNI4
line 968
;966:
;967:	// allow max 5 seconds for responses
;968:	g_arenaservers.refreshtime = uis.realtime + 5000;
ADDRGP4 g_arenaservers+13316
ADDRGP4 uis+4
INDIRI4
CNSTI4 5000
ADDI4
ASGNI4
line 971
;969:
;970:	// place menu in zeroed state
;971:	ArenaServers_UpdateMenu();
ADDRGP4 ArenaServers_UpdateMenu
CALLV
pop
line 973
;972:
;973:	if( g_servertype == AS_LOCAL ) {
ADDRGP4 g_servertype
INDIRI4
CNSTI4 0
NEI4 $529
line 974
;974:		trap_Cmd_ExecuteText( EXEC_APPEND, "localservers\n" );
CNSTI4 2
ARGI4
ADDRGP4 $531
ARGP4
ADDRGP4 trap_Cmd_ExecuteText
CALLV
pop
line 975
;975:		return;
ADDRGP4 $514
JUMPV
LABELV $529
line 978
;976:	}
;977:
;978:	if( g_servertype == AS_GLOBAL || g_servertype == AS_MPLAYER ) {
ADDRLP4 68
ADDRGP4 g_servertype
INDIRI4
ASGNI4
ADDRLP4 68
INDIRI4
CNSTI4 2
EQI4 $534
ADDRLP4 68
INDIRI4
CNSTI4 1
NEI4 $532
LABELV $534
line 979
;979:		if( g_servertype == AS_GLOBAL ) {
ADDRGP4 g_servertype
INDIRI4
CNSTI4 2
NEI4 $535
line 980
;980:			i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 981
;981:		}
ADDRGP4 $536
JUMPV
LABELV $535
line 982
;982:		else {
line 983
;983:			i = 1;
ADDRLP4 0
CNSTI4 1
ASGNI4
line 984
;984:		}
LABELV $536
line 986
;985:
;986:		switch( g_arenaservers.gametype.curvalue ) {
ADDRLP4 72
ADDRGP4 g_arenaservers+456+64
INDIRI4
ASGNI4
ADDRLP4 72
INDIRI4
CNSTI4 0
LTI4 $537
ADDRLP4 72
INDIRI4
CNSTI4 4
GTI4 $537
ADDRLP4 72
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 $550
ADDP4
INDIRP4
JUMPV
lit
align 4
LABELV $550
address $541
address $542
address $544
address $546
address $548
code
LABELV $537
LABELV $541
line 989
;987:		default:
;988:		case GAMES_ALL:
;989:			myargs[0] = 0;
ADDRLP4 36
CNSTI1 0
ASGNI1
line 990
;990:			break;
ADDRGP4 $538
JUMPV
LABELV $542
line 993
;991:
;992:		case GAMES_FFA:
;993:			strcpy( myargs, " ffa" );
ADDRLP4 36
ARGP4
ADDRGP4 $543
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 994
;994:			break;
ADDRGP4 $538
JUMPV
LABELV $544
line 997
;995:
;996:		case GAMES_TEAMPLAY:
;997:			strcpy( myargs, " team" );
ADDRLP4 36
ARGP4
ADDRGP4 $545
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 998
;998:			break;
ADDRGP4 $538
JUMPV
LABELV $546
line 1001
;999:
;1000:		case GAMES_TOURNEY:
;1001:			strcpy( myargs, " tourney" );
ADDRLP4 36
ARGP4
ADDRGP4 $547
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 1002
;1002:			break;
ADDRGP4 $538
JUMPV
LABELV $548
line 1005
;1003:
;1004:		case GAMES_CTF:
;1005:			strcpy( myargs, " ctf" );
ADDRLP4 36
ARGP4
ADDRGP4 $549
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 1006
;1006:			break;
LABELV $538
line 1010
;1007:		}
;1008:
;1009:
;1010:		if (g_emptyservers) {
ADDRGP4 g_emptyservers
INDIRI4
CNSTI4 0
EQI4 $551
line 1011
;1011:			strcat(myargs, " empty");
ADDRLP4 36
ARGP4
ADDRGP4 $553
ARGP4
ADDRGP4 strcat
CALLP4
pop
line 1012
;1012:		}
LABELV $551
line 1014
;1013:
;1014:		if (g_fullservers) {
ADDRGP4 g_fullservers
INDIRI4
CNSTI4 0
EQI4 $554
line 1015
;1015:			strcat(myargs, " full");
ADDRLP4 36
ARGP4
ADDRGP4 $556
ARGP4
ADDRGP4 strcat
CALLP4
pop
line 1016
;1016:		}
LABELV $554
line 1018
;1017:
;1018:		protocol[0] = '\0';
ADDRLP4 4
CNSTI1 0
ASGNI1
line 1019
;1019:		trap_Cvar_VariableStringBuffer( "debug_protocol", protocol, sizeof(protocol) );
ADDRGP4 $557
ARGP4
ADDRLP4 4
ARGP4
CNSTI4 32
ARGI4
ADDRGP4 trap_Cvar_VariableStringBuffer
CALLV
pop
line 1020
;1020:		if (strlen(protocol)) {
ADDRLP4 4
ARGP4
ADDRLP4 76
ADDRGP4 strlen
CALLI4
ASGNI4
ADDRLP4 76
INDIRI4
CNSTI4 0
EQI4 $558
line 1021
;1021:			trap_Cmd_ExecuteText( EXEC_APPEND, va( "globalservers %d %s%s\n", i, protocol, myargs ));
ADDRGP4 $560
ARGP4
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 4
ARGP4
ADDRLP4 36
ARGP4
ADDRLP4 80
ADDRGP4 va
CALLP4
ASGNP4
CNSTI4 2
ARGI4
ADDRLP4 80
INDIRP4
ARGP4
ADDRGP4 trap_Cmd_ExecuteText
CALLV
pop
line 1022
;1022:		}
ADDRGP4 $559
JUMPV
LABELV $558
line 1023
;1023:		else {
line 1024
;1024:			trap_Cmd_ExecuteText( EXEC_APPEND, va( "globalservers %d %d%s\n", i, (int)trap_Cvar_VariableValue( "protocol" ), myargs ) );
ADDRGP4 $562
ARGP4
ADDRLP4 80
ADDRGP4 trap_Cvar_VariableValue
CALLF4
ASGNF4
ADDRGP4 $561
ARGP4
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 80
INDIRF4
CVFI4 4
ARGI4
ADDRLP4 36
ARGP4
ADDRLP4 84
ADDRGP4 va
CALLP4
ASGNP4
CNSTI4 2
ARGI4
ADDRLP4 84
INDIRP4
ARGP4
ADDRGP4 trap_Cmd_ExecuteText
CALLV
pop
line 1025
;1025:		}
LABELV $559
line 1026
;1026:	}
LABELV $532
line 1027
;1027:}
LABELV $514
endproc ArenaServers_StartRefresh 88 16
export ArenaServers_SaveChanges
proc ArenaServers_SaveChanges 12 8
line 1036
;1028:
;1029:
;1030:/*
;1031:=================
;1032:ArenaServers_SaveChanges
;1033:=================
;1034:*/
;1035:void ArenaServers_SaveChanges( void )
;1036:{
line 1039
;1037:	int	i;
;1038:
;1039:	for (i=0; i<g_arenaservers.numfavoriteaddresses; i++)
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $567
JUMPV
LABELV $564
line 1040
;1040:		trap_Cvar_Set( va("server%d",i+1), g_arenaservers.favoriteaddresses[i] );
ADDRGP4 $399
ARGP4
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ARGI4
ADDRLP4 4
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 0
INDIRI4
CNSTI4 6
LSHI4
ADDRGP4 g_arenaservers+13320
ADDP4
ARGP4
ADDRGP4 trap_Cvar_Set
CALLV
pop
LABELV $565
line 1039
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $567
ADDRLP4 0
INDIRI4
ADDRGP4 g_arenaservers+14344
INDIRI4
LTI4 $564
line 1042
;1041:
;1042:	for (; i<MAX_FAVORITESERVERS; i++)
ADDRGP4 $573
JUMPV
LABELV $570
line 1043
;1043:		trap_Cvar_Set( va("server%d",i+1), "" );
ADDRGP4 $399
ARGP4
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ARGI4
ADDRLP4 8
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 8
INDIRP4
ARGP4
ADDRGP4 $195
ARGP4
ADDRGP4 trap_Cvar_Set
CALLV
pop
LABELV $571
line 1042
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $573
ADDRLP4 0
INDIRI4
CNSTI4 16
LTI4 $570
line 1044
;1044:}
LABELV $563
endproc ArenaServers_SaveChanges 12 8
export ArenaServers_Sort
proc ArenaServers_Sort 0 16
line 1052
;1045:
;1046:
;1047:/*
;1048:=================
;1049:ArenaServers_Sort
;1050:=================
;1051:*/
;1052:void ArenaServers_Sort( int type ) {
line 1053
;1053:	if( g_sortkey == type ) {
ADDRGP4 g_sortkey
INDIRI4
ADDRFP4 0
INDIRI4
NEI4 $575
line 1054
;1054:		return;
ADDRGP4 $574
JUMPV
LABELV $575
line 1057
;1055:	}
;1056:
;1057:	g_sortkey = type;
ADDRGP4 g_sortkey
ADDRFP4 0
INDIRI4
ASGNI4
line 1058
;1058:	qsort( g_arenaservers.serverlist, *g_arenaservers.numservers, sizeof( servernode_t ), ArenaServers_Compare);
ADDRGP4 g_arenaservers+13296
INDIRP4
ARGP4
ADDRGP4 g_arenaservers+13292
INDIRP4
INDIRI4
ARGI4
CNSTI4 148
ARGI4
ADDRGP4 ArenaServers_Compare
ARGP4
ADDRGP4 qsort
CALLV
pop
line 1059
;1059:}
LABELV $574
endproc ArenaServers_Sort 0 16
export ArenaServers_SetType
proc ArenaServers_SetType 20 8
line 1068
;1060:
;1061:
;1062:/*
;1063:=================
;1064:ArenaServers_SetType
;1065:=================
;1066:*/
;1067:void ArenaServers_SetType( int type )
;1068:{
line 1069
;1069:	if (g_servertype == type)
ADDRGP4 g_servertype
INDIRI4
ADDRFP4 0
INDIRI4
NEI4 $580
line 1070
;1070:		return;
ADDRGP4 $579
JUMPV
LABELV $580
line 1072
;1071:
;1072:	g_servertype = type;
ADDRGP4 g_servertype
ADDRFP4 0
INDIRI4
ASGNI4
line 1074
;1073:
;1074:	switch( type ) {
ADDRLP4 0
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 0
LTI4 $582
ADDRLP4 0
INDIRI4
CNSTI4 3
GTI4 $582
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 $608
ADDP4
INDIRP4
JUMPV
lit
align 4
LABELV $608
address $584
address $602
address $590
address $596
code
LABELV $582
LABELV $584
line 1077
;1075:	default:
;1076:	case AS_LOCAL:
;1077:		g_arenaservers.remove.generic.flags |= (QMF_INACTIVE|QMF_HIDDEN);
ADDRLP4 4
ADDRGP4 g_arenaservers+1368+44
ASGNP4
ADDRLP4 4
INDIRP4
ADDRLP4 4
INDIRP4
INDIRU4
CNSTU4 20480
BORU4
ASGNU4
line 1078
;1078:		g_arenaservers.serverlist = g_localserverlist;
ADDRGP4 g_arenaservers+13296
ADDRGP4 g_localserverlist
ASGNP4
line 1079
;1079:		g_arenaservers.numservers = &g_numlocalservers;
ADDRGP4 g_arenaservers+13292
ADDRGP4 g_numlocalservers
ASGNP4
line 1080
;1080:		g_arenaservers.maxservers = MAX_LOCALSERVERS;
ADDRGP4 g_arenaservers+13312
CNSTI4 128
ASGNI4
line 1081
;1081:		break;
ADDRGP4 $583
JUMPV
LABELV $590
line 1084
;1082:
;1083:	case AS_GLOBAL:
;1084:		g_arenaservers.remove.generic.flags |= (QMF_INACTIVE|QMF_HIDDEN);
ADDRLP4 8
ADDRGP4 g_arenaservers+1368+44
ASGNP4
ADDRLP4 8
INDIRP4
ADDRLP4 8
INDIRP4
INDIRU4
CNSTU4 20480
BORU4
ASGNU4
line 1085
;1085:		g_arenaservers.serverlist = g_globalserverlist;
ADDRGP4 g_arenaservers+13296
ADDRGP4 g_globalserverlist
ASGNP4
line 1086
;1086:		g_arenaservers.numservers = &g_numglobalservers;
ADDRGP4 g_arenaservers+13292
ADDRGP4 g_numglobalservers
ASGNP4
line 1087
;1087:		g_arenaservers.maxservers = MAX_GLOBALSERVERS;
ADDRGP4 g_arenaservers+13312
CNSTI4 128
ASGNI4
line 1088
;1088:		break;
ADDRGP4 $583
JUMPV
LABELV $596
line 1091
;1089:
;1090:	case AS_FAVORITES:
;1091:		g_arenaservers.remove.generic.flags &= ~(QMF_INACTIVE|QMF_HIDDEN);
ADDRLP4 12
ADDRGP4 g_arenaservers+1368+44
ASGNP4
ADDRLP4 12
INDIRP4
ADDRLP4 12
INDIRP4
INDIRU4
CNSTU4 4294946815
BANDU4
ASGNU4
line 1092
;1092:		g_arenaservers.serverlist = g_favoriteserverlist;
ADDRGP4 g_arenaservers+13296
ADDRGP4 g_favoriteserverlist
ASGNP4
line 1093
;1093:		g_arenaservers.numservers = &g_numfavoriteservers;
ADDRGP4 g_arenaservers+13292
ADDRGP4 g_numfavoriteservers
ASGNP4
line 1094
;1094:		g_arenaservers.maxservers = MAX_FAVORITESERVERS;
ADDRGP4 g_arenaservers+13312
CNSTI4 16
ASGNI4
line 1095
;1095:		break;
ADDRGP4 $583
JUMPV
LABELV $602
line 1098
;1096:
;1097:	case AS_MPLAYER:
;1098:		g_arenaservers.remove.generic.flags |= (QMF_INACTIVE|QMF_HIDDEN);
ADDRLP4 16
ADDRGP4 g_arenaservers+1368+44
ASGNP4
ADDRLP4 16
INDIRP4
ADDRLP4 16
INDIRP4
INDIRU4
CNSTU4 20480
BORU4
ASGNU4
line 1099
;1099:		g_arenaservers.serverlist = g_mplayerserverlist;
ADDRGP4 g_arenaservers+13296
ADDRGP4 g_mplayerserverlist
ASGNP4
line 1100
;1100:		g_arenaservers.numservers = &g_nummplayerservers;
ADDRGP4 g_arenaservers+13292
ADDRGP4 g_nummplayerservers
ASGNP4
line 1101
;1101:		g_arenaservers.maxservers = MAX_GLOBALSERVERS;
ADDRGP4 g_arenaservers+13312
CNSTI4 128
ASGNI4
line 1102
;1102:		break;
LABELV $583
line 1105
;1103:	}
;1104:
;1105:	if( !*g_arenaservers.numservers ) {
ADDRGP4 g_arenaservers+13292
INDIRP4
INDIRI4
CNSTI4 0
NEI4 $609
line 1106
;1106:		ArenaServers_StartRefresh();
ADDRGP4 ArenaServers_StartRefresh
CALLV
pop
line 1107
;1107:	}
ADDRGP4 $610
JUMPV
LABELV $609
line 1108
;1108:	else {
line 1110
;1109:		// avoid slow operation, use existing results
;1110:		g_arenaservers.currentping       = *g_arenaservers.numservers;
ADDRGP4 g_arenaservers+13300
ADDRGP4 g_arenaservers+13292
INDIRP4
INDIRI4
ASGNI4
line 1111
;1111:		g_arenaservers.numqueriedservers = *g_arenaservers.numservers; 
ADDRGP4 g_arenaservers+13288
ADDRGP4 g_arenaservers+13292
INDIRP4
INDIRI4
ASGNI4
line 1112
;1112:		ArenaServers_UpdateMenu();
ADDRGP4 ArenaServers_UpdateMenu
CALLV
pop
line 1113
;1113:	}
LABELV $610
line 1114
;1114:	strcpy(g_arenaservers.status.string,"hit refresh to update");
ADDRGP4 g_arenaservers+1224+60
INDIRP4
ARGP4
ADDRGP4 $618
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 1115
;1115:}
LABELV $579
endproc ArenaServers_SetType 20 8
proc ArenaServers_Event 8 8
line 1123
;1116:
;1117:
;1118:/*
;1119:=================
;1120:ArenaServers_Event
;1121:=================
;1122:*/
;1123:static void ArenaServers_Event( void* ptr, int event ) {
line 1126
;1124:	int		id;
;1125:
;1126:	id = ((menucommon_s*)ptr)->id;
ADDRLP4 0
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ASGNI4
line 1128
;1127:
;1128:	if( event != QM_ACTIVATED && id != ID_LIST ) {
ADDRFP4 4
INDIRI4
CNSTI4 3
EQI4 $620
ADDRLP4 0
INDIRI4
CNSTI4 15
EQI4 $620
line 1129
;1129:		return;
ADDRGP4 $619
JUMPV
LABELV $620
line 1132
;1130:	}
;1131:
;1132:	switch( id ) {
ADDRLP4 0
INDIRI4
CNSTI4 10
LTI4 $622
ADDRLP4 0
INDIRI4
CNSTI4 23
GTI4 $622
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 $667-40
ADDP4
INDIRP4
JUMPV
lit
align 4
LABELV $667
address $624
address $630
address $636
address $642
address $648
address $654
address $657
address $659
address $661
address $662
address $663
address $664
address $665
address $666
code
LABELV $624
line 1134
;1133:	case ID_MASTER:
;1134:		trap_Cvar_SetValue( "ui_browserMaster", g_arenaservers.master.curvalue );
ADDRGP4 $625
ARGP4
ADDRGP4 g_arenaservers+360+64
INDIRI4
CVIF4 4
ARGF4
ADDRGP4 trap_Cvar_SetValue
CALLV
pop
line 1135
;1135:		ArenaServers_SetType( g_arenaservers.master.curvalue );
ADDRGP4 g_arenaservers+360+64
INDIRI4
ARGI4
ADDRGP4 ArenaServers_SetType
CALLV
pop
line 1136
;1136:		break;
ADDRGP4 $623
JUMPV
LABELV $630
line 1139
;1137:
;1138:	case ID_GAMETYPE:
;1139:		trap_Cvar_SetValue( "ui_browserGameType", g_arenaservers.gametype.curvalue );
ADDRGP4 $631
ARGP4
ADDRGP4 g_arenaservers+456+64
INDIRI4
CVIF4 4
ARGF4
ADDRGP4 trap_Cvar_SetValue
CALLV
pop
line 1140
;1140:		g_gametype = g_arenaservers.gametype.curvalue;
ADDRGP4 g_gametype
ADDRGP4 g_arenaservers+456+64
INDIRI4
ASGNI4
line 1141
;1141:		ArenaServers_UpdateMenu();
ADDRGP4 ArenaServers_UpdateMenu
CALLV
pop
line 1142
;1142:		break;
ADDRGP4 $623
JUMPV
LABELV $636
line 1145
;1143:
;1144:	case ID_SORTKEY:
;1145:		trap_Cvar_SetValue( "ui_browserSortKey", g_arenaservers.sortkey.curvalue );
ADDRGP4 $637
ARGP4
ADDRGP4 g_arenaservers+552+64
INDIRI4
CVIF4 4
ARGF4
ADDRGP4 trap_Cvar_SetValue
CALLV
pop
line 1146
;1146:		ArenaServers_Sort( g_arenaservers.sortkey.curvalue );
ADDRGP4 g_arenaservers+552+64
INDIRI4
ARGI4
ADDRGP4 ArenaServers_Sort
CALLV
pop
line 1147
;1147:		ArenaServers_UpdateMenu();
ADDRGP4 ArenaServers_UpdateMenu
CALLV
pop
line 1148
;1148:		break;
ADDRGP4 $623
JUMPV
LABELV $642
line 1151
;1149:
;1150:	case ID_SHOW_FULL:
;1151:		trap_Cvar_SetValue( "ui_browserShowFull", g_arenaservers.showfull.curvalue );
ADDRGP4 $643
ARGP4
ADDRGP4 g_arenaservers+648+60
INDIRI4
CVIF4 4
ARGF4
ADDRGP4 trap_Cvar_SetValue
CALLV
pop
line 1152
;1152:		g_fullservers = g_arenaservers.showfull.curvalue;
ADDRGP4 g_fullservers
ADDRGP4 g_arenaservers+648+60
INDIRI4
ASGNI4
line 1153
;1153:		ArenaServers_UpdateMenu();
ADDRGP4 ArenaServers_UpdateMenu
CALLV
pop
line 1154
;1154:		break;
ADDRGP4 $623
JUMPV
LABELV $648
line 1157
;1155:
;1156:	case ID_SHOW_EMPTY:
;1157:		trap_Cvar_SetValue( "ui_browserShowEmpty", g_arenaservers.showempty.curvalue );
ADDRGP4 $649
ARGP4
ADDRGP4 g_arenaservers+712+60
INDIRI4
CVIF4 4
ARGF4
ADDRGP4 trap_Cvar_SetValue
CALLV
pop
line 1158
;1158:		g_emptyservers = g_arenaservers.showempty.curvalue;
ADDRGP4 g_emptyservers
ADDRGP4 g_arenaservers+712+60
INDIRI4
ASGNI4
line 1159
;1159:		ArenaServers_UpdateMenu();
ADDRGP4 ArenaServers_UpdateMenu
CALLV
pop
line 1160
;1160:		break;
ADDRGP4 $623
JUMPV
LABELV $654
line 1163
;1161:
;1162:	case ID_LIST:
;1163:		if( event == QM_GOTFOCUS ) {
ADDRFP4 4
INDIRI4
CNSTI4 1
NEI4 $623
line 1164
;1164:			ArenaServers_UpdatePicture();
ADDRGP4 ArenaServers_UpdatePicture
CALLV
pop
line 1165
;1165:		}
line 1166
;1166:		break;
ADDRGP4 $623
JUMPV
LABELV $657
line 1169
;1167:
;1168:	case ID_SCROLL_UP:
;1169:		ScrollList_Key( &g_arenaservers.list, K_UPARROW );
ADDRGP4 g_arenaservers+776
ARGP4
CNSTI4 132
ARGI4
ADDRGP4 ScrollList_Key
CALLI4
pop
line 1170
;1170:		break;
ADDRGP4 $623
JUMPV
LABELV $659
line 1173
;1171:
;1172:	case ID_SCROLL_DOWN:
;1173:		ScrollList_Key( &g_arenaservers.list, K_DOWNARROW );
ADDRGP4 g_arenaservers+776
ARGP4
CNSTI4 133
ARGI4
ADDRGP4 ScrollList_Key
CALLI4
pop
line 1174
;1174:		break;
ADDRGP4 $623
JUMPV
LABELV $661
line 1177
;1175:
;1176:	case ID_BACK:
;1177:		ArenaServers_StopRefresh();
ADDRGP4 ArenaServers_StopRefresh
CALLV
pop
line 1178
;1178:		ArenaServers_SaveChanges();
ADDRGP4 ArenaServers_SaveChanges
CALLV
pop
line 1179
;1179:		UI_PopMenu();
ADDRGP4 UI_PopMenu
CALLV
pop
line 1180
;1180:		break;
ADDRGP4 $623
JUMPV
LABELV $662
line 1183
;1181:
;1182:	case ID_REFRESH:
;1183:		ArenaServers_StartRefresh();
ADDRGP4 ArenaServers_StartRefresh
CALLV
pop
line 1184
;1184:		break;
ADDRGP4 $623
JUMPV
LABELV $663
line 1187
;1185:
;1186:	case ID_SPECIFY:
;1187:		UI_SpecifyServerMenu();
ADDRGP4 UI_SpecifyServerMenu
CALLV
pop
line 1188
;1188:		break;
ADDRGP4 $623
JUMPV
LABELV $664
line 1191
;1189:
;1190:	case ID_CREATE:
;1191:		UI_StartServerMenu( qtrue );
CNSTI4 1
ARGI4
ADDRGP4 UI_StartServerMenu
CALLV
pop
line 1192
;1192:		break;
ADDRGP4 $623
JUMPV
LABELV $665
line 1195
;1193:
;1194:	case ID_CONNECT:
;1195:		ArenaServers_Go();
ADDRGP4 ArenaServers_Go
CALLV
pop
line 1196
;1196:		break;
ADDRGP4 $623
JUMPV
LABELV $666
line 1199
;1197:
;1198:	case ID_REMOVE:
;1199:		ArenaServers_Remove();
ADDRGP4 ArenaServers_Remove
CALLV
pop
line 1200
;1200:		ArenaServers_UpdateMenu();
ADDRGP4 ArenaServers_UpdateMenu
CALLV
pop
line 1201
;1201:		break;
LABELV $622
LABELV $623
line 1203
;1202:	}
;1203:}
LABELV $619
endproc ArenaServers_Event 8 8
proc ArenaServers_MenuDraw 0 4
line 1212
;1204:
;1205:
;1206:/*
;1207:=================
;1208:ArenaServers_MenuDraw
;1209:=================
;1210:*/
;1211:static void ArenaServers_MenuDraw( void )
;1212:{
line 1213
;1213:	if (g_arenaservers.refreshservers)
ADDRGP4 g_arenaservers+13304
INDIRI4
CNSTI4 0
EQI4 $670
line 1214
;1214:		ArenaServers_DoRefresh();
ADDRGP4 ArenaServers_DoRefresh
CALLV
pop
LABELV $670
line 1216
;1215:
;1216:	Menu_Draw( &g_arenaservers.menu );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 Menu_Draw
CALLV
pop
line 1217
;1217:}
LABELV $669
endproc ArenaServers_MenuDraw 0 4
proc ArenaServers_MenuKey 16 8
line 1225
;1218:
;1219:
;1220:/*
;1221:=================
;1222:ArenaServers_MenuKey
;1223:=================
;1224:*/
;1225:static sfxHandle_t ArenaServers_MenuKey( int key ) {
line 1226
;1226:	if( key == K_SPACE  && g_arenaservers.refreshservers ) {
ADDRFP4 0
INDIRI4
CNSTI4 32
NEI4 $674
ADDRGP4 g_arenaservers+13304
INDIRI4
CNSTI4 0
EQI4 $674
line 1227
;1227:		ArenaServers_StopRefresh();	
ADDRGP4 ArenaServers_StopRefresh
CALLV
pop
line 1228
;1228:		return menu_move_sound;
ADDRGP4 menu_move_sound
INDIRI4
RETI4
ADDRGP4 $673
JUMPV
LABELV $674
line 1231
;1229:	}
;1230:
;1231:	if( ( key == K_DEL || key == K_KP_DEL ) && ( g_servertype == AS_FAVORITES ) &&
ADDRLP4 0
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 140
EQI4 $680
ADDRLP4 0
INDIRI4
CNSTI4 171
NEI4 $677
LABELV $680
ADDRGP4 g_servertype
INDIRI4
CNSTI4 3
NEI4 $677
ADDRGP4 g_arenaservers
ARGP4
ADDRLP4 4
ADDRGP4 Menu_ItemAtCursor
CALLP4
ASGNP4
ADDRGP4 g_arenaservers+776
CVPU4 4
ADDRLP4 4
INDIRP4
CVPU4 4
NEU4 $677
line 1232
;1232:		( Menu_ItemAtCursor( &g_arenaservers.menu) == &g_arenaservers.list ) ) {
line 1233
;1233:		ArenaServers_Remove();
ADDRGP4 ArenaServers_Remove
CALLV
pop
line 1234
;1234:		ArenaServers_UpdateMenu();
ADDRGP4 ArenaServers_UpdateMenu
CALLV
pop
line 1235
;1235:		return menu_move_sound;
ADDRGP4 menu_move_sound
INDIRI4
RETI4
ADDRGP4 $673
JUMPV
LABELV $677
line 1238
;1236:	}
;1237:
;1238:	if( key == K_MOUSE2 || key == K_ESCAPE ) {
ADDRLP4 8
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 8
INDIRI4
CNSTI4 179
EQI4 $683
ADDRLP4 8
INDIRI4
CNSTI4 27
NEI4 $681
LABELV $683
line 1239
;1239:		ArenaServers_StopRefresh();
ADDRGP4 ArenaServers_StopRefresh
CALLV
pop
line 1240
;1240:		ArenaServers_SaveChanges();
ADDRGP4 ArenaServers_SaveChanges
CALLV
pop
line 1241
;1241:	}
LABELV $681
line 1244
;1242:
;1243:
;1244:	return Menu_DefaultKey( &g_arenaservers.menu, key );
ADDRGP4 g_arenaservers
ARGP4
ADDRFP4 0
INDIRI4
ARGI4
ADDRLP4 12
ADDRGP4 Menu_DefaultKey
CALLI4
ASGNI4
ADDRLP4 12
INDIRI4
RETI4
LABELV $673
endproc ArenaServers_MenuKey 16 8
bss
align 1
LABELV $685
skip 64
code
proc ArenaServers_MenuInit 32 16
line 1253
;1245:}
;1246:
;1247:
;1248:/*
;1249:=================
;1250:ArenaServers_MenuInit
;1251:=================
;1252:*/
;1253:static void ArenaServers_MenuInit( void ) {
line 1261
;1254:	int			i;
;1255:	int			type;
;1256:	int			y;
;1257:	static char	statusbuffer[MAX_STATUSLENGTH];
;1258://	static char leaguebuffer[MAX_LEAGUELENGTH]; // TTimo: unused
;1259:
;1260:	// zero set all our globals
;1261:	memset( &g_arenaservers, 0 ,sizeof(arenaservers_t) );
ADDRGP4 g_arenaservers
ARGP4
CNSTI4 0
ARGI4
CNSTI4 14348
ARGI4
ADDRGP4 memset
CALLP4
pop
line 1263
;1262:
;1263:	ArenaServers_Cache();
ADDRGP4 ArenaServers_Cache
CALLV
pop
line 1265
;1264:
;1265:	g_arenaservers.menu.fullscreen = qtrue;
ADDRGP4 g_arenaservers+280
CNSTI4 1
ASGNI4
line 1266
;1266:	g_arenaservers.menu.wrapAround = qtrue;
ADDRGP4 g_arenaservers+276
CNSTI4 1
ASGNI4
line 1267
;1267:    g_arenaservers.menu.draw       = ArenaServers_MenuDraw;
ADDRGP4 g_arenaservers+268
ADDRGP4 ArenaServers_MenuDraw
ASGNP4
line 1268
;1268:	g_arenaservers.menu.key        = ArenaServers_MenuKey;
ADDRGP4 g_arenaservers+272
ADDRGP4 ArenaServers_MenuKey
ASGNP4
line 1270
;1269:
;1270:	g_arenaservers.banner.generic.type  = MTYPE_BTEXT;
ADDRGP4 g_arenaservers+288
CNSTI4 10
ASGNI4
line 1271
;1271:	g_arenaservers.banner.generic.flags = QMF_CENTER_JUSTIFY;
ADDRGP4 g_arenaservers+288+44
CNSTU4 8
ASGNU4
line 1272
;1272:	g_arenaservers.banner.generic.x	    = 320;
ADDRGP4 g_arenaservers+288+12
CNSTI4 320
ASGNI4
line 1273
;1273:	g_arenaservers.banner.generic.y	    = 16;
ADDRGP4 g_arenaservers+288+16
CNSTI4 16
ASGNI4
line 1274
;1274:	g_arenaservers.banner.string  		= "ARENA SERVERS";
ADDRGP4 g_arenaservers+288+60
ADDRGP4 $699
ASGNP4
line 1275
;1275:	g_arenaservers.banner.style  	    = UI_CENTER;
ADDRGP4 g_arenaservers+288+64
CNSTI4 1
ASGNI4
line 1276
;1276:	g_arenaservers.banner.color  	    = color_white;
ADDRGP4 g_arenaservers+288+68
ADDRGP4 color_white
ASGNP4
line 1278
;1277:
;1278:	y = 80;
ADDRLP4 4
CNSTI4 80
ASGNI4
line 1279
;1279:	g_arenaservers.master.generic.type			= MTYPE_SPINCONTROL;
ADDRGP4 g_arenaservers+360
CNSTI4 3
ASGNI4
line 1280
;1280:	g_arenaservers.master.generic.name			= "Servers:";
ADDRGP4 g_arenaservers+360+4
ADDRGP4 $707
ASGNP4
line 1281
;1281:	g_arenaservers.master.generic.flags			= QMF_PULSEIFFOCUS|QMF_SMALLFONT;
ADDRGP4 g_arenaservers+360+44
CNSTU4 258
ASGNU4
line 1282
;1282:	g_arenaservers.master.generic.callback		= ArenaServers_Event;
ADDRGP4 g_arenaservers+360+48
ADDRGP4 ArenaServers_Event
ASGNP4
line 1283
;1283:	g_arenaservers.master.generic.id			= ID_MASTER;
ADDRGP4 g_arenaservers+360+8
CNSTI4 10
ASGNI4
line 1284
;1284:	g_arenaservers.master.generic.x				= 320;
ADDRGP4 g_arenaservers+360+12
CNSTI4 320
ASGNI4
line 1285
;1285:	g_arenaservers.master.generic.y				= y;
ADDRGP4 g_arenaservers+360+16
ADDRLP4 4
INDIRI4
ASGNI4
line 1286
;1286:	g_arenaservers.master.itemnames				= master_items;
ADDRGP4 g_arenaservers+360+76
ADDRGP4 master_items
ASGNP4
line 1288
;1287:
;1288:	y += SMALLCHAR_HEIGHT;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 16
ADDI4
ASGNI4
line 1289
;1289:	g_arenaservers.gametype.generic.type		= MTYPE_SPINCONTROL;
ADDRGP4 g_arenaservers+456
CNSTI4 3
ASGNI4
line 1290
;1290:	g_arenaservers.gametype.generic.name		= "Game Type:";
ADDRGP4 g_arenaservers+456+4
ADDRGP4 $723
ASGNP4
line 1291
;1291:	g_arenaservers.gametype.generic.flags		= QMF_PULSEIFFOCUS|QMF_SMALLFONT;
ADDRGP4 g_arenaservers+456+44
CNSTU4 258
ASGNU4
line 1292
;1292:	g_arenaservers.gametype.generic.callback	= ArenaServers_Event;
ADDRGP4 g_arenaservers+456+48
ADDRGP4 ArenaServers_Event
ASGNP4
line 1293
;1293:	g_arenaservers.gametype.generic.id			= ID_GAMETYPE;
ADDRGP4 g_arenaservers+456+8
CNSTI4 11
ASGNI4
line 1294
;1294:	g_arenaservers.gametype.generic.x			= 320;
ADDRGP4 g_arenaservers+456+12
CNSTI4 320
ASGNI4
line 1295
;1295:	g_arenaservers.gametype.generic.y			= y;
ADDRGP4 g_arenaservers+456+16
ADDRLP4 4
INDIRI4
ASGNI4
line 1296
;1296:	g_arenaservers.gametype.itemnames			= servertype_items;
ADDRGP4 g_arenaservers+456+76
ADDRGP4 servertype_items
ASGNP4
line 1298
;1297:
;1298:	y += SMALLCHAR_HEIGHT;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 16
ADDI4
ASGNI4
line 1299
;1299:	g_arenaservers.sortkey.generic.type			= MTYPE_SPINCONTROL;
ADDRGP4 g_arenaservers+552
CNSTI4 3
ASGNI4
line 1300
;1300:	g_arenaservers.sortkey.generic.name			= "Sort By:";
ADDRGP4 g_arenaservers+552+4
ADDRGP4 $739
ASGNP4
line 1301
;1301:	g_arenaservers.sortkey.generic.flags		= QMF_PULSEIFFOCUS|QMF_SMALLFONT;
ADDRGP4 g_arenaservers+552+44
CNSTU4 258
ASGNU4
line 1302
;1302:	g_arenaservers.sortkey.generic.callback		= ArenaServers_Event;
ADDRGP4 g_arenaservers+552+48
ADDRGP4 ArenaServers_Event
ASGNP4
line 1303
;1303:	g_arenaservers.sortkey.generic.id			= ID_SORTKEY;
ADDRGP4 g_arenaservers+552+8
CNSTI4 12
ASGNI4
line 1304
;1304:	g_arenaservers.sortkey.generic.x			= 320;
ADDRGP4 g_arenaservers+552+12
CNSTI4 320
ASGNI4
line 1305
;1305:	g_arenaservers.sortkey.generic.y			= y;
ADDRGP4 g_arenaservers+552+16
ADDRLP4 4
INDIRI4
ASGNI4
line 1306
;1306:	g_arenaservers.sortkey.itemnames			= sortkey_items;
ADDRGP4 g_arenaservers+552+76
ADDRGP4 sortkey_items
ASGNP4
line 1308
;1307:
;1308:	y += SMALLCHAR_HEIGHT;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 16
ADDI4
ASGNI4
line 1309
;1309:	g_arenaservers.showfull.generic.type		= MTYPE_RADIOBUTTON;
ADDRGP4 g_arenaservers+648
CNSTI4 5
ASGNI4
line 1310
;1310:	g_arenaservers.showfull.generic.name		= "Show Full:";
ADDRGP4 g_arenaservers+648+4
ADDRGP4 $755
ASGNP4
line 1311
;1311:	g_arenaservers.showfull.generic.flags		= QMF_PULSEIFFOCUS|QMF_SMALLFONT;
ADDRGP4 g_arenaservers+648+44
CNSTU4 258
ASGNU4
line 1312
;1312:	g_arenaservers.showfull.generic.callback	= ArenaServers_Event;
ADDRGP4 g_arenaservers+648+48
ADDRGP4 ArenaServers_Event
ASGNP4
line 1313
;1313:	g_arenaservers.showfull.generic.id			= ID_SHOW_FULL;
ADDRGP4 g_arenaservers+648+8
CNSTI4 13
ASGNI4
line 1314
;1314:	g_arenaservers.showfull.generic.x			= 320;
ADDRGP4 g_arenaservers+648+12
CNSTI4 320
ASGNI4
line 1315
;1315:	g_arenaservers.showfull.generic.y			= y;
ADDRGP4 g_arenaservers+648+16
ADDRLP4 4
INDIRI4
ASGNI4
line 1317
;1316:
;1317:	y += SMALLCHAR_HEIGHT;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 16
ADDI4
ASGNI4
line 1318
;1318:	g_arenaservers.showempty.generic.type		= MTYPE_RADIOBUTTON;
ADDRGP4 g_arenaservers+712
CNSTI4 5
ASGNI4
line 1319
;1319:	g_arenaservers.showempty.generic.name		= "Show Empty:";
ADDRGP4 g_arenaservers+712+4
ADDRGP4 $769
ASGNP4
line 1320
;1320:	g_arenaservers.showempty.generic.flags		= QMF_PULSEIFFOCUS|QMF_SMALLFONT;
ADDRGP4 g_arenaservers+712+44
CNSTU4 258
ASGNU4
line 1321
;1321:	g_arenaservers.showempty.generic.callback	= ArenaServers_Event;
ADDRGP4 g_arenaservers+712+48
ADDRGP4 ArenaServers_Event
ASGNP4
line 1322
;1322:	g_arenaservers.showempty.generic.id			= ID_SHOW_EMPTY;
ADDRGP4 g_arenaservers+712+8
CNSTI4 14
ASGNI4
line 1323
;1323:	g_arenaservers.showempty.generic.x			= 320;
ADDRGP4 g_arenaservers+712+12
CNSTI4 320
ASGNI4
line 1324
;1324:	g_arenaservers.showempty.generic.y			= y;
ADDRGP4 g_arenaservers+712+16
ADDRLP4 4
INDIRI4
ASGNI4
line 1326
;1325:
;1326:	y += 3 * SMALLCHAR_HEIGHT;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 48
ADDI4
ASGNI4
line 1327
;1327:	g_arenaservers.list.generic.type			= MTYPE_SCROLLLIST;
ADDRGP4 g_arenaservers+776
CNSTI4 8
ASGNI4
line 1328
;1328:	g_arenaservers.list.generic.flags			= QMF_HIGHLIGHT_IF_FOCUS;
ADDRGP4 g_arenaservers+776+44
CNSTU4 128
ASGNU4
line 1329
;1329:	g_arenaservers.list.generic.id				= ID_LIST;
ADDRGP4 g_arenaservers+776+8
CNSTI4 15
ASGNI4
line 1330
;1330:	g_arenaservers.list.generic.callback		= ArenaServers_Event;
ADDRGP4 g_arenaservers+776+48
ADDRGP4 ArenaServers_Event
ASGNP4
line 1331
;1331:	g_arenaservers.list.generic.x				= 72;
ADDRGP4 g_arenaservers+776+12
CNSTI4 72
ASGNI4
line 1332
;1332:	g_arenaservers.list.generic.y				= y;
ADDRGP4 g_arenaservers+776+16
ADDRLP4 4
INDIRI4
ASGNI4
line 1333
;1333:	g_arenaservers.list.width					= MAX_LISTBOXWIDTH;
ADDRGP4 g_arenaservers+776+80
CNSTI4 61
ASGNI4
line 1334
;1334:	g_arenaservers.list.height					= 11;
ADDRGP4 g_arenaservers+776+84
CNSTI4 11
ASGNI4
line 1335
;1335:	g_arenaservers.list.itemnames				= (const char **)g_arenaservers.items;
ADDRGP4 g_arenaservers+776+76
ADDRGP4 g_arenaservers+12776
ASGNP4
line 1336
;1336:	for( i = 0; i < MAX_LISTBOXITEMS; i++ ) {
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $798
line 1337
;1337:		g_arenaservers.items[i] = g_arenaservers.table[i].buff;
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 g_arenaservers+12776
ADDP4
CNSTI4 68
ADDRLP4 0
INDIRI4
MULI4
ADDRGP4 g_arenaservers+4072
ADDP4
ASGNP4
line 1338
;1338:	}
LABELV $799
line 1336
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 128
LTI4 $798
line 1340
;1339:
;1340:	g_arenaservers.mappic.generic.type			= MTYPE_BITMAP;
ADDRGP4 g_arenaservers+872
CNSTI4 6
ASGNI4
line 1341
;1341:	g_arenaservers.mappic.generic.flags			= QMF_LEFT_JUSTIFY|QMF_INACTIVE;
ADDRGP4 g_arenaservers+872+44
CNSTU4 16388
ASGNU4
line 1342
;1342:	g_arenaservers.mappic.generic.x				= 72;
ADDRGP4 g_arenaservers+872+12
CNSTI4 72
ASGNI4
line 1343
;1343:	g_arenaservers.mappic.generic.y				= 80;
ADDRGP4 g_arenaservers+872+16
CNSTI4 80
ASGNI4
line 1344
;1344:	g_arenaservers.mappic.width					= 128;
ADDRGP4 g_arenaservers+872+76
CNSTI4 128
ASGNI4
line 1345
;1345:	g_arenaservers.mappic.height				= 96;
ADDRGP4 g_arenaservers+872+80
CNSTI4 96
ASGNI4
line 1346
;1346:	g_arenaservers.mappic.errorpic				= ART_UNKNOWNMAP;
ADDRGP4 g_arenaservers+872+64
ADDRGP4 $817
ASGNP4
line 1348
;1347:
;1348:	g_arenaservers.arrows.generic.type			= MTYPE_BITMAP;
ADDRGP4 g_arenaservers+960
CNSTI4 6
ASGNI4
line 1349
;1349:	g_arenaservers.arrows.generic.name			= ART_ARROWS0;
ADDRGP4 g_arenaservers+960+4
ADDRGP4 $821
ASGNP4
line 1350
;1350:	g_arenaservers.arrows.generic.flags			= QMF_LEFT_JUSTIFY|QMF_INACTIVE;
ADDRGP4 g_arenaservers+960+44
CNSTU4 16388
ASGNU4
line 1351
;1351:	g_arenaservers.arrows.generic.callback		= ArenaServers_Event;
ADDRGP4 g_arenaservers+960+48
ADDRGP4 ArenaServers_Event
ASGNP4
line 1352
;1352:	g_arenaservers.arrows.generic.x				= 512+48;
ADDRGP4 g_arenaservers+960+12
CNSTI4 560
ASGNI4
line 1353
;1353:	g_arenaservers.arrows.generic.y				= 240-64+16;
ADDRGP4 g_arenaservers+960+16
CNSTI4 192
ASGNI4
line 1354
;1354:	g_arenaservers.arrows.width					= 64;
ADDRGP4 g_arenaservers+960+76
CNSTI4 64
ASGNI4
line 1355
;1355:	g_arenaservers.arrows.height				= 128;
ADDRGP4 g_arenaservers+960+80
CNSTI4 128
ASGNI4
line 1357
;1356:
;1357:	g_arenaservers.up.generic.type				= MTYPE_BITMAP;
ADDRGP4 g_arenaservers+1048
CNSTI4 6
ASGNI4
line 1358
;1358:	g_arenaservers.up.generic.flags				= QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_MOUSEONLY;
ADDRGP4 g_arenaservers+1048+44
CNSTU4 2308
ASGNU4
line 1359
;1359:	g_arenaservers.up.generic.callback			= ArenaServers_Event;
ADDRGP4 g_arenaservers+1048+48
ADDRGP4 ArenaServers_Event
ASGNP4
line 1360
;1360:	g_arenaservers.up.generic.id				= ID_SCROLL_UP;
ADDRGP4 g_arenaservers+1048+8
CNSTI4 16
ASGNI4
line 1361
;1361:	g_arenaservers.up.generic.x					= 512+48;
ADDRGP4 g_arenaservers+1048+12
CNSTI4 560
ASGNI4
line 1362
;1362:	g_arenaservers.up.generic.y					= 240-64+16;
ADDRGP4 g_arenaservers+1048+16
CNSTI4 192
ASGNI4
line 1363
;1363:	g_arenaservers.up.width						= 64;
ADDRGP4 g_arenaservers+1048+76
CNSTI4 64
ASGNI4
line 1364
;1364:	g_arenaservers.up.height					= 64;
ADDRGP4 g_arenaservers+1048+80
CNSTI4 64
ASGNI4
line 1365
;1365:	g_arenaservers.up.focuspic					= ART_ARROWS_UP;
ADDRGP4 g_arenaservers+1048+60
ADDRGP4 $851
ASGNP4
line 1367
;1366:
;1367:	g_arenaservers.down.generic.type			= MTYPE_BITMAP;
ADDRGP4 g_arenaservers+1136
CNSTI4 6
ASGNI4
line 1368
;1368:	g_arenaservers.down.generic.flags			= QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_MOUSEONLY;
ADDRGP4 g_arenaservers+1136+44
CNSTU4 2308
ASGNU4
line 1369
;1369:	g_arenaservers.down.generic.callback		= ArenaServers_Event;
ADDRGP4 g_arenaservers+1136+48
ADDRGP4 ArenaServers_Event
ASGNP4
line 1370
;1370:	g_arenaservers.down.generic.id				= ID_SCROLL_DOWN;
ADDRGP4 g_arenaservers+1136+8
CNSTI4 17
ASGNI4
line 1371
;1371:	g_arenaservers.down.generic.x				= 512+48;
ADDRGP4 g_arenaservers+1136+12
CNSTI4 560
ASGNI4
line 1372
;1372:	g_arenaservers.down.generic.y				= 240+16;
ADDRGP4 g_arenaservers+1136+16
CNSTI4 256
ASGNI4
line 1373
;1373:	g_arenaservers.down.width					= 64;
ADDRGP4 g_arenaservers+1136+76
CNSTI4 64
ASGNI4
line 1374
;1374:	g_arenaservers.down.height					= 64;
ADDRGP4 g_arenaservers+1136+80
CNSTI4 64
ASGNI4
line 1375
;1375:	g_arenaservers.down.focuspic				= ART_ARROWS_DOWN;
ADDRGP4 g_arenaservers+1136+60
ADDRGP4 $869
ASGNP4
line 1377
;1376:
;1377:	y = 376;
ADDRLP4 4
CNSTI4 376
ASGNI4
line 1378
;1378:	g_arenaservers.status.generic.type		= MTYPE_TEXT;
ADDRGP4 g_arenaservers+1224
CNSTI4 7
ASGNI4
line 1379
;1379:	g_arenaservers.status.generic.x			= 320;
ADDRGP4 g_arenaservers+1224+12
CNSTI4 320
ASGNI4
line 1380
;1380:	g_arenaservers.status.generic.y			= y;
ADDRGP4 g_arenaservers+1224+16
ADDRLP4 4
INDIRI4
ASGNI4
line 1381
;1381:	g_arenaservers.status.string			= statusbuffer;
ADDRGP4 g_arenaservers+1224+60
ADDRGP4 $685
ASGNP4
line 1382
;1382:	g_arenaservers.status.style				= UI_CENTER|UI_SMALLFONT;
ADDRGP4 g_arenaservers+1224+64
CNSTI4 17
ASGNI4
line 1383
;1383:	g_arenaservers.status.color				= menu_text_color;
ADDRGP4 g_arenaservers+1224+68
ADDRGP4 menu_text_color
ASGNP4
line 1385
;1384:
;1385:	y += SMALLCHAR_HEIGHT;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 16
ADDI4
ASGNI4
line 1386
;1386:	g_arenaservers.statusbar.generic.type   = MTYPE_TEXT;
ADDRGP4 g_arenaservers+1296
CNSTI4 7
ASGNI4
line 1387
;1387:	g_arenaservers.statusbar.generic.x	    = 320;
ADDRGP4 g_arenaservers+1296+12
CNSTI4 320
ASGNI4
line 1388
;1388:	g_arenaservers.statusbar.generic.y	    = y;
ADDRGP4 g_arenaservers+1296+16
ADDRLP4 4
INDIRI4
ASGNI4
line 1389
;1389:	g_arenaservers.statusbar.string	        = "";
ADDRGP4 g_arenaservers+1296+60
ADDRGP4 $195
ASGNP4
line 1390
;1390:	g_arenaservers.statusbar.style	        = UI_CENTER|UI_SMALLFONT;
ADDRGP4 g_arenaservers+1296+64
CNSTI4 17
ASGNI4
line 1391
;1391:	g_arenaservers.statusbar.color	        = text_color_normal;
ADDRGP4 g_arenaservers+1296+68
ADDRGP4 text_color_normal
ASGNP4
line 1393
;1392:
;1393:	g_arenaservers.remove.generic.type		= MTYPE_BITMAP;
ADDRGP4 g_arenaservers+1368
CNSTI4 6
ASGNI4
line 1394
;1394:	g_arenaservers.remove.generic.name		= ART_REMOVE0;
ADDRGP4 g_arenaservers+1368+4
ADDRGP4 $895
ASGNP4
line 1395
;1395:	g_arenaservers.remove.generic.flags		= QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
ADDRGP4 g_arenaservers+1368+44
CNSTU4 260
ASGNU4
line 1396
;1396:	g_arenaservers.remove.generic.callback	= ArenaServers_Event;
ADDRGP4 g_arenaservers+1368+48
ADDRGP4 ArenaServers_Event
ASGNP4
line 1397
;1397:	g_arenaservers.remove.generic.id		= ID_REMOVE;
ADDRGP4 g_arenaservers+1368+8
CNSTI4 23
ASGNI4
line 1398
;1398:	g_arenaservers.remove.generic.x			= 450;
ADDRGP4 g_arenaservers+1368+12
CNSTI4 450
ASGNI4
line 1399
;1399:	g_arenaservers.remove.generic.y			= 86;
ADDRGP4 g_arenaservers+1368+16
CNSTI4 86
ASGNI4
line 1400
;1400:	g_arenaservers.remove.width				= 96;
ADDRGP4 g_arenaservers+1368+76
CNSTI4 96
ASGNI4
line 1401
;1401:	g_arenaservers.remove.height			= 48;
ADDRGP4 g_arenaservers+1368+80
CNSTI4 48
ASGNI4
line 1402
;1402:	g_arenaservers.remove.focuspic			= ART_REMOVE1;
ADDRGP4 g_arenaservers+1368+60
ADDRGP4 $912
ASGNP4
line 1404
;1403:
;1404:	g_arenaservers.back.generic.type		= MTYPE_BITMAP;
ADDRGP4 g_arenaservers+1456
CNSTI4 6
ASGNI4
line 1405
;1405:	g_arenaservers.back.generic.name		= ART_BACK0;
ADDRGP4 g_arenaservers+1456+4
ADDRGP4 $916
ASGNP4
line 1406
;1406:	g_arenaservers.back.generic.flags		= QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
ADDRGP4 g_arenaservers+1456+44
CNSTU4 260
ASGNU4
line 1407
;1407:	g_arenaservers.back.generic.callback	= ArenaServers_Event;
ADDRGP4 g_arenaservers+1456+48
ADDRGP4 ArenaServers_Event
ASGNP4
line 1408
;1408:	g_arenaservers.back.generic.id			= ID_BACK;
ADDRGP4 g_arenaservers+1456+8
CNSTI4 18
ASGNI4
line 1409
;1409:	g_arenaservers.back.generic.x			= 0;
ADDRGP4 g_arenaservers+1456+12
CNSTI4 0
ASGNI4
line 1410
;1410:	g_arenaservers.back.generic.y			= 480-64;
ADDRGP4 g_arenaservers+1456+16
CNSTI4 416
ASGNI4
line 1411
;1411:	g_arenaservers.back.width				= 128;
ADDRGP4 g_arenaservers+1456+76
CNSTI4 128
ASGNI4
line 1412
;1412:	g_arenaservers.back.height				= 64;
ADDRGP4 g_arenaservers+1456+80
CNSTI4 64
ASGNI4
line 1413
;1413:	g_arenaservers.back.focuspic			= ART_BACK1;
ADDRGP4 g_arenaservers+1456+60
ADDRGP4 $933
ASGNP4
line 1415
;1414:
;1415:	g_arenaservers.specify.generic.type	    = MTYPE_BITMAP;
ADDRGP4 g_arenaservers+1632
CNSTI4 6
ASGNI4
line 1416
;1416:	g_arenaservers.specify.generic.name		= ART_SPECIFY0;
ADDRGP4 g_arenaservers+1632+4
ADDRGP4 $937
ASGNP4
line 1417
;1417:	g_arenaservers.specify.generic.flags    = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
ADDRGP4 g_arenaservers+1632+44
CNSTU4 260
ASGNU4
line 1418
;1418:	g_arenaservers.specify.generic.callback = ArenaServers_Event;
ADDRGP4 g_arenaservers+1632+48
ADDRGP4 ArenaServers_Event
ASGNP4
line 1419
;1419:	g_arenaservers.specify.generic.id	    = ID_SPECIFY;
ADDRGP4 g_arenaservers+1632+8
CNSTI4 20
ASGNI4
line 1420
;1420:	g_arenaservers.specify.generic.x		= 128;
ADDRGP4 g_arenaservers+1632+12
CNSTI4 128
ASGNI4
line 1421
;1421:	g_arenaservers.specify.generic.y		= 480-64;
ADDRGP4 g_arenaservers+1632+16
CNSTI4 416
ASGNI4
line 1422
;1422:	g_arenaservers.specify.width  		    = 128;
ADDRGP4 g_arenaservers+1632+76
CNSTI4 128
ASGNI4
line 1423
;1423:	g_arenaservers.specify.height  		    = 64;
ADDRGP4 g_arenaservers+1632+80
CNSTI4 64
ASGNI4
line 1424
;1424:	g_arenaservers.specify.focuspic         = ART_SPECIFY1;
ADDRGP4 g_arenaservers+1632+60
ADDRGP4 $954
ASGNP4
line 1426
;1425:
;1426:	g_arenaservers.refresh.generic.type		= MTYPE_BITMAP;
ADDRGP4 g_arenaservers+1544
CNSTI4 6
ASGNI4
line 1427
;1427:	g_arenaservers.refresh.generic.name		= ART_REFRESH0;
ADDRGP4 g_arenaservers+1544+4
ADDRGP4 $958
ASGNP4
line 1428
;1428:	g_arenaservers.refresh.generic.flags	= QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
ADDRGP4 g_arenaservers+1544+44
CNSTU4 260
ASGNU4
line 1429
;1429:	g_arenaservers.refresh.generic.callback	= ArenaServers_Event;
ADDRGP4 g_arenaservers+1544+48
ADDRGP4 ArenaServers_Event
ASGNP4
line 1430
;1430:	g_arenaservers.refresh.generic.id		= ID_REFRESH;
ADDRGP4 g_arenaservers+1544+8
CNSTI4 19
ASGNI4
line 1431
;1431:	g_arenaservers.refresh.generic.x		= 256;
ADDRGP4 g_arenaservers+1544+12
CNSTI4 256
ASGNI4
line 1432
;1432:	g_arenaservers.refresh.generic.y		= 480-64;
ADDRGP4 g_arenaservers+1544+16
CNSTI4 416
ASGNI4
line 1433
;1433:	g_arenaservers.refresh.width			= 128;
ADDRGP4 g_arenaservers+1544+76
CNSTI4 128
ASGNI4
line 1434
;1434:	g_arenaservers.refresh.height			= 64;
ADDRGP4 g_arenaservers+1544+80
CNSTI4 64
ASGNI4
line 1435
;1435:	g_arenaservers.refresh.focuspic			= ART_REFRESH1;
ADDRGP4 g_arenaservers+1544+60
ADDRGP4 $975
ASGNP4
line 1437
;1436:
;1437:	g_arenaservers.create.generic.type		= MTYPE_BITMAP;
ADDRGP4 g_arenaservers+1720
CNSTI4 6
ASGNI4
line 1438
;1438:	g_arenaservers.create.generic.name		= ART_CREATE0;
ADDRGP4 g_arenaservers+1720+4
ADDRGP4 $979
ASGNP4
line 1439
;1439:	g_arenaservers.create.generic.flags		= QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
ADDRGP4 g_arenaservers+1720+44
CNSTU4 260
ASGNU4
line 1440
;1440:	g_arenaservers.create.generic.callback	= ArenaServers_Event;
ADDRGP4 g_arenaservers+1720+48
ADDRGP4 ArenaServers_Event
ASGNP4
line 1441
;1441:	g_arenaservers.create.generic.id		= ID_CREATE;
ADDRGP4 g_arenaservers+1720+8
CNSTI4 21
ASGNI4
line 1442
;1442:	g_arenaservers.create.generic.x			= 384;
ADDRGP4 g_arenaservers+1720+12
CNSTI4 384
ASGNI4
line 1443
;1443:	g_arenaservers.create.generic.y			= 480-64;
ADDRGP4 g_arenaservers+1720+16
CNSTI4 416
ASGNI4
line 1444
;1444:	g_arenaservers.create.width				= 128;
ADDRGP4 g_arenaservers+1720+76
CNSTI4 128
ASGNI4
line 1445
;1445:	g_arenaservers.create.height			= 64;
ADDRGP4 g_arenaservers+1720+80
CNSTI4 64
ASGNI4
line 1446
;1446:	g_arenaservers.create.focuspic			= ART_CREATE1;
ADDRGP4 g_arenaservers+1720+60
ADDRGP4 $996
ASGNP4
line 1448
;1447:
;1448:	g_arenaservers.go.generic.type			= MTYPE_BITMAP;
ADDRGP4 g_arenaservers+1808
CNSTI4 6
ASGNI4
line 1449
;1449:	g_arenaservers.go.generic.name			= ART_CONNECT0;
ADDRGP4 g_arenaservers+1808+4
ADDRGP4 $1000
ASGNP4
line 1450
;1450:	g_arenaservers.go.generic.flags			= QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
ADDRGP4 g_arenaservers+1808+44
CNSTU4 272
ASGNU4
line 1451
;1451:	g_arenaservers.go.generic.callback		= ArenaServers_Event;
ADDRGP4 g_arenaservers+1808+48
ADDRGP4 ArenaServers_Event
ASGNP4
line 1452
;1452:	g_arenaservers.go.generic.id			= ID_CONNECT;
ADDRGP4 g_arenaservers+1808+8
CNSTI4 22
ASGNI4
line 1453
;1453:	g_arenaservers.go.generic.x				= 640;
ADDRGP4 g_arenaservers+1808+12
CNSTI4 640
ASGNI4
line 1454
;1454:	g_arenaservers.go.generic.y				= 480-64;
ADDRGP4 g_arenaservers+1808+16
CNSTI4 416
ASGNI4
line 1455
;1455:	g_arenaservers.go.width					= 128;
ADDRGP4 g_arenaservers+1808+76
CNSTI4 128
ASGNI4
line 1456
;1456:	g_arenaservers.go.height				= 64;
ADDRGP4 g_arenaservers+1808+80
CNSTI4 64
ASGNI4
line 1457
;1457:	g_arenaservers.go.focuspic				= ART_CONNECT1;
ADDRGP4 g_arenaservers+1808+60
ADDRGP4 $1017
ASGNP4
line 1459
;1458:
;1459:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.banner );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+288
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1461
;1460:
;1461:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.master );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+360
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1462
;1462:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.gametype );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+456
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1463
;1463:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.sortkey );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+552
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1464
;1464:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.showfull);
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+648
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1465
;1465:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.showempty );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+712
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1467
;1466:
;1467:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.mappic );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+872
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1468
;1468:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.list );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+776
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1469
;1469:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.status );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+1224
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1470
;1470:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.statusbar );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+1296
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1471
;1471:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.arrows );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+960
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1472
;1472:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.up );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+1048
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1473
;1473:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.down );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+1136
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1475
;1474:
;1475:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.remove );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+1368
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1476
;1476:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.back );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+1456
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1477
;1477:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.specify );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+1632
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1478
;1478:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.refresh );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+1544
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1479
;1479:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.create );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+1720
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1480
;1480:	Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.go );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 g_arenaservers+1808
ARGP4
ADDRGP4 Menu_AddItem
CALLV
pop
line 1482
;1481:
;1482:	ArenaServers_LoadFavorites();
ADDRGP4 ArenaServers_LoadFavorites
CALLV
pop
line 1484
;1483:
;1484:	g_servertype = Com_Clamp( 0, 3, ui_browserMaster.integer );
CNSTF4 0
ARGF4
CNSTF4 1077936128
ARGF4
ADDRGP4 ui_browserMaster+12
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 12
ADDRGP4 Com_Clamp
CALLF4
ASGNF4
ADDRGP4 g_servertype
ADDRLP4 12
INDIRF4
CVFI4 4
ASGNI4
line 1485
;1485:	g_arenaservers.master.curvalue = g_servertype;
ADDRGP4 g_arenaservers+360+64
ADDRGP4 g_servertype
INDIRI4
ASGNI4
line 1487
;1486:
;1487:	g_gametype = Com_Clamp( 0, 4, ui_browserGameType.integer );
CNSTF4 0
ARGF4
CNSTF4 1082130432
ARGF4
ADDRGP4 ui_browserGameType+12
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 16
ADDRGP4 Com_Clamp
CALLF4
ASGNF4
ADDRGP4 g_gametype
ADDRLP4 16
INDIRF4
CVFI4 4
ASGNI4
line 1488
;1488:	g_arenaservers.gametype.curvalue = g_gametype;
ADDRGP4 g_arenaservers+456+64
ADDRGP4 g_gametype
INDIRI4
ASGNI4
line 1490
;1489:
;1490:	g_sortkey = Com_Clamp( 0, 4, ui_browserSortKey.integer );
CNSTF4 0
ARGF4
CNSTF4 1082130432
ARGF4
ADDRGP4 ui_browserSortKey+12
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 20
ADDRGP4 Com_Clamp
CALLF4
ASGNF4
ADDRGP4 g_sortkey
ADDRLP4 20
INDIRF4
CVFI4 4
ASGNI4
line 1491
;1491:	g_arenaservers.sortkey.curvalue = g_sortkey;
ADDRGP4 g_arenaservers+552+64
ADDRGP4 g_sortkey
INDIRI4
ASGNI4
line 1493
;1492:
;1493:	g_fullservers = Com_Clamp( 0, 1, ui_browserShowFull.integer );
CNSTF4 0
ARGF4
CNSTF4 1065353216
ARGF4
ADDRGP4 ui_browserShowFull+12
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 24
ADDRGP4 Com_Clamp
CALLF4
ASGNF4
ADDRGP4 g_fullservers
ADDRLP4 24
INDIRF4
CVFI4 4
ASGNI4
line 1494
;1494:	g_arenaservers.showfull.curvalue = g_fullservers;
ADDRGP4 g_arenaservers+648+60
ADDRGP4 g_fullservers
INDIRI4
ASGNI4
line 1496
;1495:
;1496:	g_emptyservers = Com_Clamp( 0, 1, ui_browserShowEmpty.integer );
CNSTF4 0
ARGF4
CNSTF4 1065353216
ARGF4
ADDRGP4 ui_browserShowEmpty+12
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 28
ADDRGP4 Com_Clamp
CALLF4
ASGNF4
ADDRGP4 g_emptyservers
ADDRLP4 28
INDIRF4
CVFI4 4
ASGNI4
line 1497
;1497:	g_arenaservers.showempty.curvalue = g_emptyservers;
ADDRGP4 g_arenaservers+712+60
ADDRGP4 g_emptyservers
INDIRI4
ASGNI4
line 1500
;1498:
;1499:	// force to initial state and refresh
;1500:	type = g_servertype;
ADDRLP4 8
ADDRGP4 g_servertype
INDIRI4
ASGNI4
line 1501
;1501:	g_servertype = -1;
ADDRGP4 g_servertype
CNSTI4 -1
ASGNI4
line 1502
;1502:	ArenaServers_SetType( type );
ADDRLP4 8
INDIRI4
ARGI4
ADDRGP4 ArenaServers_SetType
CALLV
pop
line 1504
;1503:
;1504:	trap_Cvar_Register(NULL, "debug_protocol", "", 0 );
CNSTP4 0
ARGP4
ADDRGP4 $557
ARGP4
ADDRGP4 $195
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 trap_Cvar_Register
CALLV
pop
line 1505
;1505:}
LABELV $684
endproc ArenaServers_MenuInit 32 16
export ArenaServers_Cache
proc ArenaServers_Cache 0 4
line 1513
;1506:
;1507:
;1508:/*
;1509:=================
;1510:ArenaServers_Cache
;1511:=================
;1512:*/
;1513:void ArenaServers_Cache( void ) {
line 1514
;1514:	trap_R_RegisterShaderNoMip( ART_BACK0 );
ADDRGP4 $916
ARGP4
ADDRGP4 trap_R_RegisterShaderNoMip
CALLI4
pop
line 1515
;1515:	trap_R_RegisterShaderNoMip( ART_BACK1 );
ADDRGP4 $933
ARGP4
ADDRGP4 trap_R_RegisterShaderNoMip
CALLI4
pop
line 1516
;1516:	trap_R_RegisterShaderNoMip( ART_CREATE0 );
ADDRGP4 $979
ARGP4
ADDRGP4 trap_R_RegisterShaderNoMip
CALLI4
pop
line 1517
;1517:	trap_R_RegisterShaderNoMip( ART_CREATE1 );
ADDRGP4 $996
ARGP4
ADDRGP4 trap_R_RegisterShaderNoMip
CALLI4
pop
line 1518
;1518:	trap_R_RegisterShaderNoMip( ART_SPECIFY0 );
ADDRGP4 $937
ARGP4
ADDRGP4 trap_R_RegisterShaderNoMip
CALLI4
pop
line 1519
;1519:	trap_R_RegisterShaderNoMip( ART_SPECIFY1 );
ADDRGP4 $954
ARGP4
ADDRGP4 trap_R_RegisterShaderNoMip
CALLI4
pop
line 1520
;1520:	trap_R_RegisterShaderNoMip( ART_REFRESH0 );
ADDRGP4 $958
ARGP4
ADDRGP4 trap_R_RegisterShaderNoMip
CALLI4
pop
line 1521
;1521:	trap_R_RegisterShaderNoMip( ART_REFRESH1 );
ADDRGP4 $975
ARGP4
ADDRGP4 trap_R_RegisterShaderNoMip
CALLI4
pop
line 1522
;1522:	trap_R_RegisterShaderNoMip( ART_CONNECT0 );
ADDRGP4 $1000
ARGP4
ADDRGP4 trap_R_RegisterShaderNoMip
CALLI4
pop
line 1523
;1523:	trap_R_RegisterShaderNoMip( ART_CONNECT1 );
ADDRGP4 $1017
ARGP4
ADDRGP4 trap_R_RegisterShaderNoMip
CALLI4
pop
line 1524
;1524:	trap_R_RegisterShaderNoMip( ART_ARROWS0  );
ADDRGP4 $821
ARGP4
ADDRGP4 trap_R_RegisterShaderNoMip
CALLI4
pop
line 1525
;1525:	trap_R_RegisterShaderNoMip( ART_ARROWS_UP );
ADDRGP4 $851
ARGP4
ADDRGP4 trap_R_RegisterShaderNoMip
CALLI4
pop
line 1526
;1526:	trap_R_RegisterShaderNoMip( ART_ARROWS_DOWN );
ADDRGP4 $869
ARGP4
ADDRGP4 trap_R_RegisterShaderNoMip
CALLI4
pop
line 1527
;1527:	trap_R_RegisterShaderNoMip( ART_UNKNOWNMAP );
ADDRGP4 $817
ARGP4
ADDRGP4 trap_R_RegisterShaderNoMip
CALLI4
pop
line 1528
;1528:}
LABELV $1052
endproc ArenaServers_Cache 0 4
export UI_ArenaServersMenu
proc UI_ArenaServersMenu 0 4
line 1536
;1529:
;1530:
;1531:/*
;1532:=================
;1533:UI_ArenaServersMenu
;1534:=================
;1535:*/
;1536:void UI_ArenaServersMenu( void ) {
line 1537
;1537:	ArenaServers_MenuInit();
ADDRGP4 ArenaServers_MenuInit
CALLV
pop
line 1538
;1538:	UI_PushMenu( &g_arenaservers.menu );
ADDRGP4 g_arenaservers
ARGP4
ADDRGP4 UI_PushMenu
CALLV
pop
line 1539
;1539:}						  
LABELV $1053
endproc UI_ArenaServersMenu 0 4
bss
align 4
LABELV g_fullservers
skip 4
align 4
LABELV g_emptyservers
skip 4
align 4
LABELV g_sortkey
skip 4
align 4
LABELV g_gametype
skip 4
align 4
LABELV g_servertype
skip 4
align 4
LABELV g_nummplayerservers
skip 4
align 4
LABELV g_mplayerserverlist
skip 18944
align 4
LABELV g_numfavoriteservers
skip 4
align 4
LABELV g_favoriteserverlist
skip 2368
align 4
LABELV g_numlocalservers
skip 4
align 4
LABELV g_localserverlist
skip 18944
align 4
LABELV g_numglobalservers
skip 4
align 4
LABELV g_globalserverlist
skip 18944
align 4
LABELV g_arenaservers
skip 14348
import UI_RankStatusMenu
import RankStatus_Cache
import UI_SignupMenu
import Signup_Cache
import UI_LoginMenu
import Login_Cache
import UI_RankingsMenu
import Rankings_Cache
import Rankings_DrawPassword
import Rankings_DrawName
import Rankings_DrawText
import UI_InitGameinfo
import UI_SPUnlockMedals_f
import UI_SPUnlock_f
import UI_GetAwardLevel
import UI_LogAwardData
import UI_NewGame
import UI_GetCurrentGame
import UI_CanShowTierVideo
import UI_ShowTierVideo
import UI_TierCompleted
import UI_SetBestScore
import UI_GetBestScore
import UI_GetNumBots
import UI_GetBotInfoByName
import UI_GetBotInfoByNumber
import UI_GetNumSPTiers
import UI_GetNumSPArenas
import UI_GetNumArenas
import UI_GetSpecialArenaInfo
import UI_GetArenaInfoByMap
import UI_GetArenaInfoByNumber
import UI_NetworkOptionsMenu
import UI_NetworkOptionsMenu_Cache
import UI_SoundOptionsMenu
import UI_SoundOptionsMenu_Cache
import UI_DisplayOptionsMenu
import UI_DisplayOptionsMenu_Cache
import UI_SaveConfigMenu
import UI_SaveConfigMenu_Cache
import UI_LoadConfigMenu
import UI_LoadConfig_Cache
import UI_TeamOrdersMenu_Cache
import UI_TeamOrdersMenu_f
import UI_TeamOrdersMenu
import UI_RemoveBotsMenu
import UI_RemoveBots_Cache
import UI_AddBotsMenu
import UI_AddBots_Cache
import trap_VerifyCDKey
import trap_SetCDKey
import trap_GetCDKey
import trap_MemoryRemaining
import trap_LAN_GetPingInfo
import trap_LAN_GetPing
import trap_LAN_ClearPing
import trap_LAN_ServerStatus
import trap_LAN_GetPingQueueCount
import trap_LAN_GetServerInfo
import trap_LAN_GetServerAddressString
import trap_LAN_GetServerCount
import trap_GetConfigString
import trap_GetGlconfig
import trap_GetClientState
import trap_GetClipboardData
import trap_Key_SetCatcher
import trap_Key_GetCatcher
import trap_Key_ClearStates
import trap_Key_SetOverstrikeMode
import trap_Key_GetOverstrikeMode
import trap_Key_IsDown
import trap_Key_SetBinding
import trap_Key_GetBindingBuf
import trap_Key_KeynumToStringBuf
import trap_S_RegisterSound
import trap_S_StartLocalSound
import trap_CM_LerpTag
import trap_UpdateScreen
import trap_R_DrawStretchPic
import trap_R_SetColor
import trap_R_RenderScene
import trap_R_AddLightToScene
import trap_R_AddPolyToScene
import trap_R_AddRefEntityToScene
import trap_R_ClearScene
import trap_R_RegisterShaderNoMip
import trap_R_RegisterSkin
import trap_R_RegisterModel
import trap_FS_GetFileList
import trap_FS_FCloseFile
import trap_FS_Write
import trap_FS_Read
import trap_FS_FOpenFile
import trap_Cmd_ExecuteText
import trap_Argv
import trap_Argc
import trap_Cvar_InfoStringBuffer
import trap_Cvar_Create
import trap_Cvar_Reset
import trap_Cvar_SetValue
import trap_Cvar_VariableStringBuffer
import trap_Cvar_VariableValue
import trap_Cvar_Set
import trap_Cvar_Update
import trap_Cvar_Register
import trap_Milliseconds
import trap_Error
import trap_Print
import UI_SPSkillMenu_Cache
import UI_SPSkillMenu
import UI_SPPostgameMenu_f
import UI_SPPostgameMenu_Cache
import UI_SPArena_Start
import UI_SPLevelMenu_ReInit
import UI_SPLevelMenu_f
import UI_SPLevelMenu
import UI_SPLevelMenu_Cache
import uis
import m_entersound
import UI_StartDemoLoop
import UI_Cvar_VariableString
import UI_Argv
import UI_ForceMenuOff
import UI_PopMenu
import UI_PushMenu
import UI_SetActiveMenu
import UI_IsFullscreen
import UI_DrawTextBox
import UI_AdjustFrom640
import UI_CursorInRect
import UI_DrawChar
import UI_DrawString
import UI_ProportionalStringWidth
import UI_DrawProportionalString
import UI_ProportionalSizeScale
import UI_DrawBannerString
import UI_LerpColor
import UI_SetColor
import UI_UpdateScreen
import UI_DrawRect
import UI_FillRect
import UI_DrawHandlePic
import UI_DrawNamedPic
import UI_ClampCvar
import UI_ConsoleCommand
import UI_Refresh
import UI_MouseEvent
import UI_KeyEvent
import UI_Shutdown
import UI_Init
import UI_RegisterClientModelname
import UI_PlayerInfo_SetInfo
import UI_PlayerInfo_SetModel
import UI_DrawPlayer
import DriverInfo_Cache
import GraphicsOptions_Cache
import UI_GraphicsOptionsMenu
import ServerInfo_Cache
import UI_ServerInfoMenu
import UI_BotSelectMenu_Cache
import UI_BotSelectMenu
import ServerOptions_Cache
import StartServer_Cache
import UI_StartServerMenu
import SpecifyServer_Cache
import UI_SpecifyServerMenu
import SpecifyLeague_Cache
import UI_SpecifyLeagueMenu
import Preferences_Cache
import UI_PreferencesMenu
import PlayerSettings_Cache
import UI_PlayerSettingsMenu
import PlayerModel_Cache
import UI_PlayerModelMenu
import UI_CDKeyMenu_f
import UI_CDKeyMenu_Cache
import UI_CDKeyMenu
import UI_ModsMenu_Cache
import UI_ModsMenu
import UI_CinematicsMenu_Cache
import UI_CinematicsMenu_f
import UI_CinematicsMenu
import Demos_Cache
import UI_DemosMenu
import Controls_Cache
import UI_ControlsMenu
import UI_DrawConnectScreen
import TeamMain_Cache
import UI_TeamMainMenu
import UI_SetupMenu
import UI_SetupMenu_Cache
import UI_ConfirmMenu
import ConfirmMenu_Cache
import UI_InGameMenu
import InGame_Cache
import UI_CreditMenu
import UI_UpdateCvars
import UI_RegisterCvars
import UI_MainMenu
import MainMenu_Cache
import MenuField_Key
import MenuField_Draw
import MenuField_Init
import MField_Draw
import MField_CharEvent
import MField_KeyDownEvent
import MField_Clear
import ui_medalSounds
import ui_medalPicNames
import ui_medalNames
import text_color_highlight
import text_color_normal
import text_color_disabled
import listbar_color
import list_color
import name_color
import color_dim
import color_red
import color_orange
import color_blue
import color_yellow
import color_white
import color_black
import menu_dim_color
import menu_black_color
import menu_red_color
import menu_highlight_color
import menu_dark_color
import menu_grayed_color
import menu_text_color
import weaponChangeSound
import menu_null_sound
import menu_buzz_sound
import menu_out_sound
import menu_move_sound
import menu_in_sound
import ScrollList_Key
import ScrollList_Draw
import Bitmap_Draw
import Bitmap_Init
import Menu_DefaultKey
import Menu_SetCursorToItem
import Menu_SetCursor
import Menu_ActivateItem
import Menu_ItemAtCursor
import Menu_Draw
import Menu_AdjustCursor
import Menu_AddItem
import Menu_Focus
import Menu_Cache
import ui_cdkeychecked
import ui_cdkey
import ui_server16
import ui_server15
import ui_server14
import ui_server13
import ui_server12
import ui_server11
import ui_server10
import ui_server9
import ui_server8
import ui_server7
import ui_server6
import ui_server5
import ui_server4
import ui_server3
import ui_server2
import ui_server1
import ui_marks
import ui_drawCrosshairNames
import ui_drawCrosshair
import ui_brassTime
import ui_browserShowEmpty
import ui_browserShowFull
import ui_browserSortKey
import ui_browserGameType
import ui_browserMaster
import ui_spSelection
import ui_spSkill
import ui_spVideos
import ui_spAwards
import ui_spScores5
import ui_spScores4
import ui_spScores3
import ui_spScores2
import ui_spScores1
import ui_botsFile
import ui_arenasFile
import ui_ctf_friendly
import ui_ctf_timelimit
import ui_ctf_capturelimit
import ui_team_friendly
import ui_team_timelimit
import ui_team_fraglimit
import ui_tourney_timelimit
import ui_tourney_fraglimit
import ui_ffa_timelimit
import ui_ffa_fraglimit
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 $1017
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 47
byte 1 97
byte 1 114
byte 1 116
byte 1 47
byte 1 102
byte 1 105
byte 1 103
byte 1 104
byte 1 116
byte 1 95
byte 1 49
byte 1 0
align 1
LABELV $1000
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 47
byte 1 97
byte 1 114
byte 1 116
byte 1 47
byte 1 102
byte 1 105
byte 1 103
byte 1 104
byte 1 116
byte 1 95
byte 1 48
byte 1 0
align 1
LABELV $996
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 47
byte 1 97
byte 1 114
byte 1 116
byte 1 47
byte 1 99
byte 1 114
byte 1 101
byte 1 97
byte 1 116
byte 1 101
byte 1 95
byte 1 49
byte 1 0
align 1
LABELV $979
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 47
byte 1 97
byte 1 114
byte 1 116
byte 1 47
byte 1 99
byte 1 114
byte 1 101
byte 1 97
byte 1 116
byte 1 101
byte 1 95
byte 1 48
byte 1 0
align 1
LABELV $975
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 47
byte 1 97
byte 1 114
byte 1 116
byte 1 47
byte 1 114
byte 1 101
byte 1 102
byte 1 114
byte 1 101
byte 1 115
byte 1 104
byte 1 95
byte 1 49
byte 1 0
align 1
LABELV $958
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 47
byte 1 97
byte 1 114
byte 1 116
byte 1 47
byte 1 114
byte 1 101
byte 1 102
byte 1 114
byte 1 101
byte 1 115
byte 1 104
byte 1 95
byte 1 48
byte 1 0
align 1
LABELV $954
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 47
byte 1 97
byte 1 114
byte 1 116
byte 1 47
byte 1 115
byte 1 112
byte 1 101
byte 1 99
byte 1 105
byte 1 102
byte 1 121
byte 1 95
byte 1 49
byte 1 0
align 1
LABELV $937
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 47
byte 1 97
byte 1 114
byte 1 116
byte 1 47
byte 1 115
byte 1 112
byte 1 101
byte 1 99
byte 1 105
byte 1 102
byte 1 121
byte 1 95
byte 1 48
byte 1 0
align 1
LABELV $933
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 47
byte 1 97
byte 1 114
byte 1 116
byte 1 47
byte 1 98
byte 1 97
byte 1 99
byte 1 107
byte 1 95
byte 1 49
byte 1 0
align 1
LABELV $916
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 47
byte 1 97
byte 1 114
byte 1 116
byte 1 47
byte 1 98
byte 1 97
byte 1 99
byte 1 107
byte 1 95
byte 1 48
byte 1 0
align 1
LABELV $912
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 47
byte 1 97
byte 1 114
byte 1 116
byte 1 47
byte 1 100
byte 1 101
byte 1 108
byte 1 101
byte 1 116
byte 1 101
byte 1 95
byte 1 49
byte 1 0
align 1
LABELV $895
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 47
byte 1 97
byte 1 114
byte 1 116
byte 1 47
byte 1 100
byte 1 101
byte 1 108
byte 1 101
byte 1 116
byte 1 101
byte 1 95
byte 1 48
byte 1 0
align 1
LABELV $869
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 47
byte 1 97
byte 1 114
byte 1 116
byte 1 47
byte 1 97
byte 1 114
byte 1 114
byte 1 111
byte 1 119
byte 1 115
byte 1 95
byte 1 118
byte 1 101
byte 1 114
byte 1 116
byte 1 95
byte 1 98
byte 1 111
byte 1 116
byte 1 0
align 1
LABELV $851
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 47
byte 1 97
byte 1 114
byte 1 116
byte 1 47
byte 1 97
byte 1 114
byte 1 114
byte 1 111
byte 1 119
byte 1 115
byte 1 95
byte 1 118
byte 1 101
byte 1 114
byte 1 116
byte 1 95
byte 1 116
byte 1 111
byte 1 112
byte 1 0
align 1
LABELV $821
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 47
byte 1 97
byte 1 114
byte 1 116
byte 1 47
byte 1 97
byte 1 114
byte 1 114
byte 1 111
byte 1 119
byte 1 115
byte 1 95
byte 1 118
byte 1 101
byte 1 114
byte 1 116
byte 1 95
byte 1 48
byte 1 0
align 1
LABELV $817
byte 1 109
byte 1 101
byte 1 110
byte 1 117
byte 1 47
byte 1 97
byte 1 114
byte 1 116
byte 1 47
byte 1 117
byte 1 110
byte 1 107
byte 1 110
byte 1 111
byte 1 119
byte 1 110
byte 1 109
byte 1 97
byte 1 112
byte 1 0
align 1
LABELV $769
byte 1 83
byte 1 104
byte 1 111
byte 1 119
byte 1 32
byte 1 69
byte 1 109
byte 1 112
byte 1 116
byte 1 121
byte 1 58
byte 1 0
align 1
LABELV $755
byte 1 83
byte 1 104
byte 1 111
byte 1 119
byte 1 32
byte 1 70
byte 1 117
byte 1 108
byte 1 108
byte 1 58
byte 1 0
align 1
LABELV $739
byte 1 83
byte 1 111
byte 1 114
byte 1 116
byte 1 32
byte 1 66
byte 1 121
byte 1 58
byte 1 0
align 1
LABELV $723
byte 1 71
byte 1 97
byte 1 109
byte 1 101
byte 1 32
byte 1 84
byte 1 121
byte 1 112
byte 1 101
byte 1 58
byte 1 0
align 1
LABELV $707
byte 1 83
byte 1 101
byte 1 114
byte 1 118
byte 1 101
byte 1 114
byte 1 115
byte 1 58
byte 1 0
align 1
LABELV $699
byte 1 65
byte 1 82
byte 1 69
byte 1 78
byte 1 65
byte 1 32
byte 1 83
byte 1 69
byte 1 82
byte 1 86
byte 1 69
byte 1 82
byte 1 83
byte 1 0
align 1
LABELV $649
byte 1 117
byte 1 105
byte 1 95
byte 1 98
byte 1 114
byte 1 111
byte 1 119
byte 1 115
byte 1 101
byte 1 114
byte 1 83
byte 1 104
byte 1 111
byte 1 119
byte 1 69
byte 1 109
byte 1 112
byte 1 116
byte 1 121
byte 1 0
align 1
LABELV $643
byte 1 117
byte 1 105
byte 1 95
byte 1 98
byte 1 114
byte 1 111
byte 1 119
byte 1 115
byte 1 101
byte 1 114
byte 1 83
byte 1 104
byte 1 111
byte 1 119
byte 1 70
byte 1 117
byte 1 108
byte 1 108
byte 1 0
align 1
LABELV $637
byte 1 117
byte 1 105
byte 1 95
byte 1 98
byte 1 114
byte 1 111
byte 1 119
byte 1 115
byte 1 101
byte 1 114
byte 1 83
byte 1 111
byte 1 114
byte 1 116
byte 1 75
byte 1 101
byte 1 121
byte 1 0
align 1
LABELV $631
byte 1 117
byte 1 105
byte 1 95
byte 1 98
byte 1 114
byte 1 111
byte 1 119
byte 1 115
byte 1 101
byte 1 114
byte 1 71
byte 1 97
byte 1 109
byte 1 101
byte 1 84
byte 1 121
byte 1 112
byte 1 101
byte 1 0
align 1
LABELV $625
byte 1 117
byte 1 105
byte 1 95
byte 1 98
byte 1 114
byte 1 111
byte 1 119
byte 1 115
byte 1 101
byte 1 114
byte 1 77
byte 1 97
byte 1 115
byte 1 116
byte 1 101
byte 1 114
byte 1 0
align 1
LABELV $618
byte 1 104
byte 1 105
byte 1 116
byte 1 32
byte 1 114
byte 1 101
byte 1 102
byte 1 114
byte 1 101
byte 1 115
byte 1 104
byte 1 32
byte 1 116
byte 1 111
byte 1 32
byte 1 117
byte 1 112
byte 1 100
byte 1 97
byte 1 116
byte 1 101
byte 1 0
align 1
LABELV $562
byte 1 112
byte 1 114
byte 1 111
byte 1 116
byte 1 111
byte 1 99
byte 1 111
byte 1 108
byte 1 0
align 1
LABELV $561
byte 1 103
byte 1 108
byte 1 111
byte 1 98
byte 1 97
byte 1 108
byte 1 115
byte 1 101
byte 1 114
byte 1 118
byte 1 101
byte 1 114
byte 1 115
byte 1 32
byte 1 37
byte 1 100
byte 1 32
byte 1 37
byte 1 100
byte 1 37
byte 1 115
byte 1 10
byte 1 0
align 1
LABELV $560
byte 1 103
byte 1 108
byte 1 111
byte 1 98
byte 1 97
byte 1 108
byte 1 115
byte 1 101
byte 1 114
byte 1 118
byte 1 101
byte 1 114
byte 1 115
byte 1 32
byte 1 37
byte 1 100
byte 1 32
byte 1 37
byte 1 115
byte 1 37
byte 1 115
byte 1 10
byte 1 0
align 1
LABELV $557
byte 1 100
byte 1 101
byte 1 98
byte 1 117
byte 1 103
byte 1 95
byte 1 112
byte 1 114
byte 1 111
byte 1 116
byte 1 111
byte 1 99
byte 1 111
byte 1 108
byte 1 0
align 1
LABELV $556
byte 1 32
byte 1 102
byte 1 117
byte 1 108
byte 1 108
byte 1 0
align 1
LABELV $553
byte 1 32
byte 1 101
byte 1 109
byte 1 112
byte 1 116
byte 1 121
byte 1 0
align 1
LABELV $549
byte 1 32
byte 1 99
byte 1 116
byte 1 102
byte 1 0
align 1
LABELV $547
byte 1 32
byte 1 116
byte 1 111
byte 1 117
byte 1 114
byte 1 110
byte 1 101
byte 1 121
byte 1 0
align 1
LABELV $545
byte 1 32
byte 1 116
byte 1 101
byte 1 97
byte 1 109
byte 1 0
align 1
LABELV $543
byte 1 32
byte 1 102
byte 1 102
byte 1 97
byte 1 0
align 1
LABELV $531
byte 1 108
byte 1 111
byte 1 99
byte 1 97
byte 1 108
byte 1 115
byte 1 101
byte 1 114
byte 1 118
byte 1 101
byte 1 114
byte 1 115
byte 1 10
byte 1 0
align 1
LABELV $509
byte 1 112
byte 1 105
byte 1 110
byte 1 103
byte 1 32
byte 1 37
byte 1 115
byte 1 10
byte 1 0
align 1
LABELV $399
byte 1 115
byte 1 101
byte 1 114
byte 1 118
byte 1 101
byte 1 114
byte 1 37
byte 1 100
byte 1 0
align 1
LABELV $378
byte 1 78
byte 1 111
byte 1 32
byte 1 82
byte 1 101
byte 1 115
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 101
byte 1 0
align 1
LABELV $370
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 $369
byte 1 103
byte 1 97
byte 1 109
byte 1 101
byte 1 0
align 1
LABELV $368
byte 1 110
byte 1 101
byte 1 116
byte 1 116
byte 1 121
byte 1 112
byte 1 101
byte 1 0
align 1
LABELV $367
byte 1 40
byte 1 65
byte 1 41
byte 1 37
byte 1 115
byte 1 0
align 1
LABELV $366
byte 1 115
byte 1 118
byte 1 95
byte 1 97
byte 1 108
byte 1 108
byte 1 111
byte 1 119
byte 1 65
byte 1 110
byte 1 111
byte 1 110
byte 1 121
byte 1 109
byte 1 111
byte 1 117
byte 1 115
byte 1 0
align 1
LABELV $363
byte 1 109
byte 1 97
byte 1 120
byte 1 80
byte 1 105
byte 1 110
byte 1 103
byte 1 0
align 1
LABELV $362
byte 1 109
byte 1 105
byte 1 110
byte 1 80
byte 1 105
byte 1 110
byte 1 103
byte 1 0
align 1
LABELV $361
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 $360
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 $359
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 $358
byte 1 104
byte 1 111
byte 1 115
byte 1 116
byte 1 110
byte 1 97
byte 1 109
byte 1 101
byte 1 0
align 1
LABELV $297
byte 1 37
byte 1 45
byte 1 50
byte 1 48
byte 1 46
byte 1 50
byte 1 48
byte 1 115
byte 1 32
byte 1 37
byte 1 45
byte 1 49
byte 1 50
byte 1 46
byte 1 49
byte 1 50
byte 1 115
byte 1 32
byte 1 37
byte 1 50
byte 1 100
byte 1 47
byte 1 37
byte 1 50
byte 1 100
byte 1 32
byte 1 37
byte 1 45
byte 1 56
byte 1 46
byte 1 56
byte 1 115
byte 1 32
byte 1 37
byte 1 51
byte 1 115
byte 1 32
byte 1 37
byte 1 115
byte 1 37
byte 1 51
byte 1 100
byte 1 0
align 1
LABELV $296
byte 1 94
byte 1 49
byte 1 0
align 1
LABELV $295
byte 1 94
byte 1 51
byte 1 0
align 1
LABELV $292
byte 1 94
byte 1 50
byte 1 0
align 1
LABELV $287
byte 1 94
byte 1 52
byte 1 0
align 1
LABELV $228
byte 1 78
byte 1 111
byte 1 32
byte 1 83
byte 1 101
byte 1 114
byte 1 118
byte 1 101
byte 1 114
byte 1 115
byte 1 32
byte 1 70
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 46
byte 1 0
align 1
LABELV $225
byte 1 78
byte 1 111
byte 1 32
byte 1 82
byte 1 101
byte 1 115
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 101
byte 1 32
byte 1 70
byte 1 114
byte 1 111
byte 1 109
byte 1 32
byte 1 77
byte 1 97
byte 1 115
byte 1 116
byte 1 101
byte 1 114
byte 1 32
byte 1 83
byte 1 101
byte 1 114
byte 1 118
byte 1 101
byte 1 114
byte 1 46
byte 1 0
align 1
LABELV $201
byte 1 83
byte 1 99
byte 1 97
byte 1 110
byte 1 110
byte 1 105
byte 1 110
byte 1 103
byte 1 32
byte 1 70
byte 1 111
byte 1 114
byte 1 32
byte 1 83
byte 1 101
byte 1 114
byte 1 118
byte 1 101
byte 1 114
byte 1 115
byte 1 46
byte 1 0
align 1
LABELV $195
byte 1 0
align 1
LABELV $169
byte 1 80
byte 1 114
byte 1 101
byte 1 115
byte 1 115
byte 1 32
byte 1 83
byte 1 80
byte 1 65
byte 1 67
byte 1 69
byte 1 32
byte 1 116
byte 1 111
byte 1 32
byte 1 115
byte 1 116
byte 1 111
byte 1 112
byte 1 0
align 1
LABELV $164
byte 1 37
byte 1 100
byte 1 32
byte 1 111
byte 1 102
byte 1 32
byte 1 37
byte 1 100
byte 1 32
byte 1 65
byte 1 114
byte 1 101
byte 1 110
byte 1 97
byte 1 32
byte 1 83
byte 1 101
byte 1 114
byte 1 118
byte 1 101
byte 1 114
byte 1 115
byte 1 46
byte 1 0
align 1
LABELV $148
byte 1 108
byte 1 101
byte 1 118
byte 1 101
byte 1 108
byte 1 115
byte 1 104
byte 1 111
byte 1 116
byte 1 115
byte 1 47
byte 1 37
byte 1 115
byte 1 46
byte 1 116
byte 1 103
byte 1 97
byte 1 0
align 1
LABELV $135
byte 1 99
byte 1 111
byte 1 110
byte 1 110
byte 1 101
byte 1 99
byte 1 116
byte 1 32
byte 1 37
byte 1 115
byte 1 10
byte 1 0
align 1
LABELV $100
byte 1 99
byte 1 108
byte 1 95
byte 1 109
byte 1 97
byte 1 120
byte 1 80
byte 1 105
byte 1 110
byte 1 103
byte 1 0
align 1
LABELV $95
byte 1 73
byte 1 80
byte 1 88
byte 1 0
align 1
LABELV $94
byte 1 85
byte 1 68
byte 1 80
byte 1 0
align 1
LABELV $93
byte 1 63
byte 1 63
byte 1 63
byte 1 0
align 1
LABELV $92
byte 1 79
byte 1 83
byte 1 80
byte 1 0
align 1
LABELV $91
byte 1 85
byte 1 114
byte 1 98
byte 1 97
byte 1 110
byte 1 32
byte 1 84
byte 1 101
byte 1 114
byte 1 114
byte 1 111
byte 1 114
byte 1 0
align 1
LABELV $90
byte 1 81
byte 1 51
byte 1 70
byte 1 0
align 1
LABELV $89
byte 1 82
byte 1 111
byte 1 99
byte 1 107
byte 1 101
byte 1 116
byte 1 32
byte 1 65
byte 1 114
byte 1 101
byte 1 110
byte 1 97
byte 1 32
byte 1 51
byte 1 0
align 1
LABELV $88
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 $87
byte 1 79
byte 1 118
byte 1 101
byte 1 114
byte 1 76
byte 1 111
byte 1 97
byte 1 100
byte 1 0
align 1
LABELV $86
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 $85
byte 1 67
byte 1 84
byte 1 70
byte 1 0
align 1
LABELV $84
byte 1 84
byte 1 101
byte 1 97
byte 1 109
byte 1 32
byte 1 68
byte 1 77
byte 1 0
align 1
LABELV $83
byte 1 83
byte 1 80
byte 1 32
byte 1 0
align 1
LABELV $82
byte 1 49
byte 1 118
byte 1 49
byte 1 0
align 1
LABELV $81
byte 1 68
byte 1 77
byte 1 32
byte 1 0
align 1
LABELV $80
byte 1 80
byte 1 105
byte 1 110
byte 1 103
byte 1 32
byte 1 84
byte 1 105
byte 1 109
byte 1 101
byte 1 0
align 1
LABELV $79
byte 1 71
byte 1 97
byte 1 109
byte 1 101
byte 1 32
byte 1 84
byte 1 121
byte 1 112
byte 1 101
byte 1 0
align 1
LABELV $78
byte 1 79
byte 1 112
byte 1 101
byte 1 110
byte 1 32
byte 1 80
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 32
byte 1 83
byte 1 112
byte 1 111
byte 1 116
byte 1 115
byte 1 0
align 1
LABELV $77
byte 1 77
byte 1 97
byte 1 112
byte 1 32
byte 1 78
byte 1 97
byte 1 109
byte 1 101
byte 1 0
align 1
LABELV $76
byte 1 83
byte 1 101
byte 1 114
byte 1 118
byte 1 101
byte 1 114
byte 1 32
byte 1 78
byte 1 97
byte 1 109
byte 1 101
byte 1 0
align 1
LABELV $75
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 $74
byte 1 84
byte 1 111
byte 1 117
byte 1 114
byte 1 110
byte 1 97
byte 1 109
byte 1 101
byte 1 110
byte 1 116
byte 1 0
align 1
LABELV $73
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 $72
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 $71
byte 1 65
byte 1 108
byte 1 108
byte 1 0
align 1
LABELV $70
byte 1 70
byte 1 97
byte 1 118
byte 1 111
byte 1 114
byte 1 105
byte 1 116
byte 1 101
byte 1 115
byte 1 0
align 1
LABELV $69
byte 1 73
byte 1 110
byte 1 116
byte 1 101
byte 1 114
byte 1 110
byte 1 101
byte 1 116
byte 1 0
align 1
LABELV $68
byte 1 77
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 0
align 1
LABELV $67
byte 1 76
byte 1 111
byte 1 99
byte 1 97
byte 1 108
byte 1 0
