mirror of
https://github.com/ReactionQuake3/reaction.git
synced 2024-11-28 06:53:36 +00:00
2952 lines
42 KiB
NASM
2952 lines
42 KiB
NASM
export UI_ParseInfos
|
|
code
|
|
proc UI_ParseInfos 2084 12
|
|
file "../ui_gameinfo.c"
|
|
line 31
|
|
;1:// Copyright (C) 1999-2000 Id Software, Inc.
|
|
;2://
|
|
;3://
|
|
;4:// gameinfo.c
|
|
;5://
|
|
;6:
|
|
;7:#include "ui_local.h"
|
|
;8:
|
|
;9:
|
|
;10://
|
|
;11:// arena and bot info
|
|
;12://
|
|
;13:
|
|
;14:
|
|
;15:int ui_numBots;
|
|
;16:static char *ui_botInfos[MAX_BOTS];
|
|
;17:
|
|
;18:static int ui_numArenas;
|
|
;19:static char *ui_arenaInfos[MAX_ARENAS];
|
|
;20:
|
|
;21:#ifndef MISSIONPACK // bk001206
|
|
;22:static int ui_numSinglePlayerArenas;
|
|
;23:static int ui_numSpecialSinglePlayerArenas;
|
|
;24:#endif
|
|
;25:
|
|
;26:/*
|
|
;27:===============
|
|
;28:UI_ParseInfos
|
|
;29:===============
|
|
;30:*/
|
|
;31:int UI_ParseInfos( char *buf, int max, char *infos[] ) {
|
|
line 37
|
|
;32: char *token;
|
|
;33: int count;
|
|
;34: char key[MAX_TOKEN_CHARS];
|
|
;35: char info[MAX_INFO_STRING];
|
|
;36:
|
|
;37: count = 0;
|
|
ADDRLP4 2052
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $92
|
|
JUMPV
|
|
LABELV $91
|
|
line 39
|
|
;38:
|
|
;39: while ( 1 ) {
|
|
line 40
|
|
;40: token = COM_Parse( &buf );
|
|
ADDRFP4 0
|
|
ARGP4
|
|
ADDRLP4 2056
|
|
ADDRGP4 COM_Parse
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 2056
|
|
INDIRP4
|
|
ASGNP4
|
|
line 41
|
|
;41: if ( !token[0] ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $94
|
|
line 42
|
|
;42: break;
|
|
ADDRGP4 $93
|
|
JUMPV
|
|
LABELV $94
|
|
line 44
|
|
;43: }
|
|
;44: if ( strcmp( token, "{" ) ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $98
|
|
ARGP4
|
|
ADDRLP4 2060
|
|
ADDRGP4 strcmp
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 2060
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $96
|
|
line 45
|
|
;45: Com_Printf( "Missing { in info file\n" );
|
|
ADDRGP4 $99
|
|
ARGP4
|
|
ADDRGP4 Com_Printf
|
|
CALLV
|
|
pop
|
|
line 46
|
|
;46: break;
|
|
ADDRGP4 $93
|
|
JUMPV
|
|
LABELV $96
|
|
line 49
|
|
;47: }
|
|
;48:
|
|
;49: if ( count == max ) {
|
|
ADDRLP4 2052
|
|
INDIRI4
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
NEI4 $100
|
|
line 50
|
|
;50: Com_Printf( "Max infos exceeded\n" );
|
|
ADDRGP4 $102
|
|
ARGP4
|
|
ADDRGP4 Com_Printf
|
|
CALLV
|
|
pop
|
|
line 51
|
|
;51: break;
|
|
ADDRGP4 $93
|
|
JUMPV
|
|
LABELV $100
|
|
line 54
|
|
;52: }
|
|
;53:
|
|
;54: info[0] = '\0';
|
|
ADDRLP4 1028
|
|
CNSTI1 0
|
|
ASGNI1
|
|
ADDRGP4 $104
|
|
JUMPV
|
|
LABELV $103
|
|
line 55
|
|
;55: while ( 1 ) {
|
|
line 56
|
|
;56: token = COM_ParseExt( &buf, qtrue );
|
|
ADDRFP4 0
|
|
ARGP4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRLP4 2064
|
|
ADDRGP4 COM_ParseExt
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 2064
|
|
INDIRP4
|
|
ASGNP4
|
|
line 57
|
|
;57: if ( !token[0] ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $106
|
|
line 58
|
|
;58: Com_Printf( "Unexpected end of info file\n" );
|
|
ADDRGP4 $108
|
|
ARGP4
|
|
ADDRGP4 Com_Printf
|
|
CALLV
|
|
pop
|
|
line 59
|
|
;59: break;
|
|
ADDRGP4 $105
|
|
JUMPV
|
|
LABELV $106
|
|
line 61
|
|
;60: }
|
|
;61: if ( !strcmp( token, "}" ) ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $111
|
|
ARGP4
|
|
ADDRLP4 2068
|
|
ADDRGP4 strcmp
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 2068
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $109
|
|
line 62
|
|
;62: break;
|
|
ADDRGP4 $105
|
|
JUMPV
|
|
LABELV $109
|
|
line 64
|
|
;63: }
|
|
;64: Q_strncpyz( key, token, sizeof( key ) );
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 1024
|
|
ARGI4
|
|
ADDRGP4 Q_strncpyz
|
|
CALLV
|
|
pop
|
|
line 66
|
|
;65:
|
|
;66: token = COM_ParseExt( &buf, qfalse );
|
|
ADDRFP4 0
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRLP4 2072
|
|
ADDRGP4 COM_ParseExt
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 2072
|
|
INDIRP4
|
|
ASGNP4
|
|
line 67
|
|
;67: if ( !token[0] ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $112
|
|
line 68
|
|
;68: strcpy( token, "<NULL>" );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $114
|
|
ARGP4
|
|
ADDRGP4 strcpy
|
|
CALLP4
|
|
pop
|
|
line 69
|
|
;69: }
|
|
LABELV $112
|
|
line 70
|
|
;70: Info_SetValueForKey( info, key, token );
|
|
ADDRLP4 1028
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 Info_SetValueForKey
|
|
CALLV
|
|
pop
|
|
line 71
|
|
;71: }
|
|
LABELV $104
|
|
line 55
|
|
ADDRGP4 $103
|
|
JUMPV
|
|
LABELV $105
|
|
line 73
|
|
;72: //NOTE: extra space for arena number
|
|
;73: infos[count] = UI_Alloc(strlen(info) + strlen("\\num\\") + strlen(va("%d", MAX_ARENAS)) + 1);
|
|
ADDRLP4 1028
|
|
ARGP4
|
|
ADDRLP4 2064
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRGP4 $115
|
|
ARGP4
|
|
ADDRLP4 2068
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRGP4 $116
|
|
ARGP4
|
|
CNSTI4 1024
|
|
ARGI4
|
|
ADDRLP4 2072
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 2072
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 2076
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 2064
|
|
INDIRI4
|
|
ADDRLP4 2068
|
|
INDIRI4
|
|
ADDI4
|
|
ADDRLP4 2076
|
|
INDIRI4
|
|
ADDI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ARGI4
|
|
ADDRLP4 2080
|
|
ADDRGP4 UI_Alloc
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 2052
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ADDP4
|
|
ADDRLP4 2080
|
|
INDIRP4
|
|
ASGNP4
|
|
line 74
|
|
;74: if (infos[count]) {
|
|
ADDRLP4 2052
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $117
|
|
line 75
|
|
;75: strcpy(infos[count], info);
|
|
ADDRLP4 2052
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 1028
|
|
ARGP4
|
|
ADDRGP4 strcpy
|
|
CALLP4
|
|
pop
|
|
line 76
|
|
;76: count++;
|
|
ADDRLP4 2052
|
|
ADDRLP4 2052
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 77
|
|
;77: }
|
|
LABELV $117
|
|
line 78
|
|
;78: }
|
|
LABELV $92
|
|
line 39
|
|
ADDRGP4 $91
|
|
JUMPV
|
|
LABELV $93
|
|
line 79
|
|
;79: return count;
|
|
ADDRLP4 2052
|
|
INDIRI4
|
|
RETI4
|
|
LABELV $90
|
|
endproc UI_ParseInfos 2084 12
|
|
proc UI_LoadArenasFromFile 8216 16
|
|
line 87
|
|
;80:}
|
|
;81:
|
|
;82:/*
|
|
;83:===============
|
|
;84:UI_LoadArenasFromFile
|
|
;85:===============
|
|
;86:*/
|
|
;87:static void UI_LoadArenasFromFile( char *filename ) {
|
|
line 92
|
|
;88: int len;
|
|
;89: fileHandle_t f;
|
|
;90: char buf[MAX_ARENAS_TEXT];
|
|
;91:
|
|
;92: len = trap_FS_FOpenFile( filename, &f, FS_READ );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRLP4 8200
|
|
ADDRGP4 trap_FS_FOpenFile
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 8200
|
|
INDIRI4
|
|
ASGNI4
|
|
line 93
|
|
;93: if ( !f ) {
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $120
|
|
line 94
|
|
;94: trap_Print( va( S_COLOR_RED "file not found: %s\n", filename ) );
|
|
ADDRGP4 $122
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 8204
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 8204
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_Print
|
|
CALLV
|
|
pop
|
|
line 95
|
|
;95: return;
|
|
ADDRGP4 $119
|
|
JUMPV
|
|
LABELV $120
|
|
line 97
|
|
;96: }
|
|
;97: if ( len >= MAX_ARENAS_TEXT ) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 8192
|
|
LTI4 $123
|
|
line 98
|
|
;98: trap_Print( va( S_COLOR_RED "file too large: %s is %i, max allowed is %i", filename, len, MAX_ARENAS_TEXT ) );
|
|
ADDRGP4 $125
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
CNSTI4 8192
|
|
ARGI4
|
|
ADDRLP4 8204
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 8204
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_Print
|
|
CALLV
|
|
pop
|
|
line 99
|
|
;99: trap_FS_FCloseFile( f );
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 trap_FS_FCloseFile
|
|
CALLV
|
|
pop
|
|
line 100
|
|
;100: return;
|
|
ADDRGP4 $119
|
|
JUMPV
|
|
LABELV $123
|
|
line 103
|
|
;101: }
|
|
;102:
|
|
;103: trap_FS_Read( buf, len, f );
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 trap_FS_Read
|
|
CALLV
|
|
pop
|
|
line 104
|
|
;104: buf[len] = 0;
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
ADDP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 105
|
|
;105: trap_FS_FCloseFile( f );
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 trap_FS_FCloseFile
|
|
CALLV
|
|
pop
|
|
line 107
|
|
;106:
|
|
;107: ui_numArenas += UI_ParseInfos( buf, MAX_ARENAS - ui_numArenas, &ui_arenaInfos[ui_numArenas] );
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRLP4 8204
|
|
ADDRGP4 ui_numArenas
|
|
ASGNP4
|
|
ADDRLP4 8208
|
|
ADDRLP4 8204
|
|
INDIRP4
|
|
INDIRI4
|
|
ASGNI4
|
|
CNSTI4 1024
|
|
ADDRLP4 8208
|
|
INDIRI4
|
|
SUBI4
|
|
ARGI4
|
|
ADDRLP4 8208
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 ui_arenaInfos
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 8212
|
|
ADDRGP4 UI_ParseInfos
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 8204
|
|
INDIRP4
|
|
ADDRLP4 8208
|
|
INDIRI4
|
|
ADDRLP4 8212
|
|
INDIRI4
|
|
ADDI4
|
|
ASGNI4
|
|
line 108
|
|
;108:}
|
|
LABELV $119
|
|
endproc UI_LoadArenasFromFile 8216 16
|
|
export UI_LoadArenas
|
|
proc UI_LoadArenas 1524 16
|
|
line 115
|
|
;109:
|
|
;110:/*
|
|
;111:===============
|
|
;112:UI_LoadArenas
|
|
;113:===============
|
|
;114:*/
|
|
;115:void UI_LoadArenas( void ) {
|
|
line 125
|
|
;116: int numdirs;
|
|
;117: vmCvar_t arenasFile;
|
|
;118: char filename[128];
|
|
;119: char dirlist[1024];
|
|
;120: char* dirptr;
|
|
;121: int i, n;
|
|
;122: int dirlen;
|
|
;123: char *type;
|
|
;124:
|
|
;125: ui_numArenas = 0;
|
|
ADDRGP4 ui_numArenas
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 126
|
|
;126: uiInfo.mapCount = 0;
|
|
ADDRGP4 uiInfo+83224
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 128
|
|
;127:
|
|
;128: trap_Cvar_Register( &arenasFile, "g_arenasFile", "", CVAR_INIT|CVAR_ROM );
|
|
ADDRLP4 152
|
|
ARGP4
|
|
ADDRGP4 $128
|
|
ARGP4
|
|
ADDRGP4 $129
|
|
ARGP4
|
|
CNSTI4 80
|
|
ARGI4
|
|
ADDRGP4 trap_Cvar_Register
|
|
CALLV
|
|
pop
|
|
line 129
|
|
;129: if( *arenasFile.string ) {
|
|
ADDRLP4 152+16
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
EQI4 $130
|
|
line 130
|
|
;130: UI_LoadArenasFromFile(arenasFile.string);
|
|
ADDRLP4 152+16
|
|
ARGP4
|
|
ADDRGP4 UI_LoadArenasFromFile
|
|
CALLV
|
|
pop
|
|
line 131
|
|
;131: }
|
|
ADDRGP4 $131
|
|
JUMPV
|
|
LABELV $130
|
|
line 132
|
|
;132: else {
|
|
line 133
|
|
;133: UI_LoadArenasFromFile("scripts/arenas.txt");
|
|
ADDRGP4 $134
|
|
ARGP4
|
|
ADDRGP4 UI_LoadArenasFromFile
|
|
CALLV
|
|
pop
|
|
line 134
|
|
;134: }
|
|
LABELV $131
|
|
line 137
|
|
;135:
|
|
;136: // get all arenas from .arena files
|
|
;137: numdirs = trap_FS_GetFileList("scripts", ".arena", dirlist, 1024 );
|
|
ADDRGP4 $135
|
|
ARGP4
|
|
ADDRGP4 $136
|
|
ARGP4
|
|
ADDRLP4 424
|
|
ARGP4
|
|
CNSTI4 1024
|
|
ARGI4
|
|
ADDRLP4 1448
|
|
ADDRGP4 trap_FS_GetFileList
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 148
|
|
ADDRLP4 1448
|
|
INDIRI4
|
|
ASGNI4
|
|
line 138
|
|
;138: dirptr = dirlist;
|
|
ADDRLP4 8
|
|
ADDRLP4 424
|
|
ASGNP4
|
|
line 139
|
|
;139: for (i = 0; i < numdirs; i++, dirptr += dirlen+1) {
|
|
ADDRLP4 140
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $140
|
|
JUMPV
|
|
LABELV $137
|
|
line 140
|
|
;140: dirlen = strlen(dirptr);
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 1452
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 144
|
|
ADDRLP4 1452
|
|
INDIRI4
|
|
ASGNI4
|
|
line 141
|
|
;141: strcpy(filename, "scripts/");
|
|
ADDRLP4 12
|
|
ARGP4
|
|
ADDRGP4 $141
|
|
ARGP4
|
|
ADDRGP4 strcpy
|
|
CALLP4
|
|
pop
|
|
line 142
|
|
;142: strcat(filename, dirptr);
|
|
ADDRLP4 12
|
|
ARGP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 strcat
|
|
CALLP4
|
|
pop
|
|
line 143
|
|
;143: UI_LoadArenasFromFile(filename);
|
|
ADDRLP4 12
|
|
ARGP4
|
|
ADDRGP4 UI_LoadArenasFromFile
|
|
CALLV
|
|
pop
|
|
line 144
|
|
;144: }
|
|
LABELV $138
|
|
line 139
|
|
ADDRLP4 1452
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRLP4 140
|
|
ADDRLP4 140
|
|
INDIRI4
|
|
ADDRLP4 1452
|
|
INDIRI4
|
|
ADDI4
|
|
ASGNI4
|
|
ADDRLP4 8
|
|
ADDRLP4 144
|
|
INDIRI4
|
|
ADDRLP4 1452
|
|
INDIRI4
|
|
ADDI4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ADDP4
|
|
ASGNP4
|
|
LABELV $140
|
|
ADDRLP4 140
|
|
INDIRI4
|
|
ADDRLP4 148
|
|
INDIRI4
|
|
LTI4 $137
|
|
line 145
|
|
;145: trap_Print( va( "%i arenas parsed\n", ui_numArenas ) );
|
|
ADDRGP4 $142
|
|
ARGP4
|
|
ADDRGP4 ui_numArenas
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 1456
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 1456
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_Print
|
|
CALLV
|
|
pop
|
|
line 146
|
|
;146: if (UI_OutOfMemory()) {
|
|
ADDRLP4 1460
|
|
ADDRGP4 UI_OutOfMemory
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 1460
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $143
|
|
line 147
|
|
;147: trap_Print(S_COLOR_YELLOW"WARNING: not anough memory in pool to load all arenas\n");
|
|
ADDRGP4 $145
|
|
ARGP4
|
|
ADDRGP4 trap_Print
|
|
CALLV
|
|
pop
|
|
line 148
|
|
;148: }
|
|
LABELV $143
|
|
line 150
|
|
;149:
|
|
;150: for( n = 0; n < ui_numArenas; n++ ) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $149
|
|
JUMPV
|
|
LABELV $146
|
|
line 153
|
|
;151: // determine type
|
|
;152:
|
|
;153: uiInfo.mapList[uiInfo.mapCount].cinematic = -1;
|
|
CNSTI4 100
|
|
ADDRGP4 uiInfo+83224
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 uiInfo+83228+24
|
|
ADDP4
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
line 154
|
|
;154: uiInfo.mapList[uiInfo.mapCount].mapLoadName = String_Alloc(Info_ValueForKey(ui_arenaInfos[n], "map"));
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 ui_arenaInfos
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $156
|
|
ARGP4
|
|
ADDRLP4 1464
|
|
ADDRGP4 Info_ValueForKey
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 1464
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 1468
|
|
ADDRGP4 String_Alloc
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 100
|
|
ADDRGP4 uiInfo+83224
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 uiInfo+83228+4
|
|
ADDP4
|
|
ADDRLP4 1468
|
|
INDIRP4
|
|
ASGNP4
|
|
line 155
|
|
;155: uiInfo.mapList[uiInfo.mapCount].mapName = String_Alloc(Info_ValueForKey(ui_arenaInfos[n], "longname"));
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 ui_arenaInfos
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $159
|
|
ARGP4
|
|
ADDRLP4 1472
|
|
ADDRGP4 Info_ValueForKey
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 1472
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 1476
|
|
ADDRGP4 String_Alloc
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 100
|
|
ADDRGP4 uiInfo+83224
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 uiInfo+83228
|
|
ADDP4
|
|
ADDRLP4 1476
|
|
INDIRP4
|
|
ASGNP4
|
|
line 156
|
|
;156: uiInfo.mapList[uiInfo.mapCount].levelShot = -1;
|
|
CNSTI4 100
|
|
ADDRGP4 uiInfo+83224
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 uiInfo+83228+92
|
|
ADDP4
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
line 157
|
|
;157: uiInfo.mapList[uiInfo.mapCount].imageName = String_Alloc(va("levelshots/%s", uiInfo.mapList[uiInfo.mapCount].mapLoadName));
|
|
ADDRGP4 $166
|
|
ARGP4
|
|
ADDRLP4 1480
|
|
CNSTI4 100
|
|
ASGNI4
|
|
ADDRLP4 1480
|
|
INDIRI4
|
|
ADDRGP4 uiInfo+83224
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 uiInfo+83228+4
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 1484
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 1484
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 1488
|
|
ADDRGP4 String_Alloc
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 1480
|
|
INDIRI4
|
|
ADDRGP4 uiInfo+83224
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 uiInfo+83228+8
|
|
ADDP4
|
|
ADDRLP4 1488
|
|
INDIRP4
|
|
ASGNP4
|
|
line 158
|
|
;158: uiInfo.mapList[uiInfo.mapCount].typeBits = 0;
|
|
CNSTI4 100
|
|
ADDRGP4 uiInfo+83224
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 uiInfo+83228+20
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 160
|
|
;159:
|
|
;160: type = Info_ValueForKey( ui_arenaInfos[n], "type" );
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 ui_arenaInfos
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $173
|
|
ARGP4
|
|
ADDRLP4 1492
|
|
ADDRGP4 Info_ValueForKey
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
ADDRLP4 1492
|
|
INDIRP4
|
|
ASGNP4
|
|
line 162
|
|
;161: // if no type specified, it will be treated as "ffa"
|
|
;162: if( *type ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
EQI4 $174
|
|
line 163
|
|
;163: if( strstr( type, "ffa" ) ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $178
|
|
ARGP4
|
|
ADDRLP4 1496
|
|
ADDRGP4 strstr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 1496
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $176
|
|
line 164
|
|
;164: uiInfo.mapList[uiInfo.mapCount].typeBits |= (1 << GT_FFA);
|
|
ADDRLP4 1500
|
|
CNSTI4 100
|
|
ADDRGP4 uiInfo+83224
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 uiInfo+83228+20
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1500
|
|
INDIRP4
|
|
ADDRLP4 1500
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
BORI4
|
|
ASGNI4
|
|
line 165
|
|
;165: }
|
|
LABELV $176
|
|
line 166
|
|
;166: if( strstr( type, "tourney" ) ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $184
|
|
ARGP4
|
|
ADDRLP4 1500
|
|
ADDRGP4 strstr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 1500
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $182
|
|
line 167
|
|
;167: uiInfo.mapList[uiInfo.mapCount].typeBits |= (1 << GT_TOURNAMENT);
|
|
ADDRLP4 1504
|
|
CNSTI4 100
|
|
ADDRGP4 uiInfo+83224
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 uiInfo+83228+20
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1504
|
|
INDIRP4
|
|
ADDRLP4 1504
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
BORI4
|
|
ASGNI4
|
|
line 168
|
|
;168: }
|
|
LABELV $182
|
|
line 169
|
|
;169: if( strstr( type, "ctf" ) ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $190
|
|
ARGP4
|
|
ADDRLP4 1504
|
|
ADDRGP4 strstr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 1504
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $188
|
|
line 170
|
|
;170: uiInfo.mapList[uiInfo.mapCount].typeBits |= (1 << GT_CTF);
|
|
ADDRLP4 1508
|
|
CNSTI4 100
|
|
ADDRGP4 uiInfo+83224
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 uiInfo+83228+20
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1508
|
|
INDIRP4
|
|
ADDRLP4 1508
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 16
|
|
BORI4
|
|
ASGNI4
|
|
line 171
|
|
;171: }
|
|
LABELV $188
|
|
line 172
|
|
;172: if( strstr( type, "oneflag" ) ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $196
|
|
ARGP4
|
|
ADDRLP4 1508
|
|
ADDRGP4 strstr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 1508
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $194
|
|
line 173
|
|
;173: uiInfo.mapList[uiInfo.mapCount].typeBits |= (1 << GT_1FCTF);
|
|
ADDRLP4 1512
|
|
CNSTI4 100
|
|
ADDRGP4 uiInfo+83224
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 uiInfo+83228+20
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1512
|
|
INDIRP4
|
|
ADDRLP4 1512
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 32
|
|
BORI4
|
|
ASGNI4
|
|
line 174
|
|
;174: }
|
|
LABELV $194
|
|
line 175
|
|
;175: if( strstr( type, "overload" ) ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $202
|
|
ARGP4
|
|
ADDRLP4 1512
|
|
ADDRGP4 strstr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 1512
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $200
|
|
line 176
|
|
;176: uiInfo.mapList[uiInfo.mapCount].typeBits |= (1 << GT_OBELISK);
|
|
ADDRLP4 1516
|
|
CNSTI4 100
|
|
ADDRGP4 uiInfo+83224
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 uiInfo+83228+20
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1516
|
|
INDIRP4
|
|
ADDRLP4 1516
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 64
|
|
BORI4
|
|
ASGNI4
|
|
line 177
|
|
;177: }
|
|
LABELV $200
|
|
line 178
|
|
;178: if( strstr( type, "harvester" ) ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $208
|
|
ARGP4
|
|
ADDRLP4 1516
|
|
ADDRGP4 strstr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 1516
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $175
|
|
line 179
|
|
;179: uiInfo.mapList[uiInfo.mapCount].typeBits |= (1 << GT_HARVESTER);
|
|
ADDRLP4 1520
|
|
CNSTI4 100
|
|
ADDRGP4 uiInfo+83224
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 uiInfo+83228+20
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1520
|
|
INDIRP4
|
|
ADDRLP4 1520
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 128
|
|
BORI4
|
|
ASGNI4
|
|
line 180
|
|
;180: }
|
|
line 181
|
|
;181: } else {
|
|
ADDRGP4 $175
|
|
JUMPV
|
|
LABELV $174
|
|
line 182
|
|
;182: uiInfo.mapList[uiInfo.mapCount].typeBits |= (1 << GT_FFA);
|
|
ADDRLP4 1496
|
|
CNSTI4 100
|
|
ADDRGP4 uiInfo+83224
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 uiInfo+83228+20
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1496
|
|
INDIRP4
|
|
ADDRLP4 1496
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
BORI4
|
|
ASGNI4
|
|
line 183
|
|
;183: }
|
|
LABELV $175
|
|
line 185
|
|
;184:
|
|
;185: uiInfo.mapCount++;
|
|
ADDRLP4 1496
|
|
ADDRGP4 uiInfo+83224
|
|
ASGNP4
|
|
ADDRLP4 1496
|
|
INDIRP4
|
|
ADDRLP4 1496
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 186
|
|
;186: if (uiInfo.mapCount >= MAX_MAPS) {
|
|
ADDRGP4 uiInfo+83224
|
|
INDIRI4
|
|
CNSTI4 128
|
|
LTI4 $216
|
|
line 187
|
|
;187: break;
|
|
ADDRGP4 $148
|
|
JUMPV
|
|
LABELV $216
|
|
line 189
|
|
;188: }
|
|
;189: }
|
|
LABELV $147
|
|
line 150
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $149
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 ui_numArenas
|
|
INDIRI4
|
|
LTI4 $146
|
|
LABELV $148
|
|
line 190
|
|
;190:}
|
|
LABELV $126
|
|
endproc UI_LoadArenas 1524 16
|
|
proc UI_LoadBotsFromFile 8216 16
|
|
line 198
|
|
;191:
|
|
;192:
|
|
;193:/*
|
|
;194:===============
|
|
;195:UI_LoadBotsFromFile
|
|
;196:===============
|
|
;197:*/
|
|
;198:static void UI_LoadBotsFromFile( char *filename ) {
|
|
line 203
|
|
;199: int len;
|
|
;200: fileHandle_t f;
|
|
;201: char buf[MAX_BOTS_TEXT];
|
|
;202:
|
|
;203: len = trap_FS_FOpenFile( filename, &f, FS_READ );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRLP4 8200
|
|
ADDRGP4 trap_FS_FOpenFile
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 8200
|
|
INDIRI4
|
|
ASGNI4
|
|
line 204
|
|
;204: if ( !f ) {
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $220
|
|
line 205
|
|
;205: trap_Print( va( S_COLOR_RED "file not found: %s\n", filename ) );
|
|
ADDRGP4 $122
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 8204
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 8204
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_Print
|
|
CALLV
|
|
pop
|
|
line 206
|
|
;206: return;
|
|
ADDRGP4 $219
|
|
JUMPV
|
|
LABELV $220
|
|
line 208
|
|
;207: }
|
|
;208: if ( len >= MAX_BOTS_TEXT ) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 8192
|
|
LTI4 $222
|
|
line 209
|
|
;209: trap_Print( va( S_COLOR_RED "file too large: %s is %i, max allowed is %i", filename, len, MAX_BOTS_TEXT ) );
|
|
ADDRGP4 $125
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
CNSTI4 8192
|
|
ARGI4
|
|
ADDRLP4 8204
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 8204
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_Print
|
|
CALLV
|
|
pop
|
|
line 210
|
|
;210: trap_FS_FCloseFile( f );
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 trap_FS_FCloseFile
|
|
CALLV
|
|
pop
|
|
line 211
|
|
;211: return;
|
|
ADDRGP4 $219
|
|
JUMPV
|
|
LABELV $222
|
|
line 214
|
|
;212: }
|
|
;213:
|
|
;214: trap_FS_Read( buf, len, f );
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 trap_FS_Read
|
|
CALLV
|
|
pop
|
|
line 215
|
|
;215: buf[len] = 0;
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
ADDP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 216
|
|
;216: trap_FS_FCloseFile( f );
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 trap_FS_FCloseFile
|
|
CALLV
|
|
pop
|
|
line 218
|
|
;217:
|
|
;218: COM_Compress(buf);
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRGP4 COM_Compress
|
|
CALLI4
|
|
pop
|
|
line 220
|
|
;219:
|
|
;220: ui_numBots += UI_ParseInfos( buf, MAX_BOTS - ui_numBots, &ui_botInfos[ui_numBots] );
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRLP4 8204
|
|
ADDRGP4 ui_numBots
|
|
ASGNP4
|
|
ADDRLP4 8208
|
|
ADDRLP4 8204
|
|
INDIRP4
|
|
INDIRI4
|
|
ASGNI4
|
|
CNSTI4 1024
|
|
ADDRLP4 8208
|
|
INDIRI4
|
|
SUBI4
|
|
ARGI4
|
|
ADDRLP4 8208
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 ui_botInfos
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 8212
|
|
ADDRGP4 UI_ParseInfos
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 8204
|
|
INDIRP4
|
|
ADDRLP4 8208
|
|
INDIRI4
|
|
ADDRLP4 8212
|
|
INDIRI4
|
|
ADDI4
|
|
ASGNI4
|
|
line 221
|
|
;221:}
|
|
LABELV $219
|
|
endproc UI_LoadBotsFromFile 8216 16
|
|
export UI_LoadBots
|
|
proc UI_LoadBots 1452 16
|
|
line 228
|
|
;222:
|
|
;223:/*
|
|
;224:===============
|
|
;225:UI_LoadBots
|
|
;226:===============
|
|
;227:*/
|
|
;228:void UI_LoadBots( void ) {
|
|
line 237
|
|
;229: vmCvar_t botsFile;
|
|
;230: int numdirs;
|
|
;231: char filename[128];
|
|
;232: char dirlist[1024];
|
|
;233: char* dirptr;
|
|
;234: int i;
|
|
;235: int dirlen;
|
|
;236:
|
|
;237: ui_numBots = 0;
|
|
ADDRGP4 ui_numBots
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 239
|
|
;238:
|
|
;239: trap_Cvar_Register( &botsFile, "g_botsFile", "", CVAR_INIT|CVAR_ROM );
|
|
ADDRLP4 144
|
|
ARGP4
|
|
ADDRGP4 $225
|
|
ARGP4
|
|
ADDRGP4 $129
|
|
ARGP4
|
|
CNSTI4 80
|
|
ARGI4
|
|
ADDRGP4 trap_Cvar_Register
|
|
CALLV
|
|
pop
|
|
line 240
|
|
;240: if( *botsFile.string ) {
|
|
ADDRLP4 144+16
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
EQI4 $226
|
|
line 241
|
|
;241: UI_LoadBotsFromFile(botsFile.string);
|
|
ADDRLP4 144+16
|
|
ARGP4
|
|
ADDRGP4 UI_LoadBotsFromFile
|
|
CALLV
|
|
pop
|
|
line 242
|
|
;242: }
|
|
ADDRGP4 $227
|
|
JUMPV
|
|
LABELV $226
|
|
line 243
|
|
;243: else {
|
|
line 244
|
|
;244: UI_LoadBotsFromFile("scripts/bots.txt");
|
|
ADDRGP4 $230
|
|
ARGP4
|
|
ADDRGP4 UI_LoadBotsFromFile
|
|
CALLV
|
|
pop
|
|
line 245
|
|
;245: }
|
|
LABELV $227
|
|
line 248
|
|
;246:
|
|
;247: // get all bots from .bot files
|
|
;248: numdirs = trap_FS_GetFileList("scripts", ".bot", dirlist, 1024 );
|
|
ADDRGP4 $135
|
|
ARGP4
|
|
ADDRGP4 $231
|
|
ARGP4
|
|
ADDRLP4 416
|
|
ARGP4
|
|
CNSTI4 1024
|
|
ARGI4
|
|
ADDRLP4 1440
|
|
ADDRGP4 trap_FS_GetFileList
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 140
|
|
ADDRLP4 1440
|
|
INDIRI4
|
|
ASGNI4
|
|
line 249
|
|
;249: dirptr = dirlist;
|
|
ADDRLP4 0
|
|
ADDRLP4 416
|
|
ASGNP4
|
|
line 250
|
|
;250: for (i = 0; i < numdirs; i++, dirptr += dirlen+1) {
|
|
ADDRLP4 132
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $235
|
|
JUMPV
|
|
LABELV $232
|
|
line 251
|
|
;251: dirlen = strlen(dirptr);
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 1444
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 136
|
|
ADDRLP4 1444
|
|
INDIRI4
|
|
ASGNI4
|
|
line 252
|
|
;252: strcpy(filename, "scripts/");
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRGP4 $141
|
|
ARGP4
|
|
ADDRGP4 strcpy
|
|
CALLP4
|
|
pop
|
|
line 253
|
|
;253: strcat(filename, dirptr);
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 strcat
|
|
CALLP4
|
|
pop
|
|
line 254
|
|
;254: UI_LoadBotsFromFile(filename);
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRGP4 UI_LoadBotsFromFile
|
|
CALLV
|
|
pop
|
|
line 255
|
|
;255: }
|
|
LABELV $233
|
|
line 250
|
|
ADDRLP4 1444
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRLP4 132
|
|
ADDRLP4 132
|
|
INDIRI4
|
|
ADDRLP4 1444
|
|
INDIRI4
|
|
ADDI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 136
|
|
INDIRI4
|
|
ADDRLP4 1444
|
|
INDIRI4
|
|
ADDI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDP4
|
|
ASGNP4
|
|
LABELV $235
|
|
ADDRLP4 132
|
|
INDIRI4
|
|
ADDRLP4 140
|
|
INDIRI4
|
|
LTI4 $232
|
|
line 256
|
|
;256: trap_Print( va( "%i bots parsed\n", ui_numBots ) );
|
|
ADDRGP4 $236
|
|
ARGP4
|
|
ADDRGP4 ui_numBots
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 1448
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 1448
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_Print
|
|
CALLV
|
|
pop
|
|
line 257
|
|
;257:}
|
|
LABELV $224
|
|
endproc UI_LoadBots 1452 16
|
|
export UI_GetBotInfoByNumber
|
|
proc UI_GetBotInfoByNumber 8 8
|
|
line 265
|
|
;258:
|
|
;259:
|
|
;260:/*
|
|
;261:===============
|
|
;262:UI_GetBotInfoByNumber
|
|
;263:===============
|
|
;264:*/
|
|
;265:char *UI_GetBotInfoByNumber( int num ) {
|
|
line 266
|
|
;266: if( num < 0 || num >= ui_numBots ) {
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 0
|
|
LTI4 $240
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 ui_numBots
|
|
INDIRI4
|
|
LTI4 $238
|
|
LABELV $240
|
|
line 267
|
|
;267: trap_Print( va( S_COLOR_RED "Invalid bot number: %i\n", num ) );
|
|
ADDRGP4 $241
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 4
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_Print
|
|
CALLV
|
|
pop
|
|
line 268
|
|
;268: return NULL;
|
|
CNSTP4 0
|
|
RETP4
|
|
ADDRGP4 $237
|
|
JUMPV
|
|
LABELV $238
|
|
line 270
|
|
;269: }
|
|
;270: return ui_botInfos[num];
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 ui_botInfos
|
|
ADDP4
|
|
INDIRP4
|
|
RETP4
|
|
LABELV $237
|
|
endproc UI_GetBotInfoByNumber 8 8
|
|
export UI_GetBotInfoByName
|
|
proc UI_GetBotInfoByName 16 8
|
|
line 279
|
|
;271:}
|
|
;272:
|
|
;273:
|
|
;274:/*
|
|
;275:===============
|
|
;276:UI_GetBotInfoByName
|
|
;277:===============
|
|
;278:*/
|
|
;279:char *UI_GetBotInfoByName( const char *name ) {
|
|
line 283
|
|
;280: int n;
|
|
;281: char *value;
|
|
;282:
|
|
;283: for ( n = 0; n < ui_numBots ; n++ ) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $246
|
|
JUMPV
|
|
LABELV $243
|
|
line 284
|
|
;284: value = Info_ValueForKey( ui_botInfos[n], "name" );
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 ui_botInfos
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $247
|
|
ARGP4
|
|
ADDRLP4 8
|
|
ADDRGP4 Info_ValueForKey
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
line 285
|
|
;285: if ( !Q_stricmp( value, name ) ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 12
|
|
ADDRGP4 Q_stricmp
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $248
|
|
line 286
|
|
;286: return ui_botInfos[n];
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 ui_botInfos
|
|
ADDP4
|
|
INDIRP4
|
|
RETP4
|
|
ADDRGP4 $242
|
|
JUMPV
|
|
LABELV $248
|
|
line 288
|
|
;287: }
|
|
;288: }
|
|
LABELV $244
|
|
line 283
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $246
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 ui_numBots
|
|
INDIRI4
|
|
LTI4 $243
|
|
line 290
|
|
;289:
|
|
;290: return NULL;
|
|
CNSTP4 0
|
|
RETP4
|
|
LABELV $242
|
|
endproc UI_GetBotInfoByName 16 8
|
|
export UI_GetNumBots
|
|
proc UI_GetNumBots 0 0
|
|
line 293
|
|
;291:}
|
|
;292:
|
|
;293:int UI_GetNumBots() {
|
|
line 294
|
|
;294: return ui_numBots;
|
|
ADDRGP4 ui_numBots
|
|
INDIRI4
|
|
RETI4
|
|
LABELV $250
|
|
endproc UI_GetNumBots 0 0
|
|
export UI_GetBotNameByNumber
|
|
proc UI_GetBotNameByNumber 12 8
|
|
line 298
|
|
;295:}
|
|
;296:
|
|
;297:
|
|
;298:char *UI_GetBotNameByNumber( int num ) {
|
|
line 299
|
|
;299: char *info = UI_GetBotInfoByNumber(num);
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 4
|
|
ADDRGP4 UI_GetBotInfoByNumber
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 300
|
|
;300: if (info) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $252
|
|
line 301
|
|
;301: return Info_ValueForKey( info, "name" );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $247
|
|
ARGP4
|
|
ADDRLP4 8
|
|
ADDRGP4 Info_ValueForKey
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
RETP4
|
|
ADDRGP4 $251
|
|
JUMPV
|
|
LABELV $252
|
|
line 303
|
|
;302: }
|
|
;303: return "Sarge";
|
|
ADDRGP4 $254
|
|
RETP4
|
|
LABELV $251
|
|
endproc UI_GetBotNameByNumber 12 8
|
|
bss
|
|
align 4
|
|
LABELV ui_numSpecialSinglePlayerArenas
|
|
skip 4
|
|
align 4
|
|
LABELV ui_numSinglePlayerArenas
|
|
skip 4
|
|
align 4
|
|
LABELV ui_arenaInfos
|
|
skip 4096
|
|
align 4
|
|
LABELV ui_numArenas
|
|
skip 4
|
|
align 4
|
|
LABELV ui_botInfos
|
|
skip 4096
|
|
export ui_numBots
|
|
align 4
|
|
LABELV ui_numBots
|
|
skip 4
|
|
import UI_RankStatusMenu
|
|
import RankStatus_Cache
|
|
import UI_SignupMenu
|
|
import Signup_Cache
|
|
import UI_LoginMenu
|
|
import Login_Cache
|
|
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_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_R_RemapShader
|
|
import trap_RealTime
|
|
import trap_CIN_SetExtents
|
|
import trap_CIN_DrawCinematic
|
|
import trap_CIN_RunCinematic
|
|
import trap_CIN_StopCinematic
|
|
import trap_CIN_PlayCinematic
|
|
import trap_S_StartBackgroundTrack
|
|
import trap_S_StopBackgroundTrack
|
|
import trap_R_RegisterFont
|
|
import trap_SetCDKey
|
|
import trap_GetCDKey
|
|
import trap_MemoryRemaining
|
|
import trap_LAN_CompareServers
|
|
import trap_LAN_ServerStatus
|
|
import trap_LAN_ResetPings
|
|
import trap_LAN_RemoveServer
|
|
import trap_LAN_AddServer
|
|
import trap_LAN_UpdateVisiblePings
|
|
import trap_LAN_ServerIsVisible
|
|
import trap_LAN_MarkServerVisible
|
|
import trap_LAN_SaveCachedServers
|
|
import trap_LAN_LoadCachedServers
|
|
import trap_LAN_GetPingInfo
|
|
import trap_LAN_GetPing
|
|
import trap_LAN_ClearPing
|
|
import trap_LAN_GetPingQueueCount
|
|
import trap_LAN_GetServerPing
|
|
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_ModelBounds
|
|
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 UI_LoadBestScores
|
|
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_DrawSides
|
|
import UI_DrawTopBottom
|
|
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 uiInfo
|
|
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 ArenaServers_Cache
|
|
import UI_ArenaServersMenu
|
|
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 UI_ClearScores
|
|
import UI_ShowPostGame
|
|
import UI_AdjustTimeByGame
|
|
import _UI_SetActiveMenu
|
|
import UI_LoadMenus
|
|
import UI_Load
|
|
import UI_Report
|
|
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_serverStatusTimeOut
|
|
import ui_bigFont
|
|
import ui_smallFont
|
|
import ui_scoreTime
|
|
import ui_scoreShutoutBonus
|
|
import ui_scoreSkillBonus
|
|
import ui_scoreTimeBonus
|
|
import ui_scoreBase
|
|
import ui_scoreTeam
|
|
import ui_scorePerfect
|
|
import ui_scoreScore
|
|
import ui_scoreGauntlets
|
|
import ui_scoreAssists
|
|
import ui_scoreDefends
|
|
import ui_scoreExcellents
|
|
import ui_scoreImpressives
|
|
import ui_scoreAccuracy
|
|
import ui_singlePlayerActive
|
|
import ui_lastServerRefresh_3
|
|
import ui_lastServerRefresh_2
|
|
import ui_lastServerRefresh_1
|
|
import ui_lastServerRefresh_0
|
|
import ui_selectedPlayerName
|
|
import ui_selectedPlayer
|
|
import ui_currentOpponent
|
|
import ui_mapIndex
|
|
import ui_currentNetMap
|
|
import ui_currentMap
|
|
import ui_currentTier
|
|
import ui_menuFiles
|
|
import ui_opponentName
|
|
import ui_dedicated
|
|
import ui_serverFilterType
|
|
import ui_netSource
|
|
import ui_joinGameType
|
|
import ui_actualNetGameType
|
|
import ui_netGameType
|
|
import ui_gameType
|
|
import ui_fragLimit
|
|
import ui_captureLimit
|
|
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 trap_PC_SourceFileAndLine
|
|
import trap_PC_ReadToken
|
|
import trap_PC_FreeSource
|
|
import trap_PC_LoadSource
|
|
import trap_PC_AddGlobalDefine
|
|
import Controls_SetDefaults
|
|
import Controls_SetConfig
|
|
import Controls_GetConfig
|
|
import UI_OutOfMemory
|
|
import UI_InitMemory
|
|
import UI_Alloc
|
|
import Display_CacheAll
|
|
import Menu_SetFeederSelection
|
|
import Menu_Paint
|
|
import Menus_CloseAll
|
|
import LerpColor
|
|
import Display_HandleKey
|
|
import Menus_CloseByName
|
|
import Menus_ShowByName
|
|
import Menus_FindByName
|
|
import Menus_OpenByName
|
|
import Display_KeyBindPending
|
|
import Display_CursorType
|
|
import Display_MouseMove
|
|
import Display_CaptureItem
|
|
import Display_GetContext
|
|
import Menus_Activate
|
|
import Menus_AnyFullScreenVisible
|
|
import Menu_Reset
|
|
import Menus_ActivateByName
|
|
import Menu_PaintAll
|
|
import Menu_New
|
|
import Menu_Count
|
|
import PC_Script_Parse
|
|
import PC_String_Parse
|
|
import PC_Rect_Parse
|
|
import PC_Int_Parse
|
|
import PC_Color_Parse
|
|
import PC_Float_Parse
|
|
import Script_Parse
|
|
import String_Parse
|
|
import Rect_Parse
|
|
import Int_Parse
|
|
import Color_Parse
|
|
import Float_Parse
|
|
import Menu_ScrollFeeder
|
|
import Menu_HandleMouseMove
|
|
import Menu_HandleKey
|
|
import Menu_GetFocused
|
|
import Menu_PostParse
|
|
import Item_Init
|
|
import Menu_Init
|
|
import Display_ExpandMacros
|
|
import Init_Display
|
|
import String_Report
|
|
import String_Init
|
|
import String_Alloc
|
|
import 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 ClipAmountForAmmo
|
|
import ClipAmountForReload
|
|
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 $254
|
|
byte 1 83
|
|
byte 1 97
|
|
byte 1 114
|
|
byte 1 103
|
|
byte 1 101
|
|
byte 1 0
|
|
align 1
|
|
LABELV $247
|
|
byte 1 110
|
|
byte 1 97
|
|
byte 1 109
|
|
byte 1 101
|
|
byte 1 0
|
|
align 1
|
|
LABELV $241
|
|
byte 1 94
|
|
byte 1 49
|
|
byte 1 73
|
|
byte 1 110
|
|
byte 1 118
|
|
byte 1 97
|
|
byte 1 108
|
|
byte 1 105
|
|
byte 1 100
|
|
byte 1 32
|
|
byte 1 98
|
|
byte 1 111
|
|
byte 1 116
|
|
byte 1 32
|
|
byte 1 110
|
|
byte 1 117
|
|
byte 1 109
|
|
byte 1 98
|
|
byte 1 101
|
|
byte 1 114
|
|
byte 1 58
|
|
byte 1 32
|
|
byte 1 37
|
|
byte 1 105
|
|
byte 1 10
|
|
byte 1 0
|
|
align 1
|
|
LABELV $236
|
|
byte 1 37
|
|
byte 1 105
|
|
byte 1 32
|
|
byte 1 98
|
|
byte 1 111
|
|
byte 1 116
|
|
byte 1 115
|
|
byte 1 32
|
|
byte 1 112
|
|
byte 1 97
|
|
byte 1 114
|
|
byte 1 115
|
|
byte 1 101
|
|
byte 1 100
|
|
byte 1 10
|
|
byte 1 0
|
|
align 1
|
|
LABELV $231
|
|
byte 1 46
|
|
byte 1 98
|
|
byte 1 111
|
|
byte 1 116
|
|
byte 1 0
|
|
align 1
|
|
LABELV $230
|
|
byte 1 115
|
|
byte 1 99
|
|
byte 1 114
|
|
byte 1 105
|
|
byte 1 112
|
|
byte 1 116
|
|
byte 1 115
|
|
byte 1 47
|
|
byte 1 98
|
|
byte 1 111
|
|
byte 1 116
|
|
byte 1 115
|
|
byte 1 46
|
|
byte 1 116
|
|
byte 1 120
|
|
byte 1 116
|
|
byte 1 0
|
|
align 1
|
|
LABELV $225
|
|
byte 1 103
|
|
byte 1 95
|
|
byte 1 98
|
|
byte 1 111
|
|
byte 1 116
|
|
byte 1 115
|
|
byte 1 70
|
|
byte 1 105
|
|
byte 1 108
|
|
byte 1 101
|
|
byte 1 0
|
|
align 1
|
|
LABELV $208
|
|
byte 1 104
|
|
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 $202
|
|
byte 1 111
|
|
byte 1 118
|
|
byte 1 101
|
|
byte 1 114
|
|
byte 1 108
|
|
byte 1 111
|
|
byte 1 97
|
|
byte 1 100
|
|
byte 1 0
|
|
align 1
|
|
LABELV $196
|
|
byte 1 111
|
|
byte 1 110
|
|
byte 1 101
|
|
byte 1 102
|
|
byte 1 108
|
|
byte 1 97
|
|
byte 1 103
|
|
byte 1 0
|
|
align 1
|
|
LABELV $190
|
|
byte 1 99
|
|
byte 1 116
|
|
byte 1 102
|
|
byte 1 0
|
|
align 1
|
|
LABELV $184
|
|
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 $178
|
|
byte 1 102
|
|
byte 1 102
|
|
byte 1 97
|
|
byte 1 0
|
|
align 1
|
|
LABELV $173
|
|
byte 1 116
|
|
byte 1 121
|
|
byte 1 112
|
|
byte 1 101
|
|
byte 1 0
|
|
align 1
|
|
LABELV $166
|
|
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 0
|
|
align 1
|
|
LABELV $159
|
|
byte 1 108
|
|
byte 1 111
|
|
byte 1 110
|
|
byte 1 103
|
|
byte 1 110
|
|
byte 1 97
|
|
byte 1 109
|
|
byte 1 101
|
|
byte 1 0
|
|
align 1
|
|
LABELV $156
|
|
byte 1 109
|
|
byte 1 97
|
|
byte 1 112
|
|
byte 1 0
|
|
align 1
|
|
LABELV $145
|
|
byte 1 94
|
|
byte 1 51
|
|
byte 1 87
|
|
byte 1 65
|
|
byte 1 82
|
|
byte 1 78
|
|
byte 1 73
|
|
byte 1 78
|
|
byte 1 71
|
|
byte 1 58
|
|
byte 1 32
|
|
byte 1 110
|
|
byte 1 111
|
|
byte 1 116
|
|
byte 1 32
|
|
byte 1 97
|
|
byte 1 110
|
|
byte 1 111
|
|
byte 1 117
|
|
byte 1 103
|
|
byte 1 104
|
|
byte 1 32
|
|
byte 1 109
|
|
byte 1 101
|
|
byte 1 109
|
|
byte 1 111
|
|
byte 1 114
|
|
byte 1 121
|
|
byte 1 32
|
|
byte 1 105
|
|
byte 1 110
|
|
byte 1 32
|
|
byte 1 112
|
|
byte 1 111
|
|
byte 1 111
|
|
byte 1 108
|
|
byte 1 32
|
|
byte 1 116
|
|
byte 1 111
|
|
byte 1 32
|
|
byte 1 108
|
|
byte 1 111
|
|
byte 1 97
|
|
byte 1 100
|
|
byte 1 32
|
|
byte 1 97
|
|
byte 1 108
|
|
byte 1 108
|
|
byte 1 32
|
|
byte 1 97
|
|
byte 1 114
|
|
byte 1 101
|
|
byte 1 110
|
|
byte 1 97
|
|
byte 1 115
|
|
byte 1 10
|
|
byte 1 0
|
|
align 1
|
|
LABELV $142
|
|
byte 1 37
|
|
byte 1 105
|
|
byte 1 32
|
|
byte 1 97
|
|
byte 1 114
|
|
byte 1 101
|
|
byte 1 110
|
|
byte 1 97
|
|
byte 1 115
|
|
byte 1 32
|
|
byte 1 112
|
|
byte 1 97
|
|
byte 1 114
|
|
byte 1 115
|
|
byte 1 101
|
|
byte 1 100
|
|
byte 1 10
|
|
byte 1 0
|
|
align 1
|
|
LABELV $141
|
|
byte 1 115
|
|
byte 1 99
|
|
byte 1 114
|
|
byte 1 105
|
|
byte 1 112
|
|
byte 1 116
|
|
byte 1 115
|
|
byte 1 47
|
|
byte 1 0
|
|
align 1
|
|
LABELV $136
|
|
byte 1 46
|
|
byte 1 97
|
|
byte 1 114
|
|
byte 1 101
|
|
byte 1 110
|
|
byte 1 97
|
|
byte 1 0
|
|
align 1
|
|
LABELV $135
|
|
byte 1 115
|
|
byte 1 99
|
|
byte 1 114
|
|
byte 1 105
|
|
byte 1 112
|
|
byte 1 116
|
|
byte 1 115
|
|
byte 1 0
|
|
align 1
|
|
LABELV $134
|
|
byte 1 115
|
|
byte 1 99
|
|
byte 1 114
|
|
byte 1 105
|
|
byte 1 112
|
|
byte 1 116
|
|
byte 1 115
|
|
byte 1 47
|
|
byte 1 97
|
|
byte 1 114
|
|
byte 1 101
|
|
byte 1 110
|
|
byte 1 97
|
|
byte 1 115
|
|
byte 1 46
|
|
byte 1 116
|
|
byte 1 120
|
|
byte 1 116
|
|
byte 1 0
|
|
align 1
|
|
LABELV $129
|
|
byte 1 0
|
|
align 1
|
|
LABELV $128
|
|
byte 1 103
|
|
byte 1 95
|
|
byte 1 97
|
|
byte 1 114
|
|
byte 1 101
|
|
byte 1 110
|
|
byte 1 97
|
|
byte 1 115
|
|
byte 1 70
|
|
byte 1 105
|
|
byte 1 108
|
|
byte 1 101
|
|
byte 1 0
|
|
align 1
|
|
LABELV $125
|
|
byte 1 94
|
|
byte 1 49
|
|
byte 1 102
|
|
byte 1 105
|
|
byte 1 108
|
|
byte 1 101
|
|
byte 1 32
|
|
byte 1 116
|
|
byte 1 111
|
|
byte 1 111
|
|
byte 1 32
|
|
byte 1 108
|
|
byte 1 97
|
|
byte 1 114
|
|
byte 1 103
|
|
byte 1 101
|
|
byte 1 58
|
|
byte 1 32
|
|
byte 1 37
|
|
byte 1 115
|
|
byte 1 32
|
|
byte 1 105
|
|
byte 1 115
|
|
byte 1 32
|
|
byte 1 37
|
|
byte 1 105
|
|
byte 1 44
|
|
byte 1 32
|
|
byte 1 109
|
|
byte 1 97
|
|
byte 1 120
|
|
byte 1 32
|
|
byte 1 97
|
|
byte 1 108
|
|
byte 1 108
|
|
byte 1 111
|
|
byte 1 119
|
|
byte 1 101
|
|
byte 1 100
|
|
byte 1 32
|
|
byte 1 105
|
|
byte 1 115
|
|
byte 1 32
|
|
byte 1 37
|
|
byte 1 105
|
|
byte 1 0
|
|
align 1
|
|
LABELV $122
|
|
byte 1 94
|
|
byte 1 49
|
|
byte 1 102
|
|
byte 1 105
|
|
byte 1 108
|
|
byte 1 101
|
|
byte 1 32
|
|
byte 1 110
|
|
byte 1 111
|
|
byte 1 116
|
|
byte 1 32
|
|
byte 1 102
|
|
byte 1 111
|
|
byte 1 117
|
|
byte 1 110
|
|
byte 1 100
|
|
byte 1 58
|
|
byte 1 32
|
|
byte 1 37
|
|
byte 1 115
|
|
byte 1 10
|
|
byte 1 0
|
|
align 1
|
|
LABELV $116
|
|
byte 1 37
|
|
byte 1 100
|
|
byte 1 0
|
|
align 1
|
|
LABELV $115
|
|
byte 1 92
|
|
byte 1 110
|
|
byte 1 117
|
|
byte 1 109
|
|
byte 1 92
|
|
byte 1 0
|
|
align 1
|
|
LABELV $114
|
|
byte 1 60
|
|
byte 1 78
|
|
byte 1 85
|
|
byte 1 76
|
|
byte 1 76
|
|
byte 1 62
|
|
byte 1 0
|
|
align 1
|
|
LABELV $111
|
|
byte 1 125
|
|
byte 1 0
|
|
align 1
|
|
LABELV $108
|
|
byte 1 85
|
|
byte 1 110
|
|
byte 1 101
|
|
byte 1 120
|
|
byte 1 112
|
|
byte 1 101
|
|
byte 1 99
|
|
byte 1 116
|
|
byte 1 101
|
|
byte 1 100
|
|
byte 1 32
|
|
byte 1 101
|
|
byte 1 110
|
|
byte 1 100
|
|
byte 1 32
|
|
byte 1 111
|
|
byte 1 102
|
|
byte 1 32
|
|
byte 1 105
|
|
byte 1 110
|
|
byte 1 102
|
|
byte 1 111
|
|
byte 1 32
|
|
byte 1 102
|
|
byte 1 105
|
|
byte 1 108
|
|
byte 1 101
|
|
byte 1 10
|
|
byte 1 0
|
|
align 1
|
|
LABELV $102
|
|
byte 1 77
|
|
byte 1 97
|
|
byte 1 120
|
|
byte 1 32
|
|
byte 1 105
|
|
byte 1 110
|
|
byte 1 102
|
|
byte 1 111
|
|
byte 1 115
|
|
byte 1 32
|
|
byte 1 101
|
|
byte 1 120
|
|
byte 1 99
|
|
byte 1 101
|
|
byte 1 101
|
|
byte 1 100
|
|
byte 1 101
|
|
byte 1 100
|
|
byte 1 10
|
|
byte 1 0
|
|
align 1
|
|
LABELV $99
|
|
byte 1 77
|
|
byte 1 105
|
|
byte 1 115
|
|
byte 1 115
|
|
byte 1 105
|
|
byte 1 110
|
|
byte 1 103
|
|
byte 1 32
|
|
byte 1 123
|
|
byte 1 32
|
|
byte 1 105
|
|
byte 1 110
|
|
byte 1 32
|
|
byte 1 105
|
|
byte 1 110
|
|
byte 1 102
|
|
byte 1 111
|
|
byte 1 32
|
|
byte 1 102
|
|
byte 1 105
|
|
byte 1 108
|
|
byte 1 101
|
|
byte 1 10
|
|
byte 1 0
|
|
align 1
|
|
LABELV $98
|
|
byte 1 123
|
|
byte 1 0
|