data
export gWPRenderTime
align 4
LABELV gWPRenderTime
byte 4 0
export gDeactivated
align 4
LABELV gDeactivated
byte 4 0
export gBotEdit
align 4
LABELV gBotEdit
byte 4 0
export gWPRenderedFrame
align 4
LABELV gWPRenderedFrame
byte 4 0
export gWPNum
align 4
LABELV gWPNum
byte 4 0
export gLastPrintedIndex
align 4
LABELV gLastPrintedIndex
byte 4 -1
export gLevelFlags
align 4
LABELV gLevelFlags
byte 4 0
export GetFlagStr
code
proc GetFlagStr 12 8
file "../ai_wpnav.c"
line 20
;1:#include "g_local.h"
;2:#include "q_shared.h"
;3:#include "botlib.h"
;4:#include "ai_main.h"
;5:
;6:float gWPRenderTime = 0;
;7:float gDeactivated = 0;
;8:float gBotEdit = 0;
;9:int gWPRenderedFrame = 0;
;10:wpobject_t *gWPArray[MAX_WPARRAY_SIZE];
;11:int gWPNum = 0;
;12:int gLastPrintedIndex = -1;
;13:
;14:nodeobject_t nodetable[MAX_NODETABLE_SIZE];
;15:int nodenum; //so we can connect broken trails
;16:
;17:int gLevelFlags = 0;
;18:
;19:char *GetFlagStr( int flags )
;20:{
line 24
;21:	char *flagstr;
;22:	int i;
;23:
;24:	flagstr = (char *)B_TempAlloc(128);
CNSTI4 128
ARGI4
ADDRLP4 8
ADDRGP4 B_TempAlloc
CALLP4
ASGNP4
ADDRLP4 4
ADDRLP4 8
INDIRP4
ASGNP4
line 25
;25:	i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 27
;26:
;27:	if (!flags)
ADDRFP4 0
INDIRI4
CNSTI4 0
NEI4 $93
line 28
;28:	{
line 29
;29:		strcpy(flagstr, "none\0");
ADDRLP4 4
INDIRP4
ARGP4
ADDRGP4 $95
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 30
;30:		goto fend;
ADDRGP4 $96
JUMPV
LABELV $93
line 33
;31:	}
;32:
;33:	if (flags & WPFLAG_JUMP)
ADDRFP4 0
INDIRI4
CNSTI4 16
BANDI4
CNSTI4 0
EQI4 $97
line 34
;34:	{
line 35
;35:		flagstr[i] = 'j';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 106
ASGNI1
line 36
;36:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 37
;37:	}
LABELV $97
line 39
;38:
;39:	if (flags & WPFLAG_DUCK)
ADDRFP4 0
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $99
line 40
;40:	{
line 41
;41:		flagstr[i] = 'd';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 100
ASGNI1
line 42
;42:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 43
;43:	}
LABELV $99
line 45
;44:
;45:	if (flags & WPFLAG_SNIPEORCAMPSTAND)
ADDRFP4 0
INDIRI4
CNSTI4 2048
BANDI4
CNSTI4 0
EQI4 $101
line 46
;46:	{
line 47
;47:		flagstr[i] = 'c';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 99
ASGNI1
line 48
;48:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 49
;49:	}
LABELV $101
line 51
;50:
;51:	if (flags & WPFLAG_WAITFORFUNC)
ADDRFP4 0
INDIRI4
CNSTI4 4096
BANDI4
CNSTI4 0
EQI4 $103
line 52
;52:	{
line 53
;53:		flagstr[i] = 'f';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 102
ASGNI1
line 54
;54:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 55
;55:	}
LABELV $103
line 57
;56:
;57:	if (flags & WPFLAG_SNIPEORCAMP)
ADDRFP4 0
INDIRI4
CNSTI4 8192
BANDI4
CNSTI4 0
EQI4 $105
line 58
;58:	{
line 59
;59:		flagstr[i] = 's';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 115
ASGNI1
line 60
;60:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 61
;61:	}
LABELV $105
line 63
;62:
;63:	if (flags & WPFLAG_ONEWAY_FWD)
ADDRFP4 0
INDIRI4
CNSTI4 16384
BANDI4
CNSTI4 0
EQI4 $107
line 64
;64:	{
line 65
;65:		flagstr[i] = 'x';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 120
ASGNI1
line 66
;66:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 67
;67:	}
LABELV $107
line 69
;68:
;69:	if (flags & WPFLAG_ONEWAY_BACK)
ADDRFP4 0
INDIRI4
CNSTI4 32768
BANDI4
CNSTI4 0
EQI4 $109
line 70
;70:	{
line 71
;71:		flagstr[i] = 'y';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 121
ASGNI1
line 72
;72:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 73
;73:	}
LABELV $109
line 75
;74:
;75:	if (flags & WPFLAG_GOALPOINT)
ADDRFP4 0
INDIRI4
CNSTI4 65536
BANDI4
CNSTI4 0
EQI4 $111
line 76
;76:	{
line 77
;77:		flagstr[i] = 'g';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 103
ASGNI1
line 78
;78:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 79
;79:	}
LABELV $111
line 81
;80:
;81:	if (flags & WPFLAG_NOVIS)
ADDRFP4 0
INDIRI4
CNSTI4 1024
BANDI4
CNSTI4 0
EQI4 $113
line 82
;82:	{
line 83
;83:		flagstr[i] = 'n';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 110
ASGNI1
line 84
;84:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 85
;85:	}
LABELV $113
line 87
;86:
;87:	if (flags & WPFLAG_NOMOVEFUNC)
ADDRFP4 0
INDIRI4
CNSTI4 2097152
BANDI4
CNSTI4 0
EQI4 $115
line 88
;88:	{
line 89
;89:		flagstr[i] = 'm';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 109
ASGNI1
line 90
;90:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 91
;91:	}
LABELV $115
line 93
;92:
;93:	if (flags & WPFLAG_RED_FLAG)
ADDRFP4 0
INDIRI4
CNSTI4 131072
BANDI4
CNSTI4 0
EQI4 $117
line 94
;94:	{
line 95
;95:		if (i)
ADDRLP4 0
INDIRI4
CNSTI4 0
EQI4 $119
line 96
;96:		{
line 97
;97:			flagstr[i] = ' ';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 32
ASGNI1
line 98
;98:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 99
;99:		}
LABELV $119
line 100
;100:		flagstr[i] = 'r';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 114
ASGNI1
line 101
;101:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 102
;102:		flagstr[i] = 'e';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 101
ASGNI1
line 103
;103:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 104
;104:		flagstr[i] = 'd';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 100
ASGNI1
line 105
;105:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 106
;106:		flagstr[i] = ' ';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 32
ASGNI1
line 107
;107:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 108
;108:		flagstr[i] = 'f';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 102
ASGNI1
line 109
;109:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 110
;110:		flagstr[i] = 'l';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 108
ASGNI1
line 111
;111:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 112
;112:		flagstr[i] = 'a';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 97
ASGNI1
line 113
;113:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 114
;114:		flagstr[i] = 'g';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 103
ASGNI1
line 115
;115:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 116
;116:	}
LABELV $117
line 118
;117:
;118:	if (flags & WPFLAG_BLUE_FLAG)
ADDRFP4 0
INDIRI4
CNSTI4 262144
BANDI4
CNSTI4 0
EQI4 $121
line 119
;119:	{
line 120
;120:		if (i)
ADDRLP4 0
INDIRI4
CNSTI4 0
EQI4 $123
line 121
;121:		{
line 122
;122:			flagstr[i] = ' ';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 32
ASGNI1
line 123
;123:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 124
;124:		}
LABELV $123
line 125
;125:		flagstr[i] = 'b';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 98
ASGNI1
line 126
;126:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 127
;127:		flagstr[i] = 'l';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 108
ASGNI1
line 128
;128:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 129
;129:		flagstr[i] = 'u';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 117
ASGNI1
line 130
;130:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 131
;131:		flagstr[i] = 'e';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 101
ASGNI1
line 132
;132:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 133
;133:		flagstr[i] = ' ';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 32
ASGNI1
line 134
;134:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 135
;135:		flagstr[i] = 'f';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 102
ASGNI1
line 136
;136:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 137
;137:		flagstr[i] = 'l';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 108
ASGNI1
line 138
;138:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 139
;139:		flagstr[i] = 'a';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 97
ASGNI1
line 140
;140:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 141
;141:		flagstr[i] = 'g';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 103
ASGNI1
line 142
;142:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 143
;143:	}
LABELV $121
line 145
;144:
;145:	if (flags & WPFLAG_SAGA_IMPERIALOBJ)
ADDRFP4 0
INDIRI4
CNSTI4 1048576
BANDI4
CNSTI4 0
EQI4 $125
line 146
;146:	{
line 147
;147:		if (i)
ADDRLP4 0
INDIRI4
CNSTI4 0
EQI4 $127
line 148
;148:		{
line 149
;149:			flagstr[i] = ' ';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 32
ASGNI1
line 150
;150:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 151
;151:		}
LABELV $127
line 152
;152:		flagstr[i] = 's';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 115
ASGNI1
line 153
;153:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 154
;154:		flagstr[i] = 'a';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 97
ASGNI1
line 155
;155:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 156
;156:		flagstr[i] = 'g';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 103
ASGNI1
line 157
;157:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 158
;158:		flagstr[i] = 'a';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 97
ASGNI1
line 159
;159:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 160
;160:		flagstr[i] = '_';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 95
ASGNI1
line 161
;161:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 162
;162:		flagstr[i] = 'i';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 105
ASGNI1
line 163
;163:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 164
;164:		flagstr[i] = 'm';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 109
ASGNI1
line 165
;165:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 166
;166:		flagstr[i] = 'p';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 112
ASGNI1
line 167
;167:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 168
;168:	}
LABELV $125
line 170
;169:
;170:	if (flags & WPFLAG_SAGA_REBELOBJ)
ADDRFP4 0
INDIRI4
CNSTI4 524288
BANDI4
CNSTI4 0
EQI4 $129
line 171
;171:	{
line 172
;172:		if (i)
ADDRLP4 0
INDIRI4
CNSTI4 0
EQI4 $131
line 173
;173:		{
line 174
;174:			flagstr[i] = ' ';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 32
ASGNI1
line 175
;175:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 176
;176:		}
LABELV $131
line 177
;177:		flagstr[i] = 's';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 115
ASGNI1
line 178
;178:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 179
;179:		flagstr[i] = 'a';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 97
ASGNI1
line 180
;180:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 181
;181:		flagstr[i] = 'g';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 103
ASGNI1
line 182
;182:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 183
;183:		flagstr[i] = 'a';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 97
ASGNI1
line 184
;184:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 185
;185:		flagstr[i] = '_';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 95
ASGNI1
line 186
;186:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 187
;187:		flagstr[i] = 'r';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 114
ASGNI1
line 188
;188:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 189
;189:		flagstr[i] = 'e';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 101
ASGNI1
line 190
;190:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 191
;191:		flagstr[i] = 'b';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 98
ASGNI1
line 192
;192:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 193
;193:	}
LABELV $129
line 195
;194:
;195:	flagstr[i] = '\0';
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
CNSTI1 0
ASGNI1
line 197
;196:
;197:	if (i == 0)
ADDRLP4 0
INDIRI4
CNSTI4 0
NEI4 $133
line 198
;198:	{
line 199
;199:		strcpy(flagstr, "unknown\0");
ADDRLP4 4
INDIRP4
ARGP4
ADDRGP4 $135
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 200
;200:	}
LABELV $133
LABELV $96
line 203
;201:
;202:fend:
;203:	return flagstr;
ADDRLP4 4
INDIRP4
RETP4
LABELV $92
endproc GetFlagStr 12 8
export G_TestLine
proc G_TestLine 12 8
line 207
;204:}
;205:
;206:void G_TestLine(vec3_t start, vec3_t end, int color, int time)
;207:{
line 210
;208:	gentity_t *te;
;209:
;210:	te = G_TempEntity( start, EV_TESTLINE );
ADDRFP4 0
INDIRP4
ARGP4
CNSTI4 99
ARGI4
ADDRLP4 4
ADDRGP4 G_TempEntity
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 4
INDIRP4
ASGNP4
line 211
;211:	VectorCopy(start, te->s.origin);
ADDRLP4 0
INDIRP4
CNSTI4 92
ADDP4
ADDRFP4 0
INDIRP4
INDIRB
ASGNB 12
line 212
;212:	VectorCopy(end, te->s.origin2);
ADDRLP4 0
INDIRP4
CNSTI4 104
ADDP4
ADDRFP4 4
INDIRP4
INDIRB
ASGNB 12
line 213
;213:	te->s.time2 = time;
ADDRLP4 0
INDIRP4
CNSTI4 88
ADDP4
ADDRFP4 12
INDIRI4
ASGNI4
line 214
;214:	te->s.weapon = color;
ADDRLP4 0
INDIRP4
CNSTI4 276
ADDP4
ADDRFP4 8
INDIRI4
ASGNI4
line 215
;215:	te->r.svFlags |= SVF_BROADCAST;
ADDRLP4 8
ADDRLP4 0
INDIRP4
CNSTI4 304
ADDP4
ASGNP4
ADDRLP4 8
INDIRP4
ADDRLP4 8
INDIRP4
INDIRI4
CNSTI4 32
BORI4
ASGNI4
line 216
;216:}
LABELV $136
endproc G_TestLine 12 8
export BotWaypointRender
proc BotWaypointRender 88 32
line 219
;217:
;218:void BotWaypointRender(void)
;219:{
line 231
;220:	int i, n;
;221:	int inc_checker;
;222:	int bestindex;
;223:	int gotbestindex;
;224:	float bestdist;
;225:	float checkdist;
;226:	gentity_t *plum;
;227:	gentity_t *viewent;
;228:	char *flagstr;
;229:	vec3_t a;
;230:
;231:	if (!gBotEdit)
ADDRGP4 gBotEdit
INDIRF4
CNSTF4 0
NEF4 $138
line 232
;232:	{
line 233
;233:		return;
ADDRGP4 $137
JUMPV
LABELV $138
line 236
;234:	}
;235:
;236:	bestindex = 0;
ADDRLP4 36
CNSTI4 0
ASGNI4
line 238
;237:
;238:	if (gWPRenderTime > level.time)
ADDRGP4 gWPRenderTime
INDIRF4
ADDRGP4 level+32
INDIRI4
CVIF4 4
LEF4 $140
line 239
;239:	{
line 240
;240:		goto checkprint;
ADDRGP4 $143
JUMPV
LABELV $140
line 243
;241:	}
;242:
;243:	gWPRenderTime = level.time + 100;
ADDRGP4 gWPRenderTime
ADDRGP4 level+32
INDIRI4
CNSTI4 100
ADDI4
CVIF4 4
ASGNF4
line 245
;244:
;245:	i = gWPRenderedFrame;
ADDRLP4 0
ADDRGP4 gWPRenderedFrame
INDIRI4
ASGNI4
line 246
;246:	inc_checker = gWPRenderedFrame;
ADDRLP4 32
ADDRGP4 gWPRenderedFrame
INDIRI4
ASGNI4
ADDRGP4 $146
JUMPV
LABELV $145
line 249
;247:
;248:	while (i < gWPNum)
;249:	{
line 250
;250:		if (gWPArray[i] && gWPArray[i]->inuse)
ADDRLP4 52
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 52
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $148
ADDRLP4 52
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $148
line 251
;251:		{
line 252
;252:			plum = G_TempEntity( gWPArray[i]->origin, EV_SCOREPLUM );
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ARGP4
CNSTI4 86
ARGI4
ADDRLP4 56
ADDRGP4 G_TempEntity
CALLP4
ASGNP4
ADDRLP4 24
ADDRLP4 56
INDIRP4
ASGNP4
line 253
;253:			plum->r.svFlags |= SVF_BROADCAST;
ADDRLP4 60
ADDRLP4 24
INDIRP4
CNSTI4 304
ADDP4
ASGNP4
ADDRLP4 60
INDIRP4
ADDRLP4 60
INDIRP4
INDIRI4
CNSTI4 32
BORI4
ASGNI4
line 254
;254:			plum->s.time = i;
ADDRLP4 24
INDIRP4
CNSTI4 84
ADDP4
ADDRLP4 0
INDIRI4
ASGNI4
line 256
;255:			
;256:			n = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRGP4 $151
JUMPV
LABELV $150
line 259
;257:
;258:			while (n < gWPArray[i]->neighbornum)
;259:			{
line 260
;260:				if (gWPArray[i]->neighbors[n].forceJumpTo && gWPArray[gWPArray[i]->neighbors[n].num])
ADDRLP4 64
CNSTI4 2
ASGNI4
ADDRLP4 68
ADDRGP4 gWPArray
ASGNP4
ADDRLP4 72
ADDRLP4 4
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 0
INDIRI4
ADDRLP4 64
INDIRI4
LSHI4
ADDRLP4 68
INDIRP4
ADDP4
INDIRP4
CNSTI4 44
ADDP4
ADDP4
ASGNP4
ADDRLP4 72
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
CNSTI4 0
EQI4 $153
ADDRLP4 72
INDIRP4
INDIRI4
ADDRLP4 64
INDIRI4
LSHI4
ADDRLP4 68
INDIRP4
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $153
line 261
;261:				{
line 262
;262:					G_TestLine(gWPArray[i]->origin, gWPArray[gWPArray[i]->neighbors[n].num]->origin, 0x0000ff, 5000);
ADDRLP4 76
CNSTI4 2
ASGNI4
ADDRLP4 80
ADDRGP4 gWPArray
ASGNP4
ADDRLP4 84
ADDRLP4 0
INDIRI4
ADDRLP4 76
INDIRI4
LSHI4
ADDRLP4 80
INDIRP4
ADDP4
INDIRP4
ASGNP4
ADDRLP4 84
INDIRP4
ARGP4
ADDRLP4 4
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 84
INDIRP4
CNSTI4 44
ADDP4
ADDP4
INDIRI4
ADDRLP4 76
INDIRI4
LSHI4
ADDRLP4 80
INDIRP4
ADDP4
INDIRP4
ARGP4
CNSTI4 255
ARGI4
CNSTI4 5000
ARGI4
ADDRGP4 G_TestLine
CALLV
pop
line 263
;263:				}
LABELV $153
line 264
;264:				n++;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 265
;265:			}
LABELV $151
line 258
ADDRLP4 4
INDIRI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
LTI4 $150
line 267
;266:
;267:			gWPRenderedFrame++;
ADDRLP4 64
ADDRGP4 gWPRenderedFrame
ASGNP4
ADDRLP4 64
INDIRP4
ADDRLP4 64
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 268
;268:		}
ADDRGP4 $149
JUMPV
LABELV $148
line 270
;269:		else
;270:		{
line 271
;271:			gWPRenderedFrame = 0;
ADDRGP4 gWPRenderedFrame
CNSTI4 0
ASGNI4
line 272
;272:			break;
ADDRGP4 $147
JUMPV
LABELV $149
line 275
;273:		}
;274:
;275:		if ((i - inc_checker) > 4)
ADDRLP4 0
INDIRI4
ADDRLP4 32
INDIRI4
SUBI4
CNSTI4 4
LEI4 $155
line 276
;276:		{
line 277
;277:			break; //don't render too many at once
ADDRGP4 $147
JUMPV
LABELV $155
line 279
;278:		}
;279:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 280
;280:	}
LABELV $146
line 248
ADDRLP4 0
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $145
LABELV $147
line 282
;281:
;282:	if (i >= gWPNum)
ADDRLP4 0
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $157
line 283
;283:	{
line 284
;284:		gWPRenderTime = level.time + 1500; //wait a bit after we finish doing the whole trail
ADDRGP4 gWPRenderTime
ADDRGP4 level+32
INDIRI4
CNSTI4 1500
ADDI4
CVIF4 4
ASGNF4
line 285
;285:		gWPRenderedFrame = 0;
ADDRGP4 gWPRenderedFrame
CNSTI4 0
ASGNI4
line 286
;286:	}
LABELV $157
LABELV $143
line 290
;287:
;288:checkprint:
;289:
;290:	if (!bot_wp_info.value)
ADDRGP4 bot_wp_info+8
INDIRF4
CNSTF4 0
NEF4 $160
line 291
;291:	{
line 292
;292:		return;
ADDRGP4 $137
JUMPV
LABELV $160
line 295
;293:	}
;294:
;295:	viewent = &g_entities[0]; //only show info to the first client
ADDRLP4 20
ADDRGP4 g_entities
ASGNP4
line 297
;296:
;297:	if (!viewent || !viewent->client)
ADDRLP4 56
CNSTU4 0
ASGNU4
ADDRLP4 20
INDIRP4
CVPU4 4
ADDRLP4 56
INDIRU4
EQU4 $165
ADDRLP4 20
INDIRP4
CNSTI4 408
ADDP4
INDIRP4
CVPU4 4
ADDRLP4 56
INDIRU4
NEU4 $163
LABELV $165
line 298
;298:	{ //client isn't in the game yet?
line 299
;299:		return;
ADDRGP4 $137
JUMPV
LABELV $163
line 302
;300:	}
;301:
;302:	bestdist = 256; //max distance for showing point info
ADDRLP4 40
CNSTF4 1132462080
ASGNF4
line 303
;303:	gotbestindex = 0;
ADDRLP4 44
CNSTI4 0
ASGNI4
line 305
;304:
;305:	i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $167
JUMPV
LABELV $166
line 308
;306:
;307:	while (i < gWPNum)
;308:	{
line 309
;309:		if (gWPArray[i] && gWPArray[i]->inuse)
ADDRLP4 60
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 60
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $169
ADDRLP4 60
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $169
line 310
;310:		{
line 311
;311:			VectorSubtract(viewent->client->ps.origin, gWPArray[i]->origin, a);
ADDRLP4 64
ADDRLP4 20
INDIRP4
CNSTI4 408
ADDP4
ASGNP4
ADDRLP4 68
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
ASGNP4
ADDRLP4 8
ADDRLP4 64
INDIRP4
INDIRP4
CNSTI4 20
ADDP4
INDIRF4
ADDRLP4 68
INDIRP4
INDIRP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 8+4
ADDRLP4 64
INDIRP4
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
ADDRLP4 68
INDIRP4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 8+8
ADDRLP4 20
INDIRP4
CNSTI4 408
ADDP4
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
SUBF4
ASGNF4
line 313
;312:
;313:			checkdist = VectorLength(a);
ADDRLP4 8
ARGP4
ADDRLP4 72
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 28
ADDRLP4 72
INDIRF4
ASGNF4
line 315
;314:
;315:			if (checkdist < bestdist)
ADDRLP4 28
INDIRF4
ADDRLP4 40
INDIRF4
GEF4 $173
line 316
;316:			{
line 317
;317:				bestdist = checkdist;
ADDRLP4 40
ADDRLP4 28
INDIRF4
ASGNF4
line 318
;318:				bestindex = i;
ADDRLP4 36
ADDRLP4 0
INDIRI4
ASGNI4
line 319
;319:				gotbestindex = 1;
ADDRLP4 44
CNSTI4 1
ASGNI4
line 320
;320:			}
LABELV $173
line 321
;321:		}
LABELV $169
line 322
;322:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 323
;323:	}
LABELV $167
line 307
ADDRLP4 0
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $166
line 325
;324:
;325:	if (gotbestindex && bestindex != gLastPrintedIndex)
ADDRLP4 44
INDIRI4
CNSTI4 0
EQI4 $175
ADDRLP4 36
INDIRI4
ADDRGP4 gLastPrintedIndex
INDIRI4
EQI4 $175
line 326
;326:	{
line 327
;327:		flagstr = GetFlagStr(gWPArray[bestindex]->flags);
ADDRLP4 36
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
INDIRI4
ARGI4
ADDRLP4 60
ADDRGP4 GetFlagStr
CALLP4
ASGNP4
ADDRLP4 48
ADDRLP4 60
INDIRP4
ASGNP4
line 328
;328:		gLastPrintedIndex = bestindex;
ADDRGP4 gLastPrintedIndex
ADDRLP4 36
INDIRI4
ASGNI4
line 329
;329:		G_Printf(S_COLOR_YELLOW "Waypoint %i\nFlags - %i (%s) (w%f)\nOrigin - (%i %i %i)\n", (int)(gWPArray[bestindex]->index), (int)(gWPArray[bestindex]->flags), flagstr, gWPArray[bestindex]->weight, (int)(gWPArray[bestindex]->origin[0]), (int)(gWPArray[bestindex]->origin[1]), (int)(gWPArray[bestindex]->origin[2]));
ADDRGP4 $177
ARGP4
ADDRLP4 64
ADDRLP4 36
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 64
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
ARGI4
ADDRLP4 64
INDIRP4
CNSTI4 28
ADDP4
INDIRI4
ARGI4
ADDRLP4 48
INDIRP4
ARGP4
ADDRLP4 64
INDIRP4
CNSTI4 20
ADDP4
INDIRF4
ARGF4
ADDRLP4 64
INDIRP4
INDIRF4
CVFI4 4
ARGI4
ADDRLP4 64
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
CVFI4 4
ARGI4
ADDRLP4 64
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
CVFI4 4
ARGI4
ADDRGP4 G_Printf
CALLV
pop
line 331
;330:		//GetFlagStr allocates 128 bytes for this, if it's changed then obviously this must be as well
;331:		B_TempFree(128); //flagstr
CNSTI4 128
ARGI4
ADDRGP4 B_TempFree
CALLV
pop
line 333
;332:
;333:		plum = G_TempEntity( gWPArray[bestindex]->origin, EV_SCOREPLUM );
ADDRLP4 36
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ARGP4
CNSTI4 86
ARGI4
ADDRLP4 68
ADDRGP4 G_TempEntity
CALLP4
ASGNP4
ADDRLP4 24
ADDRLP4 68
INDIRP4
ASGNP4
line 334
;334:		plum->r.svFlags |= SVF_BROADCAST;
ADDRLP4 72
ADDRLP4 24
INDIRP4
CNSTI4 304
ADDP4
ASGNP4
ADDRLP4 72
INDIRP4
ADDRLP4 72
INDIRP4
INDIRI4
CNSTI4 32
BORI4
ASGNI4
line 335
;335:		plum->s.time = bestindex; //render it once
ADDRLP4 24
INDIRP4
CNSTI4 84
ADDP4
ADDRLP4 36
INDIRI4
ASGNI4
line 336
;336:	}
ADDRGP4 $176
JUMPV
LABELV $175
line 337
;337:	else if (!gotbestindex)
ADDRLP4 44
INDIRI4
CNSTI4 0
NEI4 $178
line 338
;338:	{
line 339
;339:		gLastPrintedIndex = -1;
ADDRGP4 gLastPrintedIndex
CNSTI4 -1
ASGNI4
line 340
;340:	}
LABELV $178
LABELV $176
line 341
;341:}
LABELV $137
endproc BotWaypointRender 88 32
export TransferWPData
proc TransferWPData 84 4
line 344
;342:
;343:void TransferWPData(int from, int to)
;344:{
line 345
;345:	if (!gWPArray[to])
ADDRFP4 4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $181
line 346
;346:	{
line 347
;347:		gWPArray[to] = (wpobject_t *)B_Alloc(sizeof(wpobject_t));
CNSTI4 300
ARGI4
ADDRLP4 0
ADDRGP4 B_Alloc
CALLP4
ASGNP4
ADDRFP4 4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
ADDRLP4 0
INDIRP4
ASGNP4
line 348
;348:	}
LABELV $181
line 350
;349:
;350:	if (!gWPArray[to])
ADDRFP4 4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $183
line 351
;351:	{
line 352
;352:		G_Printf(S_COLOR_RED "FATAL ERROR: Could not allocated memory for waypoint\n");
ADDRGP4 $185
ARGP4
ADDRGP4 G_Printf
CALLV
pop
line 353
;353:	}
LABELV $183
line 355
;354:
;355:	gWPArray[to]->flags = gWPArray[from]->flags;
ADDRLP4 0
CNSTI4 2
ASGNI4
ADDRLP4 4
ADDRGP4 gWPArray
ASGNP4
ADDRLP4 8
CNSTI4 28
ASGNI4
ADDRFP4 4
INDIRI4
ADDRLP4 0
INDIRI4
LSHI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
ADDRFP4 0
INDIRI4
ADDRLP4 0
INDIRI4
LSHI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 356
;356:	gWPArray[to]->weight = gWPArray[from]->weight;
ADDRLP4 12
CNSTI4 2
ASGNI4
ADDRLP4 16
ADDRGP4 gWPArray
ASGNP4
ADDRLP4 20
CNSTI4 20
ASGNI4
ADDRFP4 4
INDIRI4
ADDRLP4 12
INDIRI4
LSHI4
ADDRLP4 16
INDIRP4
ADDP4
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
ADDRFP4 0
INDIRI4
ADDRLP4 12
INDIRI4
LSHI4
ADDRLP4 16
INDIRP4
ADDP4
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
INDIRF4
ASGNF4
line 357
;357:	gWPArray[to]->associated_entity = gWPArray[from]->associated_entity;
ADDRLP4 24
CNSTI4 2
ASGNI4
ADDRLP4 28
ADDRGP4 gWPArray
ASGNP4
ADDRLP4 32
CNSTI4 32
ASGNI4
ADDRFP4 4
INDIRI4
ADDRLP4 24
INDIRI4
LSHI4
ADDRLP4 28
INDIRP4
ADDP4
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
ADDRFP4 0
INDIRI4
ADDRLP4 24
INDIRI4
LSHI4
ADDRLP4 28
INDIRP4
ADDP4
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 358
;358:	gWPArray[to]->disttonext = gWPArray[from]->disttonext;
ADDRLP4 36
CNSTI4 2
ASGNI4
ADDRLP4 40
ADDRGP4 gWPArray
ASGNP4
ADDRLP4 44
CNSTI4 24
ASGNI4
ADDRFP4 4
INDIRI4
ADDRLP4 36
INDIRI4
LSHI4
ADDRLP4 40
INDIRP4
ADDP4
INDIRP4
ADDRLP4 44
INDIRI4
ADDP4
ADDRFP4 0
INDIRI4
ADDRLP4 36
INDIRI4
LSHI4
ADDRLP4 40
INDIRP4
ADDP4
INDIRP4
ADDRLP4 44
INDIRI4
ADDP4
INDIRF4
ASGNF4
line 359
;359:	gWPArray[to]->forceJumpTo = gWPArray[from]->forceJumpTo;
ADDRLP4 48
CNSTI4 2
ASGNI4
ADDRLP4 52
ADDRGP4 gWPArray
ASGNP4
ADDRLP4 56
CNSTI4 36
ASGNI4
ADDRFP4 4
INDIRI4
ADDRLP4 48
INDIRI4
LSHI4
ADDRLP4 52
INDIRP4
ADDP4
INDIRP4
ADDRLP4 56
INDIRI4
ADDP4
ADDRFP4 0
INDIRI4
ADDRLP4 48
INDIRI4
LSHI4
ADDRLP4 52
INDIRP4
ADDP4
INDIRP4
ADDRLP4 56
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 360
;360:	gWPArray[to]->index = to;
ADDRLP4 60
ADDRFP4 4
INDIRI4
ASGNI4
ADDRLP4 60
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 16
ADDP4
ADDRLP4 60
INDIRI4
ASGNI4
line 361
;361:	gWPArray[to]->inuse = gWPArray[from]->inuse;
ADDRLP4 64
CNSTI4 2
ASGNI4
ADDRLP4 68
ADDRGP4 gWPArray
ASGNP4
ADDRLP4 72
CNSTI4 12
ASGNI4
ADDRFP4 4
INDIRI4
ADDRLP4 64
INDIRI4
LSHI4
ADDRLP4 68
INDIRP4
ADDP4
INDIRP4
ADDRLP4 72
INDIRI4
ADDP4
ADDRFP4 0
INDIRI4
ADDRLP4 64
INDIRI4
LSHI4
ADDRLP4 68
INDIRP4
ADDP4
INDIRP4
ADDRLP4 72
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 362
;362:	VectorCopy(gWPArray[from]->origin, gWPArray[to]->origin);
ADDRLP4 76
CNSTI4 2
ASGNI4
ADDRLP4 80
ADDRGP4 gWPArray
ASGNP4
ADDRFP4 4
INDIRI4
ADDRLP4 76
INDIRI4
LSHI4
ADDRLP4 80
INDIRP4
ADDP4
INDIRP4
ADDRFP4 0
INDIRI4
ADDRLP4 76
INDIRI4
LSHI4
ADDRLP4 80
INDIRP4
ADDP4
INDIRP4
INDIRB
ASGNB 12
line 363
;363:}
LABELV $180
endproc TransferWPData 84 4
export CreateNewWP
proc CreateNewWP 8 8
line 366
;364:
;365:void CreateNewWP(vec3_t origin, int flags)
;366:{
line 367
;367:	if (gWPNum >= MAX_WPARRAY_SIZE)
ADDRGP4 gWPNum
INDIRI4
CNSTI4 4096
LTI4 $187
line 368
;368:	{
line 369
;369:		G_Printf(S_COLOR_YELLOW "Warning: Waypoint limit hit (%i)\n", MAX_WPARRAY_SIZE);
ADDRGP4 $189
ARGP4
CNSTI4 4096
ARGI4
ADDRGP4 G_Printf
CALLV
pop
line 370
;370:		return;
ADDRGP4 $186
JUMPV
LABELV $187
line 373
;371:	}
;372:
;373:	if (!gWPArray[gWPNum])
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $190
line 374
;374:	{
line 375
;375:		gWPArray[gWPNum] = (wpobject_t *)B_Alloc(sizeof(wpobject_t));
CNSTI4 300
ARGI4
ADDRLP4 0
ADDRGP4 B_Alloc
CALLP4
ASGNP4
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
ADDRLP4 0
INDIRP4
ASGNP4
line 376
;376:	}
LABELV $190
line 378
;377:
;378:	if (!gWPArray[gWPNum])
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $192
line 379
;379:	{
line 380
;380:		G_Printf(S_COLOR_RED "ERROR: Could not allocated memory for waypoint\n");
ADDRGP4 $194
ARGP4
ADDRGP4 G_Printf
CALLV
pop
line 381
;381:	}
LABELV $192
line 383
;382:
;383:	gWPArray[gWPNum]->flags = flags;
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
ADDRFP4 4
INDIRI4
ASGNI4
line 384
;384:	gWPArray[gWPNum]->weight = 0; //calculated elsewhere
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 20
ADDP4
CNSTF4 0
ASGNF4
line 385
;385:	gWPArray[gWPNum]->associated_entity = ENTITYNUM_NONE; //set elsewhere
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 32
ADDP4
CNSTI4 1023
ASGNI4
line 386
;386:	gWPArray[gWPNum]->forceJumpTo = 0;
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 36
ADDP4
CNSTI4 0
ASGNI4
line 387
;387:	gWPArray[gWPNum]->disttonext = 0; //calculated elsewhere
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 24
ADDP4
CNSTF4 0
ASGNF4
line 388
;388:	gWPArray[gWPNum]->index = gWPNum;
ADDRLP4 0
ADDRGP4 gWPNum
INDIRI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 16
ADDP4
ADDRLP4 0
INDIRI4
ASGNI4
line 389
;389:	gWPArray[gWPNum]->inuse = 1;
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 12
ADDP4
CNSTI4 1
ASGNI4
line 390
;390:	VectorCopy(origin, gWPArray[gWPNum]->origin);
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRFP4 0
INDIRP4
INDIRB
ASGNB 12
line 391
;391:	gWPNum++;
ADDRLP4 4
ADDRGP4 gWPNum
ASGNP4
ADDRLP4 4
INDIRP4
ADDRLP4 4
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 392
;392:}
LABELV $186
endproc CreateNewWP 8 8
export CreateNewWP_FromObject
proc CreateNewWP_FromObject 52 4
line 395
;393:
;394:void CreateNewWP_FromObject(wpobject_t *wp)
;395:{
line 398
;396:	int i;
;397:
;398:	if (gWPNum >= MAX_WPARRAY_SIZE)
ADDRGP4 gWPNum
INDIRI4
CNSTI4 4096
LTI4 $196
line 399
;399:	{
line 400
;400:		return;
ADDRGP4 $195
JUMPV
LABELV $196
line 403
;401:	}
;402:
;403:	if (!gWPArray[gWPNum])
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $198
line 404
;404:	{
line 405
;405:		gWPArray[gWPNum] = (wpobject_t *)B_Alloc(sizeof(wpobject_t));
CNSTI4 300
ARGI4
ADDRLP4 4
ADDRGP4 B_Alloc
CALLP4
ASGNP4
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
ADDRLP4 4
INDIRP4
ASGNP4
line 406
;406:	}
LABELV $198
line 408
;407:
;408:	if (!gWPArray[gWPNum])
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $200
line 409
;409:	{
line 410
;410:		G_Printf(S_COLOR_RED "ERROR: Could not allocated memory for waypoint\n");
ADDRGP4 $194
ARGP4
ADDRGP4 G_Printf
CALLV
pop
line 411
;411:	}
LABELV $200
line 413
;412:
;413:	gWPArray[gWPNum]->flags = wp->flags;
ADDRLP4 4
CNSTI4 28
ASGNI4
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 414
;414:	gWPArray[gWPNum]->weight = wp->weight;
ADDRLP4 8
CNSTI4 20
ASGNI4
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
INDIRF4
ASGNF4
line 415
;415:	gWPArray[gWPNum]->associated_entity = wp->associated_entity;
ADDRLP4 12
CNSTI4 32
ASGNI4
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 416
;416:	gWPArray[gWPNum]->disttonext = wp->disttonext;
ADDRLP4 16
CNSTI4 24
ASGNI4
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRLP4 16
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 16
INDIRI4
ADDP4
INDIRF4
ASGNF4
line 417
;417:	gWPArray[gWPNum]->forceJumpTo = wp->forceJumpTo;
ADDRLP4 20
CNSTI4 36
ASGNI4
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 418
;418:	gWPArray[gWPNum]->index = gWPNum;
ADDRLP4 24
ADDRGP4 gWPNum
INDIRI4
ASGNI4
ADDRLP4 24
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 16
ADDP4
ADDRLP4 24
INDIRI4
ASGNI4
line 419
;419:	gWPArray[gWPNum]->inuse = 1;
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 12
ADDP4
CNSTI4 1
ASGNI4
line 420
;420:	VectorCopy(wp->origin, gWPArray[gWPNum]->origin);
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRFP4 0
INDIRP4
INDIRB
ASGNB 12
line 421
;421:	gWPArray[gWPNum]->neighbornum = wp->neighbornum;
ADDRLP4 28
CNSTI4 40
ASGNI4
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRLP4 28
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 28
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 423
;422:
;423:	i = wp->neighbornum;
ADDRLP4 0
ADDRFP4 0
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ASGNI4
ADDRGP4 $203
JUMPV
LABELV $202
line 426
;424:
;425:	while (i >= 0)
;426:	{
line 427
;427:		gWPArray[gWPNum]->neighbors[i].num = wp->neighbors[i].num;
ADDRLP4 32
ADDRLP4 0
INDIRI4
CNSTI4 3
LSHI4
ASGNI4
ADDRLP4 36
CNSTI4 44
ASGNI4
ADDRLP4 32
INDIRI4
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
ADDP4
ADDRLP4 32
INDIRI4
ADDRFP4 0
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
ADDP4
INDIRI4
ASGNI4
line 428
;428:		gWPArray[gWPNum]->neighbors[i].forceJumpTo = wp->neighbors[i].forceJumpTo;
ADDRLP4 40
ADDRLP4 0
INDIRI4
CNSTI4 3
LSHI4
ASGNI4
ADDRLP4 44
CNSTI4 44
ASGNI4
ADDRLP4 48
CNSTI4 4
ASGNI4
ADDRLP4 40
INDIRI4
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRLP4 44
INDIRI4
ADDP4
ADDP4
ADDRLP4 48
INDIRI4
ADDP4
ADDRLP4 40
INDIRI4
ADDRFP4 0
INDIRP4
ADDRLP4 44
INDIRI4
ADDP4
ADDP4
ADDRLP4 48
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 430
;429:
;430:		i--;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
SUBI4
ASGNI4
line 431
;431:	}
LABELV $203
line 425
ADDRLP4 0
INDIRI4
CNSTI4 0
GEI4 $202
line 433
;432:
;433:	if (gWPArray[gWPNum]->flags & WPFLAG_RED_FLAG)
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
INDIRI4
CNSTI4 131072
BANDI4
CNSTI4 0
EQI4 $205
line 434
;434:	{
line 435
;435:		flagRed = gWPArray[gWPNum];
ADDRGP4 flagRed
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
line 436
;436:		oFlagRed = flagRed;
ADDRGP4 oFlagRed
ADDRGP4 flagRed
INDIRP4
ASGNP4
line 437
;437:	}
ADDRGP4 $206
JUMPV
LABELV $205
line 438
;438:	else if (gWPArray[gWPNum]->flags & WPFLAG_BLUE_FLAG)
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
INDIRI4
CNSTI4 262144
BANDI4
CNSTI4 0
EQI4 $207
line 439
;439:	{
line 440
;440:		flagBlue = gWPArray[gWPNum];
ADDRGP4 flagBlue
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
line 441
;441:		oFlagBlue = flagBlue;
ADDRGP4 oFlagBlue
ADDRGP4 flagBlue
INDIRP4
ASGNP4
line 442
;442:	}
LABELV $207
LABELV $206
line 444
;443:
;444:	gWPNum++;
ADDRLP4 32
ADDRGP4 gWPNum
ASGNP4
ADDRLP4 32
INDIRP4
ADDRLP4 32
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 445
;445:}
LABELV $195
endproc CreateNewWP_FromObject 52 4
export RemoveWP
proc RemoveWP 8 12
line 448
;446:
;447:void RemoveWP(void)
;448:{
line 449
;449:	if (gWPNum <= 0)
ADDRGP4 gWPNum
INDIRI4
CNSTI4 0
GTI4 $210
line 450
;450:	{
line 451
;451:		return;
ADDRGP4 $209
JUMPV
LABELV $210
line 454
;452:	}
;453:
;454:	gWPNum--;
ADDRLP4 0
ADDRGP4 gWPNum
ASGNP4
ADDRLP4 0
INDIRP4
ADDRLP4 0
INDIRP4
INDIRI4
CNSTI4 1
SUBI4
ASGNI4
line 456
;455:
;456:	if (!gWPArray[gWPNum] || !gWPArray[gWPNum]->inuse)
ADDRLP4 4
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $214
ADDRLP4 4
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
NEI4 $212
LABELV $214
line 457
;457:	{
line 458
;458:		return;
ADDRGP4 $209
JUMPV
LABELV $212
line 462
;459:	}
;460:
;461:	//B_Free((wpobject_t *)gWPArray[gWPNum]);
;462:	if (gWPArray[gWPNum])
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $215
line 463
;463:	{
line 464
;464:		memset( gWPArray[gWPNum], 0, sizeof(gWPArray[gWPNum]) );
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 4
ARGI4
ADDRGP4 memset
CALLP4
pop
line 465
;465:	}
LABELV $215
line 469
;466:
;467:	//gWPArray[gWPNum] = NULL;
;468:
;469:	if (gWPArray[gWPNum])
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $217
line 470
;470:	{
line 471
;471:		gWPArray[gWPNum]->inuse = 0;
ADDRGP4 gWPNum
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 12
ADDP4
CNSTI4 0
ASGNI4
line 472
;472:	}
LABELV $217
line 473
;473:}
LABELV $209
endproc RemoveWP 8 12
export RemoveWP_InTrail
proc RemoveWP_InTrail 28 12
line 476
;474:
;475:void RemoveWP_InTrail(int afterindex)
;476:{
line 482
;477:	int foundindex;
;478:	int foundanindex;
;479:	int didchange;
;480:	int i;
;481:
;482:	foundindex = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
line 483
;483:	foundanindex = 0;
ADDRLP4 12
CNSTI4 0
ASGNI4
line 484
;484:	didchange = 0;
ADDRLP4 8
CNSTI4 0
ASGNI4
line 485
;485:	i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 487
;486:
;487:	if (afterindex < 0 || afterindex >= gWPNum)
ADDRLP4 16
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 16
INDIRI4
CNSTI4 0
LTI4 $222
ADDRLP4 16
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $225
LABELV $222
line 488
;488:	{
line 489
;489:		G_Printf(S_COLOR_YELLOW "Waypoint number %i does not exist\n", afterindex);
ADDRGP4 $223
ARGP4
ADDRFP4 0
INDIRI4
ARGI4
ADDRGP4 G_Printf
CALLV
pop
line 490
;490:		return;
ADDRGP4 $219
JUMPV
LABELV $224
line 494
;491:	}
;492:
;493:	while (i < gWPNum)
;494:	{
line 495
;495:		if (gWPArray[i] && gWPArray[i]->inuse && gWPArray[i]->index == afterindex)
ADDRLP4 20
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $227
ADDRLP4 20
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $227
ADDRLP4 20
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
ADDRFP4 0
INDIRI4
NEI4 $227
line 496
;496:		{
line 497
;497:			foundindex = i;
ADDRLP4 4
ADDRLP4 0
INDIRI4
ASGNI4
line 498
;498:			foundanindex = 1;
ADDRLP4 12
CNSTI4 1
ASGNI4
line 499
;499:			break;
ADDRGP4 $226
JUMPV
LABELV $227
line 502
;500:		}
;501:
;502:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 503
;503:	}
LABELV $225
line 493
ADDRLP4 0
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $224
LABELV $226
line 505
;504:
;505:	if (!foundanindex)
ADDRLP4 12
INDIRI4
CNSTI4 0
NEI4 $229
line 506
;506:	{
line 507
;507:		G_Printf(S_COLOR_YELLOW "Waypoint index %i should exist, but does not (?)\n", afterindex);
ADDRGP4 $231
ARGP4
ADDRFP4 0
INDIRI4
ARGI4
ADDRGP4 G_Printf
CALLV
pop
line 508
;508:		return;
ADDRGP4 $219
JUMPV
LABELV $229
line 511
;509:	}
;510:
;511:	i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $233
JUMPV
LABELV $232
line 514
;512:
;513:	while (i <= gWPNum)
;514:	{
line 515
;515:		if (gWPArray[i] && gWPArray[i]->index == foundindex)
ADDRLP4 20
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $235
ADDRLP4 20
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
ADDRLP4 4
INDIRI4
NEI4 $235
line 516
;516:		{
line 520
;517:			//B_Free(gWPArray[i]);
;518:
;519:			//Keep reusing the memory
;520:			memset( gWPArray[i], 0, sizeof(gWPArray[i]) );
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 4
ARGI4
ADDRGP4 memset
CALLP4
pop
line 523
;521:
;522:			//gWPArray[i] = NULL;
;523:			gWPArray[i]->inuse = 0;
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 12
ADDP4
CNSTI4 0
ASGNI4
line 524
;524:			didchange = 1;
ADDRLP4 8
CNSTI4 1
ASGNI4
line 525
;525:		}
ADDRGP4 $236
JUMPV
LABELV $235
line 526
;526:		else if (gWPArray[i] && didchange)
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $237
ADDRLP4 8
INDIRI4
CNSTI4 0
EQI4 $237
line 527
;527:		{
line 528
;528:			TransferWPData(i, i-1);
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 0
INDIRI4
CNSTI4 1
SUBI4
ARGI4
ADDRGP4 TransferWPData
CALLV
pop
line 532
;529:			//B_Free(gWPArray[i]);
;530:
;531:			//Keep reusing the memory
;532:			memset( gWPArray[i], 0, sizeof(gWPArray[i]) );
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 4
ARGI4
ADDRGP4 memset
CALLP4
pop
line 535
;533:
;534:			//gWPArray[i] = NULL;
;535:			gWPArray[i]->inuse = 0;
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 12
ADDP4
CNSTI4 0
ASGNI4
line 536
;536:		}
LABELV $237
LABELV $236
line 538
;537:
;538:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 539
;539:	}
LABELV $233
line 513
ADDRLP4 0
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LEI4 $232
line 540
;540:	gWPNum--;
ADDRLP4 20
ADDRGP4 gWPNum
ASGNP4
ADDRLP4 20
INDIRP4
ADDRLP4 20
INDIRP4
INDIRI4
CNSTI4 1
SUBI4
ASGNI4
line 541
;541:}
LABELV $219
endproc RemoveWP_InTrail 28 12
export CreateNewWP_InTrail
proc CreateNewWP_InTrail 32 8
line 544
;542:
;543:int CreateNewWP_InTrail(vec3_t origin, int flags, int afterindex)
;544:{
line 549
;545:	int foundindex;
;546:	int foundanindex;
;547:	int i;
;548:
;549:	foundindex = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
line 550
;550:	foundanindex = 0;
ADDRLP4 8
CNSTI4 0
ASGNI4
line 551
;551:	i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 553
;552:
;553:	if (gWPNum >= MAX_WPARRAY_SIZE)
ADDRGP4 gWPNum
INDIRI4
CNSTI4 4096
LTI4 $240
line 554
;554:	{
line 555
;555:		G_Printf(S_COLOR_YELLOW "Warning: Waypoint limit hit (%i)\n", MAX_WPARRAY_SIZE);
ADDRGP4 $189
ARGP4
CNSTI4 4096
ARGI4
ADDRGP4 G_Printf
CALLV
pop
line 556
;556:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $239
JUMPV
LABELV $240
line 559
;557:	}
;558:
;559:	if (afterindex < 0 || afterindex >= gWPNum)
ADDRLP4 12
ADDRFP4 8
INDIRI4
ASGNI4
ADDRLP4 12
INDIRI4
CNSTI4 0
LTI4 $244
ADDRLP4 12
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $246
LABELV $244
line 560
;560:	{
line 561
;561:		G_Printf(S_COLOR_YELLOW "Waypoint number %i does not exist\n", afterindex);
ADDRGP4 $223
ARGP4
ADDRFP4 8
INDIRI4
ARGI4
ADDRGP4 G_Printf
CALLV
pop
line 562
;562:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $239
JUMPV
LABELV $245
line 566
;563:	}
;564:
;565:	while (i < gWPNum)
;566:	{
line 567
;567:		if (gWPArray[i] && gWPArray[i]->inuse && gWPArray[i]->index == afterindex)
ADDRLP4 16
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 16
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $248
ADDRLP4 16
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $248
ADDRLP4 16
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
ADDRFP4 8
INDIRI4
NEI4 $248
line 568
;568:		{
line 569
;569:			foundindex = i;
ADDRLP4 4
ADDRLP4 0
INDIRI4
ASGNI4
line 570
;570:			foundanindex = 1;
ADDRLP4 8
CNSTI4 1
ASGNI4
line 571
;571:			break;
ADDRGP4 $247
JUMPV
LABELV $248
line 574
;572:		}
;573:
;574:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 575
;575:	}
LABELV $246
line 565
ADDRLP4 0
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $245
LABELV $247
line 577
;576:
;577:	if (!foundanindex)
ADDRLP4 8
INDIRI4
CNSTI4 0
NEI4 $250
line 578
;578:	{
line 579
;579:		G_Printf(S_COLOR_YELLOW "Waypoint index %i should exist, but does not (?)\n", afterindex);
ADDRGP4 $231
ARGP4
ADDRFP4 8
INDIRI4
ARGI4
ADDRGP4 G_Printf
CALLV
pop
line 580
;580:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $239
JUMPV
LABELV $250
line 583
;581:	}
;582:
;583:	i = gWPNum;
ADDRLP4 0
ADDRGP4 gWPNum
INDIRI4
ASGNI4
ADDRGP4 $253
JUMPV
LABELV $252
line 586
;584:
;585:	while (i >= 0)
;586:	{
line 587
;587:		if (gWPArray[i] && gWPArray[i]->inuse && gWPArray[i]->index != foundindex)
ADDRLP4 16
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 16
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $255
ADDRLP4 16
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $255
ADDRLP4 16
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
ADDRLP4 4
INDIRI4
EQI4 $255
line 588
;588:		{
line 589
;589:			TransferWPData(i, i+1);
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ARGI4
ADDRGP4 TransferWPData
CALLV
pop
line 590
;590:		}
ADDRGP4 $256
JUMPV
LABELV $255
line 591
;591:		else if (gWPArray[i] && gWPArray[i]->inuse && gWPArray[i]->index == foundindex)
ADDRLP4 20
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $257
ADDRLP4 20
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $257
ADDRLP4 20
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
ADDRLP4 4
INDIRI4
NEI4 $257
line 592
;592:		{
line 593
;593:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 595
;594:
;595:			if (!gWPArray[i])
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $259
line 596
;596:			{
line 597
;597:				gWPArray[i] = (wpobject_t *)B_Alloc(sizeof(wpobject_t));
CNSTI4 300
ARGI4
ADDRLP4 24
ADDRGP4 B_Alloc
CALLP4
ASGNP4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
ADDRLP4 24
INDIRP4
ASGNP4
line 598
;598:			}
LABELV $259
line 600
;599:
;600:			gWPArray[i]->flags = flags;
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
ADDRFP4 4
INDIRI4
ASGNI4
line 601
;601:			gWPArray[i]->weight = 0; //calculated elsewhere
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 20
ADDP4
CNSTF4 0
ASGNF4
line 602
;602:			gWPArray[i]->associated_entity = ENTITYNUM_NONE; //set elsewhere
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 32
ADDP4
CNSTI4 1023
ASGNI4
line 603
;603:			gWPArray[i]->disttonext = 0; //calculated elsewhere
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 24
ADDP4
CNSTF4 0
ASGNF4
line 604
;604:			gWPArray[i]->forceJumpTo = 0;
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 36
ADDP4
CNSTI4 0
ASGNI4
line 605
;605:			gWPArray[i]->index = i;
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 16
ADDP4
ADDRLP4 0
INDIRI4
ASGNI4
line 606
;606:			gWPArray[i]->inuse = 1;
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 12
ADDP4
CNSTI4 1
ASGNI4
line 607
;607:			VectorCopy(origin, gWPArray[i]->origin);
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRFP4 0
INDIRP4
INDIRB
ASGNB 12
line 608
;608:			gWPNum++;
ADDRLP4 28
ADDRGP4 gWPNum
ASGNP4
ADDRLP4 28
INDIRP4
ADDRLP4 28
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 609
;609:			break;
ADDRGP4 $254
JUMPV
LABELV $257
LABELV $256
line 612
;610:		}
;611:
;612:		i--;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
SUBI4
ASGNI4
line 613
;613:	}
LABELV $253
line 585
ADDRLP4 0
INDIRI4
CNSTI4 0
GEI4 $252
LABELV $254
line 615
;614:
;615:	return 1;
CNSTI4 1
RETI4
LABELV $239
endproc CreateNewWP_InTrail 32 8
export TeleportToWP
proc TeleportToWP 28 8
line 619
;616:}
;617:
;618:void TeleportToWP(gentity_t *pl, int afterindex)
;619:{
line 624
;620:	int foundindex;
;621:	int foundanindex;
;622:	int i;
;623:
;624:	if (!pl || !pl->client)
ADDRLP4 12
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 16
CNSTU4 0
ASGNU4
ADDRLP4 12
INDIRP4
CVPU4 4
ADDRLP4 16
INDIRU4
EQU4 $264
ADDRLP4 12
INDIRP4
CNSTI4 408
ADDP4
INDIRP4
CVPU4 4
ADDRLP4 16
INDIRU4
NEU4 $262
LABELV $264
line 625
;625:	{
line 626
;626:		return;
ADDRGP4 $261
JUMPV
LABELV $262
line 629
;627:	}
;628:
;629:	foundindex = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
line 630
;630:	foundanindex = 0;
ADDRLP4 8
CNSTI4 0
ASGNI4
line 631
;631:	i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 633
;632:
;633:	if (afterindex < 0 || afterindex >= gWPNum)
ADDRLP4 20
ADDRFP4 4
INDIRI4
ASGNI4
ADDRLP4 20
INDIRI4
CNSTI4 0
LTI4 $267
ADDRLP4 20
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $269
LABELV $267
line 634
;634:	{
line 635
;635:		G_Printf(S_COLOR_YELLOW "Waypoint number %i does not exist\n", afterindex);
ADDRGP4 $223
ARGP4
ADDRFP4 4
INDIRI4
ARGI4
ADDRGP4 G_Printf
CALLV
pop
line 636
;636:		return;
ADDRGP4 $261
JUMPV
LABELV $268
line 640
;637:	}
;638:
;639:	while (i < gWPNum)
;640:	{
line 641
;641:		if (gWPArray[i] && gWPArray[i]->inuse && gWPArray[i]->index == afterindex)
ADDRLP4 24
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 24
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $271
ADDRLP4 24
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $271
ADDRLP4 24
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
ADDRFP4 4
INDIRI4
NEI4 $271
line 642
;642:		{
line 643
;643:			foundindex = i;
ADDRLP4 4
ADDRLP4 0
INDIRI4
ASGNI4
line 644
;644:			foundanindex = 1;
ADDRLP4 8
CNSTI4 1
ASGNI4
line 645
;645:			break;
ADDRGP4 $270
JUMPV
LABELV $271
line 648
;646:		}
;647:
;648:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 649
;649:	}
LABELV $269
line 639
ADDRLP4 0
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $268
LABELV $270
line 651
;650:
;651:	if (!foundanindex)
ADDRLP4 8
INDIRI4
CNSTI4 0
NEI4 $273
line 652
;652:	{
line 653
;653:		G_Printf(S_COLOR_YELLOW "Waypoint index %i should exist, but does not (?)\n", afterindex);
ADDRGP4 $231
ARGP4
ADDRFP4 4
INDIRI4
ARGI4
ADDRGP4 G_Printf
CALLV
pop
line 654
;654:		return;
ADDRGP4 $261
JUMPV
LABELV $273
line 657
;655:	}
;656:
;657:	VectorCopy(gWPArray[foundindex]->origin, pl->client->ps.origin);
ADDRFP4 0
INDIRP4
CNSTI4 408
ADDP4
INDIRP4
CNSTI4 20
ADDP4
ADDRLP4 4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
INDIRB
ASGNB 12
line 659
;658:
;659:	return;
LABELV $261
endproc TeleportToWP 28 8
export WPFlagsModify
proc WPFlagsModify 12 8
line 663
;660:}
;661:
;662:void WPFlagsModify(int wpnum, int flags)
;663:{
line 664
;664:	if (wpnum < 0 || wpnum >= gWPNum || !gWPArray[wpnum] || !gWPArray[wpnum]->inuse)
ADDRLP4 0
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRI4
LTI4 $280
ADDRLP4 0
INDIRI4
ADDRGP4 gWPNum
INDIRI4
GEI4 $280
ADDRLP4 8
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 8
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $280
ADDRLP4 8
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
ADDRLP4 4
INDIRI4
NEI4 $276
LABELV $280
line 665
;665:	{
line 666
;666:		G_Printf(S_COLOR_YELLOW "WPFlagsModify: Waypoint %i does not exist\n", wpnum);
ADDRGP4 $281
ARGP4
ADDRFP4 0
INDIRI4
ARGI4
ADDRGP4 G_Printf
CALLV
pop
line 667
;667:		return;
ADDRGP4 $275
JUMPV
LABELV $276
line 670
;668:	}
;669:
;670:	gWPArray[wpnum]->flags = flags;
ADDRFP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
ADDRFP4 4
INDIRI4
ASGNI4
line 671
;671:}
LABELV $275
endproc WPFlagsModify 12 8
export NotWithinRange
proc NotWithinRange 16 0
line 674
;672:
;673:int NotWithinRange(int base, int extent)
;674:{
line 675
;675:	if (extent > base && base+5 >= extent)
ADDRLP4 0
ADDRFP4 4
INDIRI4
ASGNI4
ADDRLP4 4
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRI4
LEI4 $283
ADDRLP4 4
INDIRI4
CNSTI4 5
ADDI4
ADDRLP4 0
INDIRI4
LTI4 $283
line 676
;676:	{
line 677
;677:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $282
JUMPV
LABELV $283
line 680
;678:	}
;679:
;680:	if (extent < base && base-5 <= extent)
ADDRLP4 8
ADDRFP4 4
INDIRI4
ASGNI4
ADDRLP4 12
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRI4
GEI4 $285
ADDRLP4 12
INDIRI4
CNSTI4 5
SUBI4
ADDRLP4 8
INDIRI4
GTI4 $285
line 681
;681:	{
line 682
;682:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $282
JUMPV
LABELV $285
line 685
;683:	}
;684:
;685:	return 1;
CNSTI4 1
RETI4
LABELV $282
endproc NotWithinRange 16 0
export NodeHere
proc NodeHere 36 0
line 689
;686:}
;687:
;688:int NodeHere(vec3_t spot)
;689:{
line 692
;690:	int i;
;691:
;692:	i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $289
JUMPV
LABELV $288
line 695
;693:
;694:	while (i < nodenum)
;695:	{
line 696
;696:		if ((int)nodetable[i].origin[0] == (int)spot[0] &&
ADDRLP4 4
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ASGNI4
ADDRLP4 8
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
INDIRI4
ADDRGP4 nodetable
ADDP4
INDIRF4
CVFI4 4
ADDRLP4 8
INDIRP4
INDIRF4
CVFI4 4
NEI4 $291
ADDRLP4 4
INDIRI4
ADDRGP4 nodetable+4
ADDP4
INDIRF4
CVFI4 4
ADDRLP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
CVFI4 4
NEI4 $291
line 698
;697:			(int)nodetable[i].origin[1] == (int)spot[1])
;698:		{
line 699
;699:			if ((int)nodetable[i].origin[2] == (int)spot[2] ||
ADDRLP4 12
CNSTI4 5
ASGNI4
ADDRLP4 16
ADDRLP4 0
INDIRI4
ADDRLP4 12
INDIRI4
LSHI4
ASGNI4
ADDRLP4 20
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
CVFI4 4
ASGNI4
ADDRLP4 16
INDIRI4
ADDRGP4 nodetable+8
ADDP4
INDIRF4
CVFI4 4
ADDRLP4 20
INDIRI4
EQI4 $302
ADDRLP4 16
INDIRI4
ADDRGP4 nodetable+8
ADDP4
INDIRF4
CVFI4 4
ADDRLP4 20
INDIRI4
GEI4 $303
ADDRLP4 16
INDIRI4
ADDRGP4 nodetable+8
ADDP4
INDIRF4
CVFI4 4
ADDRLP4 12
INDIRI4
ADDI4
ADDRLP4 20
INDIRI4
GTI4 $302
LABELV $303
ADDRLP4 24
CNSTI4 5
ASGNI4
ADDRLP4 28
ADDRLP4 0
INDIRI4
ADDRLP4 24
INDIRI4
LSHI4
ASGNI4
ADDRLP4 32
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
CVFI4 4
ASGNI4
ADDRLP4 28
INDIRI4
ADDRGP4 nodetable+8
ADDP4
INDIRF4
CVFI4 4
ADDRLP4 32
INDIRI4
LEI4 $294
ADDRLP4 28
INDIRI4
ADDRGP4 nodetable+8
ADDP4
INDIRF4
CVFI4 4
ADDRLP4 24
INDIRI4
SUBI4
ADDRLP4 32
INDIRI4
GEI4 $294
LABELV $302
line 702
;700:				((int)nodetable[i].origin[2] < (int)spot[2] && (int)nodetable[i].origin[2]+5 > (int)spot[2]) ||
;701:				((int)nodetable[i].origin[2] > (int)spot[2] && (int)nodetable[i].origin[2]-5 < (int)spot[2]))
;702:			{
line 703
;703:				return 1;
CNSTI4 1
RETI4
ADDRGP4 $287
JUMPV
LABELV $294
line 705
;704:			}
;705:		}
LABELV $291
line 706
;706:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 707
;707:	}
LABELV $289
line 694
ADDRLP4 0
INDIRI4
ADDRGP4 nodenum
INDIRI4
LTI4 $288
line 709
;708:
;709:	return 0;
CNSTI4 0
RETI4
LABELV $287
endproc NodeHere 36 0
export CanGetToVector
proc CanGetToVector 1084 28
line 713
;710:}
;711:
;712:int CanGetToVector(vec3_t org1, vec3_t org2, vec3_t mins, vec3_t maxs)
;713:{
line 716
;714:	trace_t tr;
;715:
;716:	trap_Trace(&tr, org1, mins, maxs, org2, -1, MASK_SOLID);
ADDRLP4 0
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
ARGP4
ADDRFP4 12
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
CNSTI4 -1
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 trap_Trace
CALLV
pop
line 718
;717:
;718:	if (tr.fraction == 1 && !tr.startsolid && !tr.allsolid)
ADDRLP4 0+8
INDIRF4
CNSTF4 1065353216
NEF4 $305
ADDRLP4 1080
CNSTI4 0
ASGNI4
ADDRLP4 0+4
INDIRI4
ADDRLP4 1080
INDIRI4
NEI4 $305
ADDRLP4 0
INDIRI4
ADDRLP4 1080
INDIRI4
NEI4 $305
line 719
;719:	{
line 720
;720:		return 1;
CNSTI4 1
RETI4
ADDRGP4 $304
JUMPV
LABELV $305
line 723
;721:	}
;722:
;723:	return 0;
CNSTI4 0
RETI4
LABELV $304
endproc CanGetToVector 1084 28
export CanGetToVectorTravel
proc CanGetToVectorTravel 1192 28
line 727
;724:}
;725:
;726:int CanGetToVectorTravel(vec3_t org1, vec3_t org2, vec3_t mins, vec3_t maxs)
;727:{
line 733
;728:	trace_t tr;
;729:	vec3_t a, ang, fwd;
;730:	vec3_t midpos, dmid;
;731:	float startheight, midheight, fLen;
;732:
;733:	mins[2] = -13;
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
CNSTF4 3243245568
ASGNF4
line 734
;734:	maxs[2] = 13;
ADDRFP4 12
INDIRP4
CNSTI4 8
ADDP4
CNSTF4 1095761920
ASGNF4
line 736
;735:
;736:	trap_Trace(&tr, org1, mins, maxs, org2, -1, MASK_SOLID);
ADDRLP4 0
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
ARGP4
ADDRFP4 12
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
CNSTI4 -1
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 trap_Trace
CALLV
pop
line 738
;737:
;738:	if (tr.fraction != 1 || tr.startsolid || tr.allsolid)
ADDRLP4 0+8
INDIRF4
CNSTF4 1065353216
NEF4 $315
ADDRLP4 1152
CNSTI4 0
ASGNI4
ADDRLP4 0+4
INDIRI4
ADDRLP4 1152
INDIRI4
NEI4 $315
ADDRLP4 0
INDIRI4
ADDRLP4 1152
INDIRI4
EQI4 $310
LABELV $315
line 739
;739:	{
line 740
;740:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $309
JUMPV
LABELV $310
line 743
;741:	}
;742:
;743:	VectorSubtract(org2, org1, a);
ADDRLP4 1156
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 1160
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1104
ADDRLP4 1156
INDIRP4
INDIRF4
ADDRLP4 1160
INDIRP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 1164
CNSTI4 4
ASGNI4
ADDRLP4 1104+4
ADDRLP4 1156
INDIRP4
ADDRLP4 1164
INDIRI4
ADDP4
INDIRF4
ADDRLP4 1160
INDIRP4
ADDRLP4 1164
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 1168
CNSTI4 8
ASGNI4
ADDRLP4 1104+8
ADDRFP4 4
INDIRP4
ADDRLP4 1168
INDIRI4
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
ADDRLP4 1168
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 745
;744:
;745:	vectoangles(a, ang);
ADDRLP4 1104
ARGP4
ADDRLP4 1132
ARGP4
ADDRGP4 vectoangles
CALLV
pop
line 747
;746:
;747:	AngleVectors(ang, fwd, NULL, NULL);
ADDRLP4 1132
ARGP4
ADDRLP4 1116
ARGP4
ADDRLP4 1172
CNSTP4 0
ASGNP4
ADDRLP4 1172
INDIRP4
ARGP4
ADDRLP4 1172
INDIRP4
ARGP4
ADDRGP4 AngleVectors
CALLV
pop
line 749
;748:
;749:	fLen = VectorLength(a)/2;
ADDRLP4 1104
ARGP4
ADDRLP4 1176
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 1128
ADDRLP4 1176
INDIRF4
CNSTF4 1073741824
DIVF4
ASGNF4
line 751
;750:
;751:	midpos[0] = org1[0] + fwd[0]*fLen;
ADDRLP4 1080
ADDRFP4 0
INDIRP4
INDIRF4
ADDRLP4 1116
INDIRF4
ADDRLP4 1128
INDIRF4
MULF4
ADDF4
ASGNF4
line 752
;752:	midpos[1] = org1[1] + fwd[1]*fLen;
ADDRLP4 1080+4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 1116+4
INDIRF4
ADDRLP4 1128
INDIRF4
MULF4
ADDF4
ASGNF4
line 753
;753:	midpos[2] = org1[2] + fwd[2]*fLen;
ADDRLP4 1080+8
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 1116+8
INDIRF4
ADDRLP4 1128
INDIRF4
MULF4
ADDF4
ASGNF4
line 755
;754:
;755:	VectorCopy(org1, dmid);
ADDRLP4 1092
ADDRFP4 0
INDIRP4
INDIRB
ASGNB 12
line 756
;756:	dmid[2] -= 1024;
ADDRLP4 1092+8
ADDRLP4 1092+8
INDIRF4
CNSTF4 1149239296
SUBF4
ASGNF4
line 758
;757:
;758:	trap_Trace(&tr, midpos, NULL, NULL, dmid, -1, MASK_SOLID);
ADDRLP4 0
ARGP4
ADDRLP4 1080
ARGP4
ADDRLP4 1180
CNSTP4 0
ASGNP4
ADDRLP4 1180
INDIRP4
ARGP4
ADDRLP4 1180
INDIRP4
ARGP4
ADDRLP4 1092
ARGP4
CNSTI4 -1
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 trap_Trace
CALLV
pop
line 760
;759:
;760:	startheight = org1[2] - tr.endpos[2];
ADDRLP4 1144
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 0+12+8
INDIRF4
SUBF4
ASGNF4
line 762
;761:
;762:	VectorCopy(midpos, dmid);
ADDRLP4 1092
ADDRLP4 1080
INDIRB
ASGNB 12
line 763
;763:	dmid[2] -= 1024;
ADDRLP4 1092+8
ADDRLP4 1092+8
INDIRF4
CNSTF4 1149239296
SUBF4
ASGNF4
line 765
;764:
;765:	trap_Trace(&tr, midpos, NULL, NULL, dmid, -1, MASK_SOLID);
ADDRLP4 0
ARGP4
ADDRLP4 1080
ARGP4
ADDRLP4 1184
CNSTP4 0
ASGNP4
ADDRLP4 1184
INDIRP4
ARGP4
ADDRLP4 1184
INDIRP4
ARGP4
ADDRLP4 1092
ARGP4
CNSTI4 -1
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 trap_Trace
CALLV
pop
line 767
;766:
;767:	if (tr.startsolid || tr.allsolid)
ADDRLP4 1188
CNSTI4 0
ASGNI4
ADDRLP4 0+4
INDIRI4
ADDRLP4 1188
INDIRI4
NEI4 $329
ADDRLP4 0
INDIRI4
ADDRLP4 1188
INDIRI4
EQI4 $326
LABELV $329
line 768
;768:	{
line 769
;769:		return 1;
CNSTI4 1
RETI4
ADDRGP4 $309
JUMPV
LABELV $326
line 772
;770:	}
;771:
;772:	midheight = midpos[2] - tr.endpos[2];
ADDRLP4 1148
ADDRLP4 1080+8
INDIRF4
ADDRLP4 0+12+8
INDIRF4
SUBF4
ASGNF4
line 774
;773:
;774:	if (midheight > startheight*2)
ADDRLP4 1148
INDIRF4
CNSTF4 1073741824
ADDRLP4 1144
INDIRF4
MULF4
LEF4 $333
line 775
;775:	{
line 776
;776:		return 0; //too steep of a drop.. can't go on
CNSTI4 0
RETI4
ADDRGP4 $309
JUMPV
LABELV $333
line 779
;777:	}
;778:
;779:	return 1;
CNSTI4 1
RETI4
LABELV $309
endproc CanGetToVectorTravel 1192 28
export ConnectTrail
proc ConnectTrail 17692 28
line 783
;780:}
;781:
;782:int ConnectTrail(int startindex, int endindex)
;783:{
line 801
;784:	int foundit;
;785:	int cancontinue;
;786:	int i;
;787:	int failsafe;
;788:	int successnodeindex;
;789:	int insertindex;
;790:	int prenodestart;
;791:	int extendednodes[MAX_NODETABLE_SIZE]; //for storing checked nodes and not trying to extend them each a bazillion times
;792:	float fvecmeas;
;793:	float baseheight;
;794:	vec3_t a;
;795:	vec3_t startplace, starttrace;
;796:	vec3_t mins, maxs;
;797:	vec3_t testspot;
;798:	vec3_t validspotpos;
;799:	trace_t tr;
;800:
;801:	mins[0] = -15;
ADDRLP4 1108
CNSTF4 3245342720
ASGNF4
line 802
;802:	mins[1] = -15;
ADDRLP4 1108+4
CNSTF4 3245342720
ASGNF4
line 803
;803:	mins[2] = 0;
ADDRLP4 1108+8
CNSTF4 0
ASGNF4
line 804
;804:	maxs[0] = 15;
ADDRLP4 1120
CNSTF4 1097859072
ASGNF4
line 805
;805:	maxs[1] = 15;
ADDRLP4 1120+4
CNSTF4 1097859072
ASGNF4
line 806
;806:	maxs[2] = 0;
ADDRLP4 1120+8
CNSTF4 0
ASGNF4
line 808
;807:
;808:	nodenum = 0;
ADDRGP4 nodenum
CNSTI4 0
ASGNI4
line 809
;809:	foundit = 0;
ADDRLP4 17556
CNSTI4 0
ASGNI4
line 811
;810:
;811:	i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 813
;812:
;813:	successnodeindex = 0;
ADDRLP4 17560
CNSTI4 0
ASGNI4
ADDRGP4 $341
JUMPV
LABELV $340
line 816
;814:
;815:	while (i < MAX_NODETABLE_SIZE) //clear it out before using it
;816:	{
line 817
;817:		nodetable[i].flags = 0;
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+24
ADDP4
CNSTI4 0
ASGNI4
line 818
;818:		nodetable[i].index = 0;
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+16
ADDP4
CNSTI4 0
ASGNI4
line 819
;819:		nodetable[i].inuse = 0;
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+12
ADDP4
CNSTI4 0
ASGNI4
line 820
;820:		nodetable[i].neighbornum = 0;
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+28
ADDP4
CNSTI4 0
ASGNI4
line 821
;821:		nodetable[i].origin[0] = 0;
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable
ADDP4
CNSTF4 0
ASGNF4
line 822
;822:		nodetable[i].origin[1] = 0;
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+4
ADDP4
CNSTF4 0
ASGNF4
line 823
;823:		nodetable[i].origin[2] = 0;
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+8
ADDP4
CNSTF4 0
ASGNF4
line 824
;824:		nodetable[i].weight = 0;
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+20
ADDP4
CNSTF4 0
ASGNF4
line 826
;825:
;826:		extendednodes[i] = 0;
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 1148
ADDP4
CNSTI4 0
ASGNI4
line 828
;827:
;828:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 829
;829:	}
LABELV $341
line 815
ADDRLP4 0
INDIRI4
CNSTI4 4096
LTI4 $340
line 831
;830:
;831:	i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 833
;832:
;833:	G_Printf(S_COLOR_YELLOW "Point %i is not connected to %i - Repairing...\n", startindex, endindex);
ADDRGP4 $350
ARGP4
ADDRFP4 0
INDIRI4
ARGI4
ADDRFP4 4
INDIRI4
ARGI4
ADDRGP4 G_Printf
CALLV
pop
line 835
;834:
;835:	VectorCopy(gWPArray[startindex]->origin, startplace);
ADDRLP4 17572
ADDRFP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
INDIRB
ASGNB 12
line 837
;836:
;837:	VectorCopy(startplace, starttrace);
ADDRLP4 1096
ADDRLP4 17572
INDIRB
ASGNB 12
line 839
;838:
;839:	starttrace[2] -= 4096;
ADDRLP4 1096+8
ADDRLP4 1096+8
INDIRF4
CNSTF4 1166016512
SUBF4
ASGNF4
line 841
;840:
;841:	trap_Trace(&tr, startplace, NULL, NULL, starttrace, -1, MASK_SOLID);
ADDRLP4 16
ARGP4
ADDRLP4 17572
ARGP4
ADDRLP4 17584
CNSTP4 0
ASGNP4
ADDRLP4 17584
INDIRP4
ARGP4
ADDRLP4 17584
INDIRP4
ARGP4
ADDRLP4 1096
ARGP4
CNSTI4 -1
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 trap_Trace
CALLV
pop
line 843
;842:
;843:	baseheight = startplace[2] - tr.endpos[2];
ADDRLP4 1144
ADDRLP4 17572+8
INDIRF4
ADDRLP4 16+12+8
INDIRF4
SUBF4
ASGNF4
line 845
;844:
;845:	cancontinue = 1;
ADDRLP4 17532
CNSTI4 1
ASGNI4
line 847
;846:
;847:	VectorCopy(startplace, nodetable[nodenum].origin);
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable
ADDP4
ADDRLP4 17572
INDIRB
ASGNB 12
line 848
;848:	nodetable[nodenum].weight = 1;
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+20
ADDP4
CNSTF4 1065353216
ASGNF4
line 849
;849:	nodetable[nodenum].inuse = 1;
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+12
ADDP4
CNSTI4 1
ASGNI4
line 850
;850:	nodetable[nodenum].index = nodenum;
ADDRLP4 17588
ADDRGP4 nodenum
INDIRI4
ASGNI4
ADDRLP4 17588
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+16
ADDP4
ADDRLP4 17588
INDIRI4
ASGNI4
line 851
;851:	nodenum++;
ADDRLP4 17592
ADDRGP4 nodenum
ASGNP4
ADDRLP4 17592
INDIRP4
ADDRLP4 17592
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRGP4 $359
JUMPV
LABELV $358
line 854
;852:
;853:	while (nodenum < MAX_NODETABLE_SIZE && !foundit && cancontinue)
;854:	{
line 855
;855:		cancontinue = 0;
ADDRLP4 17532
CNSTI4 0
ASGNI4
line 856
;856:		i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 857
;857:		prenodestart = nodenum;
ADDRLP4 17536
ADDRGP4 nodenum
INDIRI4
ASGNI4
ADDRGP4 $362
JUMPV
LABELV $361
line 860
;858:
;859:		while (i < prenodestart)
;860:		{
line 861
;861:			if (extendednodes[i] != 1)
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 1148
ADDP4
INDIRI4
CNSTI4 1
EQI4 $364
line 862
;862:			{
line 863
;863:				VectorSubtract(gWPArray[endindex]->origin, nodetable[i].origin, a);
ADDRLP4 17596
ADDRFP4 4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
ASGNP4
ADDRLP4 17600
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ASGNI4
ADDRLP4 1132
ADDRLP4 17596
INDIRP4
INDIRP4
INDIRF4
ADDRLP4 17600
INDIRI4
ADDRGP4 nodetable
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 1132+4
ADDRLP4 17596
INDIRP4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 17600
INDIRI4
ADDRGP4 nodetable+4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 1132+8
ADDRFP4 4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+8
ADDP4
INDIRF4
SUBF4
ASGNF4
line 864
;864:				fvecmeas = VectorLength(a);
ADDRLP4 1132
ARGP4
ADDRLP4 17604
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 17540
ADDRLP4 17604
INDIRF4
ASGNF4
line 866
;865:
;866:				if (fvecmeas < 128 && CanGetToVector(gWPArray[endindex]->origin, nodetable[i].origin, mins, maxs))
ADDRLP4 17540
INDIRF4
CNSTF4 1124073472
GEF4 $370
ADDRFP4 4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ARGP4
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable
ADDP4
ARGP4
ADDRLP4 1108
ARGP4
ADDRLP4 1120
ARGP4
ADDRLP4 17608
ADDRGP4 CanGetToVector
CALLI4
ASGNI4
ADDRLP4 17608
INDIRI4
CNSTI4 0
EQI4 $370
line 867
;867:				{
line 868
;868:					foundit = 1;
ADDRLP4 17556
CNSTI4 1
ASGNI4
line 869
;869:					successnodeindex = i;
ADDRLP4 17560
ADDRLP4 0
INDIRI4
ASGNI4
line 870
;870:					break;
ADDRGP4 $363
JUMPV
LABELV $370
line 873
;871:				}
;872:
;873:				VectorCopy(nodetable[i].origin, testspot);
ADDRLP4 4
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable
ADDP4
INDIRB
ASGNB 12
line 874
;874:				testspot[0] += TABLE_BRANCH_DISTANCE;
ADDRLP4 4
ADDRLP4 4
INDIRF4
CNSTF4 1107296256
ADDF4
ASGNF4
line 876
;875:
;876:				VectorCopy(testspot, starttrace);
ADDRLP4 1096
ADDRLP4 4
INDIRB
ASGNB 12
line 878
;877:
;878:				starttrace[2] -= 4096;
ADDRLP4 1096+8
ADDRLP4 1096+8
INDIRF4
CNSTF4 1166016512
SUBF4
ASGNF4
line 880
;879:
;880:				trap_Trace(&tr, testspot, NULL, NULL, starttrace, -1, MASK_SOLID);
ADDRLP4 16
ARGP4
ADDRLP4 4
ARGP4
ADDRLP4 17612
CNSTP4 0
ASGNP4
ADDRLP4 17612
INDIRP4
ARGP4
ADDRLP4 17612
INDIRP4
ARGP4
ADDRLP4 1096
ARGP4
CNSTI4 -1
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 trap_Trace
CALLV
pop
line 882
;881:
;882:				testspot[2] = tr.endpos[2]+baseheight;
ADDRLP4 4+8
ADDRLP4 16+12+8
INDIRF4
ADDRLP4 1144
INDIRF4
ADDF4
ASGNF4
line 884
;883:
;884:				if (!NodeHere(testspot) && !tr.startsolid && !tr.allsolid && CanGetToVector(nodetable[i].origin, testspot, mins, maxs))
ADDRLP4 4
ARGP4
ADDRLP4 17616
ADDRGP4 NodeHere
CALLI4
ASGNI4
ADDRLP4 17620
CNSTI4 0
ASGNI4
ADDRLP4 17616
INDIRI4
ADDRLP4 17620
INDIRI4
NEI4 $376
ADDRLP4 16+4
INDIRI4
ADDRLP4 17620
INDIRI4
NEI4 $376
ADDRLP4 16
INDIRI4
ADDRLP4 17620
INDIRI4
NEI4 $376
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable
ADDP4
ARGP4
ADDRLP4 4
ARGP4
ADDRLP4 1108
ARGP4
ADDRLP4 1120
ARGP4
ADDRLP4 17624
ADDRGP4 CanGetToVector
CALLI4
ASGNI4
ADDRLP4 17624
INDIRI4
CNSTI4 0
EQI4 $376
line 885
;885:				{
line 886
;886:					VectorCopy(testspot, nodetable[nodenum].origin);
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable
ADDP4
ADDRLP4 4
INDIRB
ASGNB 12
line 887
;887:					nodetable[nodenum].inuse = 1;
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+12
ADDP4
CNSTI4 1
ASGNI4
line 888
;888:					nodetable[nodenum].index = nodenum;
ADDRLP4 17628
ADDRGP4 nodenum
INDIRI4
ASGNI4
ADDRLP4 17628
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+16
ADDP4
ADDRLP4 17628
INDIRI4
ASGNI4
line 889
;889:					nodetable[nodenum].weight = nodetable[i].weight+1;
ADDRLP4 17632
CNSTI4 5
ASGNI4
ADDRGP4 nodenum
INDIRI4
ADDRLP4 17632
INDIRI4
LSHI4
ADDRGP4 nodetable+20
ADDP4
ADDRLP4 0
INDIRI4
ADDRLP4 17632
INDIRI4
LSHI4
ADDRGP4 nodetable+20
ADDP4
INDIRF4
CNSTF4 1065353216
ADDF4
ASGNF4
line 890
;890:					nodetable[nodenum].neighbornum = i;
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+28
ADDP4
ADDRLP4 0
INDIRI4
ASGNI4
line 891
;891:					if ((nodetable[i].origin[2] - nodetable[nodenum].origin[2]) > 50)
ADDRLP4 17636
CNSTI4 5
ASGNI4
ADDRLP4 0
INDIRI4
ADDRLP4 17636
INDIRI4
LSHI4
ADDRGP4 nodetable+8
ADDP4
INDIRF4
ADDRGP4 nodenum
INDIRI4
ADDRLP4 17636
INDIRI4
LSHI4
ADDRGP4 nodetable+8
ADDP4
INDIRF4
SUBF4
CNSTF4 1112014848
LEF4 $384
line 892
;892:					{ //if there's a big drop, make sure we know we can't just magically fly back up
line 893
;893:						nodetable[nodenum].flags = WPFLAG_ONEWAY_FWD;
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+24
ADDP4
CNSTI4 16384
ASGNI4
line 894
;894:					}
LABELV $384
line 895
;895:					nodenum++;
ADDRLP4 17640
ADDRGP4 nodenum
ASGNP4
ADDRLP4 17640
INDIRP4
ADDRLP4 17640
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 896
;896:					cancontinue = 1;
ADDRLP4 17532
CNSTI4 1
ASGNI4
line 897
;897:				}
LABELV $376
line 899
;898:
;899:				if (nodenum >= MAX_NODETABLE_SIZE)
ADDRGP4 nodenum
INDIRI4
CNSTI4 4096
LTI4 $389
line 900
;900:				{
line 901
;901:					break; //failure
ADDRGP4 $363
JUMPV
LABELV $389
line 904
;902:				}
;903:
;904:				VectorCopy(nodetable[i].origin, testspot);
ADDRLP4 4
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable
ADDP4
INDIRB
ASGNB 12
line 905
;905:				testspot[0] -= TABLE_BRANCH_DISTANCE;
ADDRLP4 4
ADDRLP4 4
INDIRF4
CNSTF4 1107296256
SUBF4
ASGNF4
line 907
;906:
;907:				VectorCopy(testspot, starttrace);
ADDRLP4 1096
ADDRLP4 4
INDIRB
ASGNB 12
line 909
;908:
;909:				starttrace[2] -= 4096;
ADDRLP4 1096+8
ADDRLP4 1096+8
INDIRF4
CNSTF4 1166016512
SUBF4
ASGNF4
line 911
;910:
;911:				trap_Trace(&tr, testspot, NULL, NULL, starttrace, -1, MASK_SOLID);
ADDRLP4 16
ARGP4
ADDRLP4 4
ARGP4
ADDRLP4 17628
CNSTP4 0
ASGNP4
ADDRLP4 17628
INDIRP4
ARGP4
ADDRLP4 17628
INDIRP4
ARGP4
ADDRLP4 1096
ARGP4
CNSTI4 -1
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 trap_Trace
CALLV
pop
line 913
;912:
;913:				testspot[2] = tr.endpos[2]+baseheight;
ADDRLP4 4+8
ADDRLP4 16+12+8
INDIRF4
ADDRLP4 1144
INDIRF4
ADDF4
ASGNF4
line 915
;914:
;915:				if (!NodeHere(testspot) && !tr.startsolid && !tr.allsolid && CanGetToVector(nodetable[i].origin, testspot, mins, maxs))
ADDRLP4 4
ARGP4
ADDRLP4 17632
ADDRGP4 NodeHere
CALLI4
ASGNI4
ADDRLP4 17636
CNSTI4 0
ASGNI4
ADDRLP4 17632
INDIRI4
ADDRLP4 17636
INDIRI4
NEI4 $395
ADDRLP4 16+4
INDIRI4
ADDRLP4 17636
INDIRI4
NEI4 $395
ADDRLP4 16
INDIRI4
ADDRLP4 17636
INDIRI4
NEI4 $395
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable
ADDP4
ARGP4
ADDRLP4 4
ARGP4
ADDRLP4 1108
ARGP4
ADDRLP4 1120
ARGP4
ADDRLP4 17640
ADDRGP4 CanGetToVector
CALLI4
ASGNI4
ADDRLP4 17640
INDIRI4
CNSTI4 0
EQI4 $395
line 916
;916:				{
line 917
;917:					VectorCopy(testspot, nodetable[nodenum].origin);
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable
ADDP4
ADDRLP4 4
INDIRB
ASGNB 12
line 918
;918:					nodetable[nodenum].inuse = 1;
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+12
ADDP4
CNSTI4 1
ASGNI4
line 919
;919:					nodetable[nodenum].index = nodenum;
ADDRLP4 17644
ADDRGP4 nodenum
INDIRI4
ASGNI4
ADDRLP4 17644
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+16
ADDP4
ADDRLP4 17644
INDIRI4
ASGNI4
line 920
;920:					nodetable[nodenum].weight = nodetable[i].weight+1;
ADDRLP4 17648
CNSTI4 5
ASGNI4
ADDRGP4 nodenum
INDIRI4
ADDRLP4 17648
INDIRI4
LSHI4
ADDRGP4 nodetable+20
ADDP4
ADDRLP4 0
INDIRI4
ADDRLP4 17648
INDIRI4
LSHI4
ADDRGP4 nodetable+20
ADDP4
INDIRF4
CNSTF4 1065353216
ADDF4
ASGNF4
line 921
;921:					nodetable[nodenum].neighbornum = i;
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+28
ADDP4
ADDRLP4 0
INDIRI4
ASGNI4
line 922
;922:					if ((nodetable[i].origin[2] - nodetable[nodenum].origin[2]) > 50)
ADDRLP4 17652
CNSTI4 5
ASGNI4
ADDRLP4 0
INDIRI4
ADDRLP4 17652
INDIRI4
LSHI4
ADDRGP4 nodetable+8
ADDP4
INDIRF4
ADDRGP4 nodenum
INDIRI4
ADDRLP4 17652
INDIRI4
LSHI4
ADDRGP4 nodetable+8
ADDP4
INDIRF4
SUBF4
CNSTF4 1112014848
LEF4 $403
line 923
;923:					{ //if there's a big drop, make sure we know we can't just magically fly back up
line 924
;924:						nodetable[nodenum].flags = WPFLAG_ONEWAY_FWD;
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+24
ADDP4
CNSTI4 16384
ASGNI4
line 925
;925:					}
LABELV $403
line 926
;926:					nodenum++;
ADDRLP4 17656
ADDRGP4 nodenum
ASGNP4
ADDRLP4 17656
INDIRP4
ADDRLP4 17656
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 927
;927:					cancontinue = 1;
ADDRLP4 17532
CNSTI4 1
ASGNI4
line 928
;928:				}
LABELV $395
line 930
;929:
;930:				if (nodenum >= MAX_NODETABLE_SIZE)
ADDRGP4 nodenum
INDIRI4
CNSTI4 4096
LTI4 $408
line 931
;931:				{
line 932
;932:					break; //failure
ADDRGP4 $363
JUMPV
LABELV $408
line 935
;933:				}
;934:
;935:				VectorCopy(nodetable[i].origin, testspot);
ADDRLP4 4
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable
ADDP4
INDIRB
ASGNB 12
line 936
;936:				testspot[1] += TABLE_BRANCH_DISTANCE;
ADDRLP4 4+4
ADDRLP4 4+4
INDIRF4
CNSTF4 1107296256
ADDF4
ASGNF4
line 938
;937:
;938:				VectorCopy(testspot, starttrace);
ADDRLP4 1096
ADDRLP4 4
INDIRB
ASGNB 12
line 940
;939:
;940:				starttrace[2] -= 4096;
ADDRLP4 1096+8
ADDRLP4 1096+8
INDIRF4
CNSTF4 1166016512
SUBF4
ASGNF4
line 942
;941:
;942:				trap_Trace(&tr, testspot, NULL, NULL, starttrace, -1, MASK_SOLID);
ADDRLP4 16
ARGP4
ADDRLP4 4
ARGP4
ADDRLP4 17644
CNSTP4 0
ASGNP4
ADDRLP4 17644
INDIRP4
ARGP4
ADDRLP4 17644
INDIRP4
ARGP4
ADDRLP4 1096
ARGP4
CNSTI4 -1
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 trap_Trace
CALLV
pop
line 944
;943:
;944:				testspot[2] = tr.endpos[2]+baseheight;
ADDRLP4 4+8
ADDRLP4 16+12+8
INDIRF4
ADDRLP4 1144
INDIRF4
ADDF4
ASGNF4
line 946
;945:
;946:				if (!NodeHere(testspot) && !tr.startsolid && !tr.allsolid && CanGetToVector(nodetable[i].origin, testspot, mins, maxs))
ADDRLP4 4
ARGP4
ADDRLP4 17648
ADDRGP4 NodeHere
CALLI4
ASGNI4
ADDRLP4 17652
CNSTI4 0
ASGNI4
ADDRLP4 17648
INDIRI4
ADDRLP4 17652
INDIRI4
NEI4 $415
ADDRLP4 16+4
INDIRI4
ADDRLP4 17652
INDIRI4
NEI4 $415
ADDRLP4 16
INDIRI4
ADDRLP4 17652
INDIRI4
NEI4 $415
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable
ADDP4
ARGP4
ADDRLP4 4
ARGP4
ADDRLP4 1108
ARGP4
ADDRLP4 1120
ARGP4
ADDRLP4 17656
ADDRGP4 CanGetToVector
CALLI4
ASGNI4
ADDRLP4 17656
INDIRI4
CNSTI4 0
EQI4 $415
line 947
;947:				{
line 948
;948:					VectorCopy(testspot, nodetable[nodenum].origin);
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable
ADDP4
ADDRLP4 4
INDIRB
ASGNB 12
line 949
;949:					nodetable[nodenum].inuse = 1;
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+12
ADDP4
CNSTI4 1
ASGNI4
line 950
;950:					nodetable[nodenum].index = nodenum;
ADDRLP4 17660
ADDRGP4 nodenum
INDIRI4
ASGNI4
ADDRLP4 17660
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+16
ADDP4
ADDRLP4 17660
INDIRI4
ASGNI4
line 951
;951:					nodetable[nodenum].weight = nodetable[i].weight+1;
ADDRLP4 17664
CNSTI4 5
ASGNI4
ADDRGP4 nodenum
INDIRI4
ADDRLP4 17664
INDIRI4
LSHI4
ADDRGP4 nodetable+20
ADDP4
ADDRLP4 0
INDIRI4
ADDRLP4 17664
INDIRI4
LSHI4
ADDRGP4 nodetable+20
ADDP4
INDIRF4
CNSTF4 1065353216
ADDF4
ASGNF4
line 952
;952:					nodetable[nodenum].neighbornum = i;
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+28
ADDP4
ADDRLP4 0
INDIRI4
ASGNI4
line 953
;953:					if ((nodetable[i].origin[2] - nodetable[nodenum].origin[2]) > 50)
ADDRLP4 17668
CNSTI4 5
ASGNI4
ADDRLP4 0
INDIRI4
ADDRLP4 17668
INDIRI4
LSHI4
ADDRGP4 nodetable+8
ADDP4
INDIRF4
ADDRGP4 nodenum
INDIRI4
ADDRLP4 17668
INDIRI4
LSHI4
ADDRGP4 nodetable+8
ADDP4
INDIRF4
SUBF4
CNSTF4 1112014848
LEF4 $423
line 954
;954:					{ //if there's a big drop, make sure we know we can't just magically fly back up
line 955
;955:						nodetable[nodenum].flags = WPFLAG_ONEWAY_FWD;
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+24
ADDP4
CNSTI4 16384
ASGNI4
line 956
;956:					}
LABELV $423
line 957
;957:					nodenum++;
ADDRLP4 17672
ADDRGP4 nodenum
ASGNP4
ADDRLP4 17672
INDIRP4
ADDRLP4 17672
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 958
;958:					cancontinue = 1;
ADDRLP4 17532
CNSTI4 1
ASGNI4
line 959
;959:				}
LABELV $415
line 961
;960:
;961:				if (nodenum >= MAX_NODETABLE_SIZE)
ADDRGP4 nodenum
INDIRI4
CNSTI4 4096
LTI4 $428
line 962
;962:				{
line 963
;963:					break; //failure
ADDRGP4 $363
JUMPV
LABELV $428
line 966
;964:				}
;965:
;966:				VectorCopy(nodetable[i].origin, testspot);
ADDRLP4 4
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable
ADDP4
INDIRB
ASGNB 12
line 967
;967:				testspot[1] -= TABLE_BRANCH_DISTANCE;
ADDRLP4 4+4
ADDRLP4 4+4
INDIRF4
CNSTF4 1107296256
SUBF4
ASGNF4
line 969
;968:
;969:				VectorCopy(testspot, starttrace);
ADDRLP4 1096
ADDRLP4 4
INDIRB
ASGNB 12
line 971
;970:
;971:				starttrace[2] -= 4096;
ADDRLP4 1096+8
ADDRLP4 1096+8
INDIRF4
CNSTF4 1166016512
SUBF4
ASGNF4
line 973
;972:
;973:				trap_Trace(&tr, testspot, NULL, NULL, starttrace, -1, MASK_SOLID);
ADDRLP4 16
ARGP4
ADDRLP4 4
ARGP4
ADDRLP4 17660
CNSTP4 0
ASGNP4
ADDRLP4 17660
INDIRP4
ARGP4
ADDRLP4 17660
INDIRP4
ARGP4
ADDRLP4 1096
ARGP4
CNSTI4 -1
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 trap_Trace
CALLV
pop
line 975
;974:
;975:				testspot[2] = tr.endpos[2]+baseheight;
ADDRLP4 4+8
ADDRLP4 16+12+8
INDIRF4
ADDRLP4 1144
INDIRF4
ADDF4
ASGNF4
line 977
;976:
;977:				if (!NodeHere(testspot) && !tr.startsolid && !tr.allsolid && CanGetToVector(nodetable[i].origin, testspot, mins, maxs))
ADDRLP4 4
ARGP4
ADDRLP4 17664
ADDRGP4 NodeHere
CALLI4
ASGNI4
ADDRLP4 17668
CNSTI4 0
ASGNI4
ADDRLP4 17664
INDIRI4
ADDRLP4 17668
INDIRI4
NEI4 $435
ADDRLP4 16+4
INDIRI4
ADDRLP4 17668
INDIRI4
NEI4 $435
ADDRLP4 16
INDIRI4
ADDRLP4 17668
INDIRI4
NEI4 $435
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable
ADDP4
ARGP4
ADDRLP4 4
ARGP4
ADDRLP4 1108
ARGP4
ADDRLP4 1120
ARGP4
ADDRLP4 17672
ADDRGP4 CanGetToVector
CALLI4
ASGNI4
ADDRLP4 17672
INDIRI4
CNSTI4 0
EQI4 $435
line 978
;978:				{
line 979
;979:					VectorCopy(testspot, nodetable[nodenum].origin);
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable
ADDP4
ADDRLP4 4
INDIRB
ASGNB 12
line 980
;980:					nodetable[nodenum].inuse = 1;
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+12
ADDP4
CNSTI4 1
ASGNI4
line 981
;981:					nodetable[nodenum].index = nodenum;
ADDRLP4 17676
ADDRGP4 nodenum
INDIRI4
ASGNI4
ADDRLP4 17676
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+16
ADDP4
ADDRLP4 17676
INDIRI4
ASGNI4
line 982
;982:					nodetable[nodenum].weight = nodetable[i].weight+1;
ADDRLP4 17680
CNSTI4 5
ASGNI4
ADDRGP4 nodenum
INDIRI4
ADDRLP4 17680
INDIRI4
LSHI4
ADDRGP4 nodetable+20
ADDP4
ADDRLP4 0
INDIRI4
ADDRLP4 17680
INDIRI4
LSHI4
ADDRGP4 nodetable+20
ADDP4
INDIRF4
CNSTF4 1065353216
ADDF4
ASGNF4
line 983
;983:					nodetable[nodenum].neighbornum = i;
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+28
ADDP4
ADDRLP4 0
INDIRI4
ASGNI4
line 984
;984:					if ((nodetable[i].origin[2] - nodetable[nodenum].origin[2]) > 50)
ADDRLP4 17684
CNSTI4 5
ASGNI4
ADDRLP4 0
INDIRI4
ADDRLP4 17684
INDIRI4
LSHI4
ADDRGP4 nodetable+8
ADDP4
INDIRF4
ADDRGP4 nodenum
INDIRI4
ADDRLP4 17684
INDIRI4
LSHI4
ADDRGP4 nodetable+8
ADDP4
INDIRF4
SUBF4
CNSTF4 1112014848
LEF4 $443
line 985
;985:					{ //if there's a big drop, make sure we know we can't just magically fly back up
line 986
;986:						nodetable[nodenum].flags = WPFLAG_ONEWAY_FWD;
ADDRGP4 nodenum
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+24
ADDP4
CNSTI4 16384
ASGNI4
line 987
;987:					}
LABELV $443
line 988
;988:					nodenum++;
ADDRLP4 17688
ADDRGP4 nodenum
ASGNP4
ADDRLP4 17688
INDIRP4
ADDRLP4 17688
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 989
;989:					cancontinue = 1;
ADDRLP4 17532
CNSTI4 1
ASGNI4
line 990
;990:				}
LABELV $435
line 992
;991:
;992:				if (nodenum >= MAX_NODETABLE_SIZE)
ADDRGP4 nodenum
INDIRI4
CNSTI4 4096
LTI4 $448
line 993
;993:				{
line 994
;994:					break; //failure
ADDRGP4 $363
JUMPV
LABELV $448
line 997
;995:				}
;996:
;997:				extendednodes[i] = 1;
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 1148
ADDP4
CNSTI4 1
ASGNI4
line 998
;998:			}
LABELV $364
line 1000
;999:
;1000:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1001
;1001:		}
LABELV $362
line 859
ADDRLP4 0
INDIRI4
ADDRLP4 17536
INDIRI4
LTI4 $361
LABELV $363
line 1002
;1002:	}
LABELV $359
line 853
ADDRGP4 nodenum
INDIRI4
CNSTI4 4096
GEI4 $451
ADDRLP4 17596
CNSTI4 0
ASGNI4
ADDRLP4 17556
INDIRI4
ADDRLP4 17596
INDIRI4
NEI4 $451
ADDRLP4 17532
INDIRI4
ADDRLP4 17596
INDIRI4
NEI4 $358
LABELV $451
line 1004
;1003:
;1004:	if (!foundit)
ADDRLP4 17556
INDIRI4
CNSTI4 0
NEI4 $452
line 1005
;1005:	{
line 1006
;1006:		G_Printf(S_COLOR_RED "Could not link %i to %i, unreachable by node branching.\n", startindex, endindex);
ADDRGP4 $454
ARGP4
ADDRFP4 0
INDIRI4
ARGI4
ADDRFP4 4
INDIRI4
ARGI4
ADDRGP4 G_Printf
CALLV
pop
line 1007
;1007:		gWPArray[startindex]->flags |= WPFLAG_ONEWAY_FWD;
ADDRLP4 17600
ADDRFP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
ASGNP4
ADDRLP4 17600
INDIRP4
ADDRLP4 17600
INDIRP4
INDIRI4
CNSTI4 16384
BORI4
ASGNI4
line 1008
;1008:		gWPArray[endindex]->flags |= WPFLAG_ONEWAY_BACK;
ADDRLP4 17604
ADDRFP4 4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
ASGNP4
ADDRLP4 17604
INDIRP4
ADDRLP4 17604
INDIRP4
INDIRI4
CNSTI4 32768
BORI4
ASGNI4
line 1009
;1009:		G_Printf(S_COLOR_YELLOW "Since points cannot be connected, point %i has been flagged as only-forward and point %i has been flagged as only-backward.\n", startindex, endindex);
ADDRGP4 $455
ARGP4
ADDRFP4 0
INDIRI4
ARGI4
ADDRFP4 4
INDIRI4
ARGI4
ADDRGP4 G_Printf
CALLV
pop
line 1022
;1010:
;1011:		/*while (nodenum >= 0)
;1012:		{
;1013:			if (nodetable[nodenum].origin[0] || nodetable[nodenum].origin[1] || nodetable[nodenum].origin[2])
;1014:			{
;1015:				CreateNewWP(nodetable[nodenum].origin, nodetable[nodenum].flags);
;1016:			}
;1017:
;1018:			nodenum--;
;1019:		}*/
;1020:		//The above code transfers nodes into the "rendered" waypoint array. Strictly for debugging.
;1021:
;1022:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $335
JUMPV
LABELV $452
line 1025
;1023:	}
;1024:
;1025:	i = successnodeindex;
ADDRLP4 0
ADDRLP4 17560
INDIRI4
ASGNI4
line 1026
;1026:	insertindex = startindex;
ADDRLP4 17568
ADDRFP4 0
INDIRI4
ASGNI4
line 1027
;1027:	failsafe = 0;
ADDRLP4 17564
CNSTI4 0
ASGNI4
line 1028
;1028:	VectorCopy(gWPArray[startindex]->origin, validspotpos);
ADDRLP4 17544
ADDRFP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
INDIRB
ASGNB 12
ADDRGP4 $457
JUMPV
LABELV $456
line 1031
;1029:
;1030:	while (failsafe < MAX_NODETABLE_SIZE && i < MAX_NODETABLE_SIZE && i >= 0)
;1031:	{
line 1032
;1032:		VectorSubtract(validspotpos, nodetable[i].origin, a);
ADDRLP4 17600
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ASGNI4
ADDRLP4 1132
ADDRLP4 17544
INDIRF4
ADDRLP4 17600
INDIRI4
ADDRGP4 nodetable
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 1132+4
ADDRLP4 17544+4
INDIRF4
ADDRLP4 17600
INDIRI4
ADDRGP4 nodetable+4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 1132+8
ADDRLP4 17544+8
INDIRF4
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+8
ADDP4
INDIRF4
SUBF4
ASGNF4
line 1033
;1033:		if (!nodetable[nodetable[i].neighbornum].inuse || !CanGetToVectorTravel(validspotpos, /*nodetable[nodetable[i].neighbornum].origin*/nodetable[i].origin, mins, maxs) || VectorLength(a) > 256 || (!CanGetToVectorTravel(validspotpos, gWPArray[endindex]->origin, mins, maxs) && CanGetToVectorTravel(nodetable[i].origin, gWPArray[endindex]->origin, mins, maxs)) )
ADDRLP4 17604
CNSTI4 5
ASGNI4
ADDRLP4 17608
ADDRLP4 0
INDIRI4
ADDRLP4 17604
INDIRI4
LSHI4
ASGNI4
ADDRLP4 17608
INDIRI4
ADDRGP4 nodetable+28
ADDP4
INDIRI4
ADDRLP4 17604
INDIRI4
LSHI4
ADDRGP4 nodetable+12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $471
ADDRLP4 17544
ARGP4
ADDRLP4 17608
INDIRI4
ADDRGP4 nodetable
ADDP4
ARGP4
ADDRLP4 1108
ARGP4
ADDRLP4 1120
ARGP4
ADDRLP4 17612
ADDRGP4 CanGetToVectorTravel
CALLI4
ASGNI4
ADDRLP4 17612
INDIRI4
CNSTI4 0
EQI4 $471
ADDRLP4 1132
ARGP4
ADDRLP4 17616
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 17616
INDIRF4
CNSTF4 1132462080
GTF4 $471
ADDRLP4 17544
ARGP4
ADDRFP4 4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ARGP4
ADDRLP4 1108
ARGP4
ADDRLP4 1120
ARGP4
ADDRLP4 17620
ADDRGP4 CanGetToVectorTravel
CALLI4
ASGNI4
ADDRLP4 17620
INDIRI4
CNSTI4 0
NEI4 $465
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable
ADDP4
ARGP4
ADDRFP4 4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ARGP4
ADDRLP4 1108
ARGP4
ADDRLP4 1120
ARGP4
ADDRLP4 17624
ADDRGP4 CanGetToVectorTravel
CALLI4
ASGNI4
ADDRLP4 17624
INDIRI4
CNSTI4 0
EQI4 $465
LABELV $471
line 1034
;1034:		{
line 1035
;1035:			if (!CreateNewWP_InTrail(nodetable[i].origin, nodetable[i].flags, insertindex))
ADDRLP4 17628
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ASGNI4
ADDRLP4 17628
INDIRI4
ADDRGP4 nodetable
ADDP4
ARGP4
ADDRLP4 17628
INDIRI4
ADDRGP4 nodetable+24
ADDP4
INDIRI4
ARGI4
ADDRLP4 17568
INDIRI4
ARGI4
ADDRLP4 17632
ADDRGP4 CreateNewWP_InTrail
CALLI4
ASGNI4
ADDRLP4 17632
INDIRI4
CNSTI4 0
NEI4 $472
line 1036
;1036:			{
line 1037
;1037:				G_Printf(S_COLOR_RED "Could not link %i to %i, waypoint limit hit.\n", startindex, endindex);
ADDRGP4 $475
ARGP4
ADDRFP4 0
INDIRI4
ARGI4
ADDRFP4 4
INDIRI4
ARGI4
ADDRGP4 G_Printf
CALLV
pop
line 1038
;1038:				return 0;
CNSTI4 0
RETI4
ADDRGP4 $335
JUMPV
LABELV $472
line 1041
;1039:			}
;1040:
;1041:			VectorCopy(nodetable[i].origin, validspotpos);
ADDRLP4 17544
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable
ADDP4
INDIRB
ASGNB 12
line 1042
;1042:		}
LABELV $465
line 1044
;1043:
;1044:		if (i == 0)
ADDRLP4 0
INDIRI4
CNSTI4 0
NEI4 $476
line 1045
;1045:		{
line 1046
;1046:			break;
ADDRGP4 $458
JUMPV
LABELV $476
line 1049
;1047:		}
;1048:
;1049:		i = nodetable[i].neighbornum;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 5
LSHI4
ADDRGP4 nodetable+28
ADDP4
INDIRI4
ASGNI4
line 1051
;1050:
;1051:		failsafe++;
ADDRLP4 17564
ADDRLP4 17564
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1052
;1052:	}
LABELV $457
line 1030
ADDRLP4 17600
CNSTI4 4096
ASGNI4
ADDRLP4 17564
INDIRI4
ADDRLP4 17600
INDIRI4
GEI4 $480
ADDRLP4 0
INDIRI4
ADDRLP4 17600
INDIRI4
GEI4 $480
ADDRLP4 0
INDIRI4
CNSTI4 0
GEI4 $456
LABELV $480
LABELV $458
line 1054
;1053:
;1054:	G_Printf(S_COLOR_YELLOW "Finished connecting %i to %i.\n", startindex, endindex);
ADDRGP4 $481
ARGP4
ADDRFP4 0
INDIRI4
ARGI4
ADDRFP4 4
INDIRI4
ARGI4
ADDRGP4 G_Printf
CALLV
pop
line 1056
;1055:
;1056:	return 1;
CNSTI4 1
RETI4
LABELV $335
endproc ConnectTrail 17692 28
export OpposingEnds
proc OpposingEnds 44 0
line 1060
;1057:}
;1058:
;1059:int OpposingEnds(int start, int end)
;1060:{
line 1061
;1061:	if (!gWPArray[start] || !gWPArray[start]->inuse || !gWPArray[end] || !gWPArray[end]->inuse)
ADDRLP4 0
CNSTI4 2
ASGNI4
ADDRLP4 4
ADDRGP4 gWPArray
ASGNP4
ADDRLP4 8
ADDRFP4 0
INDIRI4
ADDRLP4 0
INDIRI4
LSHI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRP4
ASGNP4
ADDRLP4 12
CNSTU4 0
ASGNU4
ADDRLP4 8
INDIRP4
CVPU4 4
ADDRLP4 12
INDIRU4
EQU4 $487
ADDRLP4 16
CNSTI4 12
ASGNI4
ADDRLP4 20
CNSTI4 0
ASGNI4
ADDRLP4 8
INDIRP4
ADDRLP4 16
INDIRI4
ADDP4
INDIRI4
ADDRLP4 20
INDIRI4
EQI4 $487
ADDRLP4 24
ADDRFP4 4
INDIRI4
ADDRLP4 0
INDIRI4
LSHI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRP4
ASGNP4
ADDRLP4 24
INDIRP4
CVPU4 4
ADDRLP4 12
INDIRU4
EQU4 $487
ADDRLP4 24
INDIRP4
ADDRLP4 16
INDIRI4
ADDP4
INDIRI4
ADDRLP4 20
INDIRI4
NEI4 $483
LABELV $487
line 1062
;1062:	{
line 1063
;1063:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $482
JUMPV
LABELV $483
line 1066
;1064:	}
;1065:
;1066:	if ((gWPArray[start]->flags & WPFLAG_ONEWAY_FWD) &&
ADDRLP4 28
CNSTI4 2
ASGNI4
ADDRLP4 32
ADDRGP4 gWPArray
ASGNP4
ADDRLP4 36
CNSTI4 28
ASGNI4
ADDRLP4 40
CNSTI4 0
ASGNI4
ADDRFP4 0
INDIRI4
ADDRLP4 28
INDIRI4
LSHI4
ADDRLP4 32
INDIRP4
ADDP4
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
INDIRI4
CNSTI4 16384
BANDI4
ADDRLP4 40
INDIRI4
EQI4 $488
ADDRFP4 4
INDIRI4
ADDRLP4 28
INDIRI4
LSHI4
ADDRLP4 32
INDIRP4
ADDP4
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
INDIRI4
CNSTI4 32768
BANDI4
ADDRLP4 40
INDIRI4
EQI4 $488
line 1068
;1067:		(gWPArray[end]->flags & WPFLAG_ONEWAY_BACK))
;1068:	{
line 1069
;1069:		return 1;
CNSTI4 1
RETI4
ADDRGP4 $482
JUMPV
LABELV $488
line 1072
;1070:	}
;1071:
;1072:	return 0;
CNSTI4 0
RETI4
LABELV $482
endproc OpposingEnds 44 0
export DoorBlockingSection
proc DoorBlockingSection 1144 28
line 1076
;1073:}
;1074:
;1075:int DoorBlockingSection(int start, int end)
;1076:{ //if a door blocks the trail, we'll just have to assume the points on each side are in visibility when it's open
line 1081
;1077:	trace_t tr;
;1078:	gentity_t *testdoor;
;1079:	int start_trace_index;
;1080:
;1081:	if (!gWPArray[start] || !gWPArray[start]->inuse || !gWPArray[end] || !gWPArray[end]->inuse)
ADDRLP4 1088
CNSTI4 2
ASGNI4
ADDRLP4 1092
ADDRGP4 gWPArray
ASGNP4
ADDRLP4 1096
ADDRFP4 0
INDIRI4
ADDRLP4 1088
INDIRI4
LSHI4
ADDRLP4 1092
INDIRP4
ADDP4
INDIRP4
ASGNP4
ADDRLP4 1100
CNSTU4 0
ASGNU4
ADDRLP4 1096
INDIRP4
CVPU4 4
ADDRLP4 1100
INDIRU4
EQU4 $495
ADDRLP4 1104
CNSTI4 12
ASGNI4
ADDRLP4 1108
CNSTI4 0
ASGNI4
ADDRLP4 1096
INDIRP4
ADDRLP4 1104
INDIRI4
ADDP4
INDIRI4
ADDRLP4 1108
INDIRI4
EQI4 $495
ADDRLP4 1112
ADDRFP4 4
INDIRI4
ADDRLP4 1088
INDIRI4
LSHI4
ADDRLP4 1092
INDIRP4
ADDP4
INDIRP4
ASGNP4
ADDRLP4 1112
INDIRP4
CVPU4 4
ADDRLP4 1100
INDIRU4
EQU4 $495
ADDRLP4 1112
INDIRP4
ADDRLP4 1104
INDIRI4
ADDP4
INDIRI4
ADDRLP4 1108
INDIRI4
NEI4 $491
LABELV $495
line 1082
;1082:	{
line 1083
;1083:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $490
JUMPV
LABELV $491
line 1086
;1084:	}
;1085:
;1086:	trap_Trace(&tr, gWPArray[start]->origin, NULL, NULL, gWPArray[end]->origin, -1, MASK_SOLID);
ADDRLP4 0
ARGP4
ADDRLP4 1116
CNSTI4 2
ASGNI4
ADDRLP4 1120
ADDRGP4 gWPArray
ASGNP4
ADDRFP4 0
INDIRI4
ADDRLP4 1116
INDIRI4
LSHI4
ADDRLP4 1120
INDIRP4
ADDP4
INDIRP4
ARGP4
ADDRLP4 1124
CNSTP4 0
ASGNP4
ADDRLP4 1124
INDIRP4
ARGP4
ADDRLP4 1124
INDIRP4
ARGP4
ADDRFP4 4
INDIRI4
ADDRLP4 1116
INDIRI4
LSHI4
ADDRLP4 1120
INDIRP4
ADDP4
INDIRP4
ARGP4
CNSTI4 -1
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 trap_Trace
CALLV
pop
line 1088
;1087:
;1088:	if (tr.fraction == 1)
ADDRLP4 0+8
INDIRF4
CNSTF4 1065353216
NEF4 $496
line 1089
;1089:	{
line 1090
;1090:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $490
JUMPV
LABELV $496
line 1093
;1091:	}
;1092:
;1093:	testdoor = &g_entities[tr.entityNum];
ADDRLP4 1080
CNSTI4 828
ADDRLP4 0+52
INDIRI4
MULI4
ADDRGP4 g_entities
ADDP4
ASGNP4
line 1095
;1094:
;1095:	if (!testdoor)
ADDRLP4 1080
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $500
line 1096
;1096:	{
line 1097
;1097:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $490
JUMPV
LABELV $500
line 1100
;1098:	}
;1099:
;1100:	if (!strstr(testdoor->classname, "func_"))
ADDRLP4 1080
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $504
ARGP4
ADDRLP4 1128
ADDRGP4 strstr
CALLP4
ASGNP4
ADDRLP4 1128
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $502
line 1101
;1101:	{
line 1102
;1102:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $490
JUMPV
LABELV $502
line 1105
;1103:	}
;1104:
;1105:	start_trace_index = tr.entityNum;
ADDRLP4 1084
ADDRLP4 0+52
INDIRI4
ASGNI4
line 1107
;1106:
;1107:	trap_Trace(&tr, gWPArray[end]->origin, NULL, NULL, gWPArray[start]->origin, -1, MASK_SOLID);
ADDRLP4 0
ARGP4
ADDRLP4 1132
CNSTI4 2
ASGNI4
ADDRLP4 1136
ADDRGP4 gWPArray
ASGNP4
ADDRFP4 4
INDIRI4
ADDRLP4 1132
INDIRI4
LSHI4
ADDRLP4 1136
INDIRP4
ADDP4
INDIRP4
ARGP4
ADDRLP4 1140
CNSTP4 0
ASGNP4
ADDRLP4 1140
INDIRP4
ARGP4
ADDRLP4 1140
INDIRP4
ARGP4
ADDRFP4 0
INDIRI4
ADDRLP4 1132
INDIRI4
LSHI4
ADDRLP4 1136
INDIRP4
ADDP4
INDIRP4
ARGP4
CNSTI4 -1
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 trap_Trace
CALLV
pop
line 1109
;1108:
;1109:	if (tr.fraction == 1)
ADDRLP4 0+8
INDIRF4
CNSTF4 1065353216
NEF4 $506
line 1110
;1110:	{
line 1111
;1111:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $490
JUMPV
LABELV $506
line 1114
;1112:	}
;1113:
;1114:	if (start_trace_index == tr.entityNum)
ADDRLP4 1084
INDIRI4
ADDRLP4 0+52
INDIRI4
NEI4 $509
line 1115
;1115:	{
line 1116
;1116:		return 1;
CNSTI4 1
RETI4
ADDRGP4 $490
JUMPV
LABELV $509
line 1119
;1117:	}
;1118:
;1119:	return 0;
CNSTI4 0
RETI4
LABELV $490
endproc DoorBlockingSection 1144 28
export RepairPaths
proc RepairPaths 108 12
line 1123
;1120:}
;1121:
;1122:int RepairPaths(void)
;1123:{
line 1128
;1124:	int i;
;1125:	int ctRet;
;1126:	vec3_t a;
;1127:
;1128:	if (!gWPNum)
ADDRGP4 gWPNum
INDIRI4
CNSTI4 0
NEI4 $513
line 1129
;1129:	{
line 1130
;1130:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $512
JUMPV
LABELV $513
line 1133
;1131:	}
;1132:
;1133:	i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 1135
;1134:
;1135:	trap_Cvar_Update(&bot_wp_distconnect);
ADDRGP4 bot_wp_distconnect
ARGP4
ADDRGP4 trap_Cvar_Update
CALLV
pop
line 1136
;1136:	trap_Cvar_Update(&bot_wp_visconnect);
ADDRGP4 bot_wp_visconnect
ARGP4
ADDRGP4 trap_Cvar_Update
CALLV
pop
ADDRGP4 $516
JUMPV
LABELV $515
line 1139
;1137:
;1138:	while (i < gWPNum)
;1139:	{
line 1140
;1140:		if (gWPArray[i] && gWPArray[i]->inuse && gWPArray[i+1] && gWPArray[i+1]->inuse)
ADDRLP4 20
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 24
ADDRLP4 20
INDIRI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 28
CNSTU4 0
ASGNU4
ADDRLP4 24
INDIRP4
CVPU4 4
ADDRLP4 28
INDIRU4
EQU4 $518
ADDRLP4 32
CNSTI4 12
ASGNI4
ADDRLP4 36
CNSTI4 0
ASGNI4
ADDRLP4 24
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
INDIRI4
ADDRLP4 36
INDIRI4
EQI4 $518
ADDRLP4 20
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
CVPU4 4
ADDRLP4 28
INDIRU4
EQU4 $518
ADDRLP4 20
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
INDIRI4
ADDRLP4 36
INDIRI4
EQI4 $518
line 1141
;1141:		{
line 1142
;1142:			VectorSubtract(gWPArray[i]->origin, gWPArray[i+1]->origin, a);
ADDRLP4 40
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 44
ADDRLP4 40
INDIRI4
ADDRGP4 gWPArray
ADDP4
ASGNP4
ADDRLP4 4
ADDRLP4 44
INDIRP4
INDIRP4
INDIRF4
ADDRLP4 40
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 48
CNSTI4 4
ASGNI4
ADDRLP4 4+4
ADDRLP4 44
INDIRP4
INDIRP4
ADDRLP4 48
INDIRI4
ADDP4
INDIRF4
ADDRLP4 40
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
ADDRLP4 48
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 52
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 56
CNSTI4 8
ASGNI4
ADDRLP4 4+8
ADDRLP4 52
INDIRI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRLP4 56
INDIRI4
ADDP4
INDIRF4
ADDRLP4 52
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
ADDRLP4 56
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 1144
;1143:
;1144:			if (!(gWPArray[i+1]->flags & WPFLAG_NOVIS) &&
ADDRLP4 64
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 68
CNSTI4 28
ASGNI4
ADDRLP4 72
CNSTI4 0
ASGNI4
ADDRLP4 64
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
ADDRLP4 68
INDIRI4
ADDP4
INDIRI4
CNSTI4 1024
BANDI4
ADDRLP4 72
INDIRI4
NEI4 $527
ADDRLP4 64
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
ADDRLP4 68
INDIRI4
ADDP4
INDIRI4
CNSTI4 16
BANDI4
ADDRLP4 72
INDIRI4
NEI4 $527
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ARGI4
ADDRLP4 76
ADDRGP4 OpposingEnds
CALLI4
ASGNI4
ADDRLP4 76
INDIRI4
CNSTI4 0
NEI4 $527
ADDRLP4 4
ARGP4
ADDRLP4 80
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 80
INDIRF4
CNSTF4 1137180672
LEF4 $535
ADDRGP4 bot_wp_distconnect+8
INDIRF4
CNSTF4 0
NEF4 $534
LABELV $535
ADDRLP4 84
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 84
INDIRI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ARGP4
ADDRLP4 84
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
ARGP4
CNSTI4 -1
ARGI4
ADDRLP4 88
ADDRGP4 OrgVisible
CALLI4
ASGNI4
ADDRLP4 88
INDIRI4
CNSTI4 0
NEI4 $527
ADDRGP4 bot_wp_visconnect+8
INDIRF4
CNSTF4 0
EQF4 $527
LABELV $534
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ARGI4
ADDRLP4 96
ADDRGP4 DoorBlockingSection
CALLI4
ASGNI4
ADDRLP4 96
INDIRI4
CNSTI4 0
NEI4 $527
line 1149
;1145:				!(gWPArray[i+1]->flags & WPFLAG_JUMP) && //don't calculate on jump points because they might not always want to be visible (in cases of force jumping)
;1146:				!OpposingEnds(i, i+1) &&
;1147:				((VectorLength(a) > 400 && bot_wp_distconnect.value) || (!OrgVisible(gWPArray[i]->origin, gWPArray[i+1]->origin, -1) && bot_wp_visconnect.value) ) &&
;1148:				!DoorBlockingSection(i, i+1))
;1149:			{
line 1150
;1150:				ctRet = ConnectTrail(i, i+1);
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ARGI4
ADDRLP4 104
ADDRGP4 ConnectTrail
CALLI4
ASGNI4
ADDRLP4 16
ADDRLP4 104
INDIRI4
ASGNI4
line 1155
;1151:				/*if (!ctRet)
;1152:				{
;1153:					return 0;
;1154:				}*/ //we still want to write it..
;1155:			}
LABELV $527
line 1156
;1156:		}
LABELV $518
line 1158
;1157:
;1158:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1159
;1159:	}
LABELV $516
line 1138
ADDRLP4 0
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $515
line 1161
;1160:
;1161:	return 1;
CNSTI4 1
RETI4
LABELV $512
endproc RepairPaths 108 12
export OrgVisibleCurve
proc OrgVisibleCurve 1100 28
line 1165
;1162:}
;1163:
;1164:int OrgVisibleCurve(vec3_t org1, vec3_t mins, vec3_t maxs, vec3_t org2, int ignore)
;1165:{
line 1169
;1166:	trace_t tr;
;1167:	vec3_t evenorg1;
;1168:
;1169:	VectorCopy(org1, evenorg1);
ADDRLP4 1080
ADDRFP4 0
INDIRP4
INDIRB
ASGNB 12
line 1170
;1170:	evenorg1[2] = org2[2];
ADDRLP4 1080+8
ADDRFP4 12
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ASGNF4
line 1172
;1171:
;1172:	trap_Trace(&tr, evenorg1, mins, maxs, org2, ignore, MASK_SOLID);
ADDRLP4 0
ARGP4
ADDRLP4 1080
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
ARGP4
ADDRFP4 12
INDIRP4
ARGP4
ADDRFP4 16
INDIRI4
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 trap_Trace
CALLV
pop
line 1174
;1173:
;1174:	if (tr.fraction == 1 && !tr.startsolid && !tr.allsolid)
ADDRLP4 0+8
INDIRF4
CNSTF4 1065353216
NEF4 $538
ADDRLP4 1092
CNSTI4 0
ASGNI4
ADDRLP4 0+4
INDIRI4
ADDRLP4 1092
INDIRI4
NEI4 $538
ADDRLP4 0
INDIRI4
ADDRLP4 1092
INDIRI4
NEI4 $538
line 1175
;1175:	{
line 1176
;1176:		trap_Trace(&tr, evenorg1, mins, maxs, org1, ignore, MASK_SOLID);
ADDRLP4 0
ARGP4
ADDRLP4 1080
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 16
INDIRI4
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 trap_Trace
CALLV
pop
line 1178
;1177:
;1178:		if (tr.fraction == 1 && !tr.startsolid && !tr.allsolid)
ADDRLP4 0+8
INDIRF4
CNSTF4 1065353216
NEF4 $542
ADDRLP4 1096
CNSTI4 0
ASGNI4
ADDRLP4 0+4
INDIRI4
ADDRLP4 1096
INDIRI4
NEI4 $542
ADDRLP4 0
INDIRI4
ADDRLP4 1096
INDIRI4
NEI4 $542
line 1179
;1179:		{
line 1180
;1180:			return 1;
CNSTI4 1
RETI4
ADDRGP4 $536
JUMPV
LABELV $542
line 1182
;1181:		}
;1182:	}
LABELV $538
line 1184
;1183:
;1184:	return 0;
CNSTI4 0
RETI4
LABELV $536
endproc OrgVisibleCurve 1100 28
export CanForceJumpTo
proc CanForceJumpTo 104 20
line 1188
;1185:}
;1186:
;1187:int CanForceJumpTo(int baseindex, int testingindex, float distance)
;1188:{
line 1191
;1189:	float heightdif;
;1190:	vec3_t xy_base, xy_test, v, mins, maxs;
;1191:	wpobject_t *wpBase = gWPArray[baseindex];
ADDRLP4 0
ADDRFP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
line 1192
;1192:	wpobject_t *wpTest = gWPArray[testingindex];
ADDRLP4 4
ADDRFP4 4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
line 1194
;1193:
;1194:	mins[0] = -15;
ADDRLP4 48
CNSTF4 3245342720
ASGNF4
line 1195
;1195:	mins[1] = -15;
ADDRLP4 48+4
CNSTF4 3245342720
ASGNF4
line 1196
;1196:	mins[2] = -15; //-1
ADDRLP4 48+8
CNSTF4 3245342720
ASGNF4
line 1197
;1197:	maxs[0] = 15;
ADDRLP4 60
CNSTF4 1097859072
ASGNF4
line 1198
;1198:	maxs[1] = 15;
ADDRLP4 60+4
CNSTF4 1097859072
ASGNF4
line 1199
;1199:	maxs[2] = 15; //1
ADDRLP4 60+8
CNSTF4 1097859072
ASGNF4
line 1201
;1200:
;1201:	if (!wpBase || !wpBase->inuse || !wpTest || !wpTest->inuse)
ADDRLP4 76
CNSTU4 0
ASGNU4
ADDRLP4 0
INDIRP4
CVPU4 4
ADDRLP4 76
INDIRU4
EQU4 $555
ADDRLP4 80
CNSTI4 12
ASGNI4
ADDRLP4 84
CNSTI4 0
ASGNI4
ADDRLP4 0
INDIRP4
ADDRLP4 80
INDIRI4
ADDP4
INDIRI4
ADDRLP4 84
INDIRI4
EQI4 $555
ADDRLP4 4
INDIRP4
CVPU4 4
ADDRLP4 76
INDIRU4
EQU4 $555
ADDRLP4 4
INDIRP4
ADDRLP4 80
INDIRI4
ADDP4
INDIRI4
ADDRLP4 84
INDIRI4
NEI4 $551
LABELV $555
line 1202
;1202:	{
line 1203
;1203:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $546
JUMPV
LABELV $551
line 1206
;1204:	}
;1205:
;1206:	if (distance > 400)
ADDRFP4 8
INDIRF4
CNSTF4 1137180672
LEF4 $556
line 1207
;1207:	{
line 1208
;1208:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $546
JUMPV
LABELV $556
line 1211
;1209:	}
;1210:
;1211:	VectorCopy(wpBase->origin, xy_base);
ADDRLP4 8
ADDRLP4 0
INDIRP4
INDIRB
ASGNB 12
line 1212
;1212:	VectorCopy(wpTest->origin, xy_test);
ADDRLP4 20
ADDRLP4 4
INDIRP4
INDIRB
ASGNB 12
line 1214
;1213:
;1214:	xy_base[2] = xy_test[2];
ADDRLP4 8+8
ADDRLP4 20+8
INDIRF4
ASGNF4
line 1216
;1215:
;1216:	VectorSubtract(xy_base, xy_test, v);
ADDRLP4 36
ADDRLP4 8
INDIRF4
ADDRLP4 20
INDIRF4
SUBF4
ASGNF4
ADDRLP4 36+4
ADDRLP4 8+4
INDIRF4
ADDRLP4 20+4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 36+8
ADDRLP4 8+8
INDIRF4
ADDRLP4 20+8
INDIRF4
SUBF4
ASGNF4
line 1218
;1217:
;1218:	if (VectorLength(v) > MAX_NEIGHBOR_LINK_DISTANCE)
ADDRLP4 36
ARGP4
ADDRLP4 92
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 92
INDIRF4
CNSTF4 1124073472
LEF4 $566
line 1219
;1219:	{
line 1220
;1220:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $546
JUMPV
LABELV $566
line 1223
;1221:	}
;1222:
;1223:	if ((int)wpBase->origin[2] < (int)wpTest->origin[2])
ADDRLP4 96
CNSTI4 8
ASGNI4
ADDRLP4 0
INDIRP4
ADDRLP4 96
INDIRI4
ADDP4
INDIRF4
CVFI4 4
ADDRLP4 4
INDIRP4
ADDRLP4 96
INDIRI4
ADDP4
INDIRF4
CVFI4 4
GEI4 $568
line 1224
;1224:	{
line 1225
;1225:		heightdif = wpTest->origin[2] - wpBase->origin[2];
ADDRLP4 100
CNSTI4 8
ASGNI4
ADDRLP4 32
ADDRLP4 4
INDIRP4
ADDRLP4 100
INDIRI4
ADDP4
INDIRF4
ADDRLP4 0
INDIRP4
ADDRLP4 100
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 1226
;1226:	}
ADDRGP4 $569
JUMPV
LABELV $568
line 1228
;1227:	else
;1228:	{
line 1229
;1229:		return 0; //err..
CNSTI4 0
RETI4
ADDRGP4 $546
JUMPV
LABELV $569
line 1232
;1230:	}
;1231:
;1232:	if (heightdif < 128)
ADDRLP4 32
INDIRF4
CNSTF4 1124073472
GEF4 $570
line 1233
;1233:	{ //don't bother..
line 1234
;1234:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $546
JUMPV
LABELV $570
line 1237
;1235:	}
;1236:
;1237:	if (heightdif > 512)
ADDRLP4 32
INDIRF4
CNSTF4 1140850688
LEF4 $572
line 1238
;1238:	{ //too high
line 1239
;1239:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $546
JUMPV
LABELV $572
line 1242
;1240:	}
;1241:
;1242:	if (!OrgVisibleCurve(wpBase->origin, mins, maxs, wpTest->origin, -1))
ADDRLP4 0
INDIRP4
ARGP4
ADDRLP4 48
ARGP4
ADDRLP4 60
ARGP4
ADDRLP4 4
INDIRP4
ARGP4
CNSTI4 -1
ARGI4
ADDRLP4 100
ADDRGP4 OrgVisibleCurve
CALLI4
ASGNI4
ADDRLP4 100
INDIRI4
CNSTI4 0
NEI4 $574
line 1243
;1243:	{
line 1244
;1244:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $546
JUMPV
LABELV $574
line 1247
;1245:	}
;1246:
;1247:	if (heightdif > 400)
ADDRLP4 32
INDIRF4
CNSTF4 1137180672
LEF4 $576
line 1248
;1248:	{
line 1249
;1249:		return 3;
CNSTI4 3
RETI4
ADDRGP4 $546
JUMPV
LABELV $576
line 1251
;1250:	}
;1251:	else if (heightdif > 256)
ADDRLP4 32
INDIRF4
CNSTF4 1132462080
LEF4 $578
line 1252
;1252:	{
line 1253
;1253:		return 2;
CNSTI4 2
RETI4
ADDRGP4 $546
JUMPV
LABELV $578
line 1256
;1254:	}
;1255:	else
;1256:	{
line 1257
;1257:		return 1;
CNSTI4 1
RETI4
LABELV $546
endproc CanForceJumpTo 104 20
export CalculatePaths
proc CalculatePaths 160 20
line 1262
;1258:	}
;1259:}
;1260:
;1261:void CalculatePaths(void)
;1262:{
line 1270
;1263:	int i;
;1264:	int c;
;1265:	int forceJumpable;
;1266:	float nLDist;
;1267:	vec3_t a;
;1268:	vec3_t mins, maxs;
;1269:
;1270:	if (!gWPNum)
ADDRGP4 gWPNum
INDIRI4
CNSTI4 0
NEI4 $581
line 1271
;1271:	{
line 1272
;1272:		return;
ADDRGP4 $580
JUMPV
LABELV $581
line 1275
;1273:	}
;1274:
;1275:	mins[0] = -15;
ADDRLP4 28
CNSTF4 3245342720
ASGNF4
line 1276
;1276:	mins[1] = -15;
ADDRLP4 28+4
CNSTF4 3245342720
ASGNF4
line 1277
;1277:	mins[2] = -15; //-1
ADDRLP4 28+8
CNSTF4 3245342720
ASGNF4
line 1278
;1278:	maxs[0] = 15;
ADDRLP4 40
CNSTF4 1097859072
ASGNF4
line 1279
;1279:	maxs[1] = 15;
ADDRLP4 40+4
CNSTF4 1097859072
ASGNF4
line 1280
;1280:	maxs[2] = 15; //1
ADDRLP4 40+8
CNSTF4 1097859072
ASGNF4
line 1283
;1281:
;1282:	//now clear out all the neighbor data before we recalculate
;1283:	i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $588
JUMPV
LABELV $587
line 1286
;1284:
;1285:	while (i < gWPNum)
;1286:	{
line 1287
;1287:		if (gWPArray[i] && gWPArray[i]->inuse && gWPArray[i]->neighbornum)
ADDRLP4 52
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 52
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $590
ADDRLP4 56
CNSTI4 0
ASGNI4
ADDRLP4 52
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
ADDRLP4 56
INDIRI4
EQI4 $590
ADDRLP4 52
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ADDRLP4 56
INDIRI4
EQI4 $590
line 1288
;1288:		{
ADDRGP4 $593
JUMPV
LABELV $592
line 1290
;1289:			while (gWPArray[i]->neighbornum >= 0)
;1290:			{
line 1291
;1291:				gWPArray[i]->neighbors[gWPArray[i]->neighbornum].num = 0;
ADDRLP4 60
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 60
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 60
INDIRP4
CNSTI4 44
ADDP4
ADDP4
CNSTI4 0
ASGNI4
line 1292
;1292:				gWPArray[i]->neighbors[gWPArray[i]->neighbornum].forceJumpTo = 0;
ADDRLP4 64
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 64
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 64
INDIRP4
CNSTI4 44
ADDP4
ADDP4
CNSTI4 4
ADDP4
CNSTI4 0
ASGNI4
line 1293
;1293:				gWPArray[i]->neighbornum--;
ADDRLP4 68
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 40
ADDP4
ASGNP4
ADDRLP4 68
INDIRP4
ADDRLP4 68
INDIRP4
INDIRI4
CNSTI4 1
SUBI4
ASGNI4
line 1294
;1294:			}
LABELV $593
line 1289
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
CNSTI4 0
GEI4 $592
line 1295
;1295:			gWPArray[i]->neighbornum = 0;
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 40
ADDP4
CNSTI4 0
ASGNI4
line 1296
;1296:		}
LABELV $590
line 1298
;1297:
;1298:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1299
;1299:	}
LABELV $588
line 1285
ADDRLP4 0
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $587
line 1301
;1300:
;1301:	i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $596
JUMPV
LABELV $595
line 1304
;1302:
;1303:	while (i < gWPNum)
;1304:	{
line 1305
;1305:		if (gWPArray[i] && gWPArray[i]->inuse)
ADDRLP4 52
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 52
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $598
ADDRLP4 52
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $598
line 1306
;1306:		{
line 1307
;1307:			c = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRGP4 $601
JUMPV
LABELV $600
line 1310
;1308:
;1309:			while (c < gWPNum)
;1310:			{
line 1311
;1311:				if (gWPArray[c] && gWPArray[c]->inuse && i != c &&
ADDRLP4 60
ADDRLP4 4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 60
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $603
ADDRLP4 60
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $603
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRI4
EQI4 $603
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 68
ADDRGP4 NotWithinRange
CALLI4
ASGNI4
ADDRLP4 68
INDIRI4
CNSTI4 0
EQI4 $603
line 1313
;1312:					NotWithinRange(i, c))
;1313:				{
line 1314
;1314:					VectorSubtract(gWPArray[i]->origin, gWPArray[c]->origin, a);
ADDRLP4 72
CNSTI4 2
ASGNI4
ADDRLP4 76
ADDRGP4 gWPArray
ASGNP4
ADDRLP4 80
ADDRLP4 0
INDIRI4
ADDRLP4 72
INDIRI4
LSHI4
ADDRLP4 76
INDIRP4
ADDP4
ASGNP4
ADDRLP4 84
ADDRLP4 4
INDIRI4
ADDRLP4 72
INDIRI4
LSHI4
ADDRLP4 76
INDIRP4
ADDP4
ASGNP4
ADDRLP4 12
ADDRLP4 80
INDIRP4
INDIRP4
INDIRF4
ADDRLP4 84
INDIRP4
INDIRP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 88
CNSTI4 4
ASGNI4
ADDRLP4 12+4
ADDRLP4 80
INDIRP4
INDIRP4
ADDRLP4 88
INDIRI4
ADDP4
INDIRF4
ADDRLP4 84
INDIRP4
INDIRP4
ADDRLP4 88
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 92
CNSTI4 2
ASGNI4
ADDRLP4 96
ADDRGP4 gWPArray
ASGNP4
ADDRLP4 100
CNSTI4 8
ASGNI4
ADDRLP4 12+8
ADDRLP4 0
INDIRI4
ADDRLP4 92
INDIRI4
LSHI4
ADDRLP4 96
INDIRP4
ADDP4
INDIRP4
ADDRLP4 100
INDIRI4
ADDP4
INDIRF4
ADDRLP4 4
INDIRI4
ADDRLP4 92
INDIRI4
LSHI4
ADDRLP4 96
INDIRP4
ADDP4
INDIRP4
ADDRLP4 100
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 1316
;1315:
;1316:					nLDist = VectorLength(a);
ADDRLP4 12
ARGP4
ADDRLP4 104
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 24
ADDRLP4 104
INDIRF4
ASGNF4
line 1317
;1317:					forceJumpable = CanForceJumpTo(i, c, nLDist);
ADDRLP4 0
INDIRI4
ARGI4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 24
INDIRF4
ARGF4
ADDRLP4 108
ADDRGP4 CanForceJumpTo
CALLI4
ASGNI4
ADDRLP4 8
ADDRLP4 108
INDIRI4
ASGNI4
line 1319
;1318:
;1319:					if ((nLDist < MAX_NEIGHBOR_LINK_DISTANCE || forceJumpable) &&
ADDRLP4 24
INDIRF4
CNSTF4 1124073472
LTF4 $609
ADDRLP4 8
INDIRI4
CNSTI4 0
EQI4 $607
LABELV $609
ADDRLP4 112
CNSTI4 2
ASGNI4
ADDRLP4 116
ADDRGP4 gWPArray
ASGNP4
ADDRLP4 120
CNSTI4 8
ASGNI4
ADDRLP4 0
INDIRI4
ADDRLP4 112
INDIRI4
LSHI4
ADDRLP4 116
INDIRP4
ADDP4
INDIRP4
ADDRLP4 120
INDIRI4
ADDP4
INDIRF4
CVFI4 4
ADDRLP4 4
INDIRI4
ADDRLP4 112
INDIRI4
LSHI4
ADDRLP4 116
INDIRP4
ADDP4
INDIRP4
ADDRLP4 120
INDIRI4
ADDP4
INDIRF4
CVFI4 4
EQI4 $610
ADDRLP4 8
INDIRI4
CNSTI4 0
EQI4 $607
LABELV $610
ADDRLP4 124
CNSTI4 2
ASGNI4
ADDRLP4 128
ADDRGP4 gWPArray
ASGNP4
ADDRLP4 0
INDIRI4
ADDRLP4 124
INDIRI4
LSHI4
ADDRLP4 128
INDIRP4
ADDP4
INDIRP4
ARGP4
ADDRLP4 28
ARGP4
ADDRLP4 40
ARGP4
ADDRLP4 4
INDIRI4
ADDRLP4 124
INDIRI4
LSHI4
ADDRLP4 128
INDIRP4
ADDP4
INDIRP4
ARGP4
CNSTI4 -1
ARGI4
ADDRLP4 132
ADDRGP4 OrgVisibleBox
CALLI4
ASGNI4
ADDRLP4 136
CNSTI4 0
ASGNI4
ADDRLP4 132
INDIRI4
ADDRLP4 136
INDIRI4
NEI4 $611
ADDRLP4 8
INDIRI4
ADDRLP4 136
INDIRI4
EQI4 $607
LABELV $611
line 1322
;1320:						((int)gWPArray[i]->origin[2] == (int)gWPArray[c]->origin[2] || forceJumpable) &&
;1321:						(OrgVisibleBox(gWPArray[i]->origin, mins, maxs, gWPArray[c]->origin, -1) || forceJumpable))
;1322:					{
line 1323
;1323:						gWPArray[i]->neighbors[gWPArray[i]->neighbornum].num = c;
ADDRLP4 140
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 140
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 140
INDIRP4
CNSTI4 44
ADDP4
ADDP4
ADDRLP4 4
INDIRI4
ASGNI4
line 1324
;1324:						if (forceJumpable && ((int)gWPArray[i]->origin[2] != (int)gWPArray[c]->origin[2] || nLDist < MAX_NEIGHBOR_LINK_DISTANCE))
ADDRLP4 8
INDIRI4
CNSTI4 0
EQI4 $612
ADDRLP4 144
CNSTI4 2
ASGNI4
ADDRLP4 148
ADDRGP4 gWPArray
ASGNP4
ADDRLP4 152
CNSTI4 8
ASGNI4
ADDRLP4 0
INDIRI4
ADDRLP4 144
INDIRI4
LSHI4
ADDRLP4 148
INDIRP4
ADDP4
INDIRP4
ADDRLP4 152
INDIRI4
ADDP4
INDIRF4
CVFI4 4
ADDRLP4 4
INDIRI4
ADDRLP4 144
INDIRI4
LSHI4
ADDRLP4 148
INDIRP4
ADDP4
INDIRP4
ADDRLP4 152
INDIRI4
ADDP4
INDIRF4
CVFI4 4
NEI4 $614
ADDRLP4 24
INDIRF4
CNSTF4 1124073472
GEF4 $612
LABELV $614
line 1325
;1325:						{
line 1326
;1326:							gWPArray[i]->neighbors[gWPArray[i]->neighbornum].forceJumpTo = 999;//forceJumpable; //FJSR
ADDRLP4 156
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 156
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 156
INDIRP4
CNSTI4 44
ADDP4
ADDP4
CNSTI4 4
ADDP4
CNSTI4 999
ASGNI4
line 1327
;1327:						}
ADDRGP4 $613
JUMPV
LABELV $612
line 1329
;1328:						else
;1329:						{
line 1330
;1330:							gWPArray[i]->neighbors[gWPArray[i]->neighbornum].forceJumpTo = 0;
ADDRLP4 156
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 156
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 156
INDIRP4
CNSTI4 44
ADDP4
ADDP4
CNSTI4 4
ADDP4
CNSTI4 0
ASGNI4
line 1331
;1331:						}
LABELV $613
line 1332
;1332:						gWPArray[i]->neighbornum++;
ADDRLP4 156
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 40
ADDP4
ASGNP4
ADDRLP4 156
INDIRP4
ADDRLP4 156
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1333
;1333:					}
LABELV $607
line 1335
;1334:
;1335:					if (gWPArray[i]->neighbornum >= MAX_NEIGHBOR_SIZE)
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
CNSTI4 32
LTI4 $615
line 1336
;1336:					{
line 1337
;1337:						break;
ADDRGP4 $602
JUMPV
LABELV $615
line 1339
;1338:					}
;1339:				}
LABELV $603
line 1340
;1340:				c++;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1341
;1341:			}
LABELV $601
line 1309
ADDRLP4 4
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $600
LABELV $602
line 1342
;1342:		}
LABELV $598
line 1343
;1343:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1344
;1344:	}
LABELV $596
line 1303
ADDRLP4 0
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $595
line 1345
;1345:}
LABELV $580
endproc CalculatePaths 160 20
export GetObjectThatTargets
proc GetObjectThatTargets 8 12
line 1348
;1346:
;1347:gentity_t *GetObjectThatTargets(gentity_t *ent)
;1348:{
line 1349
;1349:	gentity_t *next = NULL;
ADDRLP4 0
CNSTP4 0
ASGNP4
line 1351
;1350:
;1351:	if (!ent->targetname)
ADDRFP4 0
INDIRP4
CNSTI4 588
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $618
line 1352
;1352:	{
line 1353
;1353:		return NULL;
CNSTP4 0
RETP4
ADDRGP4 $617
JUMPV
LABELV $618
line 1356
;1354:	}
;1355:
;1356:	next = G_Find( next, FOFS(target), ent->targetname );
ADDRLP4 0
INDIRP4
ARGP4
CNSTI4 584
ARGI4
ADDRFP4 0
INDIRP4
CNSTI4 588
ADDP4
INDIRP4
ARGP4
ADDRLP4 4
ADDRGP4 G_Find
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 4
INDIRP4
ASGNP4
line 1358
;1357:
;1358:	if (next)
ADDRLP4 0
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $620
line 1359
;1359:	{
line 1360
;1360:		return next;
ADDRLP4 0
INDIRP4
RETP4
ADDRGP4 $617
JUMPV
LABELV $620
line 1363
;1361:	}
;1362:
;1363:	return NULL;
CNSTP4 0
RETP4
LABELV $617
endproc GetObjectThatTargets 8 12
export CalculateSagaGoals
proc CalculateSagaGoals 92 8
line 1367
;1364:}
;1365:
;1366:void CalculateSagaGoals(void)
;1367:{
line 1368
;1368:	int i = 0;
ADDRLP4 16
CNSTI4 0
ASGNI4
line 1369
;1369:	int looptracker = 0;
ADDRLP4 8
CNSTI4 0
ASGNI4
line 1370
;1370:	int wpindex = 0;
ADDRLP4 20
CNSTI4 0
ASGNI4
line 1373
;1371:	vec3_t dif;
;1372:	gentity_t *ent;
;1373:	gentity_t *tent = NULL, *t2ent = NULL;
ADDRLP4 0
CNSTP4 0
ASGNP4
ADDRLP4 4
CNSTP4 0
ASGNP4
ADDRGP4 $624
JUMPV
LABELV $623
line 1376
;1374:
;1375:	while (i < MAX_GENTITIES)
;1376:	{
line 1377
;1377:		ent = &g_entities[i];
ADDRLP4 12
CNSTI4 828
ADDRLP4 16
INDIRI4
MULI4
ADDRGP4 g_entities
ADDP4
ASGNP4
line 1379
;1378:
;1379:		tent = NULL;
ADDRLP4 0
CNSTP4 0
ASGNP4
line 1381
;1380:
;1381:		if (ent && ent->classname && strcmp(ent->classname, "info_saga_objective") == 0)
ADDRLP4 40
CNSTU4 0
ASGNU4
ADDRLP4 12
INDIRP4
CVPU4 4
ADDRLP4 40
INDIRU4
EQU4 $626
ADDRLP4 44
ADDRLP4 12
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ASGNP4
ADDRLP4 44
INDIRP4
CVPU4 4
ADDRLP4 40
INDIRU4
EQU4 $626
ADDRLP4 44
INDIRP4
ARGP4
ADDRGP4 $628
ARGP4
ADDRLP4 48
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 48
INDIRI4
CNSTI4 0
NEI4 $626
line 1382
;1382:		{
line 1383
;1383:			tent = ent;
ADDRLP4 0
ADDRLP4 12
INDIRP4
ASGNP4
line 1384
;1384:			t2ent = GetObjectThatTargets(tent);
ADDRLP4 0
INDIRP4
ARGP4
ADDRLP4 52
ADDRGP4 GetObjectThatTargets
CALLP4
ASGNP4
ADDRLP4 4
ADDRLP4 52
INDIRP4
ASGNP4
line 1385
;1385:			looptracker = 0;
ADDRLP4 8
CNSTI4 0
ASGNI4
ADDRGP4 $630
JUMPV
LABELV $629
line 1388
;1386:
;1387:			while (t2ent && looptracker < 2048)
;1388:			{ //looptracker keeps us from getting stuck in case something is set up weird on this map
line 1389
;1389:				tent = t2ent;
ADDRLP4 0
ADDRLP4 4
INDIRP4
ASGNP4
line 1390
;1390:				t2ent = GetObjectThatTargets(tent);
ADDRLP4 0
INDIRP4
ARGP4
ADDRLP4 56
ADDRGP4 GetObjectThatTargets
CALLP4
ASGNP4
ADDRLP4 4
ADDRLP4 56
INDIRP4
ASGNP4
line 1391
;1391:				looptracker++;
ADDRLP4 8
ADDRLP4 8
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1392
;1392:			}
LABELV $630
line 1387
ADDRLP4 4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $632
ADDRLP4 8
INDIRI4
CNSTI4 2048
LTI4 $629
LABELV $632
line 1394
;1393:
;1394:			if (looptracker >= 2048)
ADDRLP4 8
INDIRI4
CNSTI4 2048
LTI4 $633
line 1395
;1395:			{ //something unpleasent has happened
line 1396
;1396:				tent = NULL;
ADDRLP4 0
CNSTP4 0
ASGNP4
line 1397
;1397:				break;
ADDRGP4 $625
JUMPV
LABELV $633
line 1399
;1398:			}
;1399:		}
LABELV $626
line 1401
;1400:
;1401:		if (tent && ent && tent != ent)
ADDRLP4 52
ADDRLP4 0
INDIRP4
CVPU4 4
ASGNU4
ADDRLP4 56
CNSTU4 0
ASGNU4
ADDRLP4 52
INDIRU4
ADDRLP4 56
INDIRU4
EQU4 $635
ADDRLP4 60
ADDRLP4 12
INDIRP4
CVPU4 4
ASGNU4
ADDRLP4 60
INDIRU4
ADDRLP4 56
INDIRU4
EQU4 $635
ADDRLP4 52
INDIRU4
ADDRLP4 60
INDIRU4
EQU4 $635
line 1402
;1402:		{ //tent should now be the object attached to the mission objective
line 1403
;1403:			dif[0] = (tent->r.absmax[0]+tent->r.absmin[0])/2;
ADDRLP4 24
ADDRLP4 0
INDIRP4
CNSTI4 356
ADDP4
INDIRF4
ADDRLP4 0
INDIRP4
CNSTI4 344
ADDP4
INDIRF4
ADDF4
CNSTF4 1073741824
DIVF4
ASGNF4
line 1404
;1404:			dif[1] = (tent->r.absmax[1]+tent->r.absmin[1])/2;
ADDRLP4 24+4
ADDRLP4 0
INDIRP4
CNSTI4 360
ADDP4
INDIRF4
ADDRLP4 0
INDIRP4
CNSTI4 348
ADDP4
INDIRF4
ADDF4
CNSTF4 1073741824
DIVF4
ASGNF4
line 1405
;1405:			dif[2] = (tent->r.absmax[2]+tent->r.absmin[2])/2;
ADDRLP4 24+8
ADDRLP4 0
INDIRP4
CNSTI4 364
ADDP4
INDIRF4
ADDRLP4 0
INDIRP4
CNSTI4 352
ADDP4
INDIRF4
ADDF4
CNSTF4 1073741824
DIVF4
ASGNF4
line 1407
;1406:
;1407:			wpindex = GetNearestVisibleWP(dif, tent->s.number);
ADDRLP4 24
ARGP4
ADDRLP4 0
INDIRP4
INDIRI4
ARGI4
ADDRLP4 76
ADDRGP4 GetNearestVisibleWP
CALLI4
ASGNI4
ADDRLP4 20
ADDRLP4 76
INDIRI4
ASGNI4
line 1409
;1408:
;1409:			if (wpindex != -1 && gWPArray[wpindex] && gWPArray[wpindex]->inuse)
ADDRLP4 20
INDIRI4
CNSTI4 -1
EQI4 $639
ADDRLP4 84
ADDRLP4 20
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 84
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $639
ADDRLP4 84
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $639
line 1410
;1410:			{ //found the waypoint nearest the center of this objective-related object
line 1411
;1411:				if (ent->side == SAGATEAM_IMPERIAL)
ADDRLP4 12
INDIRP4
CNSTI4 440
ADDP4
INDIRI4
CNSTI4 1
NEI4 $641
line 1412
;1412:				{
line 1413
;1413:					gWPArray[wpindex]->flags |= WPFLAG_SAGA_IMPERIALOBJ;
ADDRLP4 88
ADDRLP4 20
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
ASGNP4
ADDRLP4 88
INDIRP4
ADDRLP4 88
INDIRP4
INDIRI4
CNSTI4 1048576
BORI4
ASGNI4
line 1414
;1414:				}
ADDRGP4 $642
JUMPV
LABELV $641
line 1416
;1415:				else
;1416:				{
line 1417
;1417:					gWPArray[wpindex]->flags |= WPFLAG_SAGA_REBELOBJ;
ADDRLP4 88
ADDRLP4 20
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
ASGNP4
ADDRLP4 88
INDIRP4
ADDRLP4 88
INDIRP4
INDIRI4
CNSTI4 524288
BORI4
ASGNI4
line 1418
;1418:				}
LABELV $642
line 1420
;1419:
;1420:				gWPArray[wpindex]->associated_entity = tent->s.number;
ADDRLP4 20
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 32
ADDP4
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
line 1421
;1421:			}
LABELV $639
line 1422
;1422:		}
LABELV $635
line 1424
;1423:
;1424:		i++;
ADDRLP4 16
ADDRLP4 16
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1425
;1425:	}
LABELV $624
line 1375
ADDRLP4 16
INDIRI4
CNSTI4 1024
LTI4 $623
LABELV $625
line 1426
;1426:}
LABELV $622
endproc CalculateSagaGoals 92 8
data
export botGlobalNavWeaponWeights
align 4
LABELV botGlobalNavWeaponWeights
byte 4 0
byte 4 0
byte 4 0
byte 4 0
byte 4 1077936128
byte 4 1084227584
byte 4 1082130432
byte 4 1086324736
byte 4 1088421888
byte 4 1090519040
byte 4 1091567616
byte 4 1077936128
byte 4 1077936128
byte 4 1077936128
byte 4 0
skip 4
export GetNearestVisibleWPToItem
code
proc GetNearestVisibleWPToItem 100 20
line 1449
;1427:
;1428:float botGlobalNavWeaponWeights[WP_NUM_WEAPONS] =
;1429:{
;1430:	0,//WP_NONE,
;1431:
;1432:	0,//WP_STUN_BATON,
;1433:	0,//WP_SABER,				 // NOTE: lots of code assumes this is the first weapon (... which is crap) so be careful -Ste.
;1434:	0,//WP_BRYAR_PISTOL,
;1435:	3,//WP_BLASTER,
;1436:	5,//WP_DISRUPTOR,
;1437:	4,//WP_BOWCASTER,
;1438:	6,//WP_REPEATER,
;1439:	7,//WP_DEMP2,
;1440:	8,//WP_FLECHETTE,
;1441:	9,//WP_ROCKET_LAUNCHER,
;1442:	3,//WP_THERMAL,
;1443:	3,//WP_TRIP_MINE,
;1444:	3,//WP_DET_PACK,
;1445:	0//WP_EMPLACED_GUN,
;1446:};
;1447:
;1448:int GetNearestVisibleWPToItem(vec3_t org, int ignore)
;1449:{
line 1456
;1450:	int i;
;1451:	float bestdist;
;1452:	float flLen;
;1453:	int bestindex;
;1454:	vec3_t a, mins, maxs;
;1455:
;1456:	i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 1457
;1457:	bestdist = 64; //has to be less than 64 units to the item or it isn't safe enough
ADDRLP4 20
CNSTF4 1115684864
ASGNF4
line 1458
;1458:	bestindex = -1;
ADDRLP4 48
CNSTI4 -1
ASGNI4
line 1460
;1459:
;1460:	mins[0] = -15;
ADDRLP4 24
CNSTF4 3245342720
ASGNF4
line 1461
;1461:	mins[1] = -15;
ADDRLP4 24+4
CNSTF4 3245342720
ASGNF4
line 1462
;1462:	mins[2] = 0;
ADDRLP4 24+8
CNSTF4 0
ASGNF4
line 1463
;1463:	maxs[0] = 15;
ADDRLP4 36
CNSTF4 1097859072
ASGNF4
line 1464
;1464:	maxs[1] = 15;
ADDRLP4 36+4
CNSTF4 1097859072
ASGNF4
line 1465
;1465:	maxs[2] = 0;
ADDRLP4 36+8
CNSTF4 0
ASGNF4
ADDRGP4 $649
JUMPV
LABELV $648
line 1468
;1466:
;1467:	while (i < gWPNum)
;1468:	{
line 1469
;1469:		if (gWPArray[i] && gWPArray[i]->inuse &&
ADDRLP4 52
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 52
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $651
ADDRLP4 52
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $651
ADDRLP4 56
CNSTI4 8
ASGNI4
ADDRLP4 60
ADDRLP4 52
INDIRP4
ADDRLP4 56
INDIRI4
ADDP4
INDIRF4
ASGNF4
ADDRLP4 64
CNSTF4 1097859072
ASGNF4
ADDRLP4 68
ADDRFP4 0
INDIRP4
ADDRLP4 56
INDIRI4
ADDP4
INDIRF4
ASGNF4
ADDRLP4 60
INDIRF4
ADDRLP4 64
INDIRF4
SUBF4
ADDRLP4 68
INDIRF4
GEF4 $651
ADDRLP4 60
INDIRF4
ADDRLP4 64
INDIRF4
ADDF4
ADDRLP4 68
INDIRF4
LEF4 $651
line 1472
;1470:			gWPArray[i]->origin[2]-15 < org[2] &&
;1471:			gWPArray[i]->origin[2]+15 > org[2])
;1472:		{
line 1473
;1473:			VectorSubtract(org, gWPArray[i]->origin, a);
ADDRLP4 72
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 76
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
ASGNP4
ADDRLP4 4
ADDRLP4 72
INDIRP4
INDIRF4
ADDRLP4 76
INDIRP4
INDIRP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 80
CNSTI4 4
ASGNI4
ADDRLP4 4+4
ADDRLP4 72
INDIRP4
ADDRLP4 80
INDIRI4
ADDP4
INDIRF4
ADDRLP4 76
INDIRP4
INDIRP4
ADDRLP4 80
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 84
CNSTI4 8
ASGNI4
ADDRLP4 4+8
ADDRFP4 0
INDIRP4
ADDRLP4 84
INDIRI4
ADDP4
INDIRF4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRLP4 84
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 1474
;1474:			flLen = VectorLength(a);
ADDRLP4 4
ARGP4
ADDRLP4 88
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 16
ADDRLP4 88
INDIRF4
ASGNF4
line 1476
;1475:
;1476:			if (flLen < bestdist && trap_InPVS(org, gWPArray[i]->origin) && OrgVisibleBox(org, mins, maxs, gWPArray[i]->origin, ignore))
ADDRLP4 16
INDIRF4
ADDRLP4 20
INDIRF4
GEF4 $655
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ARGP4
ADDRLP4 92
ADDRGP4 trap_InPVS
CALLI4
ASGNI4
ADDRLP4 92
INDIRI4
CNSTI4 0
EQI4 $655
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 24
ARGP4
ADDRLP4 36
ARGP4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ARGP4
ADDRFP4 4
INDIRI4
ARGI4
ADDRLP4 96
ADDRGP4 OrgVisibleBox
CALLI4
ASGNI4
ADDRLP4 96
INDIRI4
CNSTI4 0
EQI4 $655
line 1477
;1477:			{
line 1478
;1478:				bestdist = flLen;
ADDRLP4 20
ADDRLP4 16
INDIRF4
ASGNF4
line 1479
;1479:				bestindex = i;
ADDRLP4 48
ADDRLP4 0
INDIRI4
ASGNI4
line 1480
;1480:			}
LABELV $655
line 1481
;1481:		}
LABELV $651
line 1483
;1482:
;1483:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1484
;1484:	}
LABELV $649
line 1467
ADDRLP4 0
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $648
line 1486
;1485:
;1486:	return bestindex;
ADDRLP4 48
INDIRI4
RETI4
LABELV $643
endproc GetNearestVisibleWPToItem 100 20
export CalculateWeightGoals
proc CalculateWeightGoals 68 8
line 1490
;1487:}
;1488:
;1489:void CalculateWeightGoals(void)
;1490:{ //set waypoint weights depending on weapon and item placement
line 1491
;1491:	int i = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
line 1492
;1492:	int wpindex = 0;
ADDRLP4 8
CNSTI4 0
ASGNI4
line 1496
;1493:	gentity_t *ent;
;1494:	float weight;
;1495:
;1496:	trap_Cvar_Update(&bot_wp_clearweight);
ADDRGP4 bot_wp_clearweight
ARGP4
ADDRGP4 trap_Cvar_Update
CALLV
pop
line 1498
;1497:
;1498:	if (bot_wp_clearweight.integer)
ADDRGP4 bot_wp_clearweight+12
INDIRI4
CNSTI4 0
EQI4 $658
line 1499
;1499:	{ //if set then flush out all weight/goal values before calculating them again
ADDRGP4 $662
JUMPV
LABELV $661
line 1501
;1500:		while (i < gWPNum)
;1501:		{
line 1502
;1502:			if (gWPArray[i] && gWPArray[i]->inuse)
ADDRLP4 16
ADDRLP4 4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 16
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $664
ADDRLP4 16
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $664
line 1503
;1503:			{
line 1504
;1504:				gWPArray[i]->weight = 0;
ADDRLP4 4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 20
ADDP4
CNSTF4 0
ASGNF4
line 1506
;1505:
;1506:				if (gWPArray[i]->flags & WPFLAG_GOALPOINT)
ADDRLP4 4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
INDIRI4
CNSTI4 65536
BANDI4
CNSTI4 0
EQI4 $666
line 1507
;1507:				{
line 1508
;1508:					gWPArray[i]->flags -= WPFLAG_GOALPOINT;
ADDRLP4 20
ADDRLP4 4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
ASGNP4
ADDRLP4 20
INDIRP4
ADDRLP4 20
INDIRP4
INDIRI4
CNSTI4 65536
SUBI4
ASGNI4
line 1509
;1509:				}
LABELV $666
line 1510
;1510:			}
LABELV $664
line 1512
;1511:
;1512:			i++;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1513
;1513:		}
LABELV $662
line 1500
ADDRLP4 4
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $661
line 1514
;1514:	}
LABELV $658
line 1516
;1515:
;1516:	i = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRGP4 $669
JUMPV
LABELV $668
line 1519
;1517:
;1518:	while (i < MAX_GENTITIES)
;1519:	{
line 1520
;1520:		ent = &g_entities[i];
ADDRLP4 0
CNSTI4 828
ADDRLP4 4
INDIRI4
MULI4
ADDRGP4 g_entities
ADDP4
ASGNP4
line 1522
;1521:
;1522:		weight = 0;
ADDRLP4 12
CNSTF4 0
ASGNF4
line 1524
;1523:
;1524:		if (ent && ent->classname)
ADDRLP4 20
CNSTU4 0
ASGNU4
ADDRLP4 0
INDIRP4
CVPU4 4
ADDRLP4 20
INDIRU4
EQU4 $671
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
CVPU4 4
ADDRLP4 20
INDIRU4
EQU4 $671
line 1525
;1525:		{
line 1526
;1526:			if (strcmp(ent->classname, "item_seeker") == 0)
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $675
ARGP4
ADDRLP4 24
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 24
INDIRI4
CNSTI4 0
NEI4 $673
line 1527
;1527:			{
line 1528
;1528:				weight = 2;
ADDRLP4 12
CNSTF4 1073741824
ASGNF4
line 1529
;1529:			}
ADDRGP4 $674
JUMPV
LABELV $673
line 1530
;1530:			else if (strcmp(ent->classname, "item_shield") == 0)
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $678
ARGP4
ADDRLP4 28
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 28
INDIRI4
CNSTI4 0
NEI4 $676
line 1531
;1531:			{
line 1532
;1532:				weight = 2;
ADDRLP4 12
CNSTF4 1073741824
ASGNF4
line 1533
;1533:			}
ADDRGP4 $677
JUMPV
LABELV $676
line 1534
;1534:			else if (strcmp(ent->classname, "item_medpac") == 0)
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $681
ARGP4
ADDRLP4 32
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 32
INDIRI4
CNSTI4 0
NEI4 $679
line 1535
;1535:			{
line 1536
;1536:				weight = 2;
ADDRLP4 12
CNSTF4 1073741824
ASGNF4
line 1537
;1537:			}
ADDRGP4 $680
JUMPV
LABELV $679
line 1538
;1538:			else if (strcmp(ent->classname, "item_sentry_gun") == 0)
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $684
ARGP4
ADDRLP4 36
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 36
INDIRI4
CNSTI4 0
NEI4 $682
line 1539
;1539:			{
line 1540
;1540:				weight = 2;
ADDRLP4 12
CNSTF4 1073741824
ASGNF4
line 1541
;1541:			}
ADDRGP4 $683
JUMPV
LABELV $682
line 1542
;1542:			else if (strcmp(ent->classname, "item_force_enlighten_dark") == 0)
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $687
ARGP4
ADDRLP4 40
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 40
INDIRI4
CNSTI4 0
NEI4 $685
line 1543
;1543:			{
line 1544
;1544:				weight = 5;
ADDRLP4 12
CNSTF4 1084227584
ASGNF4
line 1545
;1545:			}
ADDRGP4 $686
JUMPV
LABELV $685
line 1546
;1546:			else if (strcmp(ent->classname, "item_force_enlighten_light") == 0)
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $690
ARGP4
ADDRLP4 44
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 44
INDIRI4
CNSTI4 0
NEI4 $688
line 1547
;1547:			{
line 1548
;1548:				weight = 5;
ADDRLP4 12
CNSTF4 1084227584
ASGNF4
line 1549
;1549:			}
ADDRGP4 $689
JUMPV
LABELV $688
line 1550
;1550:			else if (strcmp(ent->classname, "item_force_boon") == 0)
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $693
ARGP4
ADDRLP4 48
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 48
INDIRI4
CNSTI4 0
NEI4 $691
line 1551
;1551:			{
line 1552
;1552:				weight = 5;
ADDRLP4 12
CNSTF4 1084227584
ASGNF4
line 1553
;1553:			}
ADDRGP4 $692
JUMPV
LABELV $691
line 1554
;1554:			else if (strcmp(ent->classname, "item_ysalimari") == 0)
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $696
ARGP4
ADDRLP4 52
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 52
INDIRI4
CNSTI4 0
NEI4 $694
line 1555
;1555:			{
line 1556
;1556:				weight = 2;
ADDRLP4 12
CNSTF4 1073741824
ASGNF4
line 1557
;1557:			}
ADDRGP4 $695
JUMPV
LABELV $694
line 1558
;1558:			else if (strstr(ent->classname, "weapon_") && ent->item)
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $699
ARGP4
ADDRLP4 56
ADDRGP4 strstr
CALLP4
ASGNP4
ADDRLP4 60
CNSTU4 0
ASGNU4
ADDRLP4 56
INDIRP4
CVPU4 4
ADDRLP4 60
INDIRU4
EQU4 $697
ADDRLP4 0
INDIRP4
CNSTI4 824
ADDP4
INDIRP4
CVPU4 4
ADDRLP4 60
INDIRU4
EQU4 $697
line 1559
;1559:			{
line 1560
;1560:				weight = botGlobalNavWeaponWeights[ent->item->giTag];
ADDRLP4 12
ADDRLP4 0
INDIRP4
CNSTI4 824
ADDP4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 botGlobalNavWeaponWeights
ADDP4
INDIRF4
ASGNF4
line 1561
;1561:			}
ADDRGP4 $698
JUMPV
LABELV $697
line 1562
;1562:			else if (ent->item && ent->item->giType == IT_AMMO)
ADDRLP4 64
ADDRLP4 0
INDIRP4
CNSTI4 824
ADDP4
INDIRP4
ASGNP4
ADDRLP4 64
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $700
ADDRLP4 64
INDIRP4
CNSTI4 36
ADDP4
INDIRI4
CNSTI4 2
NEI4 $700
line 1563
;1563:			{
line 1564
;1564:				weight = 3;
ADDRLP4 12
CNSTF4 1077936128
ASGNF4
line 1565
;1565:			}
LABELV $700
LABELV $698
LABELV $695
LABELV $692
LABELV $689
LABELV $686
LABELV $683
LABELV $680
LABELV $677
LABELV $674
line 1566
;1566:		}
LABELV $671
line 1568
;1567:
;1568:		if (ent && weight)
ADDRLP4 0
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $702
ADDRLP4 12
INDIRF4
CNSTF4 0
EQF4 $702
line 1569
;1569:		{
line 1570
;1570:			wpindex = GetNearestVisibleWPToItem(ent->s.pos.trBase, ent->s.number);
ADDRLP4 0
INDIRP4
CNSTI4 24
ADDP4
ARGP4
ADDRLP4 0
INDIRP4
INDIRI4
ARGI4
ADDRLP4 28
ADDRGP4 GetNearestVisibleWPToItem
CALLI4
ASGNI4
ADDRLP4 8
ADDRLP4 28
INDIRI4
ASGNI4
line 1572
;1571:
;1572:			if (wpindex != -1 && gWPArray[wpindex] && gWPArray[wpindex]->inuse)
ADDRLP4 8
INDIRI4
CNSTI4 -1
EQI4 $704
ADDRLP4 36
ADDRLP4 8
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 36
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $704
ADDRLP4 36
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $704
line 1573
;1573:			{ //found the waypoint nearest the center of this object
line 1574
;1574:				gWPArray[wpindex]->weight = weight;
ADDRLP4 8
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 20
ADDP4
ADDRLP4 12
INDIRF4
ASGNF4
line 1575
;1575:				gWPArray[wpindex]->flags |= WPFLAG_GOALPOINT;
ADDRLP4 40
ADDRLP4 8
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
ASGNP4
ADDRLP4 40
INDIRP4
ADDRLP4 40
INDIRP4
INDIRI4
CNSTI4 65536
BORI4
ASGNI4
line 1576
;1576:				gWPArray[wpindex]->associated_entity = ent->s.number;
ADDRLP4 8
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 32
ADDP4
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
line 1577
;1577:			}
LABELV $704
line 1578
;1578:		}
LABELV $702
line 1580
;1579:
;1580:		i++;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1581
;1581:	}
LABELV $669
line 1518
ADDRLP4 4
INDIRI4
CNSTI4 1024
LTI4 $668
line 1582
;1582:}
LABELV $657
endproc CalculateWeightGoals 68 8
export CalculateJumpRoutes
proc CalculateJumpRoutes 40 0
line 1585
;1583:
;1584:void CalculateJumpRoutes(void)
;1585:{
line 1586
;1586:	int i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 1587
;1587:	float nheightdif = 0;
ADDRLP4 8
CNSTF4 0
ASGNF4
line 1588
;1588:	float pheightdif = 0;
ADDRLP4 4
CNSTF4 0
ASGNF4
ADDRGP4 $708
JUMPV
LABELV $707
line 1591
;1589:
;1590:	while (i < gWPNum)
;1591:	{
line 1592
;1592:		if (gWPArray[i] && gWPArray[i]->inuse)
ADDRLP4 12
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 12
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $710
ADDRLP4 12
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $710
line 1593
;1593:		{
line 1594
;1594:			if (gWPArray[i]->flags & WPFLAG_JUMP)
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
INDIRI4
CNSTI4 16
BANDI4
CNSTI4 0
EQI4 $712
line 1595
;1595:			{
line 1596
;1596:				nheightdif = 0;
ADDRLP4 8
CNSTF4 0
ASGNF4
line 1597
;1597:				pheightdif = 0;
ADDRLP4 4
CNSTF4 0
ASGNF4
line 1599
;1598:
;1599:				gWPArray[i]->forceJumpTo = 0;
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 36
ADDP4
CNSTI4 0
ASGNI4
line 1601
;1600:
;1601:				if (gWPArray[i-1] && gWPArray[i-1]->inuse && (gWPArray[i-1]->origin[2]+16) < gWPArray[i]->origin[2])
ADDRLP4 16
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 16
INDIRI4
ADDRGP4 gWPArray-4
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $714
ADDRLP4 16
INDIRI4
ADDRGP4 gWPArray-4
ADDP4
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $714
ADDRLP4 20
CNSTI4 8
ASGNI4
ADDRLP4 16
INDIRI4
ADDRGP4 gWPArray-4
ADDP4
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
INDIRF4
CNSTF4 1098907648
ADDF4
ADDRLP4 16
INDIRI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
INDIRF4
GEF4 $714
line 1602
;1602:				{
line 1603
;1603:					nheightdif = (gWPArray[i]->origin[2] - gWPArray[i-1]->origin[2]);
ADDRLP4 24
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 28
CNSTI4 8
ASGNI4
ADDRLP4 8
ADDRLP4 24
INDIRI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRLP4 28
INDIRI4
ADDP4
INDIRF4
ADDRLP4 24
INDIRI4
ADDRGP4 gWPArray-4
ADDP4
INDIRP4
ADDRLP4 28
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 1604
;1604:				}
LABELV $714
line 1606
;1605:
;1606:				if (gWPArray[i+1] && gWPArray[i+1]->inuse && (gWPArray[i+1]->origin[2]+16) < gWPArray[i]->origin[2])
ADDRLP4 24
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 24
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $720
ADDRLP4 24
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $720
ADDRLP4 28
CNSTI4 8
ASGNI4
ADDRLP4 24
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
ADDRLP4 28
INDIRI4
ADDP4
INDIRF4
CNSTF4 1098907648
ADDF4
ADDRLP4 24
INDIRI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRLP4 28
INDIRI4
ADDP4
INDIRF4
GEF4 $720
line 1607
;1607:				{
line 1608
;1608:					pheightdif = (gWPArray[i]->origin[2] - gWPArray[i+1]->origin[2]);
ADDRLP4 32
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 36
CNSTI4 8
ASGNI4
ADDRLP4 4
ADDRLP4 32
INDIRI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
INDIRF4
ADDRLP4 32
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 1609
;1609:				}
LABELV $720
line 1611
;1610:
;1611:				if (nheightdif > pheightdif)
ADDRLP4 8
INDIRF4
ADDRLP4 4
INDIRF4
LEF4 $726
line 1612
;1612:				{
line 1613
;1613:					pheightdif = nheightdif;
ADDRLP4 4
ADDRLP4 8
INDIRF4
ASGNF4
line 1614
;1614:				}
LABELV $726
line 1616
;1615:
;1616:				if (pheightdif)
ADDRLP4 4
INDIRF4
CNSTF4 0
EQF4 $728
line 1617
;1617:				{
line 1618
;1618:					if (pheightdif > 500)
ADDRLP4 4
INDIRF4
CNSTF4 1140457472
LEF4 $730
line 1619
;1619:					{
line 1620
;1620:						gWPArray[i]->forceJumpTo = 999; //FORCE_LEVEL_3; //FJSR
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 36
ADDP4
CNSTI4 999
ASGNI4
line 1621
;1621:					}
ADDRGP4 $731
JUMPV
LABELV $730
line 1622
;1622:					else if (pheightdif > 256)
ADDRLP4 4
INDIRF4
CNSTF4 1132462080
LEF4 $732
line 1623
;1623:					{
line 1624
;1624:						gWPArray[i]->forceJumpTo = 999; //FORCE_LEVEL_2; //FJSR
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 36
ADDP4
CNSTI4 999
ASGNI4
line 1625
;1625:					}
ADDRGP4 $733
JUMPV
LABELV $732
line 1626
;1626:					else if (pheightdif > 128)
ADDRLP4 4
INDIRF4
CNSTF4 1124073472
LEF4 $734
line 1627
;1627:					{
line 1628
;1628:						gWPArray[i]->forceJumpTo = 999; //FORCE_LEVEL_1; //FJSR
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 36
ADDP4
CNSTI4 999
ASGNI4
line 1629
;1629:					}
LABELV $734
LABELV $733
LABELV $731
line 1630
;1630:				}
LABELV $728
line 1631
;1631:			}
LABELV $712
line 1632
;1632:		}
LABELV $710
line 1634
;1633:
;1634:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1635
;1635:	}
LABELV $708
line 1590
ADDRLP4 0
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $707
line 1636
;1636:}
LABELV $706
endproc CalculateJumpRoutes 40 0
export LoadPathData
proc LoadPathData 416 16
line 1639
;1637:
;1638:int LoadPathData(const char *filename)
;1639:{
line 1649
;1640:	fileHandle_t f;
;1641:	char *fileString;
;1642:	char *currentVar;
;1643:	char *routePath;
;1644:	wpobject_t thiswp;
;1645:	int len;
;1646:	int i, i_cv;
;1647:	int nei_num;
;1648:
;1649:	i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 1650
;1650:	i_cv = 0;
ADDRLP4 8
CNSTI4 0
ASGNI4
line 1652
;1651:
;1652:	routePath = (char *)B_TempAlloc(1024);
CNSTI4 1024
ARGI4
ADDRLP4 332
ADDRGP4 B_TempAlloc
CALLP4
ASGNP4
ADDRLP4 328
ADDRLP4 332
INDIRP4
ASGNP4
line 1654
;1653:
;1654:	Com_sprintf(routePath, 1024, "botroutes/%s.wnt\0", filename);
ADDRLP4 328
INDIRP4
ARGP4
CNSTI4 1024
ARGI4
ADDRGP4 $737
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 Com_sprintf
CALLV
pop
line 1656
;1655:
;1656:	len = trap_FS_FOpenFile(routePath, &f, FS_READ);
ADDRLP4 328
INDIRP4
ARGP4
ADDRLP4 324
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 336
ADDRGP4 trap_FS_FOpenFile
CALLI4
ASGNI4
ADDRLP4 320
ADDRLP4 336
INDIRI4
ASGNI4
line 1658
;1657:
;1658:	B_TempFree(1024); //routePath
CNSTI4 1024
ARGI4
ADDRGP4 B_TempFree
CALLV
pop
line 1660
;1659:
;1660:	if (!f)
ADDRLP4 324
INDIRI4
CNSTI4 0
NEI4 $738
line 1661
;1661:	{
line 1662
;1662:		G_Printf(S_COLOR_YELLOW "Bot route data not found\n");
ADDRGP4 $740
ARGP4
ADDRGP4 G_Printf
CALLV
pop
line 1663
;1663:		return 2;
CNSTI4 2
RETI4
ADDRGP4 $736
JUMPV
LABELV $738
line 1666
;1664:	}
;1665:
;1666:	if (len >= 524288)
ADDRLP4 320
INDIRI4
CNSTI4 524288
LTI4 $741
line 1667
;1667:	{
line 1668
;1668:		G_Printf(S_COLOR_RED "Route file exceeds maximum length\n");
ADDRGP4 $743
ARGP4
ADDRGP4 G_Printf
CALLV
pop
line 1669
;1669:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $736
JUMPV
LABELV $741
line 1672
;1670:	}
;1671:
;1672:	fileString = (char *)B_TempAlloc(524288);
CNSTI4 524288
ARGI4
ADDRLP4 340
ADDRGP4 B_TempAlloc
CALLP4
ASGNP4
ADDRLP4 4
ADDRLP4 340
INDIRP4
ASGNP4
line 1673
;1673:	currentVar = (char *)B_TempAlloc(2048);
CNSTI4 2048
ARGI4
ADDRLP4 344
ADDRGP4 B_TempAlloc
CALLP4
ASGNP4
ADDRLP4 12
ADDRLP4 344
INDIRP4
ASGNP4
line 1675
;1674:
;1675:	trap_FS_Read(fileString, len, f);
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 320
INDIRI4
ARGI4
ADDRLP4 324
INDIRI4
ARGI4
ADDRGP4 trap_FS_Read
CALLV
pop
line 1677
;1676:
;1677:	if (fileString[i] == 'l')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 108
NEI4 $744
line 1678
;1678:	{ //contains a "levelflags" entry..
line 1680
;1679:		char readLFlags[64];
;1680:		i_cv = 0;
ADDRLP4 8
CNSTI4 0
ASGNI4
ADDRGP4 $747
JUMPV
LABELV $746
line 1683
;1681:
;1682:		while (fileString[i] != ' ')
;1683:		{
line 1684
;1684:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1685
;1685:		}
LABELV $747
line 1682
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 32
NEI4 $746
line 1686
;1686:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRGP4 $750
JUMPV
LABELV $749
line 1688
;1687:		while (fileString[i] != '\n')
;1688:		{
line 1689
;1689:			readLFlags[i_cv] = fileString[i];
ADDRLP4 8
INDIRI4
ADDRLP4 348
ADDP4
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
ASGNI1
line 1690
;1690:			i_cv++;
ADDRLP4 8
ADDRLP4 8
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1691
;1691:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1692
;1692:		}
LABELV $750
line 1687
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 10
NEI4 $749
line 1693
;1693:		readLFlags[i_cv] = 0;
ADDRLP4 8
INDIRI4
ADDRLP4 348
ADDP4
CNSTI1 0
ASGNI1
line 1694
;1694:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1696
;1695:
;1696:		gLevelFlags = atoi(readLFlags);
ADDRLP4 348
ARGP4
ADDRLP4 412
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRGP4 gLevelFlags
ADDRLP4 412
INDIRI4
ASGNI4
line 1697
;1697:	}
ADDRGP4 $753
JUMPV
LABELV $744
line 1699
;1698:	else
;1699:	{
line 1700
;1700:		gLevelFlags = 0;
ADDRGP4 gLevelFlags
CNSTI4 0
ASGNI4
line 1701
;1701:	}
ADDRGP4 $753
JUMPV
LABELV $752
line 1704
;1702:
;1703:	while (i < len)
;1704:	{
line 1705
;1705:		i_cv = 0;
ADDRLP4 8
CNSTI4 0
ASGNI4
line 1707
;1706:
;1707:		thiswp.index = 0;
ADDRLP4 16+16
CNSTI4 0
ASGNI4
line 1708
;1708:		thiswp.flags = 0;
ADDRLP4 16+28
CNSTI4 0
ASGNI4
line 1709
;1709:		thiswp.inuse = 0;
ADDRLP4 16+12
CNSTI4 0
ASGNI4
line 1710
;1710:		thiswp.neighbornum = 0;
ADDRLP4 16+40
CNSTI4 0
ASGNI4
line 1711
;1711:		thiswp.origin[0] = 0;
ADDRLP4 16
CNSTF4 0
ASGNF4
line 1712
;1712:		thiswp.origin[1] = 0;
ADDRLP4 16+4
CNSTF4 0
ASGNF4
line 1713
;1713:		thiswp.origin[2] = 0;
ADDRLP4 16+8
CNSTF4 0
ASGNF4
line 1714
;1714:		thiswp.weight = 0;
ADDRLP4 16+20
CNSTF4 0
ASGNF4
line 1715
;1715:		thiswp.associated_entity = ENTITYNUM_NONE;
ADDRLP4 16+32
CNSTI4 1023
ASGNI4
line 1716
;1716:		thiswp.forceJumpTo = 0;
ADDRLP4 16+36
CNSTI4 0
ASGNI4
line 1717
;1717:		thiswp.disttonext = 0;
ADDRLP4 16+24
CNSTF4 0
ASGNF4
line 1718
;1718:		nei_num = 0;
ADDRLP4 316
CNSTI4 0
ASGNI4
ADDRGP4 $766
JUMPV
LABELV $765
line 1721
;1719:
;1720:		while (nei_num < MAX_NEIGHBOR_SIZE)
;1721:		{
line 1722
;1722:			thiswp.neighbors[nei_num].num = 0;
ADDRLP4 316
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 16+44
ADDP4
CNSTI4 0
ASGNI4
line 1723
;1723:			thiswp.neighbors[nei_num].forceJumpTo = 0;
ADDRLP4 316
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 16+44+4
ADDP4
CNSTI4 0
ASGNI4
line 1725
;1724:
;1725:			nei_num++;
ADDRLP4 316
ADDRLP4 316
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1726
;1726:		}
LABELV $766
line 1720
ADDRLP4 316
INDIRI4
CNSTI4 32
LTI4 $765
ADDRGP4 $772
JUMPV
LABELV $771
line 1729
;1727:		
;1728:		while (fileString[i] != ' ')
;1729:		{
line 1730
;1730:			currentVar[i_cv] = fileString[i];
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRP4
ADDP4
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
ASGNI1
line 1731
;1731:			i_cv++;
ADDRLP4 8
ADDRLP4 8
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1732
;1732:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1733
;1733:		}
LABELV $772
line 1728
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 32
NEI4 $771
line 1734
;1734:		currentVar[i_cv] = '\0';
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRP4
ADDP4
CNSTI1 0
ASGNI1
line 1736
;1735:
;1736:		thiswp.index = atoi(currentVar);
ADDRLP4 12
INDIRP4
ARGP4
ADDRLP4 348
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 16+16
ADDRLP4 348
INDIRI4
ASGNI4
line 1738
;1737:
;1738:		i_cv = 0;
ADDRLP4 8
CNSTI4 0
ASGNI4
line 1739
;1739:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRGP4 $776
JUMPV
LABELV $775
line 1742
;1740:
;1741:		while (fileString[i] != ' ')
;1742:		{
line 1743
;1743:			currentVar[i_cv] = fileString[i];
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRP4
ADDP4
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
ASGNI1
line 1744
;1744:			i_cv++;
ADDRLP4 8
ADDRLP4 8
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1745
;1745:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1746
;1746:		}
LABELV $776
line 1741
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 32
NEI4 $775
line 1747
;1747:		currentVar[i_cv] = '\0';
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRP4
ADDP4
CNSTI1 0
ASGNI1
line 1749
;1748:
;1749:		thiswp.flags = atoi(currentVar);
ADDRLP4 12
INDIRP4
ARGP4
ADDRLP4 352
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 16+28
ADDRLP4 352
INDIRI4
ASGNI4
line 1751
;1750:
;1751:		i_cv = 0;
ADDRLP4 8
CNSTI4 0
ASGNI4
line 1752
;1752:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRGP4 $780
JUMPV
LABELV $779
line 1755
;1753:
;1754:		while (fileString[i] != ' ')
;1755:		{
line 1756
;1756:			currentVar[i_cv] = fileString[i];
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRP4
ADDP4
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
ASGNI1
line 1757
;1757:			i_cv++;
ADDRLP4 8
ADDRLP4 8
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1758
;1758:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1759
;1759:		}
LABELV $780
line 1754
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 32
NEI4 $779
line 1760
;1760:		currentVar[i_cv] = '\0';
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRP4
ADDP4
CNSTI1 0
ASGNI1
line 1762
;1761:
;1762:		thiswp.weight = atof(currentVar);
ADDRLP4 12
INDIRP4
ARGP4
ADDRLP4 356
ADDRGP4 atof
CALLF4
ASGNF4
ADDRLP4 16+20
ADDRLP4 356
INDIRF4
ASGNF4
line 1764
;1763:
;1764:		i_cv = 0;
ADDRLP4 8
CNSTI4 0
ASGNI4
line 1765
;1765:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1766
;1766:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRGP4 $784
JUMPV
LABELV $783
line 1769
;1767:
;1768:		while (fileString[i] != ' ')
;1769:		{
line 1770
;1770:			currentVar[i_cv] = fileString[i];
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRP4
ADDP4
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
ASGNI1
line 1771
;1771:			i_cv++;
ADDRLP4 8
ADDRLP4 8
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1772
;1772:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1773
;1773:		}
LABELV $784
line 1768
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 32
NEI4 $783
line 1774
;1774:		currentVar[i_cv] = '\0';
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRP4
ADDP4
CNSTI1 0
ASGNI1
line 1776
;1775:
;1776:		thiswp.origin[0] = atof(currentVar);
ADDRLP4 12
INDIRP4
ARGP4
ADDRLP4 360
ADDRGP4 atof
CALLF4
ASGNF4
ADDRLP4 16
ADDRLP4 360
INDIRF4
ASGNF4
line 1778
;1777:
;1778:		i_cv = 0;
ADDRLP4 8
CNSTI4 0
ASGNI4
line 1779
;1779:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRGP4 $787
JUMPV
LABELV $786
line 1782
;1780:
;1781:		while (fileString[i] != ' ')
;1782:		{
line 1783
;1783:			currentVar[i_cv] = fileString[i];
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRP4
ADDP4
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
ASGNI1
line 1784
;1784:			i_cv++;
ADDRLP4 8
ADDRLP4 8
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1785
;1785:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1786
;1786:		}
LABELV $787
line 1781
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 32
NEI4 $786
line 1787
;1787:		currentVar[i_cv] = '\0';
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRP4
ADDP4
CNSTI1 0
ASGNI1
line 1789
;1788:
;1789:		thiswp.origin[1] = atof(currentVar);
ADDRLP4 12
INDIRP4
ARGP4
ADDRLP4 364
ADDRGP4 atof
CALLF4
ASGNF4
ADDRLP4 16+4
ADDRLP4 364
INDIRF4
ASGNF4
line 1791
;1790:
;1791:		i_cv = 0;
ADDRLP4 8
CNSTI4 0
ASGNI4
line 1792
;1792:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRGP4 $791
JUMPV
LABELV $790
line 1795
;1793:
;1794:		while (fileString[i] != ')')
;1795:		{
line 1796
;1796:			currentVar[i_cv] = fileString[i];
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRP4
ADDP4
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
ASGNI1
line 1797
;1797:			i_cv++;
ADDRLP4 8
ADDRLP4 8
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1798
;1798:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1799
;1799:		}
LABELV $791
line 1794
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 41
NEI4 $790
line 1800
;1800:		currentVar[i_cv] = '\0';
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRP4
ADDP4
CNSTI1 0
ASGNI1
line 1802
;1801:
;1802:		thiswp.origin[2] = atof(currentVar);
ADDRLP4 12
INDIRP4
ARGP4
ADDRLP4 368
ADDRGP4 atof
CALLF4
ASGNF4
ADDRLP4 16+8
ADDRLP4 368
INDIRF4
ASGNF4
line 1804
;1803:
;1804:		i += 4;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 4
ADDI4
ASGNI4
ADDRGP4 $795
JUMPV
LABELV $794
line 1807
;1805:
;1806:		while (fileString[i] != '}')
;1807:		{
line 1808
;1808:			i_cv = 0;
ADDRLP4 8
CNSTI4 0
ASGNI4
ADDRGP4 $798
JUMPV
LABELV $797
line 1810
;1809:			while (fileString[i] != ' ' && fileString[i] != '-')
;1810:			{
line 1811
;1811:				currentVar[i_cv] = fileString[i];
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRP4
ADDP4
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
ASGNI1
line 1812
;1812:				i_cv++;
ADDRLP4 8
ADDRLP4 8
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1813
;1813:				i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1814
;1814:			}
LABELV $798
line 1809
ADDRLP4 372
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
ASGNI4
ADDRLP4 372
INDIRI4
CNSTI4 32
EQI4 $800
ADDRLP4 372
INDIRI4
CNSTI4 45
NEI4 $797
LABELV $800
line 1815
;1815:			currentVar[i_cv] = '\0';
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRP4
ADDP4
CNSTI1 0
ASGNI1
line 1817
;1816:
;1817:			thiswp.neighbors[thiswp.neighbornum].num = atoi(currentVar);
ADDRLP4 12
INDIRP4
ARGP4
ADDRLP4 376
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 16+40
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 16+44
ADDP4
ADDRLP4 376
INDIRI4
ASGNI4
line 1819
;1818:
;1819:			if (fileString[i] == '-')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 45
NEI4 $803
line 1820
;1820:			{
line 1821
;1821:				i_cv = 0;
ADDRLP4 8
CNSTI4 0
ASGNI4
line 1822
;1822:				i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRGP4 $806
JUMPV
LABELV $805
line 1825
;1823:
;1824:				while (fileString[i] != ' ')
;1825:				{
line 1826
;1826:					currentVar[i_cv] = fileString[i];
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRP4
ADDP4
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
ASGNI1
line 1827
;1827:					i_cv++;
ADDRLP4 8
ADDRLP4 8
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1828
;1828:					i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1829
;1829:				}
LABELV $806
line 1824
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 32
NEI4 $805
line 1830
;1830:				currentVar[i_cv] = '\0';
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRP4
ADDP4
CNSTI1 0
ASGNI1
line 1832
;1831:
;1832:				thiswp.neighbors[thiswp.neighbornum].forceJumpTo = 999; //atoi(currentVar); //FJSR
ADDRLP4 16+40
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 16+44+4
ADDP4
CNSTI4 999
ASGNI4
line 1833
;1833:			}
ADDRGP4 $804
JUMPV
LABELV $803
line 1835
;1834:			else
;1835:			{
line 1836
;1836:				thiswp.neighbors[thiswp.neighbornum].forceJumpTo = 0;
ADDRLP4 16+40
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 16+44+4
ADDP4
CNSTI4 0
ASGNI4
line 1837
;1837:			}
LABELV $804
line 1839
;1838:
;1839:			thiswp.neighbornum++;
ADDRLP4 16+40
ADDRLP4 16+40
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1841
;1840:
;1841:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1842
;1842:		}
LABELV $795
line 1806
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 125
NEI4 $794
line 1844
;1843:
;1844:		i_cv = 0;
ADDRLP4 8
CNSTI4 0
ASGNI4
line 1845
;1845:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1846
;1846:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRGP4 $816
JUMPV
LABELV $815
line 1849
;1847:
;1848:		while (fileString[i] != '\n')
;1849:		{
line 1850
;1850:			currentVar[i_cv] = fileString[i];
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRP4
ADDP4
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
ASGNI1
line 1851
;1851:			i_cv++;
ADDRLP4 8
ADDRLP4 8
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1852
;1852:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1853
;1853:		}
LABELV $816
line 1848
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 10
NEI4 $815
line 1854
;1854:		currentVar[i_cv] = '\0';
ADDRLP4 8
INDIRI4
ADDRLP4 12
INDIRP4
ADDP4
CNSTI1 0
ASGNI1
line 1856
;1855:
;1856:		thiswp.disttonext = atof(currentVar);
ADDRLP4 12
INDIRP4
ARGP4
ADDRLP4 372
ADDRGP4 atof
CALLF4
ASGNF4
ADDRLP4 16+24
ADDRLP4 372
INDIRF4
ASGNF4
line 1858
;1857:
;1858:		CreateNewWP_FromObject(&thiswp);
ADDRLP4 16
ARGP4
ADDRGP4 CreateNewWP_FromObject
CALLV
pop
line 1859
;1859:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1860
;1860:	}
LABELV $753
line 1703
ADDRLP4 0
INDIRI4
ADDRLP4 320
INDIRI4
LTI4 $752
line 1862
;1861:
;1862:	B_TempFree(524288); //fileString
CNSTI4 524288
ARGI4
ADDRGP4 B_TempFree
CALLV
pop
line 1863
;1863:	B_TempFree(2048); //currentVar
CNSTI4 2048
ARGI4
ADDRGP4 B_TempFree
CALLV
pop
line 1865
;1864:
;1865:	trap_FS_FCloseFile(f);
ADDRLP4 324
INDIRI4
ARGI4
ADDRGP4 trap_FS_FCloseFile
CALLV
pop
line 1867
;1866:
;1867:	if (g_gametype.integer == GT_SAGA)
ADDRGP4 g_gametype+12
INDIRI4
CNSTI4 6
NEI4 $819
line 1868
;1868:	{
line 1869
;1869:		CalculateSagaGoals();
ADDRGP4 CalculateSagaGoals
CALLV
pop
line 1870
;1870:	}
LABELV $819
line 1872
;1871:
;1872:	CalculateWeightGoals();
ADDRGP4 CalculateWeightGoals
CALLV
pop
line 1876
;1873:	//calculate weights for idle activity goals when
;1874:	//the bot has absolutely nothing else to do
;1875:
;1876:	CalculateJumpRoutes();
ADDRGP4 CalculateJumpRoutes
CALLV
pop
line 1880
;1877:	//Look at jump points and mark them as requiring
;1878:	//force jumping as needed
;1879:
;1880:	return 1;
CNSTI4 1
RETI4
LABELV $736
endproc LoadPathData 416 16
export FlagObjects
proc FlagObjects 1172 28
line 1884
;1881:}
;1882:
;1883:void FlagObjects(void)
;1884:{
line 1885
;1885:	int i = 0, bestindex = 0, found = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRLP4 1140
CNSTI4 0
ASGNI4
ADDRLP4 1144
CNSTI4 0
ASGNI4
line 1886
;1886:	float bestdist = 999999, tlen = 0;
ADDRLP4 1112
CNSTF4 1232348144
ASGNF4
ADDRLP4 28
CNSTF4 0
ASGNF4
line 1891
;1887:	gentity_t *flag_red, *flag_blue, *ent;
;1888:	vec3_t a, mins, maxs;
;1889:	trace_t tr;
;1890:
;1891:	flag_red = NULL;
ADDRLP4 20
CNSTP4 0
ASGNP4
line 1892
;1892:	flag_blue = NULL;
ADDRLP4 24
CNSTP4 0
ASGNP4
line 1894
;1893:
;1894:	mins[0] = -15;
ADDRLP4 1116
CNSTF4 3245342720
ASGNF4
line 1895
;1895:	mins[1] = -15;
ADDRLP4 1116+4
CNSTF4 3245342720
ASGNF4
line 1896
;1896:	mins[2] = -5;
ADDRLP4 1116+8
CNSTF4 3231711232
ASGNF4
line 1897
;1897:	maxs[0] = 15;
ADDRLP4 1128
CNSTF4 1097859072
ASGNF4
line 1898
;1898:	maxs[1] = 15;
ADDRLP4 1128+4
CNSTF4 1097859072
ASGNF4
line 1899
;1899:	maxs[2] = 5;
ADDRLP4 1128+8
CNSTF4 1084227584
ASGNF4
ADDRGP4 $828
JUMPV
LABELV $827
line 1902
;1900:
;1901:	while (i < MAX_GENTITIES)
;1902:	{
line 1903
;1903:		ent = &g_entities[i];
ADDRLP4 4
CNSTI4 828
ADDRLP4 0
INDIRI4
MULI4
ADDRGP4 g_entities
ADDP4
ASGNP4
line 1905
;1904:
;1905:		if (ent && ent->inuse && ent->classname)
ADDRLP4 1152
CNSTU4 0
ASGNU4
ADDRLP4 4
INDIRP4
CVPU4 4
ADDRLP4 1152
INDIRU4
EQU4 $830
ADDRLP4 4
INDIRP4
CNSTI4 412
ADDP4
INDIRI4
CNSTI4 0
EQI4 $830
ADDRLP4 4
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
CVPU4 4
ADDRLP4 1152
INDIRU4
EQU4 $830
line 1906
;1906:		{
line 1907
;1907:			if (!flag_red && strcmp(ent->classname, "team_CTF_redflag") == 0)
ADDRLP4 20
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $832
ADDRLP4 4
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $834
ARGP4
ADDRLP4 1156
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 1156
INDIRI4
CNSTI4 0
NEI4 $832
line 1908
;1908:			{
line 1909
;1909:				flag_red = ent;
ADDRLP4 20
ADDRLP4 4
INDIRP4
ASGNP4
line 1910
;1910:			}
ADDRGP4 $833
JUMPV
LABELV $832
line 1911
;1911:			else if (!flag_blue && strcmp(ent->classname, "team_CTF_blueflag") == 0)
ADDRLP4 24
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $835
ADDRLP4 4
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $837
ARGP4
ADDRLP4 1160
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 1160
INDIRI4
CNSTI4 0
NEI4 $835
line 1912
;1912:			{
line 1913
;1913:				flag_blue = ent;
ADDRLP4 24
ADDRLP4 4
INDIRP4
ASGNP4
line 1914
;1914:			}
LABELV $835
LABELV $833
line 1916
;1915:
;1916:			if (flag_red && flag_blue)
ADDRLP4 1164
CNSTU4 0
ASGNU4
ADDRLP4 20
INDIRP4
CVPU4 4
ADDRLP4 1164
INDIRU4
EQU4 $838
ADDRLP4 24
INDIRP4
CVPU4 4
ADDRLP4 1164
INDIRU4
EQU4 $838
line 1917
;1917:			{
line 1918
;1918:				break;
ADDRGP4 $829
JUMPV
LABELV $838
line 1920
;1919:			}
;1920:		}
LABELV $830
line 1922
;1921:
;1922:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1923
;1923:	}
LABELV $828
line 1901
ADDRLP4 0
INDIRI4
CNSTI4 1024
LTI4 $827
LABELV $829
line 1925
;1924:
;1925:	i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 1927
;1926:
;1927:	if (!flag_red || !flag_blue)
ADDRLP4 1148
CNSTU4 0
ASGNU4
ADDRLP4 20
INDIRP4
CVPU4 4
ADDRLP4 1148
INDIRU4
EQU4 $842
ADDRLP4 24
INDIRP4
CVPU4 4
ADDRLP4 1148
INDIRU4
NEU4 $844
LABELV $842
line 1928
;1928:	{
line 1929
;1929:		return;
ADDRGP4 $822
JUMPV
LABELV $843
line 1933
;1930:	}
;1931:
;1932:	while (i < gWPNum)
;1933:	{
line 1934
;1934:		if (gWPArray[i] && gWPArray[i]->inuse)
ADDRLP4 1152
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 1152
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $846
ADDRLP4 1152
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $846
line 1935
;1935:		{
line 1936
;1936:			VectorSubtract(flag_red->s.pos.trBase, gWPArray[i]->origin, a);
ADDRLP4 1160
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
ASGNP4
ADDRLP4 8
ADDRLP4 20
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
ADDRLP4 1160
INDIRP4
INDIRP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 8+4
ADDRLP4 20
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
ADDRLP4 1160
INDIRP4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 8+8
ADDRLP4 20
INDIRP4
CNSTI4 32
ADDP4
INDIRF4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
SUBF4
ASGNF4
line 1937
;1937:			tlen = VectorLength(a);
ADDRLP4 8
ARGP4
ADDRLP4 1164
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 28
ADDRLP4 1164
INDIRF4
ASGNF4
line 1939
;1938:
;1939:			if (tlen < bestdist)
ADDRLP4 28
INDIRF4
ADDRLP4 1112
INDIRF4
GEF4 $850
line 1940
;1940:			{
line 1941
;1941:				trap_Trace(&tr, flag_red->s.pos.trBase, mins, maxs, gWPArray[i]->origin, flag_red->s.number, MASK_SOLID);
ADDRLP4 32
ARGP4
ADDRLP4 20
INDIRP4
CNSTI4 24
ADDP4
ARGP4
ADDRLP4 1116
ARGP4
ADDRLP4 1128
ARGP4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ARGP4
ADDRLP4 20
INDIRP4
INDIRI4
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 trap_Trace
CALLV
pop
line 1943
;1942:
;1943:				if (tr.fraction == 1 || tr.entityNum == flag_red->s.number)
ADDRLP4 32+8
INDIRF4
CNSTF4 1065353216
EQF4 $856
ADDRLP4 32+52
INDIRI4
ADDRLP4 20
INDIRP4
INDIRI4
NEI4 $852
LABELV $856
line 1944
;1944:				{
line 1945
;1945:					bestdist = tlen;
ADDRLP4 1112
ADDRLP4 28
INDIRF4
ASGNF4
line 1946
;1946:					bestindex = i;
ADDRLP4 1140
ADDRLP4 0
INDIRI4
ASGNI4
line 1947
;1947:					found = 1;
ADDRLP4 1144
CNSTI4 1
ASGNI4
line 1948
;1948:				}
LABELV $852
line 1949
;1949:			}
LABELV $850
line 1951
;1950:
;1951:		}
LABELV $846
line 1953
;1952:
;1953:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1954
;1954:	}
LABELV $844
line 1932
ADDRLP4 0
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $843
line 1956
;1955:
;1956:	if (found)
ADDRLP4 1144
INDIRI4
CNSTI4 0
EQI4 $857
line 1957
;1957:	{
line 1958
;1958:		gWPArray[bestindex]->flags |= WPFLAG_RED_FLAG;
ADDRLP4 1152
ADDRLP4 1140
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
ASGNP4
ADDRLP4 1152
INDIRP4
ADDRLP4 1152
INDIRP4
INDIRI4
CNSTI4 131072
BORI4
ASGNI4
line 1959
;1959:		flagRed = gWPArray[bestindex];
ADDRGP4 flagRed
ADDRLP4 1140
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
line 1960
;1960:		oFlagRed = flagRed;
ADDRGP4 oFlagRed
ADDRGP4 flagRed
INDIRP4
ASGNP4
line 1961
;1961:		eFlagRed = flag_red;
ADDRGP4 eFlagRed
ADDRLP4 20
INDIRP4
ASGNP4
line 1962
;1962:	}
LABELV $857
line 1964
;1963:
;1964:	bestdist = 999999;
ADDRLP4 1112
CNSTF4 1232348144
ASGNF4
line 1965
;1965:	bestindex = 0;
ADDRLP4 1140
CNSTI4 0
ASGNI4
line 1966
;1966:	found = 0;
ADDRLP4 1144
CNSTI4 0
ASGNI4
line 1967
;1967:	i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $860
JUMPV
LABELV $859
line 1970
;1968:
;1969:	while (i < gWPNum)
;1970:	{
line 1971
;1971:		if (gWPArray[i] && gWPArray[i]->inuse)
ADDRLP4 1152
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 1152
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $862
ADDRLP4 1152
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $862
line 1972
;1972:		{
line 1973
;1973:			VectorSubtract(flag_blue->s.pos.trBase, gWPArray[i]->origin, a);
ADDRLP4 1160
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
ASGNP4
ADDRLP4 8
ADDRLP4 24
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
ADDRLP4 1160
INDIRP4
INDIRP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 8+4
ADDRLP4 24
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
ADDRLP4 1160
INDIRP4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 8+8
ADDRLP4 24
INDIRP4
CNSTI4 32
ADDP4
INDIRF4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
SUBF4
ASGNF4
line 1974
;1974:			tlen = VectorLength(a);
ADDRLP4 8
ARGP4
ADDRLP4 1164
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 28
ADDRLP4 1164
INDIRF4
ASGNF4
line 1976
;1975:
;1976:			if (tlen < bestdist)
ADDRLP4 28
INDIRF4
ADDRLP4 1112
INDIRF4
GEF4 $866
line 1977
;1977:			{
line 1978
;1978:				trap_Trace(&tr, flag_blue->s.pos.trBase, mins, maxs, gWPArray[i]->origin, flag_blue->s.number, MASK_SOLID);
ADDRLP4 32
ARGP4
ADDRLP4 24
INDIRP4
CNSTI4 24
ADDP4
ARGP4
ADDRLP4 1116
ARGP4
ADDRLP4 1128
ARGP4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ARGP4
ADDRLP4 24
INDIRP4
INDIRI4
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 trap_Trace
CALLV
pop
line 1980
;1979:
;1980:				if (tr.fraction == 1 || tr.entityNum == flag_blue->s.number)
ADDRLP4 32+8
INDIRF4
CNSTF4 1065353216
EQF4 $872
ADDRLP4 32+52
INDIRI4
ADDRLP4 24
INDIRP4
INDIRI4
NEI4 $868
LABELV $872
line 1981
;1981:				{
line 1982
;1982:					bestdist = tlen;
ADDRLP4 1112
ADDRLP4 28
INDIRF4
ASGNF4
line 1983
;1983:					bestindex = i;
ADDRLP4 1140
ADDRLP4 0
INDIRI4
ASGNI4
line 1984
;1984:					found = 1;
ADDRLP4 1144
CNSTI4 1
ASGNI4
line 1985
;1985:				}
LABELV $868
line 1986
;1986:			}
LABELV $866
line 1988
;1987:
;1988:		}
LABELV $862
line 1990
;1989:
;1990:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1991
;1991:	}
LABELV $860
line 1969
ADDRLP4 0
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $859
line 1993
;1992:
;1993:	if (found)
ADDRLP4 1144
INDIRI4
CNSTI4 0
EQI4 $873
line 1994
;1994:	{
line 1995
;1995:		gWPArray[bestindex]->flags |= WPFLAG_BLUE_FLAG;
ADDRLP4 1152
ADDRLP4 1140
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
ASGNP4
ADDRLP4 1152
INDIRP4
ADDRLP4 1152
INDIRP4
INDIRI4
CNSTI4 262144
BORI4
ASGNI4
line 1996
;1996:		flagBlue = gWPArray[bestindex];
ADDRGP4 flagBlue
ADDRLP4 1140
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
line 1997
;1997:		oFlagBlue = flagBlue;
ADDRGP4 oFlagBlue
ADDRGP4 flagBlue
INDIRP4
ASGNP4
line 1998
;1998:		eFlagBlue = flag_blue;
ADDRGP4 eFlagBlue
ADDRLP4 24
INDIRP4
ASGNP4
line 1999
;1999:	}
LABELV $873
line 2000
;2000:}
LABELV $822
endproc FlagObjects 1172 28
export SavePathData
proc SavePathData 112 36
line 2003
;2001:
;2002:int SavePathData(const char *filename)
;2003:{
line 2012
;2004:	fileHandle_t f;
;2005:	char *fileString;
;2006:	char *storeString;
;2007:	char *routePath;
;2008:	vec3_t a;
;2009:	float flLen;
;2010:	int i, s, n;
;2011:
;2012:	fileString = NULL;
ADDRLP4 28
CNSTP4 0
ASGNP4
line 2013
;2013:	i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 2014
;2014:	s = 0;
ADDRLP4 40
CNSTI4 0
ASGNI4
line 2016
;2015:
;2016:	if (!gWPNum)
ADDRGP4 gWPNum
INDIRI4
CNSTI4 0
NEI4 $876
line 2017
;2017:	{
line 2018
;2018:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $875
JUMPV
LABELV $876
line 2021
;2019:	}
;2020:
;2021:	routePath = (char *)B_TempAlloc(1024);
CNSTI4 1024
ARGI4
ADDRLP4 44
ADDRGP4 B_TempAlloc
CALLP4
ASGNP4
ADDRLP4 36
ADDRLP4 44
INDIRP4
ASGNP4
line 2023
;2022:
;2023:	Com_sprintf(routePath, 1024, "botroutes/%s.wnt\0", filename);
ADDRLP4 36
INDIRP4
ARGP4
CNSTI4 1024
ARGI4
ADDRGP4 $737
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 Com_sprintf
CALLV
pop
line 2025
;2024:
;2025:	trap_FS_FOpenFile(routePath, &f, FS_WRITE);
ADDRLP4 36
INDIRP4
ARGP4
ADDRLP4 32
ARGP4
CNSTI4 1
ARGI4
ADDRGP4 trap_FS_FOpenFile
CALLI4
pop
line 2027
;2026:
;2027:	B_TempFree(1024); //routePath
CNSTI4 1024
ARGI4
ADDRGP4 B_TempFree
CALLV
pop
line 2029
;2028:
;2029:	if (!f)
ADDRLP4 32
INDIRI4
CNSTI4 0
NEI4 $878
line 2030
;2030:	{
line 2031
;2031:		G_Printf(S_COLOR_RED "ERROR: Could not open file to write path data\n");
ADDRGP4 $880
ARGP4
ADDRGP4 G_Printf
CALLV
pop
line 2032
;2032:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $875
JUMPV
LABELV $878
line 2035
;2033:	}
;2034:
;2035:	if (!RepairPaths()) //check if we can see all waypoints from the last. If not, try to branch over.
ADDRLP4 48
ADDRGP4 RepairPaths
CALLI4
ASGNI4
ADDRLP4 48
INDIRI4
CNSTI4 0
NEI4 $881
line 2036
;2036:	{
line 2037
;2037:		trap_FS_FCloseFile(f);
ADDRLP4 32
INDIRI4
ARGI4
ADDRGP4 trap_FS_FCloseFile
CALLV
pop
line 2038
;2038:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $875
JUMPV
LABELV $881
line 2041
;2039:	}
;2040:
;2041:	CalculatePaths(); //make everything nice and connected before saving
ADDRGP4 CalculatePaths
CALLV
pop
line 2043
;2042:
;2043:	FlagObjects(); //currently only used for flagging waypoints nearest CTF flags
ADDRGP4 FlagObjects
CALLV
pop
line 2045
;2044:
;2045:	fileString = (char *)B_TempAlloc(524288);
CNSTI4 524288
ARGI4
ADDRLP4 52
ADDRGP4 B_TempAlloc
CALLP4
ASGNP4
ADDRLP4 28
ADDRLP4 52
INDIRP4
ASGNP4
line 2046
;2046:	storeString = (char *)B_TempAlloc(4096);
CNSTI4 4096
ARGI4
ADDRLP4 56
ADDRGP4 B_TempAlloc
CALLP4
ASGNP4
ADDRLP4 8
ADDRLP4 56
INDIRP4
ASGNP4
line 2048
;2047:
;2048:	Com_sprintf(fileString, 524288, "%i %i %f (%f %f %f) { ", gWPArray[i]->index, gWPArray[i]->flags, gWPArray[i]->weight, gWPArray[i]->origin[0], gWPArray[i]->origin[1], gWPArray[i]->origin[2]);
ADDRLP4 28
INDIRP4
ARGP4
CNSTI4 524288
ARGI4
ADDRGP4 $883
ARGP4
ADDRLP4 60
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 60
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
ARGI4
ADDRLP4 60
INDIRP4
CNSTI4 28
ADDP4
INDIRI4
ARGI4
ADDRLP4 60
INDIRP4
CNSTI4 20
ADDP4
INDIRF4
ARGF4
ADDRLP4 60
INDIRP4
INDIRF4
ARGF4
ADDRLP4 60
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ARGF4
ADDRLP4 60
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ARGF4
ADDRGP4 Com_sprintf
CALLV
pop
line 2050
;2049:
;2050:	n = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRGP4 $885
JUMPV
LABELV $884
line 2053
;2051:
;2052:	while (n < gWPArray[i]->neighbornum)
;2053:	{
line 2054
;2054:		if (gWPArray[i]->neighbors[n].forceJumpTo)
ADDRLP4 4
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 44
ADDP4
ADDP4
CNSTI4 4
ADDP4
INDIRI4
CNSTI4 0
EQI4 $887
line 2055
;2055:		{
line 2056
;2056:			Com_sprintf(storeString, 4096, "%s%i-%i ", storeString, gWPArray[i]->neighbors[n].num, gWPArray[i]->neighbors[n].forceJumpTo);
ADDRLP4 8
INDIRP4
ARGP4
CNSTI4 4096
ARGI4
ADDRGP4 $889
ARGP4
ADDRLP4 8
INDIRP4
ARGP4
ADDRLP4 68
ADDRLP4 4
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 44
ADDP4
ADDP4
ASGNP4
ADDRLP4 68
INDIRP4
INDIRI4
ARGI4
ADDRLP4 68
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ARGI4
ADDRGP4 Com_sprintf
CALLV
pop
line 2057
;2057:		}
ADDRGP4 $888
JUMPV
LABELV $887
line 2059
;2058:		else
;2059:		{
line 2060
;2060:			Com_sprintf(storeString, 4096, "%s%i ", storeString, gWPArray[i]->neighbors[n].num);
ADDRLP4 8
INDIRP4
ARGP4
CNSTI4 4096
ARGI4
ADDRGP4 $890
ARGP4
ADDRLP4 8
INDIRP4
ARGP4
ADDRLP4 4
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 44
ADDP4
ADDP4
INDIRI4
ARGI4
ADDRGP4 Com_sprintf
CALLV
pop
line 2061
;2061:		}
LABELV $888
line 2062
;2062:		n++;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 2063
;2063:	}
LABELV $885
line 2052
ADDRLP4 4
INDIRI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
LTI4 $884
line 2065
;2064:
;2065:	if (gWPArray[i+1] && gWPArray[i+1]->inuse && gWPArray[i+1]->index)
ADDRLP4 64
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 64
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $891
ADDRLP4 68
CNSTI4 0
ASGNI4
ADDRLP4 64
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
ADDRLP4 68
INDIRI4
EQI4 $891
ADDRLP4 64
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
ADDRLP4 68
INDIRI4
EQI4 $891
line 2066
;2066:	{
line 2067
;2067:		VectorSubtract(gWPArray[i]->origin, gWPArray[i+1]->origin, a);
ADDRLP4 72
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 76
ADDRLP4 72
INDIRI4
ADDRGP4 gWPArray
ADDP4
ASGNP4
ADDRLP4 16
ADDRLP4 76
INDIRP4
INDIRP4
INDIRF4
ADDRLP4 72
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 80
CNSTI4 4
ASGNI4
ADDRLP4 16+4
ADDRLP4 76
INDIRP4
INDIRP4
ADDRLP4 80
INDIRI4
ADDP4
INDIRF4
ADDRLP4 72
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
ADDRLP4 80
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 84
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 88
CNSTI4 8
ASGNI4
ADDRLP4 16+8
ADDRLP4 84
INDIRI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRLP4 88
INDIRI4
ADDP4
INDIRF4
ADDRLP4 84
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
ADDRLP4 88
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 2068
;2068:		flLen = VectorLength(a);
ADDRLP4 16
ARGP4
ADDRLP4 92
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 12
ADDRLP4 92
INDIRF4
ASGNF4
line 2069
;2069:	}
ADDRGP4 $892
JUMPV
LABELV $891
line 2071
;2070:	else
;2071:	{
line 2072
;2072:		flLen = 0;
ADDRLP4 12
CNSTF4 0
ASGNF4
line 2073
;2073:	}
LABELV $892
line 2075
;2074:
;2075:	gWPArray[i]->disttonext = flLen;
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 24
ADDP4
ADDRLP4 12
INDIRF4
ASGNF4
line 2077
;2076:
;2077:	Com_sprintf(fileString, 524288, "%s} %f\n", fileString, flLen);
ADDRLP4 28
INDIRP4
ARGP4
CNSTI4 524288
ARGI4
ADDRGP4 $901
ARGP4
ADDRLP4 28
INDIRP4
ARGP4
ADDRLP4 12
INDIRF4
ARGF4
ADDRGP4 Com_sprintf
CALLV
pop
line 2079
;2078:
;2079:	i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRGP4 $903
JUMPV
LABELV $902
line 2082
;2080:
;2081:	while (i < gWPNum)
;2082:	{
line 2084
;2083:		//sprintf(fileString, "%s%i %i %f (%f %f %f) { ", fileString, gWPArray[i]->index, gWPArray[i]->flags, gWPArray[i]->weight, gWPArray[i]->origin[0], gWPArray[i]->origin[1], gWPArray[i]->origin[2]);
;2084:		Com_sprintf(storeString, 4096, "%i %i %f (%f %f %f) { ", gWPArray[i]->index, gWPArray[i]->flags, gWPArray[i]->weight, gWPArray[i]->origin[0], gWPArray[i]->origin[1], gWPArray[i]->origin[2]);
ADDRLP4 8
INDIRP4
ARGP4
CNSTI4 4096
ARGI4
ADDRGP4 $883
ARGP4
ADDRLP4 76
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 76
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
ARGI4
ADDRLP4 76
INDIRP4
CNSTI4 28
ADDP4
INDIRI4
ARGI4
ADDRLP4 76
INDIRP4
CNSTI4 20
ADDP4
INDIRF4
ARGF4
ADDRLP4 76
INDIRP4
INDIRF4
ARGF4
ADDRLP4 76
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ARGF4
ADDRLP4 76
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ARGF4
ADDRGP4 Com_sprintf
CALLV
pop
line 2086
;2085:
;2086:		n = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRGP4 $906
JUMPV
LABELV $905
line 2089
;2087:
;2088:		while (n < gWPArray[i]->neighbornum)
;2089:		{
line 2090
;2090:			if (gWPArray[i]->neighbors[n].forceJumpTo)
ADDRLP4 4
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 44
ADDP4
ADDP4
CNSTI4 4
ADDP4
INDIRI4
CNSTI4 0
EQI4 $908
line 2091
;2091:			{
line 2092
;2092:				Com_sprintf(storeString, 4096, "%s%i-%i ", storeString, gWPArray[i]->neighbors[n].num, gWPArray[i]->neighbors[n].forceJumpTo);
ADDRLP4 8
INDIRP4
ARGP4
CNSTI4 4096
ARGI4
ADDRGP4 $889
ARGP4
ADDRLP4 8
INDIRP4
ARGP4
ADDRLP4 84
ADDRLP4 4
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 44
ADDP4
ADDP4
ASGNP4
ADDRLP4 84
INDIRP4
INDIRI4
ARGI4
ADDRLP4 84
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ARGI4
ADDRGP4 Com_sprintf
CALLV
pop
line 2093
;2093:			}
ADDRGP4 $909
JUMPV
LABELV $908
line 2095
;2094:			else
;2095:			{
line 2096
;2096:				Com_sprintf(storeString, 4096, "%s%i ", storeString, gWPArray[i]->neighbors[n].num);
ADDRLP4 8
INDIRP4
ARGP4
CNSTI4 4096
ARGI4
ADDRGP4 $890
ARGP4
ADDRLP4 8
INDIRP4
ARGP4
ADDRLP4 4
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 44
ADDP4
ADDP4
INDIRI4
ARGI4
ADDRGP4 Com_sprintf
CALLV
pop
line 2097
;2097:			}
LABELV $909
line 2098
;2098:			n++;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 2099
;2099:		}
LABELV $906
line 2088
ADDRLP4 4
INDIRI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
LTI4 $905
line 2101
;2100:
;2101:		if (gWPArray[i+1] && gWPArray[i+1]->inuse && gWPArray[i+1]->index)
ADDRLP4 80
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 80
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $910
ADDRLP4 84
CNSTI4 0
ASGNI4
ADDRLP4 80
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
ADDRLP4 84
INDIRI4
EQI4 $910
ADDRLP4 80
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
ADDRLP4 84
INDIRI4
EQI4 $910
line 2102
;2102:		{
line 2103
;2103:			VectorSubtract(gWPArray[i]->origin, gWPArray[i+1]->origin, a);
ADDRLP4 88
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 92
ADDRLP4 88
INDIRI4
ADDRGP4 gWPArray
ADDP4
ASGNP4
ADDRLP4 16
ADDRLP4 92
INDIRP4
INDIRP4
INDIRF4
ADDRLP4 88
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 96
CNSTI4 4
ASGNI4
ADDRLP4 16+4
ADDRLP4 92
INDIRP4
INDIRP4
ADDRLP4 96
INDIRI4
ADDP4
INDIRF4
ADDRLP4 88
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
ADDRLP4 96
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 100
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 104
CNSTI4 8
ASGNI4
ADDRLP4 16+8
ADDRLP4 100
INDIRI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ADDRLP4 104
INDIRI4
ADDP4
INDIRF4
ADDRLP4 100
INDIRI4
ADDRGP4 gWPArray+4
ADDP4
INDIRP4
ADDRLP4 104
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 2104
;2104:			flLen = VectorLength(a);
ADDRLP4 16
ARGP4
ADDRLP4 108
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 12
ADDRLP4 108
INDIRF4
ASGNF4
line 2105
;2105:		}
ADDRGP4 $911
JUMPV
LABELV $910
line 2107
;2106:		else
;2107:		{
line 2108
;2108:			flLen = 0;
ADDRLP4 12
CNSTF4 0
ASGNF4
line 2109
;2109:		}
LABELV $911
line 2111
;2110:
;2111:		gWPArray[i]->disttonext = flLen;
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 24
ADDP4
ADDRLP4 12
INDIRF4
ASGNF4
line 2113
;2112:
;2113:		Com_sprintf(storeString, 4096, "%s} %f\n", storeString, flLen);
ADDRLP4 8
INDIRP4
ARGP4
CNSTI4 4096
ARGI4
ADDRGP4 $901
ARGP4
ADDRLP4 8
INDIRP4
ARGP4
ADDRLP4 12
INDIRF4
ARGF4
ADDRGP4 Com_sprintf
CALLV
pop
line 2115
;2114:
;2115:		strcat(fileString, storeString);
ADDRLP4 28
INDIRP4
ARGP4
ADDRLP4 8
INDIRP4
ARGP4
ADDRGP4 strcat
CALLP4
pop
line 2117
;2116:
;2117:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 2118
;2118:	}
LABELV $903
line 2081
ADDRLP4 0
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $902
line 2120
;2119:
;2120:	trap_FS_Write(fileString, strlen(fileString), f);
ADDRLP4 28
INDIRP4
ARGP4
ADDRLP4 76
ADDRGP4 strlen
CALLI4
ASGNI4
ADDRLP4 28
INDIRP4
ARGP4
ADDRLP4 76
INDIRI4
ARGI4
ADDRLP4 32
INDIRI4
ARGI4
ADDRGP4 trap_FS_Write
CALLV
pop
line 2122
;2121:
;2122:	B_TempFree(524288); //fileString
CNSTI4 524288
ARGI4
ADDRGP4 B_TempFree
CALLV
pop
line 2123
;2123:	B_TempFree(4096); //storeString
CNSTI4 4096
ARGI4
ADDRGP4 B_TempFree
CALLV
pop
line 2125
;2124:
;2125:	trap_FS_FCloseFile(f);
ADDRLP4 32
INDIRI4
ARGI4
ADDRGP4 trap_FS_FCloseFile
CALLV
pop
line 2127
;2126:
;2127:	G_Printf("Path data has been saved and updated. You may need to restart the level for some things to be properly calculated.\n");
ADDRGP4 $920
ARGP4
ADDRGP4 G_Printf
CALLV
pop
line 2129
;2128:
;2129:	return 1;
CNSTI4 1
RETI4
LABELV $875
endproc SavePathData 112 36
export LoadPath_ThisLevel
proc LoadPath_ThisLevel 304 16
line 2133
;2130:}
;2131:
;2132:void LoadPath_ThisLevel(void)
;2133:{
line 2135
;2134:	vmCvar_t	mapname;
;2135:	int			i = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
line 2136
;2136:	gentity_t	*ent = NULL;
ADDRLP4 0
CNSTP4 0
ASGNP4
line 2138
;2137:
;2138:	trap_Cvar_Register( &mapname, "mapname", "", CVAR_SERVERINFO | CVAR_ROM );
ADDRLP4 8
ARGP4
ADDRGP4 $922
ARGP4
ADDRGP4 $923
ARGP4
CNSTI4 68
ARGI4
ADDRGP4 trap_Cvar_Register
CALLV
pop
line 2140
;2139:
;2140:	if (LoadPathData(mapname.string) == 2)
ADDRLP4 8+16
ARGP4
ADDRLP4 280
ADDRGP4 LoadPathData
CALLI4
ASGNI4
ADDRLP4 280
INDIRI4
CNSTI4 2
NEI4 $924
line 2141
;2141:	{
line 2143
;2142:		//enter "edit" mode if cheats enabled?
;2143:	}
LABELV $924
line 2145
;2144:
;2145:	trap_Cvar_Update(&bot_wp_edit);
ADDRGP4 bot_wp_edit
ARGP4
ADDRGP4 trap_Cvar_Update
CALLV
pop
line 2147
;2146:
;2147:	if (bot_wp_edit.value)
ADDRGP4 bot_wp_edit+8
INDIRF4
CNSTF4 0
EQF4 $927
line 2148
;2148:	{
line 2149
;2149:		gBotEdit = 1;
ADDRGP4 gBotEdit
CNSTF4 1065353216
ASGNF4
line 2150
;2150:	}
ADDRGP4 $931
JUMPV
LABELV $927
line 2152
;2151:	else
;2152:	{
line 2153
;2153:		gBotEdit = 0;
ADDRGP4 gBotEdit
CNSTF4 0
ASGNF4
line 2154
;2154:	}
ADDRGP4 $931
JUMPV
LABELV $930
line 2158
;2155:
;2156:	//set the flag entities
;2157:	while (i < MAX_GENTITIES)
;2158:	{
line 2159
;2159:		ent = &g_entities[i];
ADDRLP4 0
CNSTI4 828
ADDRLP4 4
INDIRI4
MULI4
ADDRGP4 g_entities
ADDP4
ASGNP4
line 2161
;2160:
;2161:		if (ent && ent->inuse && ent->classname)
ADDRLP4 288
CNSTU4 0
ASGNU4
ADDRLP4 0
INDIRP4
CVPU4 4
ADDRLP4 288
INDIRU4
EQU4 $933
ADDRLP4 0
INDIRP4
CNSTI4 412
ADDP4
INDIRI4
CNSTI4 0
EQI4 $933
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
CVPU4 4
ADDRLP4 288
INDIRU4
EQU4 $933
line 2162
;2162:		{
line 2163
;2163:			if (!eFlagRed && strcmp(ent->classname, "team_CTF_redflag") == 0)
ADDRGP4 eFlagRed
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $935
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $834
ARGP4
ADDRLP4 292
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 292
INDIRI4
CNSTI4 0
NEI4 $935
line 2164
;2164:			{
line 2165
;2165:				eFlagRed = ent;
ADDRGP4 eFlagRed
ADDRLP4 0
INDIRP4
ASGNP4
line 2166
;2166:			}
ADDRGP4 $936
JUMPV
LABELV $935
line 2167
;2167:			else if (!eFlagBlue && strcmp(ent->classname, "team_CTF_blueflag") == 0)
ADDRGP4 eFlagBlue
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $937
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $837
ARGP4
ADDRLP4 296
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 296
INDIRI4
CNSTI4 0
NEI4 $937
line 2168
;2168:			{
line 2169
;2169:				eFlagBlue = ent;
ADDRGP4 eFlagBlue
ADDRLP4 0
INDIRP4
ASGNP4
line 2170
;2170:			}
LABELV $937
LABELV $936
line 2172
;2171:
;2172:			if (eFlagRed && eFlagBlue)
ADDRLP4 300
CNSTU4 0
ASGNU4
ADDRGP4 eFlagRed
INDIRP4
CVPU4 4
ADDRLP4 300
INDIRU4
EQU4 $939
ADDRGP4 eFlagBlue
INDIRP4
CVPU4 4
ADDRLP4 300
INDIRU4
EQU4 $939
line 2173
;2173:			{
line 2174
;2174:				break;
ADDRGP4 $932
JUMPV
LABELV $939
line 2176
;2175:			}
;2176:		}
LABELV $933
line 2178
;2177:
;2178:		i++;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 2179
;2179:	}
LABELV $931
line 2157
ADDRLP4 4
INDIRI4
CNSTI4 1024
LTI4 $930
LABELV $932
line 2180
;2180:}
LABELV $921
endproc LoadPath_ThisLevel 304 16
export GetClosestSpawn
proc GetClosestSpawn 60 8
line 2183
;2181:
;2182:gentity_t *GetClosestSpawn(gentity_t *ent)
;2183:{
line 2185
;2184:	gentity_t	*spawn;
;2185:	gentity_t	*closestSpawn = NULL;
ADDRLP4 12
CNSTP4 0
ASGNP4
line 2186
;2186:	float		closestDist = -1;
ADDRLP4 8
CNSTF4 3212836864
ASGNF4
line 2187
;2187:	int			i = MAX_CLIENTS;
ADDRLP4 4
CNSTI4 32
ASGNI4
line 2189
;2188:
;2189:	spawn = NULL;
ADDRLP4 0
CNSTP4 0
ASGNP4
ADDRGP4 $943
JUMPV
LABELV $942
line 2192
;2190:
;2191:	while (i < MAX_GENTITIES)
;2192:	{
line 2193
;2193:		spawn = &g_entities[i];
ADDRLP4 0
CNSTI4 828
ADDRLP4 4
INDIRI4
MULI4
ADDRGP4 g_entities
ADDP4
ASGNP4
line 2195
;2194:
;2195:		if (spawn && spawn->inuse && (!Q_stricmp(spawn->classname, "info_player_start") || !Q_stricmp(spawn->classname, "info_player_deathmatch")) )
ADDRLP4 0
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $945
ADDRLP4 0
INDIRP4
CNSTI4 412
ADDP4
INDIRI4
CNSTI4 0
EQI4 $945
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $947
ARGP4
ADDRLP4 20
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 20
INDIRI4
CNSTI4 0
EQI4 $949
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $948
ARGP4
ADDRLP4 24
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 24
INDIRI4
CNSTI4 0
NEI4 $945
LABELV $949
line 2196
;2196:		{
line 2200
;2197:			float checkDist;
;2198:			vec3_t vSub;
;2199:
;2200:			VectorSubtract(ent->client->ps.origin, spawn->r.currentOrigin, vSub);
ADDRLP4 44
ADDRFP4 0
INDIRP4
CNSTI4 408
ADDP4
ASGNP4
ADDRLP4 28
ADDRLP4 44
INDIRP4
INDIRP4
CNSTI4 20
ADDP4
INDIRF4
ADDRLP4 0
INDIRP4
CNSTI4 368
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 28+4
ADDRLP4 44
INDIRP4
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
ADDRLP4 0
INDIRP4
CNSTI4 372
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 28+8
ADDRFP4 0
INDIRP4
CNSTI4 408
ADDP4
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
ADDRLP4 0
INDIRP4
CNSTI4 376
ADDP4
INDIRF4
SUBF4
ASGNF4
line 2201
;2201:			checkDist = VectorLength(vSub);
ADDRLP4 28
ARGP4
ADDRLP4 52
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 40
ADDRLP4 52
INDIRF4
ASGNF4
line 2203
;2202:
;2203:			if (closestDist == -1 || checkDist < closestDist)
ADDRLP4 8
INDIRF4
CNSTF4 3212836864
EQF4 $954
ADDRLP4 40
INDIRF4
ADDRLP4 8
INDIRF4
GEF4 $952
LABELV $954
line 2204
;2204:			{
line 2205
;2205:				closestSpawn = spawn;
ADDRLP4 12
ADDRLP4 0
INDIRP4
ASGNP4
line 2206
;2206:				closestDist = checkDist;
ADDRLP4 8
ADDRLP4 40
INDIRF4
ASGNF4
line 2207
;2207:			}
LABELV $952
line 2208
;2208:		}
LABELV $945
line 2210
;2209:
;2210:		i++;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 2211
;2211:	}
LABELV $943
line 2191
ADDRLP4 4
INDIRI4
CNSTI4 1024
LTI4 $942
line 2213
;2212:
;2213:	return closestSpawn;
ADDRLP4 12
INDIRP4
RETP4
LABELV $941
endproc GetClosestSpawn 60 8
export GetNextSpawnInIndex
proc GetNextSpawnInIndex 24 8
line 2217
;2214:}
;2215:
;2216:gentity_t *GetNextSpawnInIndex(gentity_t *currentSpawn)
;2217:{
line 2219
;2218:	gentity_t	*spawn;
;2219:	gentity_t	*nextSpawn = NULL;
ADDRLP4 8
CNSTP4 0
ASGNP4
line 2220
;2220:	int			i = currentSpawn->s.number+1;
ADDRLP4 4
ADDRFP4 0
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 2222
;2221:
;2222:	spawn = NULL;
ADDRLP4 0
CNSTP4 0
ASGNP4
ADDRGP4 $957
JUMPV
LABELV $956
line 2225
;2223:
;2224:	while (i < MAX_GENTITIES)
;2225:	{
line 2226
;2226:		spawn = &g_entities[i];
ADDRLP4 0
CNSTI4 828
ADDRLP4 4
INDIRI4
MULI4
ADDRGP4 g_entities
ADDP4
ASGNP4
line 2228
;2227:
;2228:		if (spawn && spawn->inuse && (!Q_stricmp(spawn->classname, "info_player_start") || !Q_stricmp(spawn->classname, "info_player_deathmatch")) )
ADDRLP4 0
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $959
ADDRLP4 0
INDIRP4
CNSTI4 412
ADDP4
INDIRI4
CNSTI4 0
EQI4 $959
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $947
ARGP4
ADDRLP4 16
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 16
INDIRI4
CNSTI4 0
EQI4 $961
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $948
ARGP4
ADDRLP4 20
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 20
INDIRI4
CNSTI4 0
NEI4 $959
LABELV $961
line 2229
;2229:		{
line 2230
;2230:			nextSpawn = spawn;
ADDRLP4 8
ADDRLP4 0
INDIRP4
ASGNP4
line 2231
;2231:			break;
ADDRGP4 $958
JUMPV
LABELV $959
line 2234
;2232:		}
;2233:
;2234:		i++;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 2235
;2235:	}
LABELV $957
line 2224
ADDRLP4 4
INDIRI4
CNSTI4 1024
LTI4 $956
LABELV $958
line 2237
;2236:
;2237:	if (!nextSpawn)
ADDRLP4 8
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $962
line 2238
;2238:	{ //loop back around to 0
line 2239
;2239:		i = MAX_CLIENTS;
ADDRLP4 4
CNSTI4 32
ASGNI4
ADDRGP4 $965
JUMPV
LABELV $964
line 2242
;2240:
;2241:		while (i < MAX_GENTITIES)
;2242:		{
line 2243
;2243:			spawn = &g_entities[i];
ADDRLP4 0
CNSTI4 828
ADDRLP4 4
INDIRI4
MULI4
ADDRGP4 g_entities
ADDP4
ASGNP4
line 2245
;2244:
;2245:			if (spawn && spawn->inuse && (!Q_stricmp(spawn->classname, "info_player_start") || !Q_stricmp(spawn->classname, "info_player_deathmatch")) )
ADDRLP4 0
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $967
ADDRLP4 0
INDIRP4
CNSTI4 412
ADDP4
INDIRI4
CNSTI4 0
EQI4 $967
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $947
ARGP4
ADDRLP4 16
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 16
INDIRI4
CNSTI4 0
EQI4 $969
ADDRLP4 0
INDIRP4
CNSTI4 416
ADDP4
INDIRP4
ARGP4
ADDRGP4 $948
ARGP4
ADDRLP4 20
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 20
INDIRI4
CNSTI4 0
NEI4 $967
LABELV $969
line 2246
;2246:			{
line 2247
;2247:				nextSpawn = spawn;
ADDRLP4 8
ADDRLP4 0
INDIRP4
ASGNP4
line 2248
;2248:				break;
ADDRGP4 $966
JUMPV
LABELV $967
line 2251
;2249:			}
;2250:
;2251:			i++;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 2252
;2252:		}
LABELV $965
line 2241
ADDRLP4 4
INDIRI4
CNSTI4 1024
LTI4 $964
LABELV $966
line 2253
;2253:	}
LABELV $962
line 2255
;2254:
;2255:	return nextSpawn;
ADDRLP4 8
INDIRP4
RETP4
LABELV $955
endproc GetNextSpawnInIndex 24 8
export AcceptBotCommand
proc AcceptBotCommand 344 16
line 2259
;2256:}
;2257:
;2258:int AcceptBotCommand(char *cmd, gentity_t *pl)
;2259:{
line 2265
;2260:	int OptionalArgument, i;
;2261:	int FlagsFromArgument;
;2262:	char *OptionalSArgument, *RequiredSArgument;
;2263:	vmCvar_t mapname;
;2264:
;2265:	if (!gBotEdit)
ADDRGP4 gBotEdit
INDIRF4
CNSTF4 0
NEF4 $971
line 2266
;2266:	{
line 2267
;2267:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $970
JUMPV
LABELV $971
line 2270
;2268:	}
;2269:
;2270:	OptionalArgument = 0;
ADDRLP4 16
CNSTI4 0
ASGNI4
line 2271
;2271:	i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 2272
;2272:	FlagsFromArgument = 0;
ADDRLP4 12
CNSTI4 0
ASGNI4
line 2273
;2273:	OptionalSArgument = NULL;
ADDRLP4 8
CNSTP4 0
ASGNP4
line 2274
;2274:	RequiredSArgument = NULL;
ADDRLP4 4
CNSTP4 0
ASGNP4
line 2279
;2275:
;2276:	//if a waypoint editing related command is issued, bots will deactivate.
;2277:	//once bot_wp_save is issued and the trail is recalculated, bots will activate again.
;2278:
;2279:	if (!pl || !pl->client)
ADDRLP4 292
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 296
CNSTU4 0
ASGNU4
ADDRLP4 292
INDIRP4
CVPU4 4
ADDRLP4 296
INDIRU4
EQU4 $975
ADDRLP4 292
INDIRP4
CNSTI4 408
ADDP4
INDIRP4
CVPU4 4
ADDRLP4 296
INDIRU4
NEU4 $973
LABELV $975
line 2280
;2280:	{
line 2281
;2281:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $970
JUMPV
LABELV $973
line 2284
;2282:	}
;2283:
;2284:	if (Q_stricmp (cmd, "bot_wp_cmdlist") == 0) //lists all the bot waypoint commands.
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 $978
ARGP4
ADDRLP4 300
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 300
INDIRI4
CNSTI4 0
NEI4 $976
line 2285
;2285:	{
line 2286
;2286:		G_Printf(S_COLOR_YELLOW "bot_wp_add" S_COLOR_WHITE " - Add a waypoint (optional int parameter will insert the point after the specified waypoint index in a trail)\n\n");
ADDRGP4 $979
ARGP4
ADDRGP4 G_Printf
CALLV
pop
line 2287
;2287:		G_Printf(S_COLOR_YELLOW "bot_wp_rem" S_COLOR_WHITE " - Remove a waypoint (removes last unless waypoint index is specified as a parameter)\n\n");
ADDRGP4 $980
ARGP4
ADDRGP4 G_Printf
CALLV
pop
line 2288
;2288:		G_Printf(S_COLOR_YELLOW "bot_wp_addflagged" S_COLOR_WHITE " - Same as wp_add, but adds a flagged point (type bot_wp_addflagged for help)\n\n");
ADDRGP4 $981
ARGP4
ADDRGP4 G_Printf
CALLV
pop
line 2289
;2289:		G_Printf(S_COLOR_YELLOW "bot_wp_switchflags" S_COLOR_WHITE " - Switches flags on an existing waypoint (type bot_wp_switchflags for help)\n\n");
ADDRGP4 $982
ARGP4
ADDRGP4 G_Printf
CALLV
pop
line 2290
;2290:		G_Printf(S_COLOR_YELLOW "bot_wp_tele" S_COLOR_WHITE " - Teleport yourself to the specified waypoint's location\n");
ADDRGP4 $983
ARGP4
ADDRGP4 G_Printf
CALLV
pop
line 2291
;2291:		G_Printf(S_COLOR_YELLOW "bot_wp_killoneways" S_COLOR_WHITE " - Removes oneway (backward and forward) flags on all waypoints in the level\n\n");
ADDRGP4 $984
ARGP4
ADDRGP4 G_Printf
CALLV
pop
line 2292
;2292:		G_Printf(S_COLOR_YELLOW "bot_wp_save" S_COLOR_WHITE " - Saves all waypoint data into a file for later use\n");
ADDRGP4 $985
ARGP4
ADDRGP4 G_Printf
CALLV
pop
line 2294
;2293:
;2294:		return 1;
CNSTI4 1
RETI4
ADDRGP4 $970
JUMPV
LABELV $976
line 2297
;2295:	}
;2296:
;2297:	if (Q_stricmp (cmd, "bot_wp_add") == 0)
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 $988
ARGP4
ADDRLP4 304
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 304
INDIRI4
CNSTI4 0
NEI4 $986
line 2298
;2298:	{
line 2299
;2299:		gDeactivated = 1;
ADDRGP4 gDeactivated
CNSTF4 1065353216
ASGNF4
line 2300
;2300:		OptionalSArgument = ConcatArgs( 1 );
CNSTI4 1
ARGI4
ADDRLP4 308
ADDRGP4 ConcatArgs
CALLP4
ASGNP4
ADDRLP4 8
ADDRLP4 308
INDIRP4
ASGNP4
line 2302
;2301:
;2302:		if (OptionalSArgument)
ADDRLP4 8
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $989
line 2303
;2303:		{
line 2304
;2304:			OptionalArgument = atoi(OptionalSArgument);
ADDRLP4 8
INDIRP4
ARGP4
ADDRLP4 312
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 16
ADDRLP4 312
INDIRI4
ASGNI4
line 2305
;2305:		}
LABELV $989
line 2307
;2306:
;2307:		if (OptionalSArgument && OptionalSArgument[0])
ADDRLP4 8
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $991
ADDRLP4 8
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $991
line 2308
;2308:		{
line 2309
;2309:			CreateNewWP_InTrail(pl->client->ps.origin, 0, OptionalArgument);
ADDRFP4 4
INDIRP4
CNSTI4 408
ADDP4
INDIRP4
CNSTI4 20
ADDP4
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 16
INDIRI4
ARGI4
ADDRGP4 CreateNewWP_InTrail
CALLI4
pop
line 2310
;2310:		}
ADDRGP4 $992
JUMPV
LABELV $991
line 2312
;2311:		else
;2312:		{
line 2313
;2313:			CreateNewWP(pl->client->ps.origin, 0);
ADDRFP4 4
INDIRP4
CNSTI4 408
ADDP4
INDIRP4
CNSTI4 20
ADDP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 CreateNewWP
CALLV
pop
line 2314
;2314:		}
LABELV $992
line 2315
;2315:		return 1;
CNSTI4 1
RETI4
ADDRGP4 $970
JUMPV
LABELV $986
line 2318
;2316:	}
;2317:
;2318:	if (Q_stricmp (cmd, "bot_wp_rem") == 0)
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 $995
ARGP4
ADDRLP4 308
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 308
INDIRI4
CNSTI4 0
NEI4 $993
line 2319
;2319:	{
line 2320
;2320:		gDeactivated = 1;
ADDRGP4 gDeactivated
CNSTF4 1065353216
ASGNF4
line 2322
;2321:
;2322:		OptionalSArgument = ConcatArgs( 1 );
CNSTI4 1
ARGI4
ADDRLP4 312
ADDRGP4 ConcatArgs
CALLP4
ASGNP4
ADDRLP4 8
ADDRLP4 312
INDIRP4
ASGNP4
line 2324
;2323:
;2324:		if (OptionalSArgument)
ADDRLP4 8
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $996
line 2325
;2325:		{
line 2326
;2326:			OptionalArgument = atoi(OptionalSArgument);
ADDRLP4 8
INDIRP4
ARGP4
ADDRLP4 316
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 16
ADDRLP4 316
INDIRI4
ASGNI4
line 2327
;2327:		}
LABELV $996
line 2329
;2328:
;2329:		if (OptionalSArgument && OptionalSArgument[0])
ADDRLP4 8
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $998
ADDRLP4 8
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $998
line 2330
;2330:		{
line 2331
;2331:			RemoveWP_InTrail(OptionalArgument);
ADDRLP4 16
INDIRI4
ARGI4
ADDRGP4 RemoveWP_InTrail
CALLV
pop
line 2332
;2332:		}
ADDRGP4 $999
JUMPV
LABELV $998
line 2334
;2333:		else
;2334:		{
line 2335
;2335:			RemoveWP();
ADDRGP4 RemoveWP
CALLV
pop
line 2336
;2336:		}
LABELV $999
line 2338
;2337:
;2338:		return 1;
CNSTI4 1
RETI4
ADDRGP4 $970
JUMPV
LABELV $993
line 2341
;2339:	}
;2340:
;2341:	if (Q_stricmp (cmd, "bot_wp_tele") == 0)
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 $1002
ARGP4
ADDRLP4 312
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 312
INDIRI4
CNSTI4 0
NEI4 $1000
line 2342
;2342:	{
line 2343
;2343:		gDeactivated = 1;
ADDRGP4 gDeactivated
CNSTF4 1065353216
ASGNF4
line 2344
;2344:		OptionalSArgument = ConcatArgs( 1 );
CNSTI4 1
ARGI4
ADDRLP4 316
ADDRGP4 ConcatArgs
CALLP4
ASGNP4
ADDRLP4 8
ADDRLP4 316
INDIRP4
ASGNP4
line 2346
;2345:
;2346:		if (OptionalSArgument)
ADDRLP4 8
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $1003
line 2347
;2347:		{
line 2348
;2348:			OptionalArgument = atoi(OptionalSArgument);
ADDRLP4 8
INDIRP4
ARGP4
ADDRLP4 320
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 16
ADDRLP4 320
INDIRI4
ASGNI4
line 2349
;2349:		}
LABELV $1003
line 2351
;2350:
;2351:		if (OptionalSArgument && OptionalSArgument[0])
ADDRLP4 8
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $1005
ADDRLP4 8
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $1005
line 2352
;2352:		{
line 2353
;2353:			TeleportToWP(pl, OptionalArgument);
ADDRFP4 4
INDIRP4
ARGP4
ADDRLP4 16
INDIRI4
ARGI4
ADDRGP4 TeleportToWP
CALLV
pop
line 2354
;2354:		}
ADDRGP4 $1006
JUMPV
LABELV $1005
line 2356
;2355:		else
;2356:		{
line 2357
;2357:			G_Printf(S_COLOR_YELLOW "You didn't specify an index. Assuming last.\n");
ADDRGP4 $1007
ARGP4
ADDRGP4 G_Printf
CALLV
pop
line 2358
;2358:			TeleportToWP(pl, gWPNum-1);
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 gWPNum
INDIRI4
CNSTI4 1
SUBI4
ARGI4
ADDRGP4 TeleportToWP
CALLV
pop
line 2359
;2359:		}
LABELV $1006
line 2360
;2360:		return 1;
CNSTI4 1
RETI4
ADDRGP4 $970
JUMPV
LABELV $1000
line 2363
;2361:	}
;2362:
;2363:	if (Q_stricmp (cmd, "bot_wp_spawntele") == 0)
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 $1010
ARGP4
ADDRLP4 316
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 316
INDIRI4
CNSTI4 0
NEI4 $1008
line 2364
;2364:	{
line 2365
;2365:		gentity_t *closestSpawn = GetClosestSpawn(pl);
ADDRFP4 4
INDIRP4
ARGP4
ADDRLP4 324
ADDRGP4 GetClosestSpawn
CALLP4
ASGNP4
ADDRLP4 320
ADDRLP4 324
INDIRP4
ASGNP4
line 2367
;2366:
;2367:		if (!closestSpawn)
ADDRLP4 320
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $1011
line 2368
;2368:		{ //There should always be a spawn point..
line 2369
;2369:			return 1;
CNSTI4 1
RETI4
ADDRGP4 $970
JUMPV
LABELV $1011
line 2372
;2370:		}
;2371:
;2372:		closestSpawn = GetNextSpawnInIndex(closestSpawn);
ADDRLP4 320
INDIRP4
ARGP4
ADDRLP4 328
ADDRGP4 GetNextSpawnInIndex
CALLP4
ASGNP4
ADDRLP4 320
ADDRLP4 328
INDIRP4
ASGNP4
line 2374
;2373:
;2374:		if (closestSpawn)
ADDRLP4 320
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $1013
line 2375
;2375:		{
line 2376
;2376:			VectorCopy(closestSpawn->r.currentOrigin, pl->client->ps.origin);
ADDRFP4 4
INDIRP4
CNSTI4 408
ADDP4
INDIRP4
CNSTI4 20
ADDP4
ADDRLP4 320
INDIRP4
CNSTI4 368
ADDP4
INDIRB
ASGNB 12
line 2377
;2377:		}
LABELV $1013
line 2378
;2378:		return 1;
CNSTI4 1
RETI4
ADDRGP4 $970
JUMPV
LABELV $1008
line 2381
;2379:	}
;2380:
;2381:	if (Q_stricmp (cmd, "bot_wp_addflagged") == 0)
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 $1017
ARGP4
ADDRLP4 320
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 320
INDIRI4
CNSTI4 0
NEI4 $1015
line 2382
;2382:	{
line 2383
;2383:		gDeactivated = 1;
ADDRGP4 gDeactivated
CNSTF4 1065353216
ASGNF4
line 2385
;2384:
;2385:		RequiredSArgument = ConcatArgs( 1 );
CNSTI4 1
ARGI4
ADDRLP4 324
ADDRGP4 ConcatArgs
CALLP4
ASGNP4
ADDRLP4 4
ADDRLP4 324
INDIRP4
ASGNP4
line 2387
;2386:
;2387:		if (!RequiredSArgument || !RequiredSArgument[0])
ADDRLP4 4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $1020
ADDRLP4 4
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $1023
LABELV $1020
line 2388
;2388:		{
line 2389
;2389:			G_Printf(S_COLOR_YELLOW "Flag string needed for bot_wp_addflagged\nj - Jump point\nd - Duck point\nc - Snipe or camp standing\nf - Wait for func\nm - Do not move to when func is under\ns - Snipe or camp\nx - Oneway, forward\ny - Oneway, back\ng - Mission goal\nn - No visibility\nExample (for a point the bot would jump at, and reverse on when traveling a trail backwards):\nbot_wp_addflagged jx\n");
ADDRGP4 $1021
ARGP4
ADDRGP4 G_Printf
CALLV
pop
line 2390
;2390:			return 1;
CNSTI4 1
RETI4
ADDRGP4 $970
JUMPV
LABELV $1022
line 2394
;2391:		}
;2392:
;2393:		while (RequiredSArgument[i])
;2394:		{
line 2395
;2395:			if (RequiredSArgument[i] == 'j')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 106
NEI4 $1025
line 2396
;2396:			{
line 2397
;2397:				FlagsFromArgument |= WPFLAG_JUMP;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 16
BORI4
ASGNI4
line 2398
;2398:			}
ADDRGP4 $1026
JUMPV
LABELV $1025
line 2399
;2399:			else if (RequiredSArgument[i] == 'd')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 100
NEI4 $1027
line 2400
;2400:			{
line 2401
;2401:				FlagsFromArgument |= WPFLAG_DUCK;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 32
BORI4
ASGNI4
line 2402
;2402:			}
ADDRGP4 $1028
JUMPV
LABELV $1027
line 2403
;2403:			else if (RequiredSArgument[i] == 'c')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 99
NEI4 $1029
line 2404
;2404:			{
line 2405
;2405:				FlagsFromArgument |= WPFLAG_SNIPEORCAMPSTAND;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 2048
BORI4
ASGNI4
line 2406
;2406:			}
ADDRGP4 $1030
JUMPV
LABELV $1029
line 2407
;2407:			else if (RequiredSArgument[i] == 'f')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 102
NEI4 $1031
line 2408
;2408:			{
line 2409
;2409:				FlagsFromArgument |= WPFLAG_WAITFORFUNC;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 4096
BORI4
ASGNI4
line 2410
;2410:			}
ADDRGP4 $1032
JUMPV
LABELV $1031
line 2411
;2411:			else if (RequiredSArgument[i] == 's')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 115
NEI4 $1033
line 2412
;2412:			{
line 2413
;2413:				FlagsFromArgument |= WPFLAG_SNIPEORCAMP;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 8192
BORI4
ASGNI4
line 2414
;2414:			}
ADDRGP4 $1034
JUMPV
LABELV $1033
line 2415
;2415:			else if (RequiredSArgument[i] == 'x')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 120
NEI4 $1035
line 2416
;2416:			{
line 2417
;2417:				FlagsFromArgument |= WPFLAG_ONEWAY_FWD;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 16384
BORI4
ASGNI4
line 2418
;2418:			}
ADDRGP4 $1036
JUMPV
LABELV $1035
line 2419
;2419:			else if (RequiredSArgument[i] == 'y')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 121
NEI4 $1037
line 2420
;2420:			{
line 2421
;2421:				FlagsFromArgument |= WPFLAG_ONEWAY_BACK;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 32768
BORI4
ASGNI4
line 2422
;2422:			}
ADDRGP4 $1038
JUMPV
LABELV $1037
line 2423
;2423:			else if (RequiredSArgument[i] == 'g')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 103
NEI4 $1039
line 2424
;2424:			{
line 2425
;2425:				FlagsFromArgument |= WPFLAG_GOALPOINT;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 65536
BORI4
ASGNI4
line 2426
;2426:			}
ADDRGP4 $1040
JUMPV
LABELV $1039
line 2427
;2427:			else if (RequiredSArgument[i] == 'n')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 110
NEI4 $1041
line 2428
;2428:			{
line 2429
;2429:				FlagsFromArgument |= WPFLAG_NOVIS;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 1024
BORI4
ASGNI4
line 2430
;2430:			}
ADDRGP4 $1042
JUMPV
LABELV $1041
line 2431
;2431:			else if (RequiredSArgument[i] == 'm')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 109
NEI4 $1043
line 2432
;2432:			{
line 2433
;2433:				FlagsFromArgument |= WPFLAG_NOMOVEFUNC;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 2097152
BORI4
ASGNI4
line 2434
;2434:			}
LABELV $1043
LABELV $1042
LABELV $1040
LABELV $1038
LABELV $1036
LABELV $1034
LABELV $1032
LABELV $1030
LABELV $1028
LABELV $1026
line 2436
;2435:
;2436:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 2437
;2437:		}
LABELV $1023
line 2393
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $1022
line 2439
;2438:
;2439:		OptionalSArgument = ConcatArgs( 2 );
CNSTI4 2
ARGI4
ADDRLP4 332
ADDRGP4 ConcatArgs
CALLP4
ASGNP4
ADDRLP4 8
ADDRLP4 332
INDIRP4
ASGNP4
line 2441
;2440:
;2441:		if (OptionalSArgument)
ADDRLP4 8
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $1045
line 2442
;2442:		{
line 2443
;2443:			OptionalArgument = atoi(OptionalSArgument);
ADDRLP4 8
INDIRP4
ARGP4
ADDRLP4 336
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 16
ADDRLP4 336
INDIRI4
ASGNI4
line 2444
;2444:		}
LABELV $1045
line 2446
;2445:
;2446:		if (OptionalSArgument && OptionalSArgument[0])
ADDRLP4 8
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $1047
ADDRLP4 8
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $1047
line 2447
;2447:		{
line 2448
;2448:			CreateNewWP_InTrail(pl->client->ps.origin, FlagsFromArgument, OptionalArgument);
ADDRFP4 4
INDIRP4
CNSTI4 408
ADDP4
INDIRP4
CNSTI4 20
ADDP4
ARGP4
ADDRLP4 12
INDIRI4
ARGI4
ADDRLP4 16
INDIRI4
ARGI4
ADDRGP4 CreateNewWP_InTrail
CALLI4
pop
line 2449
;2449:		}
ADDRGP4 $1048
JUMPV
LABELV $1047
line 2451
;2450:		else
;2451:		{
line 2452
;2452:			CreateNewWP(pl->client->ps.origin, FlagsFromArgument);
ADDRFP4 4
INDIRP4
CNSTI4 408
ADDP4
INDIRP4
CNSTI4 20
ADDP4
ARGP4
ADDRLP4 12
INDIRI4
ARGI4
ADDRGP4 CreateNewWP
CALLV
pop
line 2453
;2453:		}
LABELV $1048
line 2454
;2454:		return 1;
CNSTI4 1
RETI4
ADDRGP4 $970
JUMPV
LABELV $1015
line 2457
;2455:	}
;2456:
;2457:	if (Q_stricmp (cmd, "bot_wp_switchflags") == 0)
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 $1051
ARGP4
ADDRLP4 324
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 324
INDIRI4
CNSTI4 0
NEI4 $1049
line 2458
;2458:	{
line 2459
;2459:		gDeactivated = 1;
ADDRGP4 gDeactivated
CNSTF4 1065353216
ASGNF4
line 2461
;2460:
;2461:		RequiredSArgument = ConcatArgs( 1 );
CNSTI4 1
ARGI4
ADDRLP4 328
ADDRGP4 ConcatArgs
CALLP4
ASGNP4
ADDRLP4 4
ADDRLP4 328
INDIRP4
ASGNP4
line 2463
;2462:
;2463:		if (!RequiredSArgument || !RequiredSArgument[0])
ADDRLP4 4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $1054
ADDRLP4 4
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $1057
LABELV $1054
line 2464
;2464:		{
line 2465
;2465:			G_Printf(S_COLOR_YELLOW "Flag string needed for bot_wp_switchflags\nType bot_wp_addflagged for a list of flags and their corresponding characters, or use 0 for no flags.\nSyntax: bot_wp_switchflags <flags> <n>\n");
ADDRGP4 $1055
ARGP4
ADDRGP4 G_Printf
CALLV
pop
line 2466
;2466:			return 1;
CNSTI4 1
RETI4
ADDRGP4 $970
JUMPV
LABELV $1056
line 2470
;2467:		}
;2468:
;2469:		while (RequiredSArgument[i])
;2470:		{
line 2471
;2471:			if (RequiredSArgument[i] == 'j')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 106
NEI4 $1059
line 2472
;2472:			{
line 2473
;2473:				FlagsFromArgument |= WPFLAG_JUMP;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 16
BORI4
ASGNI4
line 2474
;2474:			}
ADDRGP4 $1060
JUMPV
LABELV $1059
line 2475
;2475:			else if (RequiredSArgument[i] == 'd')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 100
NEI4 $1061
line 2476
;2476:			{
line 2477
;2477:				FlagsFromArgument |= WPFLAG_DUCK;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 32
BORI4
ASGNI4
line 2478
;2478:			}
ADDRGP4 $1062
JUMPV
LABELV $1061
line 2479
;2479:			else if (RequiredSArgument[i] == 'c')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 99
NEI4 $1063
line 2480
;2480:			{
line 2481
;2481:				FlagsFromArgument |= WPFLAG_SNIPEORCAMPSTAND;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 2048
BORI4
ASGNI4
line 2482
;2482:			}
ADDRGP4 $1064
JUMPV
LABELV $1063
line 2483
;2483:			else if (RequiredSArgument[i] == 'f')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 102
NEI4 $1065
line 2484
;2484:			{
line 2485
;2485:				FlagsFromArgument |= WPFLAG_WAITFORFUNC;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 4096
BORI4
ASGNI4
line 2486
;2486:			}
ADDRGP4 $1066
JUMPV
LABELV $1065
line 2487
;2487:			else if (RequiredSArgument[i] == 's')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 115
NEI4 $1067
line 2488
;2488:			{
line 2489
;2489:				FlagsFromArgument |= WPFLAG_SNIPEORCAMP;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 8192
BORI4
ASGNI4
line 2490
;2490:			}
ADDRGP4 $1068
JUMPV
LABELV $1067
line 2491
;2491:			else if (RequiredSArgument[i] == 'x')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 120
NEI4 $1069
line 2492
;2492:			{
line 2493
;2493:				FlagsFromArgument |= WPFLAG_ONEWAY_FWD;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 16384
BORI4
ASGNI4
line 2494
;2494:			}
ADDRGP4 $1070
JUMPV
LABELV $1069
line 2495
;2495:			else if (RequiredSArgument[i] == 'y')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 121
NEI4 $1071
line 2496
;2496:			{
line 2497
;2497:				FlagsFromArgument |= WPFLAG_ONEWAY_BACK;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 32768
BORI4
ASGNI4
line 2498
;2498:			}
ADDRGP4 $1072
JUMPV
LABELV $1071
line 2499
;2499:			else if (RequiredSArgument[i] == 'g')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 103
NEI4 $1073
line 2500
;2500:			{
line 2501
;2501:				FlagsFromArgument |= WPFLAG_GOALPOINT;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 65536
BORI4
ASGNI4
line 2502
;2502:			}
ADDRGP4 $1074
JUMPV
LABELV $1073
line 2503
;2503:			else if (RequiredSArgument[i] == 'n')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 110
NEI4 $1075
line 2504
;2504:			{
line 2505
;2505:				FlagsFromArgument |= WPFLAG_NOVIS;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 1024
BORI4
ASGNI4
line 2506
;2506:			}
ADDRGP4 $1076
JUMPV
LABELV $1075
line 2507
;2507:			else if (RequiredSArgument[i] == 'm')
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 109
NEI4 $1077
line 2508
;2508:			{
line 2509
;2509:				FlagsFromArgument |= WPFLAG_NOMOVEFUNC;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 2097152
BORI4
ASGNI4
line 2510
;2510:			}
LABELV $1077
LABELV $1076
LABELV $1074
LABELV $1072
LABELV $1070
LABELV $1068
LABELV $1066
LABELV $1064
LABELV $1062
LABELV $1060
line 2512
;2511:
;2512:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 2513
;2513:		}
LABELV $1057
line 2469
ADDRLP4 0
INDIRI4
ADDRLP4 4
INDIRP4
ADDP4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $1056
line 2515
;2514:
;2515:		OptionalSArgument = ConcatArgs( 2 );
CNSTI4 2
ARGI4
ADDRLP4 336
ADDRGP4 ConcatArgs
CALLP4
ASGNP4
ADDRLP4 8
ADDRLP4 336
INDIRP4
ASGNP4
line 2517
;2516:
;2517:		if (OptionalSArgument)
ADDRLP4 8
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $1079
line 2518
;2518:		{
line 2519
;2519:			OptionalArgument = atoi(OptionalSArgument);
ADDRLP4 8
INDIRP4
ARGP4
ADDRLP4 340
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 16
ADDRLP4 340
INDIRI4
ASGNI4
line 2520
;2520:		}
LABELV $1079
line 2522
;2521:
;2522:		if (OptionalSArgument && OptionalSArgument[0])
ADDRLP4 8
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $1081
ADDRLP4 8
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $1081
line 2523
;2523:		{
line 2524
;2524:			WPFlagsModify(OptionalArgument, FlagsFromArgument);
ADDRLP4 16
INDIRI4
ARGI4
ADDRLP4 12
INDIRI4
ARGI4
ADDRGP4 WPFlagsModify
CALLV
pop
line 2525
;2525:		}
ADDRGP4 $1082
JUMPV
LABELV $1081
line 2527
;2526:		else
;2527:		{
line 2528
;2528:			G_Printf(S_COLOR_YELLOW "Waypoint number (to modify) needed for bot_wp_switchflags\nSyntax: bot_wp_switchflags <flags> <n>\n");
ADDRGP4 $1083
ARGP4
ADDRGP4 G_Printf
CALLV
pop
line 2529
;2529:		}
LABELV $1082
line 2530
;2530:		return 1;
CNSTI4 1
RETI4
ADDRGP4 $970
JUMPV
LABELV $1049
line 2533
;2531:	}
;2532:
;2533:	if (Q_stricmp (cmd, "bot_wp_killoneways") == 0)
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 $1086
ARGP4
ADDRLP4 328
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 328
INDIRI4
CNSTI4 0
NEI4 $1084
line 2534
;2534:	{
line 2535
;2535:		i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $1088
JUMPV
LABELV $1087
line 2538
;2536:
;2537:		while (i < gWPNum)
;2538:		{
line 2539
;2539:			if (gWPArray[i] && gWPArray[i]->inuse)
ADDRLP4 332
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
ASGNP4
ADDRLP4 332
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $1090
ADDRLP4 332
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
EQI4 $1090
line 2540
;2540:			{
line 2541
;2541:				if (gWPArray[i]->flags & WPFLAG_ONEWAY_FWD)
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
INDIRI4
CNSTI4 16384
BANDI4
CNSTI4 0
EQI4 $1092
line 2542
;2542:				{
line 2543
;2543:					gWPArray[i]->flags -= WPFLAG_ONEWAY_FWD;
ADDRLP4 336
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
ASGNP4
ADDRLP4 336
INDIRP4
ADDRLP4 336
INDIRP4
INDIRI4
CNSTI4 16384
SUBI4
ASGNI4
line 2544
;2544:				}
LABELV $1092
line 2545
;2545:				if (gWPArray[i]->flags & WPFLAG_ONEWAY_BACK)
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
INDIRI4
CNSTI4 32768
BANDI4
CNSTI4 0
EQI4 $1094
line 2546
;2546:				{
line 2547
;2547:					gWPArray[i]->flags -= WPFLAG_ONEWAY_BACK;
ADDRLP4 336
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 gWPArray
ADDP4
INDIRP4
CNSTI4 28
ADDP4
ASGNP4
ADDRLP4 336
INDIRP4
ADDRLP4 336
INDIRP4
INDIRI4
CNSTI4 32768
SUBI4
ASGNI4
line 2548
;2548:				}
LABELV $1094
line 2549
;2549:			}
LABELV $1090
line 2551
;2550:
;2551:			i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 2552
;2552:		}
LABELV $1088
line 2537
ADDRLP4 0
INDIRI4
ADDRGP4 gWPNum
INDIRI4
LTI4 $1087
line 2554
;2553:
;2554:		return 1;
CNSTI4 1
RETI4
ADDRGP4 $970
JUMPV
LABELV $1084
line 2557
;2555:	}
;2556:
;2557:	if (Q_stricmp (cmd, "bot_wp_save") == 0)
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 $1098
ARGP4
ADDRLP4 332
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 332
INDIRI4
CNSTI4 0
NEI4 $1096
line 2558
;2558:	{
line 2559
;2559:		gDeactivated = 0;
ADDRGP4 gDeactivated
CNSTF4 0
ASGNF4
line 2560
;2560:		trap_Cvar_Register( &mapname, "mapname", "", CVAR_SERVERINFO | CVAR_ROM );
ADDRLP4 20
ARGP4
ADDRGP4 $922
ARGP4
ADDRGP4 $923
ARGP4
CNSTI4 68
ARGI4
ADDRGP4 trap_Cvar_Register
CALLV
pop
line 2561
;2561:		SavePathData(mapname.string);
ADDRLP4 20+16
ARGP4
ADDRGP4 SavePathData
CALLI4
pop
line 2562
;2562:		return 1;
CNSTI4 1
RETI4
ADDRGP4 $970
JUMPV
LABELV $1096
line 2565
;2563:	}
;2564:
;2565:	return 0;
CNSTI4 0
RETI4
LABELV $970
endproc AcceptBotCommand 344 16
import floattime
bss
export nodenum
align 4
LABELV nodenum
skip 4
export nodetable
align 4
LABELV nodetable
skip 131072
export gWPArray
align 4
LABELV gWPArray
skip 16384
import gBotChatBuffer
import eFlagBlue
import eFlagRed
import oFlagBlue
import flagBlue
import oFlagRed
import flagRed
import bot_wp_visconnect
import bot_wp_distconnect
import bot_wp_clearweight
import bot_wp_edit
import bot_wp_info
import bot_camp
import bot_attachments
import bot_honorableduelacceptance
import bot_forgimmick
import bot_forcepowers
import ConcatArgs
import GetBestIdleGoal
import GetNearestVisibleWP
import BotIsAChickenWuss
import OrgVisibleBox
import StandardBotAI
import BotDoChat
import BotUtilizePersonality
import NumBots
import BotResetState
import B_Free
import B_Alloc
import B_TempFree
import B_TempAlloc
import GetBotLibAPI
import trap_ROFF_Purge_Ent
import trap_ROFF_Play
import trap_ROFF_Cache
import trap_ROFF_UpdateEntities
import trap_ROFF_Clean
import trap_SP_GetStringTextString
import trap_SP_Register
import trap_SP_RegisterServer
import trap_SnapVector
import trap_GeneticParentsAndChildSelection
import trap_BotResetWeaponState
import trap_BotFreeWeaponState
import trap_BotAllocWeaponState
import trap_BotLoadWeaponWeights
import trap_BotGetWeaponInfo
import trap_BotChooseBestFightWeapon
import trap_BotAddAvoidSpot
import trap_BotInitMoveState
import trap_BotFreeMoveState
import trap_BotAllocMoveState
import trap_BotPredictVisiblePosition
import trap_BotMovementViewTarget
import trap_BotReachabilityArea
import trap_BotResetLastAvoidReach
import trap_BotResetAvoidReach
import trap_BotMoveInDirection
import trap_BotMoveToGoal
import trap_BotResetMoveState
import trap_BotFreeGoalState
import trap_BotAllocGoalState
import trap_BotMutateGoalFuzzyLogic
import trap_BotSaveGoalFuzzyLogic
import trap_BotInterbreedGoalFuzzyLogic
import trap_BotFreeItemWeights
import trap_BotLoadItemWeights
import trap_BotUpdateEntityItems
import trap_BotInitLevelItems
import trap_BotSetAvoidGoalTime
import trap_BotAvoidGoalTime
import trap_BotGetLevelItemGoal
import trap_BotGetMapLocationGoal
import trap_BotGetNextCampSpotGoal
import trap_BotItemGoalInVisButNotVisible
import trap_BotTouchingGoal
import trap_BotChooseNBGItem
import trap_BotChooseLTGItem
import trap_BotGetSecondGoal
import trap_BotGetTopGoal
import trap_BotGoalName
import trap_BotDumpGoalStack
import trap_BotDumpAvoidGoals
import trap_BotEmptyGoalStack
import trap_BotPopGoal
import trap_BotPushGoal
import trap_BotResetAvoidGoals
import trap_BotRemoveFromAvoidGoals
import trap_BotResetGoalState
import trap_BotSetChatName
import trap_BotSetChatGender
import trap_BotLoadChatFile
import trap_BotReplaceSynonyms
import trap_UnifyWhiteSpaces
import trap_BotMatchVariable
import trap_BotFindMatch
import trap_StringContains
import trap_BotGetChatMessage
import trap_BotEnterChat
import trap_BotChatLength
import trap_BotReplyChat
import trap_BotNumInitialChats
import trap_BotInitialChat
import trap_BotNumConsoleMessages
import trap_BotNextConsoleMessage
import trap_BotRemoveConsoleMessage
import trap_BotQueueConsoleMessage
import trap_BotFreeChatState
import trap_BotAllocChatState
import trap_Characteristic_String
import trap_Characteristic_BInteger
import trap_Characteristic_Integer
import trap_Characteristic_BFloat
import trap_Characteristic_Float
import trap_BotFreeCharacter
import trap_BotLoadCharacter
import trap_EA_ResetInput
import trap_EA_GetInput
import trap_EA_EndRegular
import trap_EA_ForcePower
import trap_EA_Alt_Attack
import trap_EA_View
import trap_EA_Move
import trap_EA_DelayedJump
import trap_EA_Jump
import trap_EA_SelectWeapon
import trap_EA_MoveRight
import trap_EA_MoveLeft
import trap_EA_MoveBack
import trap_EA_MoveForward
import trap_EA_MoveDown
import trap_EA_MoveUp
import trap_EA_Crouch
import trap_EA_Respawn
import trap_EA_Use
import trap_EA_Attack
import trap_EA_Talk
import trap_EA_Gesture
import trap_EA_Action
import trap_EA_Command
import trap_EA_SayTeam
import trap_EA_Say
import trap_AAS_PredictClientMovement
import trap_AAS_Swimming
import trap_AAS_AlternativeRouteGoals
import trap_AAS_PredictRoute
import trap_AAS_EnableRoutingArea
import trap_AAS_AreaTravelTimeToGoalArea
import trap_AAS_AreaReachability
import trap_AAS_IntForBSPEpairKey
import trap_AAS_FloatForBSPEpairKey
import trap_AAS_VectorForBSPEpairKey
import trap_AAS_ValueForBSPEpairKey
import trap_AAS_NextBSPEntity
import trap_AAS_PointContents
import trap_AAS_TraceAreas
import trap_AAS_PointReachabilityAreaIndex
import trap_AAS_PointAreaNum
import trap_AAS_Time
import trap_AAS_PresenceTypeBoundingBox
import trap_AAS_Initialized
import trap_AAS_EntityInfo
import trap_AAS_AreaInfo
import trap_AAS_BBoxAreas
import trap_BotUserCommand
import trap_BotGetServerCommand
import trap_BotGetSnapshotEntity
import trap_BotLibTest
import trap_BotLibUpdateEntity
import trap_BotLibLoadMap
import trap_BotLibStartFrame
import trap_BotLibDefine
import trap_BotLibVarGet
import trap_BotLibVarSet
import trap_BotLibShutdown
import trap_BotLibSetup
import trap_DebugPolygonDelete
import trap_DebugPolygonCreate
import trap_GetEntityToken
import trap_GetUsercmd
import trap_BotFreeClient
import trap_BotAllocateClient
import trap_EntityContact
import trap_EntitiesInBox
import trap_UnlinkEntity
import trap_LinkEntity
import trap_AreasConnected
import trap_AdjustAreaPortalState
import trap_InPVSIgnorePortals
import trap_InPVS
import trap_PointContents
import trap_Trace
import trap_SetBrushModel
import trap_GetServerinfo
import trap_SetUserinfo
import trap_GetUserinfo
import trap_GetConfigstring
import trap_SetConfigstring
import trap_SendServerCommand
import trap_DropClient
import trap_LocateGameData
import trap_Cvar_VariableStringBuffer
import trap_Cvar_VariableValue
import trap_Cvar_VariableIntegerValue
import trap_Cvar_Set
import trap_Cvar_Update
import trap_Cvar_Register
import trap_SendConsoleCommand
import trap_FS_GetFileList
import trap_FS_FCloseFile
import trap_FS_Write
import trap_FS_Read
import trap_FS_FOpenFile
import trap_Args
import trap_Argv
import trap_Argc
import trap_Milliseconds
import trap_Error
import trap_Printf
import g_austrian
import g_saberDebugPrint
import g_saberDmgDelay_Wound
import g_saberDmgDelay_Idle
import g_saberDmgVelocityScale
import g_timeouttospec
import g_forceDodge
import g_dismember
import g_singlePlayer
import g_enableBreath
import g_enableDust
import g_rankings
import pmove_msec
import pmove_fixed
import g_smoothClients
import g_blueteam
import g_redteam
import g_debugUp
import g_debugRight
import g_debugForward
import g_filterBan
import g_banIPs
import g_teamForceBalance
import g_teamAutoJoin
import g_allowVote
import g_blood
import g_doWarmup
import g_warmup
import g_motd
import g_synchronousClients
import g_adaptRespawn
import g_weaponTeamRespawn
import g_weaponRespawn
import g_debugDamage
import g_debugAlloc
import g_debugMove
import g_inactivity
import g_forcerespawn
import g_quadfactor
import g_knockback
import g_speed
import g_gravity
import g_needpass
import g_password
import g_friendlySaber
import g_friendlyFire
import g_saberInterpolate
import g_capturelimit
import g_timelimit
import g_duel_fraglimit
import g_fraglimit
import g_duelWeaponDisable
import g_fraglimitVoteCorrection
import g_allowDuelSuicide
import g_weaponDisable
import g_forcePowerDisable
import g_spawnInvulnerability
import g_forceRegenTime
import g_saberDamageScale
import g_slowmoDuelEnd
import g_logClientInfo
import g_saberBoxTraceSize
import g_saberAlwaysBoxTrace
import g_saberGhoul2Collision
import g_saberTraceSaberFirst
import g_saberLockFactor
import g_saberLocking
import g_privateDuel
import g_forceBasedTeams
import g_maxForceRank
import g_dmflags
import g_autoMapCycle
import g_trueJedi
import g_restarted
import g_maxGameClients
import g_maxclients
import g_cheats
import g_dedicated
import g_gametype
import g_vehicles
import g_vehicleTemplates
import vehicleId
import VehicleTemplateArray_GetTemplateIndexForName
import VehicleTemplateArray_OutputTemplates
import VehicleTemplateArray_InitVehicleTemplateArray
import VehicleArray_OutputVehicles
import VehicleArray_RemoveVehicleForId
import VehicleArray_AddVehicle
import VehicleArray_SetVehicleForId
import VehicleArray_GetVehicleForId
import VehicleArray_InitVehicleArray
import G_SpawnVehicle
import Touch_Vehicle
import VehicleInfo_GetNameForMovementType
import VehicleInfo_GetBitForMovementType
import VehicleInfo_GetNameForWeapon
import VehicleInfo_GetIndexForWeapon
import VehicleInfo_GetBitForWeapon
import VehicleInfo_GetBitForVehicleType
import Vehicle_CopyVehicle
import Vehicle_InitVehicle
import g_entities
import level
import Pickup_Team
import CheckTeamStatus
import TeamplayInfoMessage
import Team_GetLocationMsg
import Team_GetLocation
import SelectSagaSpawnPoint
import SelectCTFSpawnPoint
import Team_FreeEntity
import Team_ReturnFlag
import Team_InitGame
import Team_CheckHurtCarrier
import Team_FragBonuses
import Team_DroppedFlagThink
import AddTeamScore
import TeamColorString
import OtherTeamName
import TeamName
import OtherTeam
import BotAIStartFrame
import BotAIShutdownClient
import BotAISetupClient
import BotAILoadMap
import BotAIShutdown
import BotAISetup
import B_CleanupAlloc
import B_InitAlloc
import InFieldOfVision
import BotOrder
import OrgVisible
import InitSagaMode
import G_ClearClientLog
import G_LogExit
import G_LogWeaponOutput
import G_LogWeaponInit
import G_LogWeaponItem
import G_LogWeaponPowerup
import G_LogWeaponFrag
import G_LogWeaponDeath
import G_LogWeaponKill
import G_LogWeaponDamage
import G_LogWeaponFire
import G_LogWeaponPickup
import Jedi_DodgeEvasion
import ForceTelepathy
import ForceThrow
import ForceSeeing
import ForceTeamForceReplenish
import ForceTeamHeal
import ForceAbsorb
import ForceProtect
import ForceGrip
import ForceRage
import ForceSpeed
import ForceHeal
import ForcePowerUsableOn
import WP_ForcePowersUpdate
import WP_SpawnInitForcePowers
import WP_InitForcePowers
import WP_SaberInitBladeData
import WP_SaberCanBlock
import WP_SaberPositionUpdate
import WP_ForcePowerStop
import HasSetSaberOnly
import G_PreDefSound
import G_RefreshNextMap
import G_DoesMapSupportGametype
import BotInterbreedEndMatch
import Svcmd_BotList_f
import Svcmd_AddBot_f
import G_BotConnect
import G_RemoveQueuedBotBegin
import G_CheckBotSpawn
import G_GetBotInfoByName
import G_GetBotInfoByNumber
import G_InitBots
import UpdateTournamentInfo
import G_WriteSessionData
import G_InitWorldSession
import G_InitSessionData
import G_ReadSessionData
import Svcmd_GameMem_f
import G_InitMemory
import G_Alloc
import Team_CheckDroppedItem
import OnSameTeam
import G_RunClient
import ClientEndFrame
import ClientThink
import G_CheckClientTimeouts
import ClientCommand
import ClientBegin
import ClientDisconnect
import ClientUserinfoChanged
import ClientConnect
import G_GetStripEdString
import G_Error
import G_Printf
import SendScoreboardMessageToAllClients
import G_LogPrintf
import G_RunThink
import CheckTeamLeader
import SetLeader
import FindIntermissionPoint
import gSlowMoDuelTime
import gDoSlowMoDuel
import g_ff_objectives
import DeathmatchScoreboardMessage
import G_SetStats
import MoveClientToIntermission
import BlowDetpacks
import FireWeapon
import G_FilterPacket
import G_ProcessIPBans
import ConsoleCommand
import gJMSaberEnt
import SpotWouldTelefrag
import CalculateRanks
import AddScore
import player_die
import ClientSpawn
import InitBodyQue
import BeginIntermission
import respawn
import CopyToBodyQue
import SelectSpawnPoint
import SetClientViewAngle
import PickTeam
import TeamLeader
import TeamCount
import CheckGauntletAttack
import SnapVectorTowards
import CalcMuzzlePoint
import LogAccuracyHit
import WP_FireGenericBlasterMissile
import WP_FireTurretMissile
import G_CreateExampleAnimEnt
import G_PlayerBecomeATST
import ATST_ManageDamageBoxes
import TeleportPlayer
import trigger_teleporter_touch
import Touch_DoorTrigger
import G_RunMover
import WP_FireBlasterMissile
import G_ExplodeMissile
import G_BounceProjectile
import CreateMissile
import G_RunMissile
import G_ReflectMissile
import gGAvoidDismember
import G_CheckForDismemberment
import ExplodeDeath
import TossClientCubes
import TossClientItems
import TossClientWeapon
import body_die
import G_RadiusDamage
import G_Damage
import CanDamage
import trap_G2API_SetBoneAnim
import trap_G2API_GetGLAName
import trap_G2API_SetBoneAngles
import trap_G2API_CollisionDetect
import trap_G2API_CleanGhoul2Models
import trap_G2API_RemoveGhoul2Model
import trap_G2API_HasGhoul2ModelOnIndex
import trap_G2API_DuplicateGhoul2Instance
import trap_G2API_CopySpecificGhoul2Model
import trap_G2API_CopyGhoul2Instance
import trap_G2API_SetBoltInfo
import trap_G2API_AddBolt
import trap_G2API_InitGhoul2Model
import trap_G2API_GetBoltMatrix_NoRecNoRot
import trap_G2API_GetBoltMatrix_NoReconstruct
import trap_G2API_GetBoltMatrix
import trap_G2_HaveWeGhoul2Models
import trap_G2_SetGhoul2ModelIndexes
import trap_G2_ListModelBones
import trap_G2_ListModelSurfaces
import G_SkinIndex
import BuildShaderStateConfig
import AddRemap
import G_SetOrigin
import G_AddEvent
import G_AddPredictableEvent
import vtos
import tv
import G_RunObject
import G_TouchSolids
import G_TouchTriggers
import G_EntitiesFree
import G_FreeEntity
import G_KillG2Queue
import G_SendG2KillQueue
import TryUse
import G_EntitySound
import G_SoundAtLoc
import G_Sound
import G_MuteSound
import G_ScreenShake
import G_PlayEffect
import G_TempEntity
import G_Spawn
import G_InitGentity
import G_SetAngles
import G_SetMovedir
import G_UseTargets
import G_PickTarget
import G_RadiusList
import G_Find
import G_KillBox
import G_TeamCommand
import G_EffectIndex
import G_SoundIndex
import G_ModelIndex
import SaveRegisteredItems
import RegisterItem
import ClearRegisteredItems
import Touch_Item
import Add_Ammo
import ArmorIndex
import Think_Weapon
import FinishSpawningItem
import G_SpawnItem
import SetRespawn
import LaunchItem
import Drop_Item
import PrecacheItem
import UseHoldableItem
import RespawnItem
import G_RunItem
import G_CheckTeamItems
import ItemUse_MedPack
import ItemUse_Seeker
import ItemUse_Sentry
import ItemUse_Shield
import ItemUse_Binoculars
import G_GetDuelWinner
import Cmd_EngageDuel_f
import Cmd_ToggleSaber_f
import G_ItemUsable
import Cmd_SaberAttackCycle_f
import Cmd_FollowCycle_f
import SetTeam
import BroadcastTeamChange
import StopFollowing
import Cmd_Score_f
import G_NewString
import G_SpawnEntitiesFromString
import G_SpawnVector
import G_SpawnInt
import G_SpawnFloat
import G_SpawnString
import gEscapeTime
import gEscaping
import g2SaberInstance
import precachedKyle
import forcePowerDarkLight
import WeaponAttackAnim
import WeaponReadyAnim
import BG_OutOfMemory
import BG_StringAlloc
import BG_TempFree
import BG_TempAlloc
import BG_AllocUnaligned
import BG_Alloc
import BG_CanUseFPNow
import BG_HasYsalamiri
import BG_GetItemIndexByTag
import BG_ParseAnimationFile
import BG_PlayerTouchesItem
import BG_PlayerStateToEntityStateExtraPolate
import BG_PlayerStateToEntityState
import BG_TouchJumpPad
import BG_AddPredictableEventToPlayerstate
import BG_EvaluateTrajectoryDelta
import BG_EvaluateTrajectory
import BG_ForcePowerDrain
import BG_SaberStartTransAnim
import BG_InDeathAnim
import BG_InRoll
import BG_KnockawayForParry
import BG_BrokenParryForParry
import BG_BrokenParryForAttack
import BG_SaberInSpecialAttack
import BG_SpinningSaberAnim
import BG_FlippingAnim
import BG_SaberInIdle
import BG_SaberInSpecial
import BG_SaberInAttack
import BG_DirectFlippingAnim
import BG_InSaberStandAnim
import BG_InSpecialJump
import BG_LegalizedForcePowers
import saberMoveData
import BG_CanItemBeGrabbed
import BG_FindItemForHoldable
import BG_FindItemForPowerup
import BG_FindItemForWeapon
import BG_FindItem
import vectoyaw
import bg_numItems
import bg_itemlist
import PM_CalculateRelativeViewAngles
import Pmove
import PM_QuaternionViewAngles
import PM_UpdateViewAngles
import pm
import bgForcePowerCost
import forceMasteryPoints
import forceMasteryLevels
import bgGlobalAnimations
import BGPAFtextLoaded
import forcePowerSorted
import WP_MuzzlePoint
import ammoData
import weaponData
import GetStringForID
import GetIDForString
import Q_irand
import irand
import flrand
import Rand_Init
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_ParseVec4
import COM_ParseFloat
import COM_ParseInt
import COM_ParseString
import COM_ParseWarning
import COM_ParseError
import COM_Compress
import COM_ParseExt
import COM_Parse
import SkipWhitespace
import COM_GetCurrentParseLine
import COM_BeginParseSession
import COM_DefaultExtension
import COM_StripExtension
import COM_SkipPath
import Com_Clamp
import MatrixToEuler
import QuatToAngles
import QuatMul
import AnglesToQuat
import AxisToQuaternion
import QuaternionToAxis
import QuaternionToEuler
import QuatToAxis
import QuaternionMultiply
import QuaternionNormalize
import QuaternionMagnitude
import QuaternionFromString
import AnglesToTieFloats
import AnglesFromTieFloats
import QuaternionToTieFloats
import QuaternionFromTieFloats
import QuaternionCopy
import PerpendicularVector
import AngleVectors
import RotationMatrixAroundDir
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 powf
import ClampShort
import ClampChar
import Q_rsqrt
import Q_fabs
import axisDefault
import vec3_origin
import g_color_table
import colorDkBlue
import colorLtBlue
import colorDkGrey
import colorMdGrey
import colorLtGrey
import colorWhite
import colorCyan
import colorMagenta
import colorYellow
import colorBlue
import colorGreen
import colorRed
import colorBlack
import colorTable
import bytedirs
import Com_Memcpy
import Com_Memset
import Hunk_Alloc
import forceSpeedLevels
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 $1098
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 115
byte 1 97
byte 1 118
byte 1 101
byte 1 0
align 1
LABELV $1086
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 107
byte 1 105
byte 1 108
byte 1 108
byte 1 111
byte 1 110
byte 1 101
byte 1 119
byte 1 97
byte 1 121
byte 1 115
byte 1 0
align 1
LABELV $1083
byte 1 94
byte 1 51
byte 1 87
byte 1 97
byte 1 121
byte 1 112
byte 1 111
byte 1 105
byte 1 110
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 32
byte 1 40
byte 1 116
byte 1 111
byte 1 32
byte 1 109
byte 1 111
byte 1 100
byte 1 105
byte 1 102
byte 1 121
byte 1 41
byte 1 32
byte 1 110
byte 1 101
byte 1 101
byte 1 100
byte 1 101
byte 1 100
byte 1 32
byte 1 102
byte 1 111
byte 1 114
byte 1 32
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 115
byte 1 119
byte 1 105
byte 1 116
byte 1 99
byte 1 104
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 115
byte 1 10
byte 1 83
byte 1 121
byte 1 110
byte 1 116
byte 1 97
byte 1 120
byte 1 58
byte 1 32
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 115
byte 1 119
byte 1 105
byte 1 116
byte 1 99
byte 1 104
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 115
byte 1 32
byte 1 60
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 115
byte 1 62
byte 1 32
byte 1 60
byte 1 110
byte 1 62
byte 1 10
byte 1 0
align 1
LABELV $1055
byte 1 94
byte 1 51
byte 1 70
byte 1 108
byte 1 97
byte 1 103
byte 1 32
byte 1 115
byte 1 116
byte 1 114
byte 1 105
byte 1 110
byte 1 103
byte 1 32
byte 1 110
byte 1 101
byte 1 101
byte 1 100
byte 1 101
byte 1 100
byte 1 32
byte 1 102
byte 1 111
byte 1 114
byte 1 32
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 115
byte 1 119
byte 1 105
byte 1 116
byte 1 99
byte 1 104
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 115
byte 1 10
byte 1 84
byte 1 121
byte 1 112
byte 1 101
byte 1 32
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 97
byte 1 100
byte 1 100
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 103
byte 1 101
byte 1 100
byte 1 32
byte 1 102
byte 1 111
byte 1 114
byte 1 32
byte 1 97
byte 1 32
byte 1 108
byte 1 105
byte 1 115
byte 1 116
byte 1 32
byte 1 111
byte 1 102
byte 1 32
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 115
byte 1 32
byte 1 97
byte 1 110
byte 1 100
byte 1 32
byte 1 116
byte 1 104
byte 1 101
byte 1 105
byte 1 114
byte 1 32
byte 1 99
byte 1 111
byte 1 114
byte 1 114
byte 1 101
byte 1 115
byte 1 112
byte 1 111
byte 1 110
byte 1 100
byte 1 105
byte 1 110
byte 1 103
byte 1 32
byte 1 99
byte 1 104
byte 1 97
byte 1 114
byte 1 97
byte 1 99
byte 1 116
byte 1 101
byte 1 114
byte 1 115
byte 1 44
byte 1 32
byte 1 111
byte 1 114
byte 1 32
byte 1 117
byte 1 115
byte 1 101
byte 1 32
byte 1 48
byte 1 32
byte 1 102
byte 1 111
byte 1 114
byte 1 32
byte 1 110
byte 1 111
byte 1 32
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 115
byte 1 46
byte 1 10
byte 1 83
byte 1 121
byte 1 110
byte 1 116
byte 1 97
byte 1 120
byte 1 58
byte 1 32
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 115
byte 1 119
byte 1 105
byte 1 116
byte 1 99
byte 1 104
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 115
byte 1 32
byte 1 60
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 115
byte 1 62
byte 1 32
byte 1 60
byte 1 110
byte 1 62
byte 1 10
byte 1 0
align 1
LABELV $1051
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 115
byte 1 119
byte 1 105
byte 1 116
byte 1 99
byte 1 104
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 115
byte 1 0
align 1
LABELV $1021
byte 1 94
byte 1 51
byte 1 70
byte 1 108
byte 1 97
byte 1 103
byte 1 32
byte 1 115
byte 1 116
byte 1 114
byte 1 105
byte 1 110
byte 1 103
byte 1 32
byte 1 110
byte 1 101
byte 1 101
byte 1 100
byte 1 101
byte 1 100
byte 1 32
byte 1 102
byte 1 111
byte 1 114
byte 1 32
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 97
byte 1 100
byte 1 100
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 103
byte 1 101
byte 1 100
byte 1 10
byte 1 106
byte 1 32
byte 1 45
byte 1 32
byte 1 74
byte 1 117
byte 1 109
byte 1 112
byte 1 32
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 10
byte 1 100
byte 1 32
byte 1 45
byte 1 32
byte 1 68
byte 1 117
byte 1 99
byte 1 107
byte 1 32
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 10
byte 1 99
byte 1 32
byte 1 45
byte 1 32
byte 1 83
byte 1 110
byte 1 105
byte 1 112
byte 1 101
byte 1 32
byte 1 111
byte 1 114
byte 1 32
byte 1 99
byte 1 97
byte 1 109
byte 1 112
byte 1 32
byte 1 115
byte 1 116
byte 1 97
byte 1 110
byte 1 100
byte 1 105
byte 1 110
byte 1 103
byte 1 10
byte 1 102
byte 1 32
byte 1 45
byte 1 32
byte 1 87
byte 1 97
byte 1 105
byte 1 116
byte 1 32
byte 1 102
byte 1 111
byte 1 114
byte 1 32
byte 1 102
byte 1 117
byte 1 110
byte 1 99
byte 1 10
byte 1 109
byte 1 32
byte 1 45
byte 1 32
byte 1 68
byte 1 111
byte 1 32
byte 1 110
byte 1 111
byte 1 116
byte 1 32
byte 1 109
byte 1 111
byte 1 118
byte 1 101
byte 1 32
byte 1 116
byte 1 111
byte 1 32
byte 1 119
byte 1 104
byte 1 101
byte 1 110
byte 1 32
byte 1 102
byte 1 117
byte 1 110
byte 1 99
byte 1 32
byte 1 105
byte 1 115
byte 1 32
byte 1 117
byte 1 110
byte 1 100
byte 1 101
byte 1 114
byte 1 10
byte 1 115
byte 1 32
byte 1 45
byte 1 32
byte 1 83
byte 1 110
byte 1 105
byte 1 112
byte 1 101
byte 1 32
byte 1 111
byte 1 114
byte 1 32
byte 1 99
byte 1 97
byte 1 109
byte 1 112
byte 1 10
byte 1 120
byte 1 32
byte 1 45
byte 1 32
byte 1 79
byte 1 110
byte 1 101
byte 1 119
byte 1 97
byte 1 121
byte 1 44
byte 1 32
byte 1 102
byte 1 111
byte 1 114
byte 1 119
byte 1 97
byte 1 114
byte 1 100
byte 1 10
byte 1 121
byte 1 32
byte 1 45
byte 1 32
byte 1 79
byte 1 110
byte 1 101
byte 1 119
byte 1 97
byte 1 121
byte 1 44
byte 1 32
byte 1 98
byte 1 97
byte 1 99
byte 1 107
byte 1 10
byte 1 103
byte 1 32
byte 1 45
byte 1 32
byte 1 77
byte 1 105
byte 1 115
byte 1 115
byte 1 105
byte 1 111
byte 1 110
byte 1 32
byte 1 103
byte 1 111
byte 1 97
byte 1 108
byte 1 10
byte 1 110
byte 1 32
byte 1 45
byte 1 32
byte 1 78
byte 1 111
byte 1 32
byte 1 118
byte 1 105
byte 1 115
byte 1 105
byte 1 98
byte 1 105
byte 1 108
byte 1 105
byte 1 116
byte 1 121
byte 1 10
byte 1 69
byte 1 120
byte 1 97
byte 1 109
byte 1 112
byte 1 108
byte 1 101
byte 1 32
byte 1 40
byte 1 102
byte 1 111
byte 1 114
byte 1 32
byte 1 97
byte 1 32
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 32
byte 1 116
byte 1 104
byte 1 101
byte 1 32
byte 1 98
byte 1 111
byte 1 116
byte 1 32
byte 1 119
byte 1 111
byte 1 117
byte 1 108
byte 1 100
byte 1 32
byte 1 106
byte 1 117
byte 1 109
byte 1 112
byte 1 32
byte 1 97
byte 1 116
byte 1 44
byte 1 32
byte 1 97
byte 1 110
byte 1 100
byte 1 32
byte 1 114
byte 1 101
byte 1 118
byte 1 101
byte 1 114
byte 1 115
byte 1 101
byte 1 32
byte 1 111
byte 1 110
byte 1 32
byte 1 119
byte 1 104
byte 1 101
byte 1 110
byte 1 32
byte 1 116
byte 1 114
byte 1 97
byte 1 118
byte 1 101
byte 1 108
byte 1 105
byte 1 110
byte 1 103
byte 1 32
byte 1 97
byte 1 32
byte 1 116
byte 1 114
byte 1 97
byte 1 105
byte 1 108
byte 1 32
byte 1 98
byte 1 97
byte 1 99
byte 1 107
byte 1 119
byte 1 97
byte 1 114
byte 1 100
byte 1 115
byte 1 41
byte 1 58
byte 1 10
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 97
byte 1 100
byte 1 100
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 103
byte 1 101
byte 1 100
byte 1 32
byte 1 106
byte 1 120
byte 1 10
byte 1 0
align 1
LABELV $1017
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 97
byte 1 100
byte 1 100
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 103
byte 1 101
byte 1 100
byte 1 0
align 1
LABELV $1010
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 115
byte 1 112
byte 1 97
byte 1 119
byte 1 110
byte 1 116
byte 1 101
byte 1 108
byte 1 101
byte 1 0
align 1
LABELV $1007
byte 1 94
byte 1 51
byte 1 89
byte 1 111
byte 1 117
byte 1 32
byte 1 100
byte 1 105
byte 1 100
byte 1 110
byte 1 39
byte 1 116
byte 1 32
byte 1 115
byte 1 112
byte 1 101
byte 1 99
byte 1 105
byte 1 102
byte 1 121
byte 1 32
byte 1 97
byte 1 110
byte 1 32
byte 1 105
byte 1 110
byte 1 100
byte 1 101
byte 1 120
byte 1 46
byte 1 32
byte 1 65
byte 1 115
byte 1 115
byte 1 117
byte 1 109
byte 1 105
byte 1 110
byte 1 103
byte 1 32
byte 1 108
byte 1 97
byte 1 115
byte 1 116
byte 1 46
byte 1 10
byte 1 0
align 1
LABELV $1002
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 116
byte 1 101
byte 1 108
byte 1 101
byte 1 0
align 1
LABELV $995
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 114
byte 1 101
byte 1 109
byte 1 0
align 1
LABELV $988
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 97
byte 1 100
byte 1 100
byte 1 0
align 1
LABELV $985
byte 1 94
byte 1 51
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 115
byte 1 97
byte 1 118
byte 1 101
byte 1 94
byte 1 55
byte 1 32
byte 1 45
byte 1 32
byte 1 83
byte 1 97
byte 1 118
byte 1 101
byte 1 115
byte 1 32
byte 1 97
byte 1 108
byte 1 108
byte 1 32
byte 1 119
byte 1 97
byte 1 121
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 32
byte 1 100
byte 1 97
byte 1 116
byte 1 97
byte 1 32
byte 1 105
byte 1 110
byte 1 116
byte 1 111
byte 1 32
byte 1 97
byte 1 32
byte 1 102
byte 1 105
byte 1 108
byte 1 101
byte 1 32
byte 1 102
byte 1 111
byte 1 114
byte 1 32
byte 1 108
byte 1 97
byte 1 116
byte 1 101
byte 1 114
byte 1 32
byte 1 117
byte 1 115
byte 1 101
byte 1 10
byte 1 0
align 1
LABELV $984
byte 1 94
byte 1 51
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 107
byte 1 105
byte 1 108
byte 1 108
byte 1 111
byte 1 110
byte 1 101
byte 1 119
byte 1 97
byte 1 121
byte 1 115
byte 1 94
byte 1 55
byte 1 32
byte 1 45
byte 1 32
byte 1 82
byte 1 101
byte 1 109
byte 1 111
byte 1 118
byte 1 101
byte 1 115
byte 1 32
byte 1 111
byte 1 110
byte 1 101
byte 1 119
byte 1 97
byte 1 121
byte 1 32
byte 1 40
byte 1 98
byte 1 97
byte 1 99
byte 1 107
byte 1 119
byte 1 97
byte 1 114
byte 1 100
byte 1 32
byte 1 97
byte 1 110
byte 1 100
byte 1 32
byte 1 102
byte 1 111
byte 1 114
byte 1 119
byte 1 97
byte 1 114
byte 1 100
byte 1 41
byte 1 32
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 115
byte 1 32
byte 1 111
byte 1 110
byte 1 32
byte 1 97
byte 1 108
byte 1 108
byte 1 32
byte 1 119
byte 1 97
byte 1 121
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 115
byte 1 32
byte 1 105
byte 1 110
byte 1 32
byte 1 116
byte 1 104
byte 1 101
byte 1 32
byte 1 108
byte 1 101
byte 1 118
byte 1 101
byte 1 108
byte 1 10
byte 1 10
byte 1 0
align 1
LABELV $983
byte 1 94
byte 1 51
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 116
byte 1 101
byte 1 108
byte 1 101
byte 1 94
byte 1 55
byte 1 32
byte 1 45
byte 1 32
byte 1 84
byte 1 101
byte 1 108
byte 1 101
byte 1 112
byte 1 111
byte 1 114
byte 1 116
byte 1 32
byte 1 121
byte 1 111
byte 1 117
byte 1 114
byte 1 115
byte 1 101
byte 1 108
byte 1 102
byte 1 32
byte 1 116
byte 1 111
byte 1 32
byte 1 116
byte 1 104
byte 1 101
byte 1 32
byte 1 115
byte 1 112
byte 1 101
byte 1 99
byte 1 105
byte 1 102
byte 1 105
byte 1 101
byte 1 100
byte 1 32
byte 1 119
byte 1 97
byte 1 121
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 39
byte 1 115
byte 1 32
byte 1 108
byte 1 111
byte 1 99
byte 1 97
byte 1 116
byte 1 105
byte 1 111
byte 1 110
byte 1 10
byte 1 0
align 1
LABELV $982
byte 1 94
byte 1 51
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 115
byte 1 119
byte 1 105
byte 1 116
byte 1 99
byte 1 104
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 115
byte 1 94
byte 1 55
byte 1 32
byte 1 45
byte 1 32
byte 1 83
byte 1 119
byte 1 105
byte 1 116
byte 1 99
byte 1 104
byte 1 101
byte 1 115
byte 1 32
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 115
byte 1 32
byte 1 111
byte 1 110
byte 1 32
byte 1 97
byte 1 110
byte 1 32
byte 1 101
byte 1 120
byte 1 105
byte 1 115
byte 1 116
byte 1 105
byte 1 110
byte 1 103
byte 1 32
byte 1 119
byte 1 97
byte 1 121
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 32
byte 1 40
byte 1 116
byte 1 121
byte 1 112
byte 1 101
byte 1 32
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 115
byte 1 119
byte 1 105
byte 1 116
byte 1 99
byte 1 104
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 115
byte 1 32
byte 1 102
byte 1 111
byte 1 114
byte 1 32
byte 1 104
byte 1 101
byte 1 108
byte 1 112
byte 1 41
byte 1 10
byte 1 10
byte 1 0
align 1
LABELV $981
byte 1 94
byte 1 51
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 97
byte 1 100
byte 1 100
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 103
byte 1 101
byte 1 100
byte 1 94
byte 1 55
byte 1 32
byte 1 45
byte 1 32
byte 1 83
byte 1 97
byte 1 109
byte 1 101
byte 1 32
byte 1 97
byte 1 115
byte 1 32
byte 1 119
byte 1 112
byte 1 95
byte 1 97
byte 1 100
byte 1 100
byte 1 44
byte 1 32
byte 1 98
byte 1 117
byte 1 116
byte 1 32
byte 1 97
byte 1 100
byte 1 100
byte 1 115
byte 1 32
byte 1 97
byte 1 32
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 103
byte 1 101
byte 1 100
byte 1 32
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 32
byte 1 40
byte 1 116
byte 1 121
byte 1 112
byte 1 101
byte 1 32
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 97
byte 1 100
byte 1 100
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 103
byte 1 101
byte 1 100
byte 1 32
byte 1 102
byte 1 111
byte 1 114
byte 1 32
byte 1 104
byte 1 101
byte 1 108
byte 1 112
byte 1 41
byte 1 10
byte 1 10
byte 1 0
align 1
LABELV $980
byte 1 94
byte 1 51
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 114
byte 1 101
byte 1 109
byte 1 94
byte 1 55
byte 1 32
byte 1 45
byte 1 32
byte 1 82
byte 1 101
byte 1 109
byte 1 111
byte 1 118
byte 1 101
byte 1 32
byte 1 97
byte 1 32
byte 1 119
byte 1 97
byte 1 121
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 32
byte 1 40
byte 1 114
byte 1 101
byte 1 109
byte 1 111
byte 1 118
byte 1 101
byte 1 115
byte 1 32
byte 1 108
byte 1 97
byte 1 115
byte 1 116
byte 1 32
byte 1 117
byte 1 110
byte 1 108
byte 1 101
byte 1 115
byte 1 115
byte 1 32
byte 1 119
byte 1 97
byte 1 121
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 32
byte 1 105
byte 1 110
byte 1 100
byte 1 101
byte 1 120
byte 1 32
byte 1 105
byte 1 115
byte 1 32
byte 1 115
byte 1 112
byte 1 101
byte 1 99
byte 1 105
byte 1 102
byte 1 105
byte 1 101
byte 1 100
byte 1 32
byte 1 97
byte 1 115
byte 1 32
byte 1 97
byte 1 32
byte 1 112
byte 1 97
byte 1 114
byte 1 97
byte 1 109
byte 1 101
byte 1 116
byte 1 101
byte 1 114
byte 1 41
byte 1 10
byte 1 10
byte 1 0
align 1
LABELV $979
byte 1 94
byte 1 51
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 97
byte 1 100
byte 1 100
byte 1 94
byte 1 55
byte 1 32
byte 1 45
byte 1 32
byte 1 65
byte 1 100
byte 1 100
byte 1 32
byte 1 97
byte 1 32
byte 1 119
byte 1 97
byte 1 121
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 32
byte 1 40
byte 1 111
byte 1 112
byte 1 116
byte 1 105
byte 1 111
byte 1 110
byte 1 97
byte 1 108
byte 1 32
byte 1 105
byte 1 110
byte 1 116
byte 1 32
byte 1 112
byte 1 97
byte 1 114
byte 1 97
byte 1 109
byte 1 101
byte 1 116
byte 1 101
byte 1 114
byte 1 32
byte 1 119
byte 1 105
byte 1 108
byte 1 108
byte 1 32
byte 1 105
byte 1 110
byte 1 115
byte 1 101
byte 1 114
byte 1 116
byte 1 32
byte 1 116
byte 1 104
byte 1 101
byte 1 32
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 32
byte 1 97
byte 1 102
byte 1 116
byte 1 101
byte 1 114
byte 1 32
byte 1 116
byte 1 104
byte 1 101
byte 1 32
byte 1 115
byte 1 112
byte 1 101
byte 1 99
byte 1 105
byte 1 102
byte 1 105
byte 1 101
byte 1 100
byte 1 32
byte 1 119
byte 1 97
byte 1 121
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 32
byte 1 105
byte 1 110
byte 1 100
byte 1 101
byte 1 120
byte 1 32
byte 1 105
byte 1 110
byte 1 32
byte 1 97
byte 1 32
byte 1 116
byte 1 114
byte 1 97
byte 1 105
byte 1 108
byte 1 41
byte 1 10
byte 1 10
byte 1 0
align 1
LABELV $978
byte 1 98
byte 1 111
byte 1 116
byte 1 95
byte 1 119
byte 1 112
byte 1 95
byte 1 99
byte 1 109
byte 1 100
byte 1 108
byte 1 105
byte 1 115
byte 1 116
byte 1 0
align 1
LABELV $948
byte 1 105
byte 1 110
byte 1 102
byte 1 111
byte 1 95
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 95
byte 1 100
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 $947
byte 1 105
byte 1 110
byte 1 102
byte 1 111
byte 1 95
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 95
byte 1 115
byte 1 116
byte 1 97
byte 1 114
byte 1 116
byte 1 0
align 1
LABELV $923
byte 1 0
align 1
LABELV $922
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 $920
byte 1 80
byte 1 97
byte 1 116
byte 1 104
byte 1 32
byte 1 100
byte 1 97
byte 1 116
byte 1 97
byte 1 32
byte 1 104
byte 1 97
byte 1 115
byte 1 32
byte 1 98
byte 1 101
byte 1 101
byte 1 110
byte 1 32
byte 1 115
byte 1 97
byte 1 118
byte 1 101
byte 1 100
byte 1 32
byte 1 97
byte 1 110
byte 1 100
byte 1 32
byte 1 117
byte 1 112
byte 1 100
byte 1 97
byte 1 116
byte 1 101
byte 1 100
byte 1 46
byte 1 32
byte 1 89
byte 1 111
byte 1 117
byte 1 32
byte 1 109
byte 1 97
byte 1 121
byte 1 32
byte 1 110
byte 1 101
byte 1 101
byte 1 100
byte 1 32
byte 1 116
byte 1 111
byte 1 32
byte 1 114
byte 1 101
byte 1 115
byte 1 116
byte 1 97
byte 1 114
byte 1 116
byte 1 32
byte 1 116
byte 1 104
byte 1 101
byte 1 32
byte 1 108
byte 1 101
byte 1 118
byte 1 101
byte 1 108
byte 1 32
byte 1 102
byte 1 111
byte 1 114
byte 1 32
byte 1 115
byte 1 111
byte 1 109
byte 1 101
byte 1 32
byte 1 116
byte 1 104
byte 1 105
byte 1 110
byte 1 103
byte 1 115
byte 1 32
byte 1 116
byte 1 111
byte 1 32
byte 1 98
byte 1 101
byte 1 32
byte 1 112
byte 1 114
byte 1 111
byte 1 112
byte 1 101
byte 1 114
byte 1 108
byte 1 121
byte 1 32
byte 1 99
byte 1 97
byte 1 108
byte 1 99
byte 1 117
byte 1 108
byte 1 97
byte 1 116
byte 1 101
byte 1 100
byte 1 46
byte 1 10
byte 1 0
align 1
LABELV $901
byte 1 37
byte 1 115
byte 1 125
byte 1 32
byte 1 37
byte 1 102
byte 1 10
byte 1 0
align 1
LABELV $890
byte 1 37
byte 1 115
byte 1 37
byte 1 105
byte 1 32
byte 1 0
align 1
LABELV $889
byte 1 37
byte 1 115
byte 1 37
byte 1 105
byte 1 45
byte 1 37
byte 1 105
byte 1 32
byte 1 0
align 1
LABELV $883
byte 1 37
byte 1 105
byte 1 32
byte 1 37
byte 1 105
byte 1 32
byte 1 37
byte 1 102
byte 1 32
byte 1 40
byte 1 37
byte 1 102
byte 1 32
byte 1 37
byte 1 102
byte 1 32
byte 1 37
byte 1 102
byte 1 41
byte 1 32
byte 1 123
byte 1 32
byte 1 0
align 1
LABELV $880
byte 1 94
byte 1 49
byte 1 69
byte 1 82
byte 1 82
byte 1 79
byte 1 82
byte 1 58
byte 1 32
byte 1 67
byte 1 111
byte 1 117
byte 1 108
byte 1 100
byte 1 32
byte 1 110
byte 1 111
byte 1 116
byte 1 32
byte 1 111
byte 1 112
byte 1 101
byte 1 110
byte 1 32
byte 1 102
byte 1 105
byte 1 108
byte 1 101
byte 1 32
byte 1 116
byte 1 111
byte 1 32
byte 1 119
byte 1 114
byte 1 105
byte 1 116
byte 1 101
byte 1 32
byte 1 112
byte 1 97
byte 1 116
byte 1 104
byte 1 32
byte 1 100
byte 1 97
byte 1 116
byte 1 97
byte 1 10
byte 1 0
align 1
LABELV $837
byte 1 116
byte 1 101
byte 1 97
byte 1 109
byte 1 95
byte 1 67
byte 1 84
byte 1 70
byte 1 95
byte 1 98
byte 1 108
byte 1 117
byte 1 101
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 0
align 1
LABELV $834
byte 1 116
byte 1 101
byte 1 97
byte 1 109
byte 1 95
byte 1 67
byte 1 84
byte 1 70
byte 1 95
byte 1 114
byte 1 101
byte 1 100
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 0
align 1
LABELV $743
byte 1 94
byte 1 49
byte 1 82
byte 1 111
byte 1 117
byte 1 116
byte 1 101
byte 1 32
byte 1 102
byte 1 105
byte 1 108
byte 1 101
byte 1 32
byte 1 101
byte 1 120
byte 1 99
byte 1 101
byte 1 101
byte 1 100
byte 1 115
byte 1 32
byte 1 109
byte 1 97
byte 1 120
byte 1 105
byte 1 109
byte 1 117
byte 1 109
byte 1 32
byte 1 108
byte 1 101
byte 1 110
byte 1 103
byte 1 116
byte 1 104
byte 1 10
byte 1 0
align 1
LABELV $740
byte 1 94
byte 1 51
byte 1 66
byte 1 111
byte 1 116
byte 1 32
byte 1 114
byte 1 111
byte 1 117
byte 1 116
byte 1 101
byte 1 32
byte 1 100
byte 1 97
byte 1 116
byte 1 97
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 10
byte 1 0
align 1
LABELV $737
byte 1 98
byte 1 111
byte 1 116
byte 1 114
byte 1 111
byte 1 117
byte 1 116
byte 1 101
byte 1 115
byte 1 47
byte 1 37
byte 1 115
byte 1 46
byte 1 119
byte 1 110
byte 1 116
byte 1 0
byte 1 0
align 1
LABELV $699
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 95
byte 1 0
align 1
LABELV $696
byte 1 105
byte 1 116
byte 1 101
byte 1 109
byte 1 95
byte 1 121
byte 1 115
byte 1 97
byte 1 108
byte 1 105
byte 1 109
byte 1 97
byte 1 114
byte 1 105
byte 1 0
align 1
LABELV $693
byte 1 105
byte 1 116
byte 1 101
byte 1 109
byte 1 95
byte 1 102
byte 1 111
byte 1 114
byte 1 99
byte 1 101
byte 1 95
byte 1 98
byte 1 111
byte 1 111
byte 1 110
byte 1 0
align 1
LABELV $690
byte 1 105
byte 1 116
byte 1 101
byte 1 109
byte 1 95
byte 1 102
byte 1 111
byte 1 114
byte 1 99
byte 1 101
byte 1 95
byte 1 101
byte 1 110
byte 1 108
byte 1 105
byte 1 103
byte 1 104
byte 1 116
byte 1 101
byte 1 110
byte 1 95
byte 1 108
byte 1 105
byte 1 103
byte 1 104
byte 1 116
byte 1 0
align 1
LABELV $687
byte 1 105
byte 1 116
byte 1 101
byte 1 109
byte 1 95
byte 1 102
byte 1 111
byte 1 114
byte 1 99
byte 1 101
byte 1 95
byte 1 101
byte 1 110
byte 1 108
byte 1 105
byte 1 103
byte 1 104
byte 1 116
byte 1 101
byte 1 110
byte 1 95
byte 1 100
byte 1 97
byte 1 114
byte 1 107
byte 1 0
align 1
LABELV $684
byte 1 105
byte 1 116
byte 1 101
byte 1 109
byte 1 95
byte 1 115
byte 1 101
byte 1 110
byte 1 116
byte 1 114
byte 1 121
byte 1 95
byte 1 103
byte 1 117
byte 1 110
byte 1 0
align 1
LABELV $681
byte 1 105
byte 1 116
byte 1 101
byte 1 109
byte 1 95
byte 1 109
byte 1 101
byte 1 100
byte 1 112
byte 1 97
byte 1 99
byte 1 0
align 1
LABELV $678
byte 1 105
byte 1 116
byte 1 101
byte 1 109
byte 1 95
byte 1 115
byte 1 104
byte 1 105
byte 1 101
byte 1 108
byte 1 100
byte 1 0
align 1
LABELV $675
byte 1 105
byte 1 116
byte 1 101
byte 1 109
byte 1 95
byte 1 115
byte 1 101
byte 1 101
byte 1 107
byte 1 101
byte 1 114
byte 1 0
align 1
LABELV $628
byte 1 105
byte 1 110
byte 1 102
byte 1 111
byte 1 95
byte 1 115
byte 1 97
byte 1 103
byte 1 97
byte 1 95
byte 1 111
byte 1 98
byte 1 106
byte 1 101
byte 1 99
byte 1 116
byte 1 105
byte 1 118
byte 1 101
byte 1 0
align 1
LABELV $504
byte 1 102
byte 1 117
byte 1 110
byte 1 99
byte 1 95
byte 1 0
align 1
LABELV $481
byte 1 94
byte 1 51
byte 1 70
byte 1 105
byte 1 110
byte 1 105
byte 1 115
byte 1 104
byte 1 101
byte 1 100
byte 1 32
byte 1 99
byte 1 111
byte 1 110
byte 1 110
byte 1 101
byte 1 99
byte 1 116
byte 1 105
byte 1 110
byte 1 103
byte 1 32
byte 1 37
byte 1 105
byte 1 32
byte 1 116
byte 1 111
byte 1 32
byte 1 37
byte 1 105
byte 1 46
byte 1 10
byte 1 0
align 1
LABELV $475
byte 1 94
byte 1 49
byte 1 67
byte 1 111
byte 1 117
byte 1 108
byte 1 100
byte 1 32
byte 1 110
byte 1 111
byte 1 116
byte 1 32
byte 1 108
byte 1 105
byte 1 110
byte 1 107
byte 1 32
byte 1 37
byte 1 105
byte 1 32
byte 1 116
byte 1 111
byte 1 32
byte 1 37
byte 1 105
byte 1 44
byte 1 32
byte 1 119
byte 1 97
byte 1 121
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 32
byte 1 108
byte 1 105
byte 1 109
byte 1 105
byte 1 116
byte 1 32
byte 1 104
byte 1 105
byte 1 116
byte 1 46
byte 1 10
byte 1 0
align 1
LABELV $455
byte 1 94
byte 1 51
byte 1 83
byte 1 105
byte 1 110
byte 1 99
byte 1 101
byte 1 32
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 115
byte 1 32
byte 1 99
byte 1 97
byte 1 110
byte 1 110
byte 1 111
byte 1 116
byte 1 32
byte 1 98
byte 1 101
byte 1 32
byte 1 99
byte 1 111
byte 1 110
byte 1 110
byte 1 101
byte 1 99
byte 1 116
byte 1 101
byte 1 100
byte 1 44
byte 1 32
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 32
byte 1 37
byte 1 105
byte 1 32
byte 1 104
byte 1 97
byte 1 115
byte 1 32
byte 1 98
byte 1 101
byte 1 101
byte 1 110
byte 1 32
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 103
byte 1 101
byte 1 100
byte 1 32
byte 1 97
byte 1 115
byte 1 32
byte 1 111
byte 1 110
byte 1 108
byte 1 121
byte 1 45
byte 1 102
byte 1 111
byte 1 114
byte 1 119
byte 1 97
byte 1 114
byte 1 100
byte 1 32
byte 1 97
byte 1 110
byte 1 100
byte 1 32
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 32
byte 1 37
byte 1 105
byte 1 32
byte 1 104
byte 1 97
byte 1 115
byte 1 32
byte 1 98
byte 1 101
byte 1 101
byte 1 110
byte 1 32
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 103
byte 1 101
byte 1 100
byte 1 32
byte 1 97
byte 1 115
byte 1 32
byte 1 111
byte 1 110
byte 1 108
byte 1 121
byte 1 45
byte 1 98
byte 1 97
byte 1 99
byte 1 107
byte 1 119
byte 1 97
byte 1 114
byte 1 100
byte 1 46
byte 1 10
byte 1 0
align 1
LABELV $454
byte 1 94
byte 1 49
byte 1 67
byte 1 111
byte 1 117
byte 1 108
byte 1 100
byte 1 32
byte 1 110
byte 1 111
byte 1 116
byte 1 32
byte 1 108
byte 1 105
byte 1 110
byte 1 107
byte 1 32
byte 1 37
byte 1 105
byte 1 32
byte 1 116
byte 1 111
byte 1 32
byte 1 37
byte 1 105
byte 1 44
byte 1 32
byte 1 117
byte 1 110
byte 1 114
byte 1 101
byte 1 97
byte 1 99
byte 1 104
byte 1 97
byte 1 98
byte 1 108
byte 1 101
byte 1 32
byte 1 98
byte 1 121
byte 1 32
byte 1 110
byte 1 111
byte 1 100
byte 1 101
byte 1 32
byte 1 98
byte 1 114
byte 1 97
byte 1 110
byte 1 99
byte 1 104
byte 1 105
byte 1 110
byte 1 103
byte 1 46
byte 1 10
byte 1 0
align 1
LABELV $350
byte 1 94
byte 1 51
byte 1 80
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 32
byte 1 37
byte 1 105
byte 1 32
byte 1 105
byte 1 115
byte 1 32
byte 1 110
byte 1 111
byte 1 116
byte 1 32
byte 1 99
byte 1 111
byte 1 110
byte 1 110
byte 1 101
byte 1 99
byte 1 116
byte 1 101
byte 1 100
byte 1 32
byte 1 116
byte 1 111
byte 1 32
byte 1 37
byte 1 105
byte 1 32
byte 1 45
byte 1 32
byte 1 82
byte 1 101
byte 1 112
byte 1 97
byte 1 105
byte 1 114
byte 1 105
byte 1 110
byte 1 103
byte 1 46
byte 1 46
byte 1 46
byte 1 10
byte 1 0
align 1
LABELV $281
byte 1 94
byte 1 51
byte 1 87
byte 1 80
byte 1 70
byte 1 108
byte 1 97
byte 1 103
byte 1 115
byte 1 77
byte 1 111
byte 1 100
byte 1 105
byte 1 102
byte 1 121
byte 1 58
byte 1 32
byte 1 87
byte 1 97
byte 1 121
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 32
byte 1 37
byte 1 105
byte 1 32
byte 1 100
byte 1 111
byte 1 101
byte 1 115
byte 1 32
byte 1 110
byte 1 111
byte 1 116
byte 1 32
byte 1 101
byte 1 120
byte 1 105
byte 1 115
byte 1 116
byte 1 10
byte 1 0
align 1
LABELV $231
byte 1 94
byte 1 51
byte 1 87
byte 1 97
byte 1 121
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 32
byte 1 105
byte 1 110
byte 1 100
byte 1 101
byte 1 120
byte 1 32
byte 1 37
byte 1 105
byte 1 32
byte 1 115
byte 1 104
byte 1 111
byte 1 117
byte 1 108
byte 1 100
byte 1 32
byte 1 101
byte 1 120
byte 1 105
byte 1 115
byte 1 116
byte 1 44
byte 1 32
byte 1 98
byte 1 117
byte 1 116
byte 1 32
byte 1 100
byte 1 111
byte 1 101
byte 1 115
byte 1 32
byte 1 110
byte 1 111
byte 1 116
byte 1 32
byte 1 40
byte 1 63
byte 1 41
byte 1 10
byte 1 0
align 1
LABELV $223
byte 1 94
byte 1 51
byte 1 87
byte 1 97
byte 1 121
byte 1 112
byte 1 111
byte 1 105
byte 1 110
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 32
byte 1 37
byte 1 105
byte 1 32
byte 1 100
byte 1 111
byte 1 101
byte 1 115
byte 1 32
byte 1 110
byte 1 111
byte 1 116
byte 1 32
byte 1 101
byte 1 120
byte 1 105
byte 1 115
byte 1 116
byte 1 10
byte 1 0
align 1
LABELV $194
byte 1 94
byte 1 49
byte 1 69
byte 1 82
byte 1 82
byte 1 79
byte 1 82
byte 1 58
byte 1 32
byte 1 67
byte 1 111
byte 1 117
byte 1 108
byte 1 100
byte 1 32
byte 1 110
byte 1 111
byte 1 116
byte 1 32
byte 1 97
byte 1 108
byte 1 108
byte 1 111
byte 1 99
byte 1 97
byte 1 116
byte 1 101
byte 1 100
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 102
byte 1 111
byte 1 114
byte 1 32
byte 1 119
byte 1 97
byte 1 121
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 10
byte 1 0
align 1
LABELV $189
byte 1 94
byte 1 51
byte 1 87
byte 1 97
byte 1 114
byte 1 110
byte 1 105
byte 1 110
byte 1 103
byte 1 58
byte 1 32
byte 1 87
byte 1 97
byte 1 121
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 32
byte 1 108
byte 1 105
byte 1 109
byte 1 105
byte 1 116
byte 1 32
byte 1 104
byte 1 105
byte 1 116
byte 1 32
byte 1 40
byte 1 37
byte 1 105
byte 1 41
byte 1 10
byte 1 0
align 1
LABELV $185
byte 1 94
byte 1 49
byte 1 70
byte 1 65
byte 1 84
byte 1 65
byte 1 76
byte 1 32
byte 1 69
byte 1 82
byte 1 82
byte 1 79
byte 1 82
byte 1 58
byte 1 32
byte 1 67
byte 1 111
byte 1 117
byte 1 108
byte 1 100
byte 1 32
byte 1 110
byte 1 111
byte 1 116
byte 1 32
byte 1 97
byte 1 108
byte 1 108
byte 1 111
byte 1 99
byte 1 97
byte 1 116
byte 1 101
byte 1 100
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 102
byte 1 111
byte 1 114
byte 1 32
byte 1 119
byte 1 97
byte 1 121
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 10
byte 1 0
align 1
LABELV $177
byte 1 94
byte 1 51
byte 1 87
byte 1 97
byte 1 121
byte 1 112
byte 1 111
byte 1 105
byte 1 110
byte 1 116
byte 1 32
byte 1 37
byte 1 105
byte 1 10
byte 1 70
byte 1 108
byte 1 97
byte 1 103
byte 1 115
byte 1 32
byte 1 45
byte 1 32
byte 1 37
byte 1 105
byte 1 32
byte 1 40
byte 1 37
byte 1 115
byte 1 41
byte 1 32
byte 1 40
byte 1 119
byte 1 37
byte 1 102
byte 1 41
byte 1 10
byte 1 79
byte 1 114
byte 1 105
byte 1 103
byte 1 105
byte 1 110
byte 1 32
byte 1 45
byte 1 32
byte 1 40
byte 1 37
byte 1 105
byte 1 32
byte 1 37
byte 1 105
byte 1 32
byte 1 37
byte 1 105
byte 1 41
byte 1 10
byte 1 0
align 1
LABELV $135
byte 1 117
byte 1 110
byte 1 107
byte 1 110
byte 1 111
byte 1 119
byte 1 110
byte 1 0
byte 1 0
align 1
LABELV $95
byte 1 110
byte 1 111
byte 1 110
byte 1 101
byte 1 0
byte 1 0
