data
export cg_customSoundNames
align 4
LABELV cg_customSoundNames
address $131
address $132
address $133
address $134
address $135
address $136
address $137
address $138
address $139
address $140
address $141
address $142
address $143
address $144
address $139
address $145
skip 64
export CG_CustomSound
code
proc CG_CustomSound 16 8
file "../cg_players.c"
line 35
;1:// Copyright (C) 1999-2000 Id Software, Inc.
;2://
;3:// cg_players.c -- handle the media and animation for player entities
;4:#include "cg_local.h"
;5:#include "..\ghoul2\g2.h"
;6:
;7:extern stringID_table_t animTable [MAX_ANIMATIONS+1];
;8:
;9:char	*cg_customSoundNames[MAX_CUSTOM_SOUNDS] = {
;10:	"*death1.wav",
;11:	"*death2.wav",
;12:	"*death3.wav",
;13:	"*jump1.wav",
;14:	"*pain25.wav",
;15:	"*pain50.wav",
;16:	"*pain75.wav",
;17:	"*pain100.wav",
;18:	"*falling1.wav",
;19:	"*choke1.wav",
;20:	"*choke2.wav",
;21:	"*choke3.wav",
;22:	"*gasp.wav",
;23:	"*land1.wav",
;24:	"*falling1.wav",
;25:	"*taunt.wav"
;26:};
;27:
;28:
;29:/*
;30:================
;31:CG_CustomSound
;32:
;33:================
;34:*/
;35:sfxHandle_t	CG_CustomSound( int clientNum, const char *soundName ) {
line 39
;36:	clientInfo_t *ci;
;37:	int			i;
;38:
;39:	if ( soundName[0] != '*' ) {
ADDRFP4 4
INDIRP4
INDIRI1
CVII4 1
CNSTI4 42
EQI4 $147
line 40
;40:		return trap_S_RegisterSound( soundName );
ADDRFP4 4
INDIRP4
ARGP4
ADDRLP4 8
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 8
INDIRI4
RETI4
ADDRGP4 $146
JUMPV
LABELV $147
line 43
;41:	}
;42:
;43:	if ( clientNum < 0 || clientNum >= MAX_CLIENTS ) {
ADDRLP4 8
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 8
INDIRI4
CNSTI4 0
LTI4 $151
ADDRLP4 8
INDIRI4
CNSTI4 32
LTI4 $149
LABELV $151
line 44
;44:		clientNum = 0;
ADDRFP4 0
CNSTI4 0
ASGNI4
line 45
;45:	}
LABELV $149
line 46
;46:	ci = &cgs.clientinfo[ clientNum ];
ADDRLP4 4
CNSTI4 812
ADDRFP4 0
INDIRI4
MULI4
ADDRGP4 cgs+43024
ADDP4
ASGNP4
line 48
;47:
;48:	for ( i = 0 ; i < MAX_CUSTOM_SOUNDS && cg_customSoundNames[i] ; i++ ) {
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $156
JUMPV
LABELV $153
line 49
;49:		if ( !strcmp( soundName, cg_customSoundNames[i] ) ) {
ADDRFP4 4
INDIRP4
ARGP4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 cg_customSoundNames
ADDP4
INDIRP4
ARGP4
ADDRLP4 12
ADDRGP4 strcmp
CALLI4
ASGNI4
ADDRLP4 12
INDIRI4
CNSTI4 0
NEI4 $157
line 50
;50:			return ci->sounds[i];
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 4
INDIRP4
CNSTI4 652
ADDP4
ADDP4
INDIRI4
RETI4
ADDRGP4 $146
JUMPV
LABELV $157
line 52
;51:		}
;52:	}
LABELV $154
line 48
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $156
ADDRLP4 0
INDIRI4
CNSTI4 32
GEI4 $159
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 cg_customSoundNames
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $153
LABELV $159
line 54
;53:
;54:	CG_Error( "Unknown custom sound: %s", soundName );
ADDRGP4 $160
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 CG_Error
CALLV
pop
line 55
;55:	return 0;
CNSTI4 0
RETI4
LABELV $146
endproc CG_CustomSound 16 8
export CG_NeedAnimSequence
proc CG_NeedAnimSequence 12 0
line 79
;56:}
;57:
;58:
;59:
;60:/*
;61:=============================================================================
;62:
;63:CLIENT INFO
;64:
;65:=============================================================================
;66:*/
;67:
;68:/*
;69:==========================
;70:CG_NeedAnimSequence
;71:
;72:Called to check if models are missing required animation sequences
;73:We do not list all used animations here but this check should eliminate
;74:a broad range of unsupported models. At least the ones that are included,
;75:which is all we really care about.
;76:==========================
;77:*/
;78:qboolean CG_NeedAnimSequence(int anim)
;79:{
line 80
;80:	if (anim >= BOTH_DEATH1 &&
ADDRLP4 0
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 1
LTI4 $162
ADDRLP4 0
INDIRI4
CNSTI4 19
GTI4 $162
line 82
;81:		anim <= BOTH_DEATH19)
;82:	{
line 83
;83:		return qtrue;
CNSTI4 1
RETI4
ADDRGP4 $161
JUMPV
LABELV $162
line 86
;84:	}
;85:
;86:	if (anim >= BOTH_DISMEMBER_HEAD1 &&
ADDRLP4 4
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 91
LTI4 $164
ADDRLP4 4
INDIRI4
CNSTI4 96
GTI4 $164
line 88
;87:		anim <= BOTH_DISMEMBER_LARM)
;88:	{
line 89
;89:		return qtrue;
CNSTI4 1
RETI4
ADDRGP4 $161
JUMPV
LABELV $164
line 92
;90:	}
;91:
;92:	if (anim >= BOTH_A1_T__B_ &&
ADDRLP4 8
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 8
INDIRI4
CNSTI4 138
LTI4 $166
ADDRLP4 8
INDIRI4
CNSTI4 547
GTI4 $166
line 94
;93:		anim <= BOTH_H1_S1_BR)
;94:	{
line 95
;95:		return qtrue;
CNSTI4 1
RETI4
ADDRGP4 $161
JUMPV
LABELV $166
line 98
;96:	}
;97:
;98:	return qfalse;
CNSTI4 0
RETI4
LABELV $161
endproc CG_NeedAnimSequence 12 0
proc CG_IsValidCharacterModel 20 8
line 104
;99:}
;100:
;101://To see if the client is trying to use one of the included skins not meant for MP.
;102://I don't much care for hardcoded strings, but this seems the best way to go.
;103:static qboolean CG_IsValidCharacterModel(const char *modelName, const char *skinName)
;104:{
line 105
;105:	if (!Q_stricmp(modelName, "kyle"))
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 $171
ARGP4
ADDRLP4 0
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 0
NEI4 $169
line 106
;106:	{
line 107
;107:		if (!Q_stricmp(skinName, "fpls"))
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 $174
ARGP4
ADDRLP4 4
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 0
NEI4 $172
line 108
;108:		{
line 109
;109:			return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $168
JUMPV
LABELV $172
line 111
;110:		}
;111:		else if (!Q_stricmp(skinName, "fpls2"))
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 $177
ARGP4
ADDRLP4 8
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 8
INDIRI4
CNSTI4 0
NEI4 $175
line 112
;112:		{
line 113
;113:			return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $168
JUMPV
LABELV $175
line 115
;114:		}
;115:		else if (!Q_stricmp(skinName, "fpls3"))
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 $180
ARGP4
ADDRLP4 12
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 12
INDIRI4
CNSTI4 0
NEI4 $170
line 116
;116:		{
line 117
;117:			return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $168
JUMPV
line 119
;118:		}
;119:	}
LABELV $169
line 120
;120:	else if (!Q_stricmp(modelName, "morgan"))
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 $183
ARGP4
ADDRLP4 4
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 0
NEI4 $181
line 121
;121:	{
line 126
;122:		//For morgan, we want to deny if the skin is anything but one of the valid ones
;123:		//Since his default skin is actually the bad one, you could just type
;124:		//"model morgan/blah" and get it. This rules out custom morgan skins without
;125:		//programming assistance unfortunately.
;126:		if (Q_stricmp(skinName, "default_mp") &&
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 $186
ARGP4
ADDRLP4 8
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 8
INDIRI4
CNSTI4 0
EQI4 $184
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 $187
ARGP4
ADDRLP4 12
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 12
INDIRI4
CNSTI4 0
EQI4 $184
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 $188
ARGP4
ADDRLP4 16
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 16
INDIRI4
CNSTI4 0
EQI4 $184
line 129
;127:			Q_stricmp(skinName, "red") &&
;128:			Q_stricmp(skinName, "blue"))
;129:		{
line 130
;130:			return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $168
JUMPV
LABELV $184
line 132
;131:		}
;132:	}
LABELV $181
LABELV $170
line 134
;133:
;134:	return qtrue;
CNSTI4 1
RETI4
LABELV $168
endproc CG_IsValidCharacterModel 20 8
export CG_ParseSurfsFile
proc CG_ParseSurfsFile 20112 20
line 139
;135:}
;136:
;137:#define MAX_SURF_LIST_SIZE	1024
;138:qboolean CG_ParseSurfsFile( const char *modelName, const char *skinName, char *surfOff, char *surfOn ) 
;139:{
line 149
;140:	const char	*text_p;
;141:	int			len;
;142:	const char	*token;
;143:	const char	*value;
;144:	char		text[20000];
;145:	char		sfilename[MAX_QPATH];
;146:	fileHandle_t	f;
;147:	
;148:	// Load and parse .surf file
;149:	Com_sprintf( sfilename, sizeof( sfilename ), "models/players/%s/model_%s.surf", modelName, skinName );
ADDRLP4 20016
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 $190
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 Com_sprintf
CALLV
pop
line 152
;150:
;151:	// load the file
;152:	len = trap_FS_FOpenFile( sfilename, &f, FS_READ );
ADDRLP4 20016
ARGP4
ADDRLP4 20080
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 20084
ADDRGP4 trap_FS_FOpenFile
CALLI4
ASGNI4
ADDRLP4 12
ADDRLP4 20084
INDIRI4
ASGNI4
line 153
;153:	if ( len <= 0 ) 
ADDRLP4 12
INDIRI4
CNSTI4 0
GTI4 $191
line 154
;154:	{//no file
line 155
;155:		return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $189
JUMPV
LABELV $191
line 157
;156:	}
;157:	if ( len >= sizeof( text ) - 1 ) 
ADDRLP4 12
INDIRI4
CVIU4 4
CNSTU4 19999
LTU4 $193
line 158
;158:	{
line 159
;159:		Com_Printf( "File %s too long\n", sfilename );
ADDRGP4 $195
ARGP4
ADDRLP4 20016
ARGP4
ADDRGP4 Com_Printf
CALLV
pop
line 160
;160:		return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $189
JUMPV
LABELV $193
line 163
;161:	}
;162:
;163:	trap_FS_Read( text, len, f );
ADDRLP4 16
ARGP4
ADDRLP4 12
INDIRI4
ARGI4
ADDRLP4 20080
INDIRI4
ARGI4
ADDRGP4 trap_FS_Read
CALLV
pop
line 164
;164:	text[len] = 0;
ADDRLP4 12
INDIRI4
ADDRLP4 16
ADDP4
CNSTI1 0
ASGNI1
line 165
;165:	trap_FS_FCloseFile( f );
ADDRLP4 20080
INDIRI4
ARGI4
ADDRGP4 trap_FS_FCloseFile
CALLV
pop
line 168
;166:
;167:	// parse the text
;168:	text_p = text;
ADDRLP4 4
ADDRLP4 16
ASGNP4
line 170
;169:
;170:	memset( (char *)surfOff, 0, sizeof(surfOff) );
ADDRFP4 8
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 4
ARGI4
ADDRGP4 memset
CALLP4
pop
line 171
;171:	memset( (char *)surfOn, 0, sizeof(surfOn) );
ADDRFP4 12
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 4
ARGI4
ADDRGP4 memset
CALLP4
pop
ADDRGP4 $197
JUMPV
LABELV $196
line 175
;172:
;173:	// read information for surfOff and surfOn
;174:	while ( 1 ) 
;175:	{
line 176
;176:		token = COM_ParseExt( &text_p, qtrue );
ADDRLP4 4
ARGP4
CNSTI4 1
ARGI4
ADDRLP4 20088
ADDRGP4 COM_ParseExt
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 20088
INDIRP4
ASGNP4
line 177
;177:		if ( !token || !token[0] ) 
ADDRLP4 0
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $201
ADDRLP4 0
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $199
LABELV $201
line 178
;178:		{
line 179
;179:			break;
ADDRGP4 $198
JUMPV
LABELV $199
line 183
;180:		}
;181:
;182:		// surfOff
;183:		if ( !Q_stricmp( token, "surfOff" ) ) 
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $204
ARGP4
ADDRLP4 20096
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 20096
INDIRI4
CNSTI4 0
NEI4 $202
line 184
;184:		{
line 185
;185:			if ( COM_ParseString( &text_p, &value ) ) 
ADDRLP4 4
ARGP4
ADDRLP4 8
ARGP4
ADDRLP4 20100
ADDRGP4 COM_ParseString
CALLI4
ASGNI4
ADDRLP4 20100
INDIRI4
CNSTI4 0
EQI4 $205
line 186
;186:			{
line 187
;187:				continue;
ADDRGP4 $197
JUMPV
LABELV $205
line 189
;188:			}
;189:			if ( surfOff && surfOff[0] )
ADDRLP4 20104
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 20104
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $207
ADDRLP4 20104
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $207
line 190
;190:			{
line 191
;191:				Q_strcat( surfOff, MAX_SURF_LIST_SIZE, "," );
ADDRFP4 8
INDIRP4
ARGP4
CNSTI4 1024
ARGI4
ADDRGP4 $209
ARGP4
ADDRGP4 Q_strcat
CALLV
pop
line 192
;192:				Q_strcat( surfOff, MAX_SURF_LIST_SIZE, value );
ADDRFP4 8
INDIRP4
ARGP4
CNSTI4 1024
ARGI4
ADDRLP4 8
INDIRP4
ARGP4
ADDRGP4 Q_strcat
CALLV
pop
line 193
;193:			}
ADDRGP4 $197
JUMPV
LABELV $207
line 195
;194:			else
;195:			{
line 196
;196:				Q_strncpyz( surfOff, value, MAX_SURF_LIST_SIZE );
ADDRFP4 8
INDIRP4
ARGP4
ADDRLP4 8
INDIRP4
ARGP4
CNSTI4 1024
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 197
;197:			}
line 198
;198:			continue;
ADDRGP4 $197
JUMPV
LABELV $202
line 202
;199:		}
;200:		
;201:		// surfOn
;202:		if ( !Q_stricmp( token, "surfOn" ) ) 
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 $212
ARGP4
ADDRLP4 20100
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 20100
INDIRI4
CNSTI4 0
NEI4 $210
line 203
;203:		{
line 204
;204:			if ( COM_ParseString( &text_p, &value ) ) 
ADDRLP4 4
ARGP4
ADDRLP4 8
ARGP4
ADDRLP4 20104
ADDRGP4 COM_ParseString
CALLI4
ASGNI4
ADDRLP4 20104
INDIRI4
CNSTI4 0
EQI4 $213
line 205
;205:			{
line 206
;206:				continue;
ADDRGP4 $197
JUMPV
LABELV $213
line 208
;207:			}
;208:			if ( surfOn && surfOn[0] )
ADDRLP4 20108
ADDRFP4 12
INDIRP4
ASGNP4
ADDRLP4 20108
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $215
ADDRLP4 20108
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $215
line 209
;209:			{
line 210
;210:				Q_strcat( surfOn, MAX_SURF_LIST_SIZE, ",");
ADDRFP4 12
INDIRP4
ARGP4
CNSTI4 1024
ARGI4
ADDRGP4 $209
ARGP4
ADDRGP4 Q_strcat
CALLV
pop
line 211
;211:				Q_strcat( surfOn, MAX_SURF_LIST_SIZE, value );
ADDRFP4 12
INDIRP4
ARGP4
CNSTI4 1024
ARGI4
ADDRLP4 8
INDIRP4
ARGP4
ADDRGP4 Q_strcat
CALLV
pop
line 212
;212:			}
ADDRGP4 $197
JUMPV
LABELV $215
line 214
;213:			else
;214:			{
line 215
;215:				Q_strncpyz( surfOn, value, MAX_SURF_LIST_SIZE );
ADDRFP4 12
INDIRP4
ARGP4
ADDRLP4 8
INDIRP4
ARGP4
CNSTI4 1024
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 216
;216:			}
line 217
;217:			continue;
LABELV $210
line 219
;218:		}
;219:	}
LABELV $197
line 174
ADDRGP4 $196
JUMPV
LABELV $198
line 220
;220:	return qtrue;
CNSTI4 1
RETI4
LABELV $189
endproc CG_ParseSurfsFile 20112 20
lit
align 4
LABELV $218
byte 4 0
byte 4 0
byte 4 0
code
proc CG_RegisterClientModelname 2320 44
line 228
;221:}
;222:
;223:/*
;224:==========================
;225:CG_RegisterClientModelname
;226:==========================
;227:*/
;228:static qboolean CG_RegisterClientModelname( clientInfo_t *ci, const char *modelName, const char *skinName, const char *teamName, int clientNum ) {
line 233
;229:	int handle;
;230:	char		afilename[MAX_QPATH];
;231:	char		/**GLAName,*/ *slash;
;232:	char		GLAName[MAX_QPATH];
;233:	vec3_t	tempVec = {0,0,0};
ADDRLP4 132
ADDRGP4 $218
INDIRB
ASGNB 12
line 234
;234:	qboolean badModel = qfalse;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 235
;235:	qboolean retriedAlready = qfalse;
ADDRLP4 2196
CNSTI4 0
ASGNI4
LABELV $219
line 240
;236:	char	surfOff[MAX_SURF_LIST_SIZE];
;237:	char	surfOn[MAX_SURF_LIST_SIZE];
;238:
;239:retryModel:
;240:	if (ci->ATST && clientNum == -1)
ADDRFP4 0
INDIRP4
CNSTI4 500
ADDP4
INDIRI4
CNSTI4 0
EQI4 $220
ADDRFP4 16
INDIRI4
CNSTI4 -1
NEI4 $220
line 241
;241:	{
line 242
;242:		Com_sprintf(ci->teamName, sizeof(ci->teamName), teamName);
ADDRFP4 0
INDIRP4
CNSTI4 416
ADDP4
ARGP4
CNSTI4 32
ARGI4
ADDRFP4 12
INDIRP4
ARGP4
ADDRGP4 Com_sprintf
CALLV
pop
line 243
;243:		return qtrue;
CNSTI4 1
RETI4
ADDRGP4 $217
JUMPV
LABELV $220
line 246
;244:	}
;245:
;246:	if (badModel)
ADDRLP4 0
INDIRI4
CNSTI4 0
EQI4 $222
line 247
;247:	{
line 248
;248:		modelName = "kyle";
ADDRFP4 4
ADDRGP4 $171
ASGNP4
line 249
;249:		skinName = "default";
ADDRFP4 8
ADDRGP4 $224
ASGNP4
line 250
;250:		Com_Printf("WARNING: Attempted to load an unsupported multiplayer model! (bad or missing bone, or missing animation sequence)\n");
ADDRGP4 $225
ARGP4
ADDRGP4 Com_Printf
CALLV
pop
line 252
;251:
;252:		badModel = qfalse;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 253
;253:		retriedAlready = qtrue;
ADDRLP4 2196
CNSTI4 1
ASGNI4
line 254
;254:	}
LABELV $222
line 256
;255:
;256:	if (!CG_IsValidCharacterModel(modelName, skinName))
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
ARGP4
ADDRLP4 2204
ADDRGP4 CG_IsValidCharacterModel
CALLI4
ASGNI4
ADDRLP4 2204
INDIRI4
CNSTI4 0
NEI4 $226
line 257
;257:	{
line 258
;258:		modelName = "kyle";
ADDRFP4 4
ADDRGP4 $171
ASGNP4
line 259
;259:		skinName = "default";
ADDRFP4 8
ADDRGP4 $224
ASGNP4
line 260
;260:	}
LABELV $226
line 263
;261:
;262:	// First things first.  If this is a ghoul2 model, then let's make sure we demolish this first.
;263:	if (ci->ghoul2Model && trap_G2_HaveWeGhoul2Models(ci->ghoul2Model))
ADDRLP4 2208
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ASGNP4
ADDRLP4 2208
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $228
ADDRLP4 2208
INDIRP4
ARGP4
ADDRLP4 2212
ADDRGP4 trap_G2_HaveWeGhoul2Models
CALLI4
ASGNI4
ADDRLP4 2212
INDIRI4
CNSTI4 0
EQI4 $228
line 264
;264:	{
line 265
;265:		trap_G2API_CleanGhoul2Models(&(ci->ghoul2Model));
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
ARGP4
ADDRGP4 trap_G2API_CleanGhoul2Models
CALLV
pop
line 266
;266:	}
LABELV $228
line 268
;267:
;268:	if ( cgs.gametype >= GT_TEAM && !cgs.jediVmerc )
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 5
LTI4 $230
ADDRGP4 cgs+32996
INDIRI4
CNSTI4 0
NEI4 $230
line 269
;269:	{
line 270
;270:		if (ci->team == TEAM_RED)
ADDRFP4 0
INDIRP4
CNSTI4 68
ADDP4
INDIRI4
CNSTI4 1
NEI4 $234
line 271
;271:		{
line 272
;272:			Q_strncpyz(ci->skinName, "red", sizeof(ci->skinName));
ADDRFP4 0
INDIRP4
CNSTI4 224
ADDP4
ARGP4
ADDRGP4 $187
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 273
;273:			skinName = "red";
ADDRFP4 8
ADDRGP4 $187
ASGNP4
line 274
;274:		}
ADDRGP4 $235
JUMPV
LABELV $234
line 275
;275:		else if (ci->team == TEAM_BLUE)
ADDRFP4 0
INDIRP4
CNSTI4 68
ADDP4
INDIRI4
CNSTI4 2
NEI4 $236
line 276
;276:		{
line 277
;277:			Q_strncpyz(ci->skinName, "blue", sizeof(ci->skinName));
ADDRFP4 0
INDIRP4
CNSTI4 224
ADDP4
ARGP4
ADDRGP4 $188
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 278
;278:			skinName = "blue";
ADDRFP4 8
ADDRGP4 $188
ASGNP4
line 279
;279:		}
LABELV $236
LABELV $235
line 280
;280:	}
LABELV $230
line 282
;281:
;282:	if (clientNum != -1 && cg_entities[clientNum].currentState.teamowner && !cg_entities[clientNum].isATST)
ADDRLP4 2216
ADDRFP4 16
INDIRI4
ASGNI4
ADDRLP4 2216
INDIRI4
CNSTI4 -1
EQI4 $238
ADDRLP4 2220
CNSTI4 1920
ADDRLP4 2216
INDIRI4
MULI4
ASGNI4
ADDRLP4 2224
CNSTI4 0
ASGNI4
ADDRLP4 2220
INDIRI4
ADDRGP4 cg_entities+264
ADDP4
INDIRI4
ADDRLP4 2224
INDIRI4
EQI4 $238
ADDRLP4 2220
INDIRI4
ADDRGP4 cg_entities+1028
ADDP4
INDIRI4
ADDRLP4 2224
INDIRI4
NEI4 $238
line 283
;283:	{
line 284
;284:		ci->torsoSkin = 0;
ADDRFP4 0
INDIRP4
CNSTI4 496
ADDP4
CNSTI4 0
ASGNI4
line 285
;285:		ci->ATST = qtrue;
ADDRFP4 0
INDIRP4
CNSTI4 500
ADDP4
CNSTI4 1
ASGNI4
line 286
;286:		handle = trap_G2API_InitGhoul2Model(&ci->ghoul2Model, "models/players/atst/model.glm", 0, 0, 0, 0, 0);
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
ARGP4
ADDRGP4 $242
ARGP4
ADDRLP4 2228
CNSTI4 0
ASGNI4
ADDRLP4 2228
INDIRI4
ARGI4
ADDRLP4 2228
INDIRI4
ARGI4
ADDRLP4 2228
INDIRI4
ARGI4
ADDRLP4 2228
INDIRI4
ARGI4
ADDRLP4 2228
INDIRI4
ARGI4
ADDRLP4 2232
ADDRGP4 trap_G2API_InitGhoul2Model
CALLI4
ASGNI4
ADDRLP4 2192
ADDRLP4 2232
INDIRI4
ASGNI4
line 287
;287:	}
ADDRGP4 $239
JUMPV
LABELV $238
line 289
;288:	else
;289:	{
line 290
;290:		ci->torsoSkin = trap_R_RegisterSkin(va("models/players/%s/model_%s.skin", modelName, skinName));
ADDRGP4 $243
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
ARGP4
ADDRLP4 2228
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 2228
INDIRP4
ARGP4
ADDRLP4 2232
ADDRGP4 trap_R_RegisterSkin
CALLI4
ASGNI4
ADDRFP4 0
INDIRP4
CNSTI4 496
ADDP4
ADDRLP4 2232
INDIRI4
ASGNI4
line 291
;291:		ci->ATST = qfalse;
ADDRFP4 0
INDIRP4
CNSTI4 500
ADDP4
CNSTI4 0
ASGNI4
line 292
;292:		Com_sprintf( afilename, sizeof( afilename ), "models/players/%s/model.glm", modelName );
ADDRLP4 68
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 $244
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 Com_sprintf
CALLV
pop
line 293
;293:		handle = trap_G2API_InitGhoul2Model(&ci->ghoul2Model, afilename, 0, ci->torsoSkin, 0, 0, 0);
ADDRLP4 2236
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 2236
INDIRP4
CNSTI4 504
ADDP4
ARGP4
ADDRLP4 68
ARGP4
ADDRLP4 2240
CNSTI4 0
ASGNI4
ADDRLP4 2240
INDIRI4
ARGI4
ADDRLP4 2236
INDIRP4
CNSTI4 496
ADDP4
INDIRI4
ARGI4
ADDRLP4 2240
INDIRI4
ARGI4
ADDRLP4 2240
INDIRI4
ARGI4
ADDRLP4 2240
INDIRI4
ARGI4
ADDRLP4 2244
ADDRGP4 trap_G2API_InitGhoul2Model
CALLI4
ASGNI4
ADDRLP4 2192
ADDRLP4 2244
INDIRI4
ASGNI4
line 294
;294:	}
LABELV $239
line 295
;295:	if (handle<0)
ADDRLP4 2192
INDIRI4
CNSTI4 0
GEI4 $245
line 296
;296:	{
line 297
;297:		return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $217
JUMPV
LABELV $245
line 302
;298:	}
;299:
;300:	// The model is now loaded.
;301:
;302:	GLAName[0] = 0;
ADDRLP4 4
CNSTI1 0
ASGNI1
line 304
;303:
;304:	trap_G2API_GetGLAName( ci->ghoul2Model, 0, GLAName);
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 4
ARGP4
ADDRGP4 trap_G2API_GetGLAName
CALLV
pop
line 305
;305:	if (GLAName[0] != 0)
ADDRLP4 4
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $247
line 306
;306:	{
line 307
;307:		if (!strstr(GLAName, "players/_humanoid/"))
ADDRLP4 4
ARGP4
ADDRGP4 $251
ARGP4
ADDRLP4 2228
ADDRGP4 strstr
CALLP4
ASGNP4
ADDRLP4 2228
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $249
line 308
;308:		{ //Bad!
line 309
;309:			badModel = qtrue;
ADDRLP4 0
CNSTI4 1
ASGNI4
line 310
;310:			goto retryModel;
ADDRGP4 $219
JUMPV
LABELV $249
line 312
;311:		}
;312:	}
LABELV $247
line 314
;313:
;314:	if (!BGPAFtextLoaded)
ADDRGP4 BGPAFtextLoaded
INDIRI4
CNSTI4 0
NEI4 $252
line 315
;315:	{
line 316
;316:		if (GLAName[0] == 0/*GLAName == NULL*/)
ADDRLP4 4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $254
line 317
;317:		{
line 318
;318:			if (!BG_ParseAnimationFile("models/players/_humanoid/animation.cfg"))
ADDRGP4 $258
ARGP4
ADDRLP4 2228
ADDRGP4 BG_ParseAnimationFile
CALLI4
ASGNI4
ADDRLP4 2228
INDIRI4
CNSTI4 0
NEI4 $256
line 319
;319:			{
line 320
;320:				Com_Printf( "Failed to load animation file %s\n", afilename );
ADDRGP4 $259
ARGP4
ADDRLP4 68
ARGP4
ADDRGP4 Com_Printf
CALLV
pop
line 321
;321:				return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $217
JUMPV
LABELV $256
line 323
;322:			}
;323:			return qtrue;
CNSTI4 1
RETI4
ADDRGP4 $217
JUMPV
LABELV $254
line 325
;324:		}
;325:		Q_strncpyz( afilename, GLAName, sizeof( afilename ));
ADDRLP4 68
ARGP4
ADDRLP4 4
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 326
;326:		slash = Q_strrchr( afilename, '/' );
ADDRLP4 68
ARGP4
CNSTI4 47
ARGI4
ADDRLP4 2228
ADDRGP4 Q_strrchr
CALLP4
ASGNP4
ADDRLP4 2200
ADDRLP4 2228
INDIRP4
ASGNP4
line 327
;327:		if ( slash )
ADDRLP4 2200
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $260
line 328
;328:		{
line 329
;329:			strcpy(slash, "/animation.cfg");
ADDRLP4 2200
INDIRP4
ARGP4
ADDRGP4 $262
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 330
;330:		}	// Now afilename holds just the path to the animation.cfg
ADDRGP4 $261
JUMPV
LABELV $260
line 332
;331:		else 
;332:		{	// Didn't find any slashes, this is a raw filename right in base (whish isn't a good thing)
line 333
;333:			return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $217
JUMPV
LABELV $261
line 349
;334:		}
;335:
;336:		/*
;337:		// Try to load the animation.cfg for this model then.
;338:		if ( !BG_ParseAnimationFile( afilename, ci->animations ) )
;339:		{	// The GLA's animations failed
;340:			if (!BG_ParseAnimationFile("models/players/_humanoid/animation.cfg", ci->animations))
;341:			{
;342:				Com_Printf( "Failed to load animation file %s\n", afilename );
;343:				return qfalse;
;344:			}
;345:		}
;346:		*/
;347:		//rww - For now, we'll just ignore what animation file it wants. In theory all multiplayer-supported models
;348:		//should want _humanoid/animation.cfg, so if it doesn't want that then throw it away
;349:		if (Q_stricmp(afilename, "models/players/_humanoid/animation.cfg"))
ADDRLP4 68
ARGP4
ADDRGP4 $258
ARGP4
ADDRLP4 2232
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 2232
INDIRI4
CNSTI4 0
EQI4 $263
line 350
;350:		{
line 351
;351:			Com_Printf( "Model does not use supported animation config.\n");
ADDRGP4 $265
ARGP4
ADDRGP4 Com_Printf
CALLV
pop
line 352
;352:			return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $217
JUMPV
LABELV $263
line 354
;353:		}
;354:		else if (!BG_ParseAnimationFile("models/players/_humanoid/animation.cfg"))
ADDRGP4 $258
ARGP4
ADDRLP4 2236
ADDRGP4 BG_ParseAnimationFile
CALLI4
ASGNI4
ADDRLP4 2236
INDIRI4
CNSTI4 0
NEI4 $266
line 355
;355:		{
line 356
;356:			Com_Printf( "Failed to load animation file models/players/_humanoid/animation.cfg\n" );
ADDRGP4 $268
ARGP4
ADDRGP4 Com_Printf
CALLV
pop
line 357
;357:			return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $217
JUMPV
LABELV $266
line 359
;358:		}
;359:		else if (!retriedAlready)
ADDRLP4 2196
INDIRI4
CNSTI4 0
NEI4 $269
line 360
;360:		{
line 363
;361:			int i;
;362:
;363:			for(i = 0; i < MAX_ANIMATIONS; i++)
ADDRLP4 2240
CNSTI4 0
ASGNI4
LABELV $271
line 364
;364:			{
line 365
;365:				if (!bgGlobalAnimations[i].firstFrame && !bgGlobalAnimations[i].numFrames && CG_NeedAnimSequence(i))
ADDRLP4 2248
CNSTI4 28
ADDRLP4 2240
INDIRI4
MULI4
ASGNI4
ADDRLP4 2252
CNSTI4 0
ASGNI4
ADDRLP4 2248
INDIRI4
ADDRGP4 bgGlobalAnimations
ADDP4
INDIRI4
ADDRLP4 2252
INDIRI4
NEI4 $275
ADDRLP4 2248
INDIRI4
ADDRGP4 bgGlobalAnimations+4
ADDP4
INDIRI4
ADDRLP4 2252
INDIRI4
NEI4 $275
ADDRLP4 2240
INDIRI4
ARGI4
ADDRLP4 2256
ADDRGP4 CG_NeedAnimSequence
CALLI4
ASGNI4
ADDRLP4 2256
INDIRI4
CNSTI4 0
EQI4 $275
line 366
;366:				{ //using default for this animation so it obviously never got filled in.
line 368
;367:					//if it's a sequence that we need, this model must be an unsupported one.
;368:					badModel = qtrue;
ADDRLP4 0
CNSTI4 1
ASGNI4
line 369
;369:					goto retryModel;
ADDRGP4 $219
JUMPV
LABELV $275
line 371
;370:				}
;371:			}
LABELV $272
line 363
ADDRLP4 2240
ADDRLP4 2240
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 2240
INDIRI4
CNSTI4 1210
LTI4 $271
line 372
;372:		}
LABELV $269
line 373
;373:	}
LABELV $252
line 375
;374:
;375:	if ( CG_ParseSurfsFile( modelName, skinName, surfOff, surfOn ) )
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
ARGP4
ADDRLP4 144
ARGP4
ADDRLP4 1168
ARGP4
ADDRLP4 2228
ADDRGP4 CG_ParseSurfsFile
CALLI4
ASGNI4
ADDRLP4 2228
INDIRI4
CNSTI4 0
EQI4 $278
line 376
;376:	{//turn on/off any surfs
line 381
;377:		const char	*token;
;378:		const char	*p;
;379:
;380:		//Now turn on/off any surfaces
;381:		if ( surfOff && surfOff[0] )
ADDRLP4 144
CVPU4 4
CNSTU4 0
EQU4 $280
ADDRLP4 144
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $280
line 382
;382:		{
line 383
;383:			p = surfOff;
ADDRLP4 2236
ADDRLP4 144
ASGNP4
ADDRGP4 $283
JUMPV
LABELV $282
line 385
;384:			while ( 1 ) 
;385:			{
line 386
;386:				token = COM_ParseExt( &p, qtrue );
ADDRLP4 2236
ARGP4
CNSTI4 1
ARGI4
ADDRLP4 2240
ADDRGP4 COM_ParseExt
CALLP4
ASGNP4
ADDRLP4 2232
ADDRLP4 2240
INDIRP4
ASGNP4
line 387
;387:				if ( !token[0] ) 
ADDRLP4 2232
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $285
line 388
;388:				{//reached end of list
line 389
;389:					break;
ADDRGP4 $284
JUMPV
LABELV $285
line 392
;390:				}
;391:				//turn off this surf
;392:				trap_G2API_SetSurfaceOnOff( ci->ghoul2Model, token, 0x00000002/*G2SURFACEFLAG_OFF*/ );
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
ADDRLP4 2232
INDIRP4
ARGP4
CNSTI4 2
ARGI4
ADDRGP4 trap_G2API_SetSurfaceOnOff
CALLI4
pop
line 393
;393:			}
LABELV $283
line 384
ADDRGP4 $282
JUMPV
LABELV $284
line 394
;394:		}
LABELV $280
line 395
;395:		if ( surfOn && surfOn[0] )
ADDRLP4 1168
CVPU4 4
CNSTU4 0
EQU4 $287
ADDRLP4 1168
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $287
line 396
;396:		{
line 397
;397:			p = surfOn;
ADDRLP4 2236
ADDRLP4 1168
ASGNP4
ADDRGP4 $290
JUMPV
LABELV $289
line 399
;398:			while ( 1 )
;399:			{
line 400
;400:				token = COM_ParseExt( &p, qtrue );
ADDRLP4 2236
ARGP4
CNSTI4 1
ARGI4
ADDRLP4 2240
ADDRGP4 COM_ParseExt
CALLP4
ASGNP4
ADDRLP4 2232
ADDRLP4 2240
INDIRP4
ASGNP4
line 401
;401:				if ( !token[0] ) 
ADDRLP4 2232
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $292
line 402
;402:				{//reached end of list
line 403
;403:					break;
ADDRGP4 $291
JUMPV
LABELV $292
line 406
;404:				}
;405:				//turn on this surf
;406:				trap_G2API_SetSurfaceOnOff( ci->ghoul2Model, token, 0 );
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
ADDRLP4 2232
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 trap_G2API_SetSurfaceOnOff
CALLI4
pop
line 407
;407:			}
LABELV $290
line 398
ADDRGP4 $289
JUMPV
LABELV $291
line 408
;408:		}
LABELV $287
line 409
;409:	}
LABELV $278
line 411
;410:
;411:	if (clientNum != -1 && cg_entities[clientNum].currentState.teamowner && !cg_entities[clientNum].isATST)
ADDRLP4 2232
ADDRFP4 16
INDIRI4
ASGNI4
ADDRLP4 2232
INDIRI4
CNSTI4 -1
EQI4 $294
ADDRLP4 2236
CNSTI4 1920
ADDRLP4 2232
INDIRI4
MULI4
ASGNI4
ADDRLP4 2240
CNSTI4 0
ASGNI4
ADDRLP4 2236
INDIRI4
ADDRGP4 cg_entities+264
ADDP4
INDIRI4
ADDRLP4 2240
INDIRI4
EQI4 $294
ADDRLP4 2236
INDIRI4
ADDRGP4 cg_entities+1028
ADDP4
INDIRI4
ADDRLP4 2240
INDIRI4
NEI4 $294
line 412
;412:	{
line 413
;413:		ci->torsoSkin = 0;
ADDRFP4 0
INDIRP4
CNSTI4 496
ADDP4
CNSTI4 0
ASGNI4
line 414
;414:		ci->bolt_rhand = trap_G2API_AddBolt(ci->ghoul2Model, 0, "*flash1");
ADDRLP4 2244
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 2244
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $298
ARGP4
ADDRLP4 2248
ADDRGP4 trap_G2API_AddBolt
CALLI4
ASGNI4
ADDRLP4 2244
INDIRP4
CNSTI4 512
ADDP4
ADDRLP4 2248
INDIRI4
ASGNI4
line 415
;415:		trap_G2API_SetBoneAnim(ci->ghoul2Model, 0, "Model_root", 0, 12, BONE_ANIM_OVERRIDE_LOOP, 1.0f, cg.time, -1, -1);
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
ADDRLP4 2252
CNSTI4 0
ASGNI4
ADDRLP4 2252
INDIRI4
ARGI4
ADDRGP4 $299
ARGP4
ADDRLP4 2252
INDIRI4
ARGI4
CNSTI4 12
ARGI4
CNSTI4 16
ARGI4
CNSTF4 1065353216
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
CNSTI4 -1
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 416
;416:		trap_G2API_SetBoneAngles(ci->ghoul2Model, 0, "l_clavical", tempVec, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, NULL, 0, cg.time);
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
ADDRLP4 2256
CNSTI4 0
ASGNI4
ADDRLP4 2256
INDIRI4
ARGI4
ADDRGP4 $301
ARGP4
ADDRLP4 132
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
CNSTP4 0
ARGP4
ADDRLP4 2256
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAngles
CALLI4
pop
line 417
;417:		trap_G2API_SetBoneAngles(ci->ghoul2Model, 0, "r_clavical", tempVec, BONE_ANGLES_POSTMULT, POSITIVE_Z, NEGATIVE_Y, POSITIVE_X, NULL, 0, cg.time);
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
ADDRLP4 2260
CNSTI4 0
ASGNI4
ADDRLP4 2260
INDIRI4
ARGI4
ADDRGP4 $303
ARGP4
ADDRLP4 132
ARGP4
ADDRLP4 2264
CNSTI4 2
ASGNI4
ADDRLP4 2264
INDIRI4
ARGI4
ADDRLP4 2264
INDIRI4
ARGI4
CNSTI4 6
ARGI4
CNSTI4 1
ARGI4
CNSTP4 0
ARGP4
ADDRLP4 2260
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAngles
CALLI4
pop
line 419
;418:
;419:		ci->bolt_lhand = trap_G2API_AddBolt(ci->ghoul2Model, 0, "*flash2");
ADDRLP4 2268
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 2268
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $305
ARGP4
ADDRLP4 2272
ADDRGP4 trap_G2API_AddBolt
CALLI4
ASGNI4
ADDRLP4 2268
INDIRP4
CNSTI4 516
ADDP4
ADDRLP4 2272
INDIRI4
ASGNI4
line 420
;420:		ci->bolt_head = trap_G2API_AddBolt(ci->ghoul2Model, 0, "pelvis");
ADDRLP4 2276
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 2276
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $306
ARGP4
ADDRLP4 2280
ADDRGP4 trap_G2API_AddBolt
CALLI4
ASGNI4
ADDRLP4 2276
INDIRP4
CNSTI4 520
ADDP4
ADDRLP4 2280
INDIRI4
ASGNI4
line 421
;421:	}
ADDRGP4 $295
JUMPV
LABELV $294
line 423
;422:	else
;423:	{
line 424
;424:		ci->bolt_rhand = trap_G2API_AddBolt(ci->ghoul2Model, 0, "*r_hand");
ADDRLP4 2244
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 2244
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $307
ARGP4
ADDRLP4 2248
ADDRGP4 trap_G2API_AddBolt
CALLI4
ASGNI4
ADDRLP4 2244
INDIRP4
CNSTI4 512
ADDP4
ADDRLP4 2248
INDIRI4
ASGNI4
line 426
;425:		
;426:		if (!trap_G2API_SetBoneAnim(ci->ghoul2Model, 0, "model_root", 0, 12, BONE_ANIM_OVERRIDE_LOOP, 1.0f, cg.time, -1, -1))
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
ADDRLP4 2252
CNSTI4 0
ASGNI4
ADDRLP4 2252
INDIRI4
ARGI4
ADDRGP4 $310
ARGP4
ADDRLP4 2252
INDIRI4
ARGI4
CNSTI4 12
ARGI4
CNSTI4 16
ARGI4
CNSTF4 1065353216
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
CNSTI4 -1
ARGI4
ADDRLP4 2256
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
ASGNI4
ADDRLP4 2256
INDIRI4
CNSTI4 0
NEI4 $308
line 427
;427:		{
line 428
;428:			badModel = qtrue;
ADDRLP4 0
CNSTI4 1
ASGNI4
line 429
;429:		}
LABELV $308
line 431
;430:		
;431:		if (!trap_G2API_SetBoneAngles(ci->ghoul2Model, 0, "upper_lumbar", tempVec, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, NULL, 0, cg.time))
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
ADDRLP4 2260
CNSTI4 0
ASGNI4
ADDRLP4 2260
INDIRI4
ARGI4
ADDRGP4 $314
ARGP4
ADDRLP4 132
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
CNSTP4 0
ARGP4
ADDRLP4 2260
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRLP4 2264
ADDRGP4 trap_G2API_SetBoneAngles
CALLI4
ASGNI4
ADDRLP4 2264
INDIRI4
CNSTI4 0
NEI4 $312
line 432
;432:		{
line 433
;433:			badModel = qtrue;
ADDRLP4 0
CNSTI4 1
ASGNI4
line 434
;434:		}
LABELV $312
line 436
;435:
;436:		if (!trap_G2API_SetBoneAngles(ci->ghoul2Model, 0, "cranium", tempVec, BONE_ANGLES_POSTMULT, POSITIVE_Z, NEGATIVE_Y, POSITIVE_X, NULL, 0, cg.time))
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
ADDRLP4 2268
CNSTI4 0
ASGNI4
ADDRLP4 2268
INDIRI4
ARGI4
ADDRGP4 $318
ARGP4
ADDRLP4 132
ARGP4
ADDRLP4 2272
CNSTI4 2
ASGNI4
ADDRLP4 2272
INDIRI4
ARGI4
ADDRLP4 2272
INDIRI4
ARGI4
CNSTI4 6
ARGI4
CNSTI4 1
ARGI4
CNSTP4 0
ARGP4
ADDRLP4 2268
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRLP4 2276
ADDRGP4 trap_G2API_SetBoneAngles
CALLI4
ASGNI4
ADDRLP4 2276
INDIRI4
CNSTI4 0
NEI4 $316
line 437
;437:		{
line 438
;438:			badModel = qtrue;
ADDRLP4 0
CNSTI4 1
ASGNI4
line 439
;439:		}
LABELV $316
line 441
;440:
;441:		ci->bolt_lhand = trap_G2API_AddBolt(ci->ghoul2Model, 0, "*l_hand");
ADDRLP4 2280
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 2280
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $320
ARGP4
ADDRLP4 2284
ADDRGP4 trap_G2API_AddBolt
CALLI4
ASGNI4
ADDRLP4 2280
INDIRP4
CNSTI4 516
ADDP4
ADDRLP4 2284
INDIRI4
ASGNI4
line 442
;442:		ci->bolt_head = trap_G2API_AddBolt(ci->ghoul2Model, 0, "*head_top");
ADDRLP4 2288
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 2288
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $321
ARGP4
ADDRLP4 2292
ADDRGP4 trap_G2API_AddBolt
CALLI4
ASGNI4
ADDRLP4 2288
INDIRP4
CNSTI4 520
ADDP4
ADDRLP4 2292
INDIRI4
ASGNI4
line 444
;443:
;444:		ci->bolt_motion = trap_G2API_AddBolt(ci->ghoul2Model, 0, "Motion");
ADDRLP4 2296
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 2296
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $322
ARGP4
ADDRLP4 2300
ADDRGP4 trap_G2API_AddBolt
CALLI4
ASGNI4
ADDRLP4 2296
INDIRP4
CNSTI4 524
ADDP4
ADDRLP4 2300
INDIRI4
ASGNI4
line 447
;445:
;446:		//We need a lower lumbar bolt for footsteps
;447:		ci->bolt_llumbar = trap_G2API_AddBolt(ci->ghoul2Model, 0, "lower_lumbar");
ADDRLP4 2304
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 2304
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $323
ARGP4
ADDRLP4 2308
ADDRGP4 trap_G2API_AddBolt
CALLI4
ASGNI4
ADDRLP4 2304
INDIRP4
CNSTI4 528
ADDP4
ADDRLP4 2308
INDIRI4
ASGNI4
line 449
;448:
;449:		if (ci->bolt_rhand == -1 || ci->bolt_lhand == -1 || ci->bolt_head == -1 || ci->bolt_motion == -1 || ci->bolt_llumbar == -1)
ADDRLP4 2312
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 2316
CNSTI4 -1
ASGNI4
ADDRLP4 2312
INDIRP4
CNSTI4 512
ADDP4
INDIRI4
ADDRLP4 2316
INDIRI4
EQI4 $329
ADDRLP4 2312
INDIRP4
CNSTI4 516
ADDP4
INDIRI4
ADDRLP4 2316
INDIRI4
EQI4 $329
ADDRLP4 2312
INDIRP4
CNSTI4 520
ADDP4
INDIRI4
ADDRLP4 2316
INDIRI4
EQI4 $329
ADDRLP4 2312
INDIRP4
CNSTI4 524
ADDP4
INDIRI4
ADDRLP4 2316
INDIRI4
EQI4 $329
ADDRLP4 2312
INDIRP4
CNSTI4 528
ADDP4
INDIRI4
ADDRLP4 2316
INDIRI4
NEI4 $324
LABELV $329
line 450
;450:		{
line 451
;451:			badModel = qtrue;
ADDRLP4 0
CNSTI4 1
ASGNI4
line 452
;452:		}
LABELV $324
line 454
;453:
;454:		if (badModel)
ADDRLP4 0
INDIRI4
CNSTI4 0
EQI4 $330
line 455
;455:		{
line 456
;456:			goto retryModel;
ADDRGP4 $219
JUMPV
LABELV $330
line 458
;457:		}
;458:	}
LABELV $295
line 462
;459:
;460://	ent->s.radius = 90;
;461:
;462:	if (clientNum != -1)
ADDRFP4 16
INDIRI4
CNSTI4 -1
EQI4 $332
line 463
;463:	{
line 464
;464:		if (cg_entities[clientNum].isATST)
CNSTI4 1920
ADDRFP4 16
INDIRI4
MULI4
ADDRGP4 cg_entities+1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $334
line 465
;465:		{
line 468
;466:			animation_t *anim;
;467:
;468:			anim = &bgGlobalAnimations[ (cg_entities[clientNum].currentState.legsAnim & ~ANIM_TOGGLEBIT) ];
ADDRLP4 2244
CNSTI4 28
CNSTI4 1920
ADDRFP4 16
INDIRI4
MULI4
ADDRGP4 cg_entities+280
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
MULI4
ADDRGP4 bgGlobalAnimations
ADDP4
ASGNP4
line 470
;469:
;470:			if (anim)
ADDRLP4 2244
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $338
line 471
;471:			{
line 472
;472:				int flags = BONE_ANIM_OVERRIDE_FREEZE;
ADDRLP4 2248
CNSTI4 72
ASGNI4
line 473
;473:				int firstFrame = anim->firstFrame + anim->numFrames-1;
ADDRLP4 2256
ADDRLP4 2244
INDIRP4
ASGNP4
ADDRLP4 2252
ADDRLP4 2256
INDIRP4
INDIRI4
ADDRLP4 2256
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
CNSTI4 1
SUBI4
ASGNI4
line 475
;474:
;475:				if (anim->loopFrames != -1)
ADDRLP4 2244
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 -1
EQI4 $340
line 476
;476:				{
line 477
;477:					flags = BONE_ANIM_OVERRIDE_LOOP;
ADDRLP4 2248
CNSTI4 16
ASGNI4
line 478
;478:					firstFrame = anim->firstFrame;
ADDRLP4 2252
ADDRLP4 2244
INDIRP4
INDIRI4
ASGNI4
line 479
;479:				}
LABELV $340
line 482
;480:
;481:				//rww - Set the animation again because it just got reset due to the model change
;482:				trap_G2API_SetBoneAnim(ci->ghoul2Model, 0, "model_root", firstFrame, anim->firstFrame + anim->numFrames, flags, 1.0f, cg.time, -1, 150);
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $310
ARGP4
ADDRLP4 2252
INDIRI4
ARGI4
ADDRLP4 2260
ADDRLP4 2244
INDIRP4
ASGNP4
ADDRLP4 2260
INDIRP4
INDIRI4
ADDRLP4 2260
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ARGI4
ADDRLP4 2248
INDIRI4
ARGI4
CNSTF4 1065353216
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
CNSTI4 150
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 484
;483:
;484:				cg_entities[clientNum].currentState.legsAnim = 0;
CNSTI4 1920
ADDRFP4 16
INDIRI4
MULI4
ADDRGP4 cg_entities+280
ADDP4
CNSTI4 0
ASGNI4
line 485
;485:			}
LABELV $338
line 487
;486:
;487:			anim = &bgGlobalAnimations[ (cg_entities[clientNum].currentState.torsoAnim & ~ANIM_TOGGLEBIT) ];
ADDRLP4 2244
CNSTI4 28
CNSTI4 1920
ADDRFP4 16
INDIRI4
MULI4
ADDRGP4 cg_entities+284
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
MULI4
ADDRGP4 bgGlobalAnimations
ADDP4
ASGNP4
line 489
;488:
;489:			if (anim)
ADDRLP4 2244
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $345
line 490
;490:			{
line 491
;491:				int flags = BONE_ANIM_OVERRIDE_FREEZE;
ADDRLP4 2248
CNSTI4 72
ASGNI4
line 492
;492:				int firstFrame = anim->firstFrame + anim->numFrames-1;
ADDRLP4 2256
ADDRLP4 2244
INDIRP4
ASGNP4
ADDRLP4 2252
ADDRLP4 2256
INDIRP4
INDIRI4
ADDRLP4 2256
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
CNSTI4 1
SUBI4
ASGNI4
line 494
;493:
;494:				if (anim->loopFrames != -1)
ADDRLP4 2244
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 -1
EQI4 $347
line 495
;495:				{
line 496
;496:					flags = BONE_ANIM_OVERRIDE_LOOP;
ADDRLP4 2248
CNSTI4 16
ASGNI4
line 497
;497:					firstFrame = anim->firstFrame;
ADDRLP4 2252
ADDRLP4 2244
INDIRP4
INDIRI4
ASGNI4
line 498
;498:				}
LABELV $347
line 501
;499:
;500:				//rww - Set the animation again because it just got reset due to the model change
;501:				trap_G2API_SetBoneAnim(ci->ghoul2Model, 0, "lower_lumbar", anim->firstFrame + anim->numFrames-1, anim->firstFrame + anim->numFrames, flags, 1.0f, cg.time, -1, 150);
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $323
ARGP4
ADDRLP4 2260
ADDRLP4 2244
INDIRP4
ASGNP4
ADDRLP4 2264
ADDRLP4 2260
INDIRP4
INDIRI4
ADDRLP4 2260
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ASGNI4
ADDRLP4 2264
INDIRI4
CNSTI4 1
SUBI4
ARGI4
ADDRLP4 2264
INDIRI4
ARGI4
ADDRLP4 2248
INDIRI4
ARGI4
CNSTF4 1065353216
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
CNSTI4 150
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 503
;502:
;503:				cg_entities[clientNum].currentState.torsoAnim = 0;
CNSTI4 1920
ADDRFP4 16
INDIRI4
MULI4
ADDRGP4 cg_entities+284
ADDP4
CNSTI4 0
ASGNI4
line 504
;504:			}
LABELV $345
line 505
;505:		}
LABELV $334
line 515
;506:
;507:		/*
;508:		if (cg_entities[clientNum].ghoul2 && trap_G2_HaveWeGhoul2Models(cg_entities[clientNum].ghoul2))
;509:		{
;510:			trap_G2API_CleanGhoul2Models(&(cg_entities[clientNum].ghoul2));
;511:		}
;512:		trap_G2API_DuplicateGhoul2Instance(ci->ghoul2Model, &cg_entities[clientNum].ghoul2);	
;513:		*/
;514:
;515:		cg_entities[clientNum].ghoul2weapon = NULL;
CNSTI4 1920
ADDRFP4 16
INDIRI4
MULI4
ADDRGP4 cg_entities+960
ADDP4
CNSTP4 0
ASGNP4
line 516
;516:	}
LABELV $332
line 518
;517:
;518:	Q_strncpyz (ci->teamName, teamName, sizeof(ci->teamName));
ADDRFP4 0
INDIRP4
CNSTI4 416
ADDP4
ARGP4
ADDRFP4 12
INDIRP4
ARGP4
CNSTI4 32
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 521
;519:
;520:	// Model icon for drawing the portrait on screen
;521:	ci->modelIcon = trap_R_RegisterShaderNoMip ( va ( "models/players/%s/icon_%s", modelName, skinName ) );
ADDRGP4 $352
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
ARGP4
ADDRLP4 2244
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 2244
INDIRP4
ARGP4
ADDRLP4 2248
ADDRGP4 trap_R_RegisterShaderNoMip
CALLI4
ASGNI4
ADDRFP4 0
INDIRP4
CNSTI4 508
ADDP4
ADDRLP4 2248
INDIRI4
ASGNI4
line 523
;522:
;523:	return qtrue;
CNSTI4 1
RETI4
LABELV $217
endproc CG_RegisterClientModelname 2320 44
proc CG_ColorFromString 20 4
line 531
;524:}
;525:
;526:/*
;527:====================
;528:CG_ColorFromString
;529:====================
;530:*/
;531:static void CG_ColorFromString( const char *v, vec3_t color ) {
line 534
;532:	int val;
;533:
;534:	VectorClear( color );
ADDRLP4 4
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 8
CNSTF4 0
ASGNF4
ADDRLP4 4
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 8
INDIRF4
ASGNF4
ADDRLP4 4
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 8
INDIRF4
ASGNF4
ADDRLP4 4
INDIRP4
ADDRLP4 8
INDIRF4
ASGNF4
line 536
;535:
;536:	val = atoi( v );
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 12
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 0
ADDRLP4 12
INDIRI4
ASGNI4
line 538
;537:
;538:	if ( val < 1 || val > 7 ) {
ADDRLP4 0
INDIRI4
CNSTI4 1
LTI4 $356
ADDRLP4 0
INDIRI4
CNSTI4 7
LEI4 $354
LABELV $356
line 539
;539:		VectorSet( color, 1, 1, 1 );
ADDRFP4 4
INDIRP4
CNSTF4 1065353216
ASGNF4
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
CNSTF4 1065353216
ASGNF4
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
CNSTF4 1065353216
ASGNF4
line 540
;540:		return;
ADDRGP4 $353
JUMPV
LABELV $354
line 543
;541:	}
;542:
;543:	if ( val & 1 ) {
ADDRLP4 0
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $357
line 544
;544:		color[2] = 1.0f;
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
CNSTF4 1065353216
ASGNF4
line 545
;545:	}
LABELV $357
line 546
;546:	if ( val & 2 ) {
ADDRLP4 0
INDIRI4
CNSTI4 2
BANDI4
CNSTI4 0
EQI4 $359
line 547
;547:		color[1] = 1.0f;
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
CNSTF4 1065353216
ASGNF4
line 548
;548:	}
LABELV $359
line 549
;549:	if ( val & 4 ) {
ADDRLP4 0
INDIRI4
CNSTI4 4
BANDI4
CNSTI4 0
EQI4 $361
line 550
;550:		color[0] = 1.0f;
ADDRFP4 4
INDIRP4
CNSTF4 1065353216
ASGNF4
line 551
;551:	}
LABELV $361
line 552
;552:}
LABELV $353
endproc CG_ColorFromString 20 4
export CG_LoadClientInfo
proc CG_LoadClientInfo 1264 24
line 564
;553:
;554:#define DEFAULT_FEMALE_SOUNDPATH "chars/mp_generic_female/misc"//"chars/tavion/misc"
;555:#define DEFAULT_MALE_SOUNDPATH "chars/mp_generic_male/misc"//"chars/kyle/misc"
;556:/*
;557:===================
;558:CG_LoadClientInfo
;559:
;560:Load it now, taking the disk hits.
;561:This will usually be deferred to a safe time
;562:===================
;563:*/
;564:void CG_LoadClientInfo( clientInfo_t *ci ) {
line 570
;565:	const char	*dir, *fallback;
;566:	int			i, modelloaded;
;567:	const char	*s;
;568:	int			clientNum;
;569:	char		teamname[MAX_QPATH];
;570:	int			fLen = 0;
ADDRLP4 1184
CNSTI4 0
ASGNI4
line 573
;571:	char		soundpath[MAX_QPATH];
;572:	char		soundName[1024];
;573:	qboolean	isFemale = qfalse;
ADDRLP4 1100
CNSTI4 0
ASGNI4
line 576
;574:	fileHandle_t f;
;575:
;576:	clientNum = ci - cgs.clientinfo;
ADDRLP4 1096
ADDRFP4 0
INDIRP4
CVPU4 4
ADDRGP4 cgs+43024
CVPU4 4
SUBU4
CVUI4 4
CNSTI4 812
DIVI4
ASGNI4
line 578
;577:
;578:	if (clientNum < 0 || clientNum >= MAX_CLIENTS)
ADDRLP4 1096
INDIRI4
CNSTI4 0
LTI4 $367
ADDRLP4 1096
INDIRI4
CNSTI4 32
LTI4 $365
LABELV $367
line 579
;579:	{
line 580
;580:		clientNum = -1;
ADDRLP4 1096
CNSTI4 -1
ASGNI4
line 581
;581:	}
LABELV $365
line 583
;582:
;583:	ci->deferred = qfalse;
ADDRFP4 0
INDIRP4
CNSTI4 448
ADDP4
CNSTI4 0
ASGNI4
line 607
;584:
;585:	/*
;586:	if (ci->team == TEAM_SPECTATOR)
;587:	{
;588:		// reset any existing players and bodies, because they might be in bad
;589:		// frames for this new model
;590:		clientNum = ci - cgs.clientinfo;
;591:		for ( i = 0 ; i < MAX_GENTITIES ; i++ ) {
;592:			if ( cg_entities[i].currentState.clientNum == clientNum
;593:				&& cg_entities[i].currentState.eType == ET_PLAYER ) {
;594:				CG_ResetPlayerEntity( &cg_entities[i] );
;595:			}
;596:		}
;597:
;598:		if (ci->ghoul2Model && trap_G2_HaveWeGhoul2Models(ci->ghoul2Model))
;599:		{
;600:			trap_G2API_CleanGhoul2Models(&ci->ghoul2Model);
;601:		}
;602:
;603:		return;
;604:	}
;605:	*/
;606:
;607:	teamname[0] = 0;
ADDRLP4 1108
CNSTI1 0
ASGNI1
line 608
;608:	if( cgs.gametype >= GT_TEAM) {
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 5
LTI4 $368
line 609
;609:		if( ci->team == TEAM_BLUE ) {
ADDRFP4 0
INDIRP4
CNSTI4 68
ADDP4
INDIRI4
CNSTI4 2
NEI4 $371
line 610
;610:			Q_strncpyz(teamname, cg_blueTeamName.string, sizeof(teamname) );
ADDRLP4 1108
ARGP4
ADDRGP4 cg_blueTeamName+16
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 611
;611:		} else {
ADDRGP4 $372
JUMPV
LABELV $371
line 612
;612:			Q_strncpyz(teamname, cg_redTeamName.string, sizeof(teamname) );
ADDRLP4 1108
ARGP4
ADDRGP4 cg_redTeamName+16
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 613
;613:		}
LABELV $372
line 614
;614:	}
LABELV $368
line 615
;615:	if( teamname[0] ) {
ADDRLP4 1108
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $375
line 616
;616:		strcat( teamname, "/" );
ADDRLP4 1108
ARGP4
ADDRGP4 $377
ARGP4
ADDRGP4 strcat
CALLP4
pop
line 617
;617:	}
LABELV $375
line 618
;618:	modelloaded = qtrue;
ADDRLP4 1104
CNSTI4 1
ASGNI4
line 619
;619:	if ( !CG_RegisterClientModelname( ci, ci->modelName, ci->skinName, teamname, clientNum ) ) {
ADDRLP4 1192
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1192
INDIRP4
ARGP4
ADDRLP4 1192
INDIRP4
CNSTI4 160
ADDP4
ARGP4
ADDRLP4 1192
INDIRP4
CNSTI4 224
ADDP4
ARGP4
ADDRLP4 1108
ARGP4
ADDRLP4 1096
INDIRI4
ARGI4
ADDRLP4 1196
ADDRGP4 CG_RegisterClientModelname
CALLI4
ASGNI4
ADDRLP4 1196
INDIRI4
CNSTI4 0
NEI4 $378
line 625
;620:		//CG_Error( "CG_RegisterClientModelname( %s, %s, %s, %s %s ) failed", ci->modelName, ci->skinName, ci->headModelName, ci->headSkinName, teamname );
;621:		//rww - DO NOT error out here! Someone could just type in a nonsense model name and crash everyone's client.
;622:		//Give it a chance to load default model for this client instead.
;623:
;624:		// fall back to default team name
;625:		if( cgs.gametype >= GT_TEAM) {
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 5
LTI4 $380
line 627
;626:			// keep skin name
;627:			if( ci->team == TEAM_BLUE ) {
ADDRFP4 0
INDIRP4
CNSTI4 68
ADDP4
INDIRI4
CNSTI4 2
NEI4 $383
line 628
;628:				Q_strncpyz(teamname, DEFAULT_BLUETEAM_NAME, sizeof(teamname) );
ADDRLP4 1108
ARGP4
ADDRGP4 $385
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 629
;629:			} else {
ADDRGP4 $384
JUMPV
LABELV $383
line 630
;630:				Q_strncpyz(teamname, DEFAULT_REDTEAM_NAME, sizeof(teamname) );
ADDRLP4 1108
ARGP4
ADDRGP4 $386
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 631
;631:			}
LABELV $384
line 632
;632:			if ( !CG_RegisterClientModelname( ci, DEFAULT_TEAM_MODEL, ci->skinName, teamname, -1 ) ) {
ADDRLP4 1200
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1200
INDIRP4
ARGP4
ADDRGP4 $171
ARGP4
ADDRLP4 1200
INDIRP4
CNSTI4 224
ADDP4
ARGP4
ADDRLP4 1108
ARGP4
CNSTI4 -1
ARGI4
ADDRLP4 1204
ADDRGP4 CG_RegisterClientModelname
CALLI4
ASGNI4
ADDRLP4 1204
INDIRI4
CNSTI4 0
NEI4 $381
line 633
;633:				CG_Error( "DEFAULT_TEAM_MODEL / skin (%s/%s) failed to register", DEFAULT_TEAM_MODEL, ci->skinName );
ADDRGP4 $389
ARGP4
ADDRGP4 $171
ARGP4
ADDRFP4 0
INDIRP4
CNSTI4 224
ADDP4
ARGP4
ADDRGP4 CG_Error
CALLV
pop
line 634
;634:			}
line 635
;635:		} else {
ADDRGP4 $381
JUMPV
LABELV $380
line 636
;636:			if ( !CG_RegisterClientModelname( ci, DEFAULT_MODEL, "default", teamname, -1 ) ) {
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 $171
ARGP4
ADDRGP4 $224
ARGP4
ADDRLP4 1108
ARGP4
CNSTI4 -1
ARGI4
ADDRLP4 1200
ADDRGP4 CG_RegisterClientModelname
CALLI4
ASGNI4
ADDRLP4 1200
INDIRI4
CNSTI4 0
NEI4 $390
line 637
;637:				CG_Error( "DEFAULT_MODEL (%s) failed to register", DEFAULT_MODEL );
ADDRGP4 $392
ARGP4
ADDRGP4 $171
ARGP4
ADDRGP4 CG_Error
CALLV
pop
line 638
;638:			}
LABELV $390
line 639
;639:		}
LABELV $381
line 640
;640:		modelloaded = qfalse;
ADDRLP4 1104
CNSTI4 0
ASGNI4
line 641
;641:	}
LABELV $378
line 643
;642:
;643:	if (clientNum != -1 && ci->ghoul2Model && trap_G2_HaveWeGhoul2Models(ci->ghoul2Model))
ADDRLP4 1096
INDIRI4
CNSTI4 -1
EQI4 $393
ADDRLP4 1200
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ASGNP4
ADDRLP4 1200
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $393
ADDRLP4 1200
INDIRP4
ARGP4
ADDRLP4 1204
ADDRGP4 trap_G2_HaveWeGhoul2Models
CALLI4
ASGNI4
ADDRLP4 1204
INDIRI4
CNSTI4 0
EQI4 $393
line 644
;644:	{
line 645
;645:		if (cg_entities[clientNum].ghoul2 && trap_G2_HaveWeGhoul2Models(cg_entities[clientNum].ghoul2))
ADDRLP4 1208
CNSTI4 1920
ADDRLP4 1096
INDIRI4
MULI4
ASGNI4
ADDRLP4 1208
INDIRI4
ADDRGP4 cg_entities+952
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $395
ADDRLP4 1208
INDIRI4
ADDRGP4 cg_entities+952
ADDP4
INDIRP4
ARGP4
ADDRLP4 1212
ADDRGP4 trap_G2_HaveWeGhoul2Models
CALLI4
ASGNI4
ADDRLP4 1212
INDIRI4
CNSTI4 0
EQI4 $395
line 646
;646:		{
line 647
;647:			trap_G2API_CleanGhoul2Models(&cg_entities[clientNum].ghoul2);
CNSTI4 1920
ADDRLP4 1096
INDIRI4
MULI4
ADDRGP4 cg_entities+952
ADDP4
ARGP4
ADDRGP4 trap_G2API_CleanGhoul2Models
CALLV
pop
line 648
;648:		}
LABELV $395
line 649
;649:		trap_G2API_DuplicateGhoul2Instance(ci->ghoul2Model, &cg_entities[clientNum].ghoul2);
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 1920
ADDRLP4 1096
INDIRI4
MULI4
ADDRGP4 cg_entities+952
ADDP4
ARGP4
ADDRGP4 trap_G2API_DuplicateGhoul2Instance
CALLV
pop
line 650
;650:	}
LABELV $393
line 652
;651:
;652:	ci->newAnims = qfalse;
ADDRFP4 0
INDIRP4
CNSTI4 452
ADDP4
CNSTI4 0
ASGNI4
line 653
;653:	if ( ci->torsoModel ) {
ADDRFP4 0
INDIRP4
CNSTI4 492
ADDP4
INDIRI4
CNSTI4 0
EQI4 $401
line 656
;654:		orientation_t tag;
;655:		// if the torso model has the "tag_flag"
;656:		if ( trap_R_LerpTag( &tag, ci->torsoModel, 0, 0, 1, "tag_flag" ) ) {
ADDRLP4 1208
ARGP4
ADDRFP4 0
INDIRP4
CNSTI4 492
ADDP4
INDIRI4
ARGI4
ADDRLP4 1256
CNSTI4 0
ASGNI4
ADDRLP4 1256
INDIRI4
ARGI4
ADDRLP4 1256
INDIRI4
ARGI4
CNSTF4 1065353216
ARGF4
ADDRGP4 $405
ARGP4
ADDRLP4 1260
ADDRGP4 trap_R_LerpTag
CALLI4
ASGNI4
ADDRLP4 1260
INDIRI4
CNSTI4 0
EQI4 $403
line 657
;657:			ci->newAnims = qtrue;
ADDRFP4 0
INDIRP4
CNSTI4 452
ADDP4
CNSTI4 1
ASGNI4
line 658
;658:		}
LABELV $403
line 659
;659:	}
LABELV $401
line 662
;660:
;661:	// sounds
;662:	dir = ci->modelName;
ADDRLP4 1172
ADDRFP4 0
INDIRP4
CNSTI4 160
ADDP4
ASGNP4
line 663
;663:	fallback = DEFAULT_MALE_SOUNDPATH; //(cgs.gametype >= GT_TEAM) ? DEFAULT_TEAM_MODEL : DEFAULT_MODEL;
ADDRLP4 1180
ADDRGP4 $406
ASGNP4
line 665
;664:
;665:	if ( !ci->skinName || !Q_stricmp( "default", ci->skinName ) )
ADDRLP4 1208
ADDRFP4 0
INDIRP4
CNSTI4 224
ADDP4
ASGNP4
ADDRLP4 1208
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $409
ADDRGP4 $224
ARGP4
ADDRLP4 1208
INDIRP4
ARGP4
ADDRLP4 1212
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 1212
INDIRI4
CNSTI4 0
NEI4 $407
LABELV $409
line 666
;666:	{//try default sounds.cfg first
line 667
;667:		fLen = trap_FS_FOpenFile(va("models/players/%s/sounds.cfg", dir), &f, FS_READ);
ADDRGP4 $410
ARGP4
ADDRLP4 1172
INDIRP4
ARGP4
ADDRLP4 1216
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 1216
INDIRP4
ARGP4
ADDRLP4 1176
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 1220
ADDRGP4 trap_FS_FOpenFile
CALLI4
ASGNI4
ADDRLP4 1184
ADDRLP4 1220
INDIRI4
ASGNI4
line 668
;668:		if ( !f ) 
ADDRLP4 1176
INDIRI4
CNSTI4 0
NEI4 $408
line 669
;669:		{//no?  Look for _default sounds.cfg
line 670
;670:			fLen = trap_FS_FOpenFile(va("models/players/%s/sounds_default.cfg", dir), &f, FS_READ);
ADDRGP4 $413
ARGP4
ADDRLP4 1172
INDIRP4
ARGP4
ADDRLP4 1224
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 1224
INDIRP4
ARGP4
ADDRLP4 1176
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 1228
ADDRGP4 trap_FS_FOpenFile
CALLI4
ASGNI4
ADDRLP4 1184
ADDRLP4 1228
INDIRI4
ASGNI4
line 671
;671:		}
line 672
;672:	}
ADDRGP4 $408
JUMPV
LABELV $407
line 674
;673:	else
;674:	{//use the .skin associated with this skin
line 675
;675:		fLen = trap_FS_FOpenFile(va("models/players/%s/sounds_%s.cfg", dir, ci->skinName), &f, FS_READ);
ADDRGP4 $414
ARGP4
ADDRLP4 1172
INDIRP4
ARGP4
ADDRFP4 0
INDIRP4
CNSTI4 224
ADDP4
ARGP4
ADDRLP4 1216
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 1216
INDIRP4
ARGP4
ADDRLP4 1176
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 1220
ADDRGP4 trap_FS_FOpenFile
CALLI4
ASGNI4
ADDRLP4 1184
ADDRLP4 1220
INDIRI4
ASGNI4
line 676
;676:		if ( !f ) 
ADDRLP4 1176
INDIRI4
CNSTI4 0
NEI4 $415
line 677
;677:		{//fall back to default sounds
line 678
;678:			fLen = trap_FS_FOpenFile(va("models/players/%s/sounds.cfg", dir), &f, FS_READ);
ADDRGP4 $410
ARGP4
ADDRLP4 1172
INDIRP4
ARGP4
ADDRLP4 1224
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 1224
INDIRP4
ARGP4
ADDRLP4 1176
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 1228
ADDRGP4 trap_FS_FOpenFile
CALLI4
ASGNI4
ADDRLP4 1184
ADDRLP4 1228
INDIRI4
ASGNI4
line 679
;679:		}
LABELV $415
line 680
;680:	}
LABELV $408
line 682
;681:
;682:	soundpath[0] = 0;
ADDRLP4 1032
CNSTI1 0
ASGNI1
line 684
;683:
;684:	if (f)
ADDRLP4 1176
INDIRI4
CNSTI4 0
EQI4 $417
line 685
;685:	{
line 686
;686:		i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 688
;687:
;688:		trap_FS_Read(soundpath, fLen, f);
ADDRLP4 1032
ARGP4
ADDRLP4 1184
INDIRI4
ARGI4
ADDRLP4 1176
INDIRI4
ARGI4
ADDRGP4 trap_FS_Read
CALLV
pop
line 690
;689:
;690:		i = fLen;
ADDRLP4 0
ADDRLP4 1184
INDIRI4
ASGNI4
ADDRGP4 $420
JUMPV
LABELV $419
line 693
;691:
;692:		while (i >= 0 && soundpath[i] != '\n')
;693:		{
line 694
;694:			if (soundpath[i] == 'f')
ADDRLP4 0
INDIRI4
ADDRLP4 1032
ADDP4
INDIRI1
CVII4 1
CNSTI4 102
NEI4 $422
line 695
;695:			{
line 696
;696:				isFemale = qtrue;
ADDRLP4 1100
CNSTI4 1
ASGNI4
line 697
;697:			}
LABELV $422
line 699
;698:
;699:			i--;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
SUBI4
ASGNI4
line 700
;700:		}
LABELV $420
line 692
ADDRLP4 0
INDIRI4
CNSTI4 0
LTI4 $424
ADDRLP4 0
INDIRI4
ADDRLP4 1032
ADDP4
INDIRI1
CVII4 1
CNSTI4 10
NEI4 $419
LABELV $424
line 702
;701:
;702:		soundpath[i-1] = '\0';
ADDRLP4 0
INDIRI4
ADDRLP4 1032-1
ADDP4
CNSTI1 0
ASGNI1
line 704
;703:
;704:		trap_FS_FCloseFile(f);
ADDRLP4 1176
INDIRI4
ARGI4
ADDRGP4 trap_FS_FCloseFile
CALLV
pop
line 705
;705:	}
LABELV $417
line 707
;706:
;707:	if (isFemale)
ADDRLP4 1100
INDIRI4
CNSTI4 0
EQI4 $426
line 708
;708:	{
line 709
;709:		ci->gender = GENDER_FEMALE;
ADDRFP4 0
INDIRP4
CNSTI4 480
ADDP4
CNSTI4 1
ASGNI4
line 710
;710:	}
ADDRGP4 $427
JUMPV
LABELV $426
line 712
;711:	else
;712:	{
line 713
;713:		ci->gender = GENDER_MALE;
ADDRFP4 0
INDIRP4
CNSTI4 480
ADDP4
CNSTI4 0
ASGNI4
line 714
;714:	}
LABELV $427
line 716
;715:
;716:	for ( i = 0 ; i < MAX_CUSTOM_SOUNDS ; i++ ) {
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $428
line 717
;717:		s = cg_customSoundNames[i];
ADDRLP4 1028
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 cg_customSoundNames
ADDP4
INDIRP4
ASGNP4
line 718
;718:		if ( !s ) {
ADDRLP4 1028
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $432
line 719
;719:			break;
ADDRGP4 $430
JUMPV
LABELV $432
line 722
;720:		}
;721:
;722:		Com_sprintf(soundName, sizeof(soundName), "%s", s+1);
ADDRLP4 4
ARGP4
CNSTI4 1024
ARGI4
ADDRGP4 $434
ARGP4
ADDRLP4 1028
INDIRP4
CNSTI4 1
ADDP4
ARGP4
ADDRGP4 Com_sprintf
CALLV
pop
line 723
;723:		COM_StripExtension(soundName, soundName);
ADDRLP4 4
ARGP4
ADDRLP4 4
ARGP4
ADDRGP4 COM_StripExtension
CALLV
pop
line 728
;724:		//strip the extension because we might want .mp3's
;725:
;726:		//ci->sounds[i] = 0;
;727:		// if the model didn't load use the sounds of the default model
;728:		if (soundpath[0])
ADDRLP4 1032
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $435
line 729
;729:		{
line 730
;730:			ci->sounds[i] = trap_S_RegisterSound( va("sound/%s/%s", soundpath, soundName) );
ADDRGP4 $437
ARGP4
ADDRLP4 1032
ARGP4
ADDRLP4 4
ARGP4
ADDRLP4 1216
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 1216
INDIRP4
ARGP4
ADDRLP4 1220
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRFP4 0
INDIRP4
CNSTI4 652
ADDP4
ADDP4
ADDRLP4 1220
INDIRI4
ASGNI4
line 732
;731:
;732:			if (!ci->sounds[i])
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRFP4 0
INDIRP4
CNSTI4 652
ADDP4
ADDP4
INDIRI4
CNSTI4 0
NEI4 $436
line 733
;733:			{
line 734
;734:				if (isFemale)
ADDRLP4 1100
INDIRI4
CNSTI4 0
EQI4 $440
line 735
;735:				{
line 736
;736:					ci->sounds[i] = trap_S_RegisterSound( va("sound/%s/%s", DEFAULT_FEMALE_SOUNDPATH, soundName) );
ADDRGP4 $437
ARGP4
ADDRGP4 $442
ARGP4
ADDRLP4 4
ARGP4
ADDRLP4 1224
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 1224
INDIRP4
ARGP4
ADDRLP4 1228
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRFP4 0
INDIRP4
CNSTI4 652
ADDP4
ADDP4
ADDRLP4 1228
INDIRI4
ASGNI4
line 737
;737:				}
ADDRGP4 $436
JUMPV
LABELV $440
line 739
;738:				else
;739:				{
line 740
;740:					ci->sounds[i] = trap_S_RegisterSound( va("sound/%s/%s", DEFAULT_MALE_SOUNDPATH, soundName) );
ADDRGP4 $437
ARGP4
ADDRGP4 $406
ARGP4
ADDRLP4 4
ARGP4
ADDRLP4 1224
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 1224
INDIRP4
ARGP4
ADDRLP4 1228
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRFP4 0
INDIRP4
CNSTI4 652
ADDP4
ADDP4
ADDRLP4 1228
INDIRI4
ASGNI4
line 741
;741:				}
line 742
;742:			}
line 743
;743:		}
ADDRGP4 $436
JUMPV
LABELV $435
line 745
;744:		else
;745:		{
line 746
;746:			if (modelloaded)
ADDRLP4 1104
INDIRI4
CNSTI4 0
EQI4 $443
line 747
;747:			{
line 748
;748:				ci->sounds[i] = trap_S_RegisterSound( va("sound/chars/%s/misc/%s", dir, soundName) );
ADDRGP4 $445
ARGP4
ADDRLP4 1172
INDIRP4
ARGP4
ADDRLP4 4
ARGP4
ADDRLP4 1216
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 1216
INDIRP4
ARGP4
ADDRLP4 1220
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRFP4 0
INDIRP4
CNSTI4 652
ADDP4
ADDP4
ADDRLP4 1220
INDIRI4
ASGNI4
line 749
;749:			}
LABELV $443
line 751
;750:
;751:			if ( !ci->sounds[i] )
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRFP4 0
INDIRP4
CNSTI4 652
ADDP4
ADDP4
INDIRI4
CNSTI4 0
NEI4 $446
line 752
;752:			{
line 753
;753:				ci->sounds[i] = trap_S_RegisterSound( va("sound/%s/%s", fallback, soundName) );
ADDRGP4 $437
ARGP4
ADDRLP4 1180
INDIRP4
ARGP4
ADDRLP4 4
ARGP4
ADDRLP4 1216
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 1216
INDIRP4
ARGP4
ADDRLP4 1220
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRFP4 0
INDIRP4
CNSTI4 652
ADDP4
ADDP4
ADDRLP4 1220
INDIRI4
ASGNI4
line 754
;754:			}
LABELV $446
line 755
;755:		}
LABELV $436
line 756
;756:	}
LABELV $429
line 716
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 32
LTI4 $428
LABELV $430
line 758
;757:
;758:	ci->deferred = qfalse;
ADDRFP4 0
INDIRP4
CNSTI4 448
ADDP4
CNSTI4 0
ASGNI4
line 762
;759:
;760:	// reset any existing players and bodies, because they might be in bad
;761:	// frames for this new model
;762:	clientNum = ci - cgs.clientinfo;
ADDRLP4 1096
ADDRFP4 0
INDIRP4
CVPU4 4
ADDRGP4 cgs+43024
CVPU4 4
SUBU4
CVUI4 4
CNSTI4 812
DIVI4
ASGNI4
line 763
;763:	for ( i = 0 ; i < MAX_GENTITIES ; i++ ) {
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $449
line 764
;764:		if ( cg_entities[i].currentState.clientNum == clientNum
ADDRLP4 1216
CNSTI4 1920
ADDRLP4 0
INDIRI4
MULI4
ASGNI4
ADDRLP4 1216
INDIRI4
ADDRGP4 cg_entities+220
ADDP4
INDIRI4
ADDRLP4 1096
INDIRI4
NEI4 $453
ADDRLP4 1216
INDIRI4
ADDRGP4 cg_entities+4
ADDP4
INDIRI4
CNSTI4 1
NEI4 $453
line 765
;765:			&& cg_entities[i].currentState.eType == ET_PLAYER ) {
line 766
;766:			CG_ResetPlayerEntity( &cg_entities[i] );
CNSTI4 1920
ADDRLP4 0
INDIRI4
MULI4
ADDRGP4 cg_entities
ADDP4
ARGP4
ADDRGP4 CG_ResetPlayerEntity
CALLV
pop
line 767
;767:		}
LABELV $453
line 768
;768:	}
LABELV $450
line 763
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 1024
LTI4 $449
line 769
;769:}
LABELV $363
endproc CG_LoadClientInfo 1264 24
proc CG_CopyClientInfoModel 76 12
line 779
;770:
;771:
;772:
;773:
;774:/*
;775:======================
;776:CG_CopyClientInfoModel
;777:======================
;778:*/
;779:static void CG_CopyClientInfoModel( clientInfo_t *from, clientInfo_t *to ) {
line 780
;780:	VectorCopy( from->headOffset, to->headOffset );
ADDRLP4 0
CNSTI4 464
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
INDIRB
ASGNB 12
line 781
;781:	to->footsteps = from->footsteps;
ADDRLP4 4
CNSTI4 476
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 782
;782:	to->gender = from->gender;
ADDRLP4 8
CNSTI4 480
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 784
;783:
;784:	to->legsModel = from->legsModel;
ADDRLP4 12
CNSTI4 484
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 785
;785:	to->legsSkin = from->legsSkin;
ADDRLP4 16
CNSTI4 488
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 16
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 16
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 786
;786:	to->torsoModel = from->torsoModel;
ADDRLP4 20
CNSTI4 492
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 787
;787:	to->torsoSkin = from->torsoSkin;
ADDRLP4 24
CNSTI4 496
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 24
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 24
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 790
;788:	//to->headModel = from->headModel;
;789:	//to->headSkin = from->headSkin;
;790:	to->modelIcon = from->modelIcon;
ADDRLP4 28
CNSTI4 508
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 28
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 28
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 792
;791:
;792:	to->newAnims = from->newAnims;
ADDRLP4 32
CNSTI4 452
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 796
;793:
;794:	//to->ghoul2Model = from->ghoul2Model;
;795:	//rww - Trying to use the same ghoul2 pointer for two seperate clients == DISASTER
;796:	if (to->ghoul2Model && trap_G2_HaveWeGhoul2Models(to->ghoul2Model))
ADDRLP4 36
ADDRFP4 4
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ASGNP4
ADDRLP4 36
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $458
ADDRLP4 36
INDIRP4
ARGP4
ADDRLP4 40
ADDRGP4 trap_G2_HaveWeGhoul2Models
CALLI4
ASGNI4
ADDRLP4 40
INDIRI4
CNSTI4 0
EQI4 $458
line 797
;797:	{
line 798
;798:		trap_G2API_CleanGhoul2Models(&to->ghoul2Model);
ADDRFP4 4
INDIRP4
CNSTI4 504
ADDP4
ARGP4
ADDRGP4 trap_G2API_CleanGhoul2Models
CALLV
pop
line 799
;799:	}
LABELV $458
line 800
;800:	if (from->ghoul2Model && trap_G2_HaveWeGhoul2Models(from->ghoul2Model))
ADDRLP4 44
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ASGNP4
ADDRLP4 44
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $460
ADDRLP4 44
INDIRP4
ARGP4
ADDRLP4 48
ADDRGP4 trap_G2_HaveWeGhoul2Models
CALLI4
ASGNI4
ADDRLP4 48
INDIRI4
CNSTI4 0
EQI4 $460
line 801
;801:	{
line 802
;802:		trap_G2API_DuplicateGhoul2Instance(from->ghoul2Model, &to->ghoul2Model);
ADDRLP4 52
CNSTI4 504
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 52
INDIRI4
ADDP4
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ADDRLP4 52
INDIRI4
ADDP4
ARGP4
ADDRGP4 trap_G2API_DuplicateGhoul2Instance
CALLV
pop
line 803
;803:	}
LABELV $460
line 805
;804:
;805:	to->bolt_head = from->bolt_head;
ADDRLP4 52
CNSTI4 520
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 52
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 52
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 806
;806:	to->bolt_lhand = from->bolt_lhand;
ADDRLP4 56
CNSTI4 516
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 56
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 56
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 807
;807:	to->bolt_rhand = from->bolt_rhand;
ADDRLP4 60
CNSTI4 512
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 60
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 60
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 808
;808:	to->bolt_motion = from->bolt_motion;
ADDRLP4 64
CNSTI4 524
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 64
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 64
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 809
;809:	to->bolt_llumbar = from->bolt_llumbar;
ADDRLP4 68
CNSTI4 528
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 68
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 68
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 813
;810:
;811://	to->ATST = from->ATST;
;812:
;813:	memcpy( to->sounds, from->sounds, sizeof( to->sounds ) );
ADDRLP4 72
CNSTI4 652
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 72
INDIRI4
ADDP4
ARGP4
ADDRFP4 0
INDIRP4
ADDRLP4 72
INDIRI4
ADDP4
ARGP4
CNSTI4 128
ARGI4
ADDRGP4 memcpy
CALLP4
pop
line 814
;814:}
LABELV $457
endproc CG_CopyClientInfoModel 76 12
proc CG_ScanForExistingClientInfo 128 12
line 821
;815:
;816:/*
;817:======================
;818:CG_ScanForExistingClientInfo
;819:======================
;820:*/
;821:static qboolean CG_ScanForExistingClientInfo( clientInfo_t *ci, int clientNum ) {
line 825
;822:	int		i;
;823:	clientInfo_t	*match;
;824:
;825:	for ( i = 0 ; i < cgs.maxclients ; i++ ) {
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRGP4 $466
JUMPV
LABELV $463
line 826
;826:		match = &cgs.clientinfo[ i ];
ADDRLP4 0
CNSTI4 812
ADDRLP4 4
INDIRI4
MULI4
ADDRGP4 cgs+43024
ADDP4
ASGNP4
line 827
;827:		if ( !match->infoValid ) {
ADDRLP4 0
INDIRP4
INDIRI4
CNSTI4 0
NEI4 $469
line 828
;828:			continue;
ADDRGP4 $464
JUMPV
LABELV $469
line 830
;829:		}
;830:		if ( match->deferred ) {
ADDRLP4 0
INDIRP4
CNSTI4 448
ADDP4
INDIRI4
CNSTI4 0
EQI4 $471
line 831
;831:			continue;
ADDRGP4 $464
JUMPV
LABELV $471
line 833
;832:		}
;833:		if ( !Q_stricmp( ci->modelName, match->modelName )
ADDRLP4 8
CNSTI4 160
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
ARGP4
ADDRLP4 0
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
ARGP4
ADDRLP4 12
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 12
INDIRI4
CNSTI4 0
NEI4 $473
ADDRLP4 16
CNSTI4 224
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 16
INDIRI4
ADDP4
ARGP4
ADDRLP4 0
INDIRP4
ADDRLP4 16
INDIRI4
ADDP4
ARGP4
ADDRLP4 20
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 20
INDIRI4
CNSTI4 0
NEI4 $473
ADDRLP4 24
CNSTI4 384
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 24
INDIRI4
ADDP4
ARGP4
ADDRLP4 0
INDIRP4
ADDRLP4 24
INDIRI4
ADDP4
ARGP4
ADDRLP4 28
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 28
INDIRI4
CNSTI4 0
NEI4 $473
ADDRLP4 32
CNSTI4 352
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
ARGP4
ADDRLP4 0
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
ARGP4
ADDRLP4 36
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 36
INDIRI4
CNSTI4 0
NEI4 $473
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 5
LTI4 $476
ADDRLP4 40
CNSTI4 68
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 40
INDIRI4
ADDP4
INDIRI4
ADDRLP4 0
INDIRP4
ADDRLP4 40
INDIRI4
ADDP4
INDIRI4
NEI4 $473
LABELV $476
ADDRLP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $473
ADDRLP4 0
INDIRP4
CNSTI4 520
ADDP4
INDIRI4
CNSTI4 0
EQI4 $473
line 842
;834:			&& !Q_stricmp( ci->skinName, match->skinName )
;835://			&& !Q_stricmp( ci->headModelName, match->headModelName )
;836://			&& !Q_stricmp( ci->headSkinName, match->headSkinName ) 
;837:			&& !Q_stricmp( ci->blueTeam, match->blueTeam ) 
;838:			&& !Q_stricmp( ci->redTeam, match->redTeam )
;839:			&& (cgs.gametype < GT_TEAM || ci->team == match->team) 
;840:			&& match->ghoul2Model
;841:			&& match->bolt_head) //if the bolts haven't been initialized, this "match" is useless to us
;842:		{
line 845
;843:			// this clientinfo is identical, so use it's handles
;844:
;845:			ci->deferred = qfalse;
ADDRFP4 0
INDIRP4
CNSTI4 448
ADDP4
CNSTI4 0
ASGNI4
line 851
;846:
;847:			//rww - Filthy hack. If this is actually the info already belonging to us, just reassign the pointer.
;848:			//Switching instances when not necessary produces small animation glitches.
;849:			//Actually, before, were we even freeing the instance attached to the old clientinfo before copying
;850:			//this new clientinfo over it? Could be a nasty leak possibility. (though this should remedy it in theory)
;851:			if (clientNum == i)
ADDRFP4 4
INDIRI4
ADDRLP4 4
INDIRI4
NEI4 $477
line 852
;852:			{
line 853
;853:				if (match->ghoul2Model && trap_G2_HaveWeGhoul2Models(match->ghoul2Model))
ADDRLP4 48
ADDRLP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ASGNP4
ADDRLP4 48
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $478
ADDRLP4 48
INDIRP4
ARGP4
ADDRLP4 52
ADDRGP4 trap_G2_HaveWeGhoul2Models
CALLI4
ASGNI4
ADDRLP4 52
INDIRI4
CNSTI4 0
EQI4 $478
line 854
;854:				{ //The match has a valid instance (if it didn't, we'd probably already be fudged (^_^) at this state)
line 855
;855:					if (ci->ghoul2Model && trap_G2_HaveWeGhoul2Models(ci->ghoul2Model))
ADDRLP4 56
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ASGNP4
ADDRLP4 56
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $481
ADDRLP4 56
INDIRP4
ARGP4
ADDRLP4 60
ADDRGP4 trap_G2_HaveWeGhoul2Models
CALLI4
ASGNI4
ADDRLP4 60
INDIRI4
CNSTI4 0
EQI4 $481
line 856
;856:					{ //First kill the copy we have if we have one. (but it should be null)
line 857
;857:						trap_G2API_CleanGhoul2Models(&ci->ghoul2Model);
ADDRFP4 0
INDIRP4
CNSTI4 504
ADDP4
ARGP4
ADDRGP4 trap_G2API_CleanGhoul2Models
CALLV
pop
line 858
;858:					}
LABELV $481
line 860
;859:
;860:					VectorCopy( match->headOffset, ci->headOffset );
ADDRLP4 64
CNSTI4 464
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 64
INDIRI4
ADDP4
ADDRLP4 0
INDIRP4
ADDRLP4 64
INDIRI4
ADDP4
INDIRB
ASGNB 12
line 861
;861:					ci->footsteps = match->footsteps;
ADDRLP4 68
CNSTI4 476
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 68
INDIRI4
ADDP4
ADDRLP4 0
INDIRP4
ADDRLP4 68
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 862
;862:					ci->gender = match->gender;
ADDRLP4 72
CNSTI4 480
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 72
INDIRI4
ADDP4
ADDRLP4 0
INDIRP4
ADDRLP4 72
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 864
;863:
;864:					ci->legsModel = match->legsModel;
ADDRLP4 76
CNSTI4 484
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 76
INDIRI4
ADDP4
ADDRLP4 0
INDIRP4
ADDRLP4 76
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 865
;865:					ci->legsSkin = match->legsSkin;
ADDRLP4 80
CNSTI4 488
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 80
INDIRI4
ADDP4
ADDRLP4 0
INDIRP4
ADDRLP4 80
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 866
;866:					ci->torsoModel = match->torsoModel;
ADDRLP4 84
CNSTI4 492
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 84
INDIRI4
ADDP4
ADDRLP4 0
INDIRP4
ADDRLP4 84
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 867
;867:					ci->torsoSkin = match->torsoSkin;
ADDRLP4 88
CNSTI4 496
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 88
INDIRI4
ADDP4
ADDRLP4 0
INDIRP4
ADDRLP4 88
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 868
;868:					ci->modelIcon = match->modelIcon;
ADDRLP4 92
CNSTI4 508
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 92
INDIRI4
ADDP4
ADDRLP4 0
INDIRP4
ADDRLP4 92
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 870
;869:
;870:					ci->newAnims = match->newAnims;
ADDRLP4 96
CNSTI4 452
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 96
INDIRI4
ADDP4
ADDRLP4 0
INDIRP4
ADDRLP4 96
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 872
;871:
;872:					ci->bolt_head = match->bolt_head;
ADDRLP4 100
CNSTI4 520
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 100
INDIRI4
ADDP4
ADDRLP4 0
INDIRP4
ADDRLP4 100
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 873
;873:					ci->bolt_lhand = match->bolt_lhand;
ADDRLP4 104
CNSTI4 516
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 104
INDIRI4
ADDP4
ADDRLP4 0
INDIRP4
ADDRLP4 104
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 874
;874:					ci->bolt_rhand = match->bolt_rhand;
ADDRLP4 108
CNSTI4 512
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 108
INDIRI4
ADDP4
ADDRLP4 0
INDIRP4
ADDRLP4 108
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 875
;875:					ci->bolt_motion = match->bolt_motion;
ADDRLP4 112
CNSTI4 524
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 112
INDIRI4
ADDP4
ADDRLP4 0
INDIRP4
ADDRLP4 112
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 876
;876:					ci->bolt_llumbar = match->bolt_llumbar;
ADDRLP4 116
CNSTI4 528
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 116
INDIRI4
ADDP4
ADDRLP4 0
INDIRP4
ADDRLP4 116
INDIRI4
ADDP4
INDIRI4
ASGNI4
line 878
;877:
;878:					memcpy( ci->sounds, match->sounds, sizeof( ci->sounds ) );
ADDRLP4 120
CNSTI4 652
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 120
INDIRI4
ADDP4
ARGP4
ADDRLP4 0
INDIRP4
ADDRLP4 120
INDIRI4
ADDP4
ARGP4
CNSTI4 128
ARGI4
ADDRGP4 memcpy
CALLP4
pop
line 883
;879:
;880:					//We can share this pointer, because it already belongs to this client.
;881:					//The pointer itself and the ghoul2 instance is never actually changed, just passed between
;882:					//clientinfo structures.
;883:					ci->ghoul2Model = match->ghoul2Model;
ADDRLP4 124
CNSTI4 504
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 124
INDIRI4
ADDP4
ADDRLP4 0
INDIRP4
ADDRLP4 124
INDIRI4
ADDP4
INDIRP4
ASGNP4
line 884
;884:				}
line 885
;885:			}
ADDRGP4 $478
JUMPV
LABELV $477
line 887
;886:			else
;887:			{
line 888
;888:				CG_CopyClientInfoModel( match, ci );
ADDRLP4 0
INDIRP4
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CG_CopyClientInfoModel
CALLV
pop
line 889
;889:			}
LABELV $478
line 891
;890:
;891:			return qtrue;
CNSTI4 1
RETI4
ADDRGP4 $462
JUMPV
LABELV $473
line 893
;892:		}
;893:	}
LABELV $464
line 825
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $466
ADDRLP4 4
INDIRI4
ADDRGP4 cgs+32988
INDIRI4
LTI4 $463
line 896
;894:
;895:	// nothing matches, so defer the load
;896:	return qfalse;
CNSTI4 0
RETI4
LABELV $462
endproc CG_ScanForExistingClientInfo 128 12
proc CG_SetDeferredClientInfo 36 8
line 907
;897:}
;898:
;899:/*
;900:======================
;901:CG_SetDeferredClientInfo
;902:
;903:We aren't going to load it now, so grab some other
;904:client's info to use until we have some spare time.
;905:======================
;906:*/
;907:static void CG_SetDeferredClientInfo( clientInfo_t *ci ) {
line 913
;908:	int		i;
;909:	clientInfo_t	*match;
;910:
;911:	// if someone else is already the same models and skins we
;912:	// can just load the client info
;913:	for ( i = 0 ; i < cgs.maxclients ; i++ ) {
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRGP4 $487
JUMPV
LABELV $484
line 914
;914:		match = &cgs.clientinfo[ i ];
ADDRLP4 0
CNSTI4 812
ADDRLP4 4
INDIRI4
MULI4
ADDRGP4 cgs+43024
ADDP4
ASGNP4
line 915
;915:		if ( !match->infoValid || match->deferred ) {
ADDRLP4 12
CNSTI4 0
ASGNI4
ADDRLP4 0
INDIRP4
INDIRI4
ADDRLP4 12
INDIRI4
EQI4 $492
ADDRLP4 0
INDIRP4
CNSTI4 448
ADDP4
INDIRI4
ADDRLP4 12
INDIRI4
EQI4 $490
LABELV $492
line 916
;916:			continue;
ADDRGP4 $485
JUMPV
LABELV $490
line 918
;917:		}
;918:		if ( Q_stricmp( ci->skinName, match->skinName ) ||
ADDRLP4 16
CNSTI4 224
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 16
INDIRI4
ADDP4
ARGP4
ADDRLP4 0
INDIRP4
ADDRLP4 16
INDIRI4
ADDP4
ARGP4
ADDRLP4 20
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 20
INDIRI4
CNSTI4 0
NEI4 $497
ADDRLP4 24
CNSTI4 160
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 24
INDIRI4
ADDP4
ARGP4
ADDRLP4 0
INDIRP4
ADDRLP4 24
INDIRI4
ADDP4
ARGP4
ADDRLP4 28
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 28
INDIRI4
CNSTI4 0
NEI4 $497
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 5
LTI4 $493
ADDRLP4 32
CNSTI4 68
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
INDIRI4
ADDRLP4 0
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
INDIRI4
EQI4 $493
LABELV $497
line 922
;919:			 Q_stricmp( ci->modelName, match->modelName ) ||
;920://			 Q_stricmp( ci->headModelName, match->headModelName ) ||
;921://			 Q_stricmp( ci->headSkinName, match->headSkinName ) ||
;922:			 (cgs.gametype >= GT_TEAM && ci->team != match->team) ) {
line 923
;923:			continue;
ADDRGP4 $485
JUMPV
LABELV $493
line 926
;924:		}
;925:		// just load the real info cause it uses the same models and skins
;926:		CG_LoadClientInfo( ci );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CG_LoadClientInfo
CALLV
pop
line 927
;927:		return;
ADDRGP4 $483
JUMPV
LABELV $485
line 913
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $487
ADDRLP4 4
INDIRI4
ADDRGP4 cgs+32988
INDIRI4
LTI4 $484
line 931
;928:	}
;929:
;930:	// if we are in teamplay, only grab a model if the skin is correct
;931:	if ( cgs.gametype >= GT_TEAM ) {
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 5
LTI4 $498
line 932
;932:		for ( i = 0 ; i < cgs.maxclients ; i++ ) {
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRGP4 $504
JUMPV
LABELV $501
line 933
;933:			match = &cgs.clientinfo[ i ];
ADDRLP4 0
CNSTI4 812
ADDRLP4 4
INDIRI4
MULI4
ADDRGP4 cgs+43024
ADDP4
ASGNP4
line 934
;934:			if ( !match->infoValid || match->deferred ) {
ADDRLP4 12
CNSTI4 0
ASGNI4
ADDRLP4 0
INDIRP4
INDIRI4
ADDRLP4 12
INDIRI4
EQI4 $509
ADDRLP4 0
INDIRP4
CNSTI4 448
ADDP4
INDIRI4
ADDRLP4 12
INDIRI4
EQI4 $507
LABELV $509
line 935
;935:				continue;
ADDRGP4 $502
JUMPV
LABELV $507
line 937
;936:			}
;937:			if ( Q_stricmp( ci->skinName, match->skinName ) ||
ADDRLP4 16
CNSTI4 224
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 16
INDIRI4
ADDP4
ARGP4
ADDRLP4 0
INDIRP4
ADDRLP4 16
INDIRI4
ADDP4
ARGP4
ADDRLP4 20
ADDRGP4 Q_stricmp
CALLI4
ASGNI4
ADDRLP4 20
INDIRI4
CNSTI4 0
NEI4 $513
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 5
LTI4 $510
ADDRLP4 24
CNSTI4 68
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 24
INDIRI4
ADDP4
INDIRI4
ADDRLP4 0
INDIRP4
ADDRLP4 24
INDIRI4
ADDP4
INDIRI4
EQI4 $510
LABELV $513
line 938
;938:				(cgs.gametype >= GT_TEAM && ci->team != match->team) ) {
line 939
;939:				continue;
ADDRGP4 $502
JUMPV
LABELV $510
line 941
;940:			}
;941:			ci->deferred = qtrue;
ADDRFP4 0
INDIRP4
CNSTI4 448
ADDP4
CNSTI4 1
ASGNI4
line 942
;942:			CG_CopyClientInfoModel( match, ci );
ADDRLP4 0
INDIRP4
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CG_CopyClientInfoModel
CALLV
pop
line 943
;943:			return;
ADDRGP4 $483
JUMPV
LABELV $502
line 932
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $504
ADDRLP4 4
INDIRI4
ADDRGP4 cgs+32988
INDIRI4
LTI4 $501
line 949
;944:		}
;945:		// load the full model, because we don't ever want to show
;946:		// an improper team skin.  This will cause a hitch for the first
;947:		// player, when the second enters.  Combat shouldn't be going on
;948:		// yet, so it shouldn't matter
;949:		CG_LoadClientInfo( ci );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CG_LoadClientInfo
CALLV
pop
line 950
;950:		return;
ADDRGP4 $483
JUMPV
LABELV $498
line 954
;951:	}
;952:
;953:	// find the first valid clientinfo and grab its stuff
;954:	for ( i = 0 ; i < cgs.maxclients ; i++ ) {
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRGP4 $517
JUMPV
LABELV $514
line 955
;955:		match = &cgs.clientinfo[ i ];
ADDRLP4 0
CNSTI4 812
ADDRLP4 4
INDIRI4
MULI4
ADDRGP4 cgs+43024
ADDP4
ASGNP4
line 956
;956:		if ( !match->infoValid ) {
ADDRLP4 0
INDIRP4
INDIRI4
CNSTI4 0
NEI4 $520
line 957
;957:			continue;
ADDRGP4 $515
JUMPV
LABELV $520
line 960
;958:		}
;959:
;960:		ci->deferred = qtrue;
ADDRFP4 0
INDIRP4
CNSTI4 448
ADDP4
CNSTI4 1
ASGNI4
line 961
;961:		CG_CopyClientInfoModel( match, ci );
ADDRLP4 0
INDIRP4
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CG_CopyClientInfoModel
CALLV
pop
line 962
;962:		return;
ADDRGP4 $483
JUMPV
LABELV $515
line 954
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $517
ADDRLP4 4
INDIRI4
ADDRGP4 cgs+32988
INDIRI4
LTI4 $514
line 966
;963:	}
;964:
;965:	// we should never get here...
;966:	CG_Printf( "CG_SetDeferredClientInfo: no valid clients!\n" );
ADDRGP4 $522
ARGP4
ADDRGP4 CG_Printf
CALLV
pop
line 968
;967:
;968:	CG_LoadClientInfo( ci );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CG_LoadClientInfo
CALLV
pop
line 969
;969:}
LABELV $483
endproc CG_SetDeferredClientInfo 36 8
export CG_NewClientInfo
proc CG_NewClientInfo 1004 40
line 976
;970:
;971:/*
;972:======================
;973:CG_NewClientInfo
;974:======================
;975:*/
;976:void CG_NewClientInfo( int clientNum, qboolean entitiesInitialized ) {
line 983
;977:	clientInfo_t *ci;
;978:	clientInfo_t newInfo;
;979:	const char	*configstring;
;980:	const char	*v;
;981:	char		*slash;
;982:	void *oldGhoul2;
;983:	int i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 984
;984:	qboolean wasATST = qfalse;
ADDRLP4 828
CNSTI4 0
ASGNI4
line 986
;985:
;986:	ci = &cgs.clientinfo[clientNum];
ADDRLP4 824
CNSTI4 812
ADDRFP4 0
INDIRI4
MULI4
ADDRGP4 cgs+43024
ADDP4
ASGNP4
line 988
;987:
;988:	oldGhoul2 = ci->ghoul2Model;
ADDRLP4 836
ADDRLP4 824
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ASGNP4
line 990
;989:
;990:	configstring = CG_ConfigString( clientNum + CS_PLAYERS );
ADDRFP4 0
INDIRI4
CNSTI4 544
ADDI4
ARGI4
ADDRLP4 840
ADDRGP4 CG_ConfigString
CALLP4
ASGNP4
ADDRLP4 820
ADDRLP4 840
INDIRP4
ASGNP4
line 991
;991:	if ( !configstring[0] ) {
ADDRLP4 820
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
NEI4 $525
line 992
;992:		memset( ci, 0, sizeof( *ci ) );
ADDRLP4 824
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 812
ARGI4
ADDRGP4 memset
CALLP4
pop
line 993
;993:		return;		// player just left
ADDRGP4 $523
JUMPV
LABELV $525
line 996
;994:	}
;995:
;996:	if (ci)
ADDRLP4 824
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $527
line 997
;997:	{
line 998
;998:		wasATST = ci->ATST;
ADDRLP4 828
ADDRLP4 824
INDIRP4
CNSTI4 500
ADDP4
INDIRI4
ASGNI4
line 999
;999:	}
LABELV $527
line 1003
;1000:
;1001:	// build into a temp buffer so the defer checks can use
;1002:	// the old value
;1003:	memset( &newInfo, 0, sizeof( newInfo ) );
ADDRLP4 4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 812
ARGI4
ADDRGP4 memset
CALLP4
pop
line 1006
;1004:
;1005:	// isolate the player's name
;1006:	v = Info_ValueForKey(configstring, "n");
ADDRLP4 820
INDIRP4
ARGP4
ADDRGP4 $529
ARGP4
ADDRLP4 844
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 816
ADDRLP4 844
INDIRP4
ASGNP4
line 1007
;1007:	Q_strncpyz( newInfo.name, v, sizeof( newInfo.name ) );
ADDRLP4 4+4
ARGP4
ADDRLP4 816
INDIRP4
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 1010
;1008:
;1009:	// colors
;1010:	v = Info_ValueForKey( configstring, "c1" );
ADDRLP4 820
INDIRP4
ARGP4
ADDRGP4 $532
ARGP4
ADDRLP4 848
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 816
ADDRLP4 848
INDIRP4
ASGNP4
line 1011
;1011:	CG_ColorFromString( v, newInfo.color1 );
ADDRLP4 816
INDIRP4
ARGP4
ADDRLP4 4+80
ARGP4
ADDRGP4 CG_ColorFromString
CALLV
pop
line 1013
;1012:
;1013:	newInfo.icolor1 = atoi(v);
ADDRLP4 816
INDIRP4
ARGP4
ADDRLP4 852
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 4+104
ADDRLP4 852
INDIRI4
ASGNI4
line 1015
;1014:
;1015:	v = Info_ValueForKey( configstring, "c2" );
ADDRLP4 820
INDIRP4
ARGP4
ADDRGP4 $535
ARGP4
ADDRLP4 856
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 816
ADDRLP4 856
INDIRP4
ASGNP4
line 1016
;1016:	CG_ColorFromString( v, newInfo.color2 );
ADDRLP4 816
INDIRP4
ARGP4
ADDRLP4 4+92
ARGP4
ADDRGP4 CG_ColorFromString
CALLV
pop
line 1019
;1017:
;1018:	// bot skill
;1019:	v = Info_ValueForKey( configstring, "skill" );
ADDRLP4 820
INDIRP4
ARGP4
ADDRGP4 $537
ARGP4
ADDRLP4 860
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 816
ADDRLP4 860
INDIRP4
ASGNP4
line 1020
;1020:	newInfo.botSkill = atoi( v );
ADDRLP4 816
INDIRP4
ARGP4
ADDRLP4 864
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 4+72
ADDRLP4 864
INDIRI4
ASGNI4
line 1023
;1021:
;1022:	// handicap
;1023:	v = Info_ValueForKey( configstring, "hc" );
ADDRLP4 820
INDIRP4
ARGP4
ADDRGP4 $539
ARGP4
ADDRLP4 868
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 816
ADDRLP4 868
INDIRP4
ASGNP4
line 1024
;1024:	newInfo.handicap = atoi( v );
ADDRLP4 816
INDIRP4
ARGP4
ADDRLP4 872
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 4+128
ADDRLP4 872
INDIRI4
ASGNI4
line 1027
;1025:
;1026:	// wins
;1027:	v = Info_ValueForKey( configstring, "w" );
ADDRLP4 820
INDIRP4
ARGP4
ADDRGP4 $541
ARGP4
ADDRLP4 876
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 816
ADDRLP4 876
INDIRP4
ASGNP4
line 1028
;1028:	newInfo.wins = atoi( v );
ADDRLP4 816
INDIRP4
ARGP4
ADDRLP4 880
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 4+132
ADDRLP4 880
INDIRI4
ASGNI4
line 1031
;1029:
;1030:	// losses
;1031:	v = Info_ValueForKey( configstring, "l" );
ADDRLP4 820
INDIRP4
ARGP4
ADDRGP4 $543
ARGP4
ADDRLP4 884
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 816
ADDRLP4 884
INDIRP4
ASGNP4
line 1032
;1032:	newInfo.losses = atoi( v );
ADDRLP4 816
INDIRP4
ARGP4
ADDRLP4 888
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 4+136
ADDRLP4 888
INDIRI4
ASGNI4
line 1035
;1033:
;1034:	// team
;1035:	v = Info_ValueForKey( configstring, "t" );
ADDRLP4 820
INDIRP4
ARGP4
ADDRGP4 $545
ARGP4
ADDRLP4 892
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 816
ADDRLP4 892
INDIRP4
ASGNP4
line 1036
;1036:	newInfo.team = atoi( v );
ADDRLP4 816
INDIRP4
ARGP4
ADDRLP4 896
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 4+68
ADDRLP4 896
INDIRI4
ASGNI4
line 1039
;1037:
;1038:	// team task
;1039:	v = Info_ValueForKey( configstring, "tt" );
ADDRLP4 820
INDIRP4
ARGP4
ADDRGP4 $547
ARGP4
ADDRLP4 900
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 816
ADDRLP4 900
INDIRP4
ASGNP4
line 1040
;1040:	newInfo.teamTask = atoi(v);
ADDRLP4 816
INDIRP4
ARGP4
ADDRLP4 904
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 4+140
ADDRLP4 904
INDIRI4
ASGNI4
line 1043
;1041:
;1042:	// team leader
;1043:	v = Info_ValueForKey( configstring, "tl" );
ADDRLP4 820
INDIRP4
ARGP4
ADDRGP4 $549
ARGP4
ADDRLP4 908
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 816
ADDRLP4 908
INDIRP4
ASGNP4
line 1044
;1044:	newInfo.teamLeader = atoi(v);
ADDRLP4 816
INDIRP4
ARGP4
ADDRLP4 912
ADDRGP4 atoi
CALLI4
ASGNI4
ADDRLP4 4+144
ADDRLP4 912
INDIRI4
ASGNI4
line 1046
;1045:
;1046:	v = Info_ValueForKey( configstring, "g_redteam" );
ADDRLP4 820
INDIRP4
ARGP4
ADDRGP4 $551
ARGP4
ADDRLP4 916
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 816
ADDRLP4 916
INDIRP4
ASGNP4
line 1047
;1047:	Q_strncpyz(newInfo.redTeam, v, MAX_TEAMNAME);
ADDRLP4 4+352
ARGP4
ADDRLP4 816
INDIRP4
ARGP4
CNSTI4 32
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 1049
;1048:
;1049:	v = Info_ValueForKey( configstring, "g_blueteam" );
ADDRLP4 820
INDIRP4
ARGP4
ADDRGP4 $553
ARGP4
ADDRLP4 920
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 816
ADDRLP4 920
INDIRP4
ASGNP4
line 1050
;1050:	Q_strncpyz(newInfo.blueTeam, v, MAX_TEAMNAME);
ADDRLP4 4+384
ARGP4
ADDRLP4 816
INDIRP4
ARGP4
CNSTI4 32
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 1053
;1051:
;1052:	// model
;1053:	v = Info_ValueForKey( configstring, "model" );
ADDRLP4 820
INDIRP4
ARGP4
ADDRGP4 $555
ARGP4
ADDRLP4 924
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 816
ADDRLP4 924
INDIRP4
ASGNP4
line 1054
;1054:	if ( cg_forceModel.integer ) {
ADDRGP4 cg_forceModel+12
INDIRI4
CNSTI4 0
EQI4 $556
line 1060
;1055:		// forcemodel makes everyone use a single model
;1056:		// to prevent load hitches
;1057:		char modelStr[MAX_QPATH];
;1058:		char *skin;
;1059:
;1060:		if( cgs.gametype >= GT_TEAM ) {
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 5
LTI4 $559
line 1061
;1061:			Q_strncpyz( newInfo.modelName, DEFAULT_TEAM_MODEL, sizeof( newInfo.modelName ) );
ADDRLP4 4+160
ARGP4
ADDRGP4 $171
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 1062
;1062:			Q_strncpyz( newInfo.skinName, "default", sizeof( newInfo.skinName ) );
ADDRLP4 4+224
ARGP4
ADDRGP4 $224
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 1063
;1063:		} else {
ADDRGP4 $560
JUMPV
LABELV $559
line 1064
;1064:			trap_Cvar_VariableStringBuffer( "model", modelStr, sizeof( modelStr ) );
ADDRGP4 $555
ARGP4
ADDRLP4 928
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 trap_Cvar_VariableStringBuffer
CALLV
pop
line 1065
;1065:			if ( ( skin = strchr( modelStr, '/' ) ) == NULL) {
ADDRLP4 928
ARGP4
CNSTI4 47
ARGI4
ADDRLP4 996
ADDRGP4 strchr
CALLP4
ASGNP4
ADDRLP4 992
ADDRLP4 996
INDIRP4
ASGNP4
ADDRLP4 996
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $566
line 1066
;1066:				skin = "default";
ADDRLP4 992
ADDRGP4 $224
ASGNP4
line 1067
;1067:			} else {
ADDRGP4 $567
JUMPV
LABELV $566
line 1068
;1068:				*skin++ = 0;
ADDRLP4 1000
ADDRLP4 992
INDIRP4
ASGNP4
ADDRLP4 992
ADDRLP4 1000
INDIRP4
CNSTI4 1
ADDP4
ASGNP4
ADDRLP4 1000
INDIRP4
CNSTI1 0
ASGNI1
line 1069
;1069:			}
LABELV $567
line 1071
;1070:
;1071:			Q_strncpyz( newInfo.skinName, skin, sizeof( newInfo.skinName ) );
ADDRLP4 4+224
ARGP4
ADDRLP4 992
INDIRP4
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 1072
;1072:			Q_strncpyz( newInfo.modelName, modelStr, sizeof( newInfo.modelName ) );
ADDRLP4 4+160
ARGP4
ADDRLP4 928
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 1073
;1073:		}
LABELV $560
line 1075
;1074:
;1075:		if ( cgs.gametype >= GT_TEAM ) {
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 5
LTI4 $557
line 1077
;1076:			// keep skin name
;1077:			slash = strchr( v, '/' );
ADDRLP4 816
INDIRP4
ARGP4
CNSTI4 47
ARGI4
ADDRLP4 996
ADDRGP4 strchr
CALLP4
ASGNP4
ADDRLP4 832
ADDRLP4 996
INDIRP4
ASGNP4
line 1078
;1078:			if ( slash ) {
ADDRLP4 832
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $557
line 1079
;1079:				Q_strncpyz( newInfo.skinName, slash + 1, sizeof( newInfo.skinName ) );
ADDRLP4 4+224
ARGP4
ADDRLP4 832
INDIRP4
CNSTI4 1
ADDP4
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 1080
;1080:			}
line 1081
;1081:		}
line 1082
;1082:	} else {
ADDRGP4 $557
JUMPV
LABELV $556
line 1083
;1083:		Q_strncpyz( newInfo.modelName, v, sizeof( newInfo.modelName ) );
ADDRLP4 4+160
ARGP4
ADDRLP4 816
INDIRP4
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 1085
;1084:
;1085:		slash = strchr( newInfo.modelName, '/' );
ADDRLP4 4+160
ARGP4
CNSTI4 47
ARGI4
ADDRLP4 928
ADDRGP4 strchr
CALLP4
ASGNP4
ADDRLP4 832
ADDRLP4 928
INDIRP4
ASGNP4
line 1086
;1086:		if ( !slash ) {
ADDRLP4 832
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $582
line 1088
;1087:			// modelName didn not include a skin name
;1088:			Q_strncpyz( newInfo.skinName, "default", sizeof( newInfo.skinName ) );
ADDRLP4 4+224
ARGP4
ADDRGP4 $224
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 1089
;1089:		} else {
ADDRGP4 $583
JUMPV
LABELV $582
line 1090
;1090:			Q_strncpyz( newInfo.skinName, slash + 1, sizeof( newInfo.skinName ) );
ADDRLP4 4+224
ARGP4
ADDRLP4 832
INDIRP4
CNSTI4 1
ADDP4
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 1092
;1091:			// truncate modelName
;1092:			*slash = 0;
ADDRLP4 832
INDIRP4
CNSTI1 0
ASGNI1
line 1093
;1093:		}
LABELV $583
line 1094
;1094:	}
LABELV $557
line 1142
;1095:
;1096:	// head model
;1097:/*
;1098:	v = Info_ValueForKey( configstring, "hmodel" );
;1099:	if ( cg_forceModel.integer ) {
;1100:		// forcemodel makes everyone use a single model
;1101:		// to prevent load hitches
;1102:		char modelStr[MAX_QPATH];
;1103:		char *skin;
;1104:
;1105:		if( cgs.gametype >= GT_TEAM ) {
;1106:			Q_strncpyz( newInfo.headModelName, DEFAULT_TEAM_MODEL, sizeof( newInfo.headModelName ) );
;1107:			Q_strncpyz( newInfo.headSkinName, "default", sizeof( newInfo.headSkinName ) );
;1108:		} else {
;1109:			trap_Cvar_VariableStringBuffer( "headmodel", modelStr, sizeof( modelStr ) );
;1110:			if ( ( skin = strchr( modelStr, '/' ) ) == NULL) {
;1111:				skin = "default";
;1112:			} else {
;1113:				*skin++ = 0;
;1114:			}
;1115:
;1116:			Q_strncpyz( newInfo.headSkinName, skin, sizeof( newInfo.headSkinName ) );
;1117:			Q_strncpyz( newInfo.headModelName, modelStr, sizeof( newInfo.headModelName ) );
;1118:		}
;1119:
;1120:		if ( cgs.gametype >= GT_TEAM ) {
;1121:			// keep skin name
;1122:			slash = strchr( v, '/' );
;1123:			if ( slash ) {
;1124:				Q_strncpyz( newInfo.headSkinName, slash + 1, sizeof( newInfo.headSkinName ) );
;1125:			}
;1126:		}
;1127:	} else {
;1128:		Q_strncpyz( newInfo.headModelName, v, sizeof( newInfo.headModelName ) );
;1129:
;1130:		slash = strchr( newInfo.headModelName, '/' );
;1131:		if ( !slash ) {
;1132:			// modelName didn not include a skin name
;1133:			Q_strncpyz( newInfo.headSkinName, "default", sizeof( newInfo.headSkinName ) );
;1134:		} else {
;1135:			Q_strncpyz( newInfo.headSkinName, slash + 1, sizeof( newInfo.headSkinName ) );
;1136:			// truncate modelName
;1137:			*slash = 0;
;1138:		}
;1139:	}
;1140:*/
;1141:	// force powers
;1142:	v = Info_ValueForKey( configstring, "forcepowers" );
ADDRLP4 820
INDIRP4
ARGP4
ADDRGP4 $588
ARGP4
ADDRLP4 928
ADDRGP4 Info_ValueForKey
CALLP4
ASGNP4
ADDRLP4 816
ADDRLP4 928
INDIRP4
ASGNP4
line 1143
;1143:	Q_strncpyz( newInfo.forcePowers, v, sizeof( newInfo.forcePowers ) );
ADDRLP4 4+288
ARGP4
ADDRLP4 816
INDIRP4
ARGP4
CNSTI4 64
ARGI4
ADDRGP4 Q_strncpyz
CALLV
pop
line 1145
;1144:
;1145:	newInfo.ATST = wasATST;
ADDRLP4 4+500
ADDRLP4 828
INDIRI4
ASGNI4
line 1147
;1146:
;1147:	if (cgs.gametype >= GT_TEAM	&& !cgs.jediVmerc )
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 5
LTI4 $592
ADDRGP4 cgs+32996
INDIRI4
CNSTI4 0
NEI4 $592
line 1148
;1148:	{
line 1149
;1149:		if (newInfo.team == TEAM_RED)
ADDRLP4 4+68
INDIRI4
CNSTI4 1
NEI4 $596
line 1150
;1150:		{
line 1151
;1151:			strcpy(newInfo.skinName, "red");
ADDRLP4 4+224
ARGP4
ADDRGP4 $187
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 1153
;1152://			strcpy(newInfo.headSkinName, "red");
;1153:		}
LABELV $596
line 1154
;1154:		if (newInfo.team == TEAM_BLUE)
ADDRLP4 4+68
INDIRI4
CNSTI4 2
NEI4 $600
line 1155
;1155:		{
line 1156
;1156:			strcpy(newInfo.skinName, "blue");
ADDRLP4 4+224
ARGP4
ADDRGP4 $188
ARGP4
ADDRGP4 strcpy
CALLP4
pop
line 1158
;1157://			strcpy(newInfo.headSkinName, "blue");
;1158:		}
LABELV $600
line 1159
;1159:	}
LABELV $592
line 1163
;1160:
;1161:	// scan for an existing clientinfo that matches this modelname
;1162:	// so we can avoid loading checks if possible
;1163:	if ( !CG_ScanForExistingClientInfo( &newInfo, clientNum ) ) {
ADDRLP4 4
ARGP4
ADDRFP4 0
INDIRI4
ARGI4
ADDRLP4 932
ADDRGP4 CG_ScanForExistingClientInfo
CALLI4
ASGNI4
ADDRLP4 932
INDIRI4
CNSTI4 0
NEI4 $604
line 1166
;1164:		qboolean	forceDefer;
;1165:
;1166:		forceDefer = trap_MemoryRemaining() < 4000000;
ADDRLP4 944
ADDRGP4 trap_MemoryRemaining
CALLI4
ASGNI4
ADDRLP4 944
INDIRI4
CNSTI4 4000000
GEI4 $607
ADDRLP4 940
CNSTI4 1
ASGNI4
ADDRGP4 $608
JUMPV
LABELV $607
ADDRLP4 940
CNSTI4 0
ASGNI4
LABELV $608
ADDRLP4 936
ADDRLP4 940
INDIRI4
ASGNI4
line 1169
;1167:
;1168:		// if we are defering loads, just have it pick the first valid
;1169:		if (cg.snap && cg.snap->ps.clientNum == clientNum && !forceDefer)
ADDRGP4 cg+36
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $609
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
ADDRFP4 0
INDIRI4
NEI4 $609
ADDRLP4 936
INDIRI4
CNSTI4 0
NEI4 $609
line 1170
;1170:		{ //rww - don't defer your own client info ever, unless really low on memory
line 1171
;1171:			CG_LoadClientInfo( &newInfo );
ADDRLP4 4
ARGP4
ADDRGP4 CG_LoadClientInfo
CALLV
pop
line 1172
;1172:		}
ADDRGP4 $610
JUMPV
LABELV $609
line 1173
;1173:		else if ( forceDefer || ( cg_deferPlayers.integer && !cg_buildScript.integer && !cg.loading ) ) {
ADDRLP4 948
CNSTI4 0
ASGNI4
ADDRLP4 936
INDIRI4
ADDRLP4 948
INDIRI4
NEI4 $618
ADDRGP4 cg_deferPlayers+12
INDIRI4
ADDRLP4 948
INDIRI4
EQI4 $613
ADDRGP4 cg_buildScript+12
INDIRI4
ADDRLP4 948
INDIRI4
NEI4 $613
ADDRGP4 cg+20
INDIRI4
ADDRLP4 948
INDIRI4
NEI4 $613
LABELV $618
line 1175
;1174:			// keep whatever they had if it won't violate team skins
;1175:			CG_SetDeferredClientInfo( &newInfo );
ADDRLP4 4
ARGP4
ADDRGP4 CG_SetDeferredClientInfo
CALLV
pop
line 1177
;1176:			// if we are low on memory, leave them with this model
;1177:			if ( forceDefer ) {
ADDRLP4 936
INDIRI4
CNSTI4 0
EQI4 $614
line 1178
;1178:				CG_Printf( "Memory is low.  Using deferred model.\n" );
ADDRGP4 $621
ARGP4
ADDRGP4 CG_Printf
CALLV
pop
line 1179
;1179:				newInfo.deferred = qfalse;
ADDRLP4 4+448
CNSTI4 0
ASGNI4
line 1180
;1180:			}
line 1181
;1181:		} else {
ADDRGP4 $614
JUMPV
LABELV $613
line 1182
;1182:			CG_LoadClientInfo( &newInfo );
ADDRLP4 4
ARGP4
ADDRGP4 CG_LoadClientInfo
CALLV
pop
line 1183
;1183:		}
LABELV $614
LABELV $610
line 1184
;1184:	}
LABELV $604
line 1187
;1185:
;1186:	// replace whatever was there with the new one
;1187:	newInfo.infoValid = qtrue;
ADDRLP4 4
CNSTI4 1
ASGNI4
line 1188
;1188:	if (ci->ghoul2Model &&
ADDRLP4 936
ADDRLP4 824
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ASGNP4
ADDRLP4 940
ADDRLP4 936
INDIRP4
CVPU4 4
ASGNU4
ADDRLP4 940
INDIRU4
CNSTU4 0
EQU4 $623
ADDRLP4 940
INDIRU4
ADDRLP4 4+504
INDIRP4
CVPU4 4
EQU4 $623
ADDRLP4 936
INDIRP4
ARGP4
ADDRLP4 944
ADDRGP4 trap_G2_HaveWeGhoul2Models
CALLI4
ASGNI4
ADDRLP4 944
INDIRI4
CNSTI4 0
EQI4 $623
line 1191
;1189:		ci->ghoul2Model != newInfo.ghoul2Model &&
;1190:		trap_G2_HaveWeGhoul2Models(ci->ghoul2Model))
;1191:	{ //We must kill this instance before we remove our only pointer to it from the cgame.
line 1193
;1192:	  //Otherwise we will end up with extra instances all over the place, I think.
;1193:		trap_G2API_CleanGhoul2Models(&ci->ghoul2Model);
ADDRLP4 824
INDIRP4
CNSTI4 504
ADDP4
ARGP4
ADDRGP4 trap_G2API_CleanGhoul2Models
CALLV
pop
line 1194
;1194:	}
LABELV $623
line 1195
;1195:	*ci = newInfo;
ADDRLP4 824
INDIRP4
ADDRLP4 4
INDIRB
ASGNB 812
ADDRGP4 $627
JUMPV
LABELV $626
line 1199
;1196:
;1197:	//force a weapon change anyway, for all clients being rendered to the current client
;1198:	while (i < MAX_CLIENTS)
;1199:	{
line 1200
;1200:		cg_entities[i].ghoul2weapon = NULL;
CNSTI4 1920
ADDRLP4 0
INDIRI4
MULI4
ADDRGP4 cg_entities+960
ADDP4
CNSTP4 0
ASGNP4
line 1201
;1201:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1202
;1202:	}
LABELV $627
line 1198
ADDRLP4 0
INDIRI4
CNSTI4 32
LTI4 $626
line 1205
;1203:
;1204:	// Check if the ghoul2 model changed in any way.  This is safer than assuming we have a legal cent shile loading info.
;1205:	if (entitiesInitialized && ci->ghoul2Model && (oldGhoul2 != ci->ghoul2Model))
ADDRFP4 4
INDIRI4
CNSTI4 0
EQI4 $630
ADDRLP4 948
ADDRLP4 824
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
CVPU4 4
ASGNU4
ADDRLP4 948
INDIRU4
CNSTU4 0
EQU4 $630
ADDRLP4 836
INDIRP4
CVPU4 4
ADDRLP4 948
INDIRU4
EQU4 $630
line 1206
;1206:	{	// Copy the new ghoul2 model to the centity.
line 1208
;1207:		animation_t *anim;
;1208:		centity_t *cent = &cg_entities[clientNum];
ADDRLP4 956
CNSTI4 1920
ADDRFP4 0
INDIRI4
MULI4
ADDRGP4 cg_entities
ADDP4
ASGNP4
line 1210
;1209:		
;1210:		anim = &bgGlobalAnimations[ (cg_entities[clientNum].currentState.legsAnim & ~ANIM_TOGGLEBIT) ];
ADDRLP4 952
CNSTI4 28
CNSTI4 1920
ADDRFP4 0
INDIRI4
MULI4
ADDRGP4 cg_entities+280
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
MULI4
ADDRGP4 bgGlobalAnimations
ADDP4
ASGNP4
line 1212
;1211:
;1212:		if (anim)
ADDRLP4 952
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $633
line 1213
;1213:		{
line 1214
;1214:			int flags = BONE_ANIM_OVERRIDE_FREEZE;
ADDRLP4 960
CNSTI4 72
ASGNI4
line 1215
;1215:			int firstFrame = anim->firstFrame;
ADDRLP4 968
ADDRLP4 952
INDIRP4
INDIRI4
ASGNI4
line 1216
;1216:			int setFrame = -1;
ADDRLP4 964
CNSTI4 -1
ASGNI4
line 1217
;1217:			float animSpeed = 50.0f / anim->frameLerp;
ADDRLP4 972
CNSTF4 1112014848
ADDRLP4 952
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CVIF4 4
DIVF4
ASGNF4
line 1219
;1218:
;1219:			if (anim->loopFrames != -1)
ADDRLP4 952
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 -1
EQI4 $635
line 1220
;1220:			{
line 1221
;1221:				flags |= BONE_ANIM_OVERRIDE_LOOP;
ADDRLP4 960
ADDRLP4 960
INDIRI4
CNSTI4 16
BORI4
ASGNI4
line 1222
;1222:			}
LABELV $635
line 1224
;1223:
;1224:			if (cent->pe.legs.frame >= anim->firstFrame && cent->pe.legs.frame <= (anim->firstFrame + anim->numFrames))
ADDRLP4 976
ADDRLP4 956
INDIRP4
CNSTI4 652
ADDP4
INDIRI4
ASGNI4
ADDRLP4 984
ADDRLP4 952
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 976
INDIRI4
ADDRLP4 984
INDIRI4
LTI4 $637
ADDRLP4 976
INDIRI4
ADDRLP4 984
INDIRI4
ADDRLP4 952
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
GTI4 $637
line 1225
;1225:			{
line 1226
;1226:				setFrame = cent->pe.legs.frame;
ADDRLP4 964
ADDRLP4 956
INDIRP4
CNSTI4 652
ADDP4
INDIRI4
ASGNI4
line 1227
;1227:			}
LABELV $637
line 1230
;1228:
;1229:			//rww - Set the animation again because it just got reset due to the model change
;1230:			trap_G2API_SetBoneAnim(ci->ghoul2Model, 0, "model_root", firstFrame, anim->firstFrame + anim->numFrames, flags, animSpeed, cg.time, setFrame, 150);
ADDRLP4 824
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $310
ARGP4
ADDRLP4 968
INDIRI4
ARGI4
ADDRLP4 952
INDIRP4
INDIRI4
ADDRLP4 952
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ARGI4
ADDRLP4 960
INDIRI4
ARGI4
ADDRLP4 972
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRLP4 964
INDIRI4
CVIF4 4
ARGF4
CNSTI4 150
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 1232
;1231:
;1232:			cg_entities[clientNum].currentState.legsAnim = 0;
CNSTI4 1920
ADDRFP4 0
INDIRI4
MULI4
ADDRGP4 cg_entities+280
ADDP4
CNSTI4 0
ASGNI4
line 1233
;1233:		}
LABELV $633
line 1235
;1234:
;1235:		anim = &bgGlobalAnimations[ (cg_entities[clientNum].currentState.torsoAnim & ~ANIM_TOGGLEBIT) ];
ADDRLP4 952
CNSTI4 28
CNSTI4 1920
ADDRFP4 0
INDIRI4
MULI4
ADDRGP4 cg_entities+284
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
MULI4
ADDRGP4 bgGlobalAnimations
ADDP4
ASGNP4
line 1237
;1236:
;1237:		if (anim)
ADDRLP4 952
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $642
line 1238
;1238:		{
line 1239
;1239:			int flags = BONE_ANIM_OVERRIDE_FREEZE;
ADDRLP4 960
CNSTI4 72
ASGNI4
line 1240
;1240:			int firstFrame = anim->firstFrame;
ADDRLP4 968
ADDRLP4 952
INDIRP4
INDIRI4
ASGNI4
line 1241
;1241:			int setFrame = -1;
ADDRLP4 964
CNSTI4 -1
ASGNI4
line 1242
;1242:			float animSpeed = 50.0f / anim->frameLerp;
ADDRLP4 972
CNSTF4 1112014848
ADDRLP4 952
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CVIF4 4
DIVF4
ASGNF4
line 1244
;1243:
;1244:			if (anim->loopFrames != -1)
ADDRLP4 952
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 -1
EQI4 $644
line 1245
;1245:			{
line 1246
;1246:				flags |= BONE_ANIM_OVERRIDE_LOOP;
ADDRLP4 960
ADDRLP4 960
INDIRI4
CNSTI4 16
BORI4
ASGNI4
line 1247
;1247:			}
LABELV $644
line 1249
;1248:
;1249:			if (cent->pe.torso.frame >= anim->firstFrame && cent->pe.torso.frame <= (anim->firstFrame + anim->numFrames))
ADDRLP4 976
ADDRLP4 956
INDIRP4
CNSTI4 716
ADDP4
INDIRI4
ASGNI4
ADDRLP4 984
ADDRLP4 952
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 976
INDIRI4
ADDRLP4 984
INDIRI4
LTI4 $646
ADDRLP4 976
INDIRI4
ADDRLP4 984
INDIRI4
ADDRLP4 952
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
GTI4 $646
line 1250
;1250:			{
line 1251
;1251:				setFrame = cent->pe.torso.frame;
ADDRLP4 964
ADDRLP4 956
INDIRP4
CNSTI4 716
ADDP4
INDIRI4
ASGNI4
line 1252
;1252:			}
LABELV $646
line 1255
;1253:
;1254:			//rww - Set the animation again because it just got reset due to the model change
;1255:			trap_G2API_SetBoneAnim(ci->ghoul2Model, 0, "lower_lumbar", firstFrame, anim->firstFrame + anim->numFrames, flags, animSpeed, cg.time, setFrame, 150);
ADDRLP4 824
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $323
ARGP4
ADDRLP4 968
INDIRI4
ARGI4
ADDRLP4 952
INDIRP4
INDIRI4
ADDRLP4 952
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ARGI4
ADDRLP4 960
INDIRI4
ARGI4
ADDRLP4 972
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRLP4 964
INDIRI4
CVIF4 4
ARGF4
CNSTI4 150
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 1257
;1256:
;1257:			cg_entities[clientNum].currentState.torsoAnim = 0;
CNSTI4 1920
ADDRFP4 0
INDIRI4
MULI4
ADDRGP4 cg_entities+284
ADDP4
CNSTI4 0
ASGNI4
line 1258
;1258:		}
LABELV $642
line 1260
;1259:
;1260:		if (cg_entities[clientNum].ghoul2 && trap_G2_HaveWeGhoul2Models(cg_entities[clientNum].ghoul2))
ADDRLP4 960
CNSTI4 1920
ADDRFP4 0
INDIRI4
MULI4
ASGNI4
ADDRLP4 960
INDIRI4
ADDRGP4 cg_entities+952
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $650
ADDRLP4 960
INDIRI4
ADDRGP4 cg_entities+952
ADDP4
INDIRP4
ARGP4
ADDRLP4 964
ADDRGP4 trap_G2_HaveWeGhoul2Models
CALLI4
ASGNI4
ADDRLP4 964
INDIRI4
CNSTI4 0
EQI4 $650
line 1261
;1261:		{
line 1262
;1262:			trap_G2API_CleanGhoul2Models(&cg_entities[clientNum].ghoul2);
CNSTI4 1920
ADDRFP4 0
INDIRI4
MULI4
ADDRGP4 cg_entities+952
ADDP4
ARGP4
ADDRGP4 trap_G2API_CleanGhoul2Models
CALLV
pop
line 1263
;1263:		}
LABELV $650
line 1264
;1264:		trap_G2API_DuplicateGhoul2Instance(ci->ghoul2Model, &cg_entities[clientNum].ghoul2);
ADDRLP4 824
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 1920
ADDRFP4 0
INDIRI4
MULI4
ADDRGP4 cg_entities+952
ADDP4
ARGP4
ADDRGP4 trap_G2API_DuplicateGhoul2Instance
CALLV
pop
line 1265
;1265:	}
LABELV $630
line 1266
;1266:}
LABELV $523
endproc CG_NewClientInfo 1004 40
data
export cgQueueLoad
align 4
LABELV cgQueueLoad
byte 4 0
export CG_ActualLoadDeferredPlayers
code
proc CG_ActualLoadDeferredPlayers 20 4
line 1278
;1267:
;1268:
;1269:qboolean cgQueueLoad = qfalse;
;1270:/*
;1271:======================
;1272:CG_ActualLoadDeferredPlayers
;1273:
;1274:Called at the beginning of CG_Player if cgQueueLoad is set.
;1275:======================
;1276:*/
;1277:void CG_ActualLoadDeferredPlayers( void )
;1278:{
line 1283
;1279:	int		i;
;1280:	clientInfo_t	*ci;
;1281:
;1282:	// scan for a deferred player to load
;1283:	for ( i = 0, ci = cgs.clientinfo ; i < cgs.maxclients ; i++, ci++ ) {
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRLP4 0
ADDRGP4 cgs+43024
ASGNP4
ADDRGP4 $660
JUMPV
LABELV $657
line 1284
;1284:		if ( ci->infoValid && ci->deferred ) {
ADDRLP4 12
CNSTI4 0
ASGNI4
ADDRLP4 0
INDIRP4
INDIRI4
ADDRLP4 12
INDIRI4
EQI4 $663
ADDRLP4 0
INDIRP4
CNSTI4 448
ADDP4
INDIRI4
ADDRLP4 12
INDIRI4
EQI4 $663
line 1286
;1285:			// if we are low on memory, leave it deferred
;1286:			if ( trap_MemoryRemaining() < 4000000 ) {
ADDRLP4 16
ADDRGP4 trap_MemoryRemaining
CALLI4
ASGNI4
ADDRLP4 16
INDIRI4
CNSTI4 4000000
GEI4 $665
line 1287
;1287:				CG_Printf( "Memory is low.  Using deferred model.\n" );
ADDRGP4 $621
ARGP4
ADDRGP4 CG_Printf
CALLV
pop
line 1288
;1288:				ci->deferred = qfalse;
ADDRLP4 0
INDIRP4
CNSTI4 448
ADDP4
CNSTI4 0
ASGNI4
line 1289
;1289:				continue;
ADDRGP4 $658
JUMPV
LABELV $665
line 1291
;1290:			}
;1291:			CG_LoadClientInfo( ci );
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 CG_LoadClientInfo
CALLV
pop
line 1293
;1292://			break;
;1293:		}
LABELV $663
line 1294
;1294:	}
LABELV $658
line 1283
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
ADDRLP4 0
INDIRP4
CNSTI4 812
ADDP4
ASGNP4
LABELV $660
ADDRLP4 4
INDIRI4
ADDRGP4 cgs+32988
INDIRI4
LTI4 $657
line 1295
;1295:}
LABELV $656
endproc CG_ActualLoadDeferredPlayers 20 4
export CG_LoadDeferredPlayers
proc CG_LoadDeferredPlayers 0 0
line 1306
;1296:
;1297:/*
;1298:======================
;1299:CG_LoadDeferredPlayers
;1300:
;1301:Called each frame when a player is dead
;1302:and the scoreboard is up
;1303:so deferred players can be loaded
;1304:======================
;1305:*/
;1306:void CG_LoadDeferredPlayers( void ) {
line 1307
;1307:	cgQueueLoad = qtrue;
ADDRGP4 cgQueueLoad
CNSTI4 1
ASGNI4
line 1308
;1308:}
LABELV $667
endproc CG_LoadDeferredPlayers 0 0
export CG_InRoll
proc CG_InRoll 8 0
line 1321
;1309:
;1310:/*
;1311:=============================================================================
;1312:
;1313:PLAYER ANIMATION
;1314:
;1315:=============================================================================
;1316:*/
;1317:
;1318:static qboolean CG_FirstAnimFrame(lerpFrame_t *lf, qboolean torsoOnly, float speedScale);
;1319:
;1320:qboolean CG_InRoll( centity_t *cent )
;1321:{
line 1322
;1322:	switch ( (cent->currentState.legsAnim&~ANIM_TOGGLEBIT) )
ADDRLP4 0
ADDRFP4 0
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 885
LTI4 $669
ADDRLP4 0
INDIRI4
CNSTI4 888
GTI4 $669
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 $676-3540
ADDP4
INDIRP4
JUMPV
lit
align 4
LABELV $676
address $672
address $672
address $672
address $672
code
line 1323
;1323:	{
LABELV $672
line 1328
;1324:	case BOTH_ROLL_F:
;1325:	case BOTH_ROLL_B:
;1326:	case BOTH_ROLL_R:
;1327:	case BOTH_ROLL_L:
;1328:		if ( cent->pe.legs.animationTime > cg.time )
ADDRFP4 0
INDIRP4
CNSTI4 692
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
LEI4 $670
line 1329
;1329:		{
line 1330
;1330:			return qtrue;
CNSTI4 1
RETI4
ADDRGP4 $668
JUMPV
line 1332
;1331:		}
;1332:		break;
LABELV $669
LABELV $670
line 1334
;1333:	}
;1334:	return qfalse;
CNSTI4 0
RETI4
LABELV $668
endproc CG_InRoll 8 0
export CG_InRollAnim
proc CG_InRollAnim 8 0
line 1338
;1335:}
;1336:
;1337:qboolean CG_InRollAnim( centity_t *cent )
;1338:{
line 1339
;1339:	switch ( (cent->currentState.legsAnim&~ANIM_TOGGLEBIT) )
ADDRLP4 0
ADDRFP4 0
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 885
LTI4 $679
ADDRLP4 0
INDIRI4
CNSTI4 888
GTI4 $679
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 $683-3540
ADDP4
INDIRP4
JUMPV
lit
align 4
LABELV $683
address $682
address $682
address $682
address $682
code
line 1340
;1340:	{
LABELV $682
line 1345
;1341:	case BOTH_ROLL_F:
;1342:	case BOTH_ROLL_B:
;1343:	case BOTH_ROLL_R:
;1344:	case BOTH_ROLL_L:
;1345:		return qtrue;
CNSTI4 1
RETI4
ADDRGP4 $678
JUMPV
LABELV $679
line 1347
;1346:	}
;1347:	return qfalse;
CNSTI4 0
RETI4
LABELV $678
endproc CG_InRollAnim 8 0
proc CG_SetLerpFrameAnimation 76 40
line 1357
;1348:}
;1349:
;1350:/*
;1351:===============
;1352:CG_SetLerpFrameAnimation
;1353:
;1354:may include ANIM_TOGGLEBIT
;1355:===============
;1356:*/
;1357:static void CG_SetLerpFrameAnimation( centity_t *cent, clientInfo_t *ci, lerpFrame_t *lf, int newAnimation, float animSpeedMult, qboolean torsoOnly) {
line 1360
;1358:	animation_t	*anim;
;1359:	float animSpeed;
;1360:	int	  flags=BONE_ANIM_OVERRIDE_FREEZE;
ADDRLP4 4
CNSTI4 72
ASGNI4
line 1361
;1361:	int oldAnim = -1;
ADDRLP4 12
CNSTI4 -1
ASGNI4
line 1362
;1362:	int blendTime = 150;
ADDRLP4 16
CNSTI4 150
ASGNI4
line 1364
;1363:
;1364:	if (cent->currentState.number < MAX_CLIENTS &&
ADDRLP4 20
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
INDIRI4
CNSTI4 32
GEI4 $686
ADDRLP4 24
CNSTI4 0
ASGNI4
ADDRLP4 20
INDIRP4
CNSTI4 264
ADDP4
INDIRI4
ADDRLP4 24
INDIRI4
EQI4 $686
ADDRLP4 20
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
ADDRLP4 24
INDIRI4
NEI4 $686
line 1367
;1365:		cent->currentState.teamowner &&
;1366:		!cent->isATST)
;1367:	{
line 1368
;1368:		return;
ADDRGP4 $685
JUMPV
LABELV $686
line 1371
;1369:	}
;1370:
;1371:	if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $688
line 1372
;1372:	{
line 1376
;1373:		vec3_t testVel;
;1374:		float fVel;
;1375:
;1376:		if (lf->animationNumber == BOTH_RUN1 ||
ADDRLP4 44
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ASGNI4
ADDRLP4 44
INDIRI4
CNSTI4 833
EQI4 $695
ADDRLP4 44
INDIRI4
CNSTI4 822
EQI4 $695
ADDRLP4 44
INDIRI4
CNSTI4 852
EQI4 $695
ADDRLP4 44
INDIRI4
CNSTI4 842
EQI4 $695
ADDRLP4 44
INDIRI4
CNSTI4 843
NEI4 $690
LABELV $695
line 1381
;1377:			lf->animationNumber == BOTH_WALK1 ||
;1378:			lf->animationNumber == BOTH_WALKBACK1 ||
;1379:			lf->animationNumber == BOTH_TURN_LEFT1 ||
;1380:			lf->animationNumber == BOTH_TURN_RIGHT1)
;1381:		{
line 1382
;1382:			if (cent->atstFootClang < cg.time)
ADDRFP4 0
INDIRP4
CNSTI4 1032
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
GEI4 $696
line 1383
;1383:			{
line 1384
;1384:				if (rand() & 1)
ADDRLP4 48
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 48
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $699
line 1385
;1385:				{
line 1386
;1386:					trap_S_StartSound(NULL, cent->currentState.number, CHAN_AUTO, trap_S_RegisterSound("sound/chars/atst/ATSTstep1.wav"));
ADDRGP4 $701
ARGP4
ADDRLP4 52
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
CNSTP4 0
ARGP4
ADDRFP4 0
INDIRP4
INDIRI4
ARGI4
CNSTI4 0
ARGI4
ADDRLP4 52
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
line 1387
;1387:				}
ADDRGP4 $700
JUMPV
LABELV $699
line 1389
;1388:				else
;1389:				{
line 1390
;1390:					trap_S_StartSound(NULL, cent->currentState.number, CHAN_AUTO, trap_S_RegisterSound("sound/chars/atst/ATSTstep2.wav"));
ADDRGP4 $702
ARGP4
ADDRLP4 52
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
CNSTP4 0
ARGP4
ADDRFP4 0
INDIRP4
INDIRI4
ARGI4
CNSTI4 0
ARGI4
ADDRLP4 52
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
line 1391
;1391:				}
LABELV $700
line 1393
;1392:
;1393:				cent->atstFootClang = cg.time + 1300;
ADDRFP4 0
INDIRP4
CNSTI4 1032
ADDP4
ADDRGP4 cg+64
INDIRI4
CNSTI4 1300
ADDI4
ASGNI4
line 1394
;1394:			}
LABELV $696
line 1395
;1395:		}
LABELV $690
line 1397
;1396:
;1397:		VectorCopy(cent->currentState.pos.trDelta, testVel);
ADDRLP4 28
ADDRFP4 0
INDIRP4
CNSTI4 36
ADDP4
INDIRB
ASGNB 12
line 1399
;1398:
;1399:		fVel = VectorNormalize(testVel);
ADDRLP4 28
ARGP4
ADDRLP4 48
ADDRGP4 VectorNormalize
CALLF4
ASGNF4
ADDRLP4 40
ADDRLP4 48
INDIRF4
ASGNF4
line 1401
;1400:
;1401:		if (cent->currentState.eFlags & EF_DEAD)
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $704
line 1402
;1402:		{
line 1403
;1403:			if (lf->animationNumber != BOTH_DEATH1 &&
ADDRLP4 52
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ASGNI4
ADDRLP4 52
INDIRI4
CNSTI4 1
EQI4 $706
ADDRLP4 52
INDIRI4
CNSTI4 47
EQI4 $706
line 1405
;1404:				lf->animationNumber != BOTH_DEAD1)
;1405:			{
line 1406
;1406:				trap_S_StartSound(NULL, cent->currentState.number, CHAN_BODY, trap_S_RegisterSound("sound/chars/atst/ATSTcrash.wav"));
ADDRGP4 $708
ARGP4
ADDRLP4 56
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
CNSTP4 0
ARGP4
ADDRFP4 0
INDIRP4
INDIRI4
ARGI4
CNSTI4 5
ARGI4
ADDRLP4 56
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
line 1407
;1407:			}
LABELV $706
line 1408
;1408:			newAnimation = BOTH_DEATH1;
ADDRFP4 12
CNSTI4 1
ASGNI4
line 1409
;1409:		}
ADDRGP4 $705
JUMPV
LABELV $704
line 1410
;1410:		else if (fVel > 0)
ADDRLP4 40
INDIRF4
CNSTF4 0
LEF4 $709
line 1411
;1411:		{
line 1412
;1412:			qboolean doNotSet = qfalse;
ADDRLP4 52
CNSTI4 0
ASGNI4
line 1414
;1413:
;1414:			if (fVel > 250)
ADDRLP4 40
INDIRF4
CNSTF4 1132068864
LEF4 $711
line 1415
;1415:			{
line 1416
;1416:				animSpeedMult = 1.2;
ADDRFP4 16
CNSTF4 1067030938
ASGNF4
line 1417
;1417:			}
ADDRGP4 $712
JUMPV
LABELV $711
line 1418
;1418:			else if (fVel > 200)
ADDRLP4 40
INDIRF4
CNSTF4 1128792064
LEF4 $713
line 1419
;1419:			{
line 1420
;1420:				animSpeedMult = 1;
ADDRFP4 16
CNSTF4 1065353216
ASGNF4
line 1421
;1421:			}
ADDRGP4 $714
JUMPV
LABELV $713
line 1422
;1422:			else if (fVel > 100)
ADDRLP4 40
INDIRF4
CNSTF4 1120403456
LEF4 $715
line 1423
;1423:			{
line 1424
;1424:				animSpeedMult = 0.9;
ADDRFP4 16
CNSTF4 1063675494
ASGNF4
line 1425
;1425:			}
ADDRGP4 $716
JUMPV
LABELV $715
line 1426
;1426:			else if (fVel > 0)
ADDRLP4 40
INDIRF4
CNSTF4 0
LEF4 $717
line 1427
;1427:			{
line 1428
;1428:				animSpeedMult = 0.8;
ADDRFP4 16
CNSTF4 1061997773
ASGNF4
line 1429
;1429:			}
ADDRGP4 $718
JUMPV
LABELV $717
line 1431
;1430:			else
;1431:			{
line 1432
;1432:				doNotSet = qtrue;
ADDRLP4 52
CNSTI4 1
ASGNI4
line 1433
;1433:			}
LABELV $718
LABELV $716
LABELV $714
LABELV $712
line 1435
;1434:
;1435:			if (!doNotSet)
ADDRLP4 52
INDIRI4
CNSTI4 0
NEI4 $710
line 1436
;1436:			{
line 1437
;1437:				if ((cent->currentState.torsoAnim & ~ANIM_TOGGLEBIT) == BOTH_RUN1 ||
ADDRLP4 56
ADDRFP4 0
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
ADDRLP4 56
INDIRI4
CNSTI4 833
EQI4 $724
ADDRLP4 56
INDIRI4
CNSTI4 852
EQI4 $724
ADDRLP4 56
INDIRI4
CNSTI4 822
NEI4 $721
LABELV $724
line 1440
;1438:					(cent->currentState.torsoAnim & ~ANIM_TOGGLEBIT) == BOTH_WALKBACK1 ||
;1439:					(cent->currentState.torsoAnim & ~ANIM_TOGGLEBIT) == BOTH_WALK1)
;1440:				{
line 1441
;1441:					newAnimation = (cent->currentState.torsoAnim & ~ANIM_TOGGLEBIT);
ADDRFP4 12
ADDRFP4 0
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
line 1442
;1442:				}
ADDRGP4 $710
JUMPV
LABELV $721
line 1444
;1443:				else
;1444:				{
line 1445
;1445:					newAnimation = BOTH_RUN1;
ADDRFP4 12
CNSTI4 833
ASGNI4
line 1446
;1446:				}
line 1447
;1447:			}
line 1448
;1448:		}
ADDRGP4 $710
JUMPV
LABELV $709
line 1449
;1449:		else if ((cent->currentState.torsoAnim & ~ANIM_TOGGLEBIT) == BOTH_RUN1START)
ADDRFP4 0
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
CNSTI4 834
NEI4 $725
line 1450
;1450:		{
line 1451
;1451:			if (lf->animationNumber != BOTH_RUN1START)
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
CNSTI4 834
EQI4 $727
line 1452
;1452:			{
line 1453
;1453:				trap_S_StartSound(NULL, cent->currentState.number, CHAN_BODY, trap_S_RegisterSound("sound/chars/atst/ATSTstart.wav"));
ADDRGP4 $729
ARGP4
ADDRLP4 52
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
CNSTP4 0
ARGP4
ADDRFP4 0
INDIRP4
INDIRI4
ARGI4
CNSTI4 5
ARGI4
ADDRLP4 52
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
line 1454
;1454:				cent->atstFootClang = cg.time + 650;
ADDRFP4 0
INDIRP4
CNSTI4 1032
ADDP4
ADDRGP4 cg+64
INDIRI4
CNSTI4 650
ADDI4
ASGNI4
line 1455
;1455:			}
LABELV $727
line 1456
;1456:			newAnimation = BOTH_RUN1START;
ADDRFP4 12
CNSTI4 834
ASGNI4
line 1457
;1457:		}
ADDRGP4 $726
JUMPV
LABELV $725
line 1458
;1458:		else if (cent->pe.legs.yawing &&
ADDRLP4 52
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 52
INDIRP4
CNSTI4 668
ADDP4
INDIRI4
CNSTI4 0
EQI4 $731
ADDRLP4 56
ADDRLP4 52
INDIRP4
CNSTI4 680
ADDP4
INDIRF4
ASGNF4
ADDRLP4 56
INDIRF4
CNSTF4 3248488448
LTF4 $733
ADDRLP4 56
INDIRF4
CNSTF4 1101004800
LEF4 $731
LABELV $733
line 1460
;1459:			(cent->pe.legs.yawSwingDif < -20 || cent->pe.legs.yawSwingDif > 20))
;1460:		{
line 1461
;1461:			if (cent->pe.legs.yawSwingDif > 0)
ADDRFP4 0
INDIRP4
CNSTI4 680
ADDP4
INDIRF4
CNSTF4 0
LEF4 $734
line 1462
;1462:			{
line 1463
;1463:				newAnimation = BOTH_TURN_LEFT1;//BOTH_RUN1;
ADDRFP4 12
CNSTI4 842
ASGNI4
line 1464
;1464:				if (lf->animationNumber != BOTH_TURN_LEFT1)
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
CNSTI4 842
EQI4 $735
line 1465
;1465:				{
line 1466
;1466:					cent->atstFootClang = cg.time + 500;
ADDRFP4 0
INDIRP4
CNSTI4 1032
ADDP4
ADDRGP4 cg+64
INDIRI4
CNSTI4 500
ADDI4
ASGNI4
line 1467
;1467:				}
line 1468
;1468:			}
ADDRGP4 $735
JUMPV
LABELV $734
line 1470
;1469:			else
;1470:			{
line 1471
;1471:				newAnimation = BOTH_TURN_RIGHT1;//BOTH_RUN1;
ADDRFP4 12
CNSTI4 843
ASGNI4
line 1472
;1472:				if (lf->animationNumber != BOTH_TURN_RIGHT1)
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
CNSTI4 843
EQI4 $739
line 1473
;1473:				{
line 1474
;1474:					cent->atstFootClang = cg.time + 500;
ADDRFP4 0
INDIRP4
CNSTI4 1032
ADDP4
ADDRGP4 cg+64
INDIRI4
CNSTI4 500
ADDI4
ASGNI4
line 1475
;1475:				}
LABELV $739
line 1476
;1476:			}
LABELV $735
line 1477
;1477:			animSpeedMult = 0.7;
ADDRFP4 16
CNSTF4 1060320051
ASGNF4
line 1478
;1478:		}
ADDRGP4 $732
JUMPV
LABELV $731
line 1480
;1479:		else
;1480:		{
line 1481
;1481:			newAnimation = BOTH_STAND1;
ADDRFP4 12
CNSTI4 571
ASGNI4
line 1482
;1482:		}
LABELV $732
LABELV $726
LABELV $710
LABELV $705
line 1484
;1483:
;1484:		if (newAnimation != BOTH_STAND1 && newAnimation != BOTH_RUN1 &&
ADDRLP4 60
ADDRFP4 12
INDIRI4
ASGNI4
ADDRLP4 60
INDIRI4
CNSTI4 571
EQI4 $742
ADDRLP4 60
INDIRI4
CNSTI4 833
EQI4 $742
ADDRLP4 60
INDIRI4
CNSTI4 834
EQI4 $742
ADDRLP4 60
INDIRI4
CNSTI4 822
EQI4 $742
ADDRLP4 60
INDIRI4
CNSTI4 852
EQI4 $742
ADDRLP4 60
INDIRI4
CNSTI4 1
EQI4 $742
ADDRLP4 60
INDIRI4
CNSTI4 47
EQI4 $742
ADDRLP4 60
INDIRI4
CNSTI4 843
EQI4 $742
ADDRLP4 60
INDIRI4
CNSTI4 842
EQI4 $742
ADDRLP4 60
INDIRI4
CNSTI4 97
EQI4 $742
ADDRLP4 60
INDIRI4
CNSTI4 98
EQI4 $742
line 1490
;1485:			newAnimation != BOTH_RUN1START && newAnimation != BOTH_WALK1 &&
;1486:			newAnimation != BOTH_WALKBACK1 && newAnimation != BOTH_DEATH1 &&
;1487:			newAnimation != BOTH_DEAD1 && newAnimation != BOTH_TURN_RIGHT1 &&
;1488:			newAnimation != BOTH_TURN_LEFT1 && newAnimation != BOTH_PAIN1 &&
;1489:			newAnimation != BOTH_PAIN2)
;1490:		{ //not a valid anim for the ATST..
line 1491
;1491:			newAnimation = BOTH_RUN1;
ADDRFP4 12
CNSTI4 833
ASGNI4
line 1492
;1492:		}
LABELV $742
line 1494
;1493:
;1494:		if (lf->animationNumber == newAnimation)
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ADDRFP4 12
INDIRI4
NEI4 $744
line 1495
;1495:		{
line 1496
;1496:			return;
ADDRGP4 $685
JUMPV
LABELV $744
line 1498
;1497:		}
;1498:	}
LABELV $688
line 1500
;1499:
;1500:	oldAnim = lf->animationNumber;
ADDRLP4 12
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ASGNI4
line 1502
;1501:
;1502:	lf->animationNumber = newAnimation;
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
ADDRFP4 12
INDIRI4
ASGNI4
line 1503
;1503:	newAnimation &= ~ANIM_TOGGLEBIT;
ADDRFP4 12
ADDRFP4 12
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
line 1505
;1504:
;1505:	if ( newAnimation < 0 || newAnimation >= MAX_TOTALANIMATIONS ) {
ADDRLP4 28
ADDRFP4 12
INDIRI4
ASGNI4
ADDRLP4 28
INDIRI4
CNSTI4 0
LTI4 $748
ADDRLP4 28
INDIRI4
CNSTI4 1211
LTI4 $746
LABELV $748
line 1506
;1506:		CG_Error( "Bad animation number: %i", newAnimation );
ADDRGP4 $749
ARGP4
ADDRFP4 12
INDIRI4
ARGI4
ADDRGP4 CG_Error
CALLV
pop
line 1507
;1507:	}
LABELV $746
line 1509
;1508:
;1509:	anim = &bgGlobalAnimations[ newAnimation ];
ADDRLP4 0
CNSTI4 28
ADDRFP4 12
INDIRI4
MULI4
ADDRGP4 bgGlobalAnimations
ADDP4
ASGNP4
line 1511
;1510:
;1511:	lf->animation = anim;
ADDRFP4 8
INDIRP4
CNSTI4 44
ADDP4
ADDRLP4 0
INDIRP4
ASGNP4
line 1512
;1512:	lf->animationTime = lf->frameTime + anim->initialLerp;
ADDRLP4 32
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 32
INDIRP4
CNSTI4 48
ADDP4
ADDRLP4 32
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
ADDI4
ASGNI4
line 1514
;1513:
;1514:	if ( cg_debugAnim.integer && (cg_debugAnim.integer < 0 || cg_debugAnim.integer == cent->currentState.clientNum) ) {
ADDRLP4 36
CNSTI4 0
ASGNI4
ADDRGP4 cg_debugAnim+12
INDIRI4
ADDRLP4 36
INDIRI4
EQI4 $750
ADDRGP4 cg_debugAnim+12
INDIRI4
ADDRLP4 36
INDIRI4
LTI4 $755
ADDRGP4 cg_debugAnim+12
INDIRI4
ADDRFP4 0
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
NEI4 $750
LABELV $755
line 1515
;1515:		CG_Printf( "%d: %d Anim: %i, '%s'\n", cg.time, cent->currentState.clientNum, newAnimation, GetStringForID(animTable, newAnimation));
ADDRGP4 animTable
ARGP4
ADDRFP4 12
INDIRI4
ARGI4
ADDRLP4 40
ADDRGP4 GetStringForID
CALLP4
ASGNP4
ADDRGP4 $756
ARGP4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRFP4 0
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
ARGI4
ADDRFP4 12
INDIRI4
ARGI4
ADDRLP4 40
INDIRP4
ARGP4
ADDRGP4 CG_Printf
CALLV
pop
line 1516
;1516:	}
LABELV $750
line 1518
;1517:
;1518:	if (cent->ghoul2)
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $758
line 1519
;1519:	{
line 1520
;1520:		animSpeed = 50.0f / anim->frameLerp;
ADDRLP4 8
CNSTF4 1112014848
ADDRLP4 0
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CVIF4 4
DIVF4
ASGNF4
line 1521
;1521:		if (lf->animation->loopFrames != -1)
ADDRFP4 8
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 -1
EQI4 $760
line 1522
;1522:		{
line 1523
;1523:			flags = BONE_ANIM_OVERRIDE_LOOP;
ADDRLP4 4
CNSTI4 16
ASGNI4
line 1524
;1524:		}
LABELV $760
line 1526
;1525:
;1526:		if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $762
line 1527
;1527:		{
line 1528
;1528:			if (animSpeed < 0.3)
ADDRLP4 8
INDIRF4
CNSTF4 1050253722
GEF4 $764
line 1529
;1529:			{
line 1530
;1530:				animSpeed = 0.3;
ADDRLP4 8
CNSTF4 1050253722
ASGNF4
line 1531
;1531:			}
LABELV $764
line 1533
;1532:
;1533:			if (newAnimation == BOTH_WALKBACK1)
ADDRFP4 12
INDIRI4
CNSTI4 852
NEI4 $766
line 1534
;1534:			{
line 1535
;1535:				animSpeed = 0.8;
ADDRLP4 8
CNSTF4 1061997773
ASGNF4
line 1536
;1536:			}
LABELV $766
line 1538
;1537:
;1538:			if (newAnimation != BOTH_DEATH1)
ADDRFP4 12
INDIRI4
CNSTI4 1
EQI4 $768
line 1539
;1539:			{
line 1540
;1540:				flags = BONE_ANIM_OVERRIDE_LOOP;
ADDRLP4 4
CNSTI4 16
ASGNI4
line 1541
;1541:			}
LABELV $768
line 1542
;1542:		}
LABELV $762
line 1544
;1543:
;1544:		if (cg_animBlend.integer)
ADDRGP4 cg_animBlend+12
INDIRI4
CNSTI4 0
EQI4 $770
line 1545
;1545:		{
line 1546
;1546:			flags |= BONE_ANIM_BLEND;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 128
BORI4
ASGNI4
line 1547
;1547:		}
LABELV $770
line 1549
;1548:
;1549:		if (!cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
NEI4 $773
line 1550
;1550:		{
line 1551
;1551:			if (/*BG_FlippingAnim(newAnimation) ||*/ BG_InDeathAnim(newAnimation))
ADDRFP4 12
INDIRI4
ARGI4
ADDRLP4 40
ADDRGP4 BG_InDeathAnim
CALLI4
ASGNI4
ADDRLP4 40
INDIRI4
CNSTI4 0
EQI4 $775
line 1552
;1552:			{
line 1553
;1553:				flags &= ~BONE_ANIM_BLEND;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 -129
BANDI4
ASGNI4
line 1554
;1554:			}
ADDRGP4 $776
JUMPV
LABELV $775
line 1555
;1555:			else if ( oldAnim != -1 &&
ADDRLP4 44
ADDRLP4 12
INDIRI4
ASGNI4
ADDRLP4 44
INDIRI4
CNSTI4 -1
EQI4 $777
ADDRLP4 44
INDIRI4
ARGI4
ADDRLP4 48
ADDRGP4 BG_InDeathAnim
CALLI4
ASGNI4
ADDRLP4 48
INDIRI4
CNSTI4 0
EQI4 $777
line 1557
;1556:				(/*BG_FlippingAnim(oldAnim) ||*/ BG_InDeathAnim(oldAnim)) )
;1557:			{
line 1558
;1558:				flags &= ~BONE_ANIM_BLEND;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 -129
BANDI4
ASGNI4
line 1559
;1559:			}
LABELV $777
LABELV $776
line 1561
;1560:
;1561:			if (flags & BONE_ANIM_BLEND)
ADDRLP4 4
INDIRI4
CNSTI4 128
BANDI4
CNSTI4 0
EQI4 $779
line 1562
;1562:			{
line 1563
;1563:				if (BG_FlippingAnim(newAnimation))
ADDRFP4 12
INDIRI4
ARGI4
ADDRLP4 52
ADDRGP4 BG_FlippingAnim
CALLI4
ASGNI4
ADDRLP4 52
INDIRI4
CNSTI4 0
EQI4 $781
line 1564
;1564:				{
line 1565
;1565:					blendTime = 200;
ADDRLP4 16
CNSTI4 200
ASGNI4
line 1566
;1566:				}
ADDRGP4 $782
JUMPV
LABELV $781
line 1567
;1567:				else if ( oldAnim != -1 &&
ADDRLP4 56
ADDRLP4 12
INDIRI4
ASGNI4
ADDRLP4 56
INDIRI4
CNSTI4 -1
EQI4 $783
ADDRLP4 56
INDIRI4
ARGI4
ADDRLP4 60
ADDRGP4 BG_FlippingAnim
CALLI4
ASGNI4
ADDRLP4 60
INDIRI4
CNSTI4 0
EQI4 $783
line 1569
;1568:					(BG_FlippingAnim(oldAnim)) )
;1569:				{
line 1570
;1570:					blendTime = 200;
ADDRLP4 16
CNSTI4 200
ASGNI4
line 1571
;1571:				}
LABELV $783
LABELV $782
line 1572
;1572:			}
LABELV $779
line 1573
;1573:		}
LABELV $773
line 1575
;1574:
;1575:		animSpeed *= animSpeedMult;
ADDRLP4 8
ADDRLP4 8
INDIRF4
ADDRFP4 16
INDIRF4
MULF4
ASGNF4
line 1577
;1576:
;1577:		BG_SaberStartTransAnim(cent->currentState.fireflag, newAnimation, &animSpeed);
ADDRFP4 0
INDIRP4
CNSTI4 168
ADDP4
INDIRI4
ARGI4
ADDRFP4 12
INDIRI4
ARGI4
ADDRLP4 8
ARGP4
ADDRGP4 BG_SaberStartTransAnim
CALLV
pop
line 1579
;1578:
;1579:		if (torsoOnly)
ADDRFP4 20
INDIRI4
CNSTI4 0
EQI4 $785
line 1580
;1580:		{
line 1581
;1581:			lf->animationTorsoSpeed = animSpeedMult;
ADDRFP4 8
INDIRP4
CNSTI4 56
ADDP4
ADDRFP4 16
INDIRF4
ASGNF4
line 1582
;1582:		}
ADDRGP4 $786
JUMPV
LABELV $785
line 1584
;1583:		else
;1584:		{
line 1585
;1585:			lf->animationSpeed = animSpeedMult;
ADDRFP4 8
INDIRP4
CNSTI4 52
ADDP4
ADDRFP4 16
INDIRF4
ASGNF4
line 1586
;1586:		}
LABELV $786
line 1588
;1587:
;1588:		if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $787
line 1589
;1589:		{
line 1590
;1590:			int atstBlend = 400;
ADDRLP4 40
CNSTI4 400
ASGNI4
line 1592
;1591:
;1592:			if (torsoOnly)
ADDRFP4 20
INDIRI4
CNSTI4 0
EQI4 $789
line 1593
;1593:			{
line 1594
;1594:				trap_G2API_SetBoneAnim(cent->ghoul2, 0, "pelvis", anim->firstFrame, anim->firstFrame + anim->numFrames, flags, animSpeed, cg.time, -1, atstBlend);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $306
ARGP4
ADDRLP4 48
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 48
INDIRI4
ARGI4
ADDRLP4 48
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ARGI4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 8
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
ADDRLP4 40
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 1595
;1595:			}
ADDRGP4 $788
JUMPV
LABELV $789
line 1597
;1596:			else
;1597:			{
line 1598
;1598:				trap_G2API_SetBoneAnim(cent->ghoul2, 0, "model_root", anim->firstFrame, anim->firstFrame + anim->numFrames, flags, animSpeed, cg.time, -1, atstBlend);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $310
ARGP4
ADDRLP4 48
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 48
INDIRI4
ARGI4
ADDRLP4 48
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ARGI4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 8
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
ADDRLP4 40
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 1599
;1599:			}
line 1600
;1600:		}
ADDRGP4 $788
JUMPV
LABELV $787
line 1602
;1601:		else
;1602:		{
line 1603
;1603:			int beginFrame = anim->firstFrame;
ADDRLP4 40
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
line 1605
;1604:
;1605:			if (torsoOnly)
ADDRFP4 20
INDIRI4
CNSTI4 0
EQI4 $793
line 1606
;1606:			{
line 1607
;1607:				if ((cent->currentState.torsoAnim&~ANIM_TOGGLEBIT) == (cent->currentState.legsAnim&~ANIM_TOGGLEBIT) && cent->pe.legs.frame >= anim->firstFrame && cent->pe.legs.frame <= (anim->firstFrame + anim->numFrames))
ADDRLP4 44
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 48
CNSTI4 -2049
ASGNI4
ADDRLP4 44
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
ADDRLP4 48
INDIRI4
BANDI4
ADDRLP4 44
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
ADDRLP4 48
INDIRI4
BANDI4
NEI4 $795
ADDRLP4 52
ADDRLP4 44
INDIRP4
CNSTI4 652
ADDP4
INDIRI4
ASGNI4
ADDRLP4 60
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 52
INDIRI4
ADDRLP4 60
INDIRI4
LTI4 $795
ADDRLP4 52
INDIRI4
ADDRLP4 60
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
GTI4 $795
line 1608
;1608:				{
line 1609
;1609:					trap_G2API_SetBoneAnim(cent->ghoul2, 0, "lower_lumbar", anim->firstFrame, anim->firstFrame + anim->numFrames, flags, animSpeed,cg.time, cent->pe.legs.frame, blendTime);
ADDRLP4 64
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 64
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $323
ARGP4
ADDRLP4 72
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 72
INDIRI4
ARGI4
ADDRLP4 72
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ARGI4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 8
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRLP4 64
INDIRP4
CNSTI4 652
ADDP4
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 16
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 1610
;1610:					beginFrame = cent->pe.legs.frame;
ADDRLP4 40
ADDRFP4 0
INDIRP4
CNSTI4 652
ADDP4
INDIRI4
ASGNI4
line 1611
;1611:				}
ADDRGP4 $796
JUMPV
LABELV $795
line 1613
;1612:				else
;1613:				{
line 1614
;1614:					trap_G2API_SetBoneAnim(cent->ghoul2, 0, "lower_lumbar", anim->firstFrame, anim->firstFrame + anim->numFrames, flags, animSpeed,cg.time, -1, blendTime);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $323
ARGP4
ADDRLP4 68
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 68
INDIRI4
ARGI4
ADDRLP4 68
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ARGI4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 8
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
ADDRLP4 16
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 1615
;1615:				}
LABELV $796
line 1616
;1616:				cgs.clientinfo[cent->currentState.number].torsoAnim = newAnimation;
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+784
ADDP4
ADDRFP4 12
INDIRI4
ASGNI4
line 1617
;1617:			}
ADDRGP4 $794
JUMPV
LABELV $793
line 1619
;1618:			else
;1619:			{
line 1620
;1620:				trap_G2API_SetBoneAnim(cent->ghoul2, 0, "model_root", anim->firstFrame, anim->firstFrame + anim->numFrames, flags, animSpeed, cg.time, -1, blendTime);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $310
ARGP4
ADDRLP4 48
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 48
INDIRI4
ARGI4
ADDRLP4 48
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ARGI4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 8
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
ADDRLP4 16
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 1622
;1621:				//cgs.clientinfo[cent->currentState.number].torsoAnim = newAnimation;
;1622:				cgs.clientinfo[cent->currentState.number].legsAnim = newAnimation;
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+780
ADDP4
ADDRFP4 12
INDIRI4
ASGNI4
line 1623
;1623:			}
LABELV $794
line 1625
;1624:
;1625:			if ((cent->currentState.torsoAnim&~ANIM_TOGGLEBIT) == newAnimation)
ADDRFP4 0
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ADDRFP4 12
INDIRI4
NEI4 $804
line 1626
;1626:			{
line 1627
;1627:				if (beginFrame != anim->firstFrame)
ADDRLP4 40
INDIRI4
ADDRLP4 0
INDIRP4
INDIRI4
EQI4 $806
line 1628
;1628:				{
line 1629
;1629:					trap_G2API_SetBoneAnim(cent->ghoul2, 0, "Motion", anim->firstFrame, anim->firstFrame + anim->numFrames, flags, animSpeed, cg.time, beginFrame, blendTime);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $322
ARGP4
ADDRLP4 48
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 48
INDIRI4
ARGI4
ADDRLP4 48
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ARGI4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 8
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRLP4 40
INDIRI4
CVIF4 4
ARGF4
ADDRLP4 16
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 1630
;1630:				}
ADDRGP4 $807
JUMPV
LABELV $806
line 1632
;1631:				else
;1632:				{
line 1633
;1633:					trap_G2API_SetBoneAnim(cent->ghoul2, 0, "Motion", anim->firstFrame, anim->firstFrame + anim->numFrames, flags, animSpeed, cg.time, -1, blendTime);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $322
ARGP4
ADDRLP4 48
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 48
INDIRI4
ARGI4
ADDRLP4 48
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ARGI4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 8
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
ADDRLP4 16
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 1634
;1634:				}
LABELV $807
line 1635
;1635:			}
LABELV $804
line 1636
;1636:		}
LABELV $788
line 1637
;1637:	}
LABELV $758
line 1638
;1638:}
LABELV $685
endproc CG_SetLerpFrameAnimation 76 40
proc CG_FirstAnimFrame 4 0
line 1654
;1639:
;1640:
;1641:/*
;1642:===============
;1643:CG_FirstAnimFrame
;1644:
;1645:Returns true if the lerpframe is on its first frame of animation.
;1646:Otherwise false.
;1647:
;1648:This is used to scale an animation into higher-speed without restarting
;1649:the animation before it completes at normal speed, in the case of a looping
;1650:animation (such as the leg running anim).
;1651:===============
;1652:*/
;1653:static qboolean CG_FirstAnimFrame(lerpFrame_t *lf, qboolean torsoOnly, float speedScale)
;1654:{
line 1655
;1655:	if (torsoOnly)
ADDRFP4 4
INDIRI4
CNSTI4 0
EQI4 $811
line 1656
;1656:	{
line 1657
;1657:		if (lf->animationTorsoSpeed == speedScale)
ADDRFP4 0
INDIRP4
CNSTI4 56
ADDP4
INDIRF4
ADDRFP4 8
INDIRF4
NEF4 $812
line 1658
;1658:		{
line 1659
;1659:			return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $810
JUMPV
line 1661
;1660:		}
;1661:	}
LABELV $811
line 1663
;1662:	else
;1663:	{
line 1664
;1664:		if (lf->animationSpeed == speedScale)
ADDRFP4 0
INDIRP4
CNSTI4 52
ADDP4
INDIRF4
ADDRFP4 8
INDIRF4
NEF4 $815
line 1665
;1665:		{
line 1666
;1666:			return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $810
JUMPV
LABELV $815
line 1668
;1667:		}
;1668:	}
LABELV $812
line 1670
;1669:
;1670:	if (lf->animation->numFrames < 2)
ADDRFP4 0
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
CNSTI4 2
GEI4 $817
line 1671
;1671:	{
line 1672
;1672:		return qtrue;
CNSTI4 1
RETI4
ADDRGP4 $810
JUMPV
LABELV $817
line 1675
;1673:	}
;1674:
;1675:	if (lf->animation->firstFrame == lf->frame)
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 0
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
NEI4 $819
line 1676
;1676:	{
line 1677
;1677:		return qtrue;
CNSTI4 1
RETI4
ADDRGP4 $810
JUMPV
LABELV $819
line 1680
;1678:	}
;1679:
;1680:	return qfalse;
CNSTI4 0
RETI4
LABELV $810
endproc CG_FirstAnimFrame 4 0
export CG_InWalkingAnim
proc CG_InWalkingAnim 20 0
line 1692
;1681:}
;1682:
;1683:/*
;1684:===============
;1685:CG_InWalkingAnim
;1686:
;1687:Returns last frame to step on if the animation on the frame is desired for playing footstep sounds,
;1688:otherwise 0
;1689:===============
;1690:*/
;1691:int CG_InWalkingAnim(int animNum)
;1692:{
line 1693
;1693:	int anim = animNum;
ADDRLP4 0
ADDRFP4 0
INDIRI4
ASGNI4
line 1695
;1694:	
;1695:	anim &= ~ANIM_TOGGLEBIT;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
line 1697
;1696:
;1697:	if (anim == BOTH_WALL_RUN_RIGHT ||
ADDRLP4 0
INDIRI4
CNSTI4 915
EQI4 $824
ADDRLP4 0
INDIRI4
CNSTI4 918
NEI4 $822
LABELV $824
line 1699
;1698:		anim == BOTH_WALL_RUN_LEFT)
;1699:	{
line 1700
;1700:		return 8;
CNSTI4 8
RETI4
ADDRGP4 $821
JUMPV
LABELV $822
line 1703
;1701:	}
;1702:
;1703:	if (anim >= BOTH_WALK1 &&
ADDRLP4 0
INDIRI4
CNSTI4 822
LTI4 $825
ADDRLP4 0
INDIRI4
CNSTI4 850
GTI4 $825
line 1705
;1704:		anim <= BOTH_RUNAWAY1)
;1705:	{
line 1706
;1706:		if (anim == BOTH_RUN1)
ADDRLP4 0
INDIRI4
CNSTI4 833
NEI4 $827
line 1707
;1707:		{
line 1708
;1708:			return 18;//12;
CNSTI4 18
RETI4
ADDRGP4 $821
JUMPV
LABELV $827
line 1711
;1709:		}
;1710:		else
;1711:		{
line 1713
;1712:			//return 9;
;1713:			return 18;
CNSTI4 18
RETI4
ADDRGP4 $821
JUMPV
LABELV $825
line 1717
;1714:		}
;1715:	}
;1716:
;1717:	if (anim >= BOTH_WALKBACK1 &&
ADDRLP4 0
INDIRI4
CNSTI4 852
LTI4 $829
ADDRLP4 0
INDIRI4
CNSTI4 855
GTI4 $829
line 1719
;1718:		anim <= BOTH_RUNBACK2)
;1719:	{
line 1720
;1720:		if (anim == BOTH_WALKBACK1)
ADDRLP4 0
INDIRI4
CNSTI4 852
NEI4 $831
line 1721
;1721:		{
line 1722
;1722:			return 18;
CNSTI4 18
RETI4
ADDRGP4 $821
JUMPV
LABELV $831
line 1725
;1723:		}
;1724:		else
;1725:		{
line 1726
;1726:			return 9;
CNSTI4 9
RETI4
ADDRGP4 $821
JUMPV
LABELV $829
line 1730
;1727:		}
;1728:	}
;1729:
;1730:	if (anim >= LEGS_WALKBACK1 &&
ADDRLP4 0
INDIRI4
CNSTI4 1139
LTI4 $833
ADDRLP4 0
INDIRI4
CNSTI4 1142
GTI4 $833
line 1732
;1731:		anim <= LEGS_RUNBACK2)
;1732:	{
line 1733
;1733:		if (anim == LEGS_WALKBACK1)
ADDRLP4 0
INDIRI4
CNSTI4 1139
NEI4 $835
line 1734
;1734:		{
line 1735
;1735:			return 18;
CNSTI4 18
RETI4
ADDRGP4 $821
JUMPV
LABELV $835
line 1738
;1736:		}
;1737:		else
;1738:		{
line 1739
;1739:			return 9;
CNSTI4 9
RETI4
ADDRGP4 $821
JUMPV
LABELV $833
line 1743
;1740:		}
;1741:	}
;1742:
;1743:	return qfalse;
CNSTI4 0
RETI4
LABELV $821
endproc CG_InWalkingAnim 20 0
lit
align 4
LABELV $838
byte 4 3245342720
byte 4 3245342720
byte 4 3250585600
align 4
LABELV $839
byte 4 1097859072
byte 4 1097859072
byte 4 1109393408
code
proc CG_FootstepForSurface 1204 36
line 1750
;1744:}
;1745:
;1746:#define FOOTSTEP_GENERIC					1
;1747:#define FOOTSTEP_METAL						2
;1748:
;1749:static int CG_FootstepForSurface( centity_t *cent, int skip )
;1750:{
line 1753
;1751:	trace_t tr;
;1752:	vec3_t org, dOrg, legDir, bAngles;
;1753:	vec3_t playerMins = {-15, -15, DEFAULT_MINS_2};
ADDRLP4 1176
ADDRGP4 $838
INDIRB
ASGNB 12
line 1754
;1754:	vec3_t playerMaxs = {15, 15, DEFAULT_MAXS_2};
ADDRLP4 1188
ADDRGP4 $839
INDIRB
ASGNB 12
line 1764
;1755:	mdxaBone_t boltMatrix;
;1756:
;1757://	VectorCopy(ent->lerpOrigin, org);
;1758://	VectorCopy(org, dOrg);
;1759://	dOrg[2] -= 64; //should never have to go further than this because we're already onground
;1760:
;1761:	//We are now tracing off of a bolt point for footsteps, so that if we happen to be walking sideways on a wall we will
;1762:	//still play step sounds properly.
;1763:
;1764:	VectorCopy(cent->lerpAngles, bAngles);
ADDRLP4 1116
ADDRFP4 0
INDIRP4
CNSTI4 940
ADDP4
INDIRB
ASGNB 12
line 1765
;1765:	bAngles[PITCH] = 0;
ADDRLP4 1116
CNSTF4 0
ASGNF4
line 1767
;1766:
;1767:	trap_G2API_GetBoltMatrix_NoReconstruct( cent->ghoul2, 0, cgs.clientinfo[cent->currentState.number].bolt_llumbar, &boltMatrix, bAngles, cent->lerpOrigin, cg.time, /*cgs.gameModels*/0, cent->modelScale);
ADDRLP4 1200
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1200
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 812
ADDRLP4 1200
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+528
ADDP4
INDIRI4
ARGI4
ADDRLP4 1128
ARGP4
ADDRLP4 1116
ARGP4
ADDRLP4 1200
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTP4 0
ARGP4
ADDRLP4 1200
INDIRP4
CNSTI4 964
ADDP4
ARGP4
ADDRGP4 trap_G2API_GetBoltMatrix_NoReconstruct
CALLI4
pop
line 1768
;1768:	trap_G2API_GiveMeVectorFromMatrix( &boltMatrix, ORIGIN, org );
ADDRLP4 1128
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 0
ARGP4
ADDRGP4 trap_G2API_GiveMeVectorFromMatrix
CALLV
pop
line 1769
;1769:	trap_G2API_GiveMeVectorFromMatrix( &boltMatrix, NEGATIVE_Y, legDir );
ADDRLP4 1128
ARGP4
CNSTI4 6
ARGI4
ADDRLP4 1104
ARGP4
ADDRGP4 trap_G2API_GiveMeVectorFromMatrix
CALLV
pop
line 1771
;1770:
;1771:	dOrg[0] = org[0] + legDir[0]*64;
ADDRLP4 1092
ADDRLP4 0
INDIRF4
CNSTF4 1115684864
ADDRLP4 1104
INDIRF4
MULF4
ADDF4
ASGNF4
line 1772
;1772:	dOrg[1] = org[1] + legDir[1]*64;
ADDRLP4 1092+4
ADDRLP4 0+4
INDIRF4
CNSTF4 1115684864
ADDRLP4 1104+4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1773
;1773:	dOrg[2] = org[2] + legDir[2]*64;
ADDRLP4 1092+8
ADDRLP4 0+8
INDIRF4
CNSTF4 1115684864
ADDRLP4 1104+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 1777
;1774:
;1775:	//CG_TestLine(org, dOrg, 100, 0x0000ff, 3);
;1776:
;1777:	CG_Trace(&tr, org, playerMins, playerMaxs, dOrg, skip, MASK_PLAYERSOLID);
ADDRLP4 12
ARGP4
ADDRLP4 0
ARGP4
ADDRLP4 1176
ARGP4
ADDRLP4 1188
ARGP4
ADDRLP4 1092
ARGP4
ADDRFP4 4
INDIRI4
ARGI4
CNSTI4 273
ARGI4
ADDRGP4 CG_Trace
CALLV
pop
line 1779
;1778:
;1779:	if (tr.fraction == 1)
ADDRLP4 12+8
INDIRF4
CNSTF4 1065353216
NEF4 $849
line 1780
;1780:	{
line 1781
;1781:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $837
JUMPV
LABELV $849
line 1784
;1782:	}
;1783:
;1784:	if ( tr.surfaceFlags & SURF_NOSTEPS )
ADDRLP4 12+44
INDIRI4
CNSTI4 4194304
BANDI4
CNSTI4 0
EQI4 $852
line 1785
;1785:	{
line 1786
;1786:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $837
JUMPV
LABELV $852
line 1789
;1787:	}
;1788:
;1789:	if ( tr.surfaceFlags & SURF_METALSTEPS )
ADDRLP4 12+44
INDIRI4
CNSTI4 32768
BANDI4
CNSTI4 0
EQI4 $855
line 1790
;1790:	{
line 1791
;1791:		return FOOTSTEP_METAL;
CNSTI4 2
RETI4
ADDRGP4 $837
JUMPV
LABELV $855
line 1794
;1792:	}
;1793:
;1794:	return FOOTSTEP_GENERIC;
CNSTI4 1
RETI4
LABELV $837
endproc CG_FootstepForSurface 1204 36
export CG_FootStep
proc CG_FootStep 28 16
line 1798
;1795:}
;1796:
;1797:void CG_FootStep(centity_t *cent, clientInfo_t *ci, int anim)
;1798:{
line 1801
;1799:	int groundType;
;1800:
;1801:	if ((anim & ~ANIM_TOGGLEBIT) == BOTH_WALL_RUN_RIGHT ||
ADDRLP4 4
ADDRFP4 8
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 915
EQI4 $861
ADDRLP4 4
INDIRI4
CNSTI4 918
NEI4 $859
LABELV $861
line 1803
;1802:		(anim & ~ANIM_TOGGLEBIT) == BOTH_WALL_RUN_LEFT)
;1803:	{
line 1804
;1804:		groundType = FOOTSTEP_GENERIC;
ADDRLP4 0
CNSTI4 1
ASGNI4
line 1805
;1805:		goto skipCheck;
ADDRGP4 $862
JUMPV
LABELV $859
line 1808
;1806:	}
;1807:
;1808:	if (cent->currentState.groundEntityNum == ENTITYNUM_NONE)
ADDRFP4 0
INDIRP4
CNSTI4 192
ADDP4
INDIRI4
CNSTI4 1023
NEI4 $863
line 1809
;1809:	{
line 1810
;1810:		return;
ADDRGP4 $858
JUMPV
LABELV $863
LABELV $862
line 1814
;1811:	}
;1812:
;1813:skipCheck:
;1814:	groundType = CG_FootstepForSurface(cent, cent->currentState.number);
ADDRLP4 8
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 8
INDIRP4
ARGP4
ADDRLP4 8
INDIRP4
INDIRI4
ARGI4
ADDRLP4 12
ADDRGP4 CG_FootstepForSurface
CALLI4
ASGNI4
ADDRLP4 0
ADDRLP4 12
INDIRI4
ASGNI4
line 1818
;1815:
;1816://skipCheck:
;1817:
;1818:	if (!groundType)
ADDRLP4 0
INDIRI4
CNSTI4 0
NEI4 $865
line 1819
;1819:	{
line 1820
;1820:		return;
ADDRGP4 $858
JUMPV
LABELV $865
line 1823
;1821:	}
;1822:
;1823:	switch (groundType)
ADDRLP4 0
INDIRI4
CNSTI4 1
EQI4 $869
ADDRLP4 0
INDIRI4
CNSTI4 2
EQI4 $872
ADDRGP4 $868
JUMPV
line 1824
;1824:	{
LABELV $869
line 1826
;1825:	case FOOTSTEP_GENERIC:
;1826:		trap_S_StartSound (NULL, cent->currentState.number, CHAN_BODY, 
ADDRLP4 20
ADDRGP4 rand
CALLI4
ASGNI4
CNSTP4 0
ARGP4
ADDRFP4 0
INDIRP4
INDIRI4
ARGI4
CNSTI4 5
ARGI4
ADDRLP4 20
INDIRI4
CNSTI4 3
BANDI4
CNSTI4 2
LSHI4
ADDRFP4 4
INDIRP4
CNSTI4 476
ADDP4
INDIRI4
CNSTI4 4
LSHI4
ADDRGP4 cgs+71064+604
ADDP4
ADDP4
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
line 1828
;1827:			cgs.media.footsteps[ ci->footsteps ][rand()&3] );
;1828:		break;
ADDRGP4 $868
JUMPV
LABELV $872
line 1830
;1829:	case FOOTSTEP_METAL:
;1830:		trap_S_StartSound (NULL, cent->currentState.number, CHAN_BODY, 
ADDRLP4 24
ADDRGP4 rand
CALLI4
ASGNI4
CNSTP4 0
ARGP4
ADDRFP4 0
INDIRP4
INDIRI4
ARGI4
CNSTI4 5
ARGI4
ADDRLP4 24
INDIRI4
CNSTI4 3
BANDI4
CNSTI4 2
LSHI4
ADDRGP4 cgs+71064+604+32
ADDP4
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
line 1832
;1831:			cgs.media.footsteps[ FOOTSTEP_METAL ][rand()&3] );
;1832:		break;
line 1834
;1833:	default:
;1834:		break;
LABELV $868
line 1836
;1835:	}
;1836:}
LABELV $858
endproc CG_FootStep 28 16
proc CG_RunLerpFrame 76 40
line 1846
;1837:/*
;1838:===============
;1839:CG_RunLerpFrame
;1840:
;1841:Sets cg.snap, cg.oldFrame, and cg.backlerp
;1842:cg.time should be between oldFrameTime and frameTime after exit
;1843:===============
;1844:*/
;1845:static void CG_RunLerpFrame( centity_t *cent, clientInfo_t *ci, lerpFrame_t *lf, int newAnimation, float speedScale, qboolean torsoOnly) 
;1846:{
line 1851
;1847:	int			f, numFrames;
;1848:	animation_t	*anim;
;1849:
;1850:	// debugging tool to get no animations
;1851:	if ( cg_animSpeed.integer == 0 ) {
ADDRGP4 cg_animSpeed+12
INDIRI4
CNSTI4 0
NEI4 $877
line 1852
;1852:		lf->oldFrame = lf->frame = lf->backlerp = 0;
ADDRLP4 12
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 16
CNSTF4 0
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 16
ADDP4
ADDRLP4 16
INDIRF4
ASGNF4
ADDRLP4 20
ADDRLP4 16
INDIRF4
CVFI4 4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 20
INDIRI4
ASGNI4
ADDRLP4 12
INDIRP4
ADDRLP4 20
INDIRI4
ASGNI4
line 1853
;1853:		return;
ADDRGP4 $876
JUMPV
LABELV $877
line 1857
;1854:	}
;1855:
;1856:	// see if the animation sequence is switching
;1857:	if (cent->currentState.forceFrame)
ADDRFP4 0
INDIRP4
CNSTI4 288
ADDP4
INDIRI4
CNSTI4 0
EQI4 $880
line 1858
;1858:	{
line 1859
;1859:		int flags = BONE_ANIM_OVERRIDE_FREEZE; //|BONE_ANIM_BLEND;
ADDRLP4 12
CNSTI4 72
ASGNI4
line 1860
;1860:		float animSpeed = 1.0f;
ADDRLP4 16
CNSTF4 1065353216
ASGNF4
line 1861
;1861:		trap_G2API_SetBoneAnim(cent->ghoul2, 0, "lower_lumbar", cent->currentState.forceFrame, cent->currentState.forceFrame+1, flags, animSpeed, cg.time, -1, 150);
ADDRLP4 20
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $323
ARGP4
ADDRLP4 24
ADDRLP4 20
INDIRP4
CNSTI4 288
ADDP4
INDIRI4
ASGNI4
ADDRLP4 24
INDIRI4
ARGI4
ADDRLP4 24
INDIRI4
CNSTI4 1
ADDI4
ARGI4
ADDRLP4 12
INDIRI4
ARGI4
ADDRLP4 16
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
CNSTI4 150
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 1862
;1862:		trap_G2API_SetBoneAnim(cent->ghoul2, 0, "model_root", cent->currentState.forceFrame, cent->currentState.forceFrame+1, flags, animSpeed, cg.time, -1, 150);
ADDRLP4 28
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 28
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $310
ARGP4
ADDRLP4 32
ADDRLP4 28
INDIRP4
CNSTI4 288
ADDP4
INDIRI4
ASGNI4
ADDRLP4 32
INDIRI4
ARGI4
ADDRLP4 32
INDIRI4
CNSTI4 1
ADDI4
ARGI4
ADDRLP4 12
INDIRI4
ARGI4
ADDRLP4 16
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
CNSTI4 150
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 1863
;1863:		trap_G2API_SetBoneAnim(cent->ghoul2, 0, "Motion", cent->currentState.forceFrame, cent->currentState.forceFrame+1, flags, animSpeed, cg.time, -1, 150);
ADDRLP4 36
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 36
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $322
ARGP4
ADDRLP4 40
ADDRLP4 36
INDIRP4
CNSTI4 288
ADDP4
INDIRI4
ASGNI4
ADDRLP4 40
INDIRI4
ARGI4
ADDRLP4 40
INDIRI4
CNSTI4 1
ADDI4
ARGI4
ADDRLP4 12
INDIRI4
ARGI4
ADDRLP4 16
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
CNSTI4 150
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 1865
;1864:
;1865:		lf->animationNumber = 0;
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
CNSTI4 0
ASGNI4
line 1866
;1866:	}
ADDRGP4 $881
JUMPV
LABELV $880
line 1867
;1867:	else if ( (newAnimation != lf->animationNumber || !lf->animation) || (CG_FirstAnimFrame(lf, torsoOnly, speedScale)) ) 
ADDRLP4 12
ADDRFP4 8
INDIRP4
ASGNP4
ADDRFP4 12
INDIRI4
ADDRLP4 12
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
NEI4 $887
ADDRLP4 12
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $887
ADDRLP4 12
INDIRP4
ARGP4
ADDRFP4 20
INDIRI4
ARGI4
ADDRFP4 16
INDIRF4
ARGF4
ADDRLP4 16
ADDRGP4 CG_FirstAnimFrame
CALLI4
ASGNI4
ADDRLP4 16
INDIRI4
CNSTI4 0
EQI4 $885
LABELV $887
line 1868
;1868:	{
line 1869
;1869:		CG_SetLerpFrameAnimation( cent, ci, lf, newAnimation, speedScale, torsoOnly);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
ARGP4
ADDRFP4 12
INDIRI4
ARGI4
ADDRFP4 16
INDIRF4
ARGF4
ADDRFP4 20
INDIRI4
ARGI4
ADDRGP4 CG_SetLerpFrameAnimation
CALLV
pop
line 1870
;1870:	}
ADDRGP4 $886
JUMPV
LABELV $885
line 1871
;1871:	else if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $888
line 1872
;1872:	{
line 1873
;1873:		if (cent->pe.legs.yawing != !lf->torsoYawing)
ADDRFP4 8
INDIRP4
CNSTI4 60
ADDP4
INDIRI4
CNSTI4 0
NEI4 $893
ADDRLP4 20
CNSTI4 1
ASGNI4
ADDRGP4 $894
JUMPV
LABELV $893
ADDRLP4 20
CNSTI4 0
ASGNI4
LABELV $894
ADDRFP4 0
INDIRP4
CNSTI4 668
ADDP4
INDIRI4
ADDRLP4 20
INDIRI4
EQI4 $890
line 1874
;1874:		{
line 1875
;1875:			CG_SetLerpFrameAnimation( cent, ci, lf, newAnimation, speedScale, torsoOnly);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
ARGP4
ADDRFP4 12
INDIRI4
ARGI4
ADDRFP4 16
INDIRF4
ARGF4
ADDRFP4 20
INDIRI4
ARGI4
ADDRGP4 CG_SetLerpFrameAnimation
CALLV
pop
line 1876
;1876:			lf->torsoYawing = cent->pe.legs.yawing;
ADDRFP4 8
INDIRP4
CNSTI4 60
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 668
ADDP4
INDIRI4
ASGNI4
line 1877
;1877:		}
LABELV $890
line 1878
;1878:	}
LABELV $888
LABELV $886
LABELV $881
line 1882
;1879:
;1880:	// if we have passed the current frame, move it to
;1881:	// oldFrame and calculate a new frame
;1882:	if ( cg.time >= lf->frameTime ) {
ADDRGP4 cg+64
INDIRI4
ADDRFP4 8
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
LTI4 $895
line 1883
;1883:		if (lf->oldFrame != lf->frame &&
ADDRLP4 20
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
INDIRI4
ADDRLP4 20
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
EQI4 $898
ADDRLP4 20
INDIRP4
CVPU4 4
ADDRFP4 0
INDIRP4
CNSTI4 644
ADDP4
CVPU4 4
NEU4 $898
line 1885
;1884:			lf == &(cent->pe.legs))
;1885:		{
line 1886
;1886:			int addFinalFrame = CG_InWalkingAnim(lf->animationNumber); //9;
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRLP4 28
ADDRGP4 CG_InWalkingAnim
CALLI4
ASGNI4
ADDRLP4 24
ADDRLP4 28
INDIRI4
ASGNI4
line 1888
;1887:
;1888:			if (!cent->isATST &&
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
NEI4 $900
ADDRLP4 32
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
ADDRLP4 32
INDIRI4
CNSTI4 915
EQI4 $902
ADDRLP4 32
INDIRI4
CNSTI4 918
NEI4 $900
LABELV $902
ADDRLP4 24
INDIRI4
CNSTI4 0
EQI4 $900
line 1891
;1889:				((lf->animationNumber&~ANIM_TOGGLEBIT) == BOTH_WALL_RUN_RIGHT || (lf->animationNumber&~ANIM_TOGGLEBIT) == BOTH_WALL_RUN_LEFT) &&
;1890:				addFinalFrame)
;1891:			{
line 1892
;1892:				if ( lf->frame >= (lf->animation->firstFrame+2) &&
ADDRLP4 36
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 40
ADDRLP4 36
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
INDIRI4
CNSTI4 2
ADDI4
ASGNI4
ADDRLP4 36
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ADDRLP4 40
INDIRI4
LTI4 $903
ADDRLP4 36
INDIRP4
INDIRI4
ADDRLP4 40
INDIRI4
GEI4 $903
line 1894
;1893:					lf->oldFrame < (lf->animation->firstFrame+2))
;1894:				{
line 1895
;1895:					CG_FootStep(cent, ci, lf->animationNumber);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_FootStep
CALLV
pop
line 1896
;1896:				}
ADDRGP4 $901
JUMPV
LABELV $903
line 1897
;1897:				else if ( lf->frame >= (lf->animation->firstFrame+addFinalFrame) &&
ADDRLP4 44
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 48
ADDRLP4 44
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
INDIRI4
ADDRLP4 24
INDIRI4
ADDI4
ASGNI4
ADDRLP4 44
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ADDRLP4 48
INDIRI4
LTI4 $905
ADDRLP4 44
INDIRP4
INDIRI4
ADDRLP4 48
INDIRI4
GEI4 $905
line 1899
;1898:					lf->oldFrame < (lf->animation->firstFrame+addFinalFrame))
;1899:				{
line 1900
;1900:					CG_FootStep(cent, ci, lf->animationNumber);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_FootStep
CALLV
pop
line 1901
;1901:				}
ADDRGP4 $901
JUMPV
LABELV $905
line 1902
;1902:				else if ( lf->frame >= (lf->animation->firstFrame+12) &&
ADDRLP4 52
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 56
ADDRLP4 52
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
INDIRI4
CNSTI4 12
ADDI4
ASGNI4
ADDRLP4 52
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ADDRLP4 56
INDIRI4
LTI4 $907
ADDRLP4 52
INDIRP4
INDIRI4
ADDRLP4 56
INDIRI4
GEI4 $907
line 1904
;1903:					lf->oldFrame < (lf->animation->firstFrame+12))
;1904:				{
line 1905
;1905:					CG_FootStep(cent, ci, lf->animationNumber);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_FootStep
CALLV
pop
line 1906
;1906:				}
ADDRGP4 $901
JUMPV
LABELV $907
line 1907
;1907:				else if ( lf->frame >= (lf->animation->firstFrame+16) &&
ADDRLP4 60
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 64
ADDRLP4 60
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
INDIRI4
CNSTI4 16
ADDI4
ASGNI4
ADDRLP4 60
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ADDRLP4 64
INDIRI4
LTI4 $909
ADDRLP4 60
INDIRP4
INDIRI4
ADDRLP4 64
INDIRI4
GEI4 $909
line 1909
;1908:					lf->oldFrame < (lf->animation->firstFrame+16))
;1909:				{
line 1910
;1910:					CG_FootStep(cent, ci, lf->animationNumber);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_FootStep
CALLV
pop
line 1911
;1911:				}
ADDRGP4 $901
JUMPV
LABELV $909
line 1912
;1912:				else if (lf->oldFrame > lf->frame && lf->frame > (lf->animation->firstFrame+1))
ADDRLP4 68
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 72
ADDRLP4 68
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ASGNI4
ADDRLP4 68
INDIRP4
INDIRI4
ADDRLP4 72
INDIRI4
LEI4 $901
ADDRLP4 72
INDIRI4
ADDRLP4 68
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
LEI4 $901
line 1913
;1913:				{ //missed one
line 1914
;1914:					CG_FootStep(cent, ci, lf->animationNumber);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_FootStep
CALLV
pop
line 1915
;1915:				}
line 1916
;1916:			}
ADDRGP4 $901
JUMPV
LABELV $900
line 1917
;1917:			else if (addFinalFrame && !cent->isATST)
ADDRLP4 36
CNSTI4 0
ASGNI4
ADDRLP4 24
INDIRI4
ADDRLP4 36
INDIRI4
EQI4 $913
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
ADDRLP4 36
INDIRI4
NEI4 $913
line 1918
;1918:			{
line 1919
;1919:				if ( lf->frame >= (lf->animation->firstFrame+3) &&
ADDRLP4 40
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 44
ADDRLP4 40
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
INDIRI4
CNSTI4 3
ADDI4
ASGNI4
ADDRLP4 40
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ADDRLP4 44
INDIRI4
LTI4 $915
ADDRLP4 40
INDIRP4
INDIRI4
ADDRLP4 44
INDIRI4
GEI4 $915
line 1921
;1920:					lf->oldFrame < (lf->animation->firstFrame+3))
;1921:				{
line 1922
;1922:					CG_FootStep(cent, ci, lf->animationNumber);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_FootStep
CALLV
pop
line 1923
;1923:				}
ADDRGP4 $916
JUMPV
LABELV $915
line 1924
;1924:				else if ( lf->frame >= (lf->animation->firstFrame+addFinalFrame) &&
ADDRLP4 48
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 52
ADDRLP4 48
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
INDIRI4
ADDRLP4 24
INDIRI4
ADDI4
ASGNI4
ADDRLP4 48
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ADDRLP4 52
INDIRI4
LTI4 $917
ADDRLP4 48
INDIRP4
INDIRI4
ADDRLP4 52
INDIRI4
GEI4 $917
line 1926
;1925:					lf->oldFrame < (lf->animation->firstFrame+addFinalFrame))
;1926:				{
line 1927
;1927:					CG_FootStep(cent, ci, lf->animationNumber);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_FootStep
CALLV
pop
line 1928
;1928:				}
ADDRGP4 $918
JUMPV
LABELV $917
line 1929
;1929:				else if (lf->oldFrame > lf->frame && lf->frame > (lf->animation->firstFrame+1))
ADDRLP4 56
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 60
ADDRLP4 56
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ASGNI4
ADDRLP4 56
INDIRP4
INDIRI4
ADDRLP4 60
INDIRI4
LEI4 $919
ADDRLP4 60
INDIRI4
ADDRLP4 56
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
LEI4 $919
line 1930
;1930:				{ //missed one
line 1931
;1931:					CG_FootStep(cent, ci, lf->animationNumber);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_FootStep
CALLV
pop
line 1932
;1932:				}
LABELV $919
LABELV $918
LABELV $916
line 1933
;1933:			}
LABELV $913
LABELV $901
line 1934
;1934:		}
LABELV $898
line 1936
;1935:
;1936:		lf->oldFrame = lf->frame;
ADDRLP4 24
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 24
INDIRP4
ADDRLP4 24
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ASGNI4
line 1937
;1937:		lf->oldFrameTime = lf->frameTime;
ADDRLP4 28
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 28
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 28
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
ASGNI4
line 1940
;1938:
;1939:		// get the next frame based on the animation
;1940:		anim = lf->animation;
ADDRLP4 0
ADDRFP4 8
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
ASGNP4
line 1941
;1941:		if ( !anim->frameLerp ) {
ADDRLP4 0
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
NEI4 $921
line 1942
;1942:			return;		// shouldn't happen
ADDRGP4 $876
JUMPV
LABELV $921
line 1945
;1943:		}
;1944:
;1945:		if ( cg.time < lf->animationTime ) {
ADDRGP4 cg+64
INDIRI4
ADDRFP4 8
INDIRP4
CNSTI4 48
ADDP4
INDIRI4
GEI4 $923
line 1946
;1946:			lf->frameTime = lf->animationTime;		// initial lerp
ADDRLP4 32
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 32
INDIRP4
CNSTI4 12
ADDP4
ADDRLP4 32
INDIRP4
CNSTI4 48
ADDP4
INDIRI4
ASGNI4
line 1947
;1947:		} else {
ADDRGP4 $924
JUMPV
LABELV $923
line 1948
;1948:			lf->frameTime = lf->oldFrameTime + anim->frameLerp;
ADDRLP4 32
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 36
CNSTI4 12
ASGNI4
ADDRLP4 32
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
ADDRLP4 32
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDRLP4 0
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
INDIRI4
ADDI4
ASGNI4
line 1949
;1949:		}
LABELV $924
line 1950
;1950:		f = ( lf->frameTime - lf->animationTime ) / anim->frameLerp;
ADDRLP4 32
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 36
CNSTI4 12
ASGNI4
ADDRLP4 4
ADDRLP4 32
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
INDIRI4
ADDRLP4 32
INDIRP4
CNSTI4 48
ADDP4
INDIRI4
SUBI4
ADDRLP4 0
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
INDIRI4
DIVI4
ASGNI4
line 1951
;1951:		f *= speedScale;		// adjust for haste, etc
ADDRLP4 4
ADDRLP4 4
INDIRI4
CVIF4 4
ADDRFP4 16
INDIRF4
MULF4
CVFI4 4
ASGNI4
line 1953
;1952:
;1953:		numFrames = anim->numFrames;
ADDRLP4 8
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ASGNI4
line 1954
;1954:		if (anim->flipflop) {
ADDRLP4 0
INDIRP4
CNSTI4 24
ADDP4
INDIRI4
CNSTI4 0
EQI4 $926
line 1955
;1955:			numFrames *= 2;
ADDRLP4 8
ADDRLP4 8
INDIRI4
CNSTI4 1
LSHI4
ASGNI4
line 1956
;1956:		}
LABELV $926
line 1957
;1957:		if ( f >= numFrames ) {
ADDRLP4 4
INDIRI4
ADDRLP4 8
INDIRI4
LTI4 $928
line 1958
;1958:			f -= numFrames;
ADDRLP4 4
ADDRLP4 4
INDIRI4
ADDRLP4 8
INDIRI4
SUBI4
ASGNI4
line 1959
;1959:			if ( anim->loopFrames != -1 ) //Before 0 meant no loop
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 -1
EQI4 $930
line 1960
;1960:			{
line 1961
;1961:				if(anim->numFrames - anim->loopFrames == 0)
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
SUBI4
CNSTI4 0
NEI4 $932
line 1962
;1962:				{
line 1963
;1963:					f %= anim->numFrames;
ADDRLP4 4
ADDRLP4 4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
MODI4
ASGNI4
line 1964
;1964:				}
ADDRGP4 $933
JUMPV
LABELV $932
line 1966
;1965:				else
;1966:				{
line 1967
;1967:					f %= (anim->numFrames - anim->loopFrames);
ADDRLP4 4
ADDRLP4 4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
SUBI4
MODI4
ASGNI4
line 1968
;1968:				}
LABELV $933
line 1969
;1969:				f += anim->loopFrames;
ADDRLP4 4
ADDRLP4 4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ADDI4
ASGNI4
line 1970
;1970:			} 
ADDRGP4 $931
JUMPV
LABELV $930
line 1972
;1971:			else 
;1972:			{
line 1973
;1973:				f = numFrames - 1;
ADDRLP4 4
ADDRLP4 8
INDIRI4
CNSTI4 1
SUBI4
ASGNI4
line 1976
;1974:				// the animation is stuck at the end, so it
;1975:				// can immediately transition to another sequence
;1976:				lf->frameTime = cg.time;
ADDRFP4 8
INDIRP4
CNSTI4 12
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 1977
;1977:			}
LABELV $931
line 1978
;1978:		}
LABELV $928
line 1979
;1979:		if ( anim->reversed ) {
ADDRLP4 0
INDIRP4
CNSTI4 20
ADDP4
INDIRI4
CNSTI4 0
EQI4 $935
line 1980
;1980:			lf->frame = anim->firstFrame + anim->numFrames - 1 - f;
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 0
INDIRP4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
CNSTI4 1
SUBI4
ADDRLP4 4
INDIRI4
SUBI4
ASGNI4
line 1981
;1981:		}
ADDRGP4 $936
JUMPV
LABELV $935
line 1982
;1982:		else if (anim->flipflop && f>=anim->numFrames) {
ADDRLP4 0
INDIRP4
CNSTI4 24
ADDP4
INDIRI4
CNSTI4 0
EQI4 $937
ADDRLP4 4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
LTI4 $937
line 1983
;1983:			lf->frame = anim->firstFrame + anim->numFrames - 1 - (f%anim->numFrames);
ADDRLP4 48
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ASGNI4
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 0
INDIRP4
INDIRI4
ADDRLP4 48
INDIRI4
ADDI4
CNSTI4 1
SUBI4
ADDRLP4 4
INDIRI4
ADDRLP4 48
INDIRI4
MODI4
SUBI4
ASGNI4
line 1984
;1984:		}
ADDRGP4 $938
JUMPV
LABELV $937
line 1985
;1985:		else {
line 1986
;1986:			lf->frame = anim->firstFrame + f;
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 0
INDIRP4
INDIRI4
ADDRLP4 4
INDIRI4
ADDI4
ASGNI4
line 1987
;1987:		}
LABELV $938
LABELV $936
line 1988
;1988:		if ( cg.time > lf->frameTime ) {
ADDRGP4 cg+64
INDIRI4
ADDRFP4 8
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
LEI4 $939
line 1989
;1989:			lf->frameTime = cg.time;
ADDRFP4 8
INDIRP4
CNSTI4 12
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 1990
;1990:			if ( cg_debugAnim.integer && (cg_debugAnim.integer < 0 || cg_debugAnim.integer == cent->currentState.clientNum) ) {
ADDRLP4 44
CNSTI4 0
ASGNI4
ADDRGP4 cg_debugAnim+12
INDIRI4
ADDRLP4 44
INDIRI4
EQI4 $943
ADDRGP4 cg_debugAnim+12
INDIRI4
ADDRLP4 44
INDIRI4
LTI4 $948
ADDRGP4 cg_debugAnim+12
INDIRI4
ADDRFP4 0
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
NEI4 $943
LABELV $948
line 1991
;1991:				CG_Printf( "Clamp lf->frameTime\n");
ADDRGP4 $949
ARGP4
ADDRGP4 CG_Printf
CALLV
pop
line 1992
;1992:			}
LABELV $943
line 1993
;1993:		}
LABELV $939
line 1994
;1994:	}
LABELV $895
line 1996
;1995:
;1996:	if ( lf->frameTime > cg.time + 200 ) {
ADDRFP4 8
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
CNSTI4 200
ADDI4
LEI4 $950
line 1997
;1997:		lf->frameTime = cg.time;
ADDRFP4 8
INDIRP4
CNSTI4 12
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 1998
;1998:	}
LABELV $950
line 2000
;1999:
;2000:	if ( lf->oldFrameTime > cg.time ) {
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
LEI4 $954
line 2001
;2001:		lf->oldFrameTime = cg.time;
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 2002
;2002:	}
LABELV $954
line 2004
;2003:	// calculate current lerp value
;2004:	if ( lf->frameTime == lf->oldFrameTime ) {
ADDRLP4 20
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
ADDRLP4 20
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
NEI4 $958
line 2005
;2005:		lf->backlerp = 0;
ADDRFP4 8
INDIRP4
CNSTI4 16
ADDP4
CNSTF4 0
ASGNF4
line 2006
;2006:	} else {
ADDRGP4 $959
JUMPV
LABELV $958
line 2007
;2007:		lf->backlerp = 1.0 - (float)( cg.time - lf->oldFrameTime ) / ( lf->frameTime - lf->oldFrameTime );
ADDRLP4 24
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 28
ADDRLP4 24
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ASGNI4
ADDRLP4 24
INDIRP4
CNSTI4 16
ADDP4
CNSTF4 1065353216
ADDRGP4 cg+64
INDIRI4
ADDRLP4 28
INDIRI4
SUBI4
CVIF4 4
ADDRLP4 24
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
ADDRLP4 28
INDIRI4
SUBI4
CVIF4 4
DIVF4
SUBF4
ASGNF4
line 2008
;2008:	}
LABELV $959
line 2009
;2009:}
LABELV $876
endproc CG_RunLerpFrame 76 40
proc CG_ClearLerpFrame 16 24
line 2017
;2010:
;2011:
;2012:/*
;2013:===============
;2014:CG_ClearLerpFrame
;2015:===============
;2016:*/
;2017:static void CG_ClearLerpFrame( centity_t *cent, clientInfo_t *ci, lerpFrame_t *lf, int animationNumber, qboolean torsoOnly) {
line 2018
;2018:	lf->frameTime = lf->oldFrameTime = cg.time;
ADDRLP4 0
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 4
ADDRGP4 cg+64
INDIRI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 4
INDIRI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 12
ADDP4
ADDRLP4 4
INDIRI4
ASGNI4
line 2019
;2019:	CG_SetLerpFrameAnimation( cent, ci, lf, animationNumber, 1, torsoOnly );
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
ARGP4
ADDRFP4 12
INDIRI4
ARGI4
CNSTF4 1065353216
ARGF4
ADDRFP4 16
INDIRI4
ARGI4
ADDRGP4 CG_SetLerpFrameAnimation
CALLV
pop
line 2020
;2020:	lf->oldFrame = lf->frame = lf->animation->firstFrame;
ADDRLP4 8
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 12
ADDRLP4 8
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 8
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 12
INDIRI4
ASGNI4
ADDRLP4 8
INDIRP4
ADDRLP4 12
INDIRI4
ASGNI4
line 2021
;2021:}
LABELV $961
endproc CG_ClearLerpFrame 16 24
proc CG_PlayerAnimation 16 24
line 2030
;2022:
;2023:
;2024:/*
;2025:===============
;2026:CG_PlayerAnimation
;2027:===============
;2028:*/
;2029:static void CG_PlayerAnimation( centity_t *cent, int *legsOld, int *legs, float *legsBackLerp,
;2030:						int *torsoOld, int *torso, float *torsoBackLerp ) {
line 2035
;2031:	clientInfo_t	*ci;
;2032:	int				clientNum;
;2033:	float			speedScale;
;2034:
;2035:	clientNum = cent->currentState.clientNum;
ADDRLP4 8
ADDRFP4 0
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
ASGNI4
line 2037
;2036:
;2037:	if ( cg_noPlayerAnims.integer ) {
ADDRGP4 cg_noPlayerAnims+12
INDIRI4
CNSTI4 0
EQI4 $964
line 2038
;2038:		*legsOld = *legs = *torsoOld = *torso = 0;
ADDRLP4 12
CNSTI4 0
ASGNI4
ADDRFP4 20
INDIRP4
ADDRLP4 12
INDIRI4
ASGNI4
ADDRFP4 16
INDIRP4
ADDRLP4 12
INDIRI4
ASGNI4
ADDRFP4 8
INDIRP4
ADDRLP4 12
INDIRI4
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 12
INDIRI4
ASGNI4
line 2039
;2039:		return;
ADDRGP4 $963
JUMPV
LABELV $964
line 2042
;2040:	}
;2041:
;2042:	if (cent->currentState.forcePowersActive & (1 << FP_RAGE))
ADDRFP4 0
INDIRP4
CNSTI4 240
ADDP4
INDIRI4
CNSTI4 256
BANDI4
CNSTI4 0
EQI4 $967
line 2043
;2043:	{
line 2044
;2044:		speedScale = 1.3;
ADDRLP4 0
CNSTF4 1067869798
ASGNF4
line 2045
;2045:	}
ADDRGP4 $968
JUMPV
LABELV $967
line 2046
;2046:	else if (cent->currentState.forcePowersActive & (1 << FP_SPEED))
ADDRFP4 0
INDIRP4
CNSTI4 240
ADDP4
INDIRI4
CNSTI4 4
BANDI4
CNSTI4 0
EQI4 $969
line 2047
;2047:	{
line 2048
;2048:		speedScale = 1.7;
ADDRLP4 0
CNSTF4 1071225242
ASGNF4
line 2049
;2049:	}
ADDRGP4 $970
JUMPV
LABELV $969
line 2051
;2050:	else
;2051:	{
line 2052
;2052:		speedScale = 1;
ADDRLP4 0
CNSTF4 1065353216
ASGNF4
line 2053
;2053:	}
LABELV $970
LABELV $968
line 2055
;2054:
;2055:	ci = &cgs.clientinfo[ clientNum ];
ADDRLP4 4
CNSTI4 812
ADDRLP4 8
INDIRI4
MULI4
ADDRGP4 cgs+43024
ADDP4
ASGNP4
line 2058
;2056:
;2057:	// do the shuffle turn frames locally
;2058:	if(0){//	if ( cent->pe.legs.yawing && ( cent->currentState.legsAnim & ~ANIM_TOGGLEBIT ) == TORSO_WEAPONREADY3) {
ADDRGP4 $972
JUMPV
line 2059
;2059:		CG_RunLerpFrame( cent, ci, &cent->pe.legs, LEGS_TURN1, speedScale, qfalse);
ADDRLP4 12
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 12
INDIRP4
ARGP4
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 12
INDIRP4
CNSTI4 644
ADDP4
ARGP4
CNSTI4 1143
ARGI4
ADDRLP4 0
INDIRF4
ARGF4
CNSTI4 0
ARGI4
ADDRGP4 CG_RunLerpFrame
CALLV
pop
line 2060
;2060:	} else {
ADDRGP4 $973
JUMPV
LABELV $972
line 2061
;2061:		CG_RunLerpFrame( cent, ci, &cent->pe.legs, cent->currentState.legsAnim, speedScale, qfalse);
ADDRLP4 12
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 12
INDIRP4
ARGP4
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 12
INDIRP4
CNSTI4 644
ADDP4
ARGP4
ADDRLP4 12
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
ARGI4
ADDRLP4 0
INDIRF4
ARGF4
CNSTI4 0
ARGI4
ADDRGP4 CG_RunLerpFrame
CALLV
pop
line 2062
;2062:	}
LABELV $973
line 2064
;2063:
;2064:	if (!(cent->currentState.forcePowersActive & (1 << FP_RAGE)))
ADDRFP4 0
INDIRP4
CNSTI4 240
ADDP4
INDIRI4
CNSTI4 256
BANDI4
CNSTI4 0
NEI4 $974
line 2065
;2065:	{ //don't affect torso anim speed unless raged
line 2066
;2066:		speedScale = 1;
ADDRLP4 0
CNSTF4 1065353216
ASGNF4
line 2067
;2067:	}
ADDRGP4 $975
JUMPV
LABELV $974
line 2069
;2068:	else
;2069:	{
line 2070
;2070:		speedScale = 1.7;
ADDRLP4 0
CNSTF4 1071225242
ASGNF4
line 2071
;2071:	}
LABELV $975
line 2073
;2072:
;2073:	*legsOld = cent->pe.legs.oldFrame;
ADDRFP4 4
INDIRP4
ADDRFP4 0
INDIRP4
CNSTI4 644
ADDP4
INDIRI4
ASGNI4
line 2074
;2074:	*legs = cent->pe.legs.frame;
ADDRFP4 8
INDIRP4
ADDRFP4 0
INDIRP4
CNSTI4 652
ADDP4
INDIRI4
ASGNI4
line 2075
;2075:	*legsBackLerp = cent->pe.legs.backlerp;
ADDRFP4 12
INDIRP4
ADDRFP4 0
INDIRP4
CNSTI4 660
ADDP4
INDIRF4
ASGNF4
line 2077
;2076:
;2077:	CG_RunLerpFrame( cent, ci, &cent->pe.torso, cent->currentState.torsoAnim, speedScale, qtrue );
ADDRLP4 12
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 12
INDIRP4
ARGP4
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 12
INDIRP4
CNSTI4 708
ADDP4
ARGP4
ADDRLP4 12
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
ARGI4
ADDRLP4 0
INDIRF4
ARGF4
CNSTI4 1
ARGI4
ADDRGP4 CG_RunLerpFrame
CALLV
pop
line 2079
;2078:
;2079:	*torsoOld = cent->pe.torso.oldFrame;
ADDRFP4 16
INDIRP4
ADDRFP4 0
INDIRP4
CNSTI4 708
ADDP4
INDIRI4
ASGNI4
line 2080
;2080:	*torso = cent->pe.torso.frame;
ADDRFP4 20
INDIRP4
ADDRFP4 0
INDIRP4
CNSTI4 716
ADDP4
INDIRI4
ASGNI4
line 2081
;2081:	*torsoBackLerp = cent->pe.torso.backlerp;
ADDRFP4 24
INDIRP4
ADDRFP4 0
INDIRP4
CNSTI4 724
ADDP4
INDIRF4
ASGNF4
line 2082
;2082:}
LABELV $963
endproc CG_PlayerAnimation 16 24
proc CG_SwingAngles 28 8
line 2101
;2083:
;2084:
;2085:
;2086:
;2087:/*
;2088:=============================================================================
;2089:
;2090:PLAYER ANGLES
;2091:
;2092:=============================================================================
;2093:*/
;2094:
;2095:/*
;2096:==================
;2097:CG_SwingAngles
;2098:==================
;2099:*/
;2100:static float CG_SwingAngles( float destination, float swingTolerance, float clampTolerance,
;2101:					float speed, float *angle, qboolean *swinging ) {
line 2106
;2102:	float	swing;
;2103:	float	move;
;2104:	float	scale;
;2105:
;2106:	if ( !*swinging ) {
ADDRFP4 20
INDIRP4
INDIRI4
CNSTI4 0
NEI4 $977
line 2108
;2107:		// see if a swing should be started
;2108:		swing = AngleSubtract( *angle, destination );
ADDRFP4 16
INDIRP4
INDIRF4
ARGF4
ADDRFP4 0
INDIRF4
ARGF4
ADDRLP4 12
ADDRGP4 AngleSubtract
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 12
INDIRF4
ASGNF4
line 2109
;2109:		if ( swing > swingTolerance || swing < -swingTolerance ) {
ADDRLP4 20
ADDRFP4 4
INDIRF4
ASGNF4
ADDRLP4 0
INDIRF4
ADDRLP4 20
INDIRF4
GTF4 $981
ADDRLP4 0
INDIRF4
ADDRLP4 20
INDIRF4
NEGF4
GEF4 $979
LABELV $981
line 2110
;2110:			*swinging = qtrue;
ADDRFP4 20
INDIRP4
CNSTI4 1
ASGNI4
line 2111
;2111:		}
LABELV $979
line 2112
;2112:	}
LABELV $977
line 2114
;2113:
;2114:	if ( !*swinging ) {
ADDRFP4 20
INDIRP4
INDIRI4
CNSTI4 0
NEI4 $982
line 2115
;2115:		return 0;
CNSTF4 0
RETF4
ADDRGP4 $976
JUMPV
LABELV $982
line 2120
;2116:	}
;2117:	
;2118:	// modify the speed depending on the delta
;2119:	// so it doesn't seem so linear
;2120:	swing = AngleSubtract( destination, *angle );
ADDRFP4 0
INDIRF4
ARGF4
ADDRFP4 16
INDIRP4
INDIRF4
ARGF4
ADDRLP4 12
ADDRGP4 AngleSubtract
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 12
INDIRF4
ASGNF4
line 2121
;2121:	scale = fabs( swing );
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 16
ADDRGP4 fabs
CALLF4
ASGNF4
ADDRLP4 4
ADDRLP4 16
INDIRF4
ASGNF4
line 2122
;2122:	if ( scale < swingTolerance * 0.5 ) {
ADDRLP4 4
INDIRF4
CNSTF4 1056964608
ADDRFP4 4
INDIRF4
MULF4
GEF4 $984
line 2123
;2123:		scale = 0.5;
ADDRLP4 4
CNSTF4 1056964608
ASGNF4
line 2124
;2124:	} else if ( scale < swingTolerance ) {
ADDRGP4 $985
JUMPV
LABELV $984
ADDRLP4 4
INDIRF4
ADDRFP4 4
INDIRF4
GEF4 $986
line 2125
;2125:		scale = 1.0;
ADDRLP4 4
CNSTF4 1065353216
ASGNF4
line 2126
;2126:	} else {
ADDRGP4 $987
JUMPV
LABELV $986
line 2127
;2127:		scale = 2.0;
ADDRLP4 4
CNSTF4 1073741824
ASGNF4
line 2128
;2128:	}
LABELV $987
LABELV $985
line 2131
;2129:
;2130:	// swing towards the destination angle
;2131:	if ( swing >= 0 ) {
ADDRLP4 0
INDIRF4
CNSTF4 0
LTF4 $988
line 2132
;2132:		move = cg.frametime * scale * speed;
ADDRLP4 8
ADDRGP4 cg+60
INDIRI4
CVIF4 4
ADDRLP4 4
INDIRF4
MULF4
ADDRFP4 12
INDIRF4
MULF4
ASGNF4
line 2133
;2133:		if ( move >= swing ) {
ADDRLP4 8
INDIRF4
ADDRLP4 0
INDIRF4
LTF4 $991
line 2134
;2134:			move = swing;
ADDRLP4 8
ADDRLP4 0
INDIRF4
ASGNF4
line 2135
;2135:			*swinging = qfalse;
ADDRFP4 20
INDIRP4
CNSTI4 0
ASGNI4
line 2136
;2136:		}
LABELV $991
line 2137
;2137:		*angle = AngleMod( *angle + move );
ADDRLP4 20
ADDRFP4 16
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
INDIRF4
ADDRLP4 8
INDIRF4
ADDF4
ARGF4
ADDRLP4 24
ADDRGP4 AngleMod
CALLF4
ASGNF4
ADDRLP4 20
INDIRP4
ADDRLP4 24
INDIRF4
ASGNF4
line 2138
;2138:	} else if ( swing < 0 ) {
ADDRGP4 $989
JUMPV
LABELV $988
ADDRLP4 0
INDIRF4
CNSTF4 0
GEF4 $993
line 2139
;2139:		move = cg.frametime * scale * -speed;
ADDRLP4 8
ADDRGP4 cg+60
INDIRI4
CVIF4 4
ADDRLP4 4
INDIRF4
MULF4
ADDRFP4 12
INDIRF4
NEGF4
MULF4
ASGNF4
line 2140
;2140:		if ( move <= swing ) {
ADDRLP4 8
INDIRF4
ADDRLP4 0
INDIRF4
GTF4 $996
line 2141
;2141:			move = swing;
ADDRLP4 8
ADDRLP4 0
INDIRF4
ASGNF4
line 2142
;2142:			*swinging = qfalse;
ADDRFP4 20
INDIRP4
CNSTI4 0
ASGNI4
line 2143
;2143:		}
LABELV $996
line 2144
;2144:		*angle = AngleMod( *angle + move );
ADDRLP4 20
ADDRFP4 16
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
INDIRF4
ADDRLP4 8
INDIRF4
ADDF4
ARGF4
ADDRLP4 24
ADDRGP4 AngleMod
CALLF4
ASGNF4
ADDRLP4 20
INDIRP4
ADDRLP4 24
INDIRF4
ASGNF4
line 2145
;2145:	}
LABELV $993
LABELV $989
line 2148
;2146:
;2147:	// clamp to no more than tolerance
;2148:	swing = AngleSubtract( destination, *angle );
ADDRFP4 0
INDIRF4
ARGF4
ADDRFP4 16
INDIRP4
INDIRF4
ARGF4
ADDRLP4 20
ADDRGP4 AngleSubtract
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 20
INDIRF4
ASGNF4
line 2149
;2149:	if ( swing > clampTolerance ) {
ADDRLP4 0
INDIRF4
ADDRFP4 8
INDIRF4
LEF4 $998
line 2150
;2150:		*angle = AngleMod( destination - (clampTolerance - 1) );
ADDRFP4 0
INDIRF4
ADDRFP4 8
INDIRF4
CNSTF4 1065353216
SUBF4
SUBF4
ARGF4
ADDRLP4 24
ADDRGP4 AngleMod
CALLF4
ASGNF4
ADDRFP4 16
INDIRP4
ADDRLP4 24
INDIRF4
ASGNF4
line 2151
;2151:	} else if ( swing < -clampTolerance ) {
ADDRGP4 $999
JUMPV
LABELV $998
ADDRLP4 0
INDIRF4
ADDRFP4 8
INDIRF4
NEGF4
GEF4 $1000
line 2152
;2152:		*angle = AngleMod( destination + (clampTolerance - 1) );
ADDRFP4 0
INDIRF4
ADDRFP4 8
INDIRF4
CNSTF4 1065353216
SUBF4
ADDF4
ARGF4
ADDRLP4 24
ADDRGP4 AngleMod
CALLF4
ASGNF4
ADDRFP4 16
INDIRP4
ADDRLP4 24
INDIRF4
ASGNF4
line 2153
;2153:	}
LABELV $1000
LABELV $999
line 2155
;2154:
;2155:	return swing;
ADDRLP4 0
INDIRF4
RETF4
LABELV $976
endproc CG_SwingAngles 28 8
proc CG_SwingAnglesATST 36 8
line 2164
;2156:}
;2157:
;2158:/*
;2159:==================
;2160:CG_SwingAngles
;2161:==================
;2162:*/
;2163:static float CG_SwingAnglesATST( centity_t *cent, float destination, float swingTolerance, float clampTolerance,
;2164:					float speed, float *angle, qboolean *swinging ) {
line 2169
;2165:	float	swing;
;2166:	float	move;
;2167:	float	scale;
;2168:
;2169:	if ( !*swinging ) {
ADDRFP4 24
INDIRP4
INDIRI4
CNSTI4 0
NEI4 $1003
line 2171
;2170:		// see if a swing should be started
;2171:		swing = AngleSubtract( *angle, destination );
ADDRFP4 20
INDIRP4
INDIRF4
ARGF4
ADDRFP4 4
INDIRF4
ARGF4
ADDRLP4 12
ADDRGP4 AngleSubtract
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 12
INDIRF4
ASGNF4
line 2172
;2172:		if ( swing > swingTolerance || swing < -swingTolerance ) {
ADDRLP4 20
ADDRFP4 8
INDIRF4
ASGNF4
ADDRLP4 0
INDIRF4
ADDRLP4 20
INDIRF4
GTF4 $1007
ADDRLP4 0
INDIRF4
ADDRLP4 20
INDIRF4
NEGF4
GEF4 $1005
LABELV $1007
line 2173
;2173:			*swinging = qtrue;
ADDRFP4 24
INDIRP4
CNSTI4 1
ASGNI4
line 2174
;2174:		}
LABELV $1005
line 2175
;2175:	}
LABELV $1003
line 2177
;2176:
;2177:	if ( !*swinging ) {
ADDRFP4 24
INDIRP4
INDIRI4
CNSTI4 0
NEI4 $1008
line 2178
;2178:		return 0;
CNSTF4 0
RETF4
ADDRGP4 $1002
JUMPV
LABELV $1008
line 2183
;2179:	}
;2180:	
;2181:	// modify the speed depending on the delta
;2182:	// so it doesn't seem so linear
;2183:	swing = AngleSubtract( destination, *angle );
ADDRFP4 4
INDIRF4
ARGF4
ADDRFP4 20
INDIRP4
INDIRF4
ARGF4
ADDRLP4 12
ADDRGP4 AngleSubtract
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 12
INDIRF4
ASGNF4
line 2184
;2184:	scale = fabs( swing );
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 16
ADDRGP4 fabs
CALLF4
ASGNF4
ADDRLP4 4
ADDRLP4 16
INDIRF4
ASGNF4
line 2185
;2185:	if ( scale < swingTolerance * 0.5 ) {
ADDRLP4 4
INDIRF4
CNSTF4 1056964608
ADDRFP4 8
INDIRF4
MULF4
GEF4 $1010
line 2186
;2186:		scale = 0.5;
ADDRLP4 4
CNSTF4 1056964608
ASGNF4
line 2187
;2187:	} else if ( scale < swingTolerance ) {
ADDRGP4 $1011
JUMPV
LABELV $1010
ADDRLP4 4
INDIRF4
ADDRFP4 8
INDIRF4
GEF4 $1012
line 2188
;2188:		scale = 1.0;
ADDRLP4 4
CNSTF4 1065353216
ASGNF4
line 2189
;2189:	} else {
ADDRGP4 $1013
JUMPV
LABELV $1012
line 2190
;2190:		scale = 2.0;
ADDRLP4 4
CNSTF4 1073741824
ASGNF4
line 2191
;2191:	}
LABELV $1013
LABELV $1011
line 2193
;2192:
;2193:	if (swing < 10 && swing > -10)
ADDRLP4 0
INDIRF4
CNSTF4 1092616192
GEF4 $1014
ADDRLP4 0
INDIRF4
CNSTF4 3240099840
LEF4 $1014
line 2194
;2194:	{
line 2195
;2195:		cent->atstSwinging = 0;
ADDRFP4 0
INDIRP4
CNSTI4 1036
ADDP4
CNSTI4 0
ASGNI4
line 2196
;2196:	}
LABELV $1014
line 2197
;2197:	if (swing < 60 && swing > -60 && !cent->atstSwinging)
ADDRLP4 0
INDIRF4
CNSTF4 1114636288
GEF4 $1016
ADDRLP4 0
INDIRF4
CNSTF4 3262119936
LEF4 $1016
ADDRFP4 0
INDIRP4
CNSTI4 1036
ADDP4
INDIRI4
CNSTI4 0
NEI4 $1016
line 2198
;2198:	{
line 2199
;2199:		return 0;
CNSTF4 0
RETF4
ADDRGP4 $1002
JUMPV
LABELV $1016
line 2202
;2200:	}
;2201:
;2202:	cent->atstSwinging = 1;
ADDRFP4 0
INDIRP4
CNSTI4 1036
ADDP4
CNSTI4 1
ASGNI4
line 2205
;2203:
;2204:	// swing towards the destination angle
;2205:	if ( swing >= 0 ) {
ADDRLP4 0
INDIRF4
CNSTF4 0
LTF4 $1018
line 2206
;2206:		move = cg.frametime * scale * speed;
ADDRLP4 8
ADDRGP4 cg+60
INDIRI4
CVIF4 4
ADDRLP4 4
INDIRF4
MULF4
ADDRFP4 16
INDIRF4
MULF4
ASGNF4
line 2207
;2207:		if ( move >= swing ) {
ADDRLP4 8
INDIRF4
ADDRLP4 0
INDIRF4
LTF4 $1021
line 2208
;2208:			move = swing;
ADDRLP4 8
ADDRLP4 0
INDIRF4
ASGNF4
line 2209
;2209:			*swinging = qfalse;
ADDRFP4 24
INDIRP4
CNSTI4 0
ASGNI4
line 2210
;2210:		}
LABELV $1021
line 2211
;2211:		*angle = AngleMod( *angle + move );
ADDRLP4 28
ADDRFP4 20
INDIRP4
ASGNP4
ADDRLP4 28
INDIRP4
INDIRF4
ADDRLP4 8
INDIRF4
ADDF4
ARGF4
ADDRLP4 32
ADDRGP4 AngleMod
CALLF4
ASGNF4
ADDRLP4 28
INDIRP4
ADDRLP4 32
INDIRF4
ASGNF4
line 2212
;2212:	} else if ( swing < 0 ) {
ADDRGP4 $1019
JUMPV
LABELV $1018
ADDRLP4 0
INDIRF4
CNSTF4 0
GEF4 $1023
line 2213
;2213:		move = cg.frametime * scale * -speed;
ADDRLP4 8
ADDRGP4 cg+60
INDIRI4
CVIF4 4
ADDRLP4 4
INDIRF4
MULF4
ADDRFP4 16
INDIRF4
NEGF4
MULF4
ASGNF4
line 2214
;2214:		if ( move <= swing ) {
ADDRLP4 8
INDIRF4
ADDRLP4 0
INDIRF4
GTF4 $1026
line 2215
;2215:			move = swing;
ADDRLP4 8
ADDRLP4 0
INDIRF4
ASGNF4
line 2216
;2216:			*swinging = qfalse;
ADDRFP4 24
INDIRP4
CNSTI4 0
ASGNI4
line 2217
;2217:		}
LABELV $1026
line 2218
;2218:		*angle = AngleMod( *angle + move );
ADDRLP4 28
ADDRFP4 20
INDIRP4
ASGNP4
ADDRLP4 28
INDIRP4
INDIRF4
ADDRLP4 8
INDIRF4
ADDF4
ARGF4
ADDRLP4 32
ADDRGP4 AngleMod
CALLF4
ASGNF4
ADDRLP4 28
INDIRP4
ADDRLP4 32
INDIRF4
ASGNF4
line 2219
;2219:	}
LABELV $1023
LABELV $1019
line 2222
;2220:
;2221:	// clamp to no more than tolerance
;2222:	swing = AngleSubtract( destination, *angle );
ADDRFP4 4
INDIRF4
ARGF4
ADDRFP4 20
INDIRP4
INDIRF4
ARGF4
ADDRLP4 28
ADDRGP4 AngleSubtract
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 28
INDIRF4
ASGNF4
line 2223
;2223:	if ( swing > clampTolerance ) {
ADDRLP4 0
INDIRF4
ADDRFP4 12
INDIRF4
LEF4 $1028
line 2224
;2224:		*angle = AngleMod( destination - (clampTolerance - 1) );
ADDRFP4 4
INDIRF4
ADDRFP4 12
INDIRF4
CNSTF4 1065353216
SUBF4
SUBF4
ARGF4
ADDRLP4 32
ADDRGP4 AngleMod
CALLF4
ASGNF4
ADDRFP4 20
INDIRP4
ADDRLP4 32
INDIRF4
ASGNF4
line 2225
;2225:	} else if ( swing < -clampTolerance ) {
ADDRGP4 $1029
JUMPV
LABELV $1028
ADDRLP4 0
INDIRF4
ADDRFP4 12
INDIRF4
NEGF4
GEF4 $1030
line 2226
;2226:		*angle = AngleMod( destination + (clampTolerance - 1) );
ADDRFP4 4
INDIRF4
ADDRFP4 12
INDIRF4
CNSTF4 1065353216
SUBF4
ADDF4
ARGF4
ADDRLP4 32
ADDRGP4 AngleMod
CALLF4
ASGNF4
ADDRFP4 20
INDIRP4
ADDRLP4 32
INDIRF4
ASGNF4
line 2227
;2227:	}
LABELV $1030
LABELV $1029
line 2229
;2228:
;2229:	return swing;
ADDRLP4 0
INDIRF4
RETF4
LABELV $1002
endproc CG_SwingAnglesATST 36 8
proc CG_AddPainTwitch 12 0
line 2237
;2230:}
;2231:
;2232:/*
;2233:=================
;2234:CG_AddPainTwitch
;2235:=================
;2236:*/
;2237:static void CG_AddPainTwitch( centity_t *cent, vec3_t torsoAngles ) {
line 2241
;2238:	int		t;
;2239:	float	f;
;2240:
;2241:	t = cg.time - cent->pe.painTime;
ADDRLP4 0
ADDRGP4 cg+64
INDIRI4
ADDRFP4 0
INDIRP4
CNSTI4 836
ADDP4
INDIRI4
SUBI4
ASGNI4
line 2242
;2242:	if ( t >= PAIN_TWITCH_TIME ) {
ADDRLP4 0
INDIRI4
CNSTI4 200
LTI4 $1034
line 2243
;2243:		return;
ADDRGP4 $1032
JUMPV
LABELV $1034
line 2246
;2244:	}
;2245:
;2246:	f = 1.0 - (float)t / PAIN_TWITCH_TIME;
ADDRLP4 4
CNSTF4 1065353216
ADDRLP4 0
INDIRI4
CVIF4 4
CNSTF4 1128792064
DIVF4
SUBF4
ASGNF4
line 2248
;2247:
;2248:	if ( cent->pe.painDirection ) {
ADDRFP4 0
INDIRP4
CNSTI4 840
ADDP4
INDIRI4
CNSTI4 0
EQI4 $1036
line 2249
;2249:		torsoAngles[ROLL] += 20 * f;
ADDRLP4 8
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 8
INDIRP4
ADDRLP4 8
INDIRP4
INDIRF4
CNSTF4 1101004800
ADDRLP4 4
INDIRF4
MULF4
ADDF4
ASGNF4
line 2250
;2250:	} else {
ADDRGP4 $1037
JUMPV
LABELV $1036
line 2251
;2251:		torsoAngles[ROLL] -= 20 * f;
ADDRLP4 8
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 8
INDIRP4
ADDRLP4 8
INDIRP4
INDIRF4
CNSTF4 1101004800
ADDRLP4 4
INDIRF4
MULF4
SUBF4
ASGNF4
line 2252
;2252:	}
LABELV $1037
line 2253
;2253:}
LABELV $1032
endproc CG_AddPainTwitch 12 0
export CG_G2SetBoneAngles
proc CG_G2SetBoneAngles 0 44
ADDRFP4 16
ADDRFP4 16
INDIRI4
ASGNI4
ADDRFP4 20
ADDRFP4 20
INDIRI4
ASGNI4
ADDRFP4 24
ADDRFP4 24
INDIRI4
ASGNI4
ADDRFP4 28
ADDRFP4 28
INDIRI4
ASGNI4
line 2277
;2254:
;2255:
;2256:typedef struct boneAngleParms_s {
;2257:	void *ghoul2;
;2258:	int modelIndex;
;2259:	char *boneName;
;2260:	vec3_t angles;
;2261:	int flags;
;2262:	int up;
;2263:	int right;
;2264:	int forward;
;2265:	qhandle_t *modelList;
;2266:	int blendTime;
;2267:	int currentTime;
;2268:
;2269:	qboolean refreshSet;
;2270:} boneAngleParms_t;
;2271:
;2272:boneAngleParms_t cgBoneAnglePostSet;
;2273:
;2274:void CG_G2SetBoneAngles(void *ghoul2, int modelIndex, const char *boneName, const vec3_t angles, const int flags,
;2275:								const int up, const int right, const int forward, qhandle_t *modelList,
;2276:								int blendTime , int currentTime )
;2277:{ //we want to hold off on setting the bone angles until the end of the frame, because every time we set
line 2302
;2278:  //them the entire skeleton has to be reconstructed.
;2279:#if 0
;2280:	//This function should ONLY be called from CG_Player() or a function that is called only within CG_Player().
;2281:	//At the end of the frame we will check to use this information to call SetBoneAngles
;2282:	memset(&cgBoneAnglePostSet, 0, sizeof(cgBoneAnglePostSet));
;2283:	cgBoneAnglePostSet.ghoul2 = ghoul2;
;2284:	cgBoneAnglePostSet.modelIndex = modelIndex;
;2285:	cgBoneAnglePostSet.boneName = (char *)boneName;
;2286:
;2287:	cgBoneAnglePostSet.angles[0] = angles[0];
;2288:	cgBoneAnglePostSet.angles[1] = angles[1];
;2289:	cgBoneAnglePostSet.angles[2] = angles[2];
;2290:
;2291:	cgBoneAnglePostSet.flags = flags;
;2292:	cgBoneAnglePostSet.up = up;
;2293:	cgBoneAnglePostSet.right = right;
;2294:	cgBoneAnglePostSet.forward = forward;
;2295:	cgBoneAnglePostSet.modelList = modelList;
;2296:	cgBoneAnglePostSet.blendTime = blendTime;
;2297:	cgBoneAnglePostSet.currentTime = currentTime;
;2298:
;2299:	cgBoneAnglePostSet.refreshSet = qtrue;
;2300:#endif
;2301:	//Unfortunately the above doesn't really work.
;2302:	trap_G2API_SetBoneAngles(ghoul2, modelIndex, boneName, angles, flags, up, right, forward, modelList,
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRI4
ARGI4
ADDRFP4 8
INDIRP4
ARGP4
ADDRFP4 12
INDIRP4
ARGP4
ADDRFP4 16
INDIRI4
ARGI4
ADDRFP4 20
INDIRI4
ARGI4
ADDRFP4 24
INDIRI4
ARGI4
ADDRFP4 28
INDIRI4
ARGI4
ADDRFP4 32
INDIRP4
ARGP4
ADDRFP4 36
INDIRI4
ARGI4
ADDRFP4 40
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAngles
CALLI4
pop
line 2304
;2303:		blendTime, currentTime);
;2304:}
LABELV $1038
endproc CG_G2SetBoneAngles 0 44
export CG_InKnockDown
proc CG_InKnockDown 8 0
line 2307
;2305:
;2306:qboolean CG_InKnockDown( int anim )
;2307:{
line 2308
;2308:	switch ( (anim&~ANIM_TOGGLEBIT) )
ADDRLP4 0
ADDRFP4 0
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 924
LTI4 $1040
ADDRLP4 0
INDIRI4
CNSTI4 942
GTI4 $1040
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 $1045-3696
ADDP4
INDIRP4
JUMPV
lit
align 4
LABELV $1045
address $1043
address $1043
address $1043
address $1043
address $1043
address $1044
address $1044
address $1044
address $1044
address $1044
address $1040
address $1040
address $1044
address $1044
address $1044
address $1044
address $1044
address $1044
address $1044
code
line 2309
;2309:	{
LABELV $1043
line 2315
;2310:	case BOTH_KNOCKDOWN1:
;2311:	case BOTH_KNOCKDOWN2:
;2312:	case BOTH_KNOCKDOWN3:
;2313:	case BOTH_KNOCKDOWN4:
;2314:	case BOTH_KNOCKDOWN5:
;2315:		return qtrue;
CNSTI4 1
RETI4
ADDRGP4 $1039
JUMPV
line 2316
;2316:		break;
LABELV $1044
line 2329
;2317:	case BOTH_GETUP1:
;2318:	case BOTH_GETUP2:
;2319:	case BOTH_GETUP3:
;2320:	case BOTH_GETUP4:
;2321:	case BOTH_GETUP5:
;2322:	case BOTH_FORCE_GETUP_F1:
;2323:	case BOTH_FORCE_GETUP_F2:
;2324:	case BOTH_FORCE_GETUP_B1:
;2325:	case BOTH_FORCE_GETUP_B2:
;2326:	case BOTH_FORCE_GETUP_B3:
;2327:	case BOTH_FORCE_GETUP_B4:
;2328:	case BOTH_FORCE_GETUP_B5:
;2329:		return qtrue;
CNSTI4 1
RETI4
ADDRGP4 $1039
JUMPV
line 2330
;2330:		break;
LABELV $1040
line 2332
;2331:	}
;2332:	return qfalse;
CNSTI4 0
RETI4
LABELV $1039
endproc CG_InKnockDown 8 0
export CG_G2ClientSpineAngles
proc CG_G2ClientSpineAngles 248 36
line 2336
;2333:}
;2334:
;2335:void CG_G2ClientSpineAngles( centity_t *cent, vec3_t viewAngles, const vec3_t angles, vec3_t thoracicAngles, vec3_t ulAngles, vec3_t llAngles )
;2336:{
line 2337
;2337:	float legDif = 0;
ADDRLP4 0
CNSTF4 0
ASGNF4
line 2339
;2338://	cent->pe.torso.pitchAngle = viewAngles[PITCH];
;2339:	viewAngles[YAW] = AngleDelta( cent->lerpAngles[YAW], angles[YAW] );
ADDRFP4 0
INDIRP4
CNSTI4 944
ADDP4
INDIRF4
ARGF4
ADDRLP4 4
CNSTI4 4
ASGNI4
ADDRFP4 8
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRF4
ARGF4
ADDRLP4 8
ADDRGP4 AngleDelta
CALLF4
ASGNF4
ADDRFP4 4
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
ADDRLP4 8
INDIRF4
ASGNF4
line 2340
;2340:	legDif = viewAngles[YAW];
ADDRLP4 0
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
line 2350
;2341://	cent->pe.torso.yawAngle = viewAngles[YAW];
;2342:
;2343:	/*
;2344:	if ( !BG_FlippingAnim( cent->currentState.legsAnim ) 
;2345:		&& !BG_SpinningSaberAnim( cent->currentState.legsAnim ) 
;2346:		&& !BG_SpinningSaberAnim( cent->currentState.torsoAnim )
;2347:		&& !BG_SaberInSpecial(cent->currentState.saberMove)
;2348:		&& cent->currentState.legsAnim != cent->currentState.torsoAnim )//NOTE: presumes your legs & torso are on the same frame, though they *should* be because PM_SetAnimFinal tries to keep them in synch
;2349:	*/
;2350:	if ( !BG_FlippingAnim( cent->currentState.legsAnim&~ANIM_TOGGLEBIT ) &&
ADDRFP4 0
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 12
ADDRGP4 BG_FlippingAnim
CALLI4
ASGNI4
ADDRLP4 12
INDIRI4
CNSTI4 0
NEI4 $1048
ADDRFP4 0
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 16
ADDRGP4 BG_SpinningSaberAnim
CALLI4
ASGNI4
ADDRLP4 16
INDIRI4
CNSTI4 0
NEI4 $1048
ADDRFP4 0
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 20
ADDRGP4 BG_SpinningSaberAnim
CALLI4
ASGNI4
ADDRLP4 20
INDIRI4
CNSTI4 0
NEI4 $1048
ADDRFP4 0
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 24
ADDRGP4 BG_InSpecialJump
CALLI4
ASGNI4
ADDRLP4 24
INDIRI4
CNSTI4 0
NEI4 $1048
ADDRFP4 0
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 28
ADDRGP4 BG_InSpecialJump
CALLI4
ASGNI4
ADDRLP4 28
INDIRI4
CNSTI4 0
NEI4 $1048
ADDRFP4 0
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 32
ADDRGP4 BG_InDeathAnim
CALLI4
ASGNI4
ADDRLP4 32
INDIRI4
CNSTI4 0
NEI4 $1048
ADDRFP4 0
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 36
ADDRGP4 BG_InDeathAnim
CALLI4
ASGNI4
ADDRLP4 36
INDIRI4
CNSTI4 0
NEI4 $1048
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 40
ADDRGP4 CG_InRoll
CALLI4
ASGNI4
ADDRLP4 40
INDIRI4
CNSTI4 0
NEI4 $1048
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 44
ADDRGP4 CG_InRollAnim
CALLI4
ASGNI4
ADDRLP4 44
INDIRI4
CNSTI4 0
NEI4 $1048
ADDRFP4 0
INDIRP4
CNSTI4 236
ADDP4
INDIRI4
ARGI4
ADDRLP4 48
ADDRGP4 BG_SaberInSpecial
CALLI4
ASGNI4
ADDRLP4 48
INDIRI4
CNSTI4 0
NEI4 $1048
ADDRFP4 0
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 52
ADDRGP4 BG_SaberInSpecialAttack
CALLI4
ASGNI4
ADDRLP4 52
INDIRI4
CNSTI4 0
NEI4 $1048
ADDRFP4 0
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 56
ADDRGP4 BG_SaberInSpecialAttack
CALLI4
ASGNI4
ADDRLP4 56
INDIRI4
CNSTI4 0
NEI4 $1048
ADDRFP4 0
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
ARGI4
ADDRLP4 60
ADDRGP4 CG_InKnockDown
CALLI4
ASGNI4
ADDRLP4 60
INDIRI4
CNSTI4 0
NEI4 $1048
ADDRFP4 0
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
ARGI4
ADDRLP4 64
ADDRGP4 CG_InKnockDown
CALLI4
ASGNI4
ADDRLP4 64
INDIRI4
CNSTI4 0
NEI4 $1048
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+784
ADDP4
INDIRI4
ARGI4
ADDRLP4 68
ADDRGP4 CG_InKnockDown
CALLI4
ASGNI4
ADDRLP4 68
INDIRI4
CNSTI4 0
NEI4 $1048
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+780
ADDP4
INDIRI4
ARGI4
ADDRLP4 72
ADDRGP4 CG_InKnockDown
CALLI4
ASGNI4
ADDRLP4 72
INDIRI4
CNSTI4 0
NEI4 $1048
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+780
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 76
ADDRGP4 BG_FlippingAnim
CALLI4
ASGNI4
ADDRLP4 76
INDIRI4
CNSTI4 0
NEI4 $1048
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+780
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 80
ADDRGP4 BG_SpinningSaberAnim
CALLI4
ASGNI4
ADDRLP4 80
INDIRI4
CNSTI4 0
NEI4 $1048
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+784
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 84
ADDRGP4 BG_SpinningSaberAnim
CALLI4
ASGNI4
ADDRLP4 84
INDIRI4
CNSTI4 0
NEI4 $1048
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+780
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 88
ADDRGP4 BG_InSpecialJump
CALLI4
ASGNI4
ADDRLP4 88
INDIRI4
CNSTI4 0
NEI4 $1048
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+784
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 92
ADDRGP4 BG_InSpecialJump
CALLI4
ASGNI4
ADDRLP4 92
INDIRI4
CNSTI4 0
NEI4 $1048
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+780
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 96
ADDRGP4 BG_InDeathAnim
CALLI4
ASGNI4
ADDRLP4 96
INDIRI4
CNSTI4 0
NEI4 $1048
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+784
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 100
ADDRGP4 BG_InDeathAnim
CALLI4
ASGNI4
ADDRLP4 100
INDIRI4
CNSTI4 0
NEI4 $1048
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+784
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 104
ADDRGP4 BG_SaberInSpecialAttack
CALLI4
ASGNI4
ADDRLP4 104
INDIRI4
CNSTI4 0
NEI4 $1048
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+780
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 108
ADDRGP4 BG_SaberInSpecialAttack
CALLI4
ASGNI4
ADDRLP4 112
CNSTI4 0
ASGNI4
ADDRLP4 108
INDIRI4
ADDRLP4 112
INDIRI4
NEI4 $1048
ADDRLP4 116
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 116
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
ADDRLP4 112
INDIRI4
NEI4 $1048
ADDRLP4 120
CNSTI4 -2049
ASGNI4
ADDRLP4 116
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
ADDRLP4 120
INDIRI4
BANDI4
ADDRLP4 116
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
ADDRLP4 120
INDIRI4
BANDI4
EQI4 $1048
ADDRLP4 124
CNSTI4 812
ADDRLP4 116
INDIRP4
INDIRI4
MULI4
ASGNI4
ADDRLP4 124
INDIRI4
ADDRGP4 cgs+43024+780
ADDP4
INDIRI4
ADDRLP4 120
INDIRI4
BANDI4
ADDRLP4 124
INDIRI4
ADDRGP4 cgs+43024+784
ADDP4
INDIRI4
ADDRLP4 120
INDIRI4
BANDI4
EQI4 $1048
line 2381
;2351:		!BG_SpinningSaberAnim( cent->currentState.legsAnim&~ANIM_TOGGLEBIT ) &&
;2352:		!BG_SpinningSaberAnim( cent->currentState.torsoAnim&~ANIM_TOGGLEBIT ) &&
;2353:		!BG_InSpecialJump( cent->currentState.legsAnim&~ANIM_TOGGLEBIT ) &&
;2354:		!BG_InSpecialJump( cent->currentState.torsoAnim&~ANIM_TOGGLEBIT ) &&
;2355:		!BG_InDeathAnim(cent->currentState.legsAnim&~ANIM_TOGGLEBIT) &&
;2356:		!BG_InDeathAnim(cent->currentState.torsoAnim&~ANIM_TOGGLEBIT) &&
;2357:		!CG_InRoll(cent) &&
;2358:		!CG_InRollAnim(cent) &&
;2359:		!BG_SaberInSpecial(cent->currentState.saberMove) &&
;2360:		!BG_SaberInSpecialAttack(cent->currentState.torsoAnim&~ANIM_TOGGLEBIT) &&
;2361:		!BG_SaberInSpecialAttack(cent->currentState.legsAnim&~ANIM_TOGGLEBIT) &&
;2362:
;2363:		!CG_InKnockDown(cent->currentState.torsoAnim) &&
;2364:		!CG_InKnockDown(cent->currentState.legsAnim) &&
;2365:		!CG_InKnockDown(cgs.clientinfo[cent->currentState.number].torsoAnim) &&
;2366:		!CG_InKnockDown(cgs.clientinfo[cent->currentState.number].legsAnim) &&
;2367:
;2368:		!BG_FlippingAnim( cgs.clientinfo[cent->currentState.number].legsAnim&~ANIM_TOGGLEBIT ) &&
;2369:		!BG_SpinningSaberAnim( cgs.clientinfo[cent->currentState.number].legsAnim&~ANIM_TOGGLEBIT ) &&
;2370:		!BG_SpinningSaberAnim( cgs.clientinfo[cent->currentState.number].torsoAnim&~ANIM_TOGGLEBIT ) &&
;2371:		!BG_InSpecialJump( cgs.clientinfo[cent->currentState.number].legsAnim&~ANIM_TOGGLEBIT ) &&
;2372:		!BG_InSpecialJump( cgs.clientinfo[cent->currentState.number].torsoAnim&~ANIM_TOGGLEBIT ) &&
;2373:		!BG_InDeathAnim(cgs.clientinfo[cent->currentState.number].legsAnim&~ANIM_TOGGLEBIT) &&
;2374:		!BG_InDeathAnim(cgs.clientinfo[cent->currentState.number].torsoAnim&~ANIM_TOGGLEBIT) &&
;2375:		!BG_SaberInSpecialAttack(cgs.clientinfo[cent->currentState.number].torsoAnim&~ANIM_TOGGLEBIT) &&
;2376:		!BG_SaberInSpecialAttack(cgs.clientinfo[cent->currentState.number].legsAnim&~ANIM_TOGGLEBIT) &&
;2377:
;2378:		!(cent->currentState.eFlags & EF_DEAD) &&
;2379:		(cent->currentState.legsAnim&~ANIM_TOGGLEBIT) != (cent->currentState.torsoAnim&~ANIM_TOGGLEBIT) &&
;2380:		(cgs.clientinfo[cent->currentState.number].legsAnim&~ANIM_TOGGLEBIT) != (cgs.clientinfo[cent->currentState.number].torsoAnim&~ANIM_TOGGLEBIT))
;2381:	{//FIXME: no need to do this if legs and torso on are same frame
line 2388
;2382:		//adjust for motion offset
;2383:		mdxaBone_t	boltMatrix;
;2384:		vec3_t		motionFwd, motionAngles;
;2385:		vec3_t		motionRt, tempAng;
;2386:		int			ang;
;2387:
;2388:		trap_G2API_GetBoltMatrix_NoRecNoRot( cent->ghoul2, 0, cgs.clientinfo[cent->currentState.number].bolt_motion, &boltMatrix, vec3_origin, cent->lerpOrigin, cg.time, /*cgs.gameModels*/0, cent->modelScale);
ADDRLP4 228
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 228
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 812
ADDRLP4 228
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+524
ADDP4
INDIRI4
ARGI4
ADDRLP4 144
ARGP4
ADDRGP4 vec3_origin
ARGP4
ADDRLP4 228
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTP4 0
ARGP4
ADDRLP4 228
INDIRP4
CNSTI4 964
ADDP4
ARGP4
ADDRGP4 trap_G2API_GetBoltMatrix_NoRecNoRot
CALLI4
pop
line 2389
;2389:		trap_G2API_GiveMeVectorFromMatrix( &boltMatrix, NEGATIVE_Y, motionFwd );
ADDRLP4 144
ARGP4
CNSTI4 6
ARGI4
ADDRLP4 192
ARGP4
ADDRGP4 trap_G2API_GiveMeVectorFromMatrix
CALLV
pop
line 2391
;2390:
;2391:		vectoangles( motionFwd, motionAngles );
ADDRLP4 192
ARGP4
ADDRLP4 132
ARGP4
ADDRGP4 vectoangles
CALLV
pop
line 2393
;2392:
;2393:		trap_G2API_GiveMeVectorFromMatrix( &boltMatrix, NEGATIVE_X, motionRt );
ADDRLP4 144
ARGP4
CNSTI4 4
ARGI4
ADDRLP4 204
ARGP4
ADDRGP4 trap_G2API_GiveMeVectorFromMatrix
CALLV
pop
line 2394
;2394:		vectoangles( motionRt, tempAng );
ADDRLP4 204
ARGP4
ADDRLP4 216
ARGP4
ADDRGP4 vectoangles
CALLV
pop
line 2395
;2395:		motionAngles[ROLL] = -tempAng[PITCH];
ADDRLP4 132+8
ADDRLP4 216
INDIRF4
NEGF4
ASGNF4
line 2397
;2396:
;2397:		for ( ang = 0; ang < 3; ang++ )
ADDRLP4 128
CNSTI4 0
ASGNI4
LABELV $1080
line 2398
;2398:		{
line 2401
;2399:			// adnan
;2400:         // see if this works...
;2401:         if(ang != PITCH)
ADDRLP4 128
INDIRI4
CNSTI4 0
EQI4 $1084
line 2402
;2402:            viewAngles[ang] = AngleNormalize180( viewAngles[ang] - AngleNormalize180( motionAngles[ang] ) );
ADDRLP4 232
ADDRLP4 128
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 232
INDIRI4
ADDRLP4 132
ADDP4
INDIRF4
ARGF4
ADDRLP4 236
ADDRGP4 AngleNormalize180
CALLF4
ASGNF4
ADDRLP4 240
ADDRLP4 232
INDIRI4
ADDRFP4 4
INDIRP4
ADDP4
ASGNP4
ADDRLP4 240
INDIRP4
INDIRF4
ADDRLP4 236
INDIRF4
SUBF4
ARGF4
ADDRLP4 244
ADDRGP4 AngleNormalize180
CALLF4
ASGNF4
ADDRLP4 240
INDIRP4
ADDRLP4 244
INDIRF4
ASGNF4
LABELV $1084
line 2403
;2403:		}
LABELV $1081
line 2397
ADDRLP4 128
ADDRLP4 128
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 128
INDIRI4
CNSTI4 3
LTI4 $1080
line 2404
;2404:	}
LABELV $1048
line 2429
;2405:
;2406:	//Keep it within 80 degrees of the leg angles, on either side. Will hopefully prevent spine twisting.
;2407:	/*
;2408:	if (legDif > 0)
;2409:	{
;2410:		legDif += 80;
;2411:	}
;2412:	else
;2413:	{
;2414:		legDif -= 80;
;2415:	}
;2416:	
;2417:	if (legDif < 0 && viewAngles[YAW] < legDif)
;2418:	{
;2419:		viewAngles[YAW] = legDif;
;2420:	}
;2421:	if (legDif > 0 && viewAngles[YAW] > legDif)
;2422:	{
;2423:		viewAngles[YAW] = legDif;
;2424:	}
;2425:	*/
;2426:		
;2427:	//distribute the angles differently up the spine
;2428:	//NOTE: each of these distributions must add up to 1.0f
;2429:	thoracicAngles[PITCH] = viewAngles[PITCH]*0.20f;
ADDRFP4 12
INDIRP4
CNSTF4 1045220557
ADDRFP4 4
INDIRP4
INDIRF4
MULF4
ASGNF4
line 2430
;2430:	llAngles[PITCH] = viewAngles[PITCH]*0.40f;
ADDRFP4 20
INDIRP4
CNSTF4 1053609165
ADDRFP4 4
INDIRP4
INDIRF4
MULF4
ASGNF4
line 2431
;2431:	ulAngles[PITCH] = viewAngles[PITCH]*0.40f;
ADDRFP4 16
INDIRP4
CNSTF4 1053609165
ADDRFP4 4
INDIRP4
INDIRF4
MULF4
ASGNF4
line 2433
;2432:
;2433:	thoracicAngles[YAW] = viewAngles[YAW]*0.20f;
ADDRLP4 128
CNSTI4 4
ASGNI4
ADDRFP4 12
INDIRP4
ADDRLP4 128
INDIRI4
ADDP4
CNSTF4 1045220557
ADDRFP4 4
INDIRP4
ADDRLP4 128
INDIRI4
ADDP4
INDIRF4
MULF4
ASGNF4
line 2434
;2434:	ulAngles[YAW] = viewAngles[YAW]*0.35f;
ADDRLP4 132
CNSTI4 4
ASGNI4
ADDRFP4 16
INDIRP4
ADDRLP4 132
INDIRI4
ADDP4
CNSTF4 1051931443
ADDRFP4 4
INDIRP4
ADDRLP4 132
INDIRI4
ADDP4
INDIRF4
MULF4
ASGNF4
line 2435
;2435:	llAngles[YAW] = viewAngles[YAW]*0.45f;
ADDRLP4 136
CNSTI4 4
ASGNI4
ADDRFP4 20
INDIRP4
ADDRLP4 136
INDIRI4
ADDP4
CNSTF4 1055286886
ADDRFP4 4
INDIRP4
ADDRLP4 136
INDIRI4
ADDP4
INDIRF4
MULF4
ASGNF4
line 2437
;2436:
;2437:	thoracicAngles[ROLL] = viewAngles[ROLL]*0.20f;
ADDRLP4 140
CNSTI4 8
ASGNI4
ADDRFP4 12
INDIRP4
ADDRLP4 140
INDIRI4
ADDP4
CNSTF4 1045220557
ADDRFP4 4
INDIRP4
ADDRLP4 140
INDIRI4
ADDP4
INDIRF4
MULF4
ASGNF4
line 2438
;2438:	ulAngles[ROLL] = viewAngles[ROLL]*0.35f;
ADDRLP4 144
CNSTI4 8
ASGNI4
ADDRFP4 16
INDIRP4
ADDRLP4 144
INDIRI4
ADDP4
CNSTF4 1051931443
ADDRFP4 4
INDIRP4
ADDRLP4 144
INDIRI4
ADDP4
INDIRF4
MULF4
ASGNF4
line 2439
;2439:	llAngles[ROLL] = viewAngles[ROLL]*0.45f;
ADDRLP4 148
CNSTI4 8
ASGNI4
ADDRFP4 20
INDIRP4
ADDRLP4 148
INDIRI4
ADDP4
CNSTF4 1055286886
ADDRFP4 4
INDIRP4
ADDRLP4 148
INDIRI4
ADDP4
INDIRF4
MULF4
ASGNF4
line 2440
;2440:}
LABELV $1047
endproc CG_G2ClientSpineAngles 248 36
data
align 4
LABELV $1087
byte 4 0
byte 4 22
byte 4 45
byte 4 -22
byte 4 0
byte 4 22
byte 4 -45
byte 4 -22
lit
align 4
LABELV $1088
byte 4 0
byte 4 0
byte 4 0
code
proc CG_G2PlayerAngles 1456 44
line 2442
;2441:
;2442:static void CG_G2PlayerAngles( centity_t *cent, vec3_t legs[3], vec3_t legsAngles){
line 2450
;2443:	vec3_t		torsoAngles, headAngles;
;2444:	float		dest;
;2445:	static	int	movementOffsets[8] = { 0, 22, 45, -22, 0, 22, -45, -22 };
;2446:	vec3_t		velocity;
;2447:	float		speed; //, speed_dif, speed_desired;
;2448:	int			dir;
;2449:	vec3_t		velPos, velAng;
;2450:	int			adddir = 0;
ADDRLP4 116
CNSTI4 0
ASGNI4
line 2452
;2451:	float		dif;
;2452:	float		degrees_negative = 0;
ADDRLP4 108
CNSTF4 0
ASGNF4
line 2453
;2453:	float		degrees_positive = 0;
ADDRLP4 112
CNSTF4 0
ASGNF4
line 2454
;2454:	vec3_t		ulAngles, llAngles, viewAngles, angles, thoracicAngles = {0,0,0};
ADDRLP4 96
ADDRGP4 $1088
INDIRB
ASGNB 12
line 2456
;2455:
;2456:	VectorCopy( cent->lerpAngles, headAngles );
ADDRLP4 12
ADDRFP4 0
INDIRP4
CNSTI4 940
ADDP4
INDIRB
ASGNB 12
line 2457
;2457:	headAngles[YAW] = AngleMod( headAngles[YAW] );
ADDRLP4 12+4
INDIRF4
ARGF4
ADDRLP4 148
ADDRGP4 AngleMod
CALLF4
ASGNF4
ADDRLP4 12+4
ADDRLP4 148
INDIRF4
ASGNF4
line 2458
;2458:	VectorClear( legsAngles );
ADDRLP4 152
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 156
CNSTF4 0
ASGNF4
ADDRLP4 152
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 156
INDIRF4
ASGNF4
ADDRLP4 152
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 156
INDIRF4
ASGNF4
ADDRLP4 152
INDIRP4
ADDRLP4 156
INDIRF4
ASGNF4
line 2459
;2459:	VectorClear( torsoAngles );
ADDRLP4 160
CNSTF4 0
ASGNF4
ADDRLP4 0+8
ADDRLP4 160
INDIRF4
ASGNF4
ADDRLP4 0+4
ADDRLP4 160
INDIRF4
ASGNF4
ADDRLP4 0
ADDRLP4 160
INDIRF4
ASGNF4
line 2464
;2460:
;2461:	// --------- yaw -------------
;2462:
;2463:	// allow yaw to drift a bit
;2464:	if ((( cent->currentState.legsAnim & ~ANIM_TOGGLEBIT ) != BOTH_STAND1) || 
ADDRLP4 164
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 168
CNSTI4 -2049
ASGNI4
ADDRLP4 164
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
ADDRLP4 168
INDIRI4
BANDI4
CNSTI4 571
NEI4 $1095
ADDRLP4 164
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
ADDRLP4 168
INDIRI4
BANDI4
ADDRLP4 164
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 WeaponReadyAnim
ADDP4
INDIRI4
EQI4 $1093
LABELV $1095
line 2466
;2465:			( cent->currentState.torsoAnim & ~ANIM_TOGGLEBIT ) != WeaponReadyAnim[cent->currentState.weapon]  ) 
;2466:	{
line 2468
;2467:		// if not standing still, always point all in the same direction
;2468:		cent->pe.torso.yawing = qtrue;	// always center
ADDRFP4 0
INDIRP4
CNSTI4 732
ADDP4
CNSTI4 1
ASGNI4
line 2469
;2469:		cent->pe.torso.pitching = qtrue;	// always center
ADDRFP4 0
INDIRP4
CNSTI4 740
ADDP4
CNSTI4 1
ASGNI4
line 2470
;2470:		cent->pe.legs.yawing = qtrue;	// always center
ADDRFP4 0
INDIRP4
CNSTI4 668
ADDP4
CNSTI4 1
ASGNI4
line 2471
;2471:	}
LABELV $1093
line 2474
;2472:
;2473:	// adjust legs for movement dir
;2474:	if ( cent->currentState.eFlags & EF_DEAD ) {
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $1096
line 2476
;2475:		// don't let dead bodies twitch
;2476:		dir = 0;
ADDRLP4 88
CNSTI4 0
ASGNI4
line 2477
;2477:	} else {
ADDRGP4 $1097
JUMPV
LABELV $1096
line 2478
;2478:		dir = cent->currentState.angles2[YAW];
ADDRLP4 88
ADDRFP4 0
INDIRP4
CNSTI4 132
ADDP4
INDIRF4
CVFI4 4
ASGNI4
line 2479
;2479:		if ( dir < 0 || dir > 7 ) {
ADDRLP4 88
INDIRI4
CNSTI4 0
LTI4 $1100
ADDRLP4 88
INDIRI4
CNSTI4 7
LEI4 $1098
LABELV $1100
line 2480
;2480:			CG_Error( "Bad player movement angle" );
ADDRGP4 $1101
ARGP4
ADDRGP4 CG_Error
CALLV
pop
line 2481
;2481:		}
LABELV $1098
line 2482
;2482:	}
LABELV $1097
line 2483
;2483:	if (!cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
NEI4 $1102
line 2484
;2484:	{
line 2485
;2485:		torsoAngles[YAW] = headAngles[YAW] + 0.25 * movementOffsets[ dir ];
ADDRLP4 0+4
ADDRLP4 12+4
INDIRF4
CNSTF4 1048576000
ADDRLP4 88
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 $1087
ADDP4
INDIRI4
CVIF4 4
MULF4
ADDF4
ASGNF4
line 2486
;2486:	}
ADDRGP4 $1103
JUMPV
LABELV $1102
line 2488
;2487:	else
;2488:	{
line 2489
;2489:		torsoAngles[YAW] = headAngles[YAW];
ADDRLP4 0+4
ADDRLP4 12+4
INDIRF4
ASGNF4
line 2490
;2490:	}
LABELV $1103
line 2497
;2491:
;2492:	// torso
;2493://	CG_SwingAngles( torsoAngles[YAW], 25, 90, /*cg_swingSpeed.value*/ 0.3, &cent->pe.torso.yawAngle, &cent->pe.torso.yawing );
;2494://	torsoAngles[YAW] = cent->pe.torso.yawAngle;
;2495:
;2496:	//for now, turn torso instantly and let the legs swing to follow
;2497:	cent->pe.torso.yawAngle = torsoAngles[YAW];
ADDRFP4 0
INDIRP4
CNSTI4 728
ADDP4
ADDRLP4 0+4
INDIRF4
ASGNF4
line 2501
;2498:
;2499:	// --------- pitch -------------
;2500:
;2501:	VectorCopy( cent->currentState.pos.trDelta, velocity );
ADDRLP4 36
ADDRFP4 0
INDIRP4
CNSTI4 36
ADDP4
INDIRB
ASGNB 12
line 2502
;2502:	speed = VectorNormalize( velocity );
ADDRLP4 36
ARGP4
ADDRLP4 172
ADDRGP4 VectorNormalize
CALLF4
ASGNF4
ADDRLP4 84
ADDRLP4 172
INDIRF4
ASGNF4
line 2504
;2503:
;2504:	if (!speed)
ADDRLP4 84
INDIRF4
CNSTF4 0
NEF4 $1109
line 2505
;2505:	{
line 2506
;2506:		torsoAngles[YAW] = headAngles[YAW];
ADDRLP4 0+4
ADDRLP4 12+4
INDIRF4
ASGNF4
line 2507
;2507:	}
LABELV $1109
line 2511
;2508:
;2509:	// adnan
;2510:   // turn it all the way
;2511:   dest = headAngles[PITCH];
ADDRLP4 144
ADDRLP4 12
INDIRF4
ASGNF4
line 2522
;2512:   /*
;2513:   // only show a fraction of the pitch angle in the torso
;2514:	if ( headAngles[PITCH] > 180 ) {
;2515:		dest = (-360 + headAngles[PITCH]) * 0.75;
;2516:	} else {
;2517:		dest = headAngles[PITCH] * 0.75;
;2518:	}
;2519:   */
;2520:	//CG_SwingAngles( dest, 15, 30, 0.1, &cent->pe.torso.pitchAngle, &cent->pe.torso.pitching );
;2521:	//torsoAngles[PITCH] = cent->pe.torso.pitchAngle;
;2522:   torsoAngles[PITCH] = headAngles[PITCH];
ADDRLP4 0
ADDRLP4 12
INDIRF4
ASGNF4
line 2550
;2523:
;2524:	// --------- roll -------------
;2525:
;2526:
;2527:	// lean towards the direction of travel
;2528:
;2529:	/*
;2530:	speed_desired = cent->currentState.speed/4;
;2531:
;2532:	if (!speed)
;2533:	{
;2534:		speed_dif = 0;
;2535:	}
;2536:	else
;2537:	{
;2538:		speed_dif = (speed/speed_desired);
;2539:	}
;2540:
;2541:	if (speed_dif > 1)
;2542:	{
;2543:		speed_dif = 1;
;2544:	}
;2545:	else if (speed_dif < 0)
;2546:	{
;2547:		speed_dif = 0;
;2548:	}
;2549:	*/
;2550:	if ( speed ) {
ADDRLP4 84
INDIRF4
CNSTF4 0
EQF4 $1113
line 2554
;2551:		vec3_t	axis[3];
;2552:		float	side;
;2553:
;2554:		speed *= 0.05;
ADDRLP4 84
CNSTF4 1028443341
ADDRLP4 84
INDIRF4
MULF4
ASGNF4
line 2556
;2555:
;2556:		AnglesToAxis( legsAngles, axis );
ADDRFP4 8
INDIRP4
ARGP4
ADDRLP4 176
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 2557
;2557:		side = speed * DotProduct( velocity, axis[1] );
ADDRLP4 212
ADDRLP4 84
INDIRF4
ADDRLP4 36
INDIRF4
ADDRLP4 176+12
INDIRF4
MULF4
ADDRLP4 36+4
INDIRF4
ADDRLP4 176+12+4
INDIRF4
MULF4
ADDF4
ADDRLP4 36+8
INDIRF4
ADDRLP4 176+12+8
INDIRF4
MULF4
ADDF4
MULF4
ASGNF4
line 2558
;2558:		legsAngles[ROLL] -= side;
ADDRLP4 216
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 216
INDIRP4
ADDRLP4 216
INDIRP4
INDIRF4
ADDRLP4 212
INDIRF4
SUBF4
ASGNF4
line 2560
;2559:
;2560:		side = speed * DotProduct( velocity, axis[0] );
ADDRLP4 212
ADDRLP4 84
INDIRF4
ADDRLP4 36
INDIRF4
ADDRLP4 176
INDIRF4
MULF4
ADDRLP4 36+4
INDIRF4
ADDRLP4 176+4
INDIRF4
MULF4
ADDF4
ADDRLP4 36+8
INDIRF4
ADDRLP4 176+8
INDIRF4
MULF4
ADDF4
MULF4
ASGNF4
line 2561
;2561:		legsAngles[PITCH] += side;
ADDRLP4 220
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 220
INDIRP4
ADDRLP4 220
INDIRP4
INDIRF4
ADDRLP4 212
INDIRF4
ADDF4
ASGNF4
line 2562
;2562:	}
LABELV $1113
line 2570
;2563:
;2564:	//legsAngles[YAW] = headAngles[YAW] + (movementOffsets[ dir ]*speed_dif);
;2565:
;2566:	// adnan
;2567:   // dont lean in direction of movement
;2568:   
;2569:   //rww - crazy velocity-based leg angle calculation
;2570:	legsAngles[YAW] = headAngles[YAW];
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 12+4
INDIRF4
ASGNF4
line 2571
;2571:	velPos[0] = cent->lerpOrigin[0] + velocity[0];
ADDRLP4 48
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
INDIRF4
ADDRLP4 36
INDIRF4
ADDF4
ASGNF4
line 2572
;2572:	velPos[1] = cent->lerpOrigin[1] + velocity[1];
ADDRLP4 48+4
ADDRFP4 0
INDIRP4
CNSTI4 932
ADDP4
INDIRF4
ADDRLP4 36+4
INDIRF4
ADDF4
ASGNF4
line 2573
;2573:	velPos[2] = cent->lerpOrigin[2];// + velocity[2];
ADDRLP4 48+8
ADDRFP4 0
INDIRP4
CNSTI4 936
ADDP4
INDIRF4
ASGNF4
line 2575
;2574:
;2575:	if (cent->currentState.groundEntityNum == ENTITYNUM_NONE)
ADDRFP4 0
INDIRP4
CNSTI4 192
ADDP4
INDIRI4
CNSTI4 1023
NEI4 $1130
line 2576
;2576:	{ //off the ground, no direction-based leg angles
line 2577
;2577:		VectorCopy(cent->lerpOrigin, velPos);
ADDRLP4 48
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
INDIRB
ASGNB 12
line 2578
;2578:	}
LABELV $1130
line 2580
;2579:
;2580:	VectorSubtract(cent->lerpOrigin, velPos, velAng);
ADDRLP4 176
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 60
ADDRLP4 176
INDIRP4
CNSTI4 928
ADDP4
INDIRF4
ADDRLP4 48
INDIRF4
SUBF4
ASGNF4
ADDRLP4 60+4
ADDRLP4 176
INDIRP4
CNSTI4 932
ADDP4
INDIRF4
ADDRLP4 48+4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 60+8
ADDRFP4 0
INDIRP4
CNSTI4 936
ADDP4
INDIRF4
ADDRLP4 48+8
INDIRF4
SUBF4
ASGNF4
line 2582
;2581:
;2582:	if (!VectorCompare(velAng, vec3_origin))
ADDRLP4 60
ARGP4
ADDRGP4 vec3_origin
ARGP4
ADDRLP4 180
ADDRGP4 VectorCompare
CALLI4
ASGNI4
ADDRLP4 180
INDIRI4
CNSTI4 0
NEI4 $1136
line 2583
;2583:	{
line 2584
;2584:		vectoangles(velAng, velAng);
ADDRLP4 60
ARGP4
ADDRLP4 60
ARGP4
ADDRGP4 vectoangles
CALLV
pop
line 2586
;2585:
;2586:		if (velAng[YAW] <= legsAngles[YAW])
ADDRLP4 60+4
INDIRF4
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
GTF4 $1138
line 2587
;2587:		{
line 2588
;2588:			degrees_negative = (legsAngles[YAW] - velAng[YAW]);
ADDRLP4 108
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 60+4
INDIRF4
SUBF4
ASGNF4
line 2589
;2589:			degrees_positive = (360 - legsAngles[YAW]) + velAng[YAW];
ADDRLP4 112
CNSTF4 1135869952
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
SUBF4
ADDRLP4 60+4
INDIRF4
ADDF4
ASGNF4
line 2590
;2590:		}
ADDRGP4 $1139
JUMPV
LABELV $1138
line 2592
;2591:		else
;2592:		{
line 2593
;2593:			degrees_negative = legsAngles[YAW] + (360 - velAng[YAW]);
ADDRLP4 108
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
CNSTF4 1135869952
ADDRLP4 60+4
INDIRF4
SUBF4
ADDF4
ASGNF4
line 2594
;2594:			degrees_positive = (velAng[YAW] - legsAngles[YAW]);
ADDRLP4 112
ADDRLP4 60+4
INDIRF4
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 2595
;2595:		}
LABELV $1139
line 2597
;2596:
;2597:		if (degrees_negative < degrees_positive)
ADDRLP4 108
INDIRF4
ADDRLP4 112
INDIRF4
GEF4 $1145
line 2598
;2598:		{
line 2599
;2599:			dif = degrees_negative;
ADDRLP4 92
ADDRLP4 108
INDIRF4
ASGNF4
line 2600
;2600:			adddir = 0;
ADDRLP4 116
CNSTI4 0
ASGNI4
line 2601
;2601:		}
ADDRGP4 $1146
JUMPV
LABELV $1145
line 2603
;2602:		else
;2603:		{
line 2604
;2604:			dif = degrees_positive;
ADDRLP4 92
ADDRLP4 112
INDIRF4
ASGNF4
line 2605
;2605:			adddir = 1;
ADDRLP4 116
CNSTI4 1
ASGNI4
line 2606
;2606:		}
LABELV $1146
line 2608
;2607:
;2608:		if (dif > 90)
ADDRLP4 92
INDIRF4
CNSTF4 1119092736
LEF4 $1147
line 2609
;2609:		{
line 2610
;2610:			dif = (180 - dif);
ADDRLP4 92
CNSTF4 1127481344
ADDRLP4 92
INDIRF4
SUBF4
ASGNF4
line 2611
;2611:		}
LABELV $1147
line 2613
;2612:
;2613:		if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $1149
line 2614
;2614:		{
line 2615
;2615:			if (dif > 360)
ADDRLP4 92
INDIRF4
CNSTF4 1135869952
LEF4 $1150
line 2616
;2616:			{
line 2617
;2617:				dif = 360;
ADDRLP4 92
CNSTF4 1135869952
ASGNF4
line 2618
;2618:			}
line 2619
;2619:		}
ADDRGP4 $1150
JUMPV
LABELV $1149
line 2621
;2620:		else
;2621:		{
line 2622
;2622:			if (dif > 60)
ADDRLP4 92
INDIRF4
CNSTF4 1114636288
LEF4 $1153
line 2623
;2623:			{
line 2624
;2624:				dif = 60;
ADDRLP4 92
CNSTF4 1114636288
ASGNF4
line 2625
;2625:			}
LABELV $1153
line 2626
;2626:		}
LABELV $1150
line 2629
;2627:
;2628:		//Slight hack for when playing is running backward
;2629:		if (dir == 3 || dir == 5)
ADDRLP4 88
INDIRI4
CNSTI4 3
EQI4 $1157
ADDRLP4 88
INDIRI4
CNSTI4 5
NEI4 $1155
LABELV $1157
line 2630
;2630:		{
line 2631
;2631:			dif = -dif;
ADDRLP4 92
ADDRLP4 92
INDIRF4
NEGF4
ASGNF4
line 2632
;2632:		}
LABELV $1155
line 2634
;2633:
;2634:		if (adddir)
ADDRLP4 116
INDIRI4
CNSTI4 0
EQI4 $1158
line 2635
;2635:		{
line 2636
;2636:			legsAngles[YAW] -= dif;
ADDRLP4 188
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ASGNP4
ADDRLP4 188
INDIRP4
ADDRLP4 188
INDIRP4
INDIRF4
ADDRLP4 92
INDIRF4
SUBF4
ASGNF4
line 2637
;2637:		}
ADDRGP4 $1159
JUMPV
LABELV $1158
line 2639
;2638:		else
;2639:		{
line 2640
;2640:			legsAngles[YAW] += dif;
ADDRLP4 188
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ASGNP4
ADDRLP4 188
INDIRP4
ADDRLP4 188
INDIRP4
INDIRF4
ADDRLP4 92
INDIRF4
ADDF4
ASGNF4
line 2641
;2641:		}
LABELV $1159
line 2642
;2642:	}
LABELV $1136
line 2644
;2643:
;2644:	if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $1160
line 2645
;2645:	{
line 2647
;2646:      // s/0.05/cg_swingSpeed.value
;2647:		cent->pe.legs.yawSwingDif = CG_SwingAnglesATST( cent, legsAngles[YAW], 40, 360, 0.05, &cent->pe.legs.yawAngle, &cent->pe.legs.yawing );
ADDRLP4 184
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 184
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ARGF4
CNSTF4 1109393408
ARGF4
CNSTF4 1135869952
ARGF4
CNSTF4 1028443341
ARGF4
ADDRLP4 184
INDIRP4
CNSTI4 664
ADDP4
ARGP4
ADDRLP4 184
INDIRP4
CNSTI4 668
ADDP4
ARGP4
ADDRLP4 188
ADDRGP4 CG_SwingAnglesATST
CALLF4
ASGNF4
ADDRLP4 184
INDIRP4
CNSTI4 680
ADDP4
ADDRLP4 188
INDIRF4
ASGNF4
line 2648
;2648:	}
ADDRGP4 $1161
JUMPV
LABELV $1160
line 2650
;2649:	else
;2650:	{
line 2651
;2651:		if (!cg_swingAngles.integer)
ADDRGP4 cg_swingAngles+12
INDIRI4
CNSTI4 0
NEI4 $1162
line 2652
;2652:		{
line 2653
;2653:			cent->pe.legs.yawAngle = legsAngles[YAW];
ADDRFP4 0
INDIRP4
CNSTI4 664
ADDP4
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
line 2654
;2654:		}
ADDRGP4 $1163
JUMPV
LABELV $1162
line 2656
;2655:		else
;2656:		{
line 2658
;2657:         // s/0.3/cg_swingSpeed.value
;2658:			CG_SwingAngles( legsAngles[YAW], 40, 90, 0.3, &cent->pe.legs.yawAngle, &cent->pe.legs.yawing );
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ARGF4
CNSTF4 1109393408
ARGF4
CNSTF4 1119092736
ARGF4
CNSTF4 1050253722
ARGF4
ADDRLP4 184
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 184
INDIRP4
CNSTI4 664
ADDP4
ARGP4
ADDRLP4 184
INDIRP4
CNSTI4 668
ADDP4
ARGP4
ADDRGP4 CG_SwingAngles
CALLF4
pop
line 2659
;2659:		}
LABELV $1163
line 2660
;2660:	}
LABELV $1161
line 2662
;2661:   
;2662:	legsAngles[YAW] = cent->pe.legs.yawAngle;
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 664
ADDP4
INDIRF4
ASGNF4
line 2665
;2663:
;2664:	// pain twitch
;2665:	CG_AddPainTwitch( cent, torsoAngles );
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 0
ARGP4
ADDRGP4 CG_AddPainTwitch
CALLV
pop
line 2673
;2666:
;2667:	// adnan took out roll shit
;2668:   /*
;2669:   legsAngles[ROLL] = 0;
;2670:	torsoAngles[ROLL] = 0;
;2671:   */
;2672:
;2673:	VectorCopy(legsAngles, cent->turAngles);
ADDRFP4 0
INDIRP4
CNSTI4 1016
ADDP4
ADDRFP4 8
INDIRP4
INDIRB
ASGNB 12
line 2675
;2674:
;2675:	if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $1165
line 2676
;2676:	{
line 2677
;2677:		legsAngles[ROLL] = 0;
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
CNSTF4 0
ASGNF4
line 2678
;2678:		legsAngles[PITCH] = 0;
ADDRFP4 8
INDIRP4
CNSTF4 0
ASGNF4
line 2679
;2679:	}
LABELV $1165
line 2682
;2680:
;2681:	// pull the angles back out of the hierarchial chain
;2682:	AnglesSubtract( headAngles, torsoAngles, headAngles );
ADDRLP4 12
ARGP4
ADDRLP4 0
ARGP4
ADDRLP4 12
ARGP4
ADDRGP4 AnglesSubtract
CALLV
pop
line 2683
;2683:	AnglesSubtract( torsoAngles, legsAngles, torsoAngles );
ADDRLP4 0
ARGP4
ADDRFP4 8
INDIRP4
ARGP4
ADDRLP4 0
ARGP4
ADDRGP4 AnglesSubtract
CALLV
pop
line 2685
;2684:
;2685:	legsAngles[PITCH] = 0;
ADDRFP4 8
INDIRP4
CNSTF4 0
ASGNF4
line 2687
;2686:
;2687:	AnglesToAxis( legsAngles, legs );
ADDRFP4 8
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 2690
;2688:	// we assume that model 0 is the player model.
;2689:
;2690:	if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $1167
line 2691
;2691:	{
line 2694
;2692:		vec3_t flatYaw;
;2693:
;2694:		flatYaw[YAW] = 0;//cent->lerpAngles[YAW];
ADDRLP4 184+4
CNSTF4 0
ASGNF4
line 2695
;2695:		flatYaw[ROLL] = 0;
ADDRLP4 184+8
CNSTF4 0
ASGNF4
line 2696
;2696:		flatYaw[PITCH] = 0;
ADDRLP4 184
CNSTF4 0
ASGNF4
line 2697
;2697:		CG_G2SetBoneAngles(cent->ghoul2, 0, "pelvis", flatYaw, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time); 
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 196
CNSTI4 0
ASGNI4
ADDRLP4 196
INDIRI4
ARGI4
ADDRGP4 $306
ARGP4
ADDRLP4 184
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 196
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 CG_G2SetBoneAngles
CALLV
pop
line 2699
;2698:
;2699:		CG_G2SetBoneAngles(cent->ghoul2, 0, "thoracic", torsoAngles, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time); 
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 200
CNSTI4 0
ASGNI4
ADDRLP4 200
INDIRI4
ARGI4
ADDRGP4 $1173
ARGP4
ADDRLP4 0
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 200
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 CG_G2SetBoneAngles
CALLV
pop
line 2701
;2700:
;2701:		return;
ADDRGP4 $1086
JUMPV
LABELV $1167
line 2706
;2702:	}
;2703:
;2704://	trap_G2API_SetBoneAngles(cent->ghoul2, 0, "upper_lumbar", torsoAngles, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time); 
;2705:
;2706:	VectorCopy( cent->lerpAngles, viewAngles );
ADDRLP4 72
ADDRFP4 0
INDIRP4
CNSTI4 940
ADDP4
INDIRB
ASGNB 12
line 2707
;2707:	viewAngles[YAW] = viewAngles[ROLL] = 0;
ADDRLP4 184
CNSTF4 0
ASGNF4
ADDRLP4 72+8
ADDRLP4 184
INDIRF4
ASGNF4
ADDRLP4 72+4
ADDRLP4 184
INDIRF4
ASGNF4
line 2708
;2708:	viewAngles[PITCH] *= 0.5;
ADDRLP4 72
CNSTF4 1056964608
ADDRLP4 72
INDIRF4
MULF4
ASGNF4
line 2710
;2709:
;2710:	VectorSet( angles, 0, legsAngles[1], 0 );
ADDRLP4 24
CNSTF4 0
ASGNF4
ADDRLP4 24+4
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
ADDRLP4 24+8
CNSTF4 0
ASGNF4
line 2712
;2711:
;2712:	angles[0] = legsAngles[0];
ADDRLP4 24
ADDRFP4 8
INDIRP4
INDIRF4
ASGNF4
line 2713
;2713:	if ( angles[0] > 30 )
ADDRLP4 24
INDIRF4
CNSTF4 1106247680
LEF4 $1180
line 2714
;2714:	{
line 2715
;2715:		angles[0] = 30;
ADDRLP4 24
CNSTF4 1106247680
ASGNF4
line 2716
;2716:	}
ADDRGP4 $1181
JUMPV
LABELV $1180
line 2717
;2717:	else if ( angles[0] < -30 )
ADDRLP4 24
INDIRF4
CNSTF4 3253731328
GEF4 $1182
line 2718
;2718:	{
line 2719
;2719:		angles[0] = -30;
ADDRLP4 24
CNSTF4 3253731328
ASGNF4
line 2720
;2720:	}
LABELV $1182
LABELV $1181
line 2724
;2721:
;2722://	VectorCopy(legsAngles, angles);
;2723:
;2724:	CG_G2ClientSpineAngles(cent, viewAngles, angles, thoracicAngles, ulAngles, llAngles);
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 72
ARGP4
ADDRLP4 24
ARGP4
ADDRLP4 96
ARGP4
ADDRLP4 120
ARGP4
ADDRLP4 132
ARGP4
ADDRGP4 CG_G2ClientSpineAngles
CALLV
pop
line 2726
;2725:
;2726:	if ( cent->currentState.otherEntityNum2 && !(cent->currentState.eFlags & EF_DEAD) )
ADDRLP4 188
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 192
CNSTI4 0
ASGNI4
ADDRLP4 188
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
ADDRLP4 192
INDIRI4
EQI4 $1184
ADDRLP4 188
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
ADDRLP4 192
INDIRI4
NEI4 $1184
line 2727
;2727:	{ //using an emplaced gun
line 2728
;2728:		centity_t *empEnt = &cg_entities[cent->currentState.otherEntityNum2];
ADDRLP4 208
CNSTI4 1920
ADDRFP4 0
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
MULI4
ADDRGP4 cg_entities
ADDP4
ASGNP4
line 2731
;2729:		vec3_t headAng;
;2730:
;2731:		VectorClear(headAng);
ADDRLP4 212
CNSTF4 0
ASGNF4
ADDRLP4 196+8
ADDRLP4 212
INDIRF4
ASGNF4
ADDRLP4 196+4
ADDRLP4 212
INDIRF4
ASGNF4
ADDRLP4 196
ADDRLP4 212
INDIRF4
ASGNF4
line 2733
;2732:
;2733:		if (empEnt)
ADDRLP4 208
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $1188
line 2734
;2734:		{
line 2737
;2735:			vec3_t dif, empOrg, originalAngle;
;2736:
;2737:			VectorCopy(cent->lerpAngles, originalAngle);
ADDRLP4 240
ADDRFP4 0
INDIRP4
CNSTI4 940
ADDP4
INDIRB
ASGNB 12
line 2739
;2738:
;2739:			VectorCopy(empEnt->lerpOrigin, empOrg);
ADDRLP4 228
ADDRLP4 208
INDIRP4
CNSTI4 928
ADDP4
INDIRB
ASGNB 12
line 2741
;2740:
;2741:			empOrg[2] += 32;
ADDRLP4 228+8
ADDRLP4 228+8
INDIRF4
CNSTF4 1107296256
ADDF4
ASGNF4
line 2743
;2742:
;2743:			VectorSubtract(empOrg, cent->lerpOrigin, dif);
ADDRLP4 252
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 216
ADDRLP4 228
INDIRF4
ADDRLP4 252
INDIRP4
CNSTI4 928
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 216+4
ADDRLP4 228+4
INDIRF4
ADDRLP4 252
INDIRP4
CNSTI4 932
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 216+8
ADDRLP4 228+8
INDIRF4
ADDRFP4 0
INDIRP4
CNSTI4 936
ADDP4
INDIRF4
SUBF4
ASGNF4
line 2744
;2744:			VectorNormalize(dif);
ADDRLP4 216
ARGP4
ADDRGP4 VectorNormalize
CALLF4
pop
line 2745
;2745:			vectoangles(dif, dif);
ADDRLP4 216
ARGP4
ADDRLP4 216
ARGP4
ADDRGP4 vectoangles
CALLV
pop
line 2747
;2746:			
;2747:			VectorCopy(dif, cent->lerpAngles);
ADDRFP4 0
INDIRP4
CNSTI4 940
ADDP4
ADDRLP4 216
INDIRB
ASGNB 12
line 2749
;2748:
;2749:			VectorCopy(cent->lerpAngles, legsAngles);
ADDRFP4 8
INDIRP4
ADDRFP4 0
INDIRP4
CNSTI4 940
ADDP4
INDIRB
ASGNB 12
line 2751
;2750:
;2751:			VectorSubtract(originalAngle, cent->lerpAngles, headAng);
ADDRLP4 256
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 196
ADDRLP4 240
INDIRF4
ADDRLP4 256
INDIRP4
CNSTI4 940
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 196+4
ADDRLP4 240+4
INDIRF4
ADDRLP4 256
INDIRP4
CNSTI4 944
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 196+8
ADDRLP4 240+8
INDIRF4
ADDRFP4 0
INDIRP4
CNSTI4 948
ADDP4
INDIRF4
SUBF4
ASGNF4
line 2753
;2752:
;2753:			headAng[PITCH] /= 3; //scale it down so that you can't bend your neck all the way back
ADDRLP4 196
ADDRLP4 196
INDIRF4
CNSTF4 1077936128
DIVF4
ASGNF4
line 2754
;2754:		}
ADDRGP4 $1189
JUMPV
LABELV $1188
line 2756
;2755:		else
;2756:		{
line 2757
;2757:			VectorClear(cent->lerpAngles);
ADDRLP4 216
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 220
CNSTF4 0
ASGNF4
ADDRLP4 216
INDIRP4
CNSTI4 948
ADDP4
ADDRLP4 220
INDIRF4
ASGNF4
ADDRLP4 216
INDIRP4
CNSTI4 944
ADDP4
ADDRLP4 220
INDIRF4
ASGNF4
ADDRLP4 216
INDIRP4
CNSTI4 940
ADDP4
ADDRLP4 220
INDIRF4
ASGNF4
line 2758
;2758:			VectorClear(legsAngles);
ADDRLP4 224
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 228
CNSTF4 0
ASGNF4
ADDRLP4 224
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 228
INDIRF4
ASGNF4
ADDRLP4 224
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 228
INDIRF4
ASGNF4
ADDRLP4 224
INDIRP4
ADDRLP4 228
INDIRF4
ASGNF4
line 2759
;2759:		}
LABELV $1189
line 2761
;2760:
;2761:		AnglesToAxis( legsAngles, legs );
ADDRFP4 8
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 2763
;2762:
;2763:		CG_G2SetBoneAngles(cent->ghoul2, 0, "upper_lumbar", vec3_origin, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time); 
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 216
CNSTI4 0
ASGNI4
ADDRLP4 216
INDIRI4
ARGI4
ADDRGP4 $314
ARGP4
ADDRGP4 vec3_origin
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 216
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 CG_G2SetBoneAngles
CALLV
pop
line 2764
;2764:		CG_G2SetBoneAngles(cent->ghoul2, 0, "lower_lumbar", vec3_origin, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time); 
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 220
CNSTI4 0
ASGNI4
ADDRLP4 220
INDIRI4
ARGI4
ADDRGP4 $323
ARGP4
ADDRGP4 vec3_origin
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 220
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 CG_G2SetBoneAngles
CALLV
pop
line 2765
;2765:		CG_G2SetBoneAngles(cent->ghoul2, 0, "thoracic", vec3_origin, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time); 
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 224
CNSTI4 0
ASGNI4
ADDRLP4 224
INDIRI4
ARGI4
ADDRGP4 $1173
ARGP4
ADDRGP4 vec3_origin
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 224
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 CG_G2SetBoneAngles
CALLV
pop
line 2767
;2766:
;2767:		CG_G2SetBoneAngles(cent->ghoul2, 0, "cervical", headAng, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 228
CNSTI4 0
ASGNI4
ADDRLP4 228
INDIRI4
ARGI4
ADDRGP4 $1205
ARGP4
ADDRLP4 196
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 228
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 CG_G2SetBoneAngles
CALLV
pop
line 2768
;2768:	}
ADDRGP4 $1185
JUMPV
LABELV $1184
line 2770
;2769:	else
;2770:	{
line 2771
;2771:		CG_G2SetBoneAngles(cent->ghoul2, 0, "upper_lumbar", ulAngles, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time); 
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 196
CNSTI4 0
ASGNI4
ADDRLP4 196
INDIRI4
ARGI4
ADDRGP4 $314
ARGP4
ADDRLP4 120
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 196
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 CG_G2SetBoneAngles
CALLV
pop
line 2772
;2772:		CG_G2SetBoneAngles(cent->ghoul2, 0, "lower_lumbar", llAngles, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time); 
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 200
CNSTI4 0
ASGNI4
ADDRLP4 200
INDIRI4
ARGI4
ADDRGP4 $323
ARGP4
ADDRLP4 132
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 200
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 CG_G2SetBoneAngles
CALLV
pop
line 2773
;2773:		CG_G2SetBoneAngles(cent->ghoul2, 0, "thoracic", thoracicAngles, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time); 
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 204
CNSTI4 0
ASGNI4
ADDRLP4 204
INDIRI4
ARGI4
ADDRGP4 $1173
ARGP4
ADDRLP4 96
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 204
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 CG_G2SetBoneAngles
CALLV
pop
line 2775
;2774:
;2775:		if (cg_duelHeadAngles.integer && !(cent->currentState.eFlags & EF_DEAD))
ADDRLP4 208
CNSTI4 0
ASGNI4
ADDRGP4 cg_duelHeadAngles+12
INDIRI4
ADDRLP4 208
INDIRI4
EQI4 $1214
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
ADDRLP4 208
INDIRI4
NEI4 $1214
line 2776
;2776:		{
line 2777
;2777:			if ( !BG_FlippingAnim( cent->currentState.legsAnim&~ANIM_TOGGLEBIT ) &&
ADDRFP4 0
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 212
ADDRGP4 BG_FlippingAnim
CALLI4
ASGNI4
ADDRLP4 212
INDIRI4
CNSTI4 0
NEI4 $1217
ADDRFP4 0
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 216
ADDRGP4 BG_SpinningSaberAnim
CALLI4
ASGNI4
ADDRLP4 216
INDIRI4
CNSTI4 0
NEI4 $1217
ADDRFP4 0
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 220
ADDRGP4 BG_SpinningSaberAnim
CALLI4
ASGNI4
ADDRLP4 220
INDIRI4
CNSTI4 0
NEI4 $1217
ADDRFP4 0
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 224
ADDRGP4 BG_InSpecialJump
CALLI4
ASGNI4
ADDRLP4 224
INDIRI4
CNSTI4 0
NEI4 $1217
ADDRFP4 0
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 228
ADDRGP4 BG_InSpecialJump
CALLI4
ASGNI4
ADDRLP4 228
INDIRI4
CNSTI4 0
NEI4 $1217
ADDRFP4 0
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 232
ADDRGP4 BG_InDeathAnim
CALLI4
ASGNI4
ADDRLP4 232
INDIRI4
CNSTI4 0
NEI4 $1217
ADDRFP4 0
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 236
ADDRGP4 BG_InDeathAnim
CALLI4
ASGNI4
ADDRLP4 236
INDIRI4
CNSTI4 0
NEI4 $1217
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 240
ADDRGP4 CG_InRoll
CALLI4
ASGNI4
ADDRLP4 240
INDIRI4
CNSTI4 0
NEI4 $1217
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 244
ADDRGP4 CG_InRollAnim
CALLI4
ASGNI4
ADDRLP4 244
INDIRI4
CNSTI4 0
NEI4 $1217
ADDRFP4 0
INDIRP4
CNSTI4 236
ADDP4
INDIRI4
ARGI4
ADDRLP4 248
ADDRGP4 BG_SaberInSpecial
CALLI4
ASGNI4
ADDRLP4 248
INDIRI4
CNSTI4 0
NEI4 $1217
ADDRFP4 0
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 252
ADDRGP4 BG_SaberInSpecialAttack
CALLI4
ASGNI4
ADDRLP4 252
INDIRI4
CNSTI4 0
NEI4 $1217
ADDRFP4 0
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 256
ADDRGP4 BG_SaberInSpecialAttack
CALLI4
ASGNI4
ADDRLP4 256
INDIRI4
CNSTI4 0
NEI4 $1217
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+780
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 260
ADDRGP4 BG_FlippingAnim
CALLI4
ASGNI4
ADDRLP4 260
INDIRI4
CNSTI4 0
NEI4 $1217
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+780
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 264
ADDRGP4 BG_SpinningSaberAnim
CALLI4
ASGNI4
ADDRLP4 264
INDIRI4
CNSTI4 0
NEI4 $1217
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+784
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 268
ADDRGP4 BG_SpinningSaberAnim
CALLI4
ASGNI4
ADDRLP4 268
INDIRI4
CNSTI4 0
NEI4 $1217
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+780
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 272
ADDRGP4 BG_InSpecialJump
CALLI4
ASGNI4
ADDRLP4 272
INDIRI4
CNSTI4 0
NEI4 $1217
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+784
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 276
ADDRGP4 BG_InSpecialJump
CALLI4
ASGNI4
ADDRLP4 276
INDIRI4
CNSTI4 0
NEI4 $1217
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+780
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 280
ADDRGP4 BG_InDeathAnim
CALLI4
ASGNI4
ADDRLP4 280
INDIRI4
CNSTI4 0
NEI4 $1217
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+784
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 284
ADDRGP4 BG_InDeathAnim
CALLI4
ASGNI4
ADDRLP4 284
INDIRI4
CNSTI4 0
NEI4 $1217
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+784
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 288
ADDRGP4 BG_SaberInSpecialAttack
CALLI4
ASGNI4
ADDRLP4 288
INDIRI4
CNSTI4 0
NEI4 $1217
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+780
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ARGI4
ADDRLP4 292
ADDRGP4 BG_SaberInSpecialAttack
CALLI4
ASGNI4
ADDRLP4 292
INDIRI4
CNSTI4 0
NEI4 $1217
line 2799
;2778:				!BG_SpinningSaberAnim( cent->currentState.legsAnim&~ANIM_TOGGLEBIT ) &&
;2779:				!BG_SpinningSaberAnim( cent->currentState.torsoAnim&~ANIM_TOGGLEBIT ) &&
;2780:				!BG_InSpecialJump( cent->currentState.legsAnim&~ANIM_TOGGLEBIT ) &&
;2781:				!BG_InSpecialJump( cent->currentState.torsoAnim&~ANIM_TOGGLEBIT ) &&
;2782:				!BG_InDeathAnim(cent->currentState.legsAnim&~ANIM_TOGGLEBIT) &&
;2783:				!BG_InDeathAnim(cent->currentState.torsoAnim&~ANIM_TOGGLEBIT) &&
;2784:				!CG_InRoll(cent) &&
;2785:				!CG_InRollAnim(cent) &&
;2786:				!BG_SaberInSpecial(cent->currentState.saberMove) &&
;2787:				!BG_SaberInSpecialAttack(cent->currentState.torsoAnim&~ANIM_TOGGLEBIT) &&
;2788:				!BG_SaberInSpecialAttack(cent->currentState.legsAnim&~ANIM_TOGGLEBIT) &&
;2789:
;2790:				!BG_FlippingAnim( cgs.clientinfo[cent->currentState.number].legsAnim&~ANIM_TOGGLEBIT ) &&
;2791:				!BG_SpinningSaberAnim( cgs.clientinfo[cent->currentState.number].legsAnim&~ANIM_TOGGLEBIT ) &&
;2792:				!BG_SpinningSaberAnim( cgs.clientinfo[cent->currentState.number].torsoAnim&~ANIM_TOGGLEBIT ) &&
;2793:				!BG_InSpecialJump( cgs.clientinfo[cent->currentState.number].legsAnim&~ANIM_TOGGLEBIT ) &&
;2794:				!BG_InSpecialJump( cgs.clientinfo[cent->currentState.number].torsoAnim&~ANIM_TOGGLEBIT ) &&
;2795:				!BG_InDeathAnim(cgs.clientinfo[cent->currentState.number].legsAnim&~ANIM_TOGGLEBIT) &&
;2796:				!BG_InDeathAnim(cgs.clientinfo[cent->currentState.number].torsoAnim&~ANIM_TOGGLEBIT) &&
;2797:				!BG_SaberInSpecialAttack(cgs.clientinfo[cent->currentState.number].torsoAnim&~ANIM_TOGGLEBIT) &&
;2798:				!BG_SaberInSpecialAttack(cgs.clientinfo[cent->currentState.number].legsAnim&~ANIM_TOGGLEBIT) )
;2799:			{ //use similar check to spine correction, these are the "safe" anims to be in for twisting around
line 2801
;2800:				vec3_t headAngles;
;2801:				int duelClient = -1;
ADDRLP4 296
CNSTI4 -1
ASGNI4
line 2803
;2802:
;2803:				if (cgs.gametype == GT_TOURNAMENT && (cent->currentState.number == cgs.duelist1 || cent->currentState.number == cgs.duelist2))
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 3
NEI4 $1237
ADDRLP4 312
ADDRFP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 312
INDIRI4
ADDRGP4 cgs+36340
INDIRI4
EQI4 $1242
ADDRLP4 312
INDIRI4
ADDRGP4 cgs+36344
INDIRI4
NEI4 $1237
LABELV $1242
line 2804
;2804:				{
line 2805
;2805:					if (cgs.duelist1 >= 0 && cgs.duelist1 < MAX_CLIENTS &&
ADDRLP4 316
CNSTI4 0
ASGNI4
ADDRGP4 cgs+36340
INDIRI4
ADDRLP4 316
INDIRI4
LTI4 $1238
ADDRLP4 320
CNSTI4 32
ASGNI4
ADDRGP4 cgs+36340
INDIRI4
ADDRLP4 320
INDIRI4
GEI4 $1238
ADDRGP4 cgs+36344
INDIRI4
ADDRLP4 316
INDIRI4
LTI4 $1238
ADDRGP4 cgs+36344
INDIRI4
ADDRLP4 320
INDIRI4
GEI4 $1238
line 2807
;2806:						cgs.duelist2 >= 0 && cgs.duelist2 < MAX_CLIENTS)
;2807:					{
line 2808
;2808:						if (cent->currentState.number == cgs.duelist1)
ADDRFP4 0
INDIRP4
INDIRI4
ADDRGP4 cgs+36340
INDIRI4
NEI4 $1249
line 2809
;2809:						{
line 2810
;2810:							duelClient = cgs.duelist2;
ADDRLP4 296
ADDRGP4 cgs+36344
INDIRI4
ASGNI4
line 2811
;2811:						}
ADDRGP4 $1238
JUMPV
LABELV $1249
line 2813
;2812:						else
;2813:						{
line 2814
;2814:							duelClient = cgs.duelist1;
ADDRLP4 296
ADDRGP4 cgs+36340
INDIRI4
ASGNI4
line 2815
;2815:						}
line 2816
;2816:					}
line 2817
;2817:				}
ADDRGP4 $1238
JUMPV
LABELV $1237
line 2818
;2818:				else if (cg.snap && cg.snap->ps.duelInProgress)
ADDRGP4 cg+36
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $1254
ADDRGP4 cg+36
INDIRP4
CNSTI4 1348
ADDP4
INDIRI4
CNSTI4 0
EQI4 $1254
line 2819
;2819:				{
line 2820
;2820:					if (cent->currentState.number == cg.snap->ps.duelIndex)
ADDRFP4 0
INDIRP4
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 1340
ADDP4
INDIRI4
NEI4 $1258
line 2821
;2821:					{
line 2822
;2822:						duelClient = cg.snap->ps.clientNum;
ADDRLP4 296
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
ASGNI4
line 2823
;2823:					}
ADDRGP4 $1259
JUMPV
LABELV $1258
line 2824
;2824:					else if (cent->currentState.number == cg.snap->ps.clientNum)
ADDRFP4 0
INDIRP4
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
NEI4 $1262
line 2825
;2825:					{
line 2826
;2826:						duelClient = cg.snap->ps.duelIndex;
ADDRLP4 296
ADDRGP4 cg+36
INDIRP4
CNSTI4 1340
ADDP4
INDIRI4
ASGNI4
line 2827
;2827:					}
LABELV $1262
LABELV $1259
line 2828
;2828:				}
LABELV $1254
LABELV $1238
line 2830
;2829:
;2830:				if (duelClient != -1)
ADDRLP4 296
INDIRI4
CNSTI4 -1
EQI4 $1266
line 2831
;2831:				{
line 2834
;2832:					trace_t tr;
;2833:
;2834:					CG_Trace( &tr, cent->lerpOrigin, NULL, NULL, cg_entities[duelClient].lerpOrigin, cent->currentState.number, MASK_PLAYERSOLID );
ADDRLP4 316
ARGP4
ADDRLP4 1396
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1396
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRLP4 1400
CNSTP4 0
ASGNP4
ADDRLP4 1400
INDIRP4
ARGP4
ADDRLP4 1400
INDIRP4
ARGP4
CNSTI4 1920
ADDRLP4 296
INDIRI4
MULI4
ADDRGP4 cg_entities+928
ADDP4
ARGP4
ADDRLP4 1396
INDIRP4
INDIRI4
ARGI4
CNSTI4 273
ARGI4
ADDRGP4 CG_Trace
CALLV
pop
line 2836
;2835:
;2836:					if (tr.fraction == 1.0 ||
ADDRLP4 316+8
INDIRF4
CNSTF4 1065353216
EQF4 $1273
ADDRLP4 316+52
INDIRI4
ADDRLP4 296
INDIRI4
NEI4 $1269
LABELV $1273
line 2838
;2837:						tr.entityNum == duelClient)
;2838:					{
line 2839
;2839:						centity_t *duelCEnt = &cg_entities[duelClient];
ADDRLP4 1404
CNSTI4 1920
ADDRLP4 296
INDIRI4
MULI4
ADDRGP4 cg_entities
ADDP4
ASGNP4
line 2842
;2840:						vec3_t headSub;
;2841:
;2842:						VectorSubtract(duelCEnt->lerpOrigin, cent->lerpOrigin, headSub);
ADDRLP4 1420
ADDRLP4 1404
INDIRP4
ASGNP4
ADDRLP4 1424
CNSTI4 928
ASGNI4
ADDRLP4 1428
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1408
ADDRLP4 1420
INDIRP4
ADDRLP4 1424
INDIRI4
ADDP4
INDIRF4
ADDRLP4 1428
INDIRP4
ADDRLP4 1424
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 1432
CNSTI4 932
ASGNI4
ADDRLP4 1408+4
ADDRLP4 1420
INDIRP4
ADDRLP4 1432
INDIRI4
ADDP4
INDIRF4
ADDRLP4 1428
INDIRP4
ADDRLP4 1432
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 1436
CNSTI4 936
ASGNI4
ADDRLP4 1408+8
ADDRLP4 1404
INDIRP4
ADDRLP4 1436
INDIRI4
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
ADDRLP4 1436
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 2843
;2843:						vectoangles(headSub, headSub);
ADDRLP4 1408
ARGP4
ADDRLP4 1408
ARGP4
ADDRGP4 vectoangles
CALLV
pop
line 2845
;2844:
;2845:						headAngles[ROLL] = AngleSubtract(headSub[ROLL], cent->lerpAngles[ROLL]);
ADDRLP4 1408+8
INDIRF4
ARGF4
ADDRFP4 0
INDIRP4
CNSTI4 948
ADDP4
INDIRF4
ARGF4
ADDRLP4 1440
ADDRGP4 AngleSubtract
CALLF4
ASGNF4
ADDRLP4 300+8
ADDRLP4 1440
INDIRF4
ASGNF4
line 2846
;2846:						headAngles[YAW] = AngleSubtract(headSub[YAW], cent->lerpAngles[YAW]);
ADDRLP4 1408+4
INDIRF4
ARGF4
ADDRFP4 0
INDIRP4
CNSTI4 944
ADDP4
INDIRF4
ARGF4
ADDRLP4 1444
ADDRGP4 AngleSubtract
CALLF4
ASGNF4
ADDRLP4 300+4
ADDRLP4 1444
INDIRF4
ASGNF4
line 2848
;2847:
;2848:						if (headAngles[YAW] > 55)
ADDRLP4 300+4
INDIRF4
CNSTF4 1113325568
LEF4 $1280
line 2849
;2849:						{
line 2850
;2850:							headAngles[YAW] = 55;
ADDRLP4 300+4
CNSTF4 1113325568
ASGNF4
line 2851
;2851:						}
LABELV $1280
line 2852
;2852:						if (headAngles[YAW] < -55)
ADDRLP4 300+4
INDIRF4
CNSTF4 3260809216
GEF4 $1284
line 2853
;2853:						{
line 2854
;2854:							headAngles[YAW] = -55;
ADDRLP4 300+4
CNSTF4 3260809216
ASGNF4
line 2855
;2855:						}
LABELV $1284
line 2857
;2856:
;2857:						VectorCopy( cent->lerpAngles, viewAngles );
ADDRLP4 72
ADDRFP4 0
INDIRP4
CNSTI4 940
ADDP4
INDIRB
ASGNB 12
line 2858
;2858:						viewAngles[YAW] = viewAngles[ROLL] = 0;
ADDRLP4 1448
CNSTF4 0
ASGNF4
ADDRLP4 72+8
ADDRLP4 1448
INDIRF4
ASGNF4
ADDRLP4 72+4
ADDRLP4 1448
INDIRF4
ASGNF4
line 2859
;2859:						viewAngles[PITCH] *= 0.5;
ADDRLP4 72
CNSTF4 1056964608
ADDRLP4 72
INDIRF4
MULF4
ASGNF4
line 2861
;2860:
;2861:						headAngles[PITCH] = AngleSubtract(headSub[PITCH], viewAngles[PITCH]);
ADDRLP4 1408
INDIRF4
ARGF4
ADDRLP4 72
INDIRF4
ARGF4
ADDRLP4 1452
ADDRGP4 AngleSubtract
CALLF4
ASGNF4
ADDRLP4 300
ADDRLP4 1452
INDIRF4
ASGNF4
line 2862
;2862:						if (headAngles[PITCH] > 16)
ADDRLP4 300
INDIRF4
CNSTF4 1098907648
LEF4 $1290
line 2863
;2863:						{
line 2864
;2864:							headAngles[PITCH] = 16;
ADDRLP4 300
CNSTF4 1098907648
ASGNF4
line 2865
;2865:						}
LABELV $1290
line 2866
;2866:						if (headAngles[PITCH] < -16)
ADDRLP4 300
INDIRF4
CNSTF4 3246391296
GEF4 $1292
line 2867
;2867:						{
line 2868
;2868:							headAngles[PITCH] = -16;
ADDRLP4 300
CNSTF4 3246391296
ASGNF4
line 2869
;2869:						}
LABELV $1292
line 2870
;2870:						headAngles[PITCH] += 6;
ADDRLP4 300
ADDRLP4 300
INDIRF4
CNSTF4 1086324736
ADDF4
ASGNF4
line 2871
;2871:					}
ADDRGP4 $1267
JUMPV
LABELV $1269
line 2873
;2872:					else
;2873:					{
line 2874
;2874:						VectorClear(headAngles);
ADDRLP4 1404
CNSTF4 0
ASGNF4
ADDRLP4 300+8
ADDRLP4 1404
INDIRF4
ASGNF4
ADDRLP4 300+4
ADDRLP4 1404
INDIRF4
ASGNF4
ADDRLP4 300
ADDRLP4 1404
INDIRF4
ASGNF4
line 2875
;2875:					}
line 2876
;2876:				}
ADDRGP4 $1267
JUMPV
LABELV $1266
line 2878
;2877:				else
;2878:				{
line 2879
;2879:					VectorClear(headAngles);
ADDRLP4 316
CNSTF4 0
ASGNF4
ADDRLP4 300+8
ADDRLP4 316
INDIRF4
ASGNF4
ADDRLP4 300+4
ADDRLP4 316
INDIRF4
ASGNF4
ADDRLP4 300
ADDRLP4 316
INDIRF4
ASGNF4
line 2880
;2880:				}
LABELV $1267
line 2882
;2881:
;2882:				CG_G2SetBoneAngles(cent->ghoul2, 0, "cervical", headAngles, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 316
CNSTI4 0
ASGNI4
ADDRLP4 316
INDIRI4
ARGI4
ADDRGP4 $1205
ARGP4
ADDRLP4 300
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 316
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 CG_G2SetBoneAngles
CALLV
pop
line 2883
;2883:			}
ADDRGP4 $1215
JUMPV
LABELV $1217
line 2885
;2884:			else
;2885:			{
line 2886
;2886:				VectorClear(headAngles);
ADDRLP4 296
CNSTF4 0
ASGNF4
ADDRLP4 12+8
ADDRLP4 296
INDIRF4
ASGNF4
ADDRLP4 12+4
ADDRLP4 296
INDIRF4
ASGNF4
ADDRLP4 12
ADDRLP4 296
INDIRF4
ASGNF4
line 2887
;2887:				CG_G2SetBoneAngles(cent->ghoul2, 0, "cervical", headAngles, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 300
CNSTI4 0
ASGNI4
ADDRLP4 300
INDIRI4
ARGI4
ADDRGP4 $1205
ARGP4
ADDRLP4 12
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 300
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 CG_G2SetBoneAngles
CALLV
pop
line 2888
;2888:			}
line 2889
;2889:		}
ADDRGP4 $1215
JUMPV
LABELV $1214
line 2891
;2890:		else
;2891:		{
line 2892
;2892:			CG_G2SetBoneAngles(cent->ghoul2, 0, "cervical", vec3_origin, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 212
CNSTI4 0
ASGNI4
ADDRLP4 212
INDIRI4
ARGI4
ADDRGP4 $1205
ARGP4
ADDRGP4 vec3_origin
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 212
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 CG_G2SetBoneAngles
CALLV
pop
line 2893
;2893:		}
LABELV $1215
line 2894
;2894:	}
LABELV $1185
line 2897
;2895:
;2896:	//trap_G2API_SetBoneAngles(cent->ghoul2, 0, "cranium", headAngles, BONE_ANGLES_POSTMULT, POSITIVE_Z, NEGATIVE_Y, POSITIVE_X, cgs.gameModels, 0, cg.time); 
;2897:}
LABELV $1086
endproc CG_G2PlayerAngles 1456 44
proc CG_HasteTrail 40 48
line 2905
;2898://==========================================================================
;2899:
;2900:/*
;2901:===============
;2902:CG_HasteTrail
;2903:===============
;2904:*/
;2905:static void CG_HasteTrail( centity_t *cent ) {
line 2910
;2906:	localEntity_t	*smoke;
;2907:	vec3_t			origin;
;2908:	int				anim;
;2909:
;2910:	if ( cent->trailTime > cg.time ) {
ADDRFP4 0
INDIRP4
CNSTI4 612
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
LEI4 $1307
line 2911
;2911:		return;
ADDRGP4 $1306
JUMPV
LABELV $1307
line 2913
;2912:	}
;2913:	anim = cent->pe.legs.animationNumber & ~ANIM_TOGGLEBIT;
ADDRLP4 12
ADDRFP4 0
INDIRP4
CNSTI4 684
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
line 2914
;2914:	if ( anim != BOTH_RUN1 && anim != BOTH_RUNBACK1 ) {
ADDRLP4 12
INDIRI4
CNSTI4 833
EQI4 $1310
ADDRLP4 12
INDIRI4
CNSTI4 854
EQI4 $1310
line 2915
;2915:		return;
ADDRGP4 $1306
JUMPV
LABELV $1310
line 2918
;2916:	}
;2917:
;2918:	cent->trailTime += 100;
ADDRLP4 24
ADDRFP4 0
INDIRP4
CNSTI4 612
ADDP4
ASGNP4
ADDRLP4 24
INDIRP4
ADDRLP4 24
INDIRP4
INDIRI4
CNSTI4 100
ADDI4
ASGNI4
line 2919
;2919:	if ( cent->trailTime < cg.time ) {
ADDRFP4 0
INDIRP4
CNSTI4 612
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
GEI4 $1312
line 2920
;2920:		cent->trailTime = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 612
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 2921
;2921:	}
LABELV $1312
line 2923
;2922:
;2923:	VectorCopy( cent->lerpOrigin, origin );
ADDRLP4 0
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
INDIRB
ASGNB 12
line 2924
;2924:	origin[2] -= 16;
ADDRLP4 0+8
ADDRLP4 0+8
INDIRF4
CNSTF4 1098907648
SUBF4
ASGNF4
line 2926
;2925:
;2926:	smoke = CG_SmokePuff( origin, vec3_origin, 
ADDRLP4 0
ARGP4
ADDRGP4 vec3_origin
ARGP4
CNSTF4 1090519040
ARGF4
ADDRLP4 28
CNSTF4 1065353216
ASGNF4
ADDRLP4 28
INDIRF4
ARGF4
ADDRLP4 28
INDIRF4
ARGF4
ADDRLP4 28
INDIRF4
ARGF4
ADDRLP4 28
INDIRF4
ARGF4
CNSTF4 1140457472
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRLP4 32
CNSTI4 0
ASGNI4
ADDRLP4 32
INDIRI4
ARGI4
ADDRLP4 32
INDIRI4
ARGI4
ADDRGP4 cgs+71064+476
INDIRI4
ARGI4
ADDRLP4 36
ADDRGP4 CG_SmokePuff
CALLP4
ASGNP4
ADDRLP4 16
ADDRLP4 36
INDIRP4
ASGNP4
line 2936
;2927:				  8, 
;2928:				  1, 1, 1, 1,
;2929:				  500, 
;2930:				  cg.time,
;2931:				  0,
;2932:				  0,
;2933:				  cgs.media.hastePuffShader );
;2934:
;2935:	// use the optimized local entity add
;2936:	smoke->leType = LE_SCALE_FADE;
ADDRLP4 16
INDIRP4
CNSTI4 8
ADDP4
CNSTI4 9
ASGNI4
line 2937
;2937:}
LABELV $1306
endproc CG_HasteTrail 40 48
proc CG_PlayerFlag 368 36
line 3023
;2938:
;2939:/*
;2940:===============
;2941:CG_DustTrail
;2942:===============
;2943:*/
;2944:/*
;2945:static void CG_DustTrail( centity_t *cent ) {
;2946:	int				anim;
;2947:	localEntity_t	*dust;
;2948:	vec3_t end, vel;
;2949:	trace_t tr;
;2950:
;2951:	if (!cg_enableDust.integer)
;2952:		return;
;2953:
;2954:	if ( cent->dustTrailTime > cg.time ) {
;2955:		return;
;2956:	}
;2957:
;2958:	anim = cent->pe.legs.animationNumber & ~ANIM_TOGGLEBIT;
;2959:	if ( anim != LEGS_LANDB && anim != LEGS_LAND ) {
;2960:		return;
;2961:	}
;2962:
;2963:	cent->dustTrailTime += 40;
;2964:	if ( cent->dustTrailTime < cg.time ) {
;2965:		cent->dustTrailTime = cg.time;
;2966:	}
;2967:
;2968:	VectorCopy(cent->currentState.pos.trBase, end);
;2969:	end[2] -= 64;
;2970:	CG_Trace( &tr, cent->currentState.pos.trBase, NULL, NULL, end, cent->currentState.number, MASK_PLAYERSOLID );
;2971:
;2972:	if ( !(tr.surfaceFlags & SURF_DUST) )
;2973:		return;
;2974:
;2975:	VectorCopy( cent->currentState.pos.trBase, end );
;2976:	end[2] -= 16;
;2977:
;2978:	VectorSet(vel, 0, 0, -30);
;2979:	dust = CG_SmokePuff( end, vel,
;2980:				  24,
;2981:				  .8f, .8f, 0.7f, 0.33f,
;2982:				  500,
;2983:				  cg.time,
;2984:				  0,
;2985:				  0,
;2986:				  cgs.media.dustPuffShader );
;2987:}
;2988:*/
;2989:
;2990:/*
;2991:===============
;2992:CG_TrailItem
;2993:===============
;2994:*/
;2995:#if 0
;2996:static void CG_TrailItem( centity_t *cent, qhandle_t hModel ) {
;2997:	refEntity_t		ent;
;2998:	vec3_t			angles;
;2999:	vec3_t			axis[3];
;3000:
;3001:	VectorCopy( cent->lerpAngles, angles );
;3002:	angles[PITCH] = 0;
;3003:	angles[ROLL] = 0;
;3004:	AnglesToAxis( angles, axis );
;3005:
;3006:	memset( &ent, 0, sizeof( ent ) );
;3007:	VectorMA( cent->lerpOrigin, -16, axis[0], ent.origin );
;3008:	ent.origin[2] += 16;
;3009:	angles[YAW] += 90;
;3010:	AnglesToAxis( angles, ent.axis );
;3011:
;3012:	ent.hModel = hModel;
;3013:	trap_R_AddRefEntityToScene( &ent );
;3014:}
;3015:#endif
;3016:
;3017:
;3018:/*
;3019:===============
;3020:CG_PlayerFlag
;3021:===============
;3022:*/
;3023:static void CG_PlayerFlag( centity_t *cent, qhandle_t hModel ) {
line 3030
;3024:	refEntity_t		ent;
;3025:	vec3_t			angles;
;3026:	vec3_t			axis[3];
;3027:	vec3_t			boltOrg, tAng, getAng, right;
;3028:	mdxaBone_t		boltMatrix;
;3029:
;3030:	if (cent->currentState.number == cg.snap->ps.clientNum &&
ADDRFP4 0
INDIRP4
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
NEI4 $1321
ADDRGP4 cg+88
INDIRI4
CNSTI4 0
NEI4 $1321
line 3032
;3031:		!cg.renderingThirdPerson)
;3032:	{
line 3033
;3033:		return;
ADDRGP4 $1320
JUMPV
LABELV $1321
line 3036
;3034:	}
;3035:
;3036:	if (!cent->ghoul2)
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $1325
line 3037
;3037:	{
line 3038
;3038:		return;
ADDRGP4 $1320
JUMPV
LABELV $1325
line 3041
;3039:	}
;3040:
;3041:	VectorSet( tAng, cent->turAngles[PITCH], cent->turAngles[YAW], cent->turAngles[ROLL] );
ADDRLP4 356
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 224
ADDRLP4 356
INDIRP4
CNSTI4 1016
ADDP4
INDIRF4
ASGNF4
ADDRLP4 224+4
ADDRLP4 356
INDIRP4
CNSTI4 1020
ADDP4
INDIRF4
ASGNF4
ADDRLP4 224+8
ADDRFP4 0
INDIRP4
CNSTI4 1024
ADDP4
INDIRF4
ASGNF4
line 3043
;3042:
;3043:	trap_G2API_GetBoltMatrix(cent->ghoul2, 0, cgs.clientinfo[cent->currentState.number].bolt_llumbar, &boltMatrix, tAng, cent->lerpOrigin, cg.time, cgs.gameModels, cent->modelScale);
ADDRLP4 360
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 360
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 812
ADDRLP4 360
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+528
ADDP4
INDIRI4
ARGI4
ADDRLP4 308
ARGP4
ADDRLP4 224
ARGP4
ADDRLP4 360
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 360
INDIRP4
CNSTI4 964
ADDP4
ARGP4
ADDRGP4 trap_G2API_GetBoltMatrix
CALLI4
pop
line 3044
;3044:	trap_G2API_GiveMeVectorFromMatrix(&boltMatrix, ORIGIN, boltOrg);
ADDRLP4 308
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 212
ARGP4
ADDRGP4 trap_G2API_GiveMeVectorFromMatrix
CALLV
pop
line 3046
;3045:
;3046:	trap_G2API_GiveMeVectorFromMatrix(&boltMatrix, POSITIVE_X, tAng);
ADDRLP4 308
ARGP4
CNSTI4 1
ARGI4
ADDRLP4 224
ARGP4
ADDRGP4 trap_G2API_GiveMeVectorFromMatrix
CALLV
pop
line 3047
;3047:	vectoangles(tAng, tAng);
ADDRLP4 224
ARGP4
ADDRLP4 224
ARGP4
ADDRGP4 vectoangles
CALLV
pop
line 3049
;3048:
;3049:	VectorCopy(cent->lerpAngles, angles);
ADDRLP4 236
ADDRFP4 0
INDIRP4
CNSTI4 940
ADDP4
INDIRB
ASGNB 12
line 3051
;3050:
;3051:	boltOrg[2] -= 12;
ADDRLP4 212+8
ADDRLP4 212+8
INDIRF4
CNSTF4 1094713344
SUBF4
ASGNF4
line 3052
;3052:	VectorSet(getAng, 0, cent->lerpAngles[1], 0);
ADDRLP4 284
CNSTF4 0
ASGNF4
ADDRLP4 284+4
ADDRFP4 0
INDIRP4
CNSTI4 944
ADDP4
INDIRF4
ASGNF4
ADDRLP4 284+8
CNSTF4 0
ASGNF4
line 3053
;3053:	AngleVectors(getAng, 0, right, 0);
ADDRLP4 284
ARGP4
ADDRLP4 364
CNSTP4 0
ASGNP4
ADDRLP4 364
INDIRP4
ARGP4
ADDRLP4 296
ARGP4
ADDRLP4 364
INDIRP4
ARGP4
ADDRGP4 AngleVectors
CALLV
pop
line 3054
;3054:	boltOrg[0] += right[0]*8;
ADDRLP4 212
ADDRLP4 212
INDIRF4
CNSTF4 1090519040
ADDRLP4 296
INDIRF4
MULF4
ADDF4
ASGNF4
line 3055
;3055:	boltOrg[1] += right[1]*8;
ADDRLP4 212+4
ADDRLP4 212+4
INDIRF4
CNSTF4 1090519040
ADDRLP4 296+4
INDIRF4
MULF4
ADDF4
ASGNF4
line 3056
;3056:	boltOrg[2] += right[2]*8;
ADDRLP4 212+8
ADDRLP4 212+8
INDIRF4
CNSTF4 1090519040
ADDRLP4 296+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 3058
;3057:
;3058:	angles[PITCH] = -cent->lerpAngles[PITCH]/2-30;
ADDRLP4 236
ADDRFP4 0
INDIRP4
CNSTI4 940
ADDP4
INDIRF4
NEGF4
CNSTF4 1073741824
DIVF4
CNSTF4 1106247680
SUBF4
ASGNF4
line 3059
;3059:	angles[YAW] = tAng[YAW]+270;
ADDRLP4 236+4
ADDRLP4 224+4
INDIRF4
CNSTF4 1132920832
ADDF4
ASGNF4
line 3061
;3060:
;3061:	AnglesToAxis(angles, axis);
ADDRLP4 236
ARGP4
ADDRLP4 248
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 3063
;3062:
;3063:	memset( &ent, 0, sizeof( ent ) );
ADDRLP4 0
ARGP4
CNSTI4 0
ARGI4
CNSTI4 212
ARGI4
ADDRGP4 memset
CALLP4
pop
line 3064
;3064:	VectorMA( boltOrg, 24, axis[0], ent.origin );
ADDRLP4 0+52
ADDRLP4 212
INDIRF4
CNSTF4 1103101952
ADDRLP4 248
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+52+4
ADDRLP4 212+4
INDIRF4
CNSTF4 1103101952
ADDRLP4 248+4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 0+52+8
ADDRLP4 212+8
INDIRF4
CNSTF4 1103101952
ADDRLP4 248+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 3066
;3065:
;3066:	angles[ROLL] += 20;
ADDRLP4 236+8
ADDRLP4 236+8
INDIRF4
CNSTF4 1101004800
ADDF4
ASGNF4
line 3067
;3067:	AnglesToAxis( angles, ent.axis );
ADDRLP4 236
ARGP4
ADDRLP4 0+12
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 3069
;3068:
;3069:	ent.hModel = hModel;
ADDRLP4 0+8
ADDRFP4 4
INDIRI4
ASGNI4
line 3071
;3070:
;3071:	ent.modelScale[0] = 0.5;
ADDRLP4 0+196
CNSTF4 1056964608
ASGNF4
line 3072
;3072:	ent.modelScale[1] = 0.5;
ADDRLP4 0+196+4
CNSTF4 1056964608
ASGNF4
line 3073
;3073:	ent.modelScale[2] = 0.5;
ADDRLP4 0+196+8
CNSTF4 1056964608
ASGNF4
line 3074
;3074:	ScaleModelAxis(&ent);
ADDRLP4 0
ARGP4
ADDRGP4 ScaleModelAxis
CALLV
pop
line 3085
;3075:
;3076:	/*
;3077:	if (cent->currentState.number == cg.snap->ps.clientNum)
;3078:	{ //If we're the current client (in third person), render the flag on our back transparently
;3079:		ent.renderfx |= RF_FORCE_ENT_ALPHA;
;3080:		ent.shaderRGBA[3] = 100;
;3081:	}
;3082:	*/
;3083:	//FIXME: Not doing this at the moment because sorting totally messes up
;3084:
;3085:	trap_R_AddRefEntityToScene( &ent );
ADDRLP4 0
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 3086
;3086:}
LABELV $1320
endproc CG_PlayerFlag 368 36
proc CG_PlayerPowerups 16 20
line 3094
;3087:
;3088:
;3089:/*
;3090:===============
;3091:CG_PlayerPowerups
;3092:===============
;3093:*/
;3094:static void CG_PlayerPowerups( centity_t *cent, refEntity_t *torso ) {
line 3098
;3095:	int		powerups;
;3096:	clientInfo_t	*ci;
;3097:
;3098:	powerups = cent->currentState.powerups;
ADDRLP4 0
ADDRFP4 0
INDIRP4
CNSTI4 272
ADDP4
INDIRI4
ASGNI4
line 3099
;3099:	if ( !powerups ) {
ADDRLP4 0
INDIRI4
CNSTI4 0
NEI4 $1360
line 3100
;3100:		return;
ADDRGP4 $1359
JUMPV
LABELV $1360
line 3104
;3101:	}
;3102:
;3103:	// quad gives a dlight
;3104:	if ( powerups & ( 1 << PW_QUAD ) ) {
ADDRLP4 0
INDIRI4
CNSTI4 2
BANDI4
CNSTI4 0
EQI4 $1362
line 3105
;3105:		trap_R_AddLightToScene( cent->lerpOrigin, 200 + (rand()&31), 0.2f, 0.2f, 1 );
ADDRLP4 8
ADDRGP4 rand
CALLI4
ASGNI4
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRLP4 8
INDIRI4
CNSTI4 31
BANDI4
CNSTI4 200
ADDI4
CVIF4 4
ARGF4
ADDRLP4 12
CNSTF4 1045220557
ASGNF4
ADDRLP4 12
INDIRF4
ARGF4
ADDRLP4 12
INDIRF4
ARGF4
CNSTF4 1065353216
ARGF4
ADDRGP4 trap_R_AddLightToScene
CALLV
pop
line 3106
;3106:	}
LABELV $1362
line 3108
;3107:
;3108:	ci = &cgs.clientinfo[ cent->currentState.clientNum ];
ADDRLP4 4
CNSTI4 812
ADDRFP4 0
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
MULI4
ADDRGP4 cgs+43024
ADDP4
ASGNP4
line 3110
;3109:	// redflag
;3110:	if ( powerups & ( 1 << PW_REDFLAG ) ) {
ADDRLP4 0
INDIRI4
CNSTI4 16
BANDI4
CNSTI4 0
EQI4 $1365
line 3111
;3111:		CG_PlayerFlag( cent, cgs.media.redFlagModel );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 cgs+71064+36
INDIRI4
ARGI4
ADDRGP4 CG_PlayerFlag
CALLV
pop
line 3112
;3112:		trap_R_AddLightToScene( cent->lerpOrigin, 200 + (rand()&31), 1.0, 0.2f, 0.2f );
ADDRLP4 8
ADDRGP4 rand
CALLI4
ASGNI4
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRLP4 8
INDIRI4
CNSTI4 31
BANDI4
CNSTI4 200
ADDI4
CVIF4 4
ARGF4
CNSTF4 1065353216
ARGF4
ADDRLP4 12
CNSTF4 1045220557
ASGNF4
ADDRLP4 12
INDIRF4
ARGF4
ADDRLP4 12
INDIRF4
ARGF4
ADDRGP4 trap_R_AddLightToScene
CALLV
pop
line 3113
;3113:	}
LABELV $1365
line 3116
;3114:
;3115:	// blueflag
;3116:	if ( powerups & ( 1 << PW_BLUEFLAG ) ) {
ADDRLP4 0
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $1369
line 3117
;3117:		CG_PlayerFlag( cent, cgs.media.blueFlagModel );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 cgs+71064+40
INDIRI4
ARGI4
ADDRGP4 CG_PlayerFlag
CALLV
pop
line 3118
;3118:		trap_R_AddLightToScene( cent->lerpOrigin, 200 + (rand()&31), 0.2f, 0.2f, 1.0 );
ADDRLP4 8
ADDRGP4 rand
CALLI4
ASGNI4
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRLP4 8
INDIRI4
CNSTI4 31
BANDI4
CNSTI4 200
ADDI4
CVIF4 4
ARGF4
ADDRLP4 12
CNSTF4 1045220557
ASGNF4
ADDRLP4 12
INDIRF4
ARGF4
ADDRLP4 12
INDIRF4
ARGF4
CNSTF4 1065353216
ARGF4
ADDRGP4 trap_R_AddLightToScene
CALLV
pop
line 3119
;3119:	}
LABELV $1369
line 3122
;3120:
;3121:	// neutralflag
;3122:	if ( powerups & ( 1 << PW_NEUTRALFLAG ) ) {
ADDRLP4 0
INDIRI4
CNSTI4 64
BANDI4
CNSTI4 0
EQI4 $1373
line 3123
;3123:		trap_R_AddLightToScene( cent->lerpOrigin, 200 + (rand()&31), 1.0, 1.0, 1.0 );
ADDRLP4 8
ADDRGP4 rand
CALLI4
ASGNI4
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRLP4 8
INDIRI4
CNSTI4 31
BANDI4
CNSTI4 200
ADDI4
CVIF4 4
ARGF4
ADDRLP4 12
CNSTF4 1065353216
ASGNF4
ADDRLP4 12
INDIRF4
ARGF4
ADDRLP4 12
INDIRF4
ARGF4
ADDRLP4 12
INDIRF4
ARGF4
ADDRGP4 trap_R_AddLightToScene
CALLV
pop
line 3124
;3124:	}
LABELV $1373
line 3127
;3125:
;3126:	// haste leaves smoke trails
;3127:	if ( powerups & ( 1 << PW_HASTE ) ) {
ADDRLP4 0
INDIRI4
CNSTI4 8
BANDI4
CNSTI4 0
EQI4 $1375
line 3128
;3128:		CG_HasteTrail( cent );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CG_HasteTrail
CALLV
pop
line 3129
;3129:	}
LABELV $1375
line 3130
;3130:}
LABELV $1359
endproc CG_PlayerPowerups 16 20
proc CG_PlayerFloatSprite 216 12
line 3140
;3131:
;3132:
;3133:/*
;3134:===============
;3135:CG_PlayerFloatSprite
;3136:
;3137:Float a sprite over the player's head
;3138:===============
;3139:*/
;3140:static void CG_PlayerFloatSprite( centity_t *cent, qhandle_t shader ) {
line 3144
;3141:	int				rf;
;3142:	refEntity_t		ent;
;3143:
;3144:	if ( cent->currentState.number == cg.snap->ps.clientNum && !cg.renderingThirdPerson ) {
ADDRFP4 0
INDIRP4
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
NEI4 $1378
ADDRGP4 cg+88
INDIRI4
CNSTI4 0
NEI4 $1378
line 3145
;3145:		rf = RF_THIRD_PERSON;		// only show in mirrors
ADDRLP4 212
CNSTI4 2
ASGNI4
line 3146
;3146:	} else {
ADDRGP4 $1379
JUMPV
LABELV $1378
line 3147
;3147:		rf = 0;
ADDRLP4 212
CNSTI4 0
ASGNI4
line 3148
;3148:	}
LABELV $1379
line 3150
;3149:
;3150:	memset( &ent, 0, sizeof( ent ) );
ADDRLP4 0
ARGP4
CNSTI4 0
ARGI4
CNSTI4 212
ARGI4
ADDRGP4 memset
CALLP4
pop
line 3151
;3151:	VectorCopy( cent->lerpOrigin, ent.origin );
ADDRLP4 0+52
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
INDIRB
ASGNB 12
line 3152
;3152:	ent.origin[2] += 48;
ADDRLP4 0+52+8
ADDRLP4 0+52+8
INDIRF4
CNSTF4 1111490560
ADDF4
ASGNF4
line 3153
;3153:	ent.reType = RT_SPRITE;
ADDRLP4 0
CNSTI4 2
ASGNI4
line 3154
;3154:	ent.customShader = shader;
ADDRLP4 0+76
ADDRFP4 4
INDIRI4
ASGNI4
line 3155
;3155:	ent.radius = 10;
ADDRLP4 0+92
CNSTF4 1092616192
ASGNF4
line 3156
;3156:	ent.renderfx = rf;
ADDRLP4 0+4
ADDRLP4 212
INDIRI4
ASGNI4
line 3157
;3157:	ent.shaderRGBA[0] = 255;
ADDRLP4 0+80
CNSTU1 255
ASGNU1
line 3158
;3158:	ent.shaderRGBA[1] = 255;
ADDRLP4 0+80+1
CNSTU1 255
ASGNU1
line 3159
;3159:	ent.shaderRGBA[2] = 255;
ADDRLP4 0+80+2
CNSTU1 255
ASGNU1
line 3160
;3160:	ent.shaderRGBA[3] = 255;
ADDRLP4 0+80+3
CNSTU1 255
ASGNU1
line 3161
;3161:	trap_R_AddRefEntityToScene( &ent );
ADDRLP4 0
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 3162
;3162:}
LABELV $1377
endproc CG_PlayerFloatSprite 216 12
proc CG_PlayerSprites 8 20
line 3207
;3163:
;3164:
;3165:
;3166:/*
;3167:===============
;3168:CG_PlayerFloatSprite
;3169:
;3170:Same as above but allows custom RGBA values
;3171:===============
;3172:*/
;3173:#if 0
;3174:static void CG_PlayerFloatSpriteRGBA( centity_t *cent, qhandle_t shader, vec4_t rgba ) {
;3175:	int				rf;
;3176:	refEntity_t		ent;
;3177:
;3178:	if ( cent->currentState.number == cg.snap->ps.clientNum && !cg.renderingThirdPerson ) {
;3179:		rf = RF_THIRD_PERSON;		// only show in mirrors
;3180:	} else {
;3181:		rf = 0;
;3182:	}
;3183:
;3184:	memset( &ent, 0, sizeof( ent ) );
;3185:	VectorCopy( cent->lerpOrigin, ent.origin );
;3186:	ent.origin[2] += 48;
;3187:	ent.reType = RT_SPRITE;
;3188:	ent.customShader = shader;
;3189:	ent.radius = 10;
;3190:	ent.renderfx = rf;
;3191:	ent.shaderRGBA[0] = rgba[0];
;3192:	ent.shaderRGBA[1] = rgba[1];
;3193:	ent.shaderRGBA[2] = rgba[2];
;3194:	ent.shaderRGBA[3] = rgba[3];
;3195:	trap_R_AddRefEntityToScene( &ent );
;3196:}
;3197:#endif
;3198:
;3199:
;3200:/*
;3201:===============
;3202:CG_PlayerSprites
;3203:
;3204:Float sprites over the player's head
;3205:===============
;3206:*/
;3207:static void CG_PlayerSprites( centity_t *cent ) {
line 3210
;3208://	int		team;
;3209:
;3210:	if (cg.snap &&
ADDRGP4 cg+36
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $1396
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 0
INDIRP4
CNSTI4 148
ADDP4
INDIRI4
ARGI4
ADDRLP4 0
INDIRP4
CNSTI4 152
ADDP4
INDIRI4
ARGI4
ADDRLP4 0
INDIRP4
CNSTI4 156
ADDP4
INDIRI4
ARGI4
ADDRLP4 0
INDIRP4
CNSTI4 160
ADDP4
INDIRI4
ARGI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
ARGI4
ADDRLP4 4
ADDRGP4 CG_IsMindTricked
CALLI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 0
EQI4 $1396
line 3216
;3211:		CG_IsMindTricked(cent->currentState.trickedentindex,
;3212:		cent->currentState.trickedentindex2,
;3213:		cent->currentState.trickedentindex3,
;3214:		cent->currentState.trickedentindex4,
;3215:		cg.snap->ps.clientNum))
;3216:	{
line 3217
;3217:		return; //this entity is mind-tricking the current client, so don't render it
ADDRGP4 $1395
JUMPV
LABELV $1396
line 3220
;3218:	}
;3219:
;3220:	if ( cent->currentState.eFlags & EF_CONNECTION ) {
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 8192
BANDI4
CNSTI4 0
EQI4 $1400
line 3221
;3221:		CG_PlayerFloatSprite( cent, cgs.media.connectionShader );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 cgs+71064+188
INDIRI4
ARGI4
ADDRGP4 CG_PlayerFloatSprite
CALLV
pop
line 3222
;3222:		return;
ADDRGP4 $1395
JUMPV
LABELV $1400
line 3225
;3223:	}
;3224:
;3225:	if ( cent->currentState.eFlags & EF_TALK ) {
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 4096
BANDI4
CNSTI4 0
EQI4 $1404
line 3226
;3226:		CG_PlayerFloatSprite( cent, cgs.media.balloonShader );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 cgs+71064+184
INDIRI4
ARGI4
ADDRGP4 CG_PlayerFloatSprite
CALLV
pop
line 3227
;3227:		return;
LABELV $1404
line 3270
;3228:	}
;3229:/*
;3230:	if ( cent->currentState.eFlags & EF_AWARD_IMPRESSIVE ) {
;3231:		CG_PlayerFloatSprite( cent, cgs.media.medalImpressive );
;3232:		return;
;3233:	}
;3234:
;3235:	if ( cent->currentState.eFlags & EF_AWARD_EXCELLENT ) {
;3236:		CG_PlayerFloatSprite( cent, cgs.media.medalExcellent );
;3237:		return;
;3238:	}
;3239:
;3240:	if ( cent->currentState.eFlags & EF_AWARD_GAUNTLET ) {
;3241:		CG_PlayerFloatSprite( cent, cgs.media.medalGauntlet );
;3242:		return;
;3243:	}
;3244:
;3245:	if ( cent->currentState.eFlags & EF_AWARD_DEFEND ) {
;3246:		CG_PlayerFloatSprite( cent, cgs.media.medalDefend );
;3247:		return;
;3248:	}
;3249:
;3250:	if ( cent->currentState.eFlags & EF_AWARD_ASSIST ) {
;3251:		CG_PlayerFloatSprite( cent, cgs.media.medalAssist );
;3252:		return;
;3253:	}
;3254:
;3255:	if ( cent->currentState.eFlags & EF_AWARD_CAP ) {
;3256:		CG_PlayerFloatSprite( cent, cgs.media.medalCapture );
;3257:		return;
;3258:	}
;3259:
;3260:	team = cgs.clientinfo[ cent->currentState.clientNum ].team;
;3261:	if ( !(cent->currentState.eFlags & EF_DEAD) && 
;3262:		cg.snap->ps.persistant[PERS_TEAM] == team &&
;3263:		cgs.gametype >= GT_TEAM) {
;3264:		if (cg_drawFriend.integer) {
;3265:			CG_PlayerFloatSprite( cent, cgs.media.friendShader );
;3266:		}
;3267:		return;
;3268:	}
;3269:*/
;3270:}
LABELV $1395
endproc CG_PlayerSprites 8 20
lit
align 4
LABELV $1409
byte 4 3245342720
byte 4 3245342720
byte 4 0
align 4
LABELV $1410
byte 4 1097859072
byte 4 1097859072
byte 4 1073741824
code
proc CG_PlayerShadow 1136 44
line 3282
;3271:
;3272:/*
;3273:===============
;3274:CG_PlayerShadow
;3275:
;3276:Returns the Z component of the surface being shadowed
;3277:
;3278:  should it return a full plane instead of a Z?
;3279:===============
;3280:*/
;3281:#define	SHADOW_DISTANCE		128
;3282:static qboolean CG_PlayerShadow( centity_t *cent, float *shadowPlane ) {
line 3283
;3283:	vec3_t		end, mins = {-15, -15, 0}, maxs = {15, 15, 2};
ADDRLP4 1096
ADDRGP4 $1409
INDIRB
ASGNB 12
ADDRLP4 1108
ADDRGP4 $1410
INDIRB
ASGNB 12
line 3287
;3284:	trace_t		trace;
;3285:	float		alpha;
;3286:
;3287:	*shadowPlane = 0;
ADDRFP4 4
INDIRP4
CNSTF4 0
ASGNF4
line 3289
;3288:
;3289:	if ( cg_shadows.integer == 0 ) {
ADDRGP4 cg_shadows+12
INDIRI4
CNSTI4 0
NEI4 $1411
line 3290
;3290:		return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $1408
JUMPV
LABELV $1411
line 3293
;3291:	}
;3292:
;3293:	if (cent->currentState.eFlags & EF_DEAD)
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $1414
line 3294
;3294:	{
line 3295
;3295:		return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $1408
JUMPV
LABELV $1414
line 3298
;3296:	}
;3297:
;3298:	if (CG_IsMindTricked(cent->currentState.trickedentindex,
ADDRLP4 1120
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1120
INDIRP4
CNSTI4 148
ADDP4
INDIRI4
ARGI4
ADDRLP4 1120
INDIRP4
CNSTI4 152
ADDP4
INDIRI4
ARGI4
ADDRLP4 1120
INDIRP4
CNSTI4 156
ADDP4
INDIRI4
ARGI4
ADDRLP4 1120
INDIRP4
CNSTI4 160
ADDP4
INDIRI4
ARGI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
ARGI4
ADDRLP4 1124
ADDRGP4 CG_IsMindTricked
CALLI4
ASGNI4
ADDRLP4 1124
INDIRI4
CNSTI4 0
EQI4 $1416
line 3303
;3299:		cent->currentState.trickedentindex2,
;3300:		cent->currentState.trickedentindex3,
;3301:		cent->currentState.trickedentindex4,
;3302:		cg.snap->ps.clientNum))
;3303:	{
line 3304
;3304:		return qfalse; //this entity is mind-tricking the current client, so don't render it
CNSTI4 0
RETI4
ADDRGP4 $1408
JUMPV
LABELV $1416
line 3308
;3305:	}
;3306:
;3307:	// send a trace down from the player to the ground
;3308:	VectorCopy( cent->lerpOrigin, end );
ADDRLP4 1084
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
INDIRB
ASGNB 12
line 3309
;3309:	end[2] -= SHADOW_DISTANCE;
ADDRLP4 1084+8
ADDRLP4 1084+8
INDIRF4
CNSTF4 1124073472
SUBF4
ASGNF4
line 3311
;3310:
;3311:	trap_CM_BoxTrace( &trace, cent->lerpOrigin, end, mins, maxs, 0, MASK_PLAYERSOLID );
ADDRLP4 0
ARGP4
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRLP4 1084
ARGP4
ADDRLP4 1096
ARGP4
ADDRLP4 1108
ARGP4
CNSTI4 0
ARGI4
CNSTI4 273
ARGI4
ADDRGP4 trap_CM_BoxTrace
CALLV
pop
line 3314
;3312:
;3313:	// no shadow if too high
;3314:	if ( trace.fraction == 1.0 || trace.startsolid || trace.allsolid ) {
ADDRLP4 0+8
INDIRF4
CNSTF4 1065353216
EQF4 $1425
ADDRLP4 1128
CNSTI4 0
ASGNI4
ADDRLP4 0+4
INDIRI4
ADDRLP4 1128
INDIRI4
NEI4 $1425
ADDRLP4 0
INDIRI4
ADDRLP4 1128
INDIRI4
EQI4 $1420
LABELV $1425
line 3315
;3315:		return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $1408
JUMPV
LABELV $1420
line 3318
;3316:	}
;3317:
;3318:	*shadowPlane = trace.endpos[2] + 1;
ADDRFP4 4
INDIRP4
ADDRLP4 0+12+8
INDIRF4
CNSTF4 1065353216
ADDF4
ASGNF4
line 3320
;3319:
;3320:	if ( cg_shadows.integer != 1 ) {	// no mark for stencil or projection shadows
ADDRGP4 cg_shadows+12
INDIRI4
CNSTI4 1
EQI4 $1428
line 3321
;3321:		return qtrue;
CNSTI4 1
RETI4
ADDRGP4 $1408
JUMPV
LABELV $1428
line 3325
;3322:	}
;3323:
;3324:	// fade the shadow out with height
;3325:	alpha = 1.0 - trace.fraction;
ADDRLP4 1080
CNSTF4 1065353216
ADDRLP4 0+8
INDIRF4
SUBF4
ASGNF4
line 3332
;3326:
;3327:	// bk0101022 - hack / FPE - bogus planes?
;3328:	//assert( DotProduct( trace.plane.normal, trace.plane.normal ) != 0.0f ) 
;3329:
;3330:	// add the mark as a temporary, so it goes directly to the renderer
;3331:	// without taking a spot in the cg_marks array
;3332:	CG_ImpactMark( cgs.media.shadowMarkShader, trace.endpos, trace.plane.normal, 
ADDRGP4 cgs+71064+404
INDIRI4
ARGI4
ADDRLP4 0+12
ARGP4
ADDRLP4 0+24
ARGP4
ADDRFP4 0
INDIRP4
CNSTI4 664
ADDP4
INDIRF4
ARGF4
ADDRLP4 1080
INDIRF4
ARGF4
ADDRLP4 1080
INDIRF4
ARGF4
ADDRLP4 1080
INDIRF4
ARGF4
CNSTF4 1065353216
ARGF4
CNSTI4 0
ARGI4
CNSTF4 1103101952
ARGF4
CNSTI4 1
ARGI4
ADDRGP4 CG_ImpactMark
CALLV
pop
line 3335
;3333:		cent->pe.legs.yawAngle, alpha,alpha,alpha,1, qfalse, 24, qtrue );
;3334:
;3335:	return qtrue;
CNSTI4 1
RETI4
LABELV $1408
endproc CG_PlayerShadow 1136 44
proc CG_PlayerSplash 1216 28
line 3346
;3336:}
;3337:
;3338:
;3339:/*
;3340:===============
;3341:CG_PlayerSplash
;3342:
;3343:Draw a mark at the water surface
;3344:===============
;3345:*/
;3346:static void CG_PlayerSplash( centity_t *cent ) {
line 3352
;3347:	vec3_t		start, end;
;3348:	trace_t		trace;
;3349:	int			contents;
;3350:	polyVert_t	verts[4];
;3351:
;3352:	if ( !cg_shadows.integer ) {
ADDRGP4 cg_shadows+12
INDIRI4
CNSTI4 0
NEI4 $1437
line 3353
;3353:		return;
ADDRGP4 $1436
JUMPV
LABELV $1437
line 3356
;3354:	}
;3355:
;3356:	VectorCopy( cent->lerpOrigin, end );
ADDRLP4 1188
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
INDIRB
ASGNB 12
line 3357
;3357:	end[2] -= 24;
ADDRLP4 1188+8
ADDRLP4 1188+8
INDIRF4
CNSTF4 1103101952
SUBF4
ASGNF4
line 3361
;3358:
;3359:	// if the feet aren't in liquid, don't make a mark
;3360:	// this won't handle moving water brushes, but they wouldn't draw right anyway...
;3361:	contents = trap_CM_PointContents( end, 0 );
ADDRLP4 1188
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 1204
ADDRGP4 trap_CM_PointContents
CALLI4
ASGNI4
ADDRLP4 1200
ADDRLP4 1204
INDIRI4
ASGNI4
line 3362
;3362:	if ( !( contents & ( CONTENTS_WATER | CONTENTS_SLIME | CONTENTS_LAVA ) ) ) {
ADDRLP4 1200
INDIRI4
CNSTI4 131078
BANDI4
CNSTI4 0
NEI4 $1441
line 3363
;3363:		return;
ADDRGP4 $1436
JUMPV
LABELV $1441
line 3366
;3364:	}
;3365:
;3366:	VectorCopy( cent->lerpOrigin, start );
ADDRLP4 1176
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
INDIRB
ASGNB 12
line 3367
;3367:	start[2] += 32;
ADDRLP4 1176+8
ADDRLP4 1176+8
INDIRF4
CNSTF4 1107296256
ADDF4
ASGNF4
line 3370
;3368:
;3369:	// if the head isn't out of liquid, don't make a mark
;3370:	contents = trap_CM_PointContents( start, 0 );
ADDRLP4 1176
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 1208
ADDRGP4 trap_CM_PointContents
CALLI4
ASGNI4
ADDRLP4 1200
ADDRLP4 1208
INDIRI4
ASGNI4
line 3371
;3371:	if ( contents & ( CONTENTS_SOLID | CONTENTS_WATER | CONTENTS_SLIME | CONTENTS_LAVA ) ) {
ADDRLP4 1200
INDIRI4
CNSTI4 131079
BANDI4
CNSTI4 0
EQI4 $1444
line 3372
;3372:		return;
ADDRGP4 $1436
JUMPV
LABELV $1444
line 3376
;3373:	}
;3374:
;3375:	// trace down to find the surface
;3376:	trap_CM_BoxTrace( &trace, start, end, NULL, NULL, 0, ( CONTENTS_WATER | CONTENTS_SLIME | CONTENTS_LAVA ) );
ADDRLP4 96
ARGP4
ADDRLP4 1176
ARGP4
ADDRLP4 1188
ARGP4
ADDRLP4 1212
CNSTP4 0
ASGNP4
ADDRLP4 1212
INDIRP4
ARGP4
ADDRLP4 1212
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 131078
ARGI4
ADDRGP4 trap_CM_BoxTrace
CALLV
pop
line 3378
;3377:
;3378:	if ( trace.fraction == 1.0 ) {
ADDRLP4 96+8
INDIRF4
CNSTF4 1065353216
NEF4 $1446
line 3379
;3379:		return;
ADDRGP4 $1436
JUMPV
LABELV $1446
line 3383
;3380:	}
;3381:
;3382:	// create a mark polygon
;3383:	VectorCopy( trace.endpos, verts[0].xyz );
ADDRLP4 0
ADDRLP4 96+12
INDIRB
ASGNB 12
line 3384
;3384:	verts[0].xyz[0] -= 32;
ADDRLP4 0
ADDRLP4 0
INDIRF4
CNSTF4 1107296256
SUBF4
ASGNF4
line 3385
;3385:	verts[0].xyz[1] -= 32;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRF4
CNSTF4 1107296256
SUBF4
ASGNF4
line 3386
;3386:	verts[0].st[0] = 0;
ADDRLP4 0+12
CNSTF4 0
ASGNF4
line 3387
;3387:	verts[0].st[1] = 0;
ADDRLP4 0+12+4
CNSTF4 0
ASGNF4
line 3388
;3388:	verts[0].modulate[0] = 255;
ADDRLP4 0+20
CNSTU1 255
ASGNU1
line 3389
;3389:	verts[0].modulate[1] = 255;
ADDRLP4 0+20+1
CNSTU1 255
ASGNU1
line 3390
;3390:	verts[0].modulate[2] = 255;
ADDRLP4 0+20+2
CNSTU1 255
ASGNU1
line 3391
;3391:	verts[0].modulate[3] = 255;
ADDRLP4 0+20+3
CNSTU1 255
ASGNU1
line 3393
;3392:
;3393:	VectorCopy( trace.endpos, verts[1].xyz );
ADDRLP4 0+24
ADDRLP4 96+12
INDIRB
ASGNB 12
line 3394
;3394:	verts[1].xyz[0] -= 32;
ADDRLP4 0+24
ADDRLP4 0+24
INDIRF4
CNSTF4 1107296256
SUBF4
ASGNF4
line 3395
;3395:	verts[1].xyz[1] += 32;
ADDRLP4 0+24+4
ADDRLP4 0+24+4
INDIRF4
CNSTF4 1107296256
ADDF4
ASGNF4
line 3396
;3396:	verts[1].st[0] = 0;
ADDRLP4 0+24+12
CNSTF4 0
ASGNF4
line 3397
;3397:	verts[1].st[1] = 1;
ADDRLP4 0+24+12+4
CNSTF4 1065353216
ASGNF4
line 3398
;3398:	verts[1].modulate[0] = 255;
ADDRLP4 0+24+20
CNSTU1 255
ASGNU1
line 3399
;3399:	verts[1].modulate[1] = 255;
ADDRLP4 0+24+20+1
CNSTU1 255
ASGNU1
line 3400
;3400:	verts[1].modulate[2] = 255;
ADDRLP4 0+24+20+2
CNSTU1 255
ASGNU1
line 3401
;3401:	verts[1].modulate[3] = 255;
ADDRLP4 0+24+20+3
CNSTU1 255
ASGNU1
line 3403
;3402:
;3403:	VectorCopy( trace.endpos, verts[2].xyz );
ADDRLP4 0+48
ADDRLP4 96+12
INDIRB
ASGNB 12
line 3404
;3404:	verts[2].xyz[0] += 32;
ADDRLP4 0+48
ADDRLP4 0+48
INDIRF4
CNSTF4 1107296256
ADDF4
ASGNF4
line 3405
;3405:	verts[2].xyz[1] += 32;
ADDRLP4 0+48+4
ADDRLP4 0+48+4
INDIRF4
CNSTF4 1107296256
ADDF4
ASGNF4
line 3406
;3406:	verts[2].st[0] = 1;
ADDRLP4 0+48+12
CNSTF4 1065353216
ASGNF4
line 3407
;3407:	verts[2].st[1] = 1;
ADDRLP4 0+48+12+4
CNSTF4 1065353216
ASGNF4
line 3408
;3408:	verts[2].modulate[0] = 255;
ADDRLP4 0+48+20
CNSTU1 255
ASGNU1
line 3409
;3409:	verts[2].modulate[1] = 255;
ADDRLP4 0+48+20+1
CNSTU1 255
ASGNU1
line 3410
;3410:	verts[2].modulate[2] = 255;
ADDRLP4 0+48+20+2
CNSTU1 255
ASGNU1
line 3411
;3411:	verts[2].modulate[3] = 255;
ADDRLP4 0+48+20+3
CNSTU1 255
ASGNU1
line 3413
;3412:
;3413:	VectorCopy( trace.endpos, verts[3].xyz );
ADDRLP4 0+72
ADDRLP4 96+12
INDIRB
ASGNB 12
line 3414
;3414:	verts[3].xyz[0] += 32;
ADDRLP4 0+72
ADDRLP4 0+72
INDIRF4
CNSTF4 1107296256
ADDF4
ASGNF4
line 3415
;3415:	verts[3].xyz[1] -= 32;
ADDRLP4 0+72+4
ADDRLP4 0+72+4
INDIRF4
CNSTF4 1107296256
SUBF4
ASGNF4
line 3416
;3416:	verts[3].st[0] = 1;
ADDRLP4 0+72+12
CNSTF4 1065353216
ASGNF4
line 3417
;3417:	verts[3].st[1] = 0;
ADDRLP4 0+72+12+4
CNSTF4 0
ASGNF4
line 3418
;3418:	verts[3].modulate[0] = 255;
ADDRLP4 0+72+20
CNSTU1 255
ASGNU1
line 3419
;3419:	verts[3].modulate[1] = 255;
ADDRLP4 0+72+20+1
CNSTU1 255
ASGNU1
line 3420
;3420:	verts[3].modulate[2] = 255;
ADDRLP4 0+72+20+2
CNSTU1 255
ASGNU1
line 3421
;3421:	verts[3].modulate[3] = 255;
ADDRLP4 0+72+20+3
CNSTU1 255
ASGNU1
line 3423
;3422:
;3423:	trap_R_AddPolyToScene( cgs.media.wakeMarkShader, 4, verts );
ADDRGP4 cgs+71064+412
INDIRI4
ARGI4
CNSTI4 4
ARGI4
ADDRLP4 0
ARGP4
ADDRGP4 trap_R_AddPolyToScene
CALLV
pop
line 3424
;3424:}
LABELV $1436
endproc CG_PlayerSplash 1216 28
export CG_ForcePushBlur
proc CG_ForcePushBlur 28 4
line 3427
;3425:
;3426:void CG_ForcePushBlur( vec3_t org )
;3427:{
line 3430
;3428:	localEntity_t	*ex;
;3429:
;3430:	ex = CG_AllocLocalEntity();
ADDRLP4 4
ADDRGP4 CG_AllocLocalEntity
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 4
INDIRP4
ASGNP4
line 3431
;3431:	ex->leType = LE_PUFF;
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
CNSTI4 5
ASGNI4
line 3432
;3432:	ex->refEntity.reType = RT_SPRITE;
ADDRLP4 0
INDIRP4
CNSTI4 248
ADDP4
CNSTI4 2
ASGNI4
line 3433
;3433:	ex->radius = 2.0f;
ADDRLP4 0
INDIRP4
CNSTI4 140
ADDP4
CNSTF4 1073741824
ASGNF4
line 3434
;3434:	ex->startTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 3435
;3435:	ex->endTime = ex->startTime + 120;
ADDRLP4 0
INDIRP4
CNSTI4 20
ADDP4
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
CNSTI4 120
ADDI4
ASGNI4
line 3436
;3436:	VectorCopy( org, ex->pos.trBase );
ADDRLP4 0
INDIRP4
CNSTI4 44
ADDP4
ADDRFP4 0
INDIRP4
INDIRB
ASGNB 12
line 3437
;3437:	ex->pos.trTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 36
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 3438
;3438:	ex->pos.trType = TR_LINEAR;
ADDRLP4 0
INDIRP4
CNSTI4 32
ADDP4
CNSTI4 2
ASGNI4
line 3439
;3439:	VectorScale( cg.refdef.viewaxis[1], 55, ex->pos.trDelta );
ADDRLP4 0
INDIRP4
CNSTI4 56
ADDP4
CNSTF4 1113325568
ADDRGP4 cg+3616+36+12
INDIRF4
MULF4
ASGNF4
ADDRLP4 0
INDIRP4
CNSTI4 60
ADDP4
CNSTF4 1113325568
ADDRGP4 cg+3616+36+12+4
INDIRF4
MULF4
ASGNF4
ADDRLP4 0
INDIRP4
CNSTI4 64
ADDP4
CNSTF4 1113325568
ADDRGP4 cg+3616+36+12+8
INDIRF4
MULF4
ASGNF4
line 3441
;3440:		
;3441:	ex->color[0] = 24;
ADDRLP4 0
INDIRP4
CNSTI4 124
ADDP4
CNSTF4 1103101952
ASGNF4
line 3442
;3442:	ex->color[1] = 32;
ADDRLP4 0
INDIRP4
CNSTI4 128
ADDP4
CNSTF4 1107296256
ASGNF4
line 3443
;3443:	ex->color[2] = 40;
ADDRLP4 0
INDIRP4
CNSTI4 132
ADDP4
CNSTF4 1109393408
ASGNF4
line 3444
;3444:	ex->refEntity.customShader = trap_R_RegisterShader( "gfx/effects/forcePush" );
ADDRGP4 $1540
ARGP4
ADDRLP4 12
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 324
ADDP4
ADDRLP4 12
INDIRI4
ASGNI4
line 3446
;3445:
;3446:	ex = CG_AllocLocalEntity();
ADDRLP4 16
ADDRGP4 CG_AllocLocalEntity
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 16
INDIRP4
ASGNP4
line 3447
;3447:	ex->leType = LE_PUFF;
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
CNSTI4 5
ASGNI4
line 3448
;3448:	ex->refEntity.reType = RT_SPRITE;
ADDRLP4 0
INDIRP4
CNSTI4 248
ADDP4
CNSTI4 2
ASGNI4
line 3449
;3449:	ex->refEntity.rotation = 180.0f;
ADDRLP4 0
INDIRP4
CNSTI4 344
ADDP4
CNSTF4 1127481344
ASGNF4
line 3450
;3450:	ex->radius = 2.0f;
ADDRLP4 0
INDIRP4
CNSTI4 140
ADDP4
CNSTF4 1073741824
ASGNF4
line 3451
;3451:	ex->startTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 3452
;3452:	ex->endTime = ex->startTime + 120;
ADDRLP4 0
INDIRP4
CNSTI4 20
ADDP4
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
CNSTI4 120
ADDI4
ASGNI4
line 3453
;3453:	VectorCopy( org, ex->pos.trBase );
ADDRLP4 0
INDIRP4
CNSTI4 44
ADDP4
ADDRFP4 0
INDIRP4
INDIRB
ASGNB 12
line 3454
;3454:	ex->pos.trTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 36
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 3455
;3455:	ex->pos.trType = TR_LINEAR;
ADDRLP4 0
INDIRP4
CNSTI4 32
ADDP4
CNSTI4 2
ASGNI4
line 3456
;3456:	VectorScale( cg.refdef.viewaxis[1], -55, ex->pos.trDelta );
ADDRLP4 0
INDIRP4
CNSTI4 56
ADDP4
CNSTF4 3260809216
ADDRGP4 cg+3616+36+12
INDIRF4
MULF4
ASGNF4
ADDRLP4 0
INDIRP4
CNSTI4 60
ADDP4
CNSTF4 3260809216
ADDRGP4 cg+3616+36+12+4
INDIRF4
MULF4
ASGNF4
ADDRLP4 0
INDIRP4
CNSTI4 64
ADDP4
CNSTF4 3260809216
ADDRGP4 cg+3616+36+12+8
INDIRF4
MULF4
ASGNF4
line 3458
;3457:		
;3458:	ex->color[0] = 24;
ADDRLP4 0
INDIRP4
CNSTI4 124
ADDP4
CNSTF4 1103101952
ASGNF4
line 3459
;3459:	ex->color[1] = 32;
ADDRLP4 0
INDIRP4
CNSTI4 128
ADDP4
CNSTF4 1107296256
ASGNF4
line 3460
;3460:	ex->color[2] = 40;
ADDRLP4 0
INDIRP4
CNSTI4 132
ADDP4
CNSTF4 1109393408
ASGNF4
line 3461
;3461:	ex->refEntity.customShader = trap_R_RegisterShader( "gfx/effects/forcePush" );
ADDRGP4 $1540
ARGP4
ADDRLP4 24
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 324
ADDP4
ADDRLP4 24
INDIRI4
ASGNI4
line 3462
;3462:}
LABELV $1526
endproc CG_ForcePushBlur 28 4
export CG_ForceGripEffect
proc CG_ForceGripEffect 32 4
line 3465
;3463:
;3464:void CG_ForceGripEffect( vec3_t org )
;3465:{
line 3467
;3466:	localEntity_t	*ex;
;3467:	float wv = sin( cg.time * 0.004f ) * 0.08f + 0.1f;
CNSTF4 998445679
ADDRGP4 cg+64
INDIRI4
CVIF4 4
MULF4
ARGF4
ADDRLP4 8
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 4
CNSTF4 1034147594
ADDRLP4 8
INDIRF4
MULF4
CNSTF4 1036831949
ADDF4
ASGNF4
line 3469
;3468:
;3469:	ex = CG_AllocLocalEntity();
ADDRLP4 12
ADDRGP4 CG_AllocLocalEntity
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 12
INDIRP4
ASGNP4
line 3470
;3470:	ex->leType = LE_PUFF;
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
CNSTI4 5
ASGNI4
line 3471
;3471:	ex->refEntity.reType = RT_SPRITE;
ADDRLP4 0
INDIRP4
CNSTI4 248
ADDP4
CNSTI4 2
ASGNI4
line 3472
;3472:	ex->radius = 2.0f;
ADDRLP4 0
INDIRP4
CNSTI4 140
ADDP4
CNSTF4 1073741824
ASGNF4
line 3473
;3473:	ex->startTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 3474
;3474:	ex->endTime = ex->startTime + 120;
ADDRLP4 0
INDIRP4
CNSTI4 20
ADDP4
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
CNSTI4 120
ADDI4
ASGNI4
line 3475
;3475:	VectorCopy( org, ex->pos.trBase );
ADDRLP4 0
INDIRP4
CNSTI4 44
ADDP4
ADDRFP4 0
INDIRP4
INDIRB
ASGNB 12
line 3476
;3476:	ex->pos.trTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 36
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 3477
;3477:	ex->pos.trType = TR_LINEAR;
ADDRLP4 0
INDIRP4
CNSTI4 32
ADDP4
CNSTI4 2
ASGNI4
line 3478
;3478:	VectorScale( cg.refdef.viewaxis[1], 55, ex->pos.trDelta );
ADDRLP4 0
INDIRP4
CNSTI4 56
ADDP4
CNSTF4 1113325568
ADDRGP4 cg+3616+36+12
INDIRF4
MULF4
ASGNF4
ADDRLP4 0
INDIRP4
CNSTI4 60
ADDP4
CNSTF4 1113325568
ADDRGP4 cg+3616+36+12+4
INDIRF4
MULF4
ASGNF4
ADDRLP4 0
INDIRP4
CNSTI4 64
ADDP4
CNSTF4 1113325568
ADDRGP4 cg+3616+36+12+8
INDIRF4
MULF4
ASGNF4
line 3480
;3479:		
;3480:	ex->color[0] = 200+((wv*255));
ADDRLP4 0
INDIRP4
CNSTI4 124
ADDP4
CNSTF4 1132396544
ADDRLP4 4
INDIRF4
MULF4
CNSTF4 1128792064
ADDF4
ASGNF4
line 3481
;3481:	if (ex->color[0] > 255)
ADDRLP4 0
INDIRP4
CNSTI4 124
ADDP4
INDIRF4
CNSTF4 1132396544
LEF4 $1569
line 3482
;3482:	{
line 3483
;3483:		ex->color[0] = 255;
ADDRLP4 0
INDIRP4
CNSTI4 124
ADDP4
CNSTF4 1132396544
ASGNF4
line 3484
;3484:	}
LABELV $1569
line 3485
;3485:	ex->color[1] = 0;
ADDRLP4 0
INDIRP4
CNSTI4 128
ADDP4
CNSTF4 0
ASGNF4
line 3486
;3486:	ex->color[2] = 0;
ADDRLP4 0
INDIRP4
CNSTI4 132
ADDP4
CNSTF4 0
ASGNF4
line 3487
;3487:	ex->refEntity.customShader = trap_R_RegisterShader( "gfx/effects/forcePush" );
ADDRGP4 $1540
ARGP4
ADDRLP4 20
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRLP4 0
INDIRP4
CNSTI4 324
ADDP4
ADDRLP4 20
INDIRI4
ASGNI4
line 3489
;3488:
;3489:	ex = CG_AllocLocalEntity();
ADDRLP4 24
ADDRGP4 CG_AllocLocalEntity
CALLP4
ASGNP4
ADDRLP4 0
ADDRLP4 24
INDIRP4
ASGNP4
line 3490
;3490:	ex->leType = LE_PUFF;
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
CNSTI4 5
ASGNI4
line 3491
;3491:	ex->refEntity.reType = RT_SPRITE;
ADDRLP4 0
INDIRP4
CNSTI4 248
ADDP4
CNSTI4 2
ASGNI4
line 3492
;3492:	ex->refEntity.rotation = 180.0f;
ADDRLP4 0
INDIRP4
CNSTI4 344
ADDP4
CNSTF4 1127481344
ASGNF4
line 3493
;3493:	ex->radius = 2.0f;
ADDRLP4 0
INDIRP4
CNSTI4 140
ADDP4
CNSTF4 1073741824
ASGNF4
line 3494
;3494:	ex->startTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 3495
;3495:	ex->endTime = ex->startTime + 120;
ADDRLP4 0
INDIRP4
CNSTI4 20
ADDP4
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
CNSTI4 120
ADDI4
ASGNI4
line 3496
;3496:	VectorCopy( org, ex->pos.trBase );
ADDRLP4 0
INDIRP4
CNSTI4 44
ADDP4
ADDRFP4 0
INDIRP4
INDIRB
ASGNB 12
line 3497
;3497:	ex->pos.trTime = cg.time;
ADDRLP4 0
INDIRP4
CNSTI4 36
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 3498
;3498:	ex->pos.trType = TR_LINEAR;
ADDRLP4 0
INDIRP4
CNSTI4 32
ADDP4
CNSTI4 2
ASGNI4
line 3499
;3499:	VectorScale( cg.refdef.viewaxis[1], -55, ex->pos.trDelta );
ADDRLP4 0
INDIRP4
CNSTI4 56
ADDP4
CNSTF4 3260809216
ADDRGP4 cg+3616+36+12
INDIRF4
MULF4
ASGNF4
ADDRLP4 0
INDIRP4
CNSTI4 60
ADDP4
CNSTF4 3260809216
ADDRGP4 cg+3616+36+12+4
INDIRF4
MULF4
ASGNF4
ADDRLP4 0
INDIRP4
CNSTI4 64
ADDP4
CNSTF4 3260809216
ADDRGP4 cg+3616+36+12+8
INDIRF4
MULF4
ASGNF4
line 3508
;3500:
;3501:	/*
;3502:	ex->color[0] = 200+((wv*255));
;3503:	if (ex->color[0] > 255)
;3504:	{
;3505:		ex->color[0] = 255;
;3506:	}
;3507:	*/
;3508:	ex->color[0] = 255;
ADDRLP4 0
INDIRP4
CNSTI4 124
ADDP4
CNSTF4 1132396544
ASGNF4
line 3509
;3509:	ex->color[1] = 255;
ADDRLP4 0
INDIRP4
CNSTI4 128
ADDP4
CNSTF4 1132396544
ASGNF4
line 3510
;3510:	ex->color[2] = 255;
ADDRLP4 0
INDIRP4
CNSTI4 132
ADDP4
CNSTF4 1132396544
ASGNF4
line 3511
;3511:	ex->refEntity.customShader = cgs.media.redSaberGlowShader;//trap_R_RegisterShader( "gfx/effects/forcePush" );
ADDRLP4 0
INDIRP4
CNSTI4 324
ADDP4
ADDRGP4 cgs+71064+116
INDIRI4
ASGNI4
line 3512
;3512:}
LABELV $1554
endproc CG_ForceGripEffect 32 4
export CG_AddRefEntityWithPowerups
proc CG_AddRefEntityWithPowerups 8 20
line 3523
;3513:
;3514:
;3515:/*
;3516:===============
;3517:CG_AddRefEntityWithPowerups
;3518:
;3519:Adds a piece with modifications or duplications for powerups
;3520:Also called by CG_Missile for quad rockets, but nobody can tell...
;3521:===============
;3522:*/
;3523:void CG_AddRefEntityWithPowerups( refEntity_t *ent, entityState_t *state, int team ) {
line 3525
;3524:
;3525:	if (CG_IsMindTricked(state->trickedentindex,
ADDRLP4 0
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 0
INDIRP4
CNSTI4 148
ADDP4
INDIRI4
ARGI4
ADDRLP4 0
INDIRP4
CNSTI4 152
ADDP4
INDIRI4
ARGI4
ADDRLP4 0
INDIRP4
CNSTI4 156
ADDP4
INDIRI4
ARGI4
ADDRLP4 0
INDIRP4
CNSTI4 160
ADDP4
INDIRI4
ARGI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
ARGI4
ADDRLP4 4
ADDRGP4 CG_IsMindTricked
CALLI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 0
EQI4 $1587
line 3530
;3526:		state->trickedentindex2,
;3527:		state->trickedentindex3,
;3528:		state->trickedentindex4,
;3529:		cg.snap->ps.clientNum))
;3530:	{
line 3531
;3531:		return; //this entity is mind-tricking the current client, so don't render it
ADDRGP4 $1586
JUMPV
LABELV $1587
line 3534
;3532:	}
;3533:
;3534:	trap_R_AddRefEntityToScene( ent );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 3536
;3535:
;3536:	if ( state->powerups & ( 1 << PW_QUAD ) )
ADDRFP4 4
INDIRP4
CNSTI4 272
ADDP4
INDIRI4
CNSTI4 2
BANDI4
CNSTI4 0
EQI4 $1590
line 3537
;3537:	{
line 3538
;3538:		if (team == TEAM_RED)
ADDRFP4 8
INDIRI4
CNSTI4 1
NEI4 $1592
line 3539
;3539:			ent->customShader = cgs.media.redQuadShader;
ADDRFP4 0
INDIRP4
CNSTI4 76
ADDP4
ADDRGP4 cgs+71064+452
INDIRI4
ASGNI4
ADDRGP4 $1593
JUMPV
LABELV $1592
line 3541
;3540:		else
;3541:			ent->customShader = cgs.media.quadShader;
ADDRFP4 0
INDIRP4
CNSTI4 76
ADDP4
ADDRGP4 cgs+71064+448
INDIRI4
ASGNI4
LABELV $1593
line 3542
;3542:		trap_R_AddRefEntityToScene( ent );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 3543
;3543:	}
LABELV $1590
line 3544
;3544:	if ( state->powerups & ( 1 << PW_BATTLESUIT ) ) {
ADDRFP4 4
INDIRP4
CNSTI4 272
ADDP4
INDIRI4
CNSTI4 4
BANDI4
CNSTI4 0
EQI4 $1598
line 3545
;3545:		ent->customShader = cgs.media.battleSuitShader;
ADDRFP4 0
INDIRP4
CNSTI4 76
ADDP4
ADDRGP4 cgs+71064+468
INDIRI4
ASGNI4
line 3546
;3546:		trap_R_AddRefEntityToScene( ent );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 3547
;3547:	}
LABELV $1598
line 3548
;3548:}
LABELV $1586
endproc CG_AddRefEntityWithPowerups 8 20
export CG_PlayerShieldHit
proc CG_PlayerShieldHit 24 8
line 3555
;3549:
;3550:#define MAX_SHIELD_TIME	2000.0
;3551:#define MIN_SHIELD_TIME	2000.0
;3552:
;3553:
;3554:void CG_PlayerShieldHit(int entitynum, vec3_t dir, int amount)
;3555:{
line 3559
;3556:	centity_t *cent;
;3557:	int	time;
;3558:
;3559:	if (entitynum<0 || entitynum >= MAX_CLIENTS)
ADDRLP4 8
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 8
INDIRI4
CNSTI4 0
LTI4 $1605
ADDRLP4 8
INDIRI4
CNSTI4 32
LTI4 $1603
LABELV $1605
line 3560
;3560:	{
line 3561
;3561:		return;
ADDRGP4 $1602
JUMPV
LABELV $1603
line 3564
;3562:	}
;3563:
;3564:	cent = &cg_entities[entitynum];
ADDRLP4 0
CNSTI4 1920
ADDRFP4 0
INDIRI4
MULI4
ADDRGP4 cg_entities
ADDP4
ASGNP4
line 3566
;3565:
;3566:	if (amount > 100)
ADDRFP4 8
INDIRI4
CNSTI4 100
LEI4 $1606
line 3567
;3567:	{
line 3568
;3568:		time = cg.time + MAX_SHIELD_TIME;		// 2 sec.
ADDRLP4 4
ADDRGP4 cg+64
INDIRI4
CVIF4 4
CNSTF4 1157234688
ADDF4
CVFI4 4
ASGNI4
line 3569
;3569:	}
ADDRGP4 $1607
JUMPV
LABELV $1606
line 3571
;3570:	else
;3571:	{
line 3572
;3572:		time = cg.time + 500 + amount*15;
ADDRLP4 4
ADDRGP4 cg+64
INDIRI4
CNSTI4 500
ADDI4
CNSTI4 15
ADDRFP4 8
INDIRI4
MULI4
ADDI4
ASGNI4
line 3573
;3573:	}
LABELV $1607
line 3575
;3574:
;3575:	if (time > cent->damageTime)
ADDRLP4 4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 636
ADDP4
INDIRI4
LEI4 $1610
line 3576
;3576:	{
line 3577
;3577:		cent->damageTime = time;
ADDRLP4 0
INDIRP4
CNSTI4 636
ADDP4
ADDRLP4 4
INDIRI4
ASGNI4
line 3578
;3578:		VectorScale(dir, -1, dir);
ADDRLP4 12
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 12
INDIRP4
CNSTF4 3212836864
ADDRLP4 12
INDIRP4
INDIRF4
MULF4
ASGNF4
ADDRLP4 16
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
ASGNP4
ADDRLP4 16
INDIRP4
CNSTF4 3212836864
ADDRLP4 16
INDIRP4
INDIRF4
MULF4
ASGNF4
ADDRLP4 20
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 20
INDIRP4
CNSTF4 3212836864
ADDRLP4 20
INDIRP4
INDIRF4
MULF4
ASGNF4
line 3579
;3579:		vectoangles(dir, cent->damageAngles);
ADDRFP4 4
INDIRP4
ARGP4
ADDRLP4 0
INDIRP4
CNSTI4 624
ADDP4
ARGP4
ADDRGP4 vectoangles
CALLV
pop
line 3580
;3580:	}
LABELV $1610
line 3581
;3581:}
LABELV $1602
endproc CG_PlayerShieldHit 24 8
export CG_DrawPlayerShield
proc CG_DrawPlayerShield 224 12
line 3585
;3582:
;3583:
;3584:void CG_DrawPlayerShield(centity_t *cent, vec3_t origin)
;3585:{
line 3591
;3586:	refEntity_t ent;
;3587:	int			alpha;
;3588:	float		scale;
;3589:	
;3590:	// Don't draw the shield when the player is dead.
;3591:	if (cent->currentState.eFlags & EF_DEAD)
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $1613
line 3592
;3592:	{
line 3593
;3593:		return;
ADDRGP4 $1612
JUMPV
LABELV $1613
line 3596
;3594:	}
;3595:
;3596:	memset( &ent, 0, sizeof( ent ) );
ADDRLP4 0
ARGP4
CNSTI4 0
ARGI4
CNSTI4 212
ARGI4
ADDRGP4 memset
CALLP4
pop
line 3598
;3597:
;3598:	VectorCopy( origin, ent.origin );
ADDRLP4 0+52
ADDRFP4 4
INDIRP4
INDIRB
ASGNB 12
line 3599
;3599:	ent.origin[2] += 10.0;
ADDRLP4 0+52+8
ADDRLP4 0+52+8
INDIRF4
CNSTF4 1092616192
ADDF4
ASGNF4
line 3600
;3600:	AnglesToAxis( cent->damageAngles, ent.axis );
ADDRFP4 0
INDIRP4
CNSTI4 624
ADDP4
ARGP4
ADDRLP4 0+12
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 3602
;3601:
;3602:	alpha = 255.0 * ((cent->damageTime - cg.time) / MIN_SHIELD_TIME) + random()*16;
ADDRLP4 220
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 216
CNSTF4 1132396544
ADDRFP4 0
INDIRP4
CNSTI4 636
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
SUBI4
CVIF4 4
CNSTF4 1157234688
DIVF4
MULF4
CNSTF4 1098907648
ADDRLP4 220
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
MULF4
ADDF4
CVFI4 4
ASGNI4
line 3603
;3603:	if (alpha>255)
ADDRLP4 216
INDIRI4
CNSTI4 255
LEI4 $1620
line 3604
;3604:		alpha=255;
ADDRLP4 216
CNSTI4 255
ASGNI4
LABELV $1620
line 3607
;3605:
;3606:	// Make it bigger, but tighter if more solid
;3607:	scale = 1.4 - ((float)alpha*(0.4/255.0));		// Range from 1.0 to 1.4
ADDRLP4 212
CNSTF4 1068708659
CNSTF4 986552935
ADDRLP4 216
INDIRI4
CVIF4 4
MULF4
SUBF4
ASGNF4
line 3608
;3608:	VectorScale( ent.axis[0], scale, ent.axis[0] );
ADDRLP4 0+12
ADDRLP4 0+12
INDIRF4
ADDRLP4 212
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+4
ADDRLP4 0+12+4
INDIRF4
ADDRLP4 212
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+8
ADDRLP4 0+12+8
INDIRF4
ADDRLP4 212
INDIRF4
MULF4
ASGNF4
line 3609
;3609:	VectorScale( ent.axis[1], scale, ent.axis[1] );
ADDRLP4 0+12+12
ADDRLP4 0+12+12
INDIRF4
ADDRLP4 212
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+12+4
ADDRLP4 0+12+12+4
INDIRF4
ADDRLP4 212
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+12+8
ADDRLP4 0+12+12+8
INDIRF4
ADDRLP4 212
INDIRF4
MULF4
ASGNF4
line 3610
;3610:	VectorScale( ent.axis[2], scale, ent.axis[2] );
ADDRLP4 0+12+24
ADDRLP4 0+12+24
INDIRF4
ADDRLP4 212
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+24+4
ADDRLP4 0+12+24+4
INDIRF4
ADDRLP4 212
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+24+8
ADDRLP4 0+12+24+8
INDIRF4
ADDRLP4 212
INDIRF4
MULF4
ASGNF4
line 3612
;3611:
;3612:	ent.hModel = cgs.media.halfShieldModel;
ADDRLP4 0+8
ADDRGP4 cgs+71064+900
INDIRI4
ASGNI4
line 3613
;3613:	ent.customShader = cgs.media.halfShieldShader;
ADDRLP4 0+76
ADDRGP4 cgs+71064+904
INDIRI4
ASGNI4
line 3614
;3614:	ent.shaderRGBA[0] = alpha;
ADDRLP4 0+80
ADDRLP4 216
INDIRI4
CVIU4 4
CVUU1 4
ASGNU1
line 3615
;3615:	ent.shaderRGBA[1] = alpha;
ADDRLP4 0+80+1
ADDRLP4 216
INDIRI4
CVIU4 4
CVUU1 4
ASGNU1
line 3616
;3616:	ent.shaderRGBA[2] = alpha;
ADDRLP4 0+80+2
ADDRLP4 216
INDIRI4
CVIU4 4
CVUU1 4
ASGNU1
line 3617
;3617:	ent.shaderRGBA[3] = 255;
ADDRLP4 0+80+3
CNSTU1 255
ASGNU1
line 3618
;3618:	trap_R_AddRefEntityToScene( &ent );
ADDRLP4 0
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 3619
;3619:}
LABELV $1612
endproc CG_DrawPlayerShield 224 12
export CG_PlayerHitFX
proc CG_PlayerHitFX 4 8
line 3623
;3620:
;3621:
;3622:void CG_PlayerHitFX(centity_t *cent)
;3623:{
line 3627
;3624:	centity_t *curent;
;3625:
;3626:	// only do the below fx if the cent in question is...uh...me, and it's first person.
;3627:	if (cent->currentState.clientNum != cg.predictedPlayerState.clientNum || cg.renderingThirdPerson)
ADDRFP4 0
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
ADDRGP4 cg+96+144
INDIRI4
NEI4 $1683
ADDRGP4 cg+88
INDIRI4
CNSTI4 0
EQI4 $1678
LABELV $1683
line 3628
;3628:	{
line 3630
;3629:		// Get the NON-PREDICTED player entity, because the predicted one doesn't have the damage info on it.
;3630:		curent = &cg_entities[cent->currentState.number];
ADDRLP4 0
CNSTI4 1920
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities
ADDP4
ASGNP4
line 3632
;3631:
;3632:		if (curent->damageTime > cg.time)
ADDRLP4 0
INDIRP4
CNSTI4 636
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
LEI4 $1677
line 3633
;3633:		{
line 3634
;3634:			CG_DrawPlayerShield(curent, cent->lerpOrigin);
ADDRLP4 0
INDIRP4
ARGP4
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRGP4 CG_DrawPlayerShield
CALLV
pop
line 3635
;3635:		}
line 3637
;3636:
;3637:		return;
LABELV $1678
line 3639
;3638:	}
;3639:}
LABELV $1677
endproc CG_PlayerHitFX 4 8
export CG_LightVerts
proc CG_LightVerts 88 16
line 3649
;3640:
;3641:
;3642:
;3643:/*
;3644:=================
;3645:CG_LightVerts
;3646:=================
;3647:*/
;3648:int CG_LightVerts( vec3_t normal, int numVerts, polyVert_t *verts )
;3649:{
line 3656
;3650:	int				i, j;
;3651:	float			incoming;
;3652:	vec3_t			ambientLight;
;3653:	vec3_t			lightDir;
;3654:	vec3_t			directedLight;
;3655:
;3656:	trap_R_LightForPoint( verts[0].xyz, ambientLight, directedLight, lightDir );
ADDRFP4 8
INDIRP4
ARGP4
ADDRLP4 12
ARGP4
ADDRLP4 36
ARGP4
ADDRLP4 24
ARGP4
ADDRGP4 trap_R_LightForPoint
CALLI4
pop
line 3658
;3657:
;3658:	for (i = 0; i < numVerts; i++) {
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRGP4 $1691
JUMPV
LABELV $1688
line 3659
;3659:		incoming = DotProduct (normal, lightDir);
ADDRLP4 48
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 8
ADDRLP4 48
INDIRP4
INDIRF4
ADDRLP4 24
INDIRF4
MULF4
ADDRLP4 48
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 24+4
INDIRF4
MULF4
ADDF4
ADDRLP4 48
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 24+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 3660
;3660:		if ( incoming <= 0 ) {
ADDRLP4 8
INDIRF4
CNSTF4 0
GTF4 $1694
line 3661
;3661:			verts[i].modulate[0] = ambientLight[0];
ADDRLP4 56
ADDRLP4 12
INDIRF4
ASGNF4
ADDRLP4 60
CNSTF4 1325400064
ASGNF4
ADDRLP4 56
INDIRF4
ADDRLP4 60
INDIRF4
LTF4 $1697
ADDRLP4 52
ADDRLP4 56
INDIRF4
ADDRLP4 60
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $1698
JUMPV
LABELV $1697
ADDRLP4 52
ADDRLP4 56
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $1698
CNSTI4 24
ADDRLP4 4
INDIRI4
MULI4
ADDRFP4 8
INDIRP4
ADDP4
CNSTI4 20
ADDP4
ADDRLP4 52
INDIRU4
CVUU1 4
ASGNU1
line 3662
;3662:			verts[i].modulate[1] = ambientLight[1];
ADDRLP4 68
ADDRLP4 12+4
INDIRF4
ASGNF4
ADDRLP4 72
CNSTF4 1325400064
ASGNF4
ADDRLP4 68
INDIRF4
ADDRLP4 72
INDIRF4
LTF4 $1701
ADDRLP4 64
ADDRLP4 68
INDIRF4
ADDRLP4 72
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $1702
JUMPV
LABELV $1701
ADDRLP4 64
ADDRLP4 68
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $1702
CNSTI4 24
ADDRLP4 4
INDIRI4
MULI4
ADDRFP4 8
INDIRP4
ADDP4
CNSTI4 21
ADDP4
ADDRLP4 64
INDIRU4
CVUU1 4
ASGNU1
line 3663
;3663:			verts[i].modulate[2] = ambientLight[2];
ADDRLP4 80
ADDRLP4 12+8
INDIRF4
ASGNF4
ADDRLP4 84
CNSTF4 1325400064
ASGNF4
ADDRLP4 80
INDIRF4
ADDRLP4 84
INDIRF4
LTF4 $1705
ADDRLP4 76
ADDRLP4 80
INDIRF4
ADDRLP4 84
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $1706
JUMPV
LABELV $1705
ADDRLP4 76
ADDRLP4 80
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $1706
CNSTI4 24
ADDRLP4 4
INDIRI4
MULI4
ADDRFP4 8
INDIRP4
ADDP4
CNSTI4 22
ADDP4
ADDRLP4 76
INDIRU4
CVUU1 4
ASGNU1
line 3664
;3664:			verts[i].modulate[3] = 255;
CNSTI4 24
ADDRLP4 4
INDIRI4
MULI4
ADDRFP4 8
INDIRP4
ADDP4
CNSTI4 23
ADDP4
CNSTU1 255
ASGNU1
line 3665
;3665:			continue;
ADDRGP4 $1689
JUMPV
LABELV $1694
line 3667
;3666:		} 
;3667:		j = ( ambientLight[0] + incoming * directedLight[0] );
ADDRLP4 0
ADDRLP4 12
INDIRF4
ADDRLP4 8
INDIRF4
ADDRLP4 36
INDIRF4
MULF4
ADDF4
CVFI4 4
ASGNI4
line 3668
;3668:		if ( j > 255 ) {
ADDRLP4 0
INDIRI4
CNSTI4 255
LEI4 $1707
line 3669
;3669:			j = 255;
ADDRLP4 0
CNSTI4 255
ASGNI4
line 3670
;3670:		}
LABELV $1707
line 3671
;3671:		verts[i].modulate[0] = j;
CNSTI4 24
ADDRLP4 4
INDIRI4
MULI4
ADDRFP4 8
INDIRP4
ADDP4
CNSTI4 20
ADDP4
ADDRLP4 0
INDIRI4
CVIU4 4
CVUU1 4
ASGNU1
line 3673
;3672:
;3673:		j = ( ambientLight[1] + incoming * directedLight[1] );
ADDRLP4 0
ADDRLP4 12+4
INDIRF4
ADDRLP4 8
INDIRF4
ADDRLP4 36+4
INDIRF4
MULF4
ADDF4
CVFI4 4
ASGNI4
line 3674
;3674:		if ( j > 255 ) {
ADDRLP4 0
INDIRI4
CNSTI4 255
LEI4 $1711
line 3675
;3675:			j = 255;
ADDRLP4 0
CNSTI4 255
ASGNI4
line 3676
;3676:		}
LABELV $1711
line 3677
;3677:		verts[i].modulate[1] = j;
CNSTI4 24
ADDRLP4 4
INDIRI4
MULI4
ADDRFP4 8
INDIRP4
ADDP4
CNSTI4 21
ADDP4
ADDRLP4 0
INDIRI4
CVIU4 4
CVUU1 4
ASGNU1
line 3679
;3678:
;3679:		j = ( ambientLight[2] + incoming * directedLight[2] );
ADDRLP4 0
ADDRLP4 12+8
INDIRF4
ADDRLP4 8
INDIRF4
ADDRLP4 36+8
INDIRF4
MULF4
ADDF4
CVFI4 4
ASGNI4
line 3680
;3680:		if ( j > 255 ) {
ADDRLP4 0
INDIRI4
CNSTI4 255
LEI4 $1715
line 3681
;3681:			j = 255;
ADDRLP4 0
CNSTI4 255
ASGNI4
line 3682
;3682:		}
LABELV $1715
line 3683
;3683:		verts[i].modulate[2] = j;
CNSTI4 24
ADDRLP4 4
INDIRI4
MULI4
ADDRFP4 8
INDIRP4
ADDP4
CNSTI4 22
ADDP4
ADDRLP4 0
INDIRI4
CVIU4 4
CVUU1 4
ASGNU1
line 3685
;3684:
;3685:		verts[i].modulate[3] = 255;
CNSTI4 24
ADDRLP4 4
INDIRI4
MULI4
ADDRFP4 8
INDIRP4
ADDP4
CNSTI4 23
ADDP4
CNSTU1 255
ASGNU1
line 3686
;3686:	}
LABELV $1689
line 3658
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $1691
ADDRLP4 4
INDIRI4
ADDRFP4 4
INDIRI4
LTI4 $1688
line 3687
;3687:	return qtrue;
CNSTI4 1
RETI4
LABELV $1687
endproc CG_LightVerts 88 16
lit
align 4
LABELV $1718
byte 4 1065353216
byte 4 1065353216
byte 4 1065353216
export CG_DoSaber
code
proc CG_DoSaber 313 20
line 3691
;3688:}
;3689:
;3690:void CG_DoSaber( vec3_t origin, vec3_t dir, float length, saber_colors_t color, int rfx )
;3691:{
line 3692
;3692:	vec3_t		mid, rgb={1,1,1};
ADDRLP4 212
ADDRGP4 $1718
INDIRB
ASGNB 12
line 3693
;3693:	qhandle_t	blade = 0, glow = 0;
ADDRLP4 240
CNSTI4 0
ASGNI4
ADDRLP4 244
CNSTI4 0
ASGNI4
line 3697
;3694:	refEntity_t saber;
;3695:	float radiusmult;
;3696:
;3697:	if ( length < 0.5f )
ADDRFP4 8
INDIRF4
CNSTF4 1056964608
GEF4 $1719
line 3698
;3698:	{
line 3700
;3699:		// if the thing is so short, just forget even adding me.
;3700:		return;
ADDRGP4 $1717
JUMPV
LABELV $1719
line 3704
;3701:	}
;3702:
;3703:	// Find the midpoint of the saber for lighting purposes
;3704:	VectorMA( origin, length * 0.5f, dir, mid );
ADDRLP4 248
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 252
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 256
CNSTF4 1056964608
ADDRFP4 8
INDIRF4
MULF4
ASGNF4
ADDRLP4 224
ADDRLP4 248
INDIRP4
INDIRF4
ADDRLP4 252
INDIRP4
INDIRF4
ADDRLP4 256
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 260
CNSTI4 4
ASGNI4
ADDRLP4 224+4
ADDRLP4 248
INDIRP4
ADDRLP4 260
INDIRI4
ADDP4
INDIRF4
ADDRLP4 252
INDIRP4
ADDRLP4 260
INDIRI4
ADDP4
INDIRF4
ADDRLP4 256
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 264
CNSTI4 8
ASGNI4
ADDRLP4 224+8
ADDRFP4 0
INDIRP4
ADDRLP4 264
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
ADDRLP4 264
INDIRI4
ADDP4
INDIRF4
CNSTF4 1056964608
ADDRFP4 8
INDIRF4
MULF4
MULF4
ADDF4
ASGNF4
line 3706
;3705:
;3706:	switch( color )
ADDRLP4 268
ADDRFP4 12
INDIRI4
ASGNI4
ADDRLP4 268
INDIRI4
CNSTI4 0
LTI4 $1723
ADDRLP4 268
INDIRI4
CNSTI4 5
GTI4 $1723
ADDRLP4 268
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 $1774
ADDP4
INDIRP4
JUMPV
lit
align 4
LABELV $1774
address $1726
address $1733
address $1740
address $1747
address $1754
address $1761
code
line 3707
;3707:	{
LABELV $1726
line 3709
;3708:		case SABER_RED:
;3709:			glow = cgs.media.redSaberGlowShader;
ADDRLP4 244
ADDRGP4 cgs+71064+116
INDIRI4
ASGNI4
line 3710
;3710:			blade = cgs.media.redSaberCoreShader;
ADDRLP4 240
ADDRGP4 cgs+71064+120
INDIRI4
ASGNI4
line 3711
;3711:			VectorSet( rgb, 1.0f, 0.2f, 0.2f );
ADDRLP4 212
CNSTF4 1065353216
ASGNF4
ADDRLP4 212+4
CNSTF4 1045220557
ASGNF4
ADDRLP4 212+8
CNSTF4 1045220557
ASGNF4
line 3712
;3712:			break;
ADDRGP4 $1724
JUMPV
LABELV $1733
line 3714
;3713:		case SABER_ORANGE:
;3714:			glow = cgs.media.orangeSaberGlowShader;
ADDRLP4 244
ADDRGP4 cgs+71064+124
INDIRI4
ASGNI4
line 3715
;3715:			blade = cgs.media.orangeSaberCoreShader;
ADDRLP4 240
ADDRGP4 cgs+71064+128
INDIRI4
ASGNI4
line 3716
;3716:			VectorSet( rgb, 1.0f, 0.5f, 0.1f );
ADDRLP4 212
CNSTF4 1065353216
ASGNF4
ADDRLP4 212+4
CNSTF4 1056964608
ASGNF4
ADDRLP4 212+8
CNSTF4 1036831949
ASGNF4
line 3717
;3717:			break;
ADDRGP4 $1724
JUMPV
LABELV $1740
line 3719
;3718:		case SABER_YELLOW:
;3719:			glow = cgs.media.yellowSaberGlowShader;
ADDRLP4 244
ADDRGP4 cgs+71064+132
INDIRI4
ASGNI4
line 3720
;3720:			blade = cgs.media.yellowSaberCoreShader;
ADDRLP4 240
ADDRGP4 cgs+71064+136
INDIRI4
ASGNI4
line 3721
;3721:			VectorSet( rgb, 1.0f, 1.0f, 0.2f );
ADDRLP4 276
CNSTF4 1065353216
ASGNF4
ADDRLP4 212
ADDRLP4 276
INDIRF4
ASGNF4
ADDRLP4 212+4
ADDRLP4 276
INDIRF4
ASGNF4
ADDRLP4 212+8
CNSTF4 1045220557
ASGNF4
line 3722
;3722:			break;
ADDRGP4 $1724
JUMPV
LABELV $1747
line 3724
;3723:		case SABER_GREEN:
;3724:			glow = cgs.media.greenSaberGlowShader;
ADDRLP4 244
ADDRGP4 cgs+71064+140
INDIRI4
ASGNI4
line 3725
;3725:			blade = cgs.media.greenSaberCoreShader;
ADDRLP4 240
ADDRGP4 cgs+71064+144
INDIRI4
ASGNI4
line 3726
;3726:			VectorSet( rgb, 0.2f, 1.0f, 0.2f );
ADDRLP4 212
CNSTF4 1045220557
ASGNF4
ADDRLP4 212+4
CNSTF4 1065353216
ASGNF4
ADDRLP4 212+8
CNSTF4 1045220557
ASGNF4
line 3727
;3727:			break;
ADDRGP4 $1724
JUMPV
LABELV $1754
line 3729
;3728:		case SABER_BLUE:
;3729:			glow = cgs.media.blueSaberGlowShader;
ADDRLP4 244
ADDRGP4 cgs+71064+148
INDIRI4
ASGNI4
line 3730
;3730:			blade = cgs.media.blueSaberCoreShader;
ADDRLP4 240
ADDRGP4 cgs+71064+152
INDIRI4
ASGNI4
line 3731
;3731:			VectorSet( rgb, 0.2f, 0.4f, 1.0f );
ADDRLP4 212
CNSTF4 1045220557
ASGNF4
ADDRLP4 212+4
CNSTF4 1053609165
ASGNF4
ADDRLP4 212+8
CNSTF4 1065353216
ASGNF4
line 3732
;3732:			break;
ADDRGP4 $1724
JUMPV
LABELV $1761
line 3734
;3733:		case SABER_PURPLE:
;3734:			glow = cgs.media.purpleSaberGlowShader;
ADDRLP4 244
ADDRGP4 cgs+71064+156
INDIRI4
ASGNI4
line 3735
;3735:			blade = cgs.media.purpleSaberCoreShader;
ADDRLP4 240
ADDRGP4 cgs+71064+160
INDIRI4
ASGNI4
line 3736
;3736:			VectorSet( rgb, 0.9f, 0.2f, 1.0f );
ADDRLP4 212
CNSTF4 1063675494
ASGNF4
ADDRLP4 212+4
CNSTF4 1045220557
ASGNF4
ADDRLP4 212+8
CNSTF4 1065353216
ASGNF4
line 3737
;3737:			break;
ADDRGP4 $1724
JUMPV
LABELV $1723
line 3739
;3738:		default:
;3739:			glow = cgs.media.blueSaberGlowShader;
ADDRLP4 244
ADDRGP4 cgs+71064+148
INDIRI4
ASGNI4
line 3740
;3740:			blade = cgs.media.blueSaberCoreShader;
ADDRLP4 240
ADDRGP4 cgs+71064+152
INDIRI4
ASGNI4
line 3741
;3741:			VectorSet( rgb, 0.2f, 0.4f, 1.0f );
ADDRLP4 212
CNSTF4 1045220557
ASGNF4
ADDRLP4 212+4
CNSTF4 1053609165
ASGNF4
ADDRLP4 212+8
CNSTF4 1065353216
ASGNF4
line 3742
;3742:			break;
LABELV $1724
line 3746
;3743:	}
;3744:
;3745:	// always add a light because sabers cast a nice glow before they slice you in half!!  or something...
;3746:	trap_R_AddLightToScene( mid, (length*2.0f) + (random()*8.0f), rgb[0], rgb[1], rgb[2] );
ADDRLP4 276
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 224
ARGP4
CNSTF4 1073741824
ADDRFP4 8
INDIRF4
MULF4
CNSTF4 1090519040
ADDRLP4 276
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
MULF4
ADDF4
ARGF4
ADDRLP4 212
INDIRF4
ARGF4
ADDRLP4 212+4
INDIRF4
ARGF4
ADDRLP4 212+8
INDIRF4
ARGF4
ADDRGP4 trap_R_AddLightToScene
CALLV
pop
line 3748
;3747:
;3748:	memset( &saber, 0, sizeof( refEntity_t ));
ADDRLP4 0
ARGP4
CNSTI4 0
ARGI4
CNSTI4 212
ARGI4
ADDRGP4 memset
CALLP4
pop
line 3752
;3749:
;3750:	// Saber glow is it's own ref type because it uses a ton of sprites, otherwise it would eat up too many
;3751:	//	refEnts to do each glow blob individually
;3752:	saber.saberLength = length;
ADDRLP4 0+180
ADDRFP4 8
INDIRF4
ASGNF4
line 3756
;3753:
;3754:	// Jeff, I did this because I foolishly wished to have a bright halo as the saber is unleashed.  
;3755:	// It's not quite what I'd hoped tho.  If you have any ideas, go for it!  --Pat
;3756:	if (length < SABER_LENGTH_MAX)
ADDRFP4 8
INDIRF4
CNSTF4 1109393408
GEF4 $1778
line 3757
;3757:	{
line 3758
;3758:		radiusmult = 1.0 + (2.0 / length);		// Note this creates a curve, and length cannot be < 0.5.
ADDRLP4 236
CNSTF4 1073741824
ADDRFP4 8
INDIRF4
DIVF4
CNSTF4 1065353216
ADDF4
ASGNF4
line 3759
;3759:	}
ADDRGP4 $1779
JUMPV
LABELV $1778
line 3761
;3760:	else
;3761:	{
line 3762
;3762:		radiusmult = 1.0;
ADDRLP4 236
CNSTF4 1065353216
ASGNF4
line 3763
;3763:	}
LABELV $1779
line 3766
;3764:
;3765:
;3766:	saber.radius = (2.8 + crandom() * 0.2f)*radiusmult;
ADDRLP4 280
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 0+92
CNSTF4 1045220557
CNSTF4 1073741824
ADDRLP4 280
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
CNSTF4 1056964608
SUBF4
MULF4
MULF4
CNSTF4 1077097267
ADDF4
ADDRLP4 236
INDIRF4
MULF4
ASGNF4
line 3769
;3767:
;3768:
;3769:	VectorCopy( origin, saber.origin );
ADDRLP4 0+52
ADDRFP4 0
INDIRP4
INDIRB
ASGNB 12
line 3770
;3770:	VectorCopy( dir, saber.axis[0] );
ADDRLP4 0+12
ADDRFP4 4
INDIRP4
INDIRB
ASGNB 12
line 3771
;3771:	saber.reType = RT_SABER_GLOW;
ADDRLP4 0
CNSTI4 5
ASGNI4
line 3772
;3772:	saber.customShader = glow;
ADDRLP4 0+76
ADDRLP4 244
INDIRI4
ASGNI4
line 3773
;3773:	saber.shaderRGBA[0] = saber.shaderRGBA[1] = saber.shaderRGBA[2] = saber.shaderRGBA[3] = 0xff;
ADDRLP4 284
CNSTU1 255
ASGNU1
ADDRLP4 0+80+3
ADDRLP4 284
INDIRU1
ASGNU1
ADDRLP4 0+80+2
ADDRLP4 284
INDIRU1
ASGNU1
ADDRLP4 0+80+1
ADDRLP4 284
INDIRU1
ASGNU1
ADDRLP4 0+80
ADDRLP4 284
INDIRU1
ASGNU1
line 3774
;3774:	saber.renderfx = rfx;
ADDRLP4 0+4
ADDRFP4 16
INDIRI4
ASGNI4
line 3776
;3775:
;3776:	trap_R_AddRefEntityToScene( &saber );
ADDRLP4 0
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 3779
;3777:
;3778:	// Do the hot core
;3779:	VectorMA( origin, length, dir, saber.origin );
ADDRLP4 0+52
ADDRFP4 0
INDIRP4
INDIRF4
ADDRFP4 4
INDIRP4
INDIRF4
ADDRFP4 8
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 288
CNSTI4 4
ASGNI4
ADDRLP4 0+52+4
ADDRFP4 0
INDIRP4
ADDRLP4 288
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
ADDRLP4 288
INDIRI4
ADDP4
INDIRF4
ADDRFP4 8
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 292
CNSTI4 8
ASGNI4
ADDRLP4 0+52+8
ADDRFP4 0
INDIRP4
ADDRLP4 292
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
ADDRLP4 292
INDIRI4
ADDP4
INDIRF4
ADDRFP4 8
INDIRF4
MULF4
ADDF4
ASGNF4
line 3780
;3780:	VectorMA( origin, -1, dir, saber.oldorigin );
ADDRLP4 0+64
ADDRFP4 0
INDIRP4
INDIRF4
CNSTF4 3212836864
ADDRFP4 4
INDIRP4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 296
CNSTI4 4
ASGNI4
ADDRLP4 0+64+4
ADDRFP4 0
INDIRP4
ADDRLP4 296
INDIRI4
ADDP4
INDIRF4
CNSTF4 3212836864
ADDRFP4 4
INDIRP4
ADDRLP4 296
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 300
CNSTI4 8
ASGNI4
ADDRLP4 0+64+8
ADDRFP4 0
INDIRP4
ADDRLP4 300
INDIRI4
ADDP4
INDIRF4
CNSTF4 3212836864
ADDRFP4 4
INDIRP4
ADDRLP4 300
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 3784
;3781:
;3782:
;3783://	CG_TestLine(saber.origin, saber.oldorigin, 50, 0x000000ff, 3);
;3784:	saber.customShader = blade;
ADDRLP4 0+76
ADDRLP4 240
INDIRI4
ASGNI4
line 3785
;3785:	saber.reType = RT_LINE;
ADDRLP4 0
CNSTI4 8
ASGNI4
line 3786
;3786:	saber.radius = (1.0 + crandom() * 0.2f)*radiusmult;
ADDRLP4 304
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 0+92
CNSTF4 1045220557
CNSTF4 1073741824
ADDRLP4 304
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
CNSTF4 1056964608
SUBF4
MULF4
MULF4
CNSTF4 1065353216
ADDF4
ADDRLP4 236
INDIRF4
MULF4
ASGNF4
line 3788
;3787:
;3788:	saber.shaderTexCoord[0] = saber.shaderTexCoord[1] = 1.0f;
ADDRLP4 308
CNSTF4 1065353216
ASGNF4
ADDRLP4 0+84+4
ADDRLP4 308
INDIRF4
ASGNF4
ADDRLP4 0+84
ADDRLP4 308
INDIRF4
ASGNF4
line 3789
;3789:	saber.shaderRGBA[0] = saber.shaderRGBA[1] = saber.shaderRGBA[2] = saber.shaderRGBA[3] = 0xff;
ADDRLP4 312
CNSTU1 255
ASGNU1
ADDRLP4 0+80+3
ADDRLP4 312
INDIRU1
ASGNU1
ADDRLP4 0+80+2
ADDRLP4 312
INDIRU1
ASGNU1
ADDRLP4 0+80+1
ADDRLP4 312
INDIRU1
ASGNU1
ADDRLP4 0+80
ADDRLP4 312
INDIRU1
ASGNU1
line 3791
;3790:
;3791:	trap_R_AddRefEntityToScene( &saber );
ADDRLP4 0
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 3792
;3792:}
LABELV $1717
endproc CG_DoSaber 313 20
export CG_GetTagWorldPosition
proc CG_GetTagWorldPosition 100 24
line 3800
;3793:
;3794://--------------------------------------------------------------
;3795:// CG_GetTagWorldPosition
;3796://
;3797:// Can pass in NULL for the axis
;3798://--------------------------------------------------------------
;3799:void CG_GetTagWorldPosition( refEntity_t *model, char *tag, vec3_t pos, vec3_t axis[3] )
;3800:{
line 3802
;3801:	orientation_t	orientation;
;3802:	int i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 3805
;3803:
;3804:	// Get the requested tag
;3805:	trap_R_LerpTag( &orientation, model->hModel, model->oldframe, model->frame,
ADDRLP4 4
ARGP4
ADDRLP4 52
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 52
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ARGI4
ADDRLP4 52
INDIRP4
CNSTI4 124
ADDP4
INDIRI4
ARGI4
ADDRLP4 52
INDIRP4
CNSTI4 104
ADDP4
INDIRI4
ARGI4
CNSTF4 1065353216
ADDRLP4 52
INDIRP4
CNSTI4 128
ADDP4
INDIRF4
SUBF4
ARGF4
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 trap_R_LerpTag
CALLI4
pop
line 3808
;3806:		1.0f - model->backlerp, tag );
;3807:
;3808:	VectorCopy( model->origin, pos );
ADDRFP4 8
INDIRP4
ADDRFP4 0
INDIRP4
CNSTI4 52
ADDP4
INDIRB
ASGNB 12
line 3809
;3809:	for ( i = 0 ; i < 3 ; i++ ) 
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $1815
line 3810
;3810:	{
line 3811
;3811:		VectorMA( pos, orientation.origin[i], model->axis[i], pos );
ADDRLP4 56
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 60
CNSTI4 12
ASGNI4
ADDRLP4 56
INDIRP4
ADDRLP4 56
INDIRP4
INDIRF4
ADDRLP4 60
INDIRI4
ADDRLP4 0
INDIRI4
MULI4
ADDRFP4 0
INDIRP4
ADDRLP4 60
INDIRI4
ADDP4
ADDP4
INDIRF4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 68
CNSTI4 4
ASGNI4
ADDRLP4 72
ADDRFP4 8
INDIRP4
ADDRLP4 68
INDIRI4
ADDP4
ASGNP4
ADDRLP4 76
CNSTI4 12
ASGNI4
ADDRLP4 72
INDIRP4
ADDRLP4 72
INDIRP4
INDIRF4
ADDRLP4 76
INDIRI4
ADDRLP4 0
INDIRI4
MULI4
ADDRFP4 0
INDIRP4
ADDRLP4 76
INDIRI4
ADDP4
ADDP4
ADDRLP4 68
INDIRI4
ADDP4
INDIRF4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 84
CNSTI4 8
ASGNI4
ADDRLP4 88
ADDRFP4 8
INDIRP4
ADDRLP4 84
INDIRI4
ADDP4
ASGNP4
ADDRLP4 92
CNSTI4 12
ASGNI4
ADDRLP4 88
INDIRP4
ADDRLP4 88
INDIRP4
INDIRF4
ADDRLP4 92
INDIRI4
ADDRLP4 0
INDIRI4
MULI4
ADDRFP4 0
INDIRP4
ADDRLP4 92
INDIRI4
ADDP4
ADDP4
ADDRLP4 84
INDIRI4
ADDP4
INDIRF4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 3812
;3812:	}
LABELV $1816
line 3809
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 3
LTI4 $1815
line 3814
;3813:
;3814:	if ( axis )
ADDRFP4 12
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $1819
line 3815
;3815:	{
line 3816
;3816:		MatrixMultiply( orientation.axis, model->axis, axis );
ADDRLP4 4+12
ARGP4
ADDRFP4 0
INDIRP4
CNSTI4 12
ADDP4
ARGP4
ADDRFP4 12
INDIRP4
ARGP4
ADDRGP4 MatrixMultiply
CALLV
pop
line 3817
;3817:	}
LABELV $1819
line 3818
;3818:}
LABELV $1814
endproc CG_GetTagWorldPosition 100 24
export CG_CreateSaberMarks
proc CG_CreateSaberMarks 6252 28
line 3825
;3819:
;3820:#define	MAX_MARK_FRAGMENTS	128
;3821:#define	MAX_MARK_POINTS		384
;3822:extern markPoly_t *CG_AllocMark();
;3823:
;3824:void CG_CreateSaberMarks( vec3_t start, vec3_t end, vec3_t normal )
;3825:{
line 3835
;3826://	byte			colors[4];
;3827:	int				i, j;
;3828:	int				numFragments;
;3829:	vec3_t			axis[3], originalPoints[4], mid;
;3830:	vec3_t			markPoints[MAX_MARK_POINTS], projection;
;3831:	polyVert_t		*v, verts[MAX_VERTS_ON_POLY];
;3832:	markPoly_t		*mark;
;3833:	markFragment_t	markFragments[MAX_MARK_FRAGMENTS], *mf;
;3834:
;3835:	float	radius = 0.65f;
ADDRLP4 4916
CNSTF4 1059481190
ASGNF4
line 3837
;3836:
;3837:	if ( !cg_addMarks.integer ) 
ADDRGP4 cg_addMarks+12
INDIRI4
CNSTI4 0
NEI4 $1823
line 3838
;3838:	{
line 3839
;3839:		return;
ADDRGP4 $1822
JUMPV
LABELV $1823
line 3842
;3840:	}
;3841:
;3842:	VectorSubtract( end, start, axis[1] );
ADDRLP4 256+12
ADDRFP4 4
INDIRP4
INDIRF4
ADDRFP4 0
INDIRP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 6008
CNSTI4 4
ASGNI4
ADDRLP4 256+12+4
ADDRFP4 4
INDIRP4
ADDRLP4 6008
INDIRI4
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
ADDRLP4 6008
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 6012
CNSTI4 8
ASGNI4
ADDRLP4 256+12+8
ADDRFP4 4
INDIRP4
ADDRLP4 6012
INDIRI4
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
ADDRLP4 6012
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 3843
;3843:	VectorNormalize( axis[1] );
ADDRLP4 256+12
ARGP4
ADDRGP4 VectorNormalize
CALLF4
pop
line 3846
;3844:
;3845:	// create the texture axis
;3846:	VectorCopy( normal, axis[0] );
ADDRLP4 256
ADDRFP4 8
INDIRP4
INDIRB
ASGNB 12
line 3847
;3847:	CrossProduct( axis[1], axis[0], axis[2] );
ADDRLP4 256+12
ARGP4
ADDRLP4 256
ARGP4
ADDRLP4 256+24
ARGP4
ADDRGP4 CrossProduct
CALLV
pop
line 3850
;3848:
;3849:	// create the full polygon that we'll project
;3850:	for ( i = 0 ; i < 3 ; i++ ) 
ADDRLP4 300
CNSTI4 0
ASGNI4
LABELV $1834
line 3851
;3851:	{	// stretch a bit more in the direction that we are traveling in...  debateable as to whether this makes things better or worse
line 3852
;3852:		originalPoints[0][i] = start[i] - radius * axis[1][i] - radius * axis[2][i];
ADDRLP4 6016
ADDRLP4 300
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 6016
INDIRI4
ADDRLP4 4920
ADDP4
ADDRLP4 6016
INDIRI4
ADDRFP4 0
INDIRP4
ADDP4
INDIRF4
ADDRLP4 4916
INDIRF4
ADDRLP4 6016
INDIRI4
ADDRLP4 256+12
ADDP4
INDIRF4
MULF4
SUBF4
ADDRLP4 4916
INDIRF4
ADDRLP4 6016
INDIRI4
ADDRLP4 256+24
ADDP4
INDIRF4
MULF4
SUBF4
ASGNF4
line 3853
;3853:		originalPoints[1][i] = end[i] + radius * axis[1][i] - radius * axis[2][i];
ADDRLP4 6024
ADDRLP4 300
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 6024
INDIRI4
ADDRLP4 4920+12
ADDP4
ADDRLP4 6024
INDIRI4
ADDRFP4 4
INDIRP4
ADDP4
INDIRF4
ADDRLP4 4916
INDIRF4
ADDRLP4 6024
INDIRI4
ADDRLP4 256+12
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 4916
INDIRF4
ADDRLP4 6024
INDIRI4
ADDRLP4 256+24
ADDP4
INDIRF4
MULF4
SUBF4
ASGNF4
line 3854
;3854:		originalPoints[2][i] = end[i] + radius * axis[1][i] + radius * axis[2][i];
ADDRLP4 6032
ADDRLP4 300
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 6032
INDIRI4
ADDRLP4 4920+24
ADDP4
ADDRLP4 6032
INDIRI4
ADDRFP4 4
INDIRP4
ADDP4
INDIRF4
ADDRLP4 4916
INDIRF4
ADDRLP4 6032
INDIRI4
ADDRLP4 256+12
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 4916
INDIRF4
ADDRLP4 6032
INDIRI4
ADDRLP4 256+24
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 3855
;3855:		originalPoints[3][i] = start[i] - radius * axis[1][i] + radius * axis[2][i];
ADDRLP4 6040
ADDRLP4 300
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 6040
INDIRI4
ADDRLP4 4920+36
ADDP4
ADDRLP4 6040
INDIRI4
ADDRFP4 0
INDIRP4
ADDP4
INDIRF4
ADDRLP4 4916
INDIRF4
ADDRLP4 6040
INDIRI4
ADDRLP4 256+12
ADDP4
INDIRF4
MULF4
SUBF4
ADDRLP4 4916
INDIRF4
ADDRLP4 6040
INDIRI4
ADDRLP4 256+24
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 3856
;3856:	}
LABELV $1835
line 3850
ADDRLP4 300
ADDRLP4 300
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 300
INDIRI4
CNSTI4 3
LTI4 $1834
line 3858
;3857:
;3858:	VectorScale( normal, -1, projection );
ADDRLP4 6016
CNSTF4 3212836864
ASGNF4
ADDRLP4 6020
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 4972
ADDRLP4 6016
INDIRF4
ADDRLP4 6020
INDIRP4
INDIRF4
MULF4
ASGNF4
ADDRLP4 4972+4
ADDRLP4 6016
INDIRF4
ADDRLP4 6020
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ASGNF4
ADDRLP4 4972+8
CNSTF4 3212836864
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ASGNF4
line 3861
;3859:
;3860:	// get the fragments
;3861:	numFragments = trap_CM_MarkFragments( 4, (const float (*)[3])originalPoints,
CNSTI4 4
ARGI4
ADDRLP4 4920
ARGP4
ADDRLP4 4972
ARGP4
CNSTI4 384
ARGI4
ADDRLP4 304
ARGP4
CNSTI4 128
ARGI4
ADDRLP4 4984
ARGP4
ADDRLP4 6024
ADDRGP4 trap_CM_MarkFragments
CALLI4
ASGNI4
ADDRLP4 4968
ADDRLP4 6024
INDIRI4
ASGNI4
line 3864
;3862:					projection, MAX_MARK_POINTS, markPoints[0], MAX_MARK_FRAGMENTS, markFragments );
;3863:
;3864:	for ( i = 0, mf = markFragments ; i < numFragments ; i++, mf++ ) 
ADDRLP4 300
CNSTI4 0
ASGNI4
ADDRLP4 296
ADDRLP4 4984
ASGNP4
ADDRGP4 $1854
JUMPV
LABELV $1851
line 3865
;3865:	{
line 3867
;3866:		// we have an upper limit on the complexity of polygons that we store persistantly
;3867:		if ( mf->numPoints > MAX_VERTS_ON_POLY ) 
ADDRLP4 296
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
CNSTI4 10
LEI4 $1855
line 3868
;3868:		{
line 3869
;3869:			mf->numPoints = MAX_VERTS_ON_POLY;
ADDRLP4 296
INDIRP4
CNSTI4 4
ADDP4
CNSTI4 10
ASGNI4
line 3870
;3870:		}
LABELV $1855
line 3872
;3871:
;3872:		for ( j = 0, v = verts ; j < mf->numPoints ; j++, v++ ) 
ADDRLP4 292
CNSTI4 0
ASGNI4
ADDRLP4 252
ADDRLP4 12
ASGNP4
ADDRGP4 $1860
JUMPV
LABELV $1857
line 3873
;3873:		{
line 3877
;3874:			vec3_t delta;
;3875:
;3876:			// Set up our texture coords, this may need some work 
;3877:			VectorCopy( markPoints[mf->firstPoint + j], v->xyz );
ADDRLP4 252
INDIRP4
CNSTI4 12
ADDRLP4 296
INDIRP4
INDIRI4
ADDRLP4 292
INDIRI4
ADDI4
MULI4
ADDRLP4 304
ADDP4
INDIRB
ASGNB 12
line 3878
;3878:			VectorAdd( end, start, mid );
ADDRLP4 6040
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 6044
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 0
ADDRLP4 6040
INDIRP4
INDIRF4
ADDRLP4 6044
INDIRP4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 6048
CNSTI4 4
ASGNI4
ADDRLP4 0+4
ADDRLP4 6040
INDIRP4
ADDRLP4 6048
INDIRI4
ADDP4
INDIRF4
ADDRLP4 6044
INDIRP4
ADDRLP4 6048
INDIRI4
ADDP4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 6052
CNSTI4 8
ASGNI4
ADDRLP4 0+8
ADDRFP4 4
INDIRP4
ADDRLP4 6052
INDIRI4
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
ADDRLP4 6052
INDIRI4
ADDP4
INDIRF4
ADDF4
ASGNF4
line 3879
;3879:			VectorScale( mid, 0.5f, mid );
ADDRLP4 6056
CNSTF4 1056964608
ASGNF4
ADDRLP4 0
ADDRLP4 6056
INDIRF4
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+4
ADDRLP4 6056
INDIRF4
ADDRLP4 0+4
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+8
CNSTF4 1056964608
ADDRLP4 0+8
INDIRF4
MULF4
ASGNF4
line 3880
;3880:			VectorSubtract( v->xyz, mid, delta );
ADDRLP4 6028
ADDRLP4 252
INDIRP4
INDIRF4
ADDRLP4 0
INDIRF4
SUBF4
ASGNF4
ADDRLP4 6028+4
ADDRLP4 252
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 0+4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 6028+8
ADDRLP4 252
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 0+8
INDIRF4
SUBF4
ASGNF4
line 3882
;3881:
;3882:			v->st[0] = 0.5 + DotProduct( delta, axis[1] ) * (0.05f + random() * 0.03f); 
ADDRLP4 6064
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 252
INDIRP4
CNSTI4 12
ADDP4
ADDRLP4 6028
INDIRF4
ADDRLP4 256+12
INDIRF4
MULF4
ADDRLP4 6028+4
INDIRF4
ADDRLP4 256+12+4
INDIRF4
MULF4
ADDF4
ADDRLP4 6028+8
INDIRF4
ADDRLP4 256+12+8
INDIRF4
MULF4
ADDF4
CNSTF4 1022739087
ADDRLP4 6064
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
MULF4
CNSTF4 1028443341
ADDF4
MULF4
CNSTF4 1056964608
ADDF4
ASGNF4
line 3883
;3883:			v->st[1] = 0.5 + DotProduct( delta, axis[2] ) * (0.15f + random() * 0.05f);	
ADDRLP4 6068
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 252
INDIRP4
CNSTI4 16
ADDP4
ADDRLP4 6028
INDIRF4
ADDRLP4 256+24
INDIRF4
MULF4
ADDRLP4 6028+4
INDIRF4
ADDRLP4 256+24+4
INDIRF4
MULF4
ADDF4
ADDRLP4 6028+8
INDIRF4
ADDRLP4 256+24+8
INDIRF4
MULF4
ADDF4
CNSTF4 1028443341
ADDRLP4 6068
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
MULF4
CNSTF4 1041865114
ADDF4
MULF4
CNSTF4 1056964608
ADDF4
ASGNF4
line 3884
;3884:		}
LABELV $1858
line 3872
ADDRLP4 292
ADDRLP4 292
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 252
ADDRLP4 252
INDIRP4
CNSTI4 24
ADDP4
ASGNP4
LABELV $1860
ADDRLP4 292
INDIRI4
ADDRLP4 296
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
LTI4 $1857
line 3886
;3885:
;3886:		if (cg_saberDynamicMarks.integer)
ADDRGP4 cg_saberDynamicMarks+12
INDIRI4
CNSTI4 0
EQI4 $1885
line 3887
;3887:		{
line 3888
;3888:			int i = 0;
ADDRLP4 6032
CNSTI4 0
ASGNI4
line 3889
;3889:			int i_2 = 0;
ADDRLP4 6028
CNSTI4 0
ASGNI4
line 3893
;3890:			addpolyArgStruct_t apArgs;
;3891:			vec3_t x;
;3892:
;3893:			memset (&apArgs, 0, sizeof(apArgs));
ADDRLP4 6036
ARGP4
CNSTI4 0
ARGI4
CNSTI4 180
ARGI4
ADDRGP4 memset
CALLP4
pop
ADDRGP4 $1889
JUMPV
line 3896
;3894:
;3895:			while (i < 4)
;3896:			{
LABELV $1891
line 3898
;3897:				while (i_2 < 3)
;3898:				{
line 3899
;3899:					apArgs.p[i][i_2] = verts[i].xyz[i_2];
ADDRLP4 6228
ADDRLP4 6028
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 6228
INDIRI4
CNSTI4 12
ADDRLP4 6032
INDIRI4
MULI4
ADDRLP4 6036
ADDP4
ADDP4
ADDRLP4 6228
INDIRI4
CNSTI4 24
ADDRLP4 6032
INDIRI4
MULI4
ADDRLP4 12
ADDP4
ADDP4
INDIRF4
ASGNF4
line 3901
;3900:
;3901:					i_2++;
ADDRLP4 6028
ADDRLP4 6028
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 3902
;3902:				}
LABELV $1892
line 3897
ADDRLP4 6028
INDIRI4
CNSTI4 3
LTI4 $1891
line 3904
;3903:
;3904:				i_2 = 0;
ADDRLP4 6028
CNSTI4 0
ASGNI4
line 3905
;3905:				i++;
ADDRLP4 6032
ADDRLP4 6032
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 3906
;3906:			}
LABELV $1889
line 3895
ADDRLP4 6032
INDIRI4
CNSTI4 4
LTI4 $1892
line 3908
;3907:
;3908:			i = 0;
ADDRLP4 6032
CNSTI4 0
ASGNI4
line 3909
;3909:			i_2 = 0;
ADDRLP4 6028
CNSTI4 0
ASGNI4
ADDRGP4 $1895
JUMPV
line 3912
;3910:
;3911:			while (i < 4)
;3912:			{
LABELV $1897
line 3914
;3913:				while (i_2 < 2)
;3914:				{
line 3915
;3915:					apArgs.ev[i][i_2] = verts[i].st[i_2];
ADDRLP4 6228
ADDRLP4 6028
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 6228
INDIRI4
ADDRLP4 6032
INDIRI4
CNSTI4 3
LSHI4
ADDRLP4 6036+48
ADDP4
ADDP4
ADDRLP4 6228
INDIRI4
CNSTI4 24
ADDRLP4 6032
INDIRI4
MULI4
ADDRLP4 12+12
ADDP4
ADDP4
INDIRF4
ASGNF4
line 3917
;3916:
;3917:					i_2++;
ADDRLP4 6028
ADDRLP4 6028
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 3918
;3918:				}
LABELV $1898
line 3913
ADDRLP4 6028
INDIRI4
CNSTI4 2
LTI4 $1897
line 3920
;3919:
;3920:				i_2 = 0;
ADDRLP4 6028
CNSTI4 0
ASGNI4
line 3921
;3921:				i++;
ADDRLP4 6032
ADDRLP4 6032
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 3922
;3922:			}
LABELV $1895
line 3911
ADDRLP4 6032
INDIRI4
CNSTI4 4
LTI4 $1898
line 3927
;3923:
;3924:			//When using addpoly, having a situation like this tends to cause bad results.
;3925:			//(I assume it doesn't like trying to draw a polygon over two planes and extends
;3926:			//the vertex out to some odd value)
;3927:			VectorSubtract(apArgs.p[0], apArgs.p[3], x);
ADDRLP4 6216
ADDRLP4 6036
INDIRF4
ADDRLP4 6036+36
INDIRF4
SUBF4
ASGNF4
ADDRLP4 6216+4
ADDRLP4 6036+4
INDIRF4
ADDRLP4 6036+36+4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 6216+8
ADDRLP4 6036+8
INDIRF4
ADDRLP4 6036+36+8
INDIRF4
SUBF4
ASGNF4
line 3928
;3928:			if (VectorLength(x) > 3.0f)
ADDRLP4 6216
ARGP4
ADDRLP4 6228
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 6228
INDIRF4
CNSTF4 1077936128
LEF4 $1911
line 3929
;3929:			{
line 3930
;3930:				return;
ADDRGP4 $1822
JUMPV
LABELV $1911
line 3933
;3931:			}
;3932:
;3933:			apArgs.numVerts = mf->numPoints;
ADDRLP4 6036+80
ADDRLP4 296
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ASGNI4
line 3934
;3934:			VectorCopy(vec3_origin, apArgs.vel);
ADDRLP4 6036+84
ADDRGP4 vec3_origin
INDIRB
ASGNB 12
line 3935
;3935:			VectorCopy(vec3_origin, apArgs.accel);
ADDRLP4 6036+96
ADDRGP4 vec3_origin
INDIRB
ASGNB 12
line 3937
;3936:
;3937:			apArgs.alpha1 = 1.0f;
ADDRLP4 6036+108
CNSTF4 1065353216
ASGNF4
line 3938
;3938:			apArgs.alpha2 = 0.0f;
ADDRLP4 6036+112
CNSTF4 0
ASGNF4
line 3939
;3939:			apArgs.alphaParm = 255.0f;
ADDRLP4 6036+116
CNSTF4 1132396544
ASGNF4
line 3941
;3940:
;3941:			VectorSet(apArgs.rgb1, 0.0f, 0.0f, 0.0f);
ADDRLP4 6036+120
CNSTF4 0
ASGNF4
ADDRLP4 6036+120+4
CNSTF4 0
ASGNF4
ADDRLP4 6036+120+8
CNSTF4 0
ASGNF4
line 3942
;3942:			VectorSet(apArgs.rgb2, 0.0f, 0.0f, 0.0f);
ADDRLP4 6036+132
CNSTF4 0
ASGNF4
ADDRLP4 6036+132+4
CNSTF4 0
ASGNF4
ADDRLP4 6036+132+8
CNSTF4 0
ASGNF4
line 3944
;3943:
;3944:			apArgs.rgbParm = 0.0f;
ADDRLP4 6036+144
CNSTF4 0
ASGNF4
line 3946
;3945:
;3946:			apArgs.bounce = 0;
ADDRLP4 6036+160
CNSTF4 0
ASGNF4
line 3947
;3947:			apArgs.motionDelay = 0;
ADDRLP4 6036+164
CNSTI4 0
ASGNI4
line 3948
;3948:			apArgs.killTime = cg_saberDynamicMarkTime.integer;
ADDRLP4 6036+168
ADDRGP4 cg_saberDynamicMarkTime+12
INDIRI4
ASGNI4
line 3949
;3949:			apArgs.shader = cgs.media.rivetMarkShader;
ADDRLP4 6036+172
ADDRGP4 cgs+71064+172
INDIRI4
ASGNI4
line 3950
;3950:			apArgs.flags = 0x08000000|0x00000004;
ADDRLP4 6036+176
CNSTI4 134217732
ASGNI4
line 3952
;3951:
;3952:			trap_FX_AddPoly(&apArgs);
ADDRLP4 6036
ARGP4
ADDRGP4 trap_FX_AddPoly
CALLV
pop
line 3954
;3953:
;3954:			apArgs.shader = trap_R_RegisterShader("gfx/effects/saberDamageGlow");
ADDRGP4 $1939
ARGP4
ADDRLP4 6232
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRLP4 6036+172
ADDRLP4 6232
INDIRI4
ASGNI4
line 3955
;3955:			apArgs.rgb1[0] = 215 + random() * 40.0f;
ADDRLP4 6236
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 6036+120
CNSTF4 1109393408
ADDRLP4 6236
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
MULF4
CNSTF4 1129775104
ADDF4
ASGNF4
line 3956
;3956:			apArgs.rgb1[1] = 96 + random() * 32.0f;
ADDRLP4 6240
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 6036+120+4
CNSTF4 1107296256
ADDRLP4 6240
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
MULF4
CNSTF4 1119879168
ADDF4
ASGNF4
line 3957
;3957:			apArgs.rgb1[2] = apArgs.alphaParm = random()*15.0f;
ADDRLP4 6244
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 6248
CNSTF4 1097859072
ADDRLP4 6244
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
MULF4
ASGNF4
ADDRLP4 6036+116
ADDRLP4 6248
INDIRF4
ASGNF4
ADDRLP4 6036+120+8
ADDRLP4 6248
INDIRF4
ASGNF4
line 3959
;3958:
;3959:			apArgs.rgb1[0] /= 255;
ADDRLP4 6036+120
ADDRLP4 6036+120
INDIRF4
CNSTF4 1132396544
DIVF4
ASGNF4
line 3960
;3960:			apArgs.rgb1[1] /= 255;
ADDRLP4 6036+120+4
ADDRLP4 6036+120+4
INDIRF4
CNSTF4 1132396544
DIVF4
ASGNF4
line 3961
;3961:			apArgs.rgb1[2] /= 255;
ADDRLP4 6036+120+8
ADDRLP4 6036+120+8
INDIRF4
CNSTF4 1132396544
DIVF4
ASGNF4
line 3962
;3962:			VectorCopy(apArgs.rgb1, apArgs.rgb2);
ADDRLP4 6036+132
ADDRLP4 6036+120
INDIRB
ASGNB 12
line 3964
;3963:
;3964:			apArgs.killTime = 100;
ADDRLP4 6036+168
CNSTI4 100
ASGNI4
line 3966
;3965:
;3966:			trap_FX_AddPoly(&apArgs);
ADDRLP4 6036
ARGP4
ADDRGP4 trap_FX_AddPoly
CALLV
pop
line 3967
;3967:		}
ADDRGP4 $1886
JUMPV
LABELV $1885
line 3969
;3968:		else
;3969:		{
line 3971
;3970:			// save it persistantly, do burn first
;3971:			mark = CG_AllocMark();
ADDRLP4 6028
ADDRGP4 CG_AllocMark
CALLP4
ASGNP4
ADDRLP4 4912
ADDRLP4 6028
INDIRP4
ASGNP4
line 3972
;3972:			mark->time = cg.time;
ADDRLP4 4912
INDIRP4
CNSTI4 8
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 3973
;3973:			mark->alphaFade = qtrue;
ADDRLP4 4912
INDIRP4
CNSTI4 16
ADDP4
CNSTI4 1
ASGNI4
line 3974
;3974:			mark->markShader = cgs.media.rivetMarkShader;
ADDRLP4 4912
INDIRP4
CNSTI4 12
ADDP4
ADDRGP4 cgs+71064+172
INDIRI4
ASGNI4
line 3975
;3975:			mark->poly.numVerts = mf->numPoints;
ADDRLP4 4912
INDIRP4
CNSTI4 40
ADDP4
ADDRLP4 296
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ASGNI4
line 3976
;3976:			mark->color[0] = mark->color[1] = mark->color[2] = mark->color[3] = 255;
ADDRLP4 6036
CNSTF4 1132396544
ASGNF4
ADDRLP4 4912
INDIRP4
CNSTI4 32
ADDP4
ADDRLP4 6036
INDIRF4
ASGNF4
ADDRLP4 4912
INDIRP4
CNSTI4 28
ADDP4
ADDRLP4 6036
INDIRF4
ASGNF4
ADDRLP4 4912
INDIRP4
CNSTI4 24
ADDP4
ADDRLP4 6036
INDIRF4
ASGNF4
ADDRLP4 4912
INDIRP4
CNSTI4 20
ADDP4
ADDRLP4 6036
INDIRF4
ASGNF4
line 3977
;3977:			memcpy( mark->verts, verts, mf->numPoints * sizeof( verts[0] ) );
ADDRLP4 4912
INDIRP4
CNSTI4 48
ADDP4
ARGP4
ADDRLP4 12
ARGP4
CNSTU4 24
ADDRLP4 296
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
CVIU4 4
MULU4
CVUI4 4
ARGI4
ADDRGP4 memcpy
CALLP4
pop
line 3981
;3978:
;3979:			// And now do a glow pass
;3980:			// by moving the start time back, we can hack it to fade out way before the burn does
;3981:			mark = CG_AllocMark();
ADDRLP4 6040
ADDRGP4 CG_AllocMark
CALLP4
ASGNP4
ADDRLP4 4912
ADDRLP4 6040
INDIRP4
ASGNP4
line 3982
;3982:			mark->time = cg.time - 8500;
ADDRLP4 4912
INDIRP4
CNSTI4 8
ADDP4
ADDRGP4 cg+64
INDIRI4
CNSTI4 8500
SUBI4
ASGNI4
line 3983
;3983:			mark->alphaFade = qfalse;
ADDRLP4 4912
INDIRP4
CNSTI4 16
ADDP4
CNSTI4 0
ASGNI4
line 3984
;3984:			mark->markShader = trap_R_RegisterShader("gfx/effects/saberDamageGlow");
ADDRGP4 $1939
ARGP4
ADDRLP4 6044
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRLP4 4912
INDIRP4
CNSTI4 12
ADDP4
ADDRLP4 6044
INDIRI4
ASGNI4
line 3985
;3985:			mark->poly.numVerts = mf->numPoints;
ADDRLP4 4912
INDIRP4
CNSTI4 40
ADDP4
ADDRLP4 296
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ASGNI4
line 3986
;3986:			mark->color[0] = 215 + random() * 40.0f;
ADDRLP4 6048
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 4912
INDIRP4
CNSTI4 20
ADDP4
CNSTF4 1109393408
ADDRLP4 6048
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
MULF4
CNSTF4 1129775104
ADDF4
ASGNF4
line 3987
;3987:			mark->color[1] = 96 + random() * 32.0f;
ADDRLP4 6052
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 4912
INDIRP4
CNSTI4 24
ADDP4
CNSTF4 1107296256
ADDRLP4 6052
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
MULF4
CNSTF4 1119879168
ADDF4
ASGNF4
line 3988
;3988:			mark->color[2] = mark->color[3] = random()*15.0f;
ADDRLP4 6056
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 6064
CNSTF4 1097859072
ADDRLP4 6056
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
MULF4
ASGNF4
ADDRLP4 4912
INDIRP4
CNSTI4 32
ADDP4
ADDRLP4 6064
INDIRF4
ASGNF4
ADDRLP4 4912
INDIRP4
CNSTI4 28
ADDP4
ADDRLP4 6064
INDIRF4
ASGNF4
line 3989
;3989:			memcpy( mark->verts, verts, mf->numPoints * sizeof( verts[0] ) );
ADDRLP4 4912
INDIRP4
CNSTI4 48
ADDP4
ARGP4
ADDRLP4 12
ARGP4
CNSTU4 24
ADDRLP4 296
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
CVIU4 4
MULU4
CVUI4 4
ARGI4
ADDRGP4 memcpy
CALLP4
pop
line 3990
;3990:		}
LABELV $1886
line 3991
;3991:	}
LABELV $1852
line 3864
ADDRLP4 300
ADDRLP4 300
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 296
ADDRLP4 296
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
LABELV $1854
ADDRLP4 300
INDIRI4
ADDRLP4 4968
INDIRI4
LTI4 $1851
line 3992
;3992:}
LABELV $1822
endproc CG_CreateSaberMarks 6252 28
lit
align 4
LABELV $1961
byte 4 1065353216
byte 4 1065353216
byte 4 1065353216
export CG_G2TraceCollide
code
proc CG_G2TraceCollide 1076 48
line 3996
;3993:
;3994:#ifdef G2_COLLISION_ENABLED
;3995:qboolean CG_G2TraceCollide(trace_t *tr, vec3_t lastValidStart, vec3_t lastValidEnd)
;3996:{
line 3997
;3997:	if (tr->entityNum < MAX_CLIENTS)
ADDRFP4 0
INDIRP4
CNSTI4 52
ADDP4
INDIRI4
CNSTI4 32
GEI4 $1959
line 3998
;3998:	{ //Hit a client with the normal trace, try the collision trace.
line 4001
;3999:		G2Trace_t		G2Trace;
;4000:		centity_t		*g2Hit;
;4001:		vec3_t			vIdentity = {1.0f, 1.0f, 1.0f};
ADDRLP4 1032
ADDRGP4 $1961
INDIRB
ASGNB 12
line 4003
;4002:		vec3_t			angles;
;4003:		int				tN = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 4004
;4004:		float			fRadius = 0;
ADDRLP4 1044
CNSTF4 0
ASGNF4
line 4006
;4005:
;4006:		memset (&G2Trace, 0, sizeof(G2Trace));
ADDRLP4 4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 1024
ARGI4
ADDRGP4 memset
CALLP4
pop
ADDRGP4 $1963
JUMPV
LABELV $1962
line 4009
;4007:
;4008:		while (tN < MAX_G2_COLLISIONS)
;4009:		{
line 4010
;4010:			G2Trace[tN].mEntityNum = -1;
ADDRLP4 0
INDIRI4
CNSTI4 6
LSHI4
ADDRLP4 4+4
ADDP4
CNSTI4 -1
ASGNI4
line 4011
;4011:			tN++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 4012
;4012:		}
LABELV $1963
line 4008
ADDRLP4 0
INDIRI4
CNSTI4 16
LTI4 $1962
line 4013
;4013:		g2Hit = &cg_entities[tr->entityNum];
ADDRLP4 1028
CNSTI4 1920
ADDRFP4 0
INDIRP4
CNSTI4 52
ADDP4
INDIRI4
MULI4
ADDRGP4 cg_entities
ADDP4
ASGNP4
line 4015
;4014:
;4015:		if (g2Hit && g2Hit->ghoul2)
ADDRLP4 1060
ADDRLP4 1028
INDIRP4
ASGNP4
ADDRLP4 1064
CNSTU4 0
ASGNU4
ADDRLP4 1060
INDIRP4
CVPU4 4
ADDRLP4 1064
INDIRU4
EQU4 $1966
ADDRLP4 1060
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
ADDRLP4 1064
INDIRU4
EQU4 $1966
line 4016
;4016:		{
line 4017
;4017:			angles[ROLL] = angles[PITCH] = 0;
ADDRLP4 1068
CNSTF4 0
ASGNF4
ADDRLP4 1048
ADDRLP4 1068
INDIRF4
ASGNF4
ADDRLP4 1048+8
ADDRLP4 1068
INDIRF4
ASGNF4
line 4018
;4018:			angles[YAW] = g2Hit->lerpAngles[YAW];
ADDRLP4 1048+4
ADDRLP4 1028
INDIRP4
CNSTI4 944
ADDP4
INDIRF4
ASGNF4
line 4020
;4019:
;4020:			trap_G2API_CollisionDetect ( G2Trace, g2Hit->ghoul2, angles, g2Hit->lerpOrigin, cg.time, g2Hit->currentState.number, lastValidStart, lastValidEnd, vIdentity, 0, 2, fRadius );
ADDRLP4 4
ARGP4
ADDRLP4 1072
ADDRLP4 1028
INDIRP4
ASGNP4
ADDRLP4 1072
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 1048
ARGP4
ADDRLP4 1072
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRLP4 1072
INDIRP4
INDIRI4
ARGI4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
ARGP4
ADDRLP4 1032
ARGP4
CNSTI4 0
ARGI4
CNSTI4 2
ARGI4
ADDRLP4 1044
INDIRF4
ARGF4
ADDRGP4 trap_G2API_CollisionDetect
CALLV
pop
line 4022
;4021:
;4022:			if (G2Trace[0].mEntityNum != g2Hit->currentState.number)
ADDRLP4 4+4
INDIRI4
ADDRLP4 1028
INDIRP4
INDIRI4
EQI4 $1971
line 4023
;4023:			{
line 4024
;4024:				tr->fraction = 1.0f;
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
CNSTF4 1065353216
ASGNF4
line 4025
;4025:				tr->entityNum = ENTITYNUM_NONE;
ADDRFP4 0
INDIRP4
CNSTI4 52
ADDP4
CNSTI4 1023
ASGNI4
line 4026
;4026:				tr->startsolid = 0;
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
CNSTI4 0
ASGNI4
line 4027
;4027:				tr->allsolid = 0;
ADDRFP4 0
INDIRP4
CNSTI4 0
ASGNI4
line 4028
;4028:				return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $1958
JUMPV
LABELV $1971
line 4031
;4029:			}
;4030:			else
;4031:			{ //Yay!
line 4032
;4032:				VectorCopy(G2Trace[0].mCollisionPosition, tr->endpos);
ADDRFP4 0
INDIRP4
CNSTI4 12
ADDP4
ADDRLP4 4+20
INDIRB
ASGNB 12
line 4033
;4033:				VectorCopy(G2Trace[0].mCollisionNormal, tr->plane.normal);
ADDRFP4 0
INDIRP4
CNSTI4 24
ADDP4
ADDRLP4 4+32
INDIRB
ASGNB 12
line 4034
;4034:				return qtrue;
CNSTI4 1
RETI4
ADDRGP4 $1958
JUMPV
LABELV $1966
line 4037
;4035:			}
;4036:		}
;4037:	}
LABELV $1959
line 4039
;4038:
;4039:	return qfalse;
CNSTI4 0
RETI4
LABELV $1958
endproc CG_G2TraceCollide 1076 48
export CG_G2SaberEffects
proc CG_G2SaberEffects 1120 28
line 4043
;4040:}
;4041:
;4042:void CG_G2SaberEffects(vec3_t start, vec3_t end, centity_t *owner)
;4043:{
line 4047
;4044:	trace_t trace;
;4045:	vec3_t startTr;
;4046:	vec3_t endTr;
;4047:	qboolean backWards = qfalse;
ADDRLP4 1080
CNSTI4 0
ASGNI4
line 4048
;4048:	qboolean doneWithTraces = qfalse;
ADDRLP4 1108
CNSTI4 0
ASGNI4
ADDRGP4 $1978
JUMPV
LABELV $1977
line 4051
;4049:
;4050:	while (!doneWithTraces)
;4051:	{
line 4052
;4052:		if (!backWards)
ADDRLP4 1080
INDIRI4
CNSTI4 0
NEI4 $1980
line 4053
;4053:		{
line 4054
;4054:			VectorCopy(start, startTr);
ADDRLP4 1084
ADDRFP4 0
INDIRP4
INDIRB
ASGNB 12
line 4055
;4055:			VectorCopy(end, endTr);
ADDRLP4 1096
ADDRFP4 4
INDIRP4
INDIRB
ASGNB 12
line 4056
;4056:		}
ADDRGP4 $1981
JUMPV
LABELV $1980
line 4058
;4057:		else
;4058:		{
line 4059
;4059:			VectorCopy(end, startTr);
ADDRLP4 1084
ADDRFP4 4
INDIRP4
INDIRB
ASGNB 12
line 4060
;4060:			VectorCopy(start, endTr);
ADDRLP4 1096
ADDRFP4 0
INDIRP4
INDIRB
ASGNB 12
line 4061
;4061:		}
LABELV $1981
line 4063
;4062:
;4063:		CG_Trace( &trace, startTr, NULL, NULL, endTr, owner->currentState.number, MASK_PLAYERSOLID );
ADDRLP4 0
ARGP4
ADDRLP4 1084
ARGP4
ADDRLP4 1112
CNSTP4 0
ASGNP4
ADDRLP4 1112
INDIRP4
ARGP4
ADDRLP4 1112
INDIRP4
ARGP4
ADDRLP4 1096
ARGP4
ADDRFP4 8
INDIRP4
INDIRI4
ARGI4
CNSTI4 273
ARGI4
ADDRGP4 CG_Trace
CALLV
pop
line 4065
;4064:
;4065:		if (trace.entityNum < MAX_CLIENTS)
ADDRLP4 0+52
INDIRI4
CNSTI4 32
GEI4 $1982
line 4066
;4066:		{ //hit a client..
line 4067
;4067:			CG_G2TraceCollide(&trace, startTr, endTr);
ADDRLP4 0
ARGP4
ADDRLP4 1084
ARGP4
ADDRLP4 1096
ARGP4
ADDRGP4 CG_G2TraceCollide
CALLI4
pop
line 4069
;4068:
;4069:			if (trace.entityNum != ENTITYNUM_NONE)
ADDRLP4 0+52
INDIRI4
CNSTI4 1023
EQI4 $1985
line 4070
;4070:			{ //it succeeded with the ghoul2 trace
line 4071
;4071:				trap_FX_PlayEffectID( trap_FX_RegisterEffect("saber/blood_sparks.efx"), trace.endpos, trace.plane.normal );
ADDRGP4 $1988
ARGP4
ADDRLP4 1116
ADDRGP4 trap_FX_RegisterEffect
CALLI4
ASGNI4
ADDRLP4 1116
INDIRI4
ARGI4
ADDRLP4 0+12
ARGP4
ADDRLP4 0+24
ARGP4
ADDRGP4 trap_FX_PlayEffectID
CALLV
pop
line 4072
;4072:			}
LABELV $1985
line 4073
;4073:		}
LABELV $1982
line 4075
;4074:
;4075:		if (!backWards)
ADDRLP4 1080
INDIRI4
CNSTI4 0
NEI4 $1991
line 4076
;4076:		{
line 4077
;4077:			backWards = qtrue;
ADDRLP4 1080
CNSTI4 1
ASGNI4
line 4078
;4078:		}
ADDRGP4 $1992
JUMPV
LABELV $1991
line 4080
;4079:		else
;4080:		{
line 4081
;4081:			doneWithTraces = qtrue;
ADDRLP4 1108
CNSTI4 1
ASGNI4
line 4082
;4082:		}
LABELV $1992
line 4083
;4083:	}
LABELV $1978
line 4050
ADDRLP4 1108
INDIRI4
CNSTI4 0
EQI4 $1977
line 4084
;4084:}
LABELV $1976
endproc CG_G2SaberEffects 1120 28
lit
align 4
LABELV $1994
byte 4 0
byte 4 0
byte 4 0
byte 4 0
byte 4 0
byte 4 0
byte 4 0
byte 4 0
byte 4 0
align 4
LABELV $2178
byte 4 1132396544
byte 4 1132396544
byte 4 1132396544
export CG_AddSaberBlade
code
proc CG_AddSaberBlade 1672 36
line 4091
;4085:#endif
;4086:
;4087:#define SABER_TRAIL_TIME	40.0f
;4088:#define FX_USE_ALPHA		0x08000000
;4089:
;4090:void CG_AddSaberBlade( centity_t *cent, centity_t *scent, refEntity_t *saber, int renderfx, int modelIndex, vec3_t origin, vec3_t angles, qboolean fromSaber)
;4091:{
line 4093
;4092:	vec3_t	org_, end, v,
;4093:			axis_[3] = {0,0,0, 0,0,0, 0,0,0};	// shut the compiler up
ADDRLP4 1136
ADDRGP4 $1994
INDIRB
ASGNB 36
line 4095
;4094:	trace_t	trace;
;4095:	int i = 0;
ADDRLP4 1080
CNSTI4 0
ASGNI4
line 4104
;4096:	float saberLen, dualSaberLen;
;4097:	float diff;
;4098:	clientInfo_t *client;
;4099:	centity_t *saberEnt;
;4100:	saberTrail_t *saberTrail;
;4101:	mdxaBone_t	boltMatrix;
;4102:	vec3_t futureAngles;
;4103:	effectTrailArgStruct_t fx;
;4104:	int scolor = 0;
ADDRLP4 1560
CNSTI4 0
ASGNI4
line 4106
;4105:	vec3_t otherPos, otherDir, otherEnd;
;4106:	float dualLen = 0.7;
ADDRLP4 1556
CNSTF4 1060320051
ASGNF4
line 4108
;4107:
;4108:	saberEnt = &cg_entities[cent->currentState.saberEntityNum];
ADDRLP4 1576
CNSTI4 1920
ADDRFP4 0
INDIRP4
CNSTI4 232
ADDP4
INDIRI4
MULI4
ADDRGP4 cg_entities
ADDP4
ASGNP4
line 4111
;4109:
;4110:	if (/*cg.snap->ps.clientNum == cent->currentState.number && */
;4111:		cgs.clientinfo[ cent->currentState.clientNum ].team != TEAM_SPECTATOR &&
CNSTI4 812
ADDRFP4 0
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+68
ADDP4
INDIRI4
CNSTI4 3
EQI4 $1995
ADDRGP4 cg+36
INDIRP4
CNSTI4 56
ADDP4
INDIRI4
CNSTI4 4096
BANDI4
CNSTI4 0
NEI4 $1995
line 4113
;4112:		!(cg.snap->ps.pm_flags & PMF_FOLLOW))
;4113:	{
line 4114
;4114:		if (cent->saberLength < 1)
ADDRFP4 0
INDIRP4
CNSTI4 1000
ADDP4
INDIRF4
CNSTF4 1065353216
GEF4 $2000
line 4115
;4115:		{
line 4116
;4116:			cent->saberLength = 1;
ADDRFP4 0
INDIRP4
CNSTI4 1000
ADDP4
CNSTF4 1065353216
ASGNF4
line 4117
;4117:			cent->saberExtendTime = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 1004
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 4118
;4118:		}
LABELV $2000
line 4120
;4119:
;4120:		if (cent->saberLength < SABER_LENGTH_MAX)
ADDRFP4 0
INDIRP4
CNSTI4 1000
ADDP4
INDIRF4
CNSTF4 1109393408
GEF4 $2003
line 4121
;4121:		{
line 4122
;4122:			cent->saberLength += (cg.time - cent->saberExtendTime)*0.05;
ADDRLP4 1632
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1636
ADDRLP4 1632
INDIRP4
CNSTI4 1000
ADDP4
ASGNP4
ADDRLP4 1636
INDIRP4
ADDRLP4 1636
INDIRP4
INDIRF4
CNSTF4 1028443341
ADDRGP4 cg+64
INDIRI4
ADDRLP4 1632
INDIRP4
CNSTI4 1004
ADDP4
INDIRI4
SUBI4
CVIF4 4
MULF4
ADDF4
ASGNF4
line 4123
;4123:		}
LABELV $2003
line 4125
;4124:
;4125:		if (cent->saberLength > SABER_LENGTH_MAX)
ADDRFP4 0
INDIRP4
CNSTI4 1000
ADDP4
INDIRF4
CNSTF4 1109393408
LEF4 $2006
line 4126
;4126:		{
line 4127
;4127:			cent->saberLength = SABER_LENGTH_MAX;
ADDRFP4 0
INDIRP4
CNSTI4 1000
ADDP4
CNSTF4 1109393408
ASGNF4
line 4128
;4128:		}
LABELV $2006
line 4130
;4129:
;4130:		cent->saberExtendTime = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 1004
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 4131
;4131:		saberLen = cent->saberLength;
ADDRLP4 1520
ADDRFP4 0
INDIRP4
CNSTI4 1000
ADDP4
INDIRF4
ASGNF4
line 4132
;4132:	}
ADDRGP4 $1996
JUMPV
LABELV $1995
line 4134
;4133:	else
;4134:	{
line 4135
;4135:		saberLen = SABER_LENGTH_MAX;
ADDRLP4 1520
CNSTF4 1109393408
ASGNF4
line 4136
;4136:	}
LABELV $1996
line 4142
;4137:
;4138:/*
;4139:Ghoul2 Insert Start
;4140:*/
;4141:
;4142:	dualSaberLen = saberLen;
ADDRLP4 1552
ADDRLP4 1520
INDIRF4
ASGNF4
line 4144
;4143:
;4144:	if ((cent->currentState.eFlags & EF_DEAD) && !fromSaber)
ADDRLP4 1632
CNSTI4 0
ASGNI4
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
ADDRLP4 1632
INDIRI4
EQI4 $2009
ADDRFP4 28
INDIRI4
ADDRLP4 1632
INDIRI4
NEI4 $2009
line 4145
;4145:	{ //trying to draw a saber on a corpse? That's bad.
line 4146
;4146:		return;
ADDRGP4 $1993
JUMPV
LABELV $2009
line 4149
;4147:	}
;4148:
;4149:	futureAngles[YAW] = angles[YAW];
ADDRLP4 1564+4
ADDRFP4 24
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
line 4150
;4150:	futureAngles[PITCH] = angles[PITCH];
ADDRLP4 1564
ADDRFP4 24
INDIRP4
INDIRF4
ASGNF4
line 4151
;4151:	futureAngles[ROLL] = angles[ROLL];
ADDRLP4 1564+8
ADDRFP4 24
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ASGNF4
line 4154
;4152:
;4153:	// figure out where the actual model muzzle is
;4154:	if (fromSaber)
ADDRFP4 28
INDIRI4
CNSTI4 0
EQI4 $2013
line 4155
;4155:	{
line 4156
;4156:		trap_G2API_GetBoltMatrix(scent->ghoul2, 0, 0, &boltMatrix, futureAngles, origin, cg.time, cgs.gameModels, scent->modelScale);
ADDRLP4 1636
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 1636
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 1640
CNSTI4 0
ASGNI4
ADDRLP4 1640
INDIRI4
ARGI4
ADDRLP4 1640
INDIRI4
ARGI4
ADDRLP4 1580
ARGP4
ADDRLP4 1564
ARGP4
ADDRFP4 20
INDIRP4
ARGP4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 1636
INDIRP4
CNSTI4 964
ADDP4
ARGP4
ADDRGP4 trap_G2API_GetBoltMatrix
CALLI4
pop
line 4157
;4157:	}
ADDRGP4 $2014
JUMPV
LABELV $2013
line 4159
;4158:	else
;4159:	{
line 4160
;4160:		trap_G2API_GetBoltMatrix(scent->ghoul2, 1, 0, &boltMatrix, futureAngles, origin, cg.time, cgs.gameModels, scent->modelScale);
ADDRLP4 1636
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 1636
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 1
ARGI4
CNSTI4 0
ARGI4
ADDRLP4 1580
ARGP4
ADDRLP4 1564
ARGP4
ADDRFP4 20
INDIRP4
ARGP4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 1636
INDIRP4
CNSTI4 964
ADDP4
ARGP4
ADDRGP4 trap_G2API_GetBoltMatrix
CALLI4
pop
line 4161
;4161:	}
LABELV $2014
line 4163
;4162:	// work the matrix axis stuff into the original axis and origins used.
;4163:	trap_G2API_GiveMeVectorFromMatrix(&boltMatrix, ORIGIN, org_);
ADDRLP4 1580
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 1088
ARGP4
ADDRGP4 trap_G2API_GiveMeVectorFromMatrix
CALLV
pop
line 4164
;4164:	trap_G2API_GiveMeVectorFromMatrix(&boltMatrix, NEGATIVE_Y, axis_[0]);
ADDRLP4 1580
ARGP4
CNSTI4 6
ARGI4
ADDRLP4 1136
ARGP4
ADDRGP4 trap_G2API_GiveMeVectorFromMatrix
CALLV
pop
line 4166
;4165:
;4166:	if (!fromSaber && saberEnt)
ADDRFP4 28
INDIRI4
CNSTI4 0
NEI4 $2019
ADDRLP4 1576
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $2019
line 4167
;4167:	{
line 4168
;4168:		VectorCopy(org_, saberEnt->currentState.pos.trBase);
ADDRLP4 1576
INDIRP4
CNSTI4 24
ADDP4
ADDRLP4 1088
INDIRB
ASGNB 12
line 4170
;4169:
;4170:		VectorCopy(axis_[0], saberEnt->currentState.apos.trBase);
ADDRLP4 1576
INDIRP4
CNSTI4 60
ADDP4
ADDRLP4 1136
INDIRB
ASGNB 12
line 4171
;4171:	}
LABELV $2019
line 4173
;4172:
;4173:	client = &cgs.clientinfo[cent->currentState.number];
ADDRLP4 1084
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024
ADDP4
ASGNP4
line 4175
;4174:
;4175:	if (!client)
ADDRLP4 1084
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $2022
line 4176
;4176:	{ //something horrible has apparently happened
line 4177
;4177:		return;
ADDRGP4 $1993
JUMPV
LABELV $2022
line 4180
;4178:	}
;4179:
;4180:	if (cent->currentState.bolt2)
ADDRFP4 0
INDIRP4
CNSTI4 144
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2024
line 4181
;4181:	{
line 4182
;4182:		VectorMA( org_, saberLen*dualLen, axis_[0], end );
ADDRLP4 1636
ADDRLP4 1520
INDIRF4
ADDRLP4 1556
INDIRF4
MULF4
ASGNF4
ADDRLP4 1112
ADDRLP4 1088
INDIRF4
ADDRLP4 1136
INDIRF4
ADDRLP4 1636
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 1112+4
ADDRLP4 1088+4
INDIRF4
ADDRLP4 1136+4
INDIRF4
ADDRLP4 1636
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 1112+8
ADDRLP4 1088+8
INDIRF4
ADDRLP4 1136+8
INDIRF4
ADDRLP4 1520
INDIRF4
ADDRLP4 1556
INDIRF4
MULF4
MULF4
ADDF4
ASGNF4
line 4183
;4183:	}
ADDRGP4 $2025
JUMPV
LABELV $2024
line 4185
;4184:	else
;4185:	{
line 4186
;4186:		VectorMA( org_, saberLen, axis_[0], end );
ADDRLP4 1112
ADDRLP4 1088
INDIRF4
ADDRLP4 1136
INDIRF4
ADDRLP4 1520
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 1112+4
ADDRLP4 1088+4
INDIRF4
ADDRLP4 1136+4
INDIRF4
ADDRLP4 1520
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 1112+8
ADDRLP4 1088+8
INDIRF4
ADDRLP4 1136+8
INDIRF4
ADDRLP4 1520
INDIRF4
MULF4
ADDF4
ASGNF4
line 4187
;4187:	}
LABELV $2025
line 4189
;4188:	
;4189:	VectorAdd( end, axis_[0], end );
ADDRLP4 1112
ADDRLP4 1112
INDIRF4
ADDRLP4 1136
INDIRF4
ADDF4
ASGNF4
ADDRLP4 1112+4
ADDRLP4 1112+4
INDIRF4
ADDRLP4 1136+4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 1112+8
ADDRLP4 1112+8
INDIRF4
ADDRLP4 1136+8
INDIRF4
ADDF4
ASGNF4
line 4191
;4190:
;4191:	if (cent->currentState.bolt2)
ADDRFP4 0
INDIRP4
CNSTI4 144
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2044
line 4192
;4192:	{
line 4193
;4193:		otherPos[0] = org_[0] - axis_[0][0]*12;
ADDRLP4 1124
ADDRLP4 1088
INDIRF4
CNSTF4 1094713344
ADDRLP4 1136
INDIRF4
MULF4
SUBF4
ASGNF4
line 4194
;4194:		otherPos[1] = org_[1] - axis_[0][1]*12;
ADDRLP4 1124+4
ADDRLP4 1088+4
INDIRF4
CNSTF4 1094713344
ADDRLP4 1136+4
INDIRF4
MULF4
SUBF4
ASGNF4
line 4195
;4195:		otherPos[2] = org_[2] - axis_[0][2]*12;
ADDRLP4 1124+8
ADDRLP4 1088+8
INDIRF4
CNSTF4 1094713344
ADDRLP4 1136+8
INDIRF4
MULF4
SUBF4
ASGNF4
line 4197
;4196:
;4197:		otherDir[0] = -axis_[0][0];
ADDRLP4 1540
ADDRLP4 1136
INDIRF4
NEGF4
ASGNF4
line 4198
;4198:		otherDir[1] = -axis_[0][1];
ADDRLP4 1540+4
ADDRLP4 1136+4
INDIRF4
NEGF4
ASGNF4
line 4199
;4199:		otherDir[2] = -axis_[0][2];
ADDRLP4 1540+8
ADDRLP4 1136+8
INDIRF4
NEGF4
ASGNF4
line 4201
;4200:
;4201:		VectorMA( otherPos, dualSaberLen*dualLen, otherDir, otherEnd );
ADDRLP4 1636
ADDRLP4 1552
INDIRF4
ADDRLP4 1556
INDIRF4
MULF4
ASGNF4
ADDRLP4 1524
ADDRLP4 1124
INDIRF4
ADDRLP4 1540
INDIRF4
ADDRLP4 1636
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 1524+4
ADDRLP4 1124+4
INDIRF4
ADDRLP4 1540+4
INDIRF4
ADDRLP4 1636
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 1524+8
ADDRLP4 1124+8
INDIRF4
ADDRLP4 1540+8
INDIRF4
ADDRLP4 1552
INDIRF4
ADDRLP4 1556
INDIRF4
MULF4
MULF4
ADDF4
ASGNF4
line 4202
;4202:		VectorAdd( otherEnd, otherDir, otherEnd );
ADDRLP4 1524
ADDRLP4 1524
INDIRF4
ADDRLP4 1540
INDIRF4
ADDF4
ASGNF4
ADDRLP4 1524+4
ADDRLP4 1524+4
INDIRF4
ADDRLP4 1540+4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 1524+8
ADDRLP4 1524+8
INDIRF4
ADDRLP4 1540+8
INDIRF4
ADDF4
ASGNF4
line 4203
;4203:	}
LABELV $2044
line 4205
;4204:
;4205:	scolor = cgs.clientinfo[cent->currentState.number].icolor1;
ADDRLP4 1560
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+104
ADDP4
INDIRI4
ASGNI4
line 4207
;4206:
;4207:	if (cgs.gametype >= GT_TEAM && !cgs.jediVmerc )
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 5
LTI4 $2070
ADDRGP4 cgs+32996
INDIRI4
CNSTI4 0
NEI4 $2070
line 4208
;4208:	{
line 4209
;4209:		if (cgs.clientinfo[cent->currentState.number].team == TEAM_RED)
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+68
ADDP4
INDIRI4
CNSTI4 1
NEI4 $2074
line 4210
;4210:		{
line 4211
;4211:			scolor = SABER_RED;
ADDRLP4 1560
CNSTI4 0
ASGNI4
line 4212
;4212:		}
ADDRGP4 $2075
JUMPV
LABELV $2074
line 4213
;4213:		else if (cgs.clientinfo[cent->currentState.number].team == TEAM_BLUE)
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+68
ADDP4
INDIRI4
CNSTI4 2
NEI4 $2078
line 4214
;4214:		{
line 4215
;4215:			scolor = SABER_BLUE;
ADDRLP4 1560
CNSTI4 4
ASGNI4
line 4216
;4216:		}
LABELV $2078
LABELV $2075
line 4217
;4217:	}
LABELV $2070
line 4219
;4218:
;4219:	if (!cg_saberContact.integer)
ADDRGP4 cg_saberContact+12
INDIRI4
CNSTI4 0
NEI4 $2082
line 4220
;4220:	{ //if we don't have saber contact enabled, just add the blade and don't care what it's touching
line 4221
;4221:		goto CheckTrail;
ADDRGP4 $2085
JUMPV
LABELV $2082
line 4225
;4222:	}
;4223:
;4224:#ifdef G2_COLLISION_ENABLED
;4225:	if (cg_saberModelTraceEffect.integer)
ADDRGP4 cg_saberModelTraceEffect+12
INDIRI4
CNSTI4 0
EQI4 $2086
line 4226
;4226:	{
line 4227
;4227:		CG_G2SaberEffects(org_, end, cent);
ADDRLP4 1088
ARGP4
ADDRLP4 1112
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CG_G2SaberEffects
CALLV
pop
line 4228
;4228:	}
LABELV $2086
line 4231
;4229:#endif
;4230:
;4231:	for ( i = 0; i < 1; i++ )//was 2 because it would go through architecture and leave saber trails on either side of the brush - but still looks bad if we hit a corner, blade is still 8 longer than hit
ADDRLP4 1080
CNSTI4 0
ASGNI4
LABELV $2089
line 4232
;4232:	{
line 4233
;4233:		if ( i )
ADDRLP4 1080
INDIRI4
CNSTI4 0
EQI4 $2093
line 4234
;4234:		{//tracing from end to base
line 4235
;4235:			CG_Trace( &trace, end, NULL, NULL, org_, ENTITYNUM_NONE, MASK_SOLID );
ADDRLP4 0
ARGP4
ADDRLP4 1112
ARGP4
ADDRLP4 1636
CNSTP4 0
ASGNP4
ADDRLP4 1636
INDIRP4
ARGP4
ADDRLP4 1636
INDIRP4
ARGP4
ADDRLP4 1088
ARGP4
CNSTI4 1023
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 CG_Trace
CALLV
pop
line 4236
;4236:		}
ADDRGP4 $2094
JUMPV
LABELV $2093
line 4238
;4237:		else
;4238:		{//tracing from base to end
line 4239
;4239:			CG_Trace( &trace, org_, NULL, NULL, end, ENTITYNUM_NONE, MASK_SOLID );
ADDRLP4 0
ARGP4
ADDRLP4 1088
ARGP4
ADDRLP4 1636
CNSTP4 0
ASGNP4
ADDRLP4 1636
INDIRP4
ARGP4
ADDRLP4 1636
INDIRP4
ARGP4
ADDRLP4 1112
ARGP4
CNSTI4 1023
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 CG_Trace
CALLV
pop
line 4240
;4240:		}
LABELV $2094
line 4242
;4241:		
;4242:		if ( trace.fraction < 1.0f )
ADDRLP4 0+8
INDIRF4
CNSTF4 1065353216
GEF4 $2095
line 4243
;4243:		{
line 4245
;4244:			vec3_t trDir;
;4245:			VectorCopy(trace.plane.normal, trDir);
ADDRLP4 1636
ADDRLP4 0+24
INDIRB
ASGNB 12
line 4246
;4246:			if (!trDir[0] && !trDir[1] && !trDir[2])
ADDRLP4 1648
CNSTF4 0
ASGNF4
ADDRLP4 1636
INDIRF4
ADDRLP4 1648
INDIRF4
NEF4 $2099
ADDRLP4 1636+4
INDIRF4
ADDRLP4 1648
INDIRF4
NEF4 $2099
ADDRLP4 1636+8
INDIRF4
ADDRLP4 1648
INDIRF4
NEF4 $2099
line 4247
;4247:			{
line 4248
;4248:				trDir[1] = 1;
ADDRLP4 1636+4
CNSTF4 1065353216
ASGNF4
line 4249
;4249:			}
LABELV $2099
line 4250
;4250:			trap_FX_PlayEffectID( trap_FX_RegisterEffect("saber/spark.efx"), trace.endpos, trDir );
ADDRGP4 $2104
ARGP4
ADDRLP4 1652
ADDRGP4 trap_FX_RegisterEffect
CALLI4
ASGNI4
ADDRLP4 1652
INDIRI4
ARGI4
ADDRLP4 0+12
ARGP4
ADDRLP4 1636
ARGP4
ADDRGP4 trap_FX_PlayEffectID
CALLV
pop
line 4253
;4251:
;4252:			//Stop saber? (it wouldn't look right if it was stuck through a thin wall and unable to hurt players on the other side)
;4253:			VectorSubtract(org_, trace.endpos, v);
ADDRLP4 1100
ADDRLP4 1088
INDIRF4
ADDRLP4 0+12
INDIRF4
SUBF4
ASGNF4
ADDRLP4 1100+4
ADDRLP4 1088+4
INDIRF4
ADDRLP4 0+12+4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 1100+8
ADDRLP4 1088+8
INDIRF4
ADDRLP4 0+12+8
INDIRF4
SUBF4
ASGNF4
line 4254
;4254:			saberLen = VectorLength(v);
ADDRLP4 1100
ARGP4
ADDRLP4 1656
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 1520
ADDRLP4 1656
INDIRF4
ASGNF4
line 4256
;4255:
;4256:			VectorCopy(trace.endpos, end);
ADDRLP4 1112
ADDRLP4 0+12
INDIRB
ASGNB 12
line 4258
;4257:
;4258:			if (cent->currentState.bolt2)
ADDRFP4 0
INDIRP4
CNSTI4 144
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2116
line 4259
;4259:			{
line 4260
;4260:				break;
ADDRGP4 $2091
JUMPV
LABELV $2116
line 4264
;4261:			}
;4262:			// All I need is a bool to mark whether I have a previous point to work with.
;4263:			//....come up with something better..
;4264:			if ( client->saberTrail.haveOldPos[i] )
ADDRLP4 1080
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 1084
INDIRP4
CNSTI4 592
ADDP4
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2118
line 4265
;4265:			{
line 4266
;4266:				if ( trace.entityNum == ENTITYNUM_WORLD )
ADDRLP4 0+52
INDIRI4
CNSTI4 1022
NEI4 $2119
line 4267
;4267:				{//only put marks on architecture
line 4269
;4268:					// Let's do some cool burn/glowing mark bits!!!
;4269:					CG_CreateSaberMarks( client->saberTrail.oldPos[i], trace.endpos, trace.plane.normal );
CNSTI4 12
ADDRLP4 1080
INDIRI4
MULI4
ADDRLP4 1084
INDIRP4
CNSTI4 600
ADDP4
ADDP4
ARGP4
ADDRLP4 0+12
ARGP4
ADDRLP4 0+24
ARGP4
ADDRGP4 CG_CreateSaberMarks
CALLV
pop
line 4272
;4270:				
;4271:					//make a sound
;4272:					if ( cg.time - client->saberHitWallSoundDebounceTime >= 100 )
ADDRGP4 cg+64
INDIRI4
ADDRLP4 1084
INDIRP4
CNSTI4 648
ADDP4
INDIRI4
SUBI4
CNSTI4 100
LTI4 $2119
line 4273
;4273:					{//ugh, need to have a real sound debouncer... or do this game-side
line 4274
;4274:						client->saberHitWallSoundDebounceTime = cg.time;
ADDRLP4 1084
INDIRP4
CNSTI4 648
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 4275
;4275:						trap_S_StartSound ( trace.endpos, -1, CHAN_WEAPON, trap_S_RegisterSound( va("sound/weapons/saber/saberhitwall%i", Q_irand(1, 3)) ) );
CNSTI4 1
ARGI4
CNSTI4 3
ARGI4
ADDRLP4 1660
ADDRGP4 Q_irand
CALLI4
ASGNI4
ADDRGP4 $2130
ARGP4
ADDRLP4 1660
INDIRI4
ARGI4
ADDRLP4 1664
ADDRGP4 va
CALLP4
ASGNP4
ADDRLP4 1664
INDIRP4
ARGP4
ADDRLP4 1668
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 0+12
ARGP4
CNSTI4 -1
ARGI4
CNSTI4 2
ARGI4
ADDRLP4 1668
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
line 4276
;4276:					}
line 4277
;4277:				}
line 4278
;4278:			}
ADDRGP4 $2119
JUMPV
LABELV $2118
line 4280
;4279:			else
;4280:			{
line 4282
;4281:				// if we impact next frame, we'll mark a slash mark
;4282:				client->saberTrail.haveOldPos[i] = qtrue;
ADDRLP4 1080
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 1084
INDIRP4
CNSTI4 592
ADDP4
ADDP4
CNSTI4 1
ASGNI4
line 4285
;4283://				CG_ImpactMark( cgs.media.rivetMarkShader, client->saberTrail.oldPos[i], client->saberTrail.oldNormal[i],
;4284://						0.0f, 1.0f, 1.0f, 1.0f, 1.0f, qfalse, 1.1f, qfalse );
;4285:			}
LABELV $2119
line 4288
;4286:
;4287:			// stash point so we can connect-the-dots later
;4288:			VectorCopy( trace.endpos, client->saberTrail.oldPos[i] );
CNSTI4 12
ADDRLP4 1080
INDIRI4
MULI4
ADDRLP4 1084
INDIRP4
CNSTI4 600
ADDP4
ADDP4
ADDRLP4 0+12
INDIRB
ASGNB 12
line 4289
;4289:			VectorCopy( trace.plane.normal, client->saberTrail.oldNormal[i] );
CNSTI4 12
ADDRLP4 1080
INDIRI4
MULI4
ADDRLP4 1084
INDIRP4
CNSTI4 624
ADDP4
ADDP4
ADDRLP4 0+24
INDIRB
ASGNB 12
line 4290
;4290:		}
ADDRGP4 $2096
JUMPV
LABELV $2095
line 4292
;4291:		else
;4292:		{
line 4293
;4293:			if (cent->currentState.bolt2)
ADDRFP4 0
INDIRP4
CNSTI4 144
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2133
line 4294
;4294:			{
line 4295
;4295:				break;
ADDRGP4 $2091
JUMPV
LABELV $2133
line 4298
;4296:			}
;4297:
;4298:			if ( client->saberTrail.haveOldPos[i] )
ADDRLP4 1080
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 1084
INDIRP4
CNSTI4 592
ADDP4
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2135
line 4299
;4299:			{
line 4305
;4300:				// Hmmm, no impact this frame, but we have an old point
;4301:				// Let's put the mark there, we should use an endcap mark to close the line, but we 
;4302:				//	can probably just get away with a round mark
;4303://					CG_ImpactMark( cgs.media.rivetMarkShader, client->saberTrail.oldPos[i], client->saberTrail.oldNormal[i],
;4304://							0.0f, 1.0f, 1.0f, 1.0f, 1.0f, qfalse, 1.1f, qfalse );
;4305:			}
LABELV $2135
line 4308
;4306:
;4307:			// we aren't impacting, so turn off our mark tracking mechanism
;4308:			client->saberTrail.haveOldPos[i] = qfalse;
ADDRLP4 1080
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 1084
INDIRP4
CNSTI4 592
ADDP4
ADDP4
CNSTI4 0
ASGNI4
line 4309
;4309:		}
LABELV $2096
line 4310
;4310:	}
LABELV $2090
line 4231
ADDRLP4 1080
ADDRLP4 1080
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 1080
INDIRI4
CNSTI4 1
LTI4 $2089
LABELV $2091
line 4312
;4311:
;4312:	if (cent->currentState.bolt2)
ADDRFP4 0
INDIRP4
CNSTI4 144
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2137
line 4313
;4313:	{
line 4314
;4314:		for ( i = 0; i < 1; i++ )//was 2 because it would go through architecture and leave saber trails on either side of the brush - but still looks bad if we hit a corner, blade is still 8 longer than hit
ADDRLP4 1080
CNSTI4 0
ASGNI4
LABELV $2139
line 4315
;4315:		{
line 4316
;4316:			CG_Trace( &trace, otherPos, NULL, NULL, otherEnd, ENTITYNUM_NONE, MASK_SOLID );
ADDRLP4 0
ARGP4
ADDRLP4 1124
ARGP4
ADDRLP4 1636
CNSTP4 0
ASGNP4
ADDRLP4 1636
INDIRP4
ARGP4
ADDRLP4 1636
INDIRP4
ARGP4
ADDRLP4 1524
ARGP4
CNSTI4 1023
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 CG_Trace
CALLV
pop
line 4318
;4317:		
;4318:			if ( trace.fraction < 1.0f )
ADDRLP4 0+8
INDIRF4
CNSTF4 1065353216
GEF4 $2143
line 4319
;4319:			{
line 4321
;4320:				vec3_t trDir;
;4321:				VectorCopy(trace.plane.normal, trDir);
ADDRLP4 1640
ADDRLP4 0+24
INDIRB
ASGNB 12
line 4322
;4322:				if (!trDir[0] && !trDir[1] && !trDir[2])
ADDRLP4 1652
CNSTF4 0
ASGNF4
ADDRLP4 1640
INDIRF4
ADDRLP4 1652
INDIRF4
NEF4 $2147
ADDRLP4 1640+4
INDIRF4
ADDRLP4 1652
INDIRF4
NEF4 $2147
ADDRLP4 1640+8
INDIRF4
ADDRLP4 1652
INDIRF4
NEF4 $2147
line 4323
;4323:				{
line 4324
;4324:					trDir[1] = 1;
ADDRLP4 1640+4
CNSTF4 1065353216
ASGNF4
line 4325
;4325:				}
LABELV $2147
line 4327
;4326:
;4327:				trap_FX_PlayEffectID( trap_FX_RegisterEffect("saber/spark.efx"), trace.endpos, trDir );
ADDRGP4 $2104
ARGP4
ADDRLP4 1656
ADDRGP4 trap_FX_RegisterEffect
CALLI4
ASGNI4
ADDRLP4 1656
INDIRI4
ARGI4
ADDRLP4 0+12
ARGP4
ADDRLP4 1640
ARGP4
ADDRGP4 trap_FX_PlayEffectID
CALLV
pop
line 4330
;4328:
;4329:				//Stop saber? (it wouldn't look right if it was stuck through a thin wall and unable to hurt players on the other side)
;4330:				VectorSubtract(otherPos, trace.endpos, v);
ADDRLP4 1100
ADDRLP4 1124
INDIRF4
ADDRLP4 0+12
INDIRF4
SUBF4
ASGNF4
ADDRLP4 1100+4
ADDRLP4 1124+4
INDIRF4
ADDRLP4 0+12+4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 1100+8
ADDRLP4 1124+8
INDIRF4
ADDRLP4 0+12+8
INDIRF4
SUBF4
ASGNF4
line 4331
;4331:				dualSaberLen = VectorLength(v);
ADDRLP4 1100
ARGP4
ADDRLP4 1660
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 1552
ADDRLP4 1660
INDIRF4
ASGNF4
line 4333
;4332:
;4333:				VectorCopy(trace.endpos, end);
ADDRLP4 1112
ADDRLP4 0+12
INDIRB
ASGNB 12
line 4334
;4334:			}
LABELV $2143
line 4335
;4335:		}
LABELV $2140
line 4314
ADDRLP4 1080
ADDRLP4 1080
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 1080
INDIRI4
CNSTI4 1
LTI4 $2139
line 4336
;4336:	}
LABELV $2137
LABELV $2085
line 4339
;4337:CheckTrail:
;4338:
;4339:	if (!cg_saberTrail.integer)
ADDRGP4 cg_saberTrail+12
INDIRI4
CNSTI4 0
NEI4 $2163
line 4340
;4340:	{ //don't do the trail in this case
line 4341
;4341:		goto JustDoIt;
ADDRGP4 $2166
JUMPV
LABELV $2163
line 4344
;4342:	}
;4343:
;4344:	saberTrail = &client->saberTrail;
ADDRLP4 1536
ADDRLP4 1084
INDIRP4
CNSTI4 532
ADDP4
ASGNP4
line 4348
;4345:
;4346:	// if we happen to be timescaled or running in a high framerate situation, we don't want to flood
;4347:	//	the system with very small trail slices...but perhaps doing it by distance would yield better results?
;4348:	if ( cg.time > saberTrail->lastTime + 2 ) // 2ms
ADDRGP4 cg+64
INDIRI4
ADDRLP4 1536
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 2
ADDI4
LEI4 $2167
line 4349
;4349:	{
line 4350
;4350:		if ( (saberMoveData[cent->currentState.saberMove].trailLength > 0 || ((cent->currentState.powerups & (1 << PW_SPEED) && cg_speedTrail.integer)) || cent->currentState.saberInFlight) && cg.time < saberTrail->lastTime + 2000 ) // if we have a stale segment, don't draw until we have a fresh one
ADDRLP4 1636
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1640
CNSTI4 0
ASGNI4
CNSTI4 40
ADDRLP4 1636
INDIRP4
CNSTI4 236
ADDP4
INDIRI4
MULI4
ADDRGP4 saberMoveData+36
ADDP4
INDIRI4
ADDRLP4 1640
INDIRI4
GTI4 $2176
ADDRLP4 1636
INDIRP4
CNSTI4 272
ADDP4
INDIRI4
CNSTI4 1024
BANDI4
ADDRLP4 1640
INDIRI4
EQI4 $2177
ADDRGP4 cg_speedTrail+12
INDIRI4
ADDRLP4 1640
INDIRI4
NEI4 $2176
LABELV $2177
ADDRFP4 0
INDIRP4
CNSTI4 228
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2170
LABELV $2176
ADDRGP4 cg+64
INDIRI4
ADDRLP4 1536
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 2000
ADDI4
GEI4 $2170
line 4351
;4351:		{
line 4352
;4352:			vec3_t	rgb1={255.0f,255.0f,255.0f};
ADDRLP4 1644
ADDRGP4 $2178
INDIRB
ASGNB 12
line 4354
;4353:
;4354:			switch( scolor )
ADDRLP4 1560
INDIRI4
CNSTI4 0
LTI4 $2179
ADDRLP4 1560
INDIRI4
CNSTI4 5
GTI4 $2179
ADDRLP4 1560
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 $2201
ADDP4
INDIRP4
JUMPV
lit
align 4
LABELV $2201
address $2181
address $2184
address $2187
address $2190
address $2193
address $2196
code
line 4355
;4355:			{
LABELV $2181
line 4357
;4356:				case SABER_RED:
;4357:					VectorSet( rgb1, 255.0f, 0.0f, 0.0f );
ADDRLP4 1644
CNSTF4 1132396544
ASGNF4
ADDRLP4 1644+4
CNSTF4 0
ASGNF4
ADDRLP4 1644+8
CNSTF4 0
ASGNF4
line 4358
;4358:					break;
ADDRGP4 $2180
JUMPV
LABELV $2184
line 4360
;4359:				case SABER_ORANGE:
;4360:					VectorSet( rgb1, 255.0f, 64.0f, 0.0f );
ADDRLP4 1644
CNSTF4 1132396544
ASGNF4
ADDRLP4 1644+4
CNSTF4 1115684864
ASGNF4
ADDRLP4 1644+8
CNSTF4 0
ASGNF4
line 4361
;4361:					break;
ADDRGP4 $2180
JUMPV
LABELV $2187
line 4363
;4362:				case SABER_YELLOW:
;4363:					VectorSet( rgb1, 255.0f, 255.0f, 0.0f );
ADDRLP4 1660
CNSTF4 1132396544
ASGNF4
ADDRLP4 1644
ADDRLP4 1660
INDIRF4
ASGNF4
ADDRLP4 1644+4
ADDRLP4 1660
INDIRF4
ASGNF4
ADDRLP4 1644+8
CNSTF4 0
ASGNF4
line 4364
;4364:					break;
ADDRGP4 $2180
JUMPV
LABELV $2190
line 4366
;4365:				case SABER_GREEN:
;4366:					VectorSet( rgb1, 0.0f, 255.0f, 0.0f );
ADDRLP4 1644
CNSTF4 0
ASGNF4
ADDRLP4 1644+4
CNSTF4 1132396544
ASGNF4
ADDRLP4 1644+8
CNSTF4 0
ASGNF4
line 4367
;4367:					break;
ADDRGP4 $2180
JUMPV
LABELV $2193
line 4369
;4368:				case SABER_BLUE:
;4369:					VectorSet( rgb1, 0.0f, 64.0f, 255.0f );
ADDRLP4 1644
CNSTF4 0
ASGNF4
ADDRLP4 1644+4
CNSTF4 1115684864
ASGNF4
ADDRLP4 1644+8
CNSTF4 1132396544
ASGNF4
line 4370
;4370:					break;
ADDRGP4 $2180
JUMPV
LABELV $2196
line 4372
;4371:				case SABER_PURPLE:
;4372:					VectorSet( rgb1, 220.0f, 0.0f, 255.0f );
ADDRLP4 1644
CNSTF4 1130102784
ASGNF4
ADDRLP4 1644+4
CNSTF4 0
ASGNF4
ADDRLP4 1644+8
CNSTF4 1132396544
ASGNF4
line 4373
;4373:					break;
ADDRGP4 $2180
JUMPV
LABELV $2179
line 4375
;4374:				default:
;4375:					VectorSet( rgb1, 0.0f, 64.0f, 255.0f );
ADDRLP4 1644
CNSTF4 0
ASGNF4
ADDRLP4 1644+4
CNSTF4 1115684864
ASGNF4
ADDRLP4 1644+8
CNSTF4 1132396544
ASGNF4
line 4376
;4376:					break;
LABELV $2180
line 4385
;4377:			}
;4378:
;4379:			//Here we will use the happy process of filling a struct in with arguments and passing it to a trap function
;4380:			//so that we can take the struct and fill in an actual CTrail type using the data within it once we get it
;4381:			//into the effects area
;4382:
;4383:			// Go from new muzzle to new end...then to old end...back down to old muzzle...finally
;4384:			//	connect back to the new muzzle...this is our trail quad
;4385:			VectorCopy( org_, fx.mVerts[0].origin );
ADDRLP4 1172
ADDRLP4 1088
INDIRB
ASGNB 12
line 4386
;4386:			VectorMA( end, 3.0f, axis_[0], fx.mVerts[1].origin );
ADDRLP4 1172+84
ADDRLP4 1112
INDIRF4
CNSTF4 1077936128
ADDRLP4 1136
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 1172+84+4
ADDRLP4 1112+4
INDIRF4
CNSTF4 1077936128
ADDRLP4 1136+4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 1172+84+8
ADDRLP4 1112+8
INDIRF4
CNSTF4 1077936128
ADDRLP4 1136+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 4388
;4387:
;4388:			VectorCopy( saberTrail->tip, fx.mVerts[2].origin );
ADDRLP4 1172+168
ADDRLP4 1536
INDIRP4
CNSTI4 24
ADDP4
INDIRB
ASGNB 12
line 4389
;4389:			VectorCopy( saberTrail->base, fx.mVerts[3].origin );
ADDRLP4 1172+252
ADDRLP4 1536
INDIRP4
CNSTI4 12
ADDP4
INDIRB
ASGNB 12
line 4391
;4390:
;4391:			diff = cg.time - saberTrail->lastTime;
ADDRLP4 1628
ADDRGP4 cg+64
INDIRI4
ADDRLP4 1536
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
SUBI4
CVIF4 4
ASGNF4
line 4396
;4392:
;4393:			// I'm not sure that clipping this is really the best idea
;4394:			//This prevents the trail from showing at all in low framerate situations.
;4395:			//if ( diff <= SABER_TRAIL_TIME * 2 )
;4396:			{
line 4397
;4397:				float oldAlpha = 1.0f - ( diff / SABER_TRAIL_TIME );
ADDRLP4 1660
CNSTF4 1065353216
ADDRLP4 1628
INDIRF4
CNSTF4 1109393408
DIVF4
SUBF4
ASGNF4
line 4400
;4398:
;4399:				// New muzzle
;4400:				VectorCopy( rgb1, fx.mVerts[0].rgb );
ADDRLP4 1172+12
ADDRLP4 1644
INDIRB
ASGNB 12
line 4401
;4401:				fx.mVerts[0].alpha = 255.0f;
ADDRLP4 1172+48
CNSTF4 1132396544
ASGNF4
line 4403
;4402:
;4403:				fx.mVerts[0].ST[0] = 0.0f;
ADDRLP4 1172+60
CNSTF4 0
ASGNF4
line 4404
;4404:				fx.mVerts[0].ST[1] = 1.0f;
ADDRLP4 1172+60+4
CNSTF4 1065353216
ASGNF4
line 4405
;4405:				fx.mVerts[0].destST[0] = 1.0f;
ADDRLP4 1172+68
CNSTF4 1065353216
ASGNF4
line 4406
;4406:				fx.mVerts[0].destST[1] = 1.0f;
ADDRLP4 1172+68+4
CNSTF4 1065353216
ASGNF4
line 4409
;4407:
;4408:				// new tip
;4409:				VectorCopy( rgb1, fx.mVerts[1].rgb );
ADDRLP4 1172+84+12
ADDRLP4 1644
INDIRB
ASGNB 12
line 4410
;4410:				fx.mVerts[1].alpha = 255.0f;
ADDRLP4 1172+84+48
CNSTF4 1132396544
ASGNF4
line 4412
;4411:				
;4412:				fx.mVerts[1].ST[0] = 0.0f;
ADDRLP4 1172+84+60
CNSTF4 0
ASGNF4
line 4413
;4413:				fx.mVerts[1].ST[1] = 0.0f;
ADDRLP4 1172+84+60+4
CNSTF4 0
ASGNF4
line 4414
;4414:				fx.mVerts[1].destST[0] = 1.0f;
ADDRLP4 1172+84+68
CNSTF4 1065353216
ASGNF4
line 4415
;4415:				fx.mVerts[1].destST[1] = 0.0f;
ADDRLP4 1172+84+68+4
CNSTF4 0
ASGNF4
line 4418
;4416:
;4417:				// old tip
;4418:				VectorCopy( rgb1, fx.mVerts[2].rgb );
ADDRLP4 1172+168+12
ADDRLP4 1644
INDIRB
ASGNB 12
line 4419
;4419:				fx.mVerts[2].alpha = 255.0f;
ADDRLP4 1172+168+48
CNSTF4 1132396544
ASGNF4
line 4421
;4420:
;4421:				fx.mVerts[2].ST[0] = 1.0f - oldAlpha; // NOTE: this just happens to contain the value I want
ADDRLP4 1172+168+60
CNSTF4 1065353216
ADDRLP4 1660
INDIRF4
SUBF4
ASGNF4
line 4422
;4422:				fx.mVerts[2].ST[1] = 0.0f;
ADDRLP4 1172+168+60+4
CNSTF4 0
ASGNF4
line 4423
;4423:				fx.mVerts[2].destST[0] = 1.0f + fx.mVerts[2].ST[0];
ADDRLP4 1172+168+68
ADDRLP4 1172+168+60
INDIRF4
CNSTF4 1065353216
ADDF4
ASGNF4
line 4424
;4424:				fx.mVerts[2].destST[1] = 0.0f;
ADDRLP4 1172+168+68+4
CNSTF4 0
ASGNF4
line 4427
;4425:
;4426:				// old muzzle
;4427:				VectorCopy( rgb1, fx.mVerts[3].rgb );
ADDRLP4 1172+252+12
ADDRLP4 1644
INDIRB
ASGNB 12
line 4428
;4428:				fx.mVerts[3].alpha = 255.0f;
ADDRLP4 1172+252+48
CNSTF4 1132396544
ASGNF4
line 4430
;4429:
;4430:				fx.mVerts[3].ST[0] = 1.0f - oldAlpha; // NOTE: this just happens to contain the value I want
ADDRLP4 1172+252+60
CNSTF4 1065353216
ADDRLP4 1660
INDIRF4
SUBF4
ASGNF4
line 4431
;4431:				fx.mVerts[3].ST[1] = 1.0f;
ADDRLP4 1172+252+60+4
CNSTF4 1065353216
ASGNF4
line 4432
;4432:				fx.mVerts[3].destST[0] = 1.0f + fx.mVerts[2].ST[0];
ADDRLP4 1172+252+68
ADDRLP4 1172+168+60
INDIRF4
CNSTF4 1065353216
ADDF4
ASGNF4
line 4433
;4433:				fx.mVerts[3].destST[1] = 1.0f;
ADDRLP4 1172+252+68+4
CNSTF4 1065353216
ASGNF4
line 4435
;4434:		
;4435:				fx.mShader = cgs.media.saberBlurShader;
ADDRLP4 1172+336
ADDRGP4 cgs+71064+164
INDIRI4
ASGNI4
line 4436
;4436:				fx.mSetFlags = FX_USE_ALPHA;
ADDRLP4 1172+340
CNSTI4 134217728
ASGNI4
line 4437
;4437:				fx.mKillTime = SABER_TRAIL_TIME;
ADDRLP4 1172+344
CNSTI4 40
ASGNI4
line 4439
;4438:
;4439:				trap_FX_AddPrimitive(&fx);
ADDRLP4 1172
ARGP4
ADDRGP4 trap_FX_AddPrimitive
CALLV
pop
line 4440
;4440:			}
line 4442
;4441:
;4442:			if (cent->currentState.bolt2)
ADDRFP4 0
INDIRP4
CNSTI4 144
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2273
line 4443
;4443:			{
line 4444
;4444:				float oldAlpha = 1.0f - ( diff / SABER_TRAIL_TIME );
ADDRLP4 1660
CNSTF4 1065353216
ADDRLP4 1628
INDIRF4
CNSTF4 1109393408
DIVF4
SUBF4
ASGNF4
line 4446
;4445:
;4446:				VectorCopy( otherPos, fx.mVerts[0].origin );
ADDRLP4 1172
ADDRLP4 1124
INDIRB
ASGNB 12
line 4447
;4447:				VectorMA( otherEnd, 3.0f, otherDir, fx.mVerts[1].origin );
ADDRLP4 1172+84
ADDRLP4 1524
INDIRF4
CNSTF4 1077936128
ADDRLP4 1540
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 1172+84+4
ADDRLP4 1524+4
INDIRF4
CNSTF4 1077936128
ADDRLP4 1540+4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 1172+84+8
ADDRLP4 1524+8
INDIRF4
CNSTF4 1077936128
ADDRLP4 1540+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 4449
;4448:
;4449:				VectorCopy( saberTrail->dualtip, fx.mVerts[2].origin );
ADDRLP4 1172+168
ADDRLP4 1536
INDIRP4
CNSTI4 48
ADDP4
INDIRB
ASGNB 12
line 4450
;4450:				VectorCopy( saberTrail->dualbase, fx.mVerts[3].origin );
ADDRLP4 1172+252
ADDRLP4 1536
INDIRP4
CNSTI4 36
ADDP4
INDIRB
ASGNB 12
line 4453
;4451:
;4452:				// New muzzle
;4453:				VectorCopy( rgb1, fx.mVerts[0].rgb );
ADDRLP4 1172+12
ADDRLP4 1644
INDIRB
ASGNB 12
line 4454
;4454:				fx.mVerts[0].alpha = 255.0f;
ADDRLP4 1172+48
CNSTF4 1132396544
ASGNF4
line 4456
;4455:
;4456:				fx.mVerts[0].ST[0] = 0.0f;
ADDRLP4 1172+60
CNSTF4 0
ASGNF4
line 4457
;4457:				fx.mVerts[0].ST[1] = 1.0f;
ADDRLP4 1172+60+4
CNSTF4 1065353216
ASGNF4
line 4458
;4458:				fx.mVerts[0].destST[0] = 1.0f;
ADDRLP4 1172+68
CNSTF4 1065353216
ASGNF4
line 4459
;4459:				fx.mVerts[0].destST[1] = 1.0f;
ADDRLP4 1172+68+4
CNSTF4 1065353216
ASGNF4
line 4462
;4460:
;4461:				// new tip
;4462:				VectorCopy( rgb1, fx.mVerts[1].rgb );
ADDRLP4 1172+84+12
ADDRLP4 1644
INDIRB
ASGNB 12
line 4463
;4463:				fx.mVerts[1].alpha = 255.0f;
ADDRLP4 1172+84+48
CNSTF4 1132396544
ASGNF4
line 4465
;4464:				
;4465:				fx.mVerts[1].ST[0] = 0.0f;
ADDRLP4 1172+84+60
CNSTF4 0
ASGNF4
line 4466
;4466:				fx.mVerts[1].ST[1] = 0.0f;
ADDRLP4 1172+84+60+4
CNSTF4 0
ASGNF4
line 4467
;4467:				fx.mVerts[1].destST[0] = 1.0f;
ADDRLP4 1172+84+68
CNSTF4 1065353216
ASGNF4
line 4468
;4468:				fx.mVerts[1].destST[1] = 0.0f;
ADDRLP4 1172+84+68+4
CNSTF4 0
ASGNF4
line 4471
;4469:
;4470:				// old tip
;4471:				VectorCopy( rgb1, fx.mVerts[2].rgb );
ADDRLP4 1172+168+12
ADDRLP4 1644
INDIRB
ASGNB 12
line 4472
;4472:				fx.mVerts[2].alpha = 255.0f;
ADDRLP4 1172+168+48
CNSTF4 1132396544
ASGNF4
line 4474
;4473:
;4474:				fx.mVerts[2].ST[0] = 1.0f - oldAlpha; // NOTE: this just happens to contain the value I want
ADDRLP4 1172+168+60
CNSTF4 1065353216
ADDRLP4 1660
INDIRF4
SUBF4
ASGNF4
line 4475
;4475:				fx.mVerts[2].ST[1] = 0.0f;
ADDRLP4 1172+168+60+4
CNSTF4 0
ASGNF4
line 4476
;4476:				fx.mVerts[2].destST[0] = 1.0f + fx.mVerts[2].ST[0];
ADDRLP4 1172+168+68
ADDRLP4 1172+168+60
INDIRF4
CNSTF4 1065353216
ADDF4
ASGNF4
line 4477
;4477:				fx.mVerts[2].destST[1] = 0.0f;
ADDRLP4 1172+168+68+4
CNSTF4 0
ASGNF4
line 4480
;4478:
;4479:				// old muzzle
;4480:				VectorCopy( rgb1, fx.mVerts[3].rgb );
ADDRLP4 1172+252+12
ADDRLP4 1644
INDIRB
ASGNB 12
line 4481
;4481:				fx.mVerts[3].alpha = 255.0f;
ADDRLP4 1172+252+48
CNSTF4 1132396544
ASGNF4
line 4483
;4482:
;4483:				fx.mVerts[3].ST[0] = 1.0f - oldAlpha; // NOTE: this just happens to contain the value I want
ADDRLP4 1172+252+60
CNSTF4 1065353216
ADDRLP4 1660
INDIRF4
SUBF4
ASGNF4
line 4484
;4484:				fx.mVerts[3].ST[1] = 1.0f;
ADDRLP4 1172+252+60+4
CNSTF4 1065353216
ASGNF4
line 4485
;4485:				fx.mVerts[3].destST[0] = 1.0f + fx.mVerts[2].ST[0];
ADDRLP4 1172+252+68
ADDRLP4 1172+168+60
INDIRF4
CNSTF4 1065353216
ADDF4
ASGNF4
line 4486
;4486:				fx.mVerts[3].destST[1] = 1.0f;
ADDRLP4 1172+252+68+4
CNSTF4 1065353216
ASGNF4
line 4488
;4487:		
;4488:				fx.mShader = cgs.media.saberBlurShader;
ADDRLP4 1172+336
ADDRGP4 cgs+71064+164
INDIRI4
ASGNI4
line 4489
;4489:				fx.mSetFlags = FX_USE_ALPHA;
ADDRLP4 1172+340
CNSTI4 134217728
ASGNI4
line 4490
;4490:				fx.mKillTime = SABER_TRAIL_TIME;
ADDRLP4 1172+344
CNSTI4 40
ASGNI4
line 4492
;4491:
;4492:				trap_FX_AddPrimitive(&fx);
ADDRLP4 1172
ARGP4
ADDRGP4 trap_FX_AddPrimitive
CALLV
pop
line 4493
;4493:			}
LABELV $2273
line 4494
;4494:		}
LABELV $2170
line 4497
;4495:
;4496:		// we must always do this, even if we aren't active..otherwise we won't know where to pick up from
;4497:		VectorCopy( org_, saberTrail->base );
ADDRLP4 1536
INDIRP4
CNSTI4 12
ADDP4
ADDRLP4 1088
INDIRB
ASGNB 12
line 4498
;4498:		VectorMA( end, 3.0f, axis_[0], saberTrail->tip );
ADDRLP4 1536
INDIRP4
CNSTI4 24
ADDP4
ADDRLP4 1112
INDIRF4
CNSTF4 1077936128
ADDRLP4 1136
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 1536
INDIRP4
CNSTI4 28
ADDP4
ADDRLP4 1112+4
INDIRF4
CNSTF4 1077936128
ADDRLP4 1136+4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 1536
INDIRP4
CNSTI4 32
ADDP4
ADDRLP4 1112+8
INDIRF4
CNSTF4 1077936128
ADDRLP4 1136+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 4499
;4499:		saberTrail->lastTime = cg.time;
ADDRLP4 1536
INDIRP4
CNSTI4 8
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 4501
;4500:
;4501:		if (cent->currentState.bolt2)
ADDRFP4 0
INDIRP4
CNSTI4 144
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2350
line 4502
;4502:		{
line 4503
;4503:			VectorCopy( otherPos, saberTrail->dualbase );
ADDRLP4 1536
INDIRP4
CNSTI4 36
ADDP4
ADDRLP4 1124
INDIRB
ASGNB 12
line 4504
;4504:			VectorMA( otherEnd, 3.0f, otherDir, saberTrail->dualtip );
ADDRLP4 1536
INDIRP4
CNSTI4 48
ADDP4
ADDRLP4 1524
INDIRF4
CNSTF4 1077936128
ADDRLP4 1540
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 1536
INDIRP4
CNSTI4 52
ADDP4
ADDRLP4 1524+4
INDIRF4
CNSTF4 1077936128
ADDRLP4 1540+4
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 1536
INDIRP4
CNSTI4 56
ADDP4
ADDRLP4 1524+8
INDIRF4
CNSTF4 1077936128
ADDRLP4 1540+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 4505
;4505:		}
LABELV $2350
line 4506
;4506:	}
LABELV $2167
LABELV $2166
line 4510
;4507:
;4508:JustDoIt:
;4509:
;4510:	if (client && cent->currentState.bolt2)
ADDRLP4 1084
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $2356
ADDRFP4 0
INDIRP4
CNSTI4 144
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2356
line 4511
;4511:	{
line 4512
;4512:		float sideOneLen = saberLen*dualLen;
ADDRLP4 1636
ADDRLP4 1520
INDIRF4
ADDRLP4 1556
INDIRF4
MULF4
ASGNF4
line 4513
;4513:		float sideTwoLen = dualSaberLen*dualLen;
ADDRLP4 1640
ADDRLP4 1552
INDIRF4
ADDRLP4 1556
INDIRF4
MULF4
ASGNF4
line 4515
;4514:
;4515:		if (sideOneLen < 1)
ADDRLP4 1636
INDIRF4
CNSTF4 1065353216
GEF4 $2358
line 4516
;4516:		{
line 4517
;4517:			sideOneLen = 1;
ADDRLP4 1636
CNSTF4 1065353216
ASGNF4
line 4518
;4518:		}
LABELV $2358
line 4520
;4519:		
;4520:		CG_DoSaber( org_, axis_[0], sideOneLen, scolor, renderfx );
ADDRLP4 1088
ARGP4
ADDRLP4 1136
ARGP4
ADDRLP4 1636
INDIRF4
ARGF4
ADDRLP4 1560
INDIRI4
ARGI4
ADDRFP4 12
INDIRI4
ARGI4
ADDRGP4 CG_DoSaber
CALLV
pop
line 4522
;4521:
;4522:		CG_DoSaber( otherPos, otherDir, sideTwoLen, scolor, renderfx );
ADDRLP4 1124
ARGP4
ADDRLP4 1540
ARGP4
ADDRLP4 1640
INDIRF4
ARGF4
ADDRLP4 1560
INDIRI4
ARGI4
ADDRFP4 12
INDIRI4
ARGI4
ADDRGP4 CG_DoSaber
CALLV
pop
line 4523
;4523:	}
ADDRGP4 $2357
JUMPV
LABELV $2356
line 4525
;4524:	else
;4525:	{
line 4528
;4526:		// Pass in the renderfx flags attached to the saber weapon model...this is done so that saber glows
;4527:		//	will get rendered properly in a mirror...not sure if this is necessary??
;4528:		CG_DoSaber( org_, axis_[0], saberLen, scolor, renderfx );
ADDRLP4 1088
ARGP4
ADDRLP4 1136
ARGP4
ADDRLP4 1520
INDIRF4
ARGF4
ADDRLP4 1560
INDIRI4
ARGI4
ADDRFP4 12
INDIRI4
ARGI4
ADDRGP4 CG_DoSaber
CALLV
pop
line 4529
;4529:	}
LABELV $2357
line 4530
;4530:}
LABELV $1993
endproc CG_AddSaberBlade 1672 36
export CG_IsMindTricked
proc CG_IsMindTricked 8 0
line 4533
;4531:
;4532:int CG_IsMindTricked(int trickIndex1, int trickIndex2, int trickIndex3, int trickIndex4, int client)
;4533:{
line 4535
;4534:	int checkIn;
;4535:	int sub = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 4537
;4536:
;4537:	if (cg_entities[client].currentState.forcePowersActive & (1 << FP_SEE))
CNSTI4 1920
ADDRFP4 16
INDIRI4
MULI4
ADDRGP4 cg_entities+240
ADDP4
INDIRI4
CNSTI4 16384
BANDI4
CNSTI4 0
EQI4 $2361
line 4538
;4538:	{
line 4539
;4539:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $2360
JUMPV
LABELV $2361
line 4542
;4540:	}
;4541:
;4542:	if (client > 47)
ADDRFP4 16
INDIRI4
CNSTI4 47
LEI4 $2364
line 4543
;4543:	{
line 4544
;4544:		checkIn = trickIndex4;
ADDRLP4 4
ADDRFP4 12
INDIRI4
ASGNI4
line 4545
;4545:		sub = 48;
ADDRLP4 0
CNSTI4 48
ASGNI4
line 4546
;4546:	}
ADDRGP4 $2365
JUMPV
LABELV $2364
line 4547
;4547:	else if (client > 31)
ADDRFP4 16
INDIRI4
CNSTI4 31
LEI4 $2366
line 4548
;4548:	{
line 4549
;4549:		checkIn = trickIndex3;
ADDRLP4 4
ADDRFP4 8
INDIRI4
ASGNI4
line 4550
;4550:		sub = 32;
ADDRLP4 0
CNSTI4 32
ASGNI4
line 4551
;4551:	}
ADDRGP4 $2367
JUMPV
LABELV $2366
line 4552
;4552:	else if (client > 15)
ADDRFP4 16
INDIRI4
CNSTI4 15
LEI4 $2368
line 4553
;4553:	{
line 4554
;4554:		checkIn = trickIndex2;
ADDRLP4 4
ADDRFP4 4
INDIRI4
ASGNI4
line 4555
;4555:		sub = 16;
ADDRLP4 0
CNSTI4 16
ASGNI4
line 4556
;4556:	}
ADDRGP4 $2369
JUMPV
LABELV $2368
line 4558
;4557:	else
;4558:	{
line 4559
;4559:		checkIn = trickIndex1;
ADDRLP4 4
ADDRFP4 0
INDIRI4
ASGNI4
line 4560
;4560:	}
LABELV $2369
LABELV $2367
LABELV $2365
line 4562
;4561:
;4562:	if (checkIn & (1 << (client-sub)))
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDRFP4 16
INDIRI4
ADDRLP4 0
INDIRI4
SUBI4
LSHI4
BANDI4
CNSTI4 0
EQI4 $2370
line 4563
;4563:	{
line 4564
;4564:		return 1;
CNSTI4 1
RETI4
ADDRGP4 $2360
JUMPV
LABELV $2370
line 4567
;4565:	}
;4566:	
;4567:	return 0;
CNSTI4 0
RETI4
LABELV $2360
endproc CG_IsMindTricked 8 0
export CG_DrawPlayerSphere
proc CG_DrawPlayerSphere 216 12
line 4573
;4568:}
;4569:
;4570:#define SPEED_TRAIL_DISTANCE 6
;4571:
;4572:void CG_DrawPlayerSphere(centity_t *cent, vec3_t origin, float scale, int shader)
;4573:{
line 4577
;4574:	refEntity_t ent;
;4575:	
;4576:	// Don't draw the shield when the player is dead.
;4577:	if (cent->currentState.eFlags & EF_DEAD)
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $2373
line 4578
;4578:	{
line 4579
;4579:		return;
ADDRGP4 $2372
JUMPV
LABELV $2373
line 4582
;4580:	}
;4581:
;4582:	memset( &ent, 0, sizeof( ent ) );
ADDRLP4 0
ARGP4
CNSTI4 0
ARGI4
CNSTI4 212
ARGI4
ADDRGP4 memset
CALLP4
pop
line 4584
;4583:
;4584:	VectorCopy( origin, ent.origin );
ADDRLP4 0+52
ADDRFP4 4
INDIRP4
INDIRB
ASGNB 12
line 4585
;4585:	ent.origin[2] += 9.0;
ADDRLP4 0+52+8
ADDRLP4 0+52+8
INDIRF4
CNSTF4 1091567616
ADDF4
ASGNF4
line 4587
;4586:
;4587:	VectorSubtract(cg.refdef.vieworg, ent.origin, ent.axis[0]);
ADDRLP4 0+12
ADDRGP4 cg+3616+24
INDIRF4
ADDRLP4 0+52
INDIRF4
SUBF4
ASGNF4
ADDRLP4 0+12+4
ADDRGP4 cg+3616+24+4
INDIRF4
ADDRLP4 0+52+4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 0+12+8
ADDRGP4 cg+3616+24+8
INDIRF4
ADDRLP4 0+52+8
INDIRF4
SUBF4
ASGNF4
line 4588
;4588:	if (VectorNormalize(ent.axis[0]) <= 0.1f)
ADDRLP4 0+12
ARGP4
ADDRLP4 212
ADDRGP4 VectorNormalize
CALLF4
ASGNF4
ADDRLP4 212
INDIRF4
CNSTF4 1036831949
GTF4 $2396
line 4589
;4589:	{	// Entity is right on vieworg.  quit.
line 4590
;4590:		return;
ADDRGP4 $2372
JUMPV
LABELV $2396
line 4593
;4591:	}
;4592:
;4593:	VectorCopy(cg.refdef.viewaxis[2], ent.axis[2]);
ADDRLP4 0+12+24
ADDRGP4 cg+3616+36+24
INDIRB
ASGNB 12
line 4594
;4594:	CrossProduct(ent.axis[0], ent.axis[2], ent.axis[1]);
ADDRLP4 0+12
ARGP4
ADDRLP4 0+12+24
ARGP4
ADDRLP4 0+12+12
ARGP4
ADDRGP4 CrossProduct
CALLV
pop
line 4596
;4595:
;4596:	VectorScale(ent.axis[0], scale, ent.axis[0]);
ADDRLP4 0+12
ADDRLP4 0+12
INDIRF4
ADDRFP4 8
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+4
ADDRLP4 0+12+4
INDIRF4
ADDRFP4 8
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+8
ADDRLP4 0+12+8
INDIRF4
ADDRFP4 8
INDIRF4
MULF4
ASGNF4
line 4597
;4597:	VectorScale(ent.axis[1], scale, ent.axis[1]);
ADDRLP4 0+12+12
ADDRLP4 0+12+12
INDIRF4
ADDRFP4 8
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+12+4
ADDRLP4 0+12+12+4
INDIRF4
ADDRFP4 8
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+12+8
ADDRLP4 0+12+12+8
INDIRF4
ADDRFP4 8
INDIRF4
MULF4
ASGNF4
line 4598
;4598:	VectorScale(ent.axis[2], -scale, ent.axis[2]);
ADDRLP4 0+12+24
ADDRLP4 0+12+24
INDIRF4
ADDRFP4 8
INDIRF4
NEGF4
MULF4
ASGNF4
ADDRLP4 0+12+24+4
ADDRLP4 0+12+24+4
INDIRF4
ADDRFP4 8
INDIRF4
NEGF4
MULF4
ASGNF4
ADDRLP4 0+12+24+8
ADDRLP4 0+12+24+8
INDIRF4
ADDRFP4 8
INDIRF4
NEGF4
MULF4
ASGNF4
line 4600
;4599:
;4600:	ent.hModel = cgs.media.halfShieldModel;
ADDRLP4 0+8
ADDRGP4 cgs+71064+900
INDIRI4
ASGNI4
line 4601
;4601:	ent.customShader = shader;	
ADDRLP4 0+76
ADDRFP4 12
INDIRI4
ASGNI4
line 4603
;4602:
;4603:	trap_R_AddRefEntityToScene( &ent );
ADDRLP4 0
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 4604
;4604:}
LABELV $2372
endproc CG_DrawPlayerSphere 216 12
export CG_AddLightningBeam
proc CG_AddLightningBeam 276 4
line 4607
;4605:
;4606:void CG_AddLightningBeam(vec3_t start, vec3_t end)
;4607:{
line 4616
;4608:	vec3_t	dir, chaos,
;4609:			c1, c2,
;4610:			v1, v2;
;4611:	float	len,
;4612:			s1, s2, s3;
;4613:
;4614:	addbezierArgStruct_t b;
;4615:
;4616:	VectorCopy(start, b.start);
ADDRLP4 0
ADDRFP4 0
INDIRP4
INDIRB
ASGNB 12
line 4617
;4617:	VectorCopy(end, b.end);
ADDRLP4 0+12
ADDRFP4 4
INDIRP4
INDIRB
ASGNB 12
line 4619
;4618:
;4619:	VectorSubtract( b.end, b.start, dir );
ADDRLP4 152
ADDRLP4 0+12
INDIRF4
ADDRLP4 0
INDIRF4
SUBF4
ASGNF4
ADDRLP4 152+4
ADDRLP4 0+12+4
INDIRF4
ADDRLP4 0+4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 152+8
ADDRLP4 0+12+8
INDIRF4
ADDRLP4 0+8
INDIRF4
SUBF4
ASGNF4
line 4620
;4620:	len = VectorNormalize( dir );
ADDRLP4 152
ARGP4
ADDRLP4 224
ADDRGP4 VectorNormalize
CALLF4
ASGNF4
ADDRLP4 148
ADDRLP4 224
INDIRF4
ASGNF4
line 4623
;4621:
;4622:	// Get the base control points, we'll work from there
;4623:	VectorMA( b.start, 0.3333f * len, dir, c1 );
ADDRLP4 228
CNSTF4 1051371084
ADDRLP4 148
INDIRF4
MULF4
ASGNF4
ADDRLP4 164
ADDRLP4 0
INDIRF4
ADDRLP4 152
INDIRF4
ADDRLP4 228
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 164+4
ADDRLP4 0+4
INDIRF4
ADDRLP4 152+4
INDIRF4
ADDRLP4 228
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 164+8
ADDRLP4 0+8
INDIRF4
ADDRLP4 152+8
INDIRF4
CNSTF4 1051371084
ADDRLP4 148
INDIRF4
MULF4
MULF4
ADDF4
ASGNF4
line 4624
;4624:	VectorMA( b.start, 0.6666f * len, dir, c2 );
ADDRLP4 232
CNSTF4 1059759692
ADDRLP4 148
INDIRF4
MULF4
ASGNF4
ADDRLP4 176
ADDRLP4 0
INDIRF4
ADDRLP4 152
INDIRF4
ADDRLP4 232
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 176+4
ADDRLP4 0+4
INDIRF4
ADDRLP4 152+4
INDIRF4
ADDRLP4 232
INDIRF4
MULF4
ADDF4
ASGNF4
ADDRLP4 176+8
ADDRLP4 0+8
INDIRF4
ADDRLP4 152+8
INDIRF4
CNSTF4 1059759692
ADDRLP4 148
INDIRF4
MULF4
MULF4
ADDF4
ASGNF4
line 4627
;4625:
;4626:	// get some chaos values that really aren't very chaotic :)
;4627:	s1 = sin( cg.time * 0.005f ) * 2 + crandom() * 0.2f;
CNSTF4 1000593162
ADDRGP4 cg+64
INDIRI4
CVIF4 4
MULF4
ARGF4
ADDRLP4 236
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 240
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 188
CNSTF4 1073741824
ADDRLP4 236
INDIRF4
MULF4
CNSTF4 1045220557
CNSTF4 1073741824
ADDRLP4 240
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
CNSTF4 1056964608
SUBF4
MULF4
MULF4
ADDF4
ASGNF4
line 4628
;4628:	s2 = sin( cg.time * 0.001f );
CNSTF4 981668463
ADDRGP4 cg+64
INDIRI4
CVIF4 4
MULF4
ARGF4
ADDRLP4 244
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 192
ADDRLP4 244
INDIRF4
ASGNF4
line 4629
;4629:	s3 = sin( cg.time * 0.011f );
CNSTF4 1010055512
ADDRGP4 cg+64
INDIRI4
CVIF4 4
MULF4
ARGF4
ADDRLP4 248
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 196
ADDRLP4 248
INDIRF4
ASGNF4
line 4631
;4630:
;4631:	VectorSet( chaos, len * 0.01f * s1,
ADDRLP4 136
CNSTF4 1008981770
ADDRLP4 148
INDIRF4
MULF4
ADDRLP4 188
INDIRF4
MULF4
ASGNF4
ADDRLP4 136+4
CNSTF4 1017370378
ADDRLP4 148
INDIRF4
MULF4
ADDRLP4 192
INDIRF4
MULF4
ASGNF4
ADDRLP4 136+8
CNSTF4 1025758986
ADDRLP4 148
INDIRF4
MULF4
ADDRLP4 188
INDIRF4
ADDRLP4 192
INDIRF4
ADDF4
ADDRLP4 196
INDIRF4
ADDF4
MULF4
ASGNF4
line 4635
;4632:						len * 0.02f * s2,
;4633:						len * 0.04f * (s1 + s2 + s3));
;4634:
;4635:	VectorAdd( c1, chaos, c1 );
ADDRLP4 164
ADDRLP4 164
INDIRF4
ADDRLP4 136
INDIRF4
ADDF4
ASGNF4
ADDRLP4 164+4
ADDRLP4 164+4
INDIRF4
ADDRLP4 136+4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 164+8
ADDRLP4 164+8
INDIRF4
ADDRLP4 136+8
INDIRF4
ADDF4
ASGNF4
line 4636
;4636:	VectorScale( chaos, 4.0f, v1 );
ADDRLP4 256
CNSTF4 1082130432
ASGNF4
ADDRLP4 200
ADDRLP4 256
INDIRF4
ADDRLP4 136
INDIRF4
MULF4
ASGNF4
ADDRLP4 200+4
ADDRLP4 256
INDIRF4
ADDRLP4 136+4
INDIRF4
MULF4
ASGNF4
ADDRLP4 200+8
CNSTF4 1082130432
ADDRLP4 136+8
INDIRF4
MULF4
ASGNF4
line 4638
;4637:
;4638:	VectorSet( chaos, -len * 0.02f * s3,
ADDRLP4 136
CNSTF4 1017370378
ADDRLP4 148
INDIRF4
NEGF4
MULF4
ADDRLP4 196
INDIRF4
MULF4
ASGNF4
ADDRLP4 136+4
CNSTF4 1008981770
ADDRLP4 148
INDIRF4
MULF4
ADDRLP4 188
INDIRF4
ADDRLP4 192
INDIRF4
MULF4
MULF4
ASGNF4
ADDRLP4 136+8
CNSTF4 1017370378
ADDRLP4 148
INDIRF4
NEGF4
MULF4
ADDRLP4 188
INDIRF4
ADDRLP4 192
INDIRF4
ADDRLP4 196
INDIRF4
MULF4
ADDF4
MULF4
ASGNF4
line 4642
;4639:						len * 0.01f * (s1 * s2),
;4640:						-len * 0.02f * (s1 + s2 * s3));
;4641:
;4642:	VectorAdd( c2, chaos, c2 );
ADDRLP4 176
ADDRLP4 176
INDIRF4
ADDRLP4 136
INDIRF4
ADDF4
ASGNF4
ADDRLP4 176+4
ADDRLP4 176+4
INDIRF4
ADDRLP4 136+4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 176+8
ADDRLP4 176+8
INDIRF4
ADDRLP4 136+8
INDIRF4
ADDF4
ASGNF4
line 4643
;4643:	VectorScale( chaos, 2.0f, v2 );
ADDRLP4 264
CNSTF4 1073741824
ASGNF4
ADDRLP4 212
ADDRLP4 264
INDIRF4
ADDRLP4 136
INDIRF4
MULF4
ASGNF4
ADDRLP4 212+4
ADDRLP4 264
INDIRF4
ADDRLP4 136+4
INDIRF4
MULF4
ASGNF4
ADDRLP4 212+8
CNSTF4 1073741824
ADDRLP4 136+8
INDIRF4
MULF4
ASGNF4
line 4645
;4644:
;4645:	VectorSet( chaos, 1.0f, 1.0f, 1.0f );
ADDRLP4 268
CNSTF4 1065353216
ASGNF4
ADDRLP4 136
ADDRLP4 268
INDIRF4
ASGNF4
ADDRLP4 136+4
ADDRLP4 268
INDIRF4
ASGNF4
ADDRLP4 136+8
CNSTF4 1065353216
ASGNF4
line 4647
;4646:
;4647:	VectorCopy(c1, b.control1);
ADDRLP4 0+24
ADDRLP4 164
INDIRB
ASGNB 12
line 4648
;4648:	VectorCopy(vec3_origin, b.control1Vel);
ADDRLP4 0+36
ADDRGP4 vec3_origin
INDIRB
ASGNB 12
line 4649
;4649:	VectorCopy(c2, b.control2);
ADDRLP4 0+48
ADDRLP4 176
INDIRB
ASGNB 12
line 4650
;4650:	VectorCopy(vec3_origin, b.control2Vel);
ADDRLP4 0+60
ADDRGP4 vec3_origin
INDIRB
ASGNB 12
line 4652
;4651:
;4652:	b.size1 = 6.0f;
ADDRLP4 0+72
CNSTF4 1086324736
ASGNF4
line 4653
;4653:	b.size2 = 6.0f;
ADDRLP4 0+76
CNSTF4 1086324736
ASGNF4
line 4654
;4654:	b.sizeParm = 0.0f;
ADDRLP4 0+80
CNSTF4 0
ASGNF4
line 4655
;4655:	b.alpha1 = 0.0f;
ADDRLP4 0+84
CNSTF4 0
ASGNF4
line 4656
;4656:	b.alpha2 = 0.2f;
ADDRLP4 0+88
CNSTF4 1045220557
ASGNF4
line 4657
;4657:	b.alphaParm = 0.5f;
ADDRLP4 0+92
CNSTF4 1056964608
ASGNF4
line 4664
;4658:	
;4659:	/*
;4660:	VectorCopy(WHITE, b.sRGB);
;4661:	VectorCopy(WHITE, b.eRGB);
;4662:	*/
;4663:
;4664:	b.sRGB[0] = 255;
ADDRLP4 0+96
CNSTF4 1132396544
ASGNF4
line 4665
;4665:	b.sRGB[1] = 255;
ADDRLP4 0+96+4
CNSTF4 1132396544
ASGNF4
line 4666
;4666:	b.sRGB[2] = 255;
ADDRLP4 0+96+8
CNSTF4 1132396544
ASGNF4
line 4667
;4667:	VectorCopy(b.sRGB, b.eRGB);
ADDRLP4 0+108
ADDRLP4 0+96
INDIRB
ASGNB 12
line 4669
;4668:
;4669:	b.rgbParm = 0.0f;
ADDRLP4 0+120
CNSTF4 0
ASGNF4
line 4670
;4670:	b.killTime = 50;
ADDRLP4 0+124
CNSTI4 50
ASGNI4
line 4671
;4671:	b.shader = trap_R_RegisterShader( "gfx/misc/electric2" );
ADDRGP4 $2527
ARGP4
ADDRLP4 272
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRLP4 0+128
ADDRLP4 272
INDIRI4
ASGNI4
line 4672
;4672:	b.flags = 0x00000001; //FX_ALPHA_LINEAR
ADDRLP4 0+132
CNSTI4 1
ASGNI4
line 4674
;4673:
;4674:	trap_FX_AddBezier(&b);
ADDRLP4 0
ARGP4
ADDRGP4 trap_FX_AddBezier
CALLV
pop
line 4675
;4675:}
LABELV $2455
endproc CG_AddLightningBeam 276 4
export CG_AddRandomLightning
proc CG_AddRandomLightning 44 8
line 4678
;4676:
;4677:void CG_AddRandomLightning(vec3_t start, vec3_t end)
;4678:{
line 4681
;4679:	vec3_t inOrg, outOrg;
;4680:
;4681:	VectorCopy(start, inOrg);
ADDRLP4 0
ADDRFP4 0
INDIRP4
INDIRB
ASGNB 12
line 4682
;4682:	VectorCopy(end, outOrg);
ADDRLP4 12
ADDRFP4 4
INDIRP4
INDIRB
ASGNB 12
line 4684
;4683:
;4684:	if ( rand() & 1 )
ADDRLP4 24
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 24
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $2530
line 4685
;4685:	{
line 4686
;4686:		outOrg[0] += Q_irand(0, 24);
CNSTI4 0
ARGI4
CNSTI4 24
ARGI4
ADDRLP4 28
ADDRGP4 Q_irand
CALLI4
ASGNI4
ADDRLP4 12
ADDRLP4 12
INDIRF4
ADDRLP4 28
INDIRI4
CVIF4 4
ADDF4
ASGNF4
line 4687
;4687:		inOrg[0] += Q_irand(0, 8);
CNSTI4 0
ARGI4
CNSTI4 8
ARGI4
ADDRLP4 32
ADDRGP4 Q_irand
CALLI4
ASGNI4
ADDRLP4 0
ADDRLP4 0
INDIRF4
ADDRLP4 32
INDIRI4
CVIF4 4
ADDF4
ASGNF4
line 4688
;4688:	}
ADDRGP4 $2531
JUMPV
LABELV $2530
line 4690
;4689:	else
;4690:	{
line 4691
;4691:		outOrg[0] -= Q_irand(0, 24);
CNSTI4 0
ARGI4
CNSTI4 24
ARGI4
ADDRLP4 28
ADDRGP4 Q_irand
CALLI4
ASGNI4
ADDRLP4 12
ADDRLP4 12
INDIRF4
ADDRLP4 28
INDIRI4
CVIF4 4
SUBF4
ASGNF4
line 4692
;4692:		inOrg[0] -= Q_irand(0, 8);
CNSTI4 0
ARGI4
CNSTI4 8
ARGI4
ADDRLP4 32
ADDRGP4 Q_irand
CALLI4
ASGNI4
ADDRLP4 0
ADDRLP4 0
INDIRF4
ADDRLP4 32
INDIRI4
CVIF4 4
SUBF4
ASGNF4
line 4693
;4693:	}
LABELV $2531
line 4695
;4694:
;4695:	if ( rand() & 1 )
ADDRLP4 28
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 28
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $2532
line 4696
;4696:	{
line 4697
;4697:		outOrg[1] += Q_irand(0, 24);
CNSTI4 0
ARGI4
CNSTI4 24
ARGI4
ADDRLP4 32
ADDRGP4 Q_irand
CALLI4
ASGNI4
ADDRLP4 12+4
ADDRLP4 12+4
INDIRF4
ADDRLP4 32
INDIRI4
CVIF4 4
ADDF4
ASGNF4
line 4698
;4698:		inOrg[1] += Q_irand(0, 8);
CNSTI4 0
ARGI4
CNSTI4 8
ARGI4
ADDRLP4 36
ADDRGP4 Q_irand
CALLI4
ASGNI4
ADDRLP4 0+4
ADDRLP4 0+4
INDIRF4
ADDRLP4 36
INDIRI4
CVIF4 4
ADDF4
ASGNF4
line 4699
;4699:	}
ADDRGP4 $2533
JUMPV
LABELV $2532
line 4701
;4700:	else
;4701:	{
line 4702
;4702:		outOrg[1] -= Q_irand(0, 24);
CNSTI4 0
ARGI4
CNSTI4 24
ARGI4
ADDRLP4 32
ADDRGP4 Q_irand
CALLI4
ASGNI4
ADDRLP4 12+4
ADDRLP4 12+4
INDIRF4
ADDRLP4 32
INDIRI4
CVIF4 4
SUBF4
ASGNF4
line 4703
;4703:		inOrg[1] -= Q_irand(0, 8);
CNSTI4 0
ARGI4
CNSTI4 8
ARGI4
ADDRLP4 36
ADDRGP4 Q_irand
CALLI4
ASGNI4
ADDRLP4 0+4
ADDRLP4 0+4
INDIRF4
ADDRLP4 36
INDIRI4
CVIF4 4
SUBF4
ASGNF4
line 4704
;4704:	}
LABELV $2533
line 4706
;4705:
;4706:	if ( rand() & 1 )
ADDRLP4 32
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 32
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $2538
line 4707
;4707:	{
line 4708
;4708:		outOrg[2] += Q_irand(0, 50);
CNSTI4 0
ARGI4
CNSTI4 50
ARGI4
ADDRLP4 36
ADDRGP4 Q_irand
CALLI4
ASGNI4
ADDRLP4 12+8
ADDRLP4 12+8
INDIRF4
ADDRLP4 36
INDIRI4
CVIF4 4
ADDF4
ASGNF4
line 4709
;4709:		inOrg[2] += Q_irand(0, 40);
CNSTI4 0
ARGI4
CNSTI4 40
ARGI4
ADDRLP4 40
ADDRGP4 Q_irand
CALLI4
ASGNI4
ADDRLP4 0+8
ADDRLP4 0+8
INDIRF4
ADDRLP4 40
INDIRI4
CVIF4 4
ADDF4
ASGNF4
line 4710
;4710:	}
ADDRGP4 $2539
JUMPV
LABELV $2538
line 4712
;4711:	else
;4712:	{
line 4713
;4713:		outOrg[2] -= Q_irand(0, 64);
CNSTI4 0
ARGI4
CNSTI4 64
ARGI4
ADDRLP4 36
ADDRGP4 Q_irand
CALLI4
ASGNI4
ADDRLP4 12+8
ADDRLP4 12+8
INDIRF4
ADDRLP4 36
INDIRI4
CVIF4 4
SUBF4
ASGNF4
line 4714
;4714:		inOrg[2] -= Q_irand(0, 40);
CNSTI4 0
ARGI4
CNSTI4 40
ARGI4
ADDRLP4 40
ADDRGP4 Q_irand
CALLI4
ASGNI4
ADDRLP4 0+8
ADDRLP4 0+8
INDIRF4
ADDRLP4 40
INDIRI4
CVIF4 4
SUBF4
ASGNF4
line 4715
;4715:	}
LABELV $2539
line 4717
;4716:
;4717:	CG_AddLightningBeam(inOrg, outOrg);
ADDRLP4 0
ARGP4
ADDRLP4 12
ARGP4
ADDRGP4 CG_AddLightningBeam
CALLV
pop
line 4718
;4718:}
LABELV $2529
endproc CG_AddRandomLightning 44 8
export CG_ThereIsAMaster
proc CG_ThereIsAMaster 12 0
line 4723
;4719:
;4720:extern char *forceHolocronModels[];
;4721:
;4722:qboolean CG_ThereIsAMaster(void)
;4723:{
line 4724
;4724:	int i = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $2546
JUMPV
LABELV $2545
line 4728
;4725:	centity_t *cent;
;4726:
;4727:	while (i < MAX_CLIENTS)
;4728:	{
line 4729
;4729:		cent = &cg_entities[i];
ADDRLP4 4
CNSTI4 1920
ADDRLP4 0
INDIRI4
MULI4
ADDRGP4 cg_entities
ADDP4
ASGNP4
line 4731
;4730:
;4731:		if (cent && cent->currentState.isJediMaster)
ADDRLP4 4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $2548
ADDRLP4 4
INDIRP4
CNSTI4 244
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2548
line 4732
;4732:		{
line 4733
;4733:			return qtrue;
CNSTI4 1
RETI4
ADDRGP4 $2544
JUMPV
LABELV $2548
line 4736
;4734:		}
;4735:
;4736:		i++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 4737
;4737:	}
LABELV $2546
line 4727
ADDRLP4 0
INDIRI4
CNSTI4 32
LTI4 $2545
line 4739
;4738:
;4739:	return qfalse;
CNSTI4 0
RETI4
LABELV $2544
endproc CG_ThereIsAMaster 12 0
export CG_FootStepGeneric
proc CG_FootStepGeneric 20 16
line 4744
;4740:}
;4741:
;4742://rww - here begins the majority of my g2animent stuff.
;4743:void CG_FootStepGeneric(centity_t *cent, int anim)
;4744:{
line 4747
;4745:	int groundType;
;4746:
;4747:	if ((anim & ~ANIM_TOGGLEBIT) == BOTH_WALL_RUN_RIGHT ||
ADDRLP4 4
ADDRFP4 4
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 915
EQI4 $2553
ADDRLP4 4
INDIRI4
CNSTI4 918
NEI4 $2551
LABELV $2553
line 4749
;4748:		(anim & ~ANIM_TOGGLEBIT) == BOTH_WALL_RUN_LEFT)
;4749:	{
line 4750
;4750:		groundType = FOOTSTEP_GENERIC;
ADDRLP4 0
CNSTI4 1
ASGNI4
line 4751
;4751:		goto skipCheck;
ADDRGP4 $2554
JUMPV
LABELV $2551
line 4754
;4752:	}
;4753:
;4754:	if (cent->currentState.groundEntityNum == ENTITYNUM_NONE)
ADDRFP4 0
INDIRP4
CNSTI4 192
ADDP4
INDIRI4
CNSTI4 1023
NEI4 $2555
line 4755
;4755:	{
line 4756
;4756:		return;
ADDRGP4 $2550
JUMPV
LABELV $2555
LABELV $2554
line 4760
;4757:	}
;4758:
;4759:skipCheck:
;4760:	groundType = FOOTSTEP_GENERIC;//CG_FootstepForSurface(cent, cent->currentState.number);
ADDRLP4 0
CNSTI4 1
ASGNI4
line 4764
;4761:
;4762://skipCheck:
;4763:
;4764:	if (!groundType)
ADDRLP4 0
INDIRI4
CNSTI4 0
NEI4 $2557
line 4765
;4765:	{
line 4766
;4766:		return;
ADDRGP4 $2550
JUMPV
LABELV $2557
line 4769
;4767:	}
;4768:
;4769:	switch (groundType)
ADDRLP4 0
INDIRI4
CNSTI4 1
EQI4 $2561
ADDRLP4 0
INDIRI4
CNSTI4 2
EQI4 $2564
ADDRGP4 $2560
JUMPV
line 4770
;4770:	{
LABELV $2561
line 4772
;4771:	case FOOTSTEP_GENERIC:
;4772:		trap_S_StartSound (NULL, cent->currentState.number, CHAN_BODY, 
ADDRLP4 12
ADDRGP4 rand
CALLI4
ASGNI4
CNSTP4 0
ARGP4
ADDRFP4 0
INDIRP4
INDIRI4
ARGI4
CNSTI4 5
ARGI4
ADDRLP4 12
INDIRI4
CNSTI4 3
BANDI4
CNSTI4 2
LSHI4
ADDRGP4 cgs+71064+604
ADDP4
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
line 4774
;4773:			cgs.media.footsteps[ FOOTSTEP_NORMAL ][rand()&3] );
;4774:		break;
ADDRGP4 $2560
JUMPV
LABELV $2564
line 4776
;4775:	case FOOTSTEP_METAL:
;4776:		trap_S_StartSound (NULL, cent->currentState.number, CHAN_BODY, 
ADDRLP4 16
ADDRGP4 rand
CALLI4
ASGNI4
CNSTP4 0
ARGP4
ADDRFP4 0
INDIRP4
INDIRI4
ARGI4
CNSTI4 5
ARGI4
ADDRLP4 16
INDIRI4
CNSTI4 3
BANDI4
CNSTI4 2
LSHI4
ADDRGP4 cgs+71064+604+32
ADDP4
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
line 4778
;4777:			cgs.media.footsteps[ FOOTSTEP_METAL ][rand()&3] );
;4778:		break;
line 4780
;4779:	default:
;4780:		break;
LABELV $2560
line 4782
;4781:	}
;4782:}
LABELV $2550
endproc CG_FootStepGeneric 20 16
proc CG_G2EntSetLerpFrameAnimation 64 40
line 4784
;4783:
;4784:static void CG_G2EntSetLerpFrameAnimation( centity_t *cent, lerpFrame_t *lf, int newAnimation, float animSpeedMult, qboolean torsoOnly) {
line 4787
;4785:	animation_t	*anim;
;4786:	float animSpeed;
;4787:	int	  flags=BONE_ANIM_OVERRIDE_FREEZE;
ADDRLP4 4
CNSTI4 72
ASGNI4
line 4788
;4788:	int oldAnim = -1;
ADDRLP4 8
CNSTI4 -1
ASGNI4
line 4789
;4789:	int blendTime = 150;
ADDRLP4 16
CNSTI4 150
ASGNI4
line 4791
;4790:
;4791:	if (cent->currentState.number < MAX_CLIENTS &&
ADDRLP4 20
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
INDIRI4
CNSTI4 32
GEI4 $2569
ADDRLP4 24
CNSTI4 0
ASGNI4
ADDRLP4 20
INDIRP4
CNSTI4 264
ADDP4
INDIRI4
ADDRLP4 24
INDIRI4
EQI4 $2569
ADDRLP4 20
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
ADDRLP4 24
INDIRI4
NEI4 $2569
line 4794
;4792:		cent->currentState.teamowner &&
;4793:		!cent->isATST)
;4794:	{
line 4795
;4795:		return;
ADDRGP4 $2568
JUMPV
LABELV $2569
line 4798
;4796:	}
;4797:
;4798:	oldAnim = lf->animationNumber;
ADDRLP4 8
ADDRFP4 4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ASGNI4
line 4800
;4799:
;4800:	lf->animationNumber = newAnimation;
ADDRFP4 4
INDIRP4
CNSTI4 40
ADDP4
ADDRFP4 8
INDIRI4
ASGNI4
line 4801
;4801:	newAnimation &= ~ANIM_TOGGLEBIT;
ADDRFP4 8
ADDRFP4 8
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
line 4803
;4802:
;4803:	if ( newAnimation < 0 || newAnimation >= MAX_TOTALANIMATIONS ) {
ADDRLP4 28
ADDRFP4 8
INDIRI4
ASGNI4
ADDRLP4 28
INDIRI4
CNSTI4 0
LTI4 $2573
ADDRLP4 28
INDIRI4
CNSTI4 1211
LTI4 $2571
LABELV $2573
line 4805
;4804://		CG_Error( "Bad animation number: %i", newAnimation );
;4805:		return;
ADDRGP4 $2568
JUMPV
LABELV $2571
line 4808
;4806:	}
;4807:
;4808:	anim = &bgGlobalAnimations[ newAnimation ];
ADDRLP4 0
CNSTI4 28
ADDRFP4 8
INDIRI4
MULI4
ADDRGP4 bgGlobalAnimations
ADDP4
ASGNP4
line 4810
;4809:
;4810:	lf->animation = anim;
ADDRFP4 4
INDIRP4
CNSTI4 44
ADDP4
ADDRLP4 0
INDIRP4
ASGNP4
line 4811
;4811:	lf->animationTime = lf->frameTime + anim->initialLerp;
ADDRLP4 32
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 32
INDIRP4
CNSTI4 48
ADDP4
ADDRLP4 32
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 16
ADDP4
INDIRI4
ADDI4
ASGNI4
line 4813
;4812:
;4813:	if ( cg_debugAnim.integer && (cg_debugAnim.integer < 0 || cg_debugAnim.integer == cent->currentState.clientNum) ) {
ADDRLP4 36
CNSTI4 0
ASGNI4
ADDRGP4 cg_debugAnim+12
INDIRI4
ADDRLP4 36
INDIRI4
EQI4 $2574
ADDRGP4 cg_debugAnim+12
INDIRI4
ADDRLP4 36
INDIRI4
LTI4 $2579
ADDRGP4 cg_debugAnim+12
INDIRI4
ADDRFP4 0
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
NEI4 $2574
LABELV $2579
line 4814
;4814:		CG_Printf( "%d: %d Anim: %i, '%s'\n", cg.time, cent->currentState.clientNum, newAnimation, GetStringForID(animTable, newAnimation));
ADDRGP4 animTable
ARGP4
ADDRFP4 8
INDIRI4
ARGI4
ADDRLP4 40
ADDRGP4 GetStringForID
CALLP4
ASGNP4
ADDRGP4 $756
ARGP4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRFP4 0
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
ARGI4
ADDRFP4 8
INDIRI4
ARGI4
ADDRLP4 40
INDIRP4
ARGP4
ADDRGP4 CG_Printf
CALLV
pop
line 4815
;4815:	}
LABELV $2574
line 4817
;4816:
;4817:	if (cent->ghoul2)
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $2581
line 4818
;4818:	{
line 4819
;4819:		animSpeed = 50.0f / anim->frameLerp;
ADDRLP4 12
CNSTF4 1112014848
ADDRLP4 0
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CVIF4 4
DIVF4
ASGNF4
line 4820
;4820:		if (lf->animation->loopFrames != -1)
ADDRFP4 4
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 -1
EQI4 $2583
line 4821
;4821:		{
line 4822
;4822:			flags = BONE_ANIM_OVERRIDE_LOOP;
ADDRLP4 4
CNSTI4 16
ASGNI4
line 4823
;4823:		}
LABELV $2583
line 4825
;4824:
;4825:		if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2585
line 4826
;4826:		{
line 4827
;4827:			if (animSpeed < 0.3)
ADDRLP4 12
INDIRF4
CNSTF4 1050253722
GEF4 $2587
line 4828
;4828:			{
line 4829
;4829:				animSpeed = 0.3;
ADDRLP4 12
CNSTF4 1050253722
ASGNF4
line 4830
;4830:			}
LABELV $2587
line 4832
;4831:
;4832:			if (newAnimation == BOTH_WALKBACK1)
ADDRFP4 8
INDIRI4
CNSTI4 852
NEI4 $2589
line 4833
;4833:			{
line 4834
;4834:				animSpeed = 0.8;
ADDRLP4 12
CNSTF4 1061997773
ASGNF4
line 4835
;4835:			}
LABELV $2589
line 4837
;4836:
;4837:			if (newAnimation != BOTH_DEATH1)
ADDRFP4 8
INDIRI4
CNSTI4 1
EQI4 $2591
line 4838
;4838:			{
line 4839
;4839:				flags = BONE_ANIM_OVERRIDE_LOOP;
ADDRLP4 4
CNSTI4 16
ASGNI4
line 4840
;4840:			}
LABELV $2591
line 4841
;4841:		}
LABELV $2585
line 4843
;4842:
;4843:		if (cg_animBlend.integer)
ADDRGP4 cg_animBlend+12
INDIRI4
CNSTI4 0
EQI4 $2593
line 4844
;4844:		{
line 4845
;4845:			flags |= BONE_ANIM_BLEND;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 128
BORI4
ASGNI4
line 4846
;4846:		}
LABELV $2593
line 4848
;4847:
;4848:		if (!cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
NEI4 $2596
line 4849
;4849:		{
line 4850
;4850:			if (/*BG_FlippingAnim(newAnimation) ||*/ BG_InDeathAnim(newAnimation))
ADDRFP4 8
INDIRI4
ARGI4
ADDRLP4 40
ADDRGP4 BG_InDeathAnim
CALLI4
ASGNI4
ADDRLP4 40
INDIRI4
CNSTI4 0
EQI4 $2598
line 4851
;4851:			{
line 4852
;4852:				flags &= ~BONE_ANIM_BLEND;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 -129
BANDI4
ASGNI4
line 4853
;4853:			}
ADDRGP4 $2599
JUMPV
LABELV $2598
line 4854
;4854:			else if ( oldAnim != -1 &&
ADDRLP4 44
ADDRLP4 8
INDIRI4
ASGNI4
ADDRLP4 44
INDIRI4
CNSTI4 -1
EQI4 $2600
ADDRLP4 44
INDIRI4
ARGI4
ADDRLP4 48
ADDRGP4 BG_InDeathAnim
CALLI4
ASGNI4
ADDRLP4 48
INDIRI4
CNSTI4 0
EQI4 $2600
line 4856
;4855:				(/*BG_FlippingAnim(oldAnim) ||*/ BG_InDeathAnim(oldAnim)) )
;4856:			{
line 4857
;4857:				flags &= ~BONE_ANIM_BLEND;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 -129
BANDI4
ASGNI4
line 4858
;4858:			}
LABELV $2600
LABELV $2599
line 4860
;4859:
;4860:			if (flags & BONE_ANIM_BLEND)
ADDRLP4 4
INDIRI4
CNSTI4 128
BANDI4
CNSTI4 0
EQI4 $2602
line 4861
;4861:			{
line 4862
;4862:				if (BG_FlippingAnim(newAnimation))
ADDRFP4 8
INDIRI4
ARGI4
ADDRLP4 52
ADDRGP4 BG_FlippingAnim
CALLI4
ASGNI4
ADDRLP4 52
INDIRI4
CNSTI4 0
EQI4 $2604
line 4863
;4863:				{
line 4864
;4864:					blendTime = 200;
ADDRLP4 16
CNSTI4 200
ASGNI4
line 4865
;4865:				}
ADDRGP4 $2605
JUMPV
LABELV $2604
line 4866
;4866:				else if ( oldAnim != -1 &&
ADDRLP4 56
ADDRLP4 8
INDIRI4
ASGNI4
ADDRLP4 56
INDIRI4
CNSTI4 -1
EQI4 $2606
ADDRLP4 56
INDIRI4
ARGI4
ADDRLP4 60
ADDRGP4 BG_FlippingAnim
CALLI4
ASGNI4
ADDRLP4 60
INDIRI4
CNSTI4 0
EQI4 $2606
line 4868
;4867:					(BG_FlippingAnim(oldAnim)) )
;4868:				{
line 4869
;4869:					blendTime = 200;
ADDRLP4 16
CNSTI4 200
ASGNI4
line 4870
;4870:				}
LABELV $2606
LABELV $2605
line 4871
;4871:			}
LABELV $2602
line 4872
;4872:		}
LABELV $2596
line 4874
;4873:
;4874:		animSpeed *= animSpeedMult;
ADDRLP4 12
ADDRLP4 12
INDIRF4
ADDRFP4 12
INDIRF4
MULF4
ASGNF4
line 4876
;4875:
;4876:		if (torsoOnly)
ADDRFP4 16
INDIRI4
CNSTI4 0
EQI4 $2608
line 4877
;4877:		{
line 4878
;4878:			lf->animationTorsoSpeed = animSpeedMult;
ADDRFP4 4
INDIRP4
CNSTI4 56
ADDP4
ADDRFP4 12
INDIRF4
ASGNF4
line 4879
;4879:		}
ADDRGP4 $2609
JUMPV
LABELV $2608
line 4881
;4880:		else
;4881:		{
line 4882
;4882:			lf->animationSpeed = animSpeedMult;
ADDRFP4 4
INDIRP4
CNSTI4 52
ADDP4
ADDRFP4 12
INDIRF4
ASGNF4
line 4883
;4883:		}
LABELV $2609
line 4885
;4884:
;4885:		if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2610
line 4886
;4886:		{
line 4887
;4887:			int atstBlend = 400;
ADDRLP4 40
CNSTI4 400
ASGNI4
line 4889
;4888:
;4889:			if (torsoOnly)
ADDRFP4 16
INDIRI4
CNSTI4 0
EQI4 $2612
line 4890
;4890:			{
line 4891
;4891:				trap_G2API_SetBoneAnim(cent->ghoul2, 0, "pelvis", anim->firstFrame, anim->firstFrame + anim->numFrames, flags, animSpeed, cg.time, -1, atstBlend);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $306
ARGP4
ADDRLP4 48
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 48
INDIRI4
ARGI4
ADDRLP4 48
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ARGI4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 12
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
ADDRLP4 40
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 4892
;4892:			}
ADDRGP4 $2611
JUMPV
LABELV $2612
line 4894
;4893:			else
;4894:			{
line 4895
;4895:				trap_G2API_SetBoneAnim(cent->ghoul2, 0, "model_root", anim->firstFrame, anim->firstFrame + anim->numFrames, flags, animSpeed, cg.time, -1, atstBlend);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $310
ARGP4
ADDRLP4 48
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 48
INDIRI4
ARGI4
ADDRLP4 48
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ARGI4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 12
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
ADDRLP4 40
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 4896
;4896:			}
line 4897
;4897:		}
ADDRGP4 $2611
JUMPV
LABELV $2610
line 4899
;4898:		else
;4899:		{
line 4900
;4900:			if (torsoOnly)
ADDRFP4 16
INDIRI4
CNSTI4 0
EQI4 $2616
line 4901
;4901:			{
line 4902
;4902:				trap_G2API_SetBoneAnim(cent->ghoul2, 0, "upper_lumbar", anim->firstFrame, anim->firstFrame + anim->numFrames, flags, animSpeed,cg.time, -1, blendTime);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $314
ARGP4
ADDRLP4 44
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 44
INDIRI4
ARGI4
ADDRLP4 44
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ARGI4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 12
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
ADDRLP4 16
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 4903
;4903:			}
ADDRGP4 $2617
JUMPV
LABELV $2616
line 4905
;4904:			else
;4905:			{
line 4906
;4906:				trap_G2API_SetBoneAnim(cent->ghoul2, 0, "model_root", anim->firstFrame, anim->firstFrame + anim->numFrames, flags, animSpeed, cg.time, -1, blendTime);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $310
ARGP4
ADDRLP4 44
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 44
INDIRI4
ARGI4
ADDRLP4 44
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ARGI4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 12
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
ADDRLP4 16
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 4907
;4907:			}
LABELV $2617
line 4923
;4908:
;4909:			/*
;4910:			if ((cent->currentState.torsoAnim&~ANIM_TOGGLEBIT) == newAnimation &&
;4911:				!BG_FlippingAnim( cent->currentState.legsAnim ) &&
;4912:				!BG_SpinningSaberAnim( cent->currentState.legsAnim ) &&
;4913:				!BG_SpinningSaberAnim( cent->currentState.torsoAnim ) &&
;4914:				!BG_InSpecialJump( cent->currentState.legsAnim ) &&
;4915:				!BG_InSpecialJump( cent->currentState.torsoAnim ) &&
;4916:				!BG_InDeathAnim(cent->currentState.legsAnim) &&
;4917:				!BG_InDeathAnim(cent->currentState.torsoAnim) &&
;4918:				!CG_InRoll(cent) &&
;4919:				!BG_SaberInSpecial(cent->currentState.saberMove) &&
;4920:				!BG_SaberInSpecialAttack(cent->currentState.torsoAnim) &&
;4921:				!BG_SaberInSpecialAttack(cent->currentState.legsAnim) )
;4922:				*/
;4923:			if (cg.snap && cg.snap->ps.clientNum == cent->currentState.number)
ADDRGP4 cg+36
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $2620
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
ADDRFP4 0
INDIRP4
INDIRI4
NEI4 $2620
line 4924
;4924:			{ //go ahead and use the predicted state if you can.
line 4925
;4925:				if ((cg.predictedPlayerState.torsoAnim&~ANIM_TOGGLEBIT) == newAnimation)
ADDRGP4 cg+96+100
INDIRI4
CNSTI4 -2049
BANDI4
ADDRFP4 8
INDIRI4
NEI4 $2621
line 4926
;4926:				{
line 4927
;4927:					trap_G2API_SetBoneAnim(cent->ghoul2, 0, "Motion", anim->firstFrame, anim->firstFrame + anim->numFrames, flags, animSpeed, cg.time, -1, blendTime);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $322
ARGP4
ADDRLP4 44
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 44
INDIRI4
ARGI4
ADDRLP4 44
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ARGI4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 12
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
ADDRLP4 16
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 4928
;4928:				}
line 4929
;4929:			}
ADDRGP4 $2621
JUMPV
LABELV $2620
line 4931
;4930:			else
;4931:			{
line 4932
;4932:				if ((cent->currentState.torsoAnim&~ANIM_TOGGLEBIT) == newAnimation)
ADDRFP4 0
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ADDRFP4 8
INDIRI4
NEI4 $2629
line 4933
;4933:				{
line 4934
;4934:					trap_G2API_SetBoneAnim(cent->ghoul2, 0, "Motion", anim->firstFrame, anim->firstFrame + anim->numFrames, flags, animSpeed, cg.time, -1, blendTime);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $322
ARGP4
ADDRLP4 44
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 44
INDIRI4
ARGI4
ADDRLP4 44
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ARGI4
ADDRLP4 4
INDIRI4
ARGI4
ADDRLP4 12
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
ADDRLP4 16
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 4935
;4935:				}
LABELV $2629
line 4936
;4936:			}
LABELV $2621
line 4937
;4937:		}
LABELV $2611
line 4938
;4938:	}
LABELV $2581
line 4939
;4939:}
LABELV $2568
endproc CG_G2EntSetLerpFrameAnimation 64 40
proc CG_G2EntRunLerpFrame 76 40
line 4942
;4940:
;4941:static void CG_G2EntRunLerpFrame( centity_t *cent, lerpFrame_t *lf, int newAnimation, float speedScale, qboolean torsoOnly) 
;4942:{
line 4947
;4943:	int			f, numFrames;
;4944:	animation_t	*anim;
;4945:
;4946:	// debugging tool to get no animations
;4947:	if ( cg_animSpeed.integer == 0 ) {
ADDRGP4 cg_animSpeed+12
INDIRI4
CNSTI4 0
NEI4 $2633
line 4948
;4948:		lf->oldFrame = lf->frame = lf->backlerp = 0;
ADDRLP4 12
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 16
CNSTF4 0
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 16
ADDP4
ADDRLP4 16
INDIRF4
ASGNF4
ADDRLP4 20
ADDRLP4 16
INDIRF4
CVFI4 4
ASGNI4
ADDRLP4 12
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 20
INDIRI4
ASGNI4
ADDRLP4 12
INDIRP4
ADDRLP4 20
INDIRI4
ASGNI4
line 4949
;4949:		return;
ADDRGP4 $2632
JUMPV
LABELV $2633
line 4953
;4950:	}
;4951:
;4952:	// see if the animation sequence is switching
;4953:	if (cent->currentState.forceFrame)
ADDRFP4 0
INDIRP4
CNSTI4 288
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2636
line 4954
;4954:	{
line 4955
;4955:		int flags = BONE_ANIM_OVERRIDE_FREEZE; //|BONE_ANIM_BLEND;
ADDRLP4 12
CNSTI4 72
ASGNI4
line 4956
;4956:		float animSpeed = 1.0f;
ADDRLP4 16
CNSTF4 1065353216
ASGNF4
line 4957
;4957:		trap_G2API_SetBoneAnim(cent->ghoul2, 0, "upper_lumbar", cent->currentState.forceFrame, cent->currentState.forceFrame+1, flags, animSpeed, cg.time, -1, 150);
ADDRLP4 20
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $314
ARGP4
ADDRLP4 24
ADDRLP4 20
INDIRP4
CNSTI4 288
ADDP4
INDIRI4
ASGNI4
ADDRLP4 24
INDIRI4
ARGI4
ADDRLP4 24
INDIRI4
CNSTI4 1
ADDI4
ARGI4
ADDRLP4 12
INDIRI4
ARGI4
ADDRLP4 16
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
CNSTI4 150
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 4958
;4958:		trap_G2API_SetBoneAnim(cent->ghoul2, 0, "model_root", cent->currentState.forceFrame, cent->currentState.forceFrame+1, flags, animSpeed, cg.time, -1, 150);
ADDRLP4 28
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 28
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $310
ARGP4
ADDRLP4 32
ADDRLP4 28
INDIRP4
CNSTI4 288
ADDP4
INDIRI4
ASGNI4
ADDRLP4 32
INDIRI4
ARGI4
ADDRLP4 32
INDIRI4
CNSTI4 1
ADDI4
ARGI4
ADDRLP4 12
INDIRI4
ARGI4
ADDRLP4 16
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
CNSTI4 150
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 4959
;4959:		trap_G2API_SetBoneAnim(cent->ghoul2, 0, "Motion", cent->currentState.forceFrame, cent->currentState.forceFrame+1, flags, animSpeed, cg.time, -1, 150);
ADDRLP4 36
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 36
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $322
ARGP4
ADDRLP4 40
ADDRLP4 36
INDIRP4
CNSTI4 288
ADDP4
INDIRI4
ASGNI4
ADDRLP4 40
INDIRI4
ARGI4
ADDRLP4 40
INDIRI4
CNSTI4 1
ADDI4
ARGI4
ADDRLP4 12
INDIRI4
ARGI4
ADDRLP4 16
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
CNSTI4 150
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 4961
;4960:
;4961:		lf->animationNumber = 0;
ADDRFP4 4
INDIRP4
CNSTI4 40
ADDP4
CNSTI4 0
ASGNI4
line 4962
;4962:	}
ADDRGP4 $2637
JUMPV
LABELV $2636
line 4963
;4963:	else if ( (newAnimation != lf->animationNumber || !lf->animation) || (CG_FirstAnimFrame(lf, torsoOnly, speedScale)) ) 
ADDRLP4 12
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRI4
ADDRLP4 12
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
NEI4 $2643
ADDRLP4 12
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $2643
ADDRLP4 12
INDIRP4
ARGP4
ADDRFP4 16
INDIRI4
ARGI4
ADDRFP4 12
INDIRF4
ARGF4
ADDRLP4 16
ADDRGP4 CG_FirstAnimFrame
CALLI4
ASGNI4
ADDRLP4 16
INDIRI4
CNSTI4 0
EQI4 $2641
LABELV $2643
line 4964
;4964:	{
line 4965
;4965:		CG_G2EntSetLerpFrameAnimation( cent, lf, newAnimation, speedScale, torsoOnly);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRI4
ARGI4
ADDRFP4 12
INDIRF4
ARGF4
ADDRFP4 16
INDIRI4
ARGI4
ADDRGP4 CG_G2EntSetLerpFrameAnimation
CALLV
pop
line 4966
;4966:	}
ADDRGP4 $2642
JUMPV
LABELV $2641
line 4967
;4967:	else if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2644
line 4968
;4968:	{
line 4969
;4969:		if (cent->pe.legs.yawing != !lf->torsoYawing)
ADDRFP4 4
INDIRP4
CNSTI4 60
ADDP4
INDIRI4
CNSTI4 0
NEI4 $2649
ADDRLP4 20
CNSTI4 1
ASGNI4
ADDRGP4 $2650
JUMPV
LABELV $2649
ADDRLP4 20
CNSTI4 0
ASGNI4
LABELV $2650
ADDRFP4 0
INDIRP4
CNSTI4 668
ADDP4
INDIRI4
ADDRLP4 20
INDIRI4
EQI4 $2646
line 4970
;4970:		{
line 4971
;4971:			CG_G2EntSetLerpFrameAnimation( cent, lf, newAnimation, speedScale, torsoOnly);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 8
INDIRI4
ARGI4
ADDRFP4 12
INDIRF4
ARGF4
ADDRFP4 16
INDIRI4
ARGI4
ADDRGP4 CG_G2EntSetLerpFrameAnimation
CALLV
pop
line 4972
;4972:			lf->torsoYawing = cent->pe.legs.yawing;
ADDRFP4 4
INDIRP4
CNSTI4 60
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 668
ADDP4
INDIRI4
ASGNI4
line 4973
;4973:		}
LABELV $2646
line 4974
;4974:	}
LABELV $2644
LABELV $2642
LABELV $2637
line 4978
;4975:
;4976:	// if we have passed the current frame, move it to
;4977:	// oldFrame and calculate a new frame
;4978:	if ( cg.time >= lf->frameTime ) {
ADDRGP4 cg+64
INDIRI4
ADDRFP4 4
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
LTI4 $2651
line 4979
;4979:		if (lf->oldFrame != lf->frame &&
ADDRLP4 20
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
INDIRI4
ADDRLP4 20
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
EQI4 $2654
ADDRLP4 20
INDIRP4
CVPU4 4
ADDRFP4 0
INDIRP4
CNSTI4 644
ADDP4
CVPU4 4
NEU4 $2654
line 4981
;4980:			lf == &(cent->pe.legs))
;4981:		{
line 4982
;4982:			int addFinalFrame = CG_InWalkingAnim(lf->animationNumber); //9;
ADDRFP4 4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRLP4 28
ADDRGP4 CG_InWalkingAnim
CALLI4
ASGNI4
ADDRLP4 24
ADDRLP4 28
INDIRI4
ASGNI4
line 4984
;4983:
;4984:			if (!cent->isATST &&
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
NEI4 $2656
ADDRLP4 32
ADDRFP4 4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
ADDRLP4 32
INDIRI4
CNSTI4 915
EQI4 $2658
ADDRLP4 32
INDIRI4
CNSTI4 918
NEI4 $2656
LABELV $2658
ADDRLP4 24
INDIRI4
CNSTI4 0
EQI4 $2656
line 4987
;4985:				((lf->animationNumber&~ANIM_TOGGLEBIT) == BOTH_WALL_RUN_RIGHT || (lf->animationNumber&~ANIM_TOGGLEBIT) == BOTH_WALL_RUN_LEFT) &&
;4986:				addFinalFrame)
;4987:			{
line 4988
;4988:				if ( lf->frame >= (lf->animation->firstFrame+2) &&
ADDRLP4 36
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 40
ADDRLP4 36
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
INDIRI4
CNSTI4 2
ADDI4
ASGNI4
ADDRLP4 36
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ADDRLP4 40
INDIRI4
LTI4 $2659
ADDRLP4 36
INDIRP4
INDIRI4
ADDRLP4 40
INDIRI4
GEI4 $2659
line 4990
;4989:					lf->oldFrame < (lf->animation->firstFrame+2))
;4990:				{
line 4991
;4991:					CG_FootStepGeneric(cent, lf->animationNumber);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_FootStepGeneric
CALLV
pop
line 4992
;4992:				}
ADDRGP4 $2657
JUMPV
LABELV $2659
line 4993
;4993:				else if ( lf->frame >= (lf->animation->firstFrame+addFinalFrame) &&
ADDRLP4 44
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 48
ADDRLP4 44
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
INDIRI4
ADDRLP4 24
INDIRI4
ADDI4
ASGNI4
ADDRLP4 44
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ADDRLP4 48
INDIRI4
LTI4 $2661
ADDRLP4 44
INDIRP4
INDIRI4
ADDRLP4 48
INDIRI4
GEI4 $2661
line 4995
;4994:					lf->oldFrame < (lf->animation->firstFrame+addFinalFrame))
;4995:				{
line 4996
;4996:					CG_FootStepGeneric(cent, lf->animationNumber);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_FootStepGeneric
CALLV
pop
line 4997
;4997:				}
ADDRGP4 $2657
JUMPV
LABELV $2661
line 4998
;4998:				else if ( lf->frame >= (lf->animation->firstFrame+12) &&
ADDRLP4 52
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 56
ADDRLP4 52
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
INDIRI4
CNSTI4 12
ADDI4
ASGNI4
ADDRLP4 52
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ADDRLP4 56
INDIRI4
LTI4 $2663
ADDRLP4 52
INDIRP4
INDIRI4
ADDRLP4 56
INDIRI4
GEI4 $2663
line 5000
;4999:					lf->oldFrame < (lf->animation->firstFrame+12))
;5000:				{
line 5001
;5001:					CG_FootStepGeneric(cent, lf->animationNumber);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_FootStepGeneric
CALLV
pop
line 5002
;5002:				}
ADDRGP4 $2657
JUMPV
LABELV $2663
line 5003
;5003:				else if ( lf->frame >= (lf->animation->firstFrame+16) &&
ADDRLP4 60
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 64
ADDRLP4 60
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
INDIRI4
CNSTI4 16
ADDI4
ASGNI4
ADDRLP4 60
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ADDRLP4 64
INDIRI4
LTI4 $2665
ADDRLP4 60
INDIRP4
INDIRI4
ADDRLP4 64
INDIRI4
GEI4 $2665
line 5005
;5004:					lf->oldFrame < (lf->animation->firstFrame+16))
;5005:				{
line 5006
;5006:					CG_FootStepGeneric(cent, lf->animationNumber);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_FootStepGeneric
CALLV
pop
line 5007
;5007:				}
ADDRGP4 $2657
JUMPV
LABELV $2665
line 5008
;5008:				else if (lf->oldFrame > lf->frame && lf->frame > (lf->animation->firstFrame+1))
ADDRLP4 68
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 72
ADDRLP4 68
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ASGNI4
ADDRLP4 68
INDIRP4
INDIRI4
ADDRLP4 72
INDIRI4
LEI4 $2657
ADDRLP4 72
INDIRI4
ADDRLP4 68
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
LEI4 $2657
line 5009
;5009:				{ //missed one
line 5010
;5010:					CG_FootStepGeneric(cent, lf->animationNumber);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_FootStepGeneric
CALLV
pop
line 5011
;5011:				}
line 5012
;5012:			}
ADDRGP4 $2657
JUMPV
LABELV $2656
line 5013
;5013:			else if (addFinalFrame && !cent->isATST)
ADDRLP4 36
CNSTI4 0
ASGNI4
ADDRLP4 24
INDIRI4
ADDRLP4 36
INDIRI4
EQI4 $2669
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
ADDRLP4 36
INDIRI4
NEI4 $2669
line 5014
;5014:			{
line 5015
;5015:				if ( lf->frame >= (lf->animation->firstFrame+3) &&
ADDRLP4 40
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 44
ADDRLP4 40
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
INDIRI4
CNSTI4 3
ADDI4
ASGNI4
ADDRLP4 40
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ADDRLP4 44
INDIRI4
LTI4 $2671
ADDRLP4 40
INDIRP4
INDIRI4
ADDRLP4 44
INDIRI4
GEI4 $2671
line 5017
;5016:					lf->oldFrame < (lf->animation->firstFrame+3))
;5017:				{
line 5018
;5018:					CG_FootStepGeneric(cent, lf->animationNumber);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_FootStepGeneric
CALLV
pop
line 5019
;5019:				}
ADDRGP4 $2672
JUMPV
LABELV $2671
line 5020
;5020:				else if ( lf->frame >= (lf->animation->firstFrame+addFinalFrame) &&
ADDRLP4 48
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 52
ADDRLP4 48
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
INDIRI4
ADDRLP4 24
INDIRI4
ADDI4
ASGNI4
ADDRLP4 48
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ADDRLP4 52
INDIRI4
LTI4 $2673
ADDRLP4 48
INDIRP4
INDIRI4
ADDRLP4 52
INDIRI4
GEI4 $2673
line 5022
;5021:					lf->oldFrame < (lf->animation->firstFrame+addFinalFrame))
;5022:				{
line 5023
;5023:					CG_FootStepGeneric(cent, lf->animationNumber);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_FootStepGeneric
CALLV
pop
line 5024
;5024:				}
ADDRGP4 $2674
JUMPV
LABELV $2673
line 5025
;5025:				else if (lf->oldFrame > lf->frame && lf->frame > (lf->animation->firstFrame+1))
ADDRLP4 56
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 60
ADDRLP4 56
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ASGNI4
ADDRLP4 56
INDIRP4
INDIRI4
ADDRLP4 60
INDIRI4
LEI4 $2675
ADDRLP4 60
INDIRI4
ADDRLP4 56
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
INDIRI4
CNSTI4 1
ADDI4
LEI4 $2675
line 5026
;5026:				{ //missed one
line 5027
;5027:					CG_FootStepGeneric(cent, lf->animationNumber);
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
CNSTI4 40
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_FootStepGeneric
CALLV
pop
line 5028
;5028:				}
LABELV $2675
LABELV $2674
LABELV $2672
line 5029
;5029:			}
LABELV $2669
LABELV $2657
line 5030
;5030:		}
LABELV $2654
line 5032
;5031:
;5032:		lf->oldFrame = lf->frame;
ADDRLP4 24
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 24
INDIRP4
ADDRLP4 24
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ASGNI4
line 5033
;5033:		lf->oldFrameTime = lf->frameTime;
ADDRLP4 28
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 28
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 28
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
ASGNI4
line 5036
;5034:
;5035:		// get the next frame based on the animation
;5036:		anim = lf->animation;
ADDRLP4 0
ADDRFP4 4
INDIRP4
CNSTI4 44
ADDP4
INDIRP4
ASGNP4
line 5037
;5037:		if ( !anim->frameLerp ) {
ADDRLP4 0
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CNSTI4 0
NEI4 $2677
line 5038
;5038:			return;		// shouldn't happen
ADDRGP4 $2632
JUMPV
LABELV $2677
line 5041
;5039:		}
;5040:
;5041:		if ( cg.time < lf->animationTime ) {
ADDRGP4 cg+64
INDIRI4
ADDRFP4 4
INDIRP4
CNSTI4 48
ADDP4
INDIRI4
GEI4 $2679
line 5042
;5042:			lf->frameTime = lf->animationTime;		// initial lerp
ADDRLP4 32
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 32
INDIRP4
CNSTI4 12
ADDP4
ADDRLP4 32
INDIRP4
CNSTI4 48
ADDP4
INDIRI4
ASGNI4
line 5043
;5043:		} else {
ADDRGP4 $2680
JUMPV
LABELV $2679
line 5044
;5044:			lf->frameTime = lf->oldFrameTime + anim->frameLerp;
ADDRLP4 32
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 36
CNSTI4 12
ASGNI4
ADDRLP4 32
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
ADDRLP4 32
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDRLP4 0
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
INDIRI4
ADDI4
ASGNI4
line 5045
;5045:		}
LABELV $2680
line 5046
;5046:		f = ( lf->frameTime - lf->animationTime ) / anim->frameLerp;
ADDRLP4 32
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 36
CNSTI4 12
ASGNI4
ADDRLP4 4
ADDRLP4 32
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
INDIRI4
ADDRLP4 32
INDIRP4
CNSTI4 48
ADDP4
INDIRI4
SUBI4
ADDRLP4 0
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
INDIRI4
DIVI4
ASGNI4
line 5047
;5047:		f *= speedScale;		// adjust for haste, etc
ADDRLP4 4
ADDRLP4 4
INDIRI4
CVIF4 4
ADDRFP4 12
INDIRF4
MULF4
CVFI4 4
ASGNI4
line 5049
;5048:
;5049:		numFrames = anim->numFrames;
ADDRLP4 8
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ASGNI4
line 5050
;5050:		if (anim->flipflop) {
ADDRLP4 0
INDIRP4
CNSTI4 24
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2682
line 5051
;5051:			numFrames *= 2;
ADDRLP4 8
ADDRLP4 8
INDIRI4
CNSTI4 1
LSHI4
ASGNI4
line 5052
;5052:		}
LABELV $2682
line 5053
;5053:		if ( f >= numFrames ) {
ADDRLP4 4
INDIRI4
ADDRLP4 8
INDIRI4
LTI4 $2684
line 5054
;5054:			f -= numFrames;
ADDRLP4 4
ADDRLP4 4
INDIRI4
ADDRLP4 8
INDIRI4
SUBI4
ASGNI4
line 5055
;5055:			if ( anim->loopFrames != -1 ) //Before 0 meant no loop
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 -1
EQI4 $2686
line 5056
;5056:			{
line 5057
;5057:				if(anim->numFrames - anim->loopFrames == 0)
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
SUBI4
CNSTI4 0
NEI4 $2688
line 5058
;5058:				{
line 5059
;5059:					f %= anim->numFrames;
ADDRLP4 4
ADDRLP4 4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
MODI4
ASGNI4
line 5060
;5060:				}
ADDRGP4 $2689
JUMPV
LABELV $2688
line 5062
;5061:				else
;5062:				{
line 5063
;5063:					f %= (anim->numFrames - anim->loopFrames);
ADDRLP4 4
ADDRLP4 4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
SUBI4
MODI4
ASGNI4
line 5064
;5064:				}
LABELV $2689
line 5065
;5065:				f += anim->loopFrames;
ADDRLP4 4
ADDRLP4 4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
ADDI4
ASGNI4
line 5066
;5066:			} 
ADDRGP4 $2687
JUMPV
LABELV $2686
line 5068
;5067:			else 
;5068:			{
line 5069
;5069:				f = numFrames - 1;
ADDRLP4 4
ADDRLP4 8
INDIRI4
CNSTI4 1
SUBI4
ASGNI4
line 5072
;5070:				// the animation is stuck at the end, so it
;5071:				// can immediately transition to another sequence
;5072:				lf->frameTime = cg.time;
ADDRFP4 4
INDIRP4
CNSTI4 12
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 5073
;5073:			}
LABELV $2687
line 5074
;5074:		}
LABELV $2684
line 5075
;5075:		if ( anim->reversed ) {
ADDRLP4 0
INDIRP4
CNSTI4 20
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2691
line 5076
;5076:			lf->frame = anim->firstFrame + anim->numFrames - 1 - f;
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 0
INDIRP4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
CNSTI4 1
SUBI4
ADDRLP4 4
INDIRI4
SUBI4
ASGNI4
line 5077
;5077:		}
ADDRGP4 $2692
JUMPV
LABELV $2691
line 5078
;5078:		else if (anim->flipflop && f>=anim->numFrames) {
ADDRLP4 0
INDIRP4
CNSTI4 24
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2693
ADDRLP4 4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
LTI4 $2693
line 5079
;5079:			lf->frame = anim->firstFrame + anim->numFrames - 1 - (f%anim->numFrames);
ADDRLP4 48
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ASGNI4
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 0
INDIRP4
INDIRI4
ADDRLP4 48
INDIRI4
ADDI4
CNSTI4 1
SUBI4
ADDRLP4 4
INDIRI4
ADDRLP4 48
INDIRI4
MODI4
SUBI4
ASGNI4
line 5080
;5080:		}
ADDRGP4 $2694
JUMPV
LABELV $2693
line 5081
;5081:		else {
line 5082
;5082:			lf->frame = anim->firstFrame + f;
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 0
INDIRP4
INDIRI4
ADDRLP4 4
INDIRI4
ADDI4
ASGNI4
line 5083
;5083:		}
LABELV $2694
LABELV $2692
line 5084
;5084:		if ( cg.time > lf->frameTime ) {
ADDRGP4 cg+64
INDIRI4
ADDRFP4 4
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
LEI4 $2695
line 5085
;5085:			lf->frameTime = cg.time;
ADDRFP4 4
INDIRP4
CNSTI4 12
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 5086
;5086:			if ( cg_debugAnim.integer && (cg_debugAnim.integer < 0 || cg_debugAnim.integer == cent->currentState.clientNum) ) {
ADDRLP4 44
CNSTI4 0
ASGNI4
ADDRGP4 cg_debugAnim+12
INDIRI4
ADDRLP4 44
INDIRI4
EQI4 $2699
ADDRGP4 cg_debugAnim+12
INDIRI4
ADDRLP4 44
INDIRI4
LTI4 $2704
ADDRGP4 cg_debugAnim+12
INDIRI4
ADDRFP4 0
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
NEI4 $2699
LABELV $2704
line 5087
;5087:				CG_Printf( "Clamp lf->frameTime\n");
ADDRGP4 $949
ARGP4
ADDRGP4 CG_Printf
CALLV
pop
line 5088
;5088:			}
LABELV $2699
line 5089
;5089:		}
LABELV $2695
line 5090
;5090:	}
LABELV $2651
line 5092
;5091:
;5092:	if ( lf->frameTime > cg.time + 200 ) {
ADDRFP4 4
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
CNSTI4 200
ADDI4
LEI4 $2705
line 5093
;5093:		lf->frameTime = cg.time;
ADDRFP4 4
INDIRP4
CNSTI4 12
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 5094
;5094:	}
LABELV $2705
line 5096
;5095:
;5096:	if ( lf->oldFrameTime > cg.time ) {
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
LEI4 $2709
line 5097
;5097:		lf->oldFrameTime = cg.time;
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 5098
;5098:	}
LABELV $2709
line 5100
;5099:	// calculate current lerp value
;5100:	if ( lf->frameTime == lf->oldFrameTime ) {
ADDRLP4 20
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
ADDRLP4 20
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
NEI4 $2713
line 5101
;5101:		lf->backlerp = 0;
ADDRFP4 4
INDIRP4
CNSTI4 16
ADDP4
CNSTF4 0
ASGNF4
line 5102
;5102:	} else {
ADDRGP4 $2714
JUMPV
LABELV $2713
line 5103
;5103:		lf->backlerp = 1.0 - (float)( cg.time - lf->oldFrameTime ) / ( lf->frameTime - lf->oldFrameTime );
ADDRLP4 24
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 28
ADDRLP4 24
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ASGNI4
ADDRLP4 24
INDIRP4
CNSTI4 16
ADDP4
CNSTF4 1065353216
ADDRGP4 cg+64
INDIRI4
ADDRLP4 28
INDIRI4
SUBI4
CVIF4 4
ADDRLP4 24
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
ADDRLP4 28
INDIRI4
SUBI4
CVIF4 4
DIVF4
SUBF4
ASGNF4
line 5104
;5104:	}
LABELV $2714
line 5105
;5105:}
LABELV $2632
endproc CG_G2EntRunLerpFrame 76 40
proc CG_G2EntAnimation 12 20
line 5108
;5106:
;5107:static void CG_G2EntAnimation( centity_t *cent, int *legsOld, int *legs, float *legsBackLerp,
;5108:						int *torsoOld, int *torso, float *torsoBackLerp ) {
line 5111
;5109:	float			speedScale;
;5110:
;5111:	if ( cg_noPlayerAnims.integer ) {
ADDRGP4 cg_noPlayerAnims+12
INDIRI4
CNSTI4 0
EQI4 $2717
line 5112
;5112:		*legsOld = *legs = *torsoOld = *torso = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
ADDRFP4 20
INDIRP4
ADDRLP4 4
INDIRI4
ASGNI4
ADDRFP4 16
INDIRP4
ADDRLP4 4
INDIRI4
ASGNI4
ADDRFP4 8
INDIRP4
ADDRLP4 4
INDIRI4
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 4
INDIRI4
ASGNI4
line 5113
;5113:		return;
ADDRGP4 $2716
JUMPV
LABELV $2717
line 5116
;5114:	}
;5115:
;5116:	if (cent->currentState.forcePowersActive & (1 << FP_RAGE))
ADDRFP4 0
INDIRP4
CNSTI4 240
ADDP4
INDIRI4
CNSTI4 256
BANDI4
CNSTI4 0
EQI4 $2720
line 5117
;5117:	{
line 5118
;5118:		speedScale = 1.3;
ADDRLP4 0
CNSTF4 1067869798
ASGNF4
line 5119
;5119:	}
ADDRGP4 $2721
JUMPV
LABELV $2720
line 5120
;5120:	else if (cent->currentState.forcePowersActive & (1 << FP_SPEED))
ADDRFP4 0
INDIRP4
CNSTI4 240
ADDP4
INDIRI4
CNSTI4 4
BANDI4
CNSTI4 0
EQI4 $2722
line 5121
;5121:	{
line 5122
;5122:		speedScale = 1.7;
ADDRLP4 0
CNSTF4 1071225242
ASGNF4
line 5123
;5123:	}
ADDRGP4 $2723
JUMPV
LABELV $2722
line 5125
;5124:	else
;5125:	{
line 5126
;5126:		speedScale = 1;
ADDRLP4 0
CNSTF4 1065353216
ASGNF4
line 5127
;5127:	}
LABELV $2723
LABELV $2721
line 5129
;5128:
;5129:	CG_G2EntRunLerpFrame( cent, &cent->pe.legs, cent->currentState.legsAnim, speedScale, qfalse);
ADDRLP4 4
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 4
INDIRP4
CNSTI4 644
ADDP4
ARGP4
ADDRLP4 4
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
ARGI4
ADDRLP4 0
INDIRF4
ARGF4
CNSTI4 0
ARGI4
ADDRGP4 CG_G2EntRunLerpFrame
CALLV
pop
line 5131
;5130:
;5131:	if (!(cent->currentState.forcePowersActive & (1 << FP_RAGE)))
ADDRFP4 0
INDIRP4
CNSTI4 240
ADDP4
INDIRI4
CNSTI4 256
BANDI4
CNSTI4 0
NEI4 $2724
line 5132
;5132:	{ //don't affect torso anim speed unless raged
line 5133
;5133:		speedScale = 1;
ADDRLP4 0
CNSTF4 1065353216
ASGNF4
line 5134
;5134:	}
ADDRGP4 $2725
JUMPV
LABELV $2724
line 5136
;5135:	else
;5136:	{
line 5137
;5137:		speedScale = 1.7;
ADDRLP4 0
CNSTF4 1071225242
ASGNF4
line 5138
;5138:	}
LABELV $2725
line 5140
;5139:
;5140:	*legsOld = cent->pe.legs.oldFrame;
ADDRFP4 4
INDIRP4
ADDRFP4 0
INDIRP4
CNSTI4 644
ADDP4
INDIRI4
ASGNI4
line 5141
;5141:	*legs = cent->pe.legs.frame;
ADDRFP4 8
INDIRP4
ADDRFP4 0
INDIRP4
CNSTI4 652
ADDP4
INDIRI4
ASGNI4
line 5142
;5142:	*legsBackLerp = cent->pe.legs.backlerp;
ADDRFP4 12
INDIRP4
ADDRFP4 0
INDIRP4
CNSTI4 660
ADDP4
INDIRF4
ASGNF4
line 5144
;5143:
;5144:	CG_G2EntRunLerpFrame( cent, &cent->pe.torso, cent->currentState.torsoAnim, speedScale, qtrue );
ADDRLP4 8
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 8
INDIRP4
ARGP4
ADDRLP4 8
INDIRP4
CNSTI4 708
ADDP4
ARGP4
ADDRLP4 8
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
ARGI4
ADDRLP4 0
INDIRF4
ARGF4
CNSTI4 1
ARGI4
ADDRGP4 CG_G2EntRunLerpFrame
CALLV
pop
line 5146
;5145:
;5146:	*torsoOld = cent->pe.torso.oldFrame;
ADDRFP4 16
INDIRP4
ADDRFP4 0
INDIRP4
CNSTI4 708
ADDP4
INDIRI4
ASGNI4
line 5147
;5147:	*torso = cent->pe.torso.frame;
ADDRFP4 20
INDIRP4
ADDRFP4 0
INDIRP4
CNSTI4 716
ADDP4
INDIRI4
ASGNI4
line 5148
;5148:	*torsoBackLerp = cent->pe.torso.backlerp;
ADDRFP4 24
INDIRP4
ADDRFP4 0
INDIRP4
CNSTI4 724
ADDP4
INDIRF4
ASGNF4
line 5149
;5149:}
LABELV $2716
endproc CG_G2EntAnimation 12 20
export CG_G2AnimEntSpineAngles
proc CG_G2AnimEntSpineAngles 88 8
line 5152
;5150:
;5151:void CG_G2AnimEntSpineAngles( centity_t *cent, vec3_t viewAngles, const vec3_t angles, vec3_t thoracicAngles, vec3_t ulAngles, vec3_t llAngles )
;5152:{
line 5153
;5153:	int ang = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 5155
;5154:
;5155:	if (cent->isATST || cent->currentState.teamowner)
ADDRLP4 4
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 8
CNSTI4 0
ASGNI4
ADDRLP4 4
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
ADDRLP4 8
INDIRI4
NEI4 $2729
ADDRLP4 4
INDIRP4
CNSTI4 264
ADDP4
INDIRI4
ADDRLP4 8
INDIRI4
EQI4 $2727
LABELV $2729
line 5156
;5156:	{
line 5157
;5157:		return;
ADDRGP4 $2726
JUMPV
LABELV $2727
line 5160
;5158:	}
;5159:
;5160:	VectorClear(ulAngles);
ADDRLP4 12
ADDRFP4 16
INDIRP4
ASGNP4
ADDRLP4 16
CNSTF4 0
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 16
INDIRF4
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 16
INDIRF4
ASGNF4
ADDRLP4 12
INDIRP4
ADDRLP4 16
INDIRF4
ASGNF4
line 5161
;5161:	VectorClear(llAngles);
ADDRLP4 20
ADDRFP4 20
INDIRP4
ASGNP4
ADDRLP4 24
CNSTF4 0
ASGNF4
ADDRLP4 20
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 24
INDIRF4
ASGNF4
ADDRLP4 20
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 24
INDIRF4
ASGNF4
ADDRLP4 20
INDIRP4
ADDRLP4 24
INDIRF4
ASGNF4
line 5164
;5162:
;5163:	//cent->pe.torso.pitchAngle = viewAngles[PITCH];
;5164:	viewAngles[YAW] = AngleDelta( cent->lerpAngles[YAW], angles[YAW] );
ADDRFP4 0
INDIRP4
CNSTI4 944
ADDP4
INDIRF4
ARGF4
ADDRLP4 28
CNSTI4 4
ASGNI4
ADDRFP4 8
INDIRP4
ADDRLP4 28
INDIRI4
ADDP4
INDIRF4
ARGF4
ADDRLP4 32
ADDRGP4 AngleDelta
CALLF4
ASGNF4
ADDRFP4 4
INDIRP4
ADDRLP4 28
INDIRI4
ADDP4
ADDRLP4 32
INDIRF4
ASGNF4
line 5169
;5165:	//cent->pe.torso.yawAngle = viewAngles[YAW];
;5166:
;5167:	//distribute the angles differently up the spine
;5168:	//NOTE: each of these distributions must add up to 1.0f
;5169:	thoracicAngles[PITCH] = 0;//viewAngles[PITCH]*0.20f;
ADDRFP4 12
INDIRP4
CNSTF4 0
ASGNF4
line 5170
;5170:	llAngles[PITCH] = 0;//viewAngles[PITCH]*0.40f;
ADDRFP4 20
INDIRP4
CNSTF4 0
ASGNF4
line 5171
;5171:	ulAngles[PITCH] = 0;//viewAngles[PITCH]*0.40f;
ADDRFP4 16
INDIRP4
CNSTF4 0
ASGNF4
line 5173
;5172:
;5173:	thoracicAngles[YAW] = viewAngles[YAW]*0.20f - (viewAngles[PITCH]*(viewAngles[YAW]*.020f));
ADDRLP4 36
CNSTI4 4
ASGNI4
ADDRLP4 40
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 44
ADDRLP4 40
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
INDIRF4
ASGNF4
ADDRFP4 12
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
CNSTF4 1045220557
ADDRLP4 44
INDIRF4
MULF4
ADDRLP4 40
INDIRP4
INDIRF4
CNSTF4 1017370378
ADDRLP4 44
INDIRF4
MULF4
MULF4
SUBF4
ASGNF4
line 5174
;5174:	ulAngles[YAW] = viewAngles[YAW]*0.25f - (viewAngles[PITCH]*(viewAngles[YAW]*.0005f));
ADDRLP4 48
CNSTI4 4
ASGNI4
ADDRLP4 52
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 56
ADDRLP4 52
INDIRP4
ADDRLP4 48
INDIRI4
ADDP4
INDIRF4
ASGNF4
ADDRFP4 16
INDIRP4
ADDRLP4 48
INDIRI4
ADDP4
CNSTF4 1048576000
ADDRLP4 56
INDIRF4
MULF4
ADDRLP4 52
INDIRP4
INDIRF4
CNSTF4 973279855
ADDRLP4 56
INDIRF4
MULF4
MULF4
SUBF4
ASGNF4
line 5175
;5175:	llAngles[YAW] = viewAngles[YAW]*0.25f - (viewAngles[PITCH]*(viewAngles[YAW]*.0005f));
ADDRLP4 60
CNSTI4 4
ASGNI4
ADDRLP4 64
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 68
ADDRLP4 64
INDIRP4
ADDRLP4 60
INDIRI4
ADDP4
INDIRF4
ASGNF4
ADDRFP4 20
INDIRP4
ADDRLP4 60
INDIRI4
ADDP4
CNSTF4 1048576000
ADDRLP4 68
INDIRF4
MULF4
ADDRLP4 64
INDIRP4
INDIRF4
CNSTF4 973279855
ADDRLP4 68
INDIRF4
MULF4
MULF4
SUBF4
ASGNF4
line 5177
;5176:
;5177:	if (thoracicAngles[YAW] > 20)
ADDRFP4 12
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
CNSTF4 1101004800
LEF4 $2730
line 5178
;5178:	{
line 5179
;5179:		thoracicAngles[YAW] = 20;
ADDRFP4 12
INDIRP4
CNSTI4 4
ADDP4
CNSTF4 1101004800
ASGNF4
line 5180
;5180:	}
LABELV $2730
line 5181
;5181:	if (ulAngles[YAW] > 20)
ADDRFP4 16
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
CNSTF4 1101004800
LEF4 $2732
line 5182
;5182:	{
line 5183
;5183:		ulAngles[YAW] = 20;
ADDRFP4 16
INDIRP4
CNSTI4 4
ADDP4
CNSTF4 1101004800
ASGNF4
line 5184
;5184:	}
LABELV $2732
line 5185
;5185:	if (llAngles[YAW] > 20)
ADDRFP4 20
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
CNSTF4 1101004800
LEF4 $2734
line 5186
;5186:	{
line 5187
;5187:		llAngles[YAW] = 20;
ADDRFP4 20
INDIRP4
CNSTI4 4
ADDP4
CNSTF4 1101004800
ASGNF4
line 5188
;5188:	}
LABELV $2734
line 5190
;5189:
;5190:	thoracicAngles[ROLL] = viewAngles[ROLL]*0.20f;
ADDRLP4 72
CNSTI4 8
ASGNI4
ADDRFP4 12
INDIRP4
ADDRLP4 72
INDIRI4
ADDP4
CNSTF4 1045220557
ADDRFP4 4
INDIRP4
ADDRLP4 72
INDIRI4
ADDP4
INDIRF4
MULF4
ASGNF4
line 5191
;5191:	ulAngles[ROLL] = viewAngles[ROLL]*0.35f;
ADDRLP4 76
CNSTI4 8
ASGNI4
ADDRFP4 16
INDIRP4
ADDRLP4 76
INDIRI4
ADDP4
CNSTF4 1051931443
ADDRFP4 4
INDIRP4
ADDRLP4 76
INDIRI4
ADDP4
INDIRF4
MULF4
ASGNF4
line 5192
;5192:	llAngles[ROLL] = viewAngles[ROLL]*0.45f;
ADDRLP4 80
CNSTI4 8
ASGNI4
ADDRFP4 20
INDIRP4
ADDRLP4 80
INDIRI4
ADDP4
CNSTF4 1055286886
ADDRFP4 4
INDIRP4
ADDRLP4 80
INDIRI4
ADDP4
INDIRF4
MULF4
ASGNF4
line 5194
;5193:	
;5194:	for ( ang = 0; ang < 3; ang++ )
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $2736
line 5195
;5195:	{
line 5196
;5196:		if (ulAngles[ang] < 0)
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRFP4 16
INDIRP4
ADDP4
INDIRF4
CNSTF4 0
GEF4 $2740
line 5197
;5197:		{
line 5198
;5198:			ulAngles[ang] += 360;
ADDRLP4 84
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRFP4 16
INDIRP4
ADDP4
ASGNP4
ADDRLP4 84
INDIRP4
ADDRLP4 84
INDIRP4
INDIRF4
CNSTF4 1135869952
ADDF4
ASGNF4
line 5199
;5199:		}
LABELV $2740
line 5200
;5200:	}
LABELV $2737
line 5194
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 3
LTI4 $2736
line 5201
;5201:}
LABELV $2726
endproc CG_G2AnimEntSpineAngles 88 8
data
align 4
LABELV $2743
byte 4 0
byte 4 22
byte 4 45
byte 4 -22
byte 4 0
byte 4 22
byte 4 -45
byte 4 -22
lit
align 4
LABELV $2744
byte 4 0
byte 4 0
byte 4 0
code
proc CG_G2AnimEntAngles 228 44
line 5204
;5202:
;5203:static void CG_G2AnimEntAngles( centity_t *cent, vec3_t legs[3], vec3_t legsAngles)
;5204:{
line 5212
;5205:	vec3_t		torsoAngles, headAngles;
;5206:	float		dest;
;5207:	static	int	movementOffsets[8] = { 0, 22, 45, -22, 0, 22, -45, -22 };
;5208:	vec3_t		velocity;
;5209:	float		speed; //, speed_dif, speed_desired;
;5210:	int			dir;
;5211:	vec3_t		velPos, velAng;
;5212:	int			adddir = 0;
ADDRLP4 144
CNSTI4 0
ASGNI4
line 5214
;5213:	float		dif;
;5214:	float		degrees_negative = 0;
ADDRLP4 132
CNSTF4 0
ASGNF4
line 5215
;5215:	float		degrees_positive = 0;
ADDRLP4 136
CNSTF4 0
ASGNF4
line 5216
;5216:	vec3_t		ulAngles, llAngles, viewAngles, angles, thoracicAngles = {0,0,0};
ADDRLP4 60
ADDRGP4 $2744
INDIRB
ASGNB 12
line 5218
;5217:
;5218:	VectorCopy( cent->lerpAngles, headAngles );
ADDRLP4 12
ADDRFP4 0
INDIRP4
CNSTI4 940
ADDP4
INDIRB
ASGNB 12
line 5219
;5219:	headAngles[YAW] = AngleMod( headAngles[YAW] );
ADDRLP4 12+4
INDIRF4
ARGF4
ADDRLP4 148
ADDRGP4 AngleMod
CALLF4
ASGNF4
ADDRLP4 12+4
ADDRLP4 148
INDIRF4
ASGNF4
line 5220
;5220:	VectorClear( legsAngles );
ADDRLP4 152
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 156
CNSTF4 0
ASGNF4
ADDRLP4 152
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 156
INDIRF4
ASGNF4
ADDRLP4 152
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 156
INDIRF4
ASGNF4
ADDRLP4 152
INDIRP4
ADDRLP4 156
INDIRF4
ASGNF4
line 5221
;5221:	VectorClear( torsoAngles );
ADDRLP4 160
CNSTF4 0
ASGNF4
ADDRLP4 0+8
ADDRLP4 160
INDIRF4
ASGNF4
ADDRLP4 0+4
ADDRLP4 160
INDIRF4
ASGNF4
ADDRLP4 0
ADDRLP4 160
INDIRF4
ASGNF4
line 5226
;5222:
;5223:	// --------- yaw -------------
;5224:
;5225:	// allow yaw to drift a bit
;5226:	if ((( cent->currentState.legsAnim & ~ANIM_TOGGLEBIT ) != BOTH_STAND1) || 
ADDRLP4 164
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 168
CNSTI4 -2049
ASGNI4
ADDRLP4 164
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
ADDRLP4 168
INDIRI4
BANDI4
CNSTI4 571
NEI4 $2751
ADDRLP4 164
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
ADDRLP4 168
INDIRI4
BANDI4
ADDRLP4 164
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 WeaponReadyAnim
ADDP4
INDIRI4
EQI4 $2749
LABELV $2751
line 5228
;5227:			( cent->currentState.torsoAnim & ~ANIM_TOGGLEBIT ) != WeaponReadyAnim[cent->currentState.weapon]  ) 
;5228:	{
line 5230
;5229:		// if not standing still, always point all in the same direction
;5230:		cent->pe.torso.yawing = qtrue;	// always center
ADDRFP4 0
INDIRP4
CNSTI4 732
ADDP4
CNSTI4 1
ASGNI4
line 5231
;5231:		cent->pe.torso.pitching = qtrue;	// always center
ADDRFP4 0
INDIRP4
CNSTI4 740
ADDP4
CNSTI4 1
ASGNI4
line 5232
;5232:		cent->pe.legs.yawing = qtrue;	// always center
ADDRFP4 0
INDIRP4
CNSTI4 668
ADDP4
CNSTI4 1
ASGNI4
line 5233
;5233:	}
LABELV $2749
line 5235
;5234:
;5235:	dir = 0;
ADDRLP4 128
CNSTI4 0
ASGNI4
line 5236
;5236:	if (!cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
NEI4 $2752
line 5237
;5237:	{
line 5238
;5238:		torsoAngles[YAW] = headAngles[YAW] + 0.25 * movementOffsets[ dir ];
ADDRLP4 0+4
ADDRLP4 12+4
INDIRF4
CNSTF4 1048576000
ADDRLP4 128
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 $2743
ADDP4
INDIRI4
CVIF4 4
MULF4
ADDF4
ASGNF4
line 5239
;5239:	}
ADDRGP4 $2753
JUMPV
LABELV $2752
line 5241
;5240:	else
;5241:	{
line 5242
;5242:		torsoAngles[YAW] = headAngles[YAW];
ADDRLP4 0+4
ADDRLP4 12+4
INDIRF4
ASGNF4
line 5243
;5243:	}
LABELV $2753
line 5246
;5244:
;5245:	//for now, turn torso instantly and let the legs swing to follow
;5246:	cent->pe.torso.yawAngle = torsoAngles[YAW];
ADDRFP4 0
INDIRP4
CNSTI4 728
ADDP4
ADDRLP4 0+4
INDIRF4
ASGNF4
line 5250
;5247:
;5248:	// --------- pitch -------------
;5249:
;5250:	VectorCopy( cent->currentState.pos.trDelta, velocity );
ADDRLP4 24
ADDRFP4 0
INDIRP4
CNSTI4 36
ADDP4
INDIRB
ASGNB 12
line 5251
;5251:	speed = VectorNormalize( velocity );
ADDRLP4 24
ARGP4
ADDRLP4 172
ADDRGP4 VectorNormalize
CALLF4
ASGNF4
ADDRLP4 108
ADDRLP4 172
INDIRF4
ASGNF4
line 5253
;5252:
;5253:	if (!speed)
ADDRLP4 108
INDIRF4
CNSTF4 0
NEF4 $2759
line 5254
;5254:	{
line 5255
;5255:		torsoAngles[YAW] = headAngles[YAW];
ADDRLP4 0+4
ADDRLP4 12+4
INDIRF4
ASGNF4
line 5256
;5256:	}
LABELV $2759
line 5259
;5257:
;5258:	// only show a fraction of the pitch angle in the torso
;5259:	if ( headAngles[PITCH] > 180 ) {
ADDRLP4 12
INDIRF4
CNSTF4 1127481344
LEF4 $2763
line 5260
;5260:		dest = (-360 + headAngles[PITCH]) * 0.75;
ADDRLP4 140
CNSTF4 1061158912
ADDRLP4 12
INDIRF4
CNSTF4 3283353600
ADDF4
MULF4
ASGNF4
line 5261
;5261:	} else {
ADDRGP4 $2764
JUMPV
LABELV $2763
line 5262
;5262:		dest = headAngles[PITCH] * 0.75;
ADDRLP4 140
CNSTF4 1061158912
ADDRLP4 12
INDIRF4
MULF4
ASGNF4
line 5263
;5263:	}
LABELV $2764
line 5264
;5264:	CG_SwingAngles( dest, 15, 30, 0.1, &cent->pe.torso.pitchAngle, &cent->pe.torso.pitching );
ADDRLP4 140
INDIRF4
ARGF4
CNSTF4 1097859072
ARGF4
CNSTF4 1106247680
ARGF4
CNSTF4 1036831949
ARGF4
ADDRLP4 176
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 176
INDIRP4
CNSTI4 736
ADDP4
ARGP4
ADDRLP4 176
INDIRP4
CNSTI4 740
ADDP4
ARGP4
ADDRGP4 CG_SwingAngles
CALLF4
pop
line 5265
;5265:	torsoAngles[PITCH] = cent->pe.torso.pitchAngle;
ADDRLP4 0
ADDRFP4 0
INDIRP4
CNSTI4 736
ADDP4
INDIRF4
ASGNF4
line 5267
;5266:
;5267:	if ( speed ) {
ADDRLP4 108
INDIRF4
CNSTF4 0
EQF4 $2765
line 5271
;5268:		vec3_t	axis[3];
;5269:		float	side;
;5270:
;5271:		speed *= 0.05;
ADDRLP4 108
CNSTF4 1028443341
ADDRLP4 108
INDIRF4
MULF4
ASGNF4
line 5273
;5272:
;5273:		AnglesToAxis( legsAngles, axis );
ADDRFP4 8
INDIRP4
ARGP4
ADDRLP4 180
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 5274
;5274:		side = speed * DotProduct( velocity, axis[1] );
ADDRLP4 216
ADDRLP4 108
INDIRF4
ADDRLP4 24
INDIRF4
ADDRLP4 180+12
INDIRF4
MULF4
ADDRLP4 24+4
INDIRF4
ADDRLP4 180+12+4
INDIRF4
MULF4
ADDF4
ADDRLP4 24+8
INDIRF4
ADDRLP4 180+12+8
INDIRF4
MULF4
ADDF4
MULF4
ASGNF4
line 5275
;5275:		legsAngles[ROLL] -= side;
ADDRLP4 220
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 220
INDIRP4
ADDRLP4 220
INDIRP4
INDIRF4
ADDRLP4 216
INDIRF4
SUBF4
ASGNF4
line 5277
;5276:
;5277:		side = speed * DotProduct( velocity, axis[0] );
ADDRLP4 216
ADDRLP4 108
INDIRF4
ADDRLP4 24
INDIRF4
ADDRLP4 180
INDIRF4
MULF4
ADDRLP4 24+4
INDIRF4
ADDRLP4 180+4
INDIRF4
MULF4
ADDF4
ADDRLP4 24+8
INDIRF4
ADDRLP4 180+8
INDIRF4
MULF4
ADDF4
MULF4
ASGNF4
line 5278
;5278:		legsAngles[PITCH] += side;
ADDRLP4 224
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 224
INDIRP4
ADDRLP4 224
INDIRP4
INDIRF4
ADDRLP4 216
INDIRF4
ADDF4
ASGNF4
line 5279
;5279:	}
LABELV $2765
line 5282
;5280:
;5281:	//rww - crazy velocity-based leg angle calculation
;5282:	legsAngles[YAW] = headAngles[YAW];
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 12+4
INDIRF4
ASGNF4
line 5283
;5283:	velPos[0] = cent->lerpOrigin[0] + velocity[0];
ADDRLP4 36
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
INDIRF4
ADDRLP4 24
INDIRF4
ADDF4
ASGNF4
line 5284
;5284:	velPos[1] = cent->lerpOrigin[1] + velocity[1];
ADDRLP4 36+4
ADDRFP4 0
INDIRP4
CNSTI4 932
ADDP4
INDIRF4
ADDRLP4 24+4
INDIRF4
ADDF4
ASGNF4
line 5285
;5285:	velPos[2] = cent->lerpOrigin[2];// + velocity[2];
ADDRLP4 36+8
ADDRFP4 0
INDIRP4
CNSTI4 936
ADDP4
INDIRF4
ASGNF4
line 5287
;5286:
;5287:	if (cent->currentState.groundEntityNum == ENTITYNUM_NONE)
ADDRFP4 0
INDIRP4
CNSTI4 192
ADDP4
INDIRI4
CNSTI4 1023
NEI4 $2782
line 5288
;5288:	{ //off the ground, no direction-based leg angles
line 5289
;5289:		VectorCopy(cent->lerpOrigin, velPos);
ADDRLP4 36
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
INDIRB
ASGNB 12
line 5290
;5290:	}
LABELV $2782
line 5292
;5291:
;5292:	VectorSubtract(cent->lerpOrigin, velPos, velAng);
ADDRLP4 180
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 48
ADDRLP4 180
INDIRP4
CNSTI4 928
ADDP4
INDIRF4
ADDRLP4 36
INDIRF4
SUBF4
ASGNF4
ADDRLP4 48+4
ADDRLP4 180
INDIRP4
CNSTI4 932
ADDP4
INDIRF4
ADDRLP4 36+4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 48+8
ADDRFP4 0
INDIRP4
CNSTI4 936
ADDP4
INDIRF4
ADDRLP4 36+8
INDIRF4
SUBF4
ASGNF4
line 5294
;5293:
;5294:	if (!VectorCompare(velAng, vec3_origin))
ADDRLP4 48
ARGP4
ADDRGP4 vec3_origin
ARGP4
ADDRLP4 184
ADDRGP4 VectorCompare
CALLI4
ASGNI4
ADDRLP4 184
INDIRI4
CNSTI4 0
NEI4 $2788
line 5295
;5295:	{
line 5296
;5296:		vectoangles(velAng, velAng);
ADDRLP4 48
ARGP4
ADDRLP4 48
ARGP4
ADDRGP4 vectoangles
CALLV
pop
line 5298
;5297:
;5298:		if (velAng[YAW] <= legsAngles[YAW])
ADDRLP4 48+4
INDIRF4
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
GTF4 $2790
line 5299
;5299:		{
line 5300
;5300:			degrees_negative = (legsAngles[YAW] - velAng[YAW]);
ADDRLP4 132
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 48+4
INDIRF4
SUBF4
ASGNF4
line 5301
;5301:			degrees_positive = (360 - legsAngles[YAW]) + velAng[YAW];
ADDRLP4 136
CNSTF4 1135869952
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
SUBF4
ADDRLP4 48+4
INDIRF4
ADDF4
ASGNF4
line 5302
;5302:		}
ADDRGP4 $2791
JUMPV
LABELV $2790
line 5304
;5303:		else
;5304:		{
line 5305
;5305:			degrees_negative = legsAngles[YAW] + (360 - velAng[YAW]);
ADDRLP4 132
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
CNSTF4 1135869952
ADDRLP4 48+4
INDIRF4
SUBF4
ADDF4
ASGNF4
line 5306
;5306:			degrees_positive = (velAng[YAW] - legsAngles[YAW]);
ADDRLP4 136
ADDRLP4 48+4
INDIRF4
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 5307
;5307:		}
LABELV $2791
line 5309
;5308:
;5309:		if (degrees_negative < degrees_positive)
ADDRLP4 132
INDIRF4
ADDRLP4 136
INDIRF4
GEF4 $2797
line 5310
;5310:		{
line 5311
;5311:			dif = degrees_negative;
ADDRLP4 112
ADDRLP4 132
INDIRF4
ASGNF4
line 5312
;5312:			adddir = 0;
ADDRLP4 144
CNSTI4 0
ASGNI4
line 5313
;5313:		}
ADDRGP4 $2798
JUMPV
LABELV $2797
line 5315
;5314:		else
;5315:		{
line 5316
;5316:			dif = degrees_positive;
ADDRLP4 112
ADDRLP4 136
INDIRF4
ASGNF4
line 5317
;5317:			adddir = 1;
ADDRLP4 144
CNSTI4 1
ASGNI4
line 5318
;5318:		}
LABELV $2798
line 5320
;5319:
;5320:		if (dif > 90)
ADDRLP4 112
INDIRF4
CNSTF4 1119092736
LEF4 $2799
line 5321
;5321:		{
line 5322
;5322:			dif = (180 - dif);
ADDRLP4 112
CNSTF4 1127481344
ADDRLP4 112
INDIRF4
SUBF4
ASGNF4
line 5323
;5323:		}
LABELV $2799
line 5325
;5324:
;5325:		if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2801
line 5326
;5326:		{
line 5327
;5327:			if (dif > 360)
ADDRLP4 112
INDIRF4
CNSTF4 1135869952
LEF4 $2802
line 5328
;5328:			{
line 5329
;5329:				dif = 360;
ADDRLP4 112
CNSTF4 1135869952
ASGNF4
line 5330
;5330:			}
line 5331
;5331:		}
ADDRGP4 $2802
JUMPV
LABELV $2801
line 5333
;5332:		else
;5333:		{
line 5334
;5334:			if (dif > 60)
ADDRLP4 112
INDIRF4
CNSTF4 1114636288
LEF4 $2805
line 5335
;5335:			{
line 5336
;5336:				dif = 60;
ADDRLP4 112
CNSTF4 1114636288
ASGNF4
line 5337
;5337:			}
LABELV $2805
line 5338
;5338:		}
LABELV $2802
line 5341
;5339:
;5340:		//Slight hack for when playing is running backward
;5341:		if (dir == 3 || dir == 5)
ADDRLP4 188
ADDRLP4 128
INDIRI4
ASGNI4
ADDRLP4 188
INDIRI4
CNSTI4 3
EQI4 $2809
ADDRLP4 188
INDIRI4
CNSTI4 5
NEI4 $2807
LABELV $2809
line 5342
;5342:		{
line 5343
;5343:			dif = -dif;
ADDRLP4 112
ADDRLP4 112
INDIRF4
NEGF4
ASGNF4
line 5344
;5344:		}
LABELV $2807
line 5346
;5345:
;5346:		if (adddir)
ADDRLP4 144
INDIRI4
CNSTI4 0
EQI4 $2810
line 5347
;5347:		{
line 5348
;5348:			legsAngles[YAW] -= dif;
ADDRLP4 192
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ASGNP4
ADDRLP4 192
INDIRP4
ADDRLP4 192
INDIRP4
INDIRF4
ADDRLP4 112
INDIRF4
SUBF4
ASGNF4
line 5349
;5349:		}
ADDRGP4 $2811
JUMPV
LABELV $2810
line 5351
;5350:		else
;5351:		{
line 5352
;5352:			legsAngles[YAW] += dif;
ADDRLP4 192
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ASGNP4
ADDRLP4 192
INDIRP4
ADDRLP4 192
INDIRP4
INDIRF4
ADDRLP4 112
INDIRF4
ADDF4
ASGNF4
line 5353
;5353:		}
LABELV $2811
line 5354
;5354:	}
LABELV $2788
line 5356
;5355:
;5356:	cent->pe.legs.yawAngle = legsAngles[YAW];
ADDRFP4 0
INDIRP4
CNSTI4 664
ADDP4
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
line 5357
;5357:	legsAngles[YAW] = cent->pe.legs.yawAngle;
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 664
ADDP4
INDIRF4
ASGNF4
line 5360
;5358:
;5359:	// pain twitch
;5360:	CG_AddPainTwitch( cent, torsoAngles );
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 0
ARGP4
ADDRGP4 CG_AddPainTwitch
CALLV
pop
line 5362
;5361:
;5362:	legsAngles[ROLL] = 0;
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
CNSTF4 0
ASGNF4
line 5363
;5363:	torsoAngles[ROLL] = 0;
ADDRLP4 0+8
CNSTF4 0
ASGNF4
line 5368
;5364:
;5365:	//VectorCopy(legsAngles, cent->turAngles);
;5366:	//turAngles is used as a smoothing storage vector for g2animents.
;5367:
;5368:	if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2813
line 5369
;5369:	{
line 5370
;5370:		legsAngles[ROLL] = 0;
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
CNSTF4 0
ASGNF4
line 5371
;5371:		legsAngles[PITCH] = 0;
ADDRFP4 8
INDIRP4
CNSTF4 0
ASGNF4
line 5372
;5372:	}
LABELV $2813
line 5375
;5373:
;5374:	// pull the angles back out of the hierarchial chain
;5375:	AnglesSubtract( headAngles, torsoAngles, headAngles );
ADDRLP4 12
ARGP4
ADDRLP4 0
ARGP4
ADDRLP4 12
ARGP4
ADDRGP4 AnglesSubtract
CALLV
pop
line 5376
;5376:	AnglesSubtract( torsoAngles, legsAngles, torsoAngles );
ADDRLP4 0
ARGP4
ADDRFP4 8
INDIRP4
ARGP4
ADDRLP4 0
ARGP4
ADDRGP4 AnglesSubtract
CALLV
pop
line 5377
;5377:	AnglesToAxis( legsAngles, legs );
ADDRFP4 8
INDIRP4
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 5380
;5378:	// we assume that model 0 is the player model.
;5379:
;5380:	if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2815
line 5381
;5381:	{
line 5384
;5382:		vec3_t flatYaw;
;5383:
;5384:		flatYaw[YAW] = 0;//cent->lerpAngles[YAW];
ADDRLP4 188+4
CNSTF4 0
ASGNF4
line 5385
;5385:		flatYaw[ROLL] = 0;
ADDRLP4 188+8
CNSTF4 0
ASGNF4
line 5386
;5386:		flatYaw[PITCH] = 0;
ADDRLP4 188
CNSTF4 0
ASGNF4
line 5387
;5387:		CG_G2SetBoneAngles(cent->ghoul2, 0, "pelvis", flatYaw, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time); 
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 200
CNSTI4 0
ASGNI4
ADDRLP4 200
INDIRI4
ARGI4
ADDRGP4 $306
ARGP4
ADDRLP4 188
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 200
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 CG_G2SetBoneAngles
CALLV
pop
line 5389
;5388:
;5389:		CG_G2SetBoneAngles(cent->ghoul2, 0, "thoracic", torsoAngles, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time); 
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 204
CNSTI4 0
ASGNI4
ADDRLP4 204
INDIRI4
ARGI4
ADDRGP4 $1173
ARGP4
ADDRLP4 0
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 204
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 CG_G2SetBoneAngles
CALLV
pop
line 5391
;5390:
;5391:		return;
ADDRGP4 $2742
JUMPV
LABELV $2815
line 5394
;5392:	}
;5393:
;5394:	VectorCopy( cent->lerpAngles, viewAngles );
ADDRLP4 96
ADDRFP4 0
INDIRP4
CNSTI4 940
ADDP4
INDIRB
ASGNB 12
line 5395
;5395:	viewAngles[YAW] = viewAngles[ROLL] = 0;
ADDRLP4 188
CNSTF4 0
ASGNF4
ADDRLP4 96+8
ADDRLP4 188
INDIRF4
ASGNF4
ADDRLP4 96+4
ADDRLP4 188
INDIRF4
ASGNF4
line 5396
;5396:	viewAngles[PITCH] *= 0.5;
ADDRLP4 96
CNSTF4 1056964608
ADDRLP4 96
INDIRF4
MULF4
ASGNF4
line 5398
;5397:
;5398:	VectorCopy( cent->lerpAngles, angles );
ADDRLP4 116
ADDRFP4 0
INDIRP4
CNSTI4 940
ADDP4
INDIRB
ASGNB 12
line 5399
;5399:	angles[PITCH] = 0;
ADDRLP4 116
CNSTF4 0
ASGNF4
line 5401
;5400:
;5401:	CG_G2AnimEntSpineAngles(cent, viewAngles, angles, thoracicAngles, ulAngles, llAngles);
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 96
ARGP4
ADDRLP4 116
ARGP4
ADDRLP4 60
ARGP4
ADDRLP4 72
ARGP4
ADDRLP4 84
ARGP4
ADDRGP4 CG_G2AnimEntSpineAngles
CALLV
pop
line 5403
;5402:
;5403:	ulAngles[YAW] += torsoAngles[YAW]*0.3;
ADDRLP4 72+4
ADDRLP4 72+4
INDIRF4
CNSTF4 1050253722
ADDRLP4 0+4
INDIRF4
MULF4
ADDF4
ASGNF4
line 5404
;5404:	llAngles[YAW] += torsoAngles[YAW]*0.3;
ADDRLP4 84+4
ADDRLP4 84+4
INDIRF4
CNSTF4 1050253722
ADDRLP4 0+4
INDIRF4
MULF4
ADDF4
ASGNF4
line 5405
;5405:	thoracicAngles[YAW] += torsoAngles[YAW]*0.4;
ADDRLP4 60+4
ADDRLP4 60+4
INDIRF4
CNSTF4 1053609165
ADDRLP4 0+4
INDIRF4
MULF4
ADDF4
ASGNF4
line 5407
;5406:
;5407:	ulAngles[PITCH] = torsoAngles[PITCH]*0.3;
ADDRLP4 72
CNSTF4 1050253722
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
line 5408
;5408:	llAngles[PITCH] = torsoAngles[PITCH]*0.3;
ADDRLP4 84
CNSTF4 1050253722
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
line 5409
;5409:	thoracicAngles[PITCH] = torsoAngles[PITCH]*0.4;
ADDRLP4 60
CNSTF4 1053609165
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
line 5411
;5410:
;5411:	ulAngles[ROLL] += torsoAngles[ROLL]*0.3;
ADDRLP4 72+8
ADDRLP4 72+8
INDIRF4
CNSTF4 1050253722
ADDRLP4 0+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 5412
;5412:	llAngles[ROLL] += torsoAngles[ROLL]*0.3;
ADDRLP4 84+8
ADDRLP4 84+8
INDIRF4
CNSTF4 1050253722
ADDRLP4 0+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 5413
;5413:	thoracicAngles[ROLL] += torsoAngles[ROLL]*0.4;
ADDRLP4 60+8
ADDRLP4 60+8
INDIRF4
CNSTF4 1053609165
ADDRLP4 0+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 5415
;5414:
;5415:	CG_G2SetBoneAngles(cent->ghoul2, 0, "upper_lumbar", ulAngles, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time); 
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 192
CNSTI4 0
ASGNI4
ADDRLP4 192
INDIRI4
ARGI4
ADDRGP4 $314
ARGP4
ADDRLP4 72
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 192
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 CG_G2SetBoneAngles
CALLV
pop
line 5416
;5416:	CG_G2SetBoneAngles(cent->ghoul2, 0, "lower_lumbar", llAngles, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time); 
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 196
CNSTI4 0
ASGNI4
ADDRLP4 196
INDIRI4
ARGI4
ADDRGP4 $323
ARGP4
ADDRLP4 84
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 196
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 CG_G2SetBoneAngles
CALLV
pop
line 5417
;5417:	CG_G2SetBoneAngles(cent->ghoul2, 0, "thoracic", thoracicAngles, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time); 
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 200
CNSTI4 0
ASGNI4
ADDRLP4 200
INDIRI4
ARGI4
ADDRGP4 $1173
ARGP4
ADDRLP4 60
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 200
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 CG_G2SetBoneAngles
CALLV
pop
line 5418
;5418:	CG_G2SetBoneAngles(cent->ghoul2, 0, "cervical", vec3_origin, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, cgs.gameModels, 0, cg.time);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 204
CNSTI4 0
ASGNI4
ADDRLP4 204
INDIRI4
ARGI4
ADDRGP4 $1205
ARGP4
ADDRGP4 vec3_origin
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 204
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 CG_G2SetBoneAngles
CALLV
pop
line 5419
;5419:}
LABELV $2742
endproc CG_G2AnimEntAngles 228 44
export CG_DrawNoForceSphere
proc CG_DrawNoForceSphere 217 12
line 5424
;5420:
;5421:#define SMOOTH_G2ANIM_LERPORIGIN
;5422:
;5423:void CG_DrawNoForceSphere(centity_t *cent, vec3_t origin, float scale, int shader)
;5424:{
line 5428
;5425:	refEntity_t ent;
;5426:	
;5427:	// Don't draw the shield when the player is dead.
;5428:	if (cent->currentState.eFlags & EF_DEAD)
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $2846
line 5429
;5429:	{
line 5430
;5430:		return;
ADDRGP4 $2845
JUMPV
LABELV $2846
line 5433
;5431:	}
;5432:
;5433:	memset( &ent, 0, sizeof( ent ) );
ADDRLP4 0
ARGP4
CNSTI4 0
ARGI4
CNSTI4 212
ARGI4
ADDRGP4 memset
CALLP4
pop
line 5435
;5434:
;5435:	VectorCopy( origin, ent.origin );
ADDRLP4 0+52
ADDRFP4 4
INDIRP4
INDIRB
ASGNB 12
line 5436
;5436:	ent.origin[2] += 9.0;
ADDRLP4 0+52+8
ADDRLP4 0+52+8
INDIRF4
CNSTF4 1091567616
ADDF4
ASGNF4
line 5438
;5437:
;5438:	VectorSubtract(cg.refdef.vieworg, ent.origin, ent.axis[0]);
ADDRLP4 0+12
ADDRGP4 cg+3616+24
INDIRF4
ADDRLP4 0+52
INDIRF4
SUBF4
ASGNF4
ADDRLP4 0+12+4
ADDRGP4 cg+3616+24+4
INDIRF4
ADDRLP4 0+52+4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 0+12+8
ADDRGP4 cg+3616+24+8
INDIRF4
ADDRLP4 0+52+8
INDIRF4
SUBF4
ASGNF4
line 5439
;5439:	if (VectorNormalize(ent.axis[0]) <= 0.1f)
ADDRLP4 0+12
ARGP4
ADDRLP4 212
ADDRGP4 VectorNormalize
CALLF4
ASGNF4
ADDRLP4 212
INDIRF4
CNSTF4 1036831949
GTF4 $2869
line 5440
;5440:	{	// Entity is right on vieworg.  quit.
line 5441
;5441:		return;
ADDRGP4 $2845
JUMPV
LABELV $2869
line 5444
;5442:	}
;5443:
;5444:	VectorCopy(cg.refdef.viewaxis[2], ent.axis[2]);
ADDRLP4 0+12+24
ADDRGP4 cg+3616+36+24
INDIRB
ASGNB 12
line 5445
;5445:	CrossProduct(ent.axis[0], ent.axis[2], ent.axis[1]);
ADDRLP4 0+12
ARGP4
ADDRLP4 0+12+24
ARGP4
ADDRLP4 0+12+12
ARGP4
ADDRGP4 CrossProduct
CALLV
pop
line 5447
;5446:
;5447:	VectorScale(ent.axis[0], scale, ent.axis[0]);
ADDRLP4 0+12
ADDRLP4 0+12
INDIRF4
ADDRFP4 8
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+4
ADDRLP4 0+12+4
INDIRF4
ADDRFP4 8
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+8
ADDRLP4 0+12+8
INDIRF4
ADDRFP4 8
INDIRF4
MULF4
ASGNF4
line 5448
;5448:	VectorScale(ent.axis[1], scale, ent.axis[1]);
ADDRLP4 0+12+12
ADDRLP4 0+12+12
INDIRF4
ADDRFP4 8
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+12+4
ADDRLP4 0+12+12+4
INDIRF4
ADDRFP4 8
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+12+8
ADDRLP4 0+12+12+8
INDIRF4
ADDRFP4 8
INDIRF4
MULF4
ASGNF4
line 5449
;5449:	VectorScale(ent.axis[2], -scale, ent.axis[2]);
ADDRLP4 0+12+24
ADDRLP4 0+12+24
INDIRF4
ADDRFP4 8
INDIRF4
NEGF4
MULF4
ASGNF4
ADDRLP4 0+12+24+4
ADDRLP4 0+12+24+4
INDIRF4
ADDRFP4 8
INDIRF4
NEGF4
MULF4
ASGNF4
ADDRLP4 0+12+24+8
ADDRLP4 0+12+24+8
INDIRF4
ADDRFP4 8
INDIRF4
NEGF4
MULF4
ASGNF4
line 5451
;5450:
;5451:	ent.shaderRGBA[3] = (cent->currentState.genericenemyindex - cg.time)/8;
ADDRLP4 0+80+3
ADDRFP4 0
INDIRP4
CNSTI4 172
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
SUBI4
CNSTI4 8
DIVI4
CVIU4 4
CVUU1 4
ASGNU1
line 5452
;5452:	ent.renderfx |= RF_RGB_TINT;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 2048
BORI4
ASGNI4
line 5453
;5453:	if (ent.shaderRGBA[3] > 200)
ADDRLP4 0+80+3
INDIRU1
CVUI4 1
CNSTI4 200
LEI4 $2928
line 5454
;5454:	{
line 5455
;5455:		ent.shaderRGBA[3] = 200;
ADDRLP4 0+80+3
CNSTU1 200
ASGNU1
line 5456
;5456:	}
LABELV $2928
line 5457
;5457:	if (ent.shaderRGBA[3] < 1)
ADDRLP4 0+80+3
INDIRU1
CVUI4 1
CNSTI4 1
GEI4 $2934
line 5458
;5458:	{
line 5459
;5459:		ent.shaderRGBA[3] = 1;
ADDRLP4 0+80+3
CNSTU1 1
ASGNU1
line 5460
;5460:	}
LABELV $2934
line 5462
;5461:
;5462:	ent.shaderRGBA[2] = 0;
ADDRLP4 0+80+2
CNSTU1 0
ASGNU1
line 5463
;5463:	ent.shaderRGBA[0] = ent.shaderRGBA[1] = ent.shaderRGBA[3];
ADDRLP4 216
ADDRLP4 0+80+3
INDIRU1
ASGNU1
ADDRLP4 0+80+1
ADDRLP4 216
INDIRU1
ASGNU1
ADDRLP4 0+80
ADDRLP4 216
INDIRU1
ASGNU1
line 5465
;5464:
;5465:	ent.hModel = cgs.media.halfShieldModel;
ADDRLP4 0+8
ADDRGP4 cgs+71064+900
INDIRI4
ASGNI4
line 5466
;5466:	ent.customShader = shader;	
ADDRLP4 0+76
ADDRFP4 12
INDIRI4
ASGNI4
line 5468
;5467:
;5468:	trap_R_AddRefEntityToScene( &ent );
ADDRLP4 0
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 5469
;5469:}
LABELV $2845
endproc CG_DrawNoForceSphere 217 12
export CG_G2Animated
proc CG_G2Animated 612 36
line 5472
;5470:
;5471:void CG_G2Animated( centity_t *cent )
;5472:{
line 5475
;5473:	refEntity_t		legs;
;5474:	refEntity_t		torso;
;5475:	int				renderfx = 0;
ADDRLP4 444
CNSTI4 0
ASGNI4
line 5476
;5476:	qboolean		shadow = qfalse;
ADDRLP4 448
CNSTI4 0
ASGNI4
line 5477
;5477:	float			shadowPlane = 0;
ADDRLP4 452
CNSTF4 0
ASGNF4
line 5478
;5478:	qboolean		dead = qfalse;
ADDRLP4 456
CNSTI4 0
ASGNI4
line 5482
;5479:	vec3_t			rootAngles;
;5480:#ifdef SMOOTH_G2ANIM_LERPORIGIN
;5481:	vec3_t			posDif;
;5482:	float			smoothFactor = 0.4f;
ADDRLP4 228
CNSTF4 1053609165
ASGNF4
line 5483
;5483:	int				k = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 5486
;5484:#endif
;5485:
;5486:	cent->ghoul2 = cg_entities[cent->currentState.number].ghoul2;
ADDRLP4 472
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 472
INDIRP4
CNSTI4 952
ADDP4
CNSTI4 1920
ADDRLP4 472
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+952
ADDP4
INDIRP4
ASGNP4
line 5488
;5487:
;5488:	if (!cent->ghoul2)
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $2953
line 5489
;5489:	{ //Initialize this g2 anim ent, then return (will start rendering next frame)
line 5490
;5490:		const char *modelName = CG_ConfigString( CS_MODELS+cent->currentState.modelindex );
ADDRFP4 0
INDIRP4
CNSTI4 212
ADDP4
INDIRI4
CNSTI4 32
ADDI4
ARGI4
ADDRLP4 480
ADDRGP4 CG_ConfigString
CALLP4
ASGNP4
ADDRLP4 476
ADDRLP4 480
INDIRP4
ASGNP4
line 5492
;5491:
;5492:		if (modelName && modelName[0])
ADDRLP4 484
ADDRLP4 476
INDIRP4
ASGNP4
ADDRLP4 484
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $2951
ADDRLP4 484
INDIRP4
INDIRI1
CVII4 1
CNSTI4 0
EQI4 $2951
line 5493
;5493:		{
line 5494
;5494:			trap_G2API_InitGhoul2Model(&cent->ghoul2, modelName, 0, 0, 0, 0, 0);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
ARGP4
ADDRLP4 476
INDIRP4
ARGP4
ADDRLP4 488
CNSTI4 0
ASGNI4
ADDRLP4 488
INDIRI4
ARGI4
ADDRLP4 488
INDIRI4
ARGI4
ADDRLP4 488
INDIRI4
ARGI4
ADDRLP4 488
INDIRI4
ARGI4
ADDRLP4 488
INDIRI4
ARGI4
ADDRGP4 trap_G2API_InitGhoul2Model
CALLI4
pop
line 5495
;5495:			if (cent->ghoul2)
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $2951
line 5496
;5496:			{
line 5497
;5497:				trap_G2API_AddBolt(cent->ghoul2, 0, "*r_hand");
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $307
ARGP4
ADDRGP4 trap_G2API_AddBolt
CALLI4
pop
line 5498
;5498:				trap_G2API_AddBolt(cent->ghoul2, 0, "*l_hand");
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $320
ARGP4
ADDRGP4 trap_G2API_AddBolt
CALLI4
pop
line 5499
;5499:				trap_G2API_AddBolt(cent->ghoul2, 0, "*head_top");
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $321
ARGP4
ADDRGP4 trap_G2API_AddBolt
CALLI4
pop
line 5500
;5500:				trap_G2API_AddBolt(cent->ghoul2, 0, "Motion");
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $322
ARGP4
ADDRGP4 trap_G2API_AddBolt
CALLI4
pop
line 5501
;5501:			}
line 5502
;5502:		}
line 5503
;5503:		return;
ADDRGP4 $2951
JUMPV
LABELV $2953
line 5506
;5504:	}
;5505:
;5506:	if (cent->currentState.weapon &&
ADDRLP4 476
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 476
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2959
ADDRLP4 476
INDIRP4
CNSTI4 952
ADDP4
ARGP4
CNSTI4 1
ARGI4
ADDRLP4 480
ADDRGP4 trap_G2API_HasGhoul2ModelOnIndex
CALLI4
ASGNI4
ADDRLP4 484
CNSTI4 0
ASGNI4
ADDRLP4 480
INDIRI4
ADDRLP4 484
INDIRI4
NEI4 $2959
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
ADDRLP4 484
INDIRI4
NEI4 $2959
line 5509
;5507:		!trap_G2API_HasGhoul2ModelOnIndex(&(cent->ghoul2), 1) &&
;5508:		!(cent->currentState.eFlags & EF_DEAD))
;5509:	{ //if the server says we have a weapon and we haven't copied one onto ourselves yet, then do so.
line 5510
;5510:		trap_G2API_CopySpecificGhoul2Model(g2WeaponInstances[cent->currentState.weapon], 0, cent->ghoul2, 1);
ADDRLP4 488
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 488
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 g2WeaponInstances
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 488
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 1
ARGI4
ADDRGP4 trap_G2API_CopySpecificGhoul2Model
CALLV
pop
line 5511
;5511:	}
LABELV $2959
line 5513
;5512:
;5513:	if (cent->torsoBolt && !(cent->currentState.eFlags & EF_DEAD))
ADDRLP4 488
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 492
CNSTI4 0
ASGNI4
ADDRLP4 488
INDIRP4
CNSTI4 1012
ADDP4
INDIRI4
ADDRLP4 492
INDIRI4
EQI4 $2961
ADDRLP4 488
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
ADDRLP4 492
INDIRI4
NEI4 $2961
line 5514
;5514:	{ //he's alive and has a limb missing still, reattach it and reset the weapon
line 5515
;5515:		CG_ReattachLimb(cent);
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CG_ReattachLimb
CALLV
pop
line 5516
;5516:	}
LABELV $2961
line 5519
;5517:
;5518:#ifdef SMOOTH_G2ANIM_LERPORIGIN
;5519:	if (DistanceSquared(cent->turAngles,cent->lerpOrigin)>12000.0f)
ADDRLP4 496
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 496
INDIRP4
CNSTI4 1016
ADDP4
ARGP4
ADDRLP4 496
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRLP4 500
ADDRGP4 DistanceSquared
CALLF4
ASGNF4
ADDRLP4 500
INDIRF4
CNSTF4 1178304512
LEF4 $2963
line 5520
;5520:	{
line 5521
;5521:		VectorCopy(cent->lerpOrigin, cent->turAngles);
ADDRLP4 504
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 504
INDIRP4
CNSTI4 1016
ADDP4
ADDRLP4 504
INDIRP4
CNSTI4 928
ADDP4
INDIRB
ASGNB 12
line 5522
;5522:	}
LABELV $2963
line 5524
;5523:
;5524:	VectorSubtract(cent->lerpOrigin, cent->turAngles, posDif);
ADDRLP4 504
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 216
ADDRLP4 504
INDIRP4
CNSTI4 928
ADDP4
INDIRF4
ADDRLP4 504
INDIRP4
CNSTI4 1016
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 216+4
ADDRLP4 504
INDIRP4
CNSTI4 932
ADDP4
INDIRF4
ADDRLP4 504
INDIRP4
CNSTI4 1020
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 508
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 216+8
ADDRLP4 508
INDIRP4
CNSTI4 936
ADDP4
INDIRF4
ADDRLP4 508
INDIRP4
CNSTI4 1024
ADDP4
INDIRF4
SUBF4
ASGNF4
line 5526
;5525:	
;5526:	for (k=0;k<3;k++)
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $2967
line 5527
;5527:	{
line 5528
;5528:		cent->turAngles[k]=(cent->turAngles[k]+posDif[k]*smoothFactor);
ADDRLP4 512
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 516
ADDRLP4 512
INDIRI4
ADDRFP4 0
INDIRP4
CNSTI4 1016
ADDP4
ADDP4
ASGNP4
ADDRLP4 516
INDIRP4
ADDRLP4 516
INDIRP4
INDIRF4
ADDRLP4 512
INDIRI4
ADDRLP4 216
ADDP4
INDIRF4
ADDRLP4 228
INDIRF4
MULF4
ADDF4
ASGNF4
line 5529
;5529:		cent->lerpOrigin[k]=cent->turAngles[k];
ADDRLP4 520
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ASGNI4
ADDRLP4 524
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 520
INDIRI4
ADDRLP4 524
INDIRP4
CNSTI4 928
ADDP4
ADDP4
ADDRLP4 520
INDIRI4
ADDRLP4 524
INDIRP4
CNSTI4 1016
ADDP4
ADDP4
INDIRF4
ASGNF4
line 5530
;5530:	}
LABELV $2968
line 5526
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 3
LTI4 $2967
line 5533
;5531:#endif
;5532:
;5533:	if (cent->currentState.weapon)
ADDRFP4 0
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2971
line 5534
;5534:	{
line 5535
;5535:		weaponInfo_t *weapon = NULL;
ADDRLP4 512
CNSTP4 0
ASGNP4
line 5537
;5536:
;5537:		CG_RegisterWeapon(cent->currentState.weapon);
ADDRFP4 0
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
ARGI4
ADDRGP4 CG_RegisterWeapon
CALLV
pop
line 5539
;5538:
;5539:		weapon = &cg_weapons[cent->currentState.weapon];
ADDRLP4 512
CNSTI4 208
ADDRFP4 0
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
MULI4
ADDRGP4 cg_weapons
ADDP4
ASGNP4
line 5540
;5540:		if (weapon)
ADDRLP4 512
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $2973
line 5541
;5541:		{
line 5542
;5542:			if ( cg.time - cent->muzzleFlashTime <= MUZZLE_FLASH_TIME + 10 )
ADDRGP4 cg+64
INDIRI4
ADDRFP4 0
INDIRP4
CNSTI4 600
ADDP4
INDIRI4
SUBI4
CNSTI4 30
GTI4 $2975
line 5543
;5543:			{	// Handle muzzle flashes
line 5547
;5544:				vec3_t flashorigin, flashdir;
;5545:				mdxaBone_t boltMatrix;
;5546:
;5547:				if (trap_G2API_HasGhoul2ModelOnIndex(&(cent->ghoul2), 1))
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
ARGP4
CNSTI4 1
ARGI4
ADDRLP4 588
ADDRGP4 trap_G2API_HasGhoul2ModelOnIndex
CALLI4
ASGNI4
ADDRLP4 588
INDIRI4
CNSTI4 0
EQI4 $2978
line 5548
;5548:				{
line 5550
;5549:					vec3_t boltAngle;
;5550:					VectorClear(boltAngle);
ADDRLP4 604
CNSTF4 0
ASGNF4
ADDRLP4 592+8
ADDRLP4 604
INDIRF4
ASGNF4
ADDRLP4 592+4
ADDRLP4 604
INDIRF4
ASGNF4
ADDRLP4 592
ADDRLP4 604
INDIRF4
ASGNF4
line 5551
;5551:					boltAngle[YAW] = cent->lerpAngles[YAW];
ADDRLP4 592+4
ADDRFP4 0
INDIRP4
CNSTI4 944
ADDP4
INDIRF4
ASGNF4
line 5552
;5552: 					trap_G2API_GetBoltMatrix(cent->ghoul2, 1, 0, &boltMatrix, boltAngle, cent->lerpOrigin, cg.time, cgs.gameModels, cent->modelScale);
ADDRLP4 608
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 608
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 1
ARGI4
CNSTI4 0
ARGI4
ADDRLP4 516
ARGP4
ADDRLP4 592
ARGP4
ADDRLP4 608
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 608
INDIRP4
CNSTI4 964
ADDP4
ARGP4
ADDRGP4 trap_G2API_GetBoltMatrix
CALLI4
pop
line 5554
;5553:					
;5554:					trap_G2API_GiveMeVectorFromMatrix(&boltMatrix, ORIGIN, flashorigin);
ADDRLP4 516
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 564
ARGP4
ADDRGP4 trap_G2API_GiveMeVectorFromMatrix
CALLV
pop
line 5555
;5555:					trap_G2API_GiveMeVectorFromMatrix(&boltMatrix, POSITIVE_X, flashdir);
ADDRLP4 516
ARGP4
CNSTI4 1
ARGI4
ADDRLP4 576
ARGP4
ADDRGP4 trap_G2API_GiveMeVectorFromMatrix
CALLV
pop
line 5557
;5556:
;5557:					if ( cent->currentState.eFlags & EF_ALT_FIRING )
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 512
BANDI4
CNSTI4 0
EQI4 $2985
line 5558
;5558:					{	// Check the alt firing first.
line 5559
;5559:						if (weapon->altMuzzleEffect)
ADDRLP4 512
INDIRP4
CNSTI4 156
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2986
line 5560
;5560:						{
line 5561
;5561:							trap_FX_PlayEffectID(weapon->altMuzzleEffect, flashorigin, flashdir);
ADDRLP4 512
INDIRP4
CNSTI4 156
ADDP4
INDIRI4
ARGI4
ADDRLP4 564
ARGP4
ADDRLP4 576
ARGP4
ADDRGP4 trap_FX_PlayEffectID
CALLV
pop
line 5562
;5562:						}
line 5563
;5563:					}
ADDRGP4 $2986
JUMPV
LABELV $2985
line 5565
;5564:					else
;5565:					{	// Regular firing
line 5566
;5566:						if (weapon->muzzleEffect)
ADDRLP4 512
INDIRP4
CNSTI4 92
ADDP4
INDIRI4
CNSTI4 0
EQI4 $2989
line 5567
;5567:						{
line 5568
;5568:							trap_FX_PlayEffectID(weapon->muzzleEffect, flashorigin, flashdir);
ADDRLP4 512
INDIRP4
CNSTI4 92
ADDP4
INDIRI4
ARGI4
ADDRLP4 564
ARGP4
ADDRLP4 576
ARGP4
ADDRGP4 trap_FX_PlayEffectID
CALLV
pop
line 5569
;5569:						}
LABELV $2989
line 5570
;5570:					}
LABELV $2986
line 5571
;5571:				}
LABELV $2978
line 5572
;5572:			}
LABELV $2975
line 5573
;5573:		}
LABELV $2973
line 5574
;5574:	}
LABELV $2971
line 5576
;5575:
;5576:	memset (&legs, 0, sizeof(legs));
ADDRLP4 4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 212
ARGI4
ADDRGP4 memset
CALLP4
pop
line 5578
;5577:
;5578:	CG_SetGhoul2Info(&legs, cent);
ADDRLP4 4
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CG_SetGhoul2Info
CALLV
pop
line 5580
;5579:
;5580:	VectorSet(legs.modelScale, 1,1,1);
ADDRLP4 4+196
CNSTF4 1065353216
ASGNF4
ADDRLP4 4+196+4
CNSTF4 1065353216
ASGNF4
ADDRLP4 4+196+8
CNSTF4 1065353216
ASGNF4
line 5581
;5581:	legs.radius = cent->currentState.g2radius;
ADDRLP4 4+92
ADDRFP4 0
INDIRP4
CNSTI4 208
ADDP4
INDIRI4
CVIF4 4
ASGNF4
line 5582
;5582:	VectorClear(legs.angles);
ADDRLP4 512
CNSTF4 0
ASGNF4
ADDRLP4 4+184+8
ADDRLP4 512
INDIRF4
ASGNF4
ADDRLP4 4+184+4
ADDRLP4 512
INDIRF4
ASGNF4
ADDRLP4 4+184
ADDRLP4 512
INDIRF4
ASGNF4
line 5585
;5583:
;5584:	// add the shadow
;5585:	shadow = CG_PlayerShadow( cent, &shadowPlane );
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 452
ARGP4
ADDRLP4 516
ADDRGP4 CG_PlayerShadow
CALLI4
ASGNI4
ADDRLP4 448
ADDRLP4 516
INDIRI4
ASGNI4
line 5587
;5586:
;5587:	if ( cg_shadows.integer == 3 && shadow ) {
ADDRGP4 cg_shadows+12
INDIRI4
CNSTI4 3
NEI4 $3002
ADDRLP4 448
INDIRI4
CNSTI4 0
EQI4 $3002
line 5588
;5588:		renderfx |= RF_SHADOW_PLANE;
ADDRLP4 444
ADDRLP4 444
INDIRI4
CNSTI4 256
BORI4
ASGNI4
line 5589
;5589:	}
LABELV $3002
line 5590
;5590:	renderfx |= RF_LIGHTING_ORIGIN;			// use the same origin for all
ADDRLP4 444
ADDRLP4 444
INDIRI4
CNSTI4 128
BORI4
ASGNI4
line 5592
;5591:
;5592:	VectorCopy( cent->lerpOrigin, legs.origin );
ADDRLP4 4+52
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
INDIRB
ASGNB 12
line 5593
;5593:	VectorCopy( cent->lerpOrigin, legs.lightingOrigin );
ADDRLP4 4+108
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
INDIRB
ASGNB 12
line 5594
;5594:	legs.shadowPlane = shadowPlane;
ADDRLP4 4+120
ADDRLP4 452
INDIRF4
ASGNF4
line 5595
;5595:	legs.renderfx = renderfx;
ADDRLP4 4+4
ADDRLP4 444
INDIRI4
ASGNI4
line 5596
;5596:	VectorCopy (legs.origin, legs.oldorigin);	// don't positionally lerp at all
ADDRLP4 4+64
ADDRLP4 4+52
INDIRB
ASGNB 12
line 5598
;5597:
;5598:	CG_G2AnimEntAngles( cent, legs.axis, rootAngles );
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 4+12
ARGP4
ADDRLP4 460
ARGP4
ADDRGP4 CG_G2AnimEntAngles
CALLV
pop
line 5600
;5599:
;5600:	if (cent->currentState.eFlags & EF_DEAD)
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $3012
line 5601
;5601:	{
line 5602
;5602:		dead = qtrue;
ADDRLP4 456
CNSTI4 1
ASGNI4
line 5606
;5603:		//rww - since our angles are fixed when we're dead this shouldn't be an issue anyway
;5604:		//we need to render the dying/dead player because we are now spawning the body on respawn instead of death
;5605:		//return;
;5606:	}
LABELV $3012
line 5608
;5607:
;5608:	ScaleModelAxis(&legs);
ADDRLP4 4
ARGP4
ADDRGP4 ScaleModelAxis
CALLV
pop
line 5610
;5609:
;5610:	memset( &torso, 0, sizeof(torso) );
ADDRLP4 232
ARGP4
CNSTI4 0
ARGI4
CNSTI4 212
ARGI4
ADDRGP4 memset
CALLP4
pop
line 5612
;5611:
;5612:	VectorCopy(cent->turAngles, cg_entities[cent->currentState.number].turAngles);
ADDRLP4 520
ADDRFP4 0
INDIRP4
ASGNP4
CNSTI4 1920
ADDRLP4 520
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+1016
ADDP4
ADDRLP4 520
INDIRP4
CNSTI4 1016
ADDP4
INDIRB
ASGNB 12
line 5613
;5613:	VectorCopy(legs.origin, cg_entities[cent->currentState.number].lerpOrigin);
CNSTI4 1920
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+928
ADDP4
ADDRLP4 4+52
INDIRB
ASGNB 12
line 5616
;5614:
;5615:	// get the animation state (after rotation, to allow feet shuffle)
;5616:	CG_G2EntAnimation( cent, &legs.oldframe, &legs.frame, &legs.backlerp,
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 4+124
ARGP4
ADDRLP4 4+104
ARGP4
ADDRLP4 4+128
ARGP4
ADDRLP4 232+124
ARGP4
ADDRLP4 232+104
ARGP4
ADDRLP4 232+128
ARGP4
ADDRGP4 CG_G2EntAnimation
CALLV
pop
line 5624
;5617:		 &torso.oldframe, &torso.frame, &torso.backlerp );
;5618:
;5619:	//trap_R_AddRefEntityToScene( &legs );
;5620:
;5621:
;5622:	// Electricity
;5623:	//------------------------------------------------
;5624:	if ( cent->currentState.emplacedOwner > cg.time ) 
ADDRFP4 0
INDIRP4
CNSTI4 180
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
LEI4 $3023
line 5625
;5625:	{
line 5626
;5626:		int	dif = cent->currentState.emplacedOwner - cg.time;
ADDRLP4 524
ADDRFP4 0
INDIRP4
CNSTI4 180
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
SUBI4
ASGNI4
line 5628
;5627:
;5628:		if ( dif > 0 && random() > 0.4f )
ADDRLP4 524
INDIRI4
CNSTI4 0
LEI4 $3027
ADDRLP4 528
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 528
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
CNSTF4 1053609165
LEF4 $3027
line 5629
;5629:		{
line 5631
;5630:			// fade out over the last 500 ms
;5631:			int brightness = 255;
ADDRLP4 532
CNSTI4 255
ASGNI4
line 5633
;5632:			
;5633:			if ( dif < 500 )
ADDRLP4 524
INDIRI4
CNSTI4 500
GEI4 $3029
line 5634
;5634:			{
line 5635
;5635:				brightness = floor((dif - 500.0f) / 500.0f * 255.0f );
ADDRLP4 536
CNSTF4 1140457472
ASGNF4
CNSTF4 1132396544
ADDRLP4 524
INDIRI4
CVIF4 4
ADDRLP4 536
INDIRF4
SUBF4
ADDRLP4 536
INDIRF4
DIVF4
MULF4
ARGF4
ADDRLP4 540
ADDRGP4 floor
CALLF4
ASGNF4
ADDRLP4 532
ADDRLP4 540
INDIRF4
CVFI4 4
ASGNI4
line 5636
;5636:			}
LABELV $3029
line 5638
;5637:
;5638:			legs.renderfx &= ~RF_FORCE_ENT_ALPHA;
ADDRLP4 4+4
ADDRLP4 4+4
INDIRI4
CNSTI4 -1025
BANDI4
ASGNI4
line 5639
;5639:			legs.renderfx &= ~RF_MINLIGHT;
ADDRLP4 4+4
ADDRLP4 4+4
INDIRI4
CNSTI4 -2
BANDI4
ASGNI4
line 5641
;5640:
;5641:			legs.renderfx |= RF_RGB_TINT;
ADDRLP4 4+4
ADDRLP4 4+4
INDIRI4
CNSTI4 2048
BORI4
ASGNI4
line 5642
;5642:			legs.shaderRGBA[0] = legs.shaderRGBA[1] = legs.shaderRGBA[2] = brightness;
ADDRLP4 536
ADDRLP4 532
INDIRI4
CVIU4 4
CVUU1 4
ASGNU1
ADDRLP4 4+80+2
ADDRLP4 536
INDIRU1
ASGNU1
ADDRLP4 4+80+1
ADDRLP4 536
INDIRU1
ASGNU1
ADDRLP4 4+80
ADDRLP4 536
INDIRU1
ASGNU1
line 5643
;5643:			legs.shaderRGBA[3] = 255;
ADDRLP4 4+80+3
CNSTU1 255
ASGNU1
line 5645
;5644:
;5645:			if ( rand() & 1 )
ADDRLP4 540
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 540
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $3041
line 5646
;5646:			{
line 5647
;5647:				legs.customShader = cgs.media.electricBodyShader;	
ADDRLP4 4+76
ADDRGP4 cgs+71064+396
INDIRI4
ASGNI4
line 5648
;5648:			}
ADDRGP4 $3042
JUMPV
LABELV $3041
line 5650
;5649:			else
;5650:			{
line 5651
;5651:				legs.customShader = cgs.media.electricBody2Shader;
ADDRLP4 4+76
ADDRGP4 cgs+71064+400
INDIRI4
ASGNI4
line 5652
;5652:			}
LABELV $3042
line 5657
;5653:
;5654:			// adnan
;5655:         //trap_R_AddRefEntityToScene( &legs );
;5656:
;5657:			if ( random() > 0.9f )
ADDRLP4 544
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 544
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
CNSTF4 1063675494
LEF4 $3049
line 5658
;5658:				trap_S_StartSound ( NULL, cent->currentState.number, CHAN_AUTO, cgs.media.crackleSound );
CNSTP4 0
ARGP4
ADDRFP4 0
INDIRP4
INDIRI4
ARGI4
CNSTI4 0
ARGI4
ADDRGP4 cgs+71064+676
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
LABELV $3049
line 5659
;5659:		}
LABELV $3027
line 5660
;5660:	} 
LABELV $3023
line 5662
;5661:
;5662:	if (cent->currentState.genericenemyindex > cg.time)
ADDRFP4 0
INDIRP4
CNSTI4 172
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
LEI4 $3053
line 5663
;5663:	{
line 5664
;5664:		CG_DrawNoForceSphere(cent, cent->lerpOrigin, 1.4, cgs.media.ysalimariShader );
ADDRLP4 524
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 524
INDIRP4
ARGP4
ADDRLP4 524
INDIRP4
CNSTI4 928
ADDP4
ARGP4
CNSTF4 1068708659
ARGF4
ADDRGP4 cgs+71064+580
INDIRI4
ARGI4
ADDRGP4 CG_DrawNoForceSphere
CALLV
pop
line 5665
;5665:	}
LABELV $3053
line 5666
;5666:}
LABELV $2951
endproc CG_G2Animated 612 36
data
export cgFPLSState
align 4
LABELV cgFPLSState
byte 4 0
export CG_ForceFPLSPlayerModel
code
proc CG_ForceFPLSPlayerModel 84 44
line 5672
;5667://rww - here ends the majority of my g2animent stuff.
;5668:
;5669:int cgFPLSState = 0;
;5670:
;5671:void CG_ForceFPLSPlayerModel(centity_t *cent, clientInfo_t *ci)
;5672:{
line 5673
;5673:	int clientNum = cent->currentState.number;
ADDRLP4 4
ADDRFP4 0
INDIRP4
INDIRI4
ASGNI4
line 5676
;5674:	animation_t *anim;
;5675:
;5676:	if (cg_fpls.integer && !cg.renderingThirdPerson)
ADDRLP4 8
CNSTI4 0
ASGNI4
ADDRGP4 cg_fpls+12
INDIRI4
ADDRLP4 8
INDIRI4
EQI4 $3059
ADDRGP4 cg+88
INDIRI4
ADDRLP4 8
INDIRI4
NEI4 $3059
line 5677
;5677:	{
line 5680
;5678:		int				skinHandle;
;5679:
;5680:		skinHandle = trap_R_RegisterSkin("models/players/kyle/model_fpls2.skin");
ADDRGP4 $3063
ARGP4
ADDRLP4 16
ADDRGP4 trap_R_RegisterSkin
CALLI4
ASGNI4
ADDRLP4 12
ADDRLP4 16
INDIRI4
ASGNI4
line 5682
;5681:
;5682:		trap_G2API_CleanGhoul2Models(&(ci->ghoul2Model));
ADDRFP4 4
INDIRP4
CNSTI4 504
ADDP4
ARGP4
ADDRGP4 trap_G2API_CleanGhoul2Models
CALLV
pop
line 5684
;5683:
;5684:		ci->torsoSkin = skinHandle;
ADDRFP4 4
INDIRP4
CNSTI4 496
ADDP4
ADDRLP4 12
INDIRI4
ASGNI4
line 5685
;5685:		trap_G2API_InitGhoul2Model(&ci->ghoul2Model, "models/players/kyle/model.glm", 0, ci->torsoSkin, 0, 0, 0);
ADDRLP4 20
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
CNSTI4 504
ADDP4
ARGP4
ADDRGP4 $3064
ARGP4
ADDRLP4 24
CNSTI4 0
ASGNI4
ADDRLP4 24
INDIRI4
ARGI4
ADDRLP4 20
INDIRP4
CNSTI4 496
ADDP4
INDIRI4
ARGI4
ADDRLP4 24
INDIRI4
ARGI4
ADDRLP4 24
INDIRI4
ARGI4
ADDRLP4 24
INDIRI4
ARGI4
ADDRGP4 trap_G2API_InitGhoul2Model
CALLI4
pop
line 5687
;5686:
;5687:		ci->bolt_rhand = trap_G2API_AddBolt(ci->ghoul2Model, 0, "*r_hand");
ADDRLP4 28
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 28
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $307
ARGP4
ADDRLP4 32
ADDRGP4 trap_G2API_AddBolt
CALLI4
ASGNI4
ADDRLP4 28
INDIRP4
CNSTI4 512
ADDP4
ADDRLP4 32
INDIRI4
ASGNI4
line 5689
;5688:		
;5689:		trap_G2API_SetBoneAnim(ci->ghoul2Model, 0, "model_root", 0, 12, BONE_ANIM_OVERRIDE_LOOP, 1.0f, cg.time, -1, -1);
ADDRFP4 4
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
ADDRLP4 36
CNSTI4 0
ASGNI4
ADDRLP4 36
INDIRI4
ARGI4
ADDRGP4 $310
ARGP4
ADDRLP4 36
INDIRI4
ARGI4
CNSTI4 12
ARGI4
CNSTI4 16
ARGI4
CNSTF4 1065353216
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
CNSTF4 3212836864
ARGF4
CNSTI4 -1
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 5690
;5690:		trap_G2API_SetBoneAngles(ci->ghoul2Model, 0, "upper_lumbar", vec3_origin, BONE_ANGLES_POSTMULT, POSITIVE_X, NEGATIVE_Y, NEGATIVE_Z, NULL, 0, cg.time);
ADDRFP4 4
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
ADDRLP4 40
CNSTI4 0
ASGNI4
ADDRLP4 40
INDIRI4
ARGI4
ADDRGP4 $314
ARGP4
ADDRGP4 vec3_origin
ARGP4
CNSTI4 2
ARGI4
CNSTI4 1
ARGI4
CNSTI4 6
ARGI4
CNSTI4 5
ARGI4
CNSTP4 0
ARGP4
ADDRLP4 40
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAngles
CALLI4
pop
line 5691
;5691:		trap_G2API_SetBoneAngles(ci->ghoul2Model, 0, "cranium", vec3_origin, BONE_ANGLES_POSTMULT, POSITIVE_Z, NEGATIVE_Y, POSITIVE_X, NULL, 0, cg.time);
ADDRFP4 4
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
ADDRLP4 44
CNSTI4 0
ASGNI4
ADDRLP4 44
INDIRI4
ARGI4
ADDRGP4 $318
ARGP4
ADDRGP4 vec3_origin
ARGP4
ADDRLP4 48
CNSTI4 2
ASGNI4
ADDRLP4 48
INDIRI4
ARGI4
ADDRLP4 48
INDIRI4
ARGI4
CNSTI4 6
ARGI4
CNSTI4 1
ARGI4
CNSTP4 0
ARGP4
ADDRLP4 44
INDIRI4
ARGI4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAngles
CALLI4
pop
line 5693
;5692:
;5693:		ci->bolt_lhand = trap_G2API_AddBolt(ci->ghoul2Model, 0, "*l_hand");
ADDRLP4 52
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 52
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $320
ARGP4
ADDRLP4 56
ADDRGP4 trap_G2API_AddBolt
CALLI4
ASGNI4
ADDRLP4 52
INDIRP4
CNSTI4 516
ADDP4
ADDRLP4 56
INDIRI4
ASGNI4
line 5694
;5694:		ci->bolt_head = trap_G2API_AddBolt(ci->ghoul2Model, 0, "*head_top");
ADDRLP4 60
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 60
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $321
ARGP4
ADDRLP4 64
ADDRGP4 trap_G2API_AddBolt
CALLI4
ASGNI4
ADDRLP4 60
INDIRP4
CNSTI4 520
ADDP4
ADDRLP4 64
INDIRI4
ASGNI4
line 5696
;5695:
;5696:		ci->bolt_motion = trap_G2API_AddBolt(ci->ghoul2Model, 0, "Motion");
ADDRLP4 68
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 68
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $322
ARGP4
ADDRLP4 72
ADDRGP4 trap_G2API_AddBolt
CALLI4
ASGNI4
ADDRLP4 68
INDIRP4
CNSTI4 524
ADDP4
ADDRLP4 72
INDIRI4
ASGNI4
line 5699
;5697:
;5698:		//We need a lower lumbar bolt for footsteps
;5699:		ci->bolt_llumbar = trap_G2API_AddBolt(ci->ghoul2Model, 0, "lower_lumbar");
ADDRLP4 76
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 76
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $323
ARGP4
ADDRLP4 80
ADDRGP4 trap_G2API_AddBolt
CALLI4
ASGNI4
ADDRLP4 76
INDIRP4
CNSTI4 528
ADDP4
ADDRLP4 80
INDIRI4
ASGNI4
line 5700
;5700:	}
ADDRGP4 $3060
JUMPV
LABELV $3059
line 5702
;5701:	else
;5702:	{
line 5703
;5703:		CG_RegisterClientModelname(ci, ci->modelName, ci->skinName, ci->teamName, cent->currentState.number);
ADDRLP4 12
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 12
INDIRP4
ARGP4
ADDRLP4 12
INDIRP4
CNSTI4 160
ADDP4
ARGP4
ADDRLP4 12
INDIRP4
CNSTI4 224
ADDP4
ARGP4
ADDRLP4 12
INDIRP4
CNSTI4 416
ADDP4
ARGP4
ADDRFP4 0
INDIRP4
INDIRI4
ARGI4
ADDRGP4 CG_RegisterClientModelname
CALLI4
pop
line 5704
;5704:	}
LABELV $3060
line 5706
;5705:
;5706:	anim = &bgGlobalAnimations[ (cg_entities[clientNum].currentState.legsAnim & ~ANIM_TOGGLEBIT) ];
ADDRLP4 0
CNSTI4 28
CNSTI4 1920
ADDRLP4 4
INDIRI4
MULI4
ADDRGP4 cg_entities+280
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
MULI4
ADDRGP4 bgGlobalAnimations
ADDP4
ASGNP4
line 5708
;5707:
;5708:	if (anim)
ADDRLP4 0
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $3069
line 5709
;5709:	{
line 5710
;5710:		int flags = BONE_ANIM_OVERRIDE_FREEZE;
ADDRLP4 12
CNSTI4 72
ASGNI4
line 5711
;5711:		int firstFrame = anim->firstFrame;
ADDRLP4 20
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
line 5712
;5712:		int setFrame = -1;
ADDRLP4 16
CNSTI4 -1
ASGNI4
line 5713
;5713:		float animSpeed = 50.0f / anim->frameLerp;
ADDRLP4 24
CNSTF4 1112014848
ADDRLP4 0
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CVIF4 4
DIVF4
ASGNF4
line 5715
;5714:
;5715:		if (anim->loopFrames != -1)
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 -1
EQI4 $3071
line 5716
;5716:		{
line 5717
;5717:			flags |= BONE_ANIM_OVERRIDE_LOOP;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 16
BORI4
ASGNI4
line 5718
;5718:		}
LABELV $3071
line 5720
;5719:
;5720:		if (cent->pe.legs.frame >= anim->firstFrame && cent->pe.legs.frame <= (anim->firstFrame + anim->numFrames))
ADDRLP4 28
ADDRFP4 0
INDIRP4
CNSTI4 652
ADDP4
INDIRI4
ASGNI4
ADDRLP4 36
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 28
INDIRI4
ADDRLP4 36
INDIRI4
LTI4 $3073
ADDRLP4 28
INDIRI4
ADDRLP4 36
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
GTI4 $3073
line 5721
;5721:		{
line 5722
;5722:			setFrame = cent->pe.legs.frame;
ADDRLP4 16
ADDRFP4 0
INDIRP4
CNSTI4 652
ADDP4
INDIRI4
ASGNI4
line 5723
;5723:		}
LABELV $3073
line 5725
;5724:
;5725:		trap_G2API_SetBoneAnim(ci->ghoul2Model, 0, "model_root", firstFrame, anim->firstFrame + anim->numFrames, flags, animSpeed, cg.time, setFrame, 150);
ADDRFP4 4
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $310
ARGP4
ADDRLP4 20
INDIRI4
ARGI4
ADDRLP4 0
INDIRP4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ARGI4
ADDRLP4 12
INDIRI4
ARGI4
ADDRLP4 24
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRLP4 16
INDIRI4
CVIF4 4
ARGF4
CNSTI4 150
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 5727
;5726:
;5727:		cg_entities[clientNum].currentState.legsAnim = 0;
CNSTI4 1920
ADDRLP4 4
INDIRI4
MULI4
ADDRGP4 cg_entities+280
ADDP4
CNSTI4 0
ASGNI4
line 5728
;5728:	}
LABELV $3069
line 5730
;5729:
;5730:	anim = &bgGlobalAnimations[ (cg_entities[clientNum].currentState.torsoAnim & ~ANIM_TOGGLEBIT) ];
ADDRLP4 0
CNSTI4 28
CNSTI4 1920
ADDRLP4 4
INDIRI4
MULI4
ADDRGP4 cg_entities+284
ADDP4
INDIRI4
CNSTI4 -2049
BANDI4
MULI4
ADDRGP4 bgGlobalAnimations
ADDP4
ASGNP4
line 5732
;5731:
;5732:	if (anim)
ADDRLP4 0
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $3078
line 5733
;5733:	{
line 5734
;5734:		int flags = BONE_ANIM_OVERRIDE_FREEZE;
ADDRLP4 12
CNSTI4 72
ASGNI4
line 5735
;5735:		int firstFrame = anim->firstFrame;
ADDRLP4 20
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
line 5736
;5736:		int setFrame = -1;
ADDRLP4 16
CNSTI4 -1
ASGNI4
line 5737
;5737:		float animSpeed = 50.0f / anim->frameLerp;
ADDRLP4 24
CNSTF4 1112014848
ADDRLP4 0
INDIRP4
CNSTI4 12
ADDP4
INDIRI4
CVIF4 4
DIVF4
ASGNF4
line 5739
;5738:
;5739:		if (anim->loopFrames != -1)
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 -1
EQI4 $3080
line 5740
;5740:		{
line 5741
;5741:			flags |= BONE_ANIM_OVERRIDE_LOOP;
ADDRLP4 12
ADDRLP4 12
INDIRI4
CNSTI4 16
BORI4
ASGNI4
line 5742
;5742:		}
LABELV $3080
line 5744
;5743:
;5744:		if (cent->pe.torso.frame >= anim->firstFrame && cent->pe.torso.frame <= (anim->firstFrame + anim->numFrames))
ADDRLP4 28
ADDRFP4 0
INDIRP4
CNSTI4 716
ADDP4
INDIRI4
ASGNI4
ADDRLP4 36
ADDRLP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 28
INDIRI4
ADDRLP4 36
INDIRI4
LTI4 $3082
ADDRLP4 28
INDIRI4
ADDRLP4 36
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
GTI4 $3082
line 5745
;5745:		{
line 5746
;5746:			setFrame = cent->pe.torso.frame;
ADDRLP4 16
ADDRFP4 0
INDIRP4
CNSTI4 716
ADDP4
INDIRI4
ASGNI4
line 5747
;5747:		}
LABELV $3082
line 5749
;5748:
;5749:		trap_G2API_SetBoneAnim(ci->ghoul2Model, 0, "lower_lumbar", firstFrame, anim->firstFrame + anim->numFrames, flags, animSpeed, cg.time, setFrame, 150);
ADDRFP4 4
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $323
ARGP4
ADDRLP4 20
INDIRI4
ARGI4
ADDRLP4 0
INDIRP4
INDIRI4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRI4
ADDI4
ARGI4
ADDRLP4 12
INDIRI4
ARGI4
ADDRLP4 24
INDIRF4
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRLP4 16
INDIRI4
CVIF4 4
ARGF4
CNSTI4 150
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 5751
;5750:
;5751:		cg_entities[clientNum].currentState.torsoAnim = 0;
CNSTI4 1920
ADDRLP4 4
INDIRI4
MULI4
ADDRGP4 cg_entities+284
ADDP4
CNSTI4 0
ASGNI4
line 5752
;5752:	}
LABELV $3078
line 5754
;5753:
;5754:	trap_G2API_CleanGhoul2Models(&(cent->ghoul2));
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
ARGP4
ADDRGP4 trap_G2API_CleanGhoul2Models
CALLV
pop
line 5755
;5755:	trap_G2API_DuplicateGhoul2Instance(ci->ghoul2Model, &cent->ghoul2);
ADDRFP4 4
INDIRP4
CNSTI4 504
ADDP4
INDIRP4
ARGP4
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
ARGP4
ADDRGP4 trap_G2API_DuplicateGhoul2Instance
CALLV
pop
line 5756
;5756:	cg_entities[clientNum].ghoul2 = cent->ghoul2;
CNSTI4 1920
ADDRLP4 4
INDIRI4
MULI4
ADDRGP4 cg_entities+952
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ASGNP4
line 5757
;5757:}
LABELV $3058
endproc CG_ForceFPLSPlayerModel 84 44
export CG_Player
proc CG_Player 1396 44
line 5764
;5758:
;5759:/*
;5760:===============
;5761:CG_Player
;5762:===============
;5763:*/
;5764:void CG_Player( centity_t *cent ) {
line 5770
;5765:	clientInfo_t	*ci;
;5766:	refEntity_t		legs;
;5767:	refEntity_t		torso;
;5768:	int				clientNum;
;5769:	int				renderfx;
;5770:	qboolean		shadow = qfalse;
ADDRLP4 836
CNSTI4 0
ASGNI4
line 5771
;5771:	float			shadowPlane = 0;
ADDRLP4 540
CNSTF4 0
ASGNF4
line 5772
;5772:	qboolean		dead = qfalse;
ADDRLP4 864
CNSTI4 0
ASGNI4
line 5777
;5773:	vec3_t			rootAngles;
;5774:	refEntity_t		seeker;
;5775:	float			angle;
;5776:	vec3_t			angles, dir, elevated, enang, seekorg;
;5777:	int				iwantout = 0, successchange = 0;
ADDRLP4 768
CNSTI4 0
ASGNI4
ADDRLP4 860
CNSTI4 0
ASGNI4
line 5779
;5778:	int				team;
;5779:	float			prefig = 0;
ADDRLP4 856
CNSTF4 0
ASGNF4
line 5789
;5780:	centity_t		*enent;
;5781:	mdxaBone_t 		boltMatrix, lHandMatrix;
;5782:	vec3_t			efOrg;
;5783:	vec3_t			tDir;
;5784:	int				distVelBase;
;5785:
;5786:   // adnan
;5787:   quat_t q;
;5788:
;5789:	int				doAlpha = 0;
ADDRLP4 832
CNSTI4 0
ASGNI4
line 5790
;5790:	int				effectTimeLayer = 0;
ADDRLP4 756
CNSTI4 0
ASGNI4
line 5791
;5791:	qboolean		gotLHandMatrix = qfalse;
ADDRLP4 772
CNSTI4 0
ASGNI4
line 5792
;5792:	qboolean		g2HasWeapon = qfalse;
ADDRLP4 536
CNSTI4 0
ASGNI4
line 5794
;5793:
;5794:	if (cgQueueLoad)
ADDRGP4 cgQueueLoad
INDIRI4
CNSTI4 0
EQI4 $3088
line 5795
;5795:	{
line 5796
;5796:		CG_ActualLoadDeferredPlayers();
ADDRGP4 CG_ActualLoadDeferredPlayers
CALLV
pop
line 5797
;5797:		cgQueueLoad = qfalse;
ADDRGP4 cgQueueLoad
CNSTI4 0
ASGNI4
line 5798
;5798:	}
LABELV $3088
line 5803
;5799:
;5800:	// the client number is stored in clientNum.  It can't be derived
;5801:	// from the entity number, because a single client may have
;5802:	// multiple corpses on the level using the same clientinfo
;5803:	clientNum = cent->currentState.clientNum;
ADDRLP4 760
ADDRFP4 0
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
ASGNI4
line 5804
;5804:	if ( clientNum < 0 || clientNum >= MAX_CLIENTS ) {
ADDRLP4 760
INDIRI4
CNSTI4 0
LTI4 $3092
ADDRLP4 760
INDIRI4
CNSTI4 32
LTI4 $3090
LABELV $3092
line 5805
;5805:		CG_Error( "Bad clientNum on player entity");
ADDRGP4 $3093
ARGP4
ADDRGP4 CG_Error
CALLV
pop
line 5806
;5806:	}
LABELV $3090
line 5807
;5807:	ci = &cgs.clientinfo[ clientNum ];
ADDRLP4 828
CNSTI4 812
ADDRLP4 760
INDIRI4
MULI4
ADDRGP4 cgs+43024
ADDP4
ASGNP4
line 5811
;5808:
;5809:	// it is possible to see corpses from disconnected players that may
;5810:	// not have valid clientinfo
;5811:	if ( !ci->infoValid ) {
ADDRLP4 828
INDIRP4
INDIRI4
CNSTI4 0
NEI4 $3095
line 5812
;5812:		return;
ADDRGP4 $3087
JUMPV
LABELV $3095
line 5815
;5813:	}
;5814:
;5815:	cent->ghoul2 = cg_entities[cent->currentState.number].ghoul2;
ADDRLP4 916
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 916
INDIRP4
CNSTI4 952
ADDP4
CNSTI4 1920
ADDRLP4 916
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+952
ADDP4
INDIRP4
ASGNP4
line 5817
;5816:
;5817:	if (!cent->ghoul2)
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $3098
line 5818
;5818:	{ //not ready yet?
line 5822
;5819:#ifdef _DEBUG
;5820:		Com_Printf("WARNING: Client %i has a null ghoul2 instance\n", cent->currentState.number);
;5821:#endif
;5822:		if (cgs.clientinfo[cent->currentState.number].ghoul2Model &&
ADDRLP4 920
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ASGNI4
ADDRLP4 920
INDIRI4
ADDRGP4 cgs+43024+504
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $3087
ADDRLP4 920
INDIRI4
ADDRGP4 cgs+43024+504
ADDP4
INDIRP4
ARGP4
ADDRLP4 924
ADDRGP4 trap_G2_HaveWeGhoul2Models
CALLI4
ASGNI4
ADDRLP4 924
INDIRI4
CNSTI4 0
EQI4 $3087
line 5824
;5823:			trap_G2_HaveWeGhoul2Models(cgs.clientinfo[cent->currentState.number].ghoul2Model))
;5824:		{
line 5828
;5825:#ifdef _DEBUG
;5826:			Com_Printf("Clientinfo instance was valid, duplicating for cent\n");
;5827:#endif
;5828:			trap_G2API_DuplicateGhoul2Instance(cgs.clientinfo[cent->currentState.number].ghoul2Model, &cent->ghoul2);
ADDRLP4 928
ADDRFP4 0
INDIRP4
ASGNP4
CNSTI4 812
ADDRLP4 928
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+504
ADDP4
INDIRP4
ARGP4
ADDRLP4 928
INDIRP4
CNSTI4 952
ADDP4
ARGP4
ADDRGP4 trap_G2API_DuplicateGhoul2Instance
CALLV
pop
line 5829
;5829:			cg_entities[cent->currentState.number].ghoul2 = cent->ghoul2;
ADDRLP4 932
ADDRFP4 0
INDIRP4
ASGNP4
CNSTI4 1920
ADDRLP4 932
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+952
ADDP4
ADDRLP4 932
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ASGNP4
line 5830
;5830:		}
line 5831
;5831:		return;
ADDRGP4 $3087
JUMPV
LABELV $3098
line 5834
;5832:	}
;5833:
;5834:	g2HasWeapon = trap_G2API_HasGhoul2ModelOnIndex(&(cent->ghoul2), 1);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
ARGP4
CNSTI4 1
ARGI4
ADDRLP4 920
ADDRGP4 trap_G2API_HasGhoul2ModelOnIndex
CALLI4
ASGNI4
ADDRLP4 536
ADDRLP4 920
INDIRI4
ASGNI4
line 5836
;5835:
;5836:	if (!g2HasWeapon)
ADDRLP4 536
INDIRI4
CNSTI4 0
NEI4 $3109
line 5837
;5837:	{ //force a redup of the weapon instance onto the client instance
line 5838
;5838:		cent->ghoul2weapon = NULL;
ADDRFP4 0
INDIRP4
CNSTI4 960
ADDP4
CNSTP4 0
ASGNP4
line 5839
;5839:	}
LABELV $3109
line 5841
;5840:
;5841:	if (cent->torsoBolt && !(cent->currentState.eFlags & EF_DEAD))
ADDRLP4 924
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 928
CNSTI4 0
ASGNI4
ADDRLP4 924
INDIRP4
CNSTI4 1012
ADDP4
INDIRI4
ADDRLP4 928
INDIRI4
EQI4 $3111
ADDRLP4 924
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
ADDRLP4 928
INDIRI4
NEI4 $3111
line 5842
;5842:	{ //he's alive and has a limb missing still, reattach it and reset the weapon
line 5843
;5843:		CG_ReattachLimb(cent);
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CG_ReattachLimb
CALLV
pop
line 5844
;5844:	}
ADDRGP4 $3112
JUMPV
LABELV $3111
line 5845
;5845:	else if (cg_entities[cent->currentState.number].torsoBolt && !(cent->currentState.eFlags & EF_DEAD))
ADDRLP4 932
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 936
CNSTI4 0
ASGNI4
CNSTI4 1920
ADDRLP4 932
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+1012
ADDP4
INDIRI4
ADDRLP4 936
INDIRI4
EQI4 $3113
ADDRLP4 932
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
ADDRLP4 936
INDIRI4
NEI4 $3113
line 5846
;5846:	{ //It happens. (usually between odd level change events)
line 5847
;5847:		cent->torsoBolt = cg_entities[cent->currentState.number].torsoBolt;
ADDRLP4 940
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 940
INDIRP4
CNSTI4 1012
ADDP4
CNSTI4 1920
ADDRLP4 940
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+1012
ADDP4
INDIRI4
ASGNI4
line 5848
;5848:		cg_entities[cent->currentState.number].torsoBolt = 0;
CNSTI4 1920
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+1012
ADDP4
CNSTI4 0
ASGNI4
line 5849
;5849:		CG_ReattachLimb(cent);
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CG_ReattachLimb
CALLV
pop
line 5850
;5850:	}
LABELV $3113
LABELV $3112
line 5852
;5851:
;5852:	if (cent->ghoul2 && cent->torsoBolt && (cent->torsoBolt == G2_MODELPART_RARM || cent->torsoBolt == G2_MODELPART_RHAND || cent->torsoBolt == G2_MODELPART_WAIST) && g2HasWeapon)
ADDRLP4 940
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 940
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $3118
ADDRLP4 944
ADDRLP4 940
INDIRP4
CNSTI4 1012
ADDP4
INDIRI4
ASGNI4
ADDRLP4 944
INDIRI4
CNSTI4 0
EQI4 $3118
ADDRLP4 944
INDIRI4
CNSTI4 13
EQI4 $3121
ADDRLP4 944
INDIRI4
CNSTI4 14
EQI4 $3121
ADDRLP4 944
INDIRI4
CNSTI4 11
NEI4 $3118
LABELV $3121
ADDRLP4 536
INDIRI4
CNSTI4 0
EQI4 $3118
line 5853
;5853:	{ //kill the weapon if the limb holding it is no longer on the model
line 5854
;5854:		trap_G2API_RemoveGhoul2Model(&(cent->ghoul2), 1);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
ARGP4
CNSTI4 1
ARGI4
ADDRGP4 trap_G2API_RemoveGhoul2Model
CALLI4
pop
line 5855
;5855:		g2HasWeapon = qfalse;
ADDRLP4 536
CNSTI4 0
ASGNI4
line 5856
;5856:	}
LABELV $3118
line 5858
;5857:
;5858:	if (cent->currentState.teamowner && !cent->isATST)
ADDRLP4 948
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 952
CNSTI4 0
ASGNI4
ADDRLP4 948
INDIRP4
CNSTI4 264
ADDP4
INDIRI4
ADDRLP4 952
INDIRI4
EQI4 $3122
ADDRLP4 948
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
ADDRLP4 952
INDIRI4
NEI4 $3122
line 5859
;5859:	{
line 5860
;5860:		cg_entities[cent->currentState.number].currentState.teamowner = cent->currentState.teamowner;
ADDRLP4 956
ADDRFP4 0
INDIRP4
ASGNP4
CNSTI4 1920
ADDRLP4 956
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+264
ADDP4
ADDRLP4 956
INDIRP4
CNSTI4 264
ADDP4
INDIRI4
ASGNI4
line 5861
;5861:		cg_entities[cent->currentState.number].isATST = cent->isATST;
ADDRLP4 960
ADDRFP4 0
INDIRP4
ASGNP4
CNSTI4 1920
ADDRLP4 960
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+1028
ADDP4
ADDRLP4 960
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
ASGNI4
line 5863
;5862:
;5863:		if (CG_RegisterClientModelname(&cgs.clientinfo[cent->currentState.number], cgs.clientinfo[cent->currentState.number].modelName, cgs.clientinfo[cent->currentState.number].skinName,
ADDRLP4 964
ADDRFP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 968
CNSTI4 812
ADDRLP4 964
INDIRI4
MULI4
ASGNI4
ADDRLP4 968
INDIRI4
ADDRGP4 cgs+43024
ADDP4
ARGP4
ADDRLP4 968
INDIRI4
ADDRGP4 cgs+43024+160
ADDP4
ARGP4
ADDRLP4 968
INDIRI4
ADDRGP4 cgs+43024+224
ADDP4
ARGP4
ADDRLP4 968
INDIRI4
ADDRGP4 cgs+43024+416
ADDP4
ARGP4
ADDRLP4 964
INDIRI4
ARGI4
ADDRLP4 972
ADDRGP4 CG_RegisterClientModelname
CALLI4
ASGNI4
ADDRLP4 972
INDIRI4
CNSTI4 0
EQI4 $3123
line 5865
;5864:			cgs.clientinfo[cent->currentState.number].teamName, cent->currentState.number))
;5865:		{
line 5866
;5866:			cent->isATST = 1;
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
CNSTI4 1
ASGNI4
line 5867
;5867:			cg_entities[cent->currentState.number].isATST = cent->isATST;
ADDRLP4 976
ADDRFP4 0
INDIRP4
ASGNP4
CNSTI4 1920
ADDRLP4 976
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+1028
ADDP4
ADDRLP4 976
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
ASGNI4
line 5868
;5868:			return;
ADDRGP4 $3087
JUMPV
line 5870
;5869:		}
;5870:	}
LABELV $3122
line 5871
;5871:	else if (!cent->currentState.teamowner && cent->isATST)
ADDRLP4 956
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 960
CNSTI4 0
ASGNI4
ADDRLP4 956
INDIRP4
CNSTI4 264
ADDP4
INDIRI4
ADDRLP4 960
INDIRI4
NEI4 $3136
ADDRLP4 956
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
ADDRLP4 960
INDIRI4
EQI4 $3136
line 5872
;5872:	{
line 5873
;5873:		cg_entities[cent->currentState.number].currentState.teamowner = cent->currentState.teamowner;
ADDRLP4 964
ADDRFP4 0
INDIRP4
ASGNP4
CNSTI4 1920
ADDRLP4 964
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+264
ADDP4
ADDRLP4 964
INDIRP4
CNSTI4 264
ADDP4
INDIRI4
ASGNI4
line 5874
;5874:		cg_entities[cent->currentState.number].isATST = cent->isATST;
ADDRLP4 968
ADDRFP4 0
INDIRP4
ASGNP4
CNSTI4 1920
ADDRLP4 968
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+1028
ADDP4
ADDRLP4 968
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
ASGNI4
line 5876
;5875:
;5876:		if (CG_RegisterClientModelname(&cgs.clientinfo[cent->currentState.number], cgs.clientinfo[cent->currentState.number].modelName, cgs.clientinfo[cent->currentState.number].skinName,
ADDRLP4 972
ADDRFP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 976
CNSTI4 812
ADDRLP4 972
INDIRI4
MULI4
ASGNI4
ADDRLP4 976
INDIRI4
ADDRGP4 cgs+43024
ADDP4
ARGP4
ADDRLP4 976
INDIRI4
ADDRGP4 cgs+43024+160
ADDP4
ARGP4
ADDRLP4 976
INDIRI4
ADDRGP4 cgs+43024+224
ADDP4
ARGP4
ADDRLP4 976
INDIRI4
ADDRGP4 cgs+43024+416
ADDP4
ARGP4
ADDRLP4 972
INDIRI4
ARGI4
ADDRLP4 980
ADDRGP4 CG_RegisterClientModelname
CALLI4
ASGNI4
ADDRLP4 980
INDIRI4
CNSTI4 0
EQI4 $3140
line 5878
;5877:			cgs.clientinfo[cent->currentState.number].teamName, cent->currentState.number))
;5878:		{
line 5879
;5879:			cent->isATST = 0;
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
CNSTI4 0
ASGNI4
line 5880
;5880:			cg_entities[cent->currentState.number].isATST = cent->isATST;
ADDRLP4 984
ADDRFP4 0
INDIRP4
ASGNP4
CNSTI4 1920
ADDRLP4 984
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+1028
ADDP4
ADDRLP4 984
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
ASGNI4
line 5881
;5881:			return;
ADDRGP4 $3087
JUMPV
LABELV $3140
line 5883
;5882:		}
;5883:	}
LABELV $3136
LABELV $3123
line 5885
;5884:
;5885:	if (cent->currentState.number < MAX_CLIENTS &&
ADDRLP4 964
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 964
INDIRP4
INDIRI4
CNSTI4 32
GEI4 $3150
ADDRLP4 968
CNSTI4 0
ASGNI4
ADDRLP4 964
INDIRP4
CNSTI4 264
ADDP4
INDIRI4
ADDRLP4 968
INDIRI4
EQI4 $3150
ADDRLP4 964
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
ADDRLP4 968
INDIRI4
NEI4 $3150
line 5888
;5886:		cent->currentState.teamowner &&
;5887:		!cent->isATST)
;5888:	{
line 5889
;5889:		return;
ADDRGP4 $3087
JUMPV
LABELV $3150
line 5892
;5890:	}
;5891:
;5892:	if (!cent->trickAlphaTime || (cg.time - cent->trickAlphaTime) > 1000)
ADDRLP4 972
ADDRFP4 0
INDIRP4
CNSTI4 1908
ADDP4
INDIRI4
ASGNI4
ADDRLP4 972
INDIRI4
CNSTI4 0
EQI4 $3155
ADDRGP4 cg+64
INDIRI4
ADDRLP4 972
INDIRI4
SUBI4
CNSTI4 1000
LEI4 $3152
LABELV $3155
line 5893
;5893:	{ //things got out of sync, perhaps a new client is trying to fill in this slot
line 5894
;5894:		cent->trickAlpha = 255;
ADDRFP4 0
INDIRP4
CNSTI4 1904
ADDP4
CNSTI4 255
ASGNI4
line 5895
;5895:		cent->trickAlphaTime = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 1908
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 5896
;5896:	}
LABELV $3152
line 5899
;5897:
;5898:	//If this client has tricked you.
;5899:	if (CG_IsMindTricked(cent->currentState.trickedentindex,
ADDRLP4 976
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 976
INDIRP4
CNSTI4 148
ADDP4
INDIRI4
ARGI4
ADDRLP4 976
INDIRP4
CNSTI4 152
ADDP4
INDIRI4
ARGI4
ADDRLP4 976
INDIRP4
CNSTI4 156
ADDP4
INDIRI4
ARGI4
ADDRLP4 976
INDIRP4
CNSTI4 160
ADDP4
INDIRI4
ARGI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
ARGI4
ADDRLP4 980
ADDRGP4 CG_IsMindTricked
CALLI4
ASGNI4
ADDRLP4 980
INDIRI4
CNSTI4 0
EQI4 $3157
line 5904
;5900:		cent->currentState.trickedentindex2,
;5901:		cent->currentState.trickedentindex3,
;5902:		cent->currentState.trickedentindex4,
;5903:		cg.snap->ps.clientNum))
;5904:	{
line 5905
;5905:		if (cent->trickAlpha > 1)
ADDRFP4 0
INDIRP4
CNSTI4 1904
ADDP4
INDIRI4
CNSTI4 1
LEI4 $3160
line 5906
;5906:		{
line 5907
;5907:			cent->trickAlpha -= (cg.time - cent->trickAlphaTime)*0.5;
ADDRLP4 984
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 988
ADDRLP4 984
INDIRP4
CNSTI4 1904
ADDP4
ASGNP4
ADDRLP4 988
INDIRP4
ADDRLP4 988
INDIRP4
INDIRI4
CVIF4 4
CNSTF4 1056964608
ADDRGP4 cg+64
INDIRI4
ADDRLP4 984
INDIRP4
CNSTI4 1908
ADDP4
INDIRI4
SUBI4
CVIF4 4
MULF4
SUBF4
CVFI4 4
ASGNI4
line 5908
;5908:			cent->trickAlphaTime = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 1908
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 5910
;5909:
;5910:			if (cent->trickAlpha < 0)
ADDRFP4 0
INDIRP4
CNSTI4 1904
ADDP4
INDIRI4
CNSTI4 0
GEI4 $3164
line 5911
;5911:			{
line 5912
;5912:				cent->trickAlpha = 0;
ADDRFP4 0
INDIRP4
CNSTI4 1904
ADDP4
CNSTI4 0
ASGNI4
line 5913
;5913:			}
LABELV $3164
line 5915
;5914:
;5915:			doAlpha = 1;
ADDRLP4 832
CNSTI4 1
ASGNI4
line 5916
;5916:		}
ADDRGP4 $3158
JUMPV
LABELV $3160
line 5918
;5917:		else
;5918:		{
line 5919
;5919:			doAlpha = 1;
ADDRLP4 832
CNSTI4 1
ASGNI4
line 5920
;5920:			cent->trickAlpha = 1;
ADDRFP4 0
INDIRP4
CNSTI4 1904
ADDP4
CNSTI4 1
ASGNI4
line 5921
;5921:			cent->trickAlphaTime = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 1908
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 5922
;5922:			iwantout = 1;
ADDRLP4 768
CNSTI4 1
ASGNI4
line 5923
;5923:		}
line 5924
;5924:	}
ADDRGP4 $3158
JUMPV
LABELV $3157
line 5926
;5925:	else
;5926:	{
line 5927
;5927:		if (cent->trickAlpha < 255)
ADDRFP4 0
INDIRP4
CNSTI4 1904
ADDP4
INDIRI4
CNSTI4 255
GEI4 $3167
line 5928
;5928:		{
line 5929
;5929:			cent->trickAlpha += (cg.time - cent->trickAlphaTime);
ADDRLP4 984
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 988
ADDRLP4 984
INDIRP4
CNSTI4 1904
ADDP4
ASGNP4
ADDRLP4 988
INDIRP4
ADDRLP4 988
INDIRP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
ADDRLP4 984
INDIRP4
CNSTI4 1908
ADDP4
INDIRI4
SUBI4
ADDI4
ASGNI4
line 5930
;5930:			cent->trickAlphaTime = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 1908
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 5932
;5931:
;5932:			if (cent->trickAlpha > 255)
ADDRFP4 0
INDIRP4
CNSTI4 1904
ADDP4
INDIRI4
CNSTI4 255
LEI4 $3171
line 5933
;5933:			{
line 5934
;5934:				cent->trickAlpha = 255;
ADDRFP4 0
INDIRP4
CNSTI4 1904
ADDP4
CNSTI4 255
ASGNI4
line 5935
;5935:			}
LABELV $3171
line 5937
;5936:
;5937:			doAlpha = 1;
ADDRLP4 832
CNSTI4 1
ASGNI4
line 5938
;5938:		}
ADDRGP4 $3168
JUMPV
LABELV $3167
line 5940
;5939:		else
;5940:		{
line 5941
;5941:			cent->trickAlpha = 255;
ADDRFP4 0
INDIRP4
CNSTI4 1904
ADDP4
CNSTI4 255
ASGNI4
line 5942
;5942:			cent->trickAlphaTime = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 1908
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 5943
;5943:		}
LABELV $3168
line 5944
;5944:	}
LABELV $3158
line 5947
;5945:
;5946:	// get the player model information
;5947:	renderfx = 0;
ADDRLP4 776
CNSTI4 0
ASGNI4
line 5948
;5948:	if ( cent->currentState.number == cg.snap->ps.clientNum) {
ADDRFP4 0
INDIRP4
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
NEI4 $3174
line 5949
;5949:		if (!cg.renderingThirdPerson) {
ADDRGP4 cg+88
INDIRI4
CNSTI4 0
NEI4 $3177
line 5950
;5950:			if (!cg_fpls.integer || cent->currentState.weapon != WP_SABER)
ADDRGP4 cg_fpls+12
INDIRI4
CNSTI4 0
EQI4 $3183
ADDRFP4 0
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
CNSTI4 2
EQI4 $3178
LABELV $3183
line 5951
;5951:			{
line 5952
;5952:				renderfx = RF_THIRD_PERSON;			// only draw in mirrors
ADDRLP4 776
CNSTI4 2
ASGNI4
line 5953
;5953:			}
line 5954
;5954:		} else {
ADDRGP4 $3178
JUMPV
LABELV $3177
line 5955
;5955:			if (cg_cameraMode.integer) {
ADDRGP4 cg_cameraMode+12
INDIRI4
CNSTI4 0
EQI4 $3184
line 5956
;5956:				iwantout = 1;
ADDRLP4 768
CNSTI4 1
ASGNI4
line 5962
;5957:
;5958:				
;5959:				// goto minimal_add;
;5960:				
;5961:				// NOTENOTE Temporary
;5962:				return;
ADDRGP4 $3087
JUMPV
LABELV $3184
line 5964
;5963:			}
;5964:		}
LABELV $3178
line 5965
;5965:	}
LABELV $3174
line 5974
;5966:
;5967:	// Update the player's client entity information regarding weapons.
;5968:	// Explanation:  The entitystate has a weapond defined on it.  The cliententity does as well.
;5969:	// The cliententity's weapon tells us what the ghoul2 instance on the cliententity has bolted to it.
;5970:	// If the entitystate and cliententity weapons differ, then the state's needs to be copied to the client.
;5971:	// Save the old weapon, to verify that it is or is not the same as the new weapon.
;5972:	// rww - Make sure weapons don't get set BEFORE cent->ghoul2 is initialized or else we'll have no
;5973:	// weapon bolted on
;5974:	if (cent->currentState.saberInFlight)
ADDRFP4 0
INDIRP4
CNSTI4 228
ADDP4
INDIRI4
CNSTI4 0
EQI4 $3187
line 5975
;5975:	{
line 5976
;5976:		cent->ghoul2weapon = g2WeaponInstances[WP_SABER];
ADDRFP4 0
INDIRP4
CNSTI4 960
ADDP4
ADDRGP4 g2WeaponInstances+8
INDIRP4
ASGNP4
line 5977
;5977:	}
LABELV $3187
line 5979
;5978:
;5979:	if (cent->ghoul2 && 
ADDRLP4 984
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 984
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $3190
ADDRLP4 984
INDIRP4
CNSTI4 960
ADDP4
INDIRP4
CVPU4 4
ADDRLP4 984
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 g2WeaponInstances
ADDP4
INDIRP4
CVPU4 4
EQU4 $3190
ADDRLP4 988
CNSTI4 0
ASGNI4
ADDRLP4 984
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
ADDRLP4 988
INDIRI4
NEI4 $3190
ADDRLP4 984
INDIRP4
CNSTI4 1012
ADDP4
INDIRI4
ADDRLP4 988
INDIRI4
NEI4 $3190
ADDRLP4 984
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
ADDRLP4 988
INDIRI4
NEI4 $3190
line 5982
;5980:		cent->ghoul2weapon != g2WeaponInstances[cent->currentState.weapon] &&
;5981:		!(cent->currentState.eFlags & EF_DEAD) && !cent->torsoBolt && !cent->isATST)
;5982:	{
line 5983
;5983:		CG_CopyG2WeaponInstance(cent->currentState.weapon, cent->ghoul2);
ADDRLP4 992
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 992
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
ARGI4
ADDRLP4 992
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRGP4 CG_CopyG2WeaponInstance
CALLV
pop
line 5985
;5984:
;5985:		if (!(cg.snap->ps.pm_flags & PMF_FOLLOW))
ADDRGP4 cg+36
INDIRP4
CNSTI4 56
ADDP4
INDIRI4
CNSTI4 4096
BANDI4
CNSTI4 0
NEI4 $3192
line 5986
;5986:		{
line 5987
;5987:			if (cent->weapon == WP_SABER && cent->weapon != cent->currentState.weapon && !cent->currentState.shouldtarget)
ADDRLP4 996
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1000
ADDRLP4 996
INDIRP4
CNSTI4 956
ADDP4
INDIRI4
ASGNI4
ADDRLP4 1000
INDIRI4
CNSTI4 2
NEI4 $3195
ADDRLP4 1000
INDIRI4
ADDRLP4 996
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
EQI4 $3195
ADDRLP4 996
INDIRP4
CNSTI4 268
ADDP4
INDIRI4
CNSTI4 0
NEI4 $3195
line 5988
;5988:			{ //switching away from the saber
line 5989
;5989:				trap_S_StartSound(cent->lerpOrigin, cent->currentState.number, CHAN_AUTO, trap_S_RegisterSound( "sound/weapons/saber/saberoffquick.wav" ));
ADDRGP4 $3197
ARGP4
ADDRLP4 1004
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 1008
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1008
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRLP4 1008
INDIRP4
INDIRI4
ARGI4
CNSTI4 0
ARGI4
ADDRLP4 1004
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
line 5990
;5990:			}
ADDRGP4 $3196
JUMPV
LABELV $3195
line 5991
;5991:			else if (cent->currentState.weapon == WP_SABER && cent->weapon != cent->currentState.weapon)
ADDRLP4 1004
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1008
ADDRLP4 1004
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
ASGNI4
ADDRLP4 1008
INDIRI4
CNSTI4 2
NEI4 $3198
ADDRLP4 1004
INDIRP4
CNSTI4 956
ADDP4
INDIRI4
ADDRLP4 1008
INDIRI4
EQI4 $3198
line 5992
;5992:			{ //switching to the saber
line 5993
;5993:				trap_S_StartSound(cent->lerpOrigin, cent->currentState.number, CHAN_AUTO, trap_S_RegisterSound( "sound/weapons/saber/saberon.wav" ));
ADDRGP4 $3200
ARGP4
ADDRLP4 1012
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 1016
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1016
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRLP4 1016
INDIRP4
INDIRI4
ARGI4
CNSTI4 0
ARGI4
ADDRLP4 1012
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
line 5994
;5994:			}
LABELV $3198
LABELV $3196
line 5995
;5995:		}
LABELV $3192
line 5997
;5996:
;5997:		cent->weapon = cent->currentState.weapon;
ADDRLP4 996
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 996
INDIRP4
CNSTI4 956
ADDP4
ADDRLP4 996
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
ASGNI4
line 5998
;5998:		cent->ghoul2weapon = g2WeaponInstances[cent->currentState.weapon];
ADDRLP4 1000
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1000
INDIRP4
CNSTI4 960
ADDP4
ADDRLP4 1000
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 g2WeaponInstances
ADDP4
INDIRP4
ASGNP4
line 5999
;5999:	}
ADDRGP4 $3191
JUMPV
LABELV $3190
line 6000
;6000:	else if ((cent->currentState.eFlags & EF_DEAD) || cent->torsoBolt)
ADDRLP4 992
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 996
CNSTI4 0
ASGNI4
ADDRLP4 992
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
ADDRLP4 996
INDIRI4
NEI4 $3203
ADDRLP4 992
INDIRP4
CNSTI4 1012
ADDP4
INDIRI4
ADDRLP4 996
INDIRI4
EQI4 $3201
LABELV $3203
line 6001
;6001:	{
line 6002
;6002:		cent->ghoul2weapon = NULL; //be sure to update after respawning/getting limb regrown
ADDRFP4 0
INDIRP4
CNSTI4 960
ADDP4
CNSTP4 0
ASGNP4
line 6003
;6003:	}
LABELV $3201
LABELV $3191
line 6006
;6004:
;6005:	
;6006:	memset (&legs, 0, sizeof(legs));
ADDRLP4 0
ARGP4
CNSTI4 0
ARGI4
CNSTI4 212
ARGI4
ADDRGP4 memset
CALLP4
pop
line 6008
;6007:
;6008:	CG_SetGhoul2Info(&legs, cent);
ADDRLP4 0
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CG_SetGhoul2Info
CALLV
pop
line 6010
;6009:
;6010:	VectorSet(legs.modelScale, 1,1,1);
ADDRLP4 0+196
CNSTF4 1065353216
ASGNF4
ADDRLP4 0+196+4
CNSTF4 1065353216
ASGNF4
ADDRLP4 0+196+8
CNSTF4 1065353216
ASGNF4
line 6011
;6011:	legs.radius = 64;
ADDRLP4 0+92
CNSTF4 1115684864
ASGNF4
line 6012
;6012:	VectorClear(legs.angles);
ADDRLP4 1000
CNSTF4 0
ASGNF4
ADDRLP4 0+184+8
ADDRLP4 1000
INDIRF4
ASGNF4
ADDRLP4 0+184+4
ADDRLP4 1000
INDIRF4
ASGNF4
ADDRLP4 0+184
ADDRLP4 1000
INDIRF4
ASGNF4
line 6014
;6013:
;6014:	if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $3215
line 6015
;6015:	{
line 6016
;6016:		legs.radius = 400;
ADDRLP4 0+92
CNSTF4 1137180672
ASGNF4
line 6017
;6017:	}
LABELV $3215
line 6021
;6018:
;6019:// minimal_add:
;6020:
;6021:	team = cgs.clientinfo[ cent->currentState.clientNum ].team;
ADDRLP4 852
CNSTI4 812
ADDRFP4 0
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+68
ADDP4
INDIRI4
ASGNI4
line 6023
;6022:
;6023:	if (cgs.gametype >= GT_TEAM && cg_drawFriend.integer &&
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 5
LTI4 $3220
ADDRGP4 cg_drawFriend+12
INDIRI4
CNSTI4 0
EQI4 $3220
ADDRFP4 0
INDIRP4
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
EQI4 $3220
line 6025
;6024:		cent->currentState.number != cg.snap->ps.clientNum)			// Don't show a sprite above a player's own head in 3rd person.
;6025:	{	// If the view is either a spectator or on the same team as this character, show a symbol above their head.
line 6026
;6026:		if ((cg.snap->ps.persistant[PERS_TEAM] == TEAM_SPECTATOR || cg.snap->ps.persistant[PERS_TEAM] == team) &&
ADDRLP4 1004
CNSTI4 336
ASGNI4
ADDRGP4 cg+36
INDIRP4
ADDRLP4 1004
INDIRI4
ADDP4
INDIRI4
CNSTI4 3
EQI4 $3229
ADDRGP4 cg+36
INDIRP4
ADDRLP4 1004
INDIRI4
ADDP4
INDIRI4
ADDRLP4 852
INDIRI4
NEI4 $3225
LABELV $3229
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
NEI4 $3225
line 6028
;6027:			!(cent->currentState.eFlags & EF_DEAD))
;6028:		{
line 6029
;6029:			if (team == TEAM_RED)
ADDRLP4 852
INDIRI4
CNSTI4 1
NEI4 $3230
line 6030
;6030:			{
line 6031
;6031:				CG_PlayerFloatSprite( cent, cgs.media.teamRedShader);
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 cgs+71064+176
INDIRI4
ARGI4
ADDRGP4 CG_PlayerFloatSprite
CALLV
pop
line 6032
;6032:			}
ADDRGP4 $3231
JUMPV
LABELV $3230
line 6034
;6033:			else	// if (team == TEAM_BLUE)
;6034:			{
line 6035
;6035:				CG_PlayerFloatSprite( cent, cgs.media.teamBlueShader);
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 cgs+71064+180
INDIRI4
ARGI4
ADDRGP4 CG_PlayerFloatSprite
CALLV
pop
line 6036
;6036:			}
LABELV $3231
line 6037
;6037:		}
LABELV $3225
line 6038
;6038:	}
LABELV $3220
line 6040
;6039:
;6040:	if (cgs.gametype == GT_JEDIMASTER && cg_drawFriend.integer &&
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 2
NEI4 $3236
ADDRGP4 cg_drawFriend+12
INDIRI4
CNSTI4 0
EQI4 $3236
ADDRFP4 0
INDIRP4
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
EQI4 $3236
line 6042
;6041:		cent->currentState.number != cg.snap->ps.clientNum)			// Don't show a sprite above a player's own head in 3rd person.
;6042:	{	// If the view is either a spectator or on the same team as this character, show a symbol above their head.
line 6043
;6043:		if ((cg.snap->ps.persistant[PERS_TEAM] == TEAM_SPECTATOR || cg.snap->ps.persistant[PERS_TEAM] == team) &&
ADDRLP4 1004
CNSTI4 336
ASGNI4
ADDRGP4 cg+36
INDIRP4
ADDRLP4 1004
INDIRI4
ADDP4
INDIRI4
CNSTI4 3
EQI4 $3245
ADDRGP4 cg+36
INDIRP4
ADDRLP4 1004
INDIRI4
ADDP4
INDIRI4
ADDRLP4 852
INDIRI4
NEI4 $3241
LABELV $3245
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
NEI4 $3241
line 6045
;6044:			!(cent->currentState.eFlags & EF_DEAD))
;6045:		{
line 6046
;6046:			if (CG_ThereIsAMaster())
ADDRLP4 1008
ADDRGP4 CG_ThereIsAMaster
CALLI4
ASGNI4
ADDRLP4 1008
INDIRI4
CNSTI4 0
EQI4 $3246
line 6047
;6047:			{
line 6048
;6048:				if (!cg.snap->ps.isJediMaster)
ADDRGP4 cg+36
INDIRP4
CNSTI4 648
ADDP4
INDIRI4
CNSTI4 0
NEI4 $3248
line 6049
;6049:				{
line 6050
;6050:					if (!cent->currentState.isJediMaster)
ADDRFP4 0
INDIRP4
CNSTI4 244
ADDP4
INDIRI4
CNSTI4 0
NEI4 $3251
line 6051
;6051:					{
line 6052
;6052:						CG_PlayerFloatSprite( cent, cgs.media.teamRedShader);
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 cgs+71064+176
INDIRI4
ARGI4
ADDRGP4 CG_PlayerFloatSprite
CALLV
pop
line 6053
;6053:					}
LABELV $3251
line 6054
;6054:				}
LABELV $3248
line 6055
;6055:			}
LABELV $3246
line 6056
;6056:		}
LABELV $3241
line 6057
;6057:	}
LABELV $3236
line 6059
;6058:
;6059:	if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $3255
line 6060
;6060:	{
line 6061
;6061:		goto doEssentialOne;
ADDRGP4 $3257
JUMPV
LABELV $3255
line 6065
;6062:	}
;6063:
;6064:	// add the shadow
;6065:	shadow = CG_PlayerShadow( cent, &shadowPlane );
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 540
ARGP4
ADDRLP4 1004
ADDRGP4 CG_PlayerShadow
CALLI4
ASGNI4
ADDRLP4 836
ADDRLP4 1004
INDIRI4
ASGNI4
line 6067
;6066:
;6067:	if ( (cent->currentState.eFlags & EF_SEEKERDRONE) || cent->currentState.genericenemyindex != -1 )
ADDRLP4 1008
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1008
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1048576
BANDI4
CNSTI4 0
NEI4 $3260
ADDRLP4 1008
INDIRP4
CNSTI4 172
ADDP4
INDIRI4
CNSTI4 -1
EQI4 $3258
LABELV $3260
line 6068
;6068:	{
line 6069
;6069:		memset( &seeker, 0, sizeof(seeker) );
ADDRLP4 276
ARGP4
CNSTI4 0
ARGI4
CNSTI4 212
ARGI4
ADDRGP4 memset
CALLP4
pop
line 6071
;6070:
;6071:		VectorCopy(cent->lerpOrigin, elevated);
ADDRLP4 224
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
INDIRB
ASGNB 12
line 6072
;6072:		elevated[2] += 40;
ADDRLP4 224+8
ADDRLP4 224+8
INDIRF4
CNSTF4 1109393408
ADDF4
ASGNF4
line 6074
;6073:
;6074:		VectorCopy( elevated, seeker.lightingOrigin );
ADDRLP4 276+108
ADDRLP4 224
INDIRB
ASGNB 12
line 6075
;6075:		seeker.shadowPlane = shadowPlane;
ADDRLP4 276+120
ADDRLP4 540
INDIRF4
ASGNF4
line 6076
;6076:		seeker.renderfx = 0; //renderfx;
ADDRLP4 276+4
CNSTI4 0
ASGNI4
line 6079
;6077:							 //don't show in first person?
;6078:
;6079:		angle = ((cg.time / 12) & 255) * (M_PI * 2) / 255;
ADDRLP4 236
CNSTF4 1086918619
ADDRGP4 cg+64
INDIRI4
CNSTI4 12
DIVI4
CNSTI4 255
BANDI4
CVIF4 4
MULF4
CNSTF4 1132396544
DIVF4
ASGNF4
line 6080
;6080:		dir[0] = cos(angle) * 20;
ADDRLP4 236
INDIRF4
ARGF4
ADDRLP4 1012
ADDRGP4 cos
CALLF4
ASGNF4
ADDRLP4 212
CNSTF4 1101004800
ADDRLP4 1012
INDIRF4
MULF4
ASGNF4
line 6081
;6081:		dir[1] = sin(angle) * 20;
ADDRLP4 236
INDIRF4
ARGF4
ADDRLP4 1016
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 212+4
CNSTF4 1101004800
ADDRLP4 1016
INDIRF4
MULF4
ASGNF4
line 6082
;6082:		dir[2] = cos(angle) * 5;
ADDRLP4 236
INDIRF4
ARGF4
ADDRLP4 1020
ADDRGP4 cos
CALLF4
ASGNF4
ADDRLP4 212+8
CNSTF4 1084227584
ADDRLP4 1020
INDIRF4
MULF4
ASGNF4
line 6083
;6083:		VectorAdd(elevated, dir, seeker.origin);
ADDRLP4 276+52
ADDRLP4 224
INDIRF4
ADDRLP4 212
INDIRF4
ADDF4
ASGNF4
ADDRLP4 276+52+4
ADDRLP4 224+4
INDIRF4
ADDRLP4 212+4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 276+52+8
ADDRLP4 224+8
INDIRF4
ADDRLP4 212+8
INDIRF4
ADDF4
ASGNF4
line 6085
;6084:
;6085:		VectorCopy(seeker.origin, seekorg);
ADDRLP4 884
ADDRLP4 276+52
INDIRB
ASGNB 12
line 6087
;6086:
;6087:		if (cent->currentState.genericenemyindex > 1024)
ADDRFP4 0
INDIRP4
CNSTI4 172
ADDP4
INDIRI4
CNSTI4 1024
LEI4 $3278
line 6088
;6088:		{
line 6089
;6089:			prefig = (cent->currentState.genericenemyindex-cg.time)/80;
ADDRLP4 856
ADDRFP4 0
INDIRP4
CNSTI4 172
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
SUBI4
CNSTI4 80
DIVI4
CVIF4 4
ASGNF4
line 6091
;6090:
;6091:			if (prefig > 55)
ADDRLP4 856
INDIRF4
CNSTF4 1113325568
LEF4 $3281
line 6092
;6092:			{
line 6093
;6093:				prefig = 55;
ADDRLP4 856
CNSTF4 1113325568
ASGNF4
line 6094
;6094:			}
ADDRGP4 $3282
JUMPV
LABELV $3281
line 6095
;6095:			else if (prefig < 1)
ADDRLP4 856
INDIRF4
CNSTF4 1065353216
GEF4 $3283
line 6096
;6096:			{
line 6097
;6097:				prefig = 1;
ADDRLP4 856
CNSTF4 1065353216
ASGNF4
line 6098
;6098:			}
LABELV $3283
LABELV $3282
line 6100
;6099:
;6100:			elevated[2] -= 55-prefig;
ADDRLP4 224+8
ADDRLP4 224+8
INDIRF4
CNSTF4 1113325568
ADDRLP4 856
INDIRF4
SUBF4
SUBF4
ASGNF4
line 6102
;6101:
;6102:			angle = ((cg.time / 12) & 255) * (M_PI * 2) / 255;
ADDRLP4 236
CNSTF4 1086918619
ADDRGP4 cg+64
INDIRI4
CNSTI4 12
DIVI4
CNSTI4 255
BANDI4
CVIF4 4
MULF4
CNSTF4 1132396544
DIVF4
ASGNF4
line 6103
;6103:			dir[0] = cos(angle) * 20;
ADDRLP4 236
INDIRF4
ARGF4
ADDRLP4 1024
ADDRGP4 cos
CALLF4
ASGNF4
ADDRLP4 212
CNSTF4 1101004800
ADDRLP4 1024
INDIRF4
MULF4
ASGNF4
line 6104
;6104:			dir[1] = sin(angle) * 20;
ADDRLP4 236
INDIRF4
ARGF4
ADDRLP4 1028
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 212+4
CNSTF4 1101004800
ADDRLP4 1028
INDIRF4
MULF4
ASGNF4
line 6105
;6105:			dir[2] = cos(angle) * 5;
ADDRLP4 236
INDIRF4
ARGF4
ADDRLP4 1032
ADDRGP4 cos
CALLF4
ASGNF4
ADDRLP4 212+8
CNSTF4 1084227584
ADDRLP4 1032
INDIRF4
MULF4
ASGNF4
line 6106
;6106:			VectorAdd(elevated, dir, seeker.origin);
ADDRLP4 276+52
ADDRLP4 224
INDIRF4
ADDRLP4 212
INDIRF4
ADDF4
ASGNF4
ADDRLP4 276+52+4
ADDRLP4 224+4
INDIRF4
ADDRLP4 212+4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 276+52+8
ADDRLP4 224+8
INDIRF4
ADDRLP4 212+8
INDIRF4
ADDF4
ASGNF4
line 6107
;6107:		}
ADDRGP4 $3279
JUMPV
LABELV $3278
line 6108
;6108:		else if (cent->currentState.genericenemyindex != ENTITYNUM_NONE && cent->currentState.genericenemyindex != -1)
ADDRLP4 1024
ADDRFP4 0
INDIRP4
CNSTI4 172
ADDP4
INDIRI4
ASGNI4
ADDRLP4 1024
INDIRI4
CNSTI4 1023
EQI4 $3298
ADDRLP4 1024
INDIRI4
CNSTI4 -1
EQI4 $3298
line 6109
;6109:		{
line 6110
;6110:			enent = &cg_entities[cent->currentState.genericenemyindex];
ADDRLP4 896
CNSTI4 1920
ADDRFP4 0
INDIRP4
CNSTI4 172
ADDP4
INDIRI4
MULI4
ADDRGP4 cg_entities
ADDP4
ASGNP4
line 6112
;6111:
;6112:			if (enent)
ADDRLP4 896
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $3300
line 6113
;6113:			{
line 6114
;6114:				VectorSubtract(enent->lerpOrigin, seekorg, enang);
ADDRLP4 1028
ADDRLP4 896
INDIRP4
ASGNP4
ADDRLP4 900
ADDRLP4 1028
INDIRP4
CNSTI4 928
ADDP4
INDIRF4
ADDRLP4 884
INDIRF4
SUBF4
ASGNF4
ADDRLP4 900+4
ADDRLP4 1028
INDIRP4
CNSTI4 932
ADDP4
INDIRF4
ADDRLP4 884+4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 900+8
ADDRLP4 896
INDIRP4
CNSTI4 936
ADDP4
INDIRF4
ADDRLP4 884+8
INDIRF4
SUBF4
ASGNF4
line 6115
;6115:				VectorNormalize(enang);
ADDRLP4 900
ARGP4
ADDRGP4 VectorNormalize
CALLF4
pop
line 6116
;6116:				vectoangles(enang, angles);
ADDRLP4 900
ARGP4
ADDRLP4 252
ARGP4
ADDRGP4 vectoangles
CALLV
pop
line 6117
;6117:				successchange = 1;
ADDRLP4 860
CNSTI4 1
ASGNI4
line 6118
;6118:			}
LABELV $3300
line 6119
;6119:		}
LABELV $3298
LABELV $3279
line 6121
;6120:
;6121:		if (!successchange)
ADDRLP4 860
INDIRI4
CNSTI4 0
NEI4 $3306
line 6122
;6122:		{
line 6123
;6123:			angles[0] = sin(angle) * 30;
ADDRLP4 236
INDIRF4
ARGF4
ADDRLP4 1028
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 252
CNSTF4 1106247680
ADDRLP4 1028
INDIRF4
MULF4
ASGNF4
line 6124
;6124:			angles[1] = (angle * 180 / M_PI) + 90;
ADDRLP4 252+4
CNSTF4 1127481344
ADDRLP4 236
INDIRF4
MULF4
CNSTF4 1078530011
DIVF4
CNSTF4 1119092736
ADDF4
ASGNF4
line 6125
;6125:			if (angles[1] > 360)
ADDRLP4 252+4
INDIRF4
CNSTF4 1135869952
LEF4 $3309
line 6126
;6126:				angles[1] -= 360;
ADDRLP4 252+4
ADDRLP4 252+4
INDIRF4
CNSTF4 1135869952
SUBF4
ASGNF4
LABELV $3309
line 6127
;6127:			angles[2] = 0;
ADDRLP4 252+8
CNSTF4 0
ASGNF4
line 6128
;6128:		}
LABELV $3306
line 6130
;6129:
;6130:		AnglesToAxis( angles, seeker.axis );
ADDRLP4 252
ARGP4
ADDRLP4 276+12
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 6132
;6131:
;6132:		seeker.hModel = trap_R_RegisterModel("models/items/remote.md3");
ADDRGP4 $3316
ARGP4
ADDRLP4 1028
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 276+8
ADDRLP4 1028
INDIRI4
ASGNI4
line 6133
;6133:		trap_R_AddRefEntityToScene( &seeker );
ADDRLP4 276
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 6134
;6134:	}
LABELV $3258
LABELV $3257
line 6138
;6135:
;6136:doEssentialOne:
;6137:	// add a water splash if partially in and out of water
;6138:	CG_PlayerSplash( cent );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CG_PlayerSplash
CALLV
pop
line 6140
;6139:
;6140:	if ( cg_shadows.integer == 3 && shadow ) {
ADDRGP4 cg_shadows+12
INDIRI4
CNSTI4 3
NEI4 $3317
ADDRLP4 836
INDIRI4
CNSTI4 0
EQI4 $3317
line 6141
;6141:		renderfx |= RF_SHADOW_PLANE;
ADDRLP4 776
ADDRLP4 776
INDIRI4
CNSTI4 256
BORI4
ASGNI4
line 6142
;6142:	}
LABELV $3317
line 6143
;6143:	renderfx |= RF_LIGHTING_ORIGIN;			// use the same origin for all
ADDRLP4 776
ADDRLP4 776
INDIRI4
CNSTI4 128
BORI4
ASGNI4
line 6146
;6144:
;6145:	// if we've been hit, display proper fullscreen fx
;6146:	CG_PlayerHitFX(cent);
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CG_PlayerHitFX
CALLV
pop
line 6148
;6147:
;6148:	VectorCopy( cent->lerpOrigin, legs.origin );
ADDRLP4 0+52
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
INDIRB
ASGNB 12
line 6150
;6149:
;6150:	VectorCopy( cent->lerpOrigin, legs.lightingOrigin );
ADDRLP4 0+108
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
INDIRB
ASGNB 12
line 6151
;6151:	legs.shadowPlane = shadowPlane;
ADDRLP4 0+120
ADDRLP4 540
INDIRF4
ASGNF4
line 6152
;6152:	legs.renderfx = renderfx;
ADDRLP4 0+4
ADDRLP4 776
INDIRI4
ASGNI4
line 6153
;6153:	VectorCopy (legs.origin, legs.oldorigin);	// don't positionally lerp at all
ADDRLP4 0+64
ADDRLP4 0+52
INDIRB
ASGNB 12
line 6155
;6154:
;6155:	CG_G2PlayerAngles( cent, legs.axis, rootAngles );
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 0+12
ARGP4
ADDRLP4 840
ARGP4
ADDRGP4 CG_G2PlayerAngles
CALLV
pop
line 6163
;6156:
;6157:	//This call is mainly just to reconstruct the skeleton. But we'll get the left hand matrix while we're at it.
;6158:	//If we don't reconstruct the skeleton after setting the bone angles, we will get bad bolt points on the model
;6159:	//(e.g. the weapon model bolt will look "lagged") if there's no other GetBoltMatrix call for the rest of the
;6160:	//frame. Yes, this is stupid and needs to be fixed properly.
;6161:	//The current solution is to force it not to reconstruct the skeleton for the first GBM call in G2PlayerAngles.
;6162:	//It works and we end up only reconstructing it once, but it doesn't seem like the best solution.
;6163:	trap_G2API_GetBoltMatrix(cent->ghoul2, 0, cgs.clientinfo[cent->currentState.number].bolt_lhand, &lHandMatrix, cent->turAngles, cent->lerpOrigin, cg.time, cgs.gameModels, cent->modelScale);
ADDRLP4 1012
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1012
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 812
ADDRLP4 1012
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+516
ADDP4
INDIRI4
ARGI4
ADDRLP4 488
ARGP4
ADDRLP4 1012
INDIRP4
CNSTI4 1016
ADDP4
ARGP4
ADDRLP4 1012
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 1012
INDIRP4
CNSTI4 964
ADDP4
ARGP4
ADDRGP4 trap_G2API_GetBoltMatrix
CALLI4
pop
line 6164
;6164:	gotLHandMatrix = qtrue;
ADDRLP4 772
CNSTI4 1
ASGNI4
line 6166
;6165:
;6166:	if (cg.renderingThirdPerson)
ADDRGP4 cg+88
INDIRI4
CNSTI4 0
EQI4 $3331
line 6167
;6167:	{
line 6168
;6168:		if (cgFPLSState != 0)
ADDRGP4 cgFPLSState
INDIRI4
CNSTI4 0
EQI4 $3332
line 6169
;6169:		{
line 6170
;6170:			CG_ForceFPLSPlayerModel(cent, ci);
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 828
INDIRP4
ARGP4
ADDRGP4 CG_ForceFPLSPlayerModel
CALLV
pop
line 6171
;6171:			cgFPLSState = 0;
ADDRGP4 cgFPLSState
CNSTI4 0
ASGNI4
line 6172
;6172:			return;
ADDRGP4 $3087
JUMPV
line 6174
;6173:		}
;6174:	}
LABELV $3331
line 6175
;6175:	else if (ci->team == TEAM_SPECTATOR || (cg.snap && (cg.snap->ps.pm_flags & PMF_FOLLOW)))
ADDRLP4 828
INDIRP4
CNSTI4 68
ADDP4
INDIRI4
CNSTI4 3
EQI4 $3340
ADDRGP4 cg+36
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $3336
ADDRGP4 cg+36
INDIRP4
CNSTI4 56
ADDP4
INDIRI4
CNSTI4 4096
BANDI4
CNSTI4 0
EQI4 $3336
LABELV $3340
line 6176
;6176:	{ //don't allow this when spectating
line 6177
;6177:		if (cgFPLSState != 0)
ADDRGP4 cgFPLSState
INDIRI4
CNSTI4 0
EQI4 $3341
line 6178
;6178:		{
line 6179
;6179:			trap_Cvar_Set("cg_fpls", "0");
ADDRGP4 $3343
ARGP4
ADDRGP4 $3344
ARGP4
ADDRGP4 trap_Cvar_Set
CALLV
pop
line 6180
;6180:			cg_fpls.integer = 0;
ADDRGP4 cg_fpls+12
CNSTI4 0
ASGNI4
line 6182
;6181:
;6182:			CG_ForceFPLSPlayerModel(cent, ci);
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 828
INDIRP4
ARGP4
ADDRGP4 CG_ForceFPLSPlayerModel
CALLV
pop
line 6183
;6183:			cgFPLSState = 0;
ADDRGP4 cgFPLSState
CNSTI4 0
ASGNI4
line 6184
;6184:			return;
ADDRGP4 $3087
JUMPV
LABELV $3341
line 6187
;6185:		}
;6186:
;6187:		if (cg_fpls.integer)
ADDRGP4 cg_fpls+12
INDIRI4
CNSTI4 0
EQI4 $3337
line 6188
;6188:		{
line 6189
;6189:			trap_Cvar_Set("cg_fpls", "0");
ADDRGP4 $3343
ARGP4
ADDRGP4 $3344
ARGP4
ADDRGP4 trap_Cvar_Set
CALLV
pop
line 6190
;6190:		}
line 6191
;6191:	}
ADDRGP4 $3337
JUMPV
LABELV $3336
line 6193
;6192:	else
;6193:	{
line 6194
;6194:		if (cg_fpls.integer && cent->currentState.weapon == WP_SABER && cg.snap && cent->currentState.number == cg.snap->ps.clientNum)
ADDRGP4 cg_fpls+12
INDIRI4
CNSTI4 0
EQI4 $3349
ADDRLP4 1016
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1016
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
CNSTI4 2
NEI4 $3349
ADDRGP4 cg+36
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $3349
ADDRLP4 1016
INDIRP4
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
NEI4 $3349
line 6195
;6195:		{
line 6197
;6196:
;6197:			if (cgFPLSState != cg_fpls.integer)
ADDRGP4 cgFPLSState
INDIRI4
ADDRGP4 cg_fpls+12
INDIRI4
EQI4 $3350
line 6198
;6198:			{
line 6199
;6199:				CG_ForceFPLSPlayerModel(cent, ci);
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 828
INDIRP4
ARGP4
ADDRGP4 CG_ForceFPLSPlayerModel
CALLV
pop
line 6200
;6200:				cgFPLSState = cg_fpls.integer;
ADDRGP4 cgFPLSState
ADDRGP4 cg_fpls+12
INDIRI4
ASGNI4
line 6201
;6201:				return;
ADDRGP4 $3087
JUMPV
line 6209
;6202:			}
;6203:
;6204:			/*
;6205:			mdxaBone_t 		headMatrix;
;6206:			trap_G2API_GetBoltMatrix(cent->ghoul2, 0, cgs.clientinfo[cent->currentState.number].bolt_head, &headMatrix, cent->turAngles, cent->lerpOrigin, cg.time, cgs.gameModels, cent->modelScale);
;6207:			trap_G2API_GiveMeVectorFromMatrix(&headMatrix, ORIGIN, cg.refdef.vieworg);
;6208:			*/
;6209:		}
LABELV $3349
line 6210
;6210:		else if (!cg_fpls.integer && cgFPLSState)
ADDRLP4 1020
CNSTI4 0
ASGNI4
ADDRGP4 cg_fpls+12
INDIRI4
ADDRLP4 1020
INDIRI4
NEI4 $3358
ADDRGP4 cgFPLSState
INDIRI4
ADDRLP4 1020
INDIRI4
EQI4 $3358
line 6211
;6211:		{
line 6212
;6212:			if (cgFPLSState != cg_fpls.integer)
ADDRGP4 cgFPLSState
INDIRI4
ADDRGP4 cg_fpls+12
INDIRI4
EQI4 $3361
line 6213
;6213:			{
line 6214
;6214:				CG_ForceFPLSPlayerModel(cent, ci);
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 828
INDIRP4
ARGP4
ADDRGP4 CG_ForceFPLSPlayerModel
CALLV
pop
line 6215
;6215:				cgFPLSState = cg_fpls.integer;
ADDRGP4 cgFPLSState
ADDRGP4 cg_fpls+12
INDIRI4
ASGNI4
line 6216
;6216:				return;
ADDRGP4 $3087
JUMPV
LABELV $3361
line 6218
;6217:			}
;6218:		}
LABELV $3358
LABELV $3350
line 6219
;6219:	}
LABELV $3337
LABELV $3332
line 6221
;6220:
;6221:	if (cent->currentState.eFlags & EF_DEAD)
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $3365
line 6222
;6222:	{
line 6223
;6223:		dead = qtrue;
ADDRLP4 864
CNSTI4 1
ASGNI4
line 6227
;6224:		//rww - since our angles are fixed when we're dead this shouldn't be an issue anyway
;6225:		//we need to render the dying/dead player because we are now spawning the body on respawn instead of death
;6226:		//return;
;6227:	}
LABELV $3365
line 6229
;6228:
;6229:	ScaleModelAxis(&legs);
ADDRLP4 0
ARGP4
ADDRGP4 ScaleModelAxis
CALLV
pop
line 6231
;6230:
;6231:	memset( &torso, 0, sizeof(torso) );
ADDRLP4 544
ARGP4
CNSTI4 0
ARGI4
CNSTI4 212
ARGI4
ADDRGP4 memset
CALLP4
pop
line 6233
;6232:
;6233:	if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $3367
line 6234
;6234:	{
line 6235
;6235:		goto doEssentialTwo;
ADDRGP4 $3369
JUMPV
LABELV $3367
line 6239
;6236:	}
;6237:
;6238:	//rww - force speed "trail" effect
;6239:	if (!(cent->currentState.powerups & (1 << PW_SPEED)) || doAlpha || !cg_speedTrail.integer)
ADDRLP4 1016
CNSTI4 0
ASGNI4
ADDRFP4 0
INDIRP4
CNSTI4 272
ADDP4
INDIRI4
CNSTI4 1024
BANDI4
ADDRLP4 1016
INDIRI4
EQI4 $3374
ADDRLP4 832
INDIRI4
ADDRLP4 1016
INDIRI4
NEI4 $3374
ADDRGP4 cg_speedTrail+12
INDIRI4
ADDRLP4 1016
INDIRI4
NEI4 $3370
LABELV $3374
line 6240
;6240:	{
line 6241
;6241:		cent->frame_minus1_refreshed = 0;
ADDRFP4 0
INDIRP4
CNSTI4 1464
ADDP4
CNSTI4 0
ASGNI4
line 6242
;6242:		cent->frame_minus2_refreshed = 0;
ADDRFP4 0
INDIRP4
CNSTI4 1468
ADDP4
CNSTI4 0
ASGNI4
line 6243
;6243:	}
LABELV $3370
line 6245
;6244:
;6245:	if (cent->frame_minus1.ghoul2 != cent->ghoul2)
ADDRLP4 1020
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1020
INDIRP4
CNSTI4 1248
ADDP4
INDIRP4
CVPU4 4
ADDRLP4 1020
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
EQU4 $3375
line 6246
;6246:	{
line 6247
;6247:		cent->frame_minus1_refreshed = 0;
ADDRFP4 0
INDIRP4
CNSTI4 1464
ADDP4
CNSTI4 0
ASGNI4
line 6248
;6248:	}
LABELV $3375
line 6249
;6249:	if (cent->frame_minus2.ghoul2 != cent->ghoul2)
ADDRLP4 1024
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1024
INDIRP4
CNSTI4 1460
ADDP4
INDIRP4
CVPU4 4
ADDRLP4 1024
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
EQU4 $3377
line 6250
;6250:	{
line 6251
;6251:		cent->frame_minus2_refreshed = 0;
ADDRFP4 0
INDIRP4
CNSTI4 1468
ADDP4
CNSTI4 0
ASGNI4
line 6252
;6252:	}
LABELV $3377
line 6254
;6253:
;6254:	VectorCopy(cent->currentState.pos.trDelta, tDir);
ADDRLP4 264
ADDRFP4 0
INDIRP4
CNSTI4 36
ADDP4
INDIRB
ASGNB 12
line 6256
;6255:
;6256:	distVelBase = SPEED_TRAIL_DISTANCE*(VectorNormalize(tDir)*0.004);
ADDRLP4 264
ARGP4
ADDRLP4 1028
ADDRGP4 VectorNormalize
CALLF4
ASGNF4
ADDRLP4 764
CNSTF4 1086324736
CNSTF4 998445679
ADDRLP4 1028
INDIRF4
MULF4
MULF4
CVFI4 4
ASGNI4
line 6258
;6257:
;6258:	if (cent->frame_minus1.ghoul2 && cent->frame_minus1_refreshed)
ADDRLP4 1032
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1032
INDIRP4
CNSTI4 1248
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $3379
ADDRLP4 1032
INDIRP4
CNSTI4 1464
ADDP4
INDIRI4
CNSTI4 0
EQI4 $3379
line 6259
;6259:	{
line 6260
;6260:		cent->frame_minus1.renderfx |= RF_FORCE_ENT_ALPHA;
ADDRLP4 1036
ADDRFP4 0
INDIRP4
CNSTI4 1044
ADDP4
ASGNP4
ADDRLP4 1036
INDIRP4
ADDRLP4 1036
INDIRP4
INDIRI4
CNSTI4 1024
BORI4
ASGNI4
line 6261
;6261:		cent->frame_minus1.shaderRGBA[3] = 100;
ADDRFP4 0
INDIRP4
CNSTI4 1123
ADDP4
CNSTU1 100
ASGNU1
line 6267
;6262:
;6263:		//rww - if the client gets a bad framerate we will only receive frame positions
;6264:		//once per frame anyway, so we might end up with speed trails very spread out.
;6265:		//in order to avoid that, we'll get the direction of the last trail from the player
;6266:		//and place the trail refent a set distance from the player location this frame
;6267:		VectorSubtract(cent->frame_minus1.origin, legs.origin, tDir);
ADDRLP4 1040
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 264
ADDRLP4 1040
INDIRP4
CNSTI4 1092
ADDP4
INDIRF4
ADDRLP4 0+52
INDIRF4
SUBF4
ASGNF4
ADDRLP4 264+4
ADDRLP4 1040
INDIRP4
CNSTI4 1096
ADDP4
INDIRF4
ADDRLP4 0+52+4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 264+8
ADDRFP4 0
INDIRP4
CNSTI4 1100
ADDP4
INDIRF4
ADDRLP4 0+52+8
INDIRF4
SUBF4
ASGNF4
line 6268
;6268:		VectorNormalize(tDir);
ADDRLP4 264
ARGP4
ADDRGP4 VectorNormalize
CALLF4
pop
line 6270
;6269:
;6270:		cent->frame_minus1.origin[0] = legs.origin[0]+tDir[0]*distVelBase;
ADDRFP4 0
INDIRP4
CNSTI4 1092
ADDP4
ADDRLP4 0+52
INDIRF4
ADDRLP4 264
INDIRF4
ADDRLP4 764
INDIRI4
CVIF4 4
MULF4
ADDF4
ASGNF4
line 6271
;6271:		cent->frame_minus1.origin[1] = legs.origin[1]+tDir[1]*distVelBase;
ADDRFP4 0
INDIRP4
CNSTI4 1096
ADDP4
ADDRLP4 0+52+4
INDIRF4
ADDRLP4 264+4
INDIRF4
ADDRLP4 764
INDIRI4
CVIF4 4
MULF4
ADDF4
ASGNF4
line 6272
;6272:		cent->frame_minus1.origin[2] = legs.origin[2]+tDir[2]*distVelBase;
ADDRFP4 0
INDIRP4
CNSTI4 1100
ADDP4
ADDRLP4 0+52+8
INDIRF4
ADDRLP4 264+8
INDIRF4
ADDRLP4 764
INDIRI4
CVIF4 4
MULF4
ADDF4
ASGNF4
line 6274
;6273:
;6274:		trap_R_AddRefEntityToScene(&cent->frame_minus1);
ADDRFP4 0
INDIRP4
CNSTI4 1040
ADDP4
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 6275
;6275:	}
LABELV $3379
line 6277
;6276:
;6277:	if (cent->frame_minus2.ghoul2 && cent->frame_minus2_refreshed)
ADDRLP4 1036
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1036
INDIRP4
CNSTI4 1460
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $3395
ADDRLP4 1036
INDIRP4
CNSTI4 1468
ADDP4
INDIRI4
CNSTI4 0
EQI4 $3395
line 6278
;6278:	{
line 6279
;6279:		cent->frame_minus2.renderfx |= RF_FORCE_ENT_ALPHA;
ADDRLP4 1040
ADDRFP4 0
INDIRP4
CNSTI4 1256
ADDP4
ASGNP4
ADDRLP4 1040
INDIRP4
ADDRLP4 1040
INDIRP4
INDIRI4
CNSTI4 1024
BORI4
ASGNI4
line 6280
;6280:		cent->frame_minus2.shaderRGBA[3] = 50;
ADDRFP4 0
INDIRP4
CNSTI4 1335
ADDP4
CNSTU1 50
ASGNU1
line 6283
;6281:
;6282:		//Same as above but do it between trail points instead of the player and first trail entry
;6283:		VectorSubtract(cent->frame_minus2.origin, cent->frame_minus1.origin, tDir);
ADDRLP4 1044
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 264
ADDRLP4 1044
INDIRP4
CNSTI4 1304
ADDP4
INDIRF4
ADDRLP4 1044
INDIRP4
CNSTI4 1092
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 264+4
ADDRLP4 1044
INDIRP4
CNSTI4 1308
ADDP4
INDIRF4
ADDRLP4 1044
INDIRP4
CNSTI4 1096
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 1048
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 264+8
ADDRLP4 1048
INDIRP4
CNSTI4 1312
ADDP4
INDIRF4
ADDRLP4 1048
INDIRP4
CNSTI4 1100
ADDP4
INDIRF4
SUBF4
ASGNF4
line 6284
;6284:		VectorNormalize(tDir);
ADDRLP4 264
ARGP4
ADDRGP4 VectorNormalize
CALLF4
pop
line 6286
;6285:
;6286:		cent->frame_minus2.origin[0] = cent->frame_minus1.origin[0]+tDir[0]*distVelBase;
ADDRLP4 1052
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1052
INDIRP4
CNSTI4 1304
ADDP4
ADDRLP4 1052
INDIRP4
CNSTI4 1092
ADDP4
INDIRF4
ADDRLP4 264
INDIRF4
ADDRLP4 764
INDIRI4
CVIF4 4
MULF4
ADDF4
ASGNF4
line 6287
;6287:		cent->frame_minus2.origin[1] = cent->frame_minus1.origin[1]+tDir[1]*distVelBase;
ADDRLP4 1056
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1056
INDIRP4
CNSTI4 1308
ADDP4
ADDRLP4 1056
INDIRP4
CNSTI4 1096
ADDP4
INDIRF4
ADDRLP4 264+4
INDIRF4
ADDRLP4 764
INDIRI4
CVIF4 4
MULF4
ADDF4
ASGNF4
line 6288
;6288:		cent->frame_minus2.origin[2] = cent->frame_minus1.origin[2]+tDir[2]*distVelBase;
ADDRLP4 1060
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1060
INDIRP4
CNSTI4 1312
ADDP4
ADDRLP4 1060
INDIRP4
CNSTI4 1100
ADDP4
INDIRF4
ADDRLP4 264+8
INDIRF4
ADDRLP4 764
INDIRI4
CVIF4 4
MULF4
ADDF4
ASGNF4
line 6290
;6289:
;6290:		trap_R_AddRefEntityToScene(&cent->frame_minus2);
ADDRFP4 0
INDIRP4
CNSTI4 1252
ADDP4
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 6291
;6291:	}
LABELV $3395
LABELV $3369
line 6294
;6292:
;6293:doEssentialTwo:
;6294:	VectorCopy(cent->turAngles, cg_entities[cent->currentState.number].turAngles);
ADDRLP4 1040
ADDRFP4 0
INDIRP4
ASGNP4
CNSTI4 1920
ADDRLP4 1040
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+1016
ADDP4
ADDRLP4 1040
INDIRP4
CNSTI4 1016
ADDP4
INDIRB
ASGNB 12
line 6295
;6295:	VectorCopy(legs.origin, cg_entities[cent->currentState.number].lerpOrigin);
CNSTI4 1920
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+928
ADDP4
ADDRLP4 0+52
INDIRB
ASGNB 12
line 6298
;6296:
;6297:	// get the animation state (after rotation, to allow feet shuffle)
;6298:	CG_PlayerAnimation( cent, &legs.oldframe, &legs.frame, &legs.backlerp,
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 0+124
ARGP4
ADDRLP4 0+104
ARGP4
ADDRLP4 0+128
ARGP4
ADDRLP4 544+124
ARGP4
ADDRLP4 544+104
ARGP4
ADDRLP4 544+128
ARGP4
ADDRGP4 CG_PlayerAnimation
CALLV
pop
line 6302
;6299:		 &torso.oldframe, &torso.frame, &torso.backlerp );
;6300:
;6301:	//Need these set because we use them in other functions (cent pointer differs from cg_entities values)
;6302:	cg_entities[cent->currentState.number].pe.torso.frame = cent->pe.torso.frame;
ADDRLP4 1044
ADDRFP4 0
INDIRP4
ASGNP4
CNSTI4 1920
ADDRLP4 1044
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+644+64+8
ADDP4
ADDRLP4 1044
INDIRP4
CNSTI4 716
ADDP4
INDIRI4
ASGNI4
line 6303
;6303:	cg_entities[cent->currentState.number].pe.legs.frame = cent->pe.legs.frame;
ADDRLP4 1048
ADDRFP4 0
INDIRP4
ASGNP4
CNSTI4 1920
ADDRLP4 1048
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+644+8
ADDP4
ADDRLP4 1048
INDIRP4
CNSTI4 652
ADDP4
INDIRI4
ASGNI4
line 6306
;6304:
;6305:	// add the talk baloon or disconnect icon
;6306:	CG_PlayerSprites( cent );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CG_PlayerSprites
CALLV
pop
line 6308
;6307:
;6308:	if (cent->currentState.eFlags & EF_DEAD)
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $3415
line 6309
;6309:	{ //keep track of death anim frame for when we copy off the bodyqueue
line 6310
;6310:		cgs.clientinfo[cent->currentState.number].frame = cent->pe.torso.frame;
ADDRLP4 1052
ADDRFP4 0
INDIRP4
ASGNP4
CNSTI4 812
ADDRLP4 1052
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+76
ADDP4
ADDRLP4 1052
INDIRP4
CNSTI4 716
ADDP4
INDIRI4
ASGNI4
line 6311
;6311:	}
LABELV $3415
line 6313
;6312:
;6313:	if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $3419
line 6314
;6314:	{
line 6315
;6315:		goto doEssentialThree;
ADDRGP4 $3421
JUMPV
LABELV $3419
line 6321
;6316:	}
;6317:
;6318:	//rww - render effects multiple times to compensate for low framerate? This won't do much because
;6319:	//the effect still gets rendered in this frame and expires, possibly before the next frame. So
;6320:	//it is disabled for now (setting effectTimeLayer to 0 after one play)
;6321:	if (cent->trailTime < cg.time)
ADDRFP4 0
INDIRP4
CNSTI4 612
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
GEI4 $3422
line 6322
;6322:	{
line 6323
;6323:		cent->trailTime = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 612
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 6324
;6324:	}
LABELV $3422
line 6327
;6325:
;6326:	//compensate for up to 300ms
;6327:	effectTimeLayer = (300 - (cent->trailTime - cg.time));
ADDRLP4 756
CNSTI4 300
ADDRFP4 0
INDIRP4
CNSTI4 612
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
SUBI4
SUBI4
ASGNI4
line 6329
;6328:
;6329:	if (effectTimeLayer < 50)
ADDRLP4 756
INDIRI4
CNSTI4 50
GEI4 $3427
line 6330
;6330:	{ //play at least once
line 6331
;6331:		effectTimeLayer = 50;
ADDRLP4 756
CNSTI4 50
ASGNI4
line 6332
;6332:	}
LABELV $3427
line 6334
;6333:
;6334:	cent->trailTime = cg.time + 300;
ADDRFP4 0
INDIRP4
CNSTI4 612
ADDP4
ADDRGP4 cg+64
INDIRI4
CNSTI4 300
ADDI4
ASGNI4
line 6336
;6335:
;6336:	if (cent->currentState.activeForcePass > FORCE_LEVEL_3)
ADDRFP4 0
INDIRP4
CNSTI4 176
ADDP4
INDIRI4
CNSTI4 3
LEI4 $3430
line 6337
;6337:	{
line 6338
;6338:		int effectTimeLayerL = effectTimeLayer;
ADDRLP4 1052
ADDRLP4 756
INDIRI4
ASGNI4
line 6342
;6339:
;6340:		vec3_t axis[3];
;6341:		vec3_t tAng, fAng, fxDir;
;6342:		int realForceLev = (cent->currentState.activeForcePass - FORCE_LEVEL_3);
ADDRLP4 1056
ADDRFP4 0
INDIRP4
CNSTI4 176
ADDP4
INDIRI4
CNSTI4 3
SUBI4
ASGNI4
line 6344
;6343:
;6344:		VectorSet( tAng, cent->turAngles[PITCH], cent->turAngles[YAW], cent->turAngles[ROLL] );
ADDRLP4 1132
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1108
ADDRLP4 1132
INDIRP4
CNSTI4 1016
ADDP4
INDIRF4
ASGNF4
ADDRLP4 1108+4
ADDRLP4 1132
INDIRP4
CNSTI4 1020
ADDP4
INDIRF4
ASGNF4
ADDRLP4 1108+8
ADDRFP4 0
INDIRP4
CNSTI4 1024
ADDP4
INDIRF4
ASGNF4
line 6346
;6345:
;6346:		VectorSet( fAng, cent->pe.torso.pitchAngle, cent->pe.torso.yawAngle, 0 );
ADDRLP4 1136
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1096
ADDRLP4 1136
INDIRP4
CNSTI4 736
ADDP4
INDIRF4
ASGNF4
ADDRLP4 1096+4
ADDRLP4 1136
INDIRP4
CNSTI4 728
ADDP4
INDIRF4
ASGNF4
ADDRLP4 1096+8
CNSTF4 0
ASGNF4
line 6348
;6347:
;6348:		AngleVectors( fAng, fxDir, NULL, NULL );
ADDRLP4 1096
ARGP4
ADDRLP4 1120
ARGP4
ADDRLP4 1140
CNSTP4 0
ASGNP4
ADDRLP4 1140
INDIRP4
ARGP4
ADDRLP4 1140
INDIRP4
ARGP4
ADDRGP4 AngleVectors
CALLV
pop
line 6351
;6349:
;6350:		//trap_G2API_GetBoltMatrix(cent->ghoul2, 0, cgs.clientinfo[cent->currentState.number].bolt_lhand, &boltMatrix, tAng, cent->lerpOrigin, cg.time, cgs.gameModels, cent->modelScale);
;6351:		if (!gotLHandMatrix)
ADDRLP4 772
INDIRI4
CNSTI4 0
NEI4 $3436
line 6352
;6352:		{
line 6353
;6353:			trap_G2API_GetBoltMatrix(cent->ghoul2, 0, cgs.clientinfo[cent->currentState.number].bolt_lhand, &lHandMatrix, cent->turAngles, cent->lerpOrigin, cg.time, cgs.gameModels, cent->modelScale);
ADDRLP4 1144
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1144
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 812
ADDRLP4 1144
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+516
ADDP4
INDIRI4
ARGI4
ADDRLP4 488
ARGP4
ADDRLP4 1144
INDIRP4
CNSTI4 1016
ADDP4
ARGP4
ADDRLP4 1144
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 1144
INDIRP4
CNSTI4 964
ADDP4
ARGP4
ADDRGP4 trap_G2API_GetBoltMatrix
CALLI4
pop
line 6354
;6354:			gotLHandMatrix = qtrue;
ADDRLP4 772
CNSTI4 1
ASGNI4
line 6355
;6355:		}
LABELV $3436
line 6357
;6356:
;6357:		efOrg[0] = lHandMatrix.matrix[0][3];
ADDRLP4 240
ADDRLP4 488+12
INDIRF4
ASGNF4
line 6358
;6358:		efOrg[1] = lHandMatrix.matrix[1][3];
ADDRLP4 240+4
ADDRLP4 488+16+12
INDIRF4
ASGNF4
line 6359
;6359:		efOrg[2] = lHandMatrix.matrix[2][3];
ADDRLP4 240+8
ADDRLP4 488+32+12
INDIRF4
ASGNF4
line 6361
;6360:
;6361:		AnglesToAxis( fAng, axis );
ADDRLP4 1096
ARGP4
ADDRLP4 1060
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
ADDRGP4 $3450
JUMPV
LABELV $3449
line 6364
;6362:	
;6363:		while (effectTimeLayerL > 0)
;6364:		{
line 6365
;6365:			if ( realForceLev > FORCE_LEVEL_2 )
ADDRLP4 1056
INDIRI4
CNSTI4 2
LEI4 $3452
line 6366
;6366:			{//arc
line 6368
;6367:				//trap_FX_PlayEffectID( cgs.effects.forceLightningWide, efOrg, fxDir );
;6368:				trap_FX_PlayEntityEffectID(cgs.effects.forceDrainWide, efOrg, axis, cent->boltInfo, cent->currentState.number);
ADDRGP4 cgs+72332+156
INDIRI4
ARGI4
ADDRLP4 240
ARGP4
ADDRLP4 1060
ARGP4
ADDRLP4 1144
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1144
INDIRP4
CNSTI4 980
ADDP4
INDIRI4
ARGI4
ADDRLP4 1144
INDIRP4
INDIRI4
ARGI4
ADDRGP4 trap_FX_PlayEntityEffectID
CALLV
pop
line 6369
;6369:			}
ADDRGP4 $3453
JUMPV
LABELV $3452
line 6371
;6370:			else
;6371:			{//line
line 6373
;6372:				//trap_FX_PlayEffectID( cgs.effects.forceLightning, efOrg, fxDir );
;6373:				trap_FX_PlayEntityEffectID(cgs.effects.forceDrain, efOrg, axis, cent->boltInfo, cent->currentState.number);
ADDRGP4 cgs+72332+152
INDIRI4
ARGI4
ADDRLP4 240
ARGP4
ADDRLP4 1060
ARGP4
ADDRLP4 1144
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1144
INDIRP4
CNSTI4 980
ADDP4
INDIRI4
ARGI4
ADDRLP4 1144
INDIRP4
INDIRI4
ARGI4
ADDRGP4 trap_FX_PlayEntityEffectID
CALLV
pop
line 6374
;6374:			}
LABELV $3453
line 6376
;6375:
;6376:			effectTimeLayerL = 0;//-= 50;
ADDRLP4 1052
CNSTI4 0
ASGNI4
line 6377
;6377:		}
LABELV $3450
line 6363
ADDRLP4 1052
INDIRI4
CNSTI4 0
GTI4 $3449
line 6386
;6378:
;6379:		/*
;6380:		if (cent->bolt4 < cg.time)
;6381:		{
;6382:			cent->bolt4 = cg.time + 100;
;6383:			trap_S_StartSound(NULL, cent->currentState.number, CHAN_AUTO, trap_S_RegisterSound("sound/weapons/force/drain.wav") );
;6384:		}
;6385:		*/
;6386:	}
ADDRGP4 $3431
JUMPV
LABELV $3430
line 6387
;6387:	else if ( cent->currentState.activeForcePass )
ADDRFP4 0
INDIRP4
CNSTI4 176
ADDP4
INDIRI4
CNSTI4 0
EQI4 $3458
line 6388
;6388:	{//doing the electrocuting
line 6389
;6389:		int effectTimeLayerL = effectTimeLayer;
ADDRLP4 1052
ADDRLP4 756
INDIRI4
ASGNI4
line 6393
;6390:
;6391:		vec3_t axis[3];
;6392:		vec3_t tAng, fAng, fxDir;
;6393:		VectorSet( tAng, cent->turAngles[PITCH], cent->turAngles[YAW], cent->turAngles[ROLL] );
ADDRLP4 1128
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1104
ADDRLP4 1128
INDIRP4
CNSTI4 1016
ADDP4
INDIRF4
ASGNF4
ADDRLP4 1104+4
ADDRLP4 1128
INDIRP4
CNSTI4 1020
ADDP4
INDIRF4
ASGNF4
ADDRLP4 1104+8
ADDRFP4 0
INDIRP4
CNSTI4 1024
ADDP4
INDIRF4
ASGNF4
line 6395
;6394:
;6395:		VectorSet( fAng, cent->pe.torso.pitchAngle, cent->pe.torso.yawAngle, 0 );
ADDRLP4 1132
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1092
ADDRLP4 1132
INDIRP4
CNSTI4 736
ADDP4
INDIRF4
ASGNF4
ADDRLP4 1092+4
ADDRLP4 1132
INDIRP4
CNSTI4 728
ADDP4
INDIRF4
ASGNF4
ADDRLP4 1092+8
CNSTF4 0
ASGNF4
line 6397
;6396:
;6397:		AngleVectors( fAng, fxDir, NULL, NULL );
ADDRLP4 1092
ARGP4
ADDRLP4 1116
ARGP4
ADDRLP4 1136
CNSTP4 0
ASGNP4
ADDRLP4 1136
INDIRP4
ARGP4
ADDRLP4 1136
INDIRP4
ARGP4
ADDRGP4 AngleVectors
CALLV
pop
line 6400
;6398:
;6399:		//trap_G2API_GetBoltMatrix(cent->ghoul2, 0, cgs.clientinfo[cent->currentState.number].bolt_lhand, &boltMatrix, tAng, cent->lerpOrigin, cg.time, cgs.gameModels, cent->modelScale);
;6400:		if (!gotLHandMatrix)
ADDRLP4 772
INDIRI4
CNSTI4 0
NEI4 $3464
line 6401
;6401:		{
line 6402
;6402:			trap_G2API_GetBoltMatrix(cent->ghoul2, 0, cgs.clientinfo[cent->currentState.number].bolt_lhand, &lHandMatrix, cent->turAngles, cent->lerpOrigin, cg.time, cgs.gameModels, cent->modelScale);
ADDRLP4 1140
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1140
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 812
ADDRLP4 1140
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+516
ADDP4
INDIRI4
ARGI4
ADDRLP4 488
ARGP4
ADDRLP4 1140
INDIRP4
CNSTI4 1016
ADDP4
ARGP4
ADDRLP4 1140
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 1140
INDIRP4
CNSTI4 964
ADDP4
ARGP4
ADDRGP4 trap_G2API_GetBoltMatrix
CALLI4
pop
line 6403
;6403:			gotLHandMatrix = qtrue;
ADDRLP4 772
CNSTI4 1
ASGNI4
line 6404
;6404:		}
LABELV $3464
line 6406
;6405:
;6406:		efOrg[0] = lHandMatrix.matrix[0][3];
ADDRLP4 240
ADDRLP4 488+12
INDIRF4
ASGNF4
line 6407
;6407:		efOrg[1] = lHandMatrix.matrix[1][3];
ADDRLP4 240+4
ADDRLP4 488+16+12
INDIRF4
ASGNF4
line 6408
;6408:		efOrg[2] = lHandMatrix.matrix[2][3];
ADDRLP4 240+8
ADDRLP4 488+32+12
INDIRF4
ASGNF4
line 6410
;6409:
;6410:		AnglesToAxis( fAng, axis );
ADDRLP4 1092
ARGP4
ADDRLP4 1056
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
ADDRGP4 $3478
JUMPV
LABELV $3477
line 6413
;6411:	
;6412:		while (effectTimeLayerL > 0)
;6413:		{
line 6414
;6414:			if ( cent->currentState.activeForcePass > FORCE_LEVEL_2 )
ADDRFP4 0
INDIRP4
CNSTI4 176
ADDP4
INDIRI4
CNSTI4 2
LEI4 $3480
line 6415
;6415:			{//arc
line 6417
;6416:				//trap_FX_PlayEffectID( cgs.effects.forceLightningWide, efOrg, fxDir );
;6417:				trap_FX_PlayEntityEffectID(cgs.effects.forceLightningWide, efOrg, axis, cent->boltInfo, cent->currentState.number);
ADDRGP4 cgs+72332+148
INDIRI4
ARGI4
ADDRLP4 240
ARGP4
ADDRLP4 1056
ARGP4
ADDRLP4 1140
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1140
INDIRP4
CNSTI4 980
ADDP4
INDIRI4
ARGI4
ADDRLP4 1140
INDIRP4
INDIRI4
ARGI4
ADDRGP4 trap_FX_PlayEntityEffectID
CALLV
pop
line 6418
;6418:			}
ADDRGP4 $3481
JUMPV
LABELV $3480
line 6420
;6419:			else
;6420:			{//line
line 6422
;6421:				//trap_FX_PlayEffectID( cgs.effects.forceLightning, efOrg, fxDir );
;6422:				trap_FX_PlayEntityEffectID(cgs.effects.forceLightning, efOrg, axis, cent->boltInfo, cent->currentState.number);
ADDRGP4 cgs+72332+144
INDIRI4
ARGI4
ADDRLP4 240
ARGP4
ADDRLP4 1056
ARGP4
ADDRLP4 1140
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1140
INDIRP4
CNSTI4 980
ADDP4
INDIRI4
ARGI4
ADDRLP4 1140
INDIRP4
INDIRI4
ARGI4
ADDRGP4 trap_FX_PlayEntityEffectID
CALLV
pop
line 6423
;6423:			}
LABELV $3481
line 6425
;6424:
;6425:			effectTimeLayerL = 0;//-= 50;
ADDRLP4 1052
CNSTI4 0
ASGNI4
line 6426
;6426:		}
LABELV $3478
line 6412
ADDRLP4 1052
INDIRI4
CNSTI4 0
GTI4 $3477
line 6435
;6427:
;6428:		/*
;6429:		if (cent->bolt4 < cg.time)
;6430:		{
;6431:			cent->bolt4 = cg.time + 100;
;6432:			trap_S_StartSound(NULL, cent->currentState.number, CHAN_AUTO, trap_S_RegisterSound("sound/weapons/force/lightning.wav") );
;6433:		}
;6434:		*/
;6435:	}
LABELV $3458
LABELV $3431
line 6437
;6436:
;6437:	if ( cent->currentState.powerups & (1 << PW_DISINT_4) )
ADDRFP4 0
INDIRP4
CNSTI4 272
ADDP4
INDIRI4
CNSTI4 512
BANDI4
CNSTI4 0
EQI4 $3486
line 6438
;6438:	{
line 6441
;6439:		vec3_t tAng;
;6440:		//VectorSet( tAng, 0, cent->pe.torso.yawAngle, 0 );
;6441:		VectorSet( tAng, cent->turAngles[PITCH], cent->turAngles[YAW], cent->turAngles[ROLL] );
ADDRLP4 1064
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1052
ADDRLP4 1064
INDIRP4
CNSTI4 1016
ADDP4
INDIRF4
ASGNF4
ADDRLP4 1052+4
ADDRLP4 1064
INDIRP4
CNSTI4 1020
ADDP4
INDIRF4
ASGNF4
ADDRLP4 1052+8
ADDRFP4 0
INDIRP4
CNSTI4 1024
ADDP4
INDIRF4
ASGNF4
line 6444
;6442:
;6443:		//trap_G2API_GetBoltMatrix(cent->ghoul2, 0, cgs.clientinfo[cent->currentState.number].bolt_lhand, &boltMatrix, tAng, cent->lerpOrigin, cg.time, cgs.gameModels, cent->modelScale);
;6444:		if (!gotLHandMatrix)
ADDRLP4 772
INDIRI4
CNSTI4 0
NEI4 $3490
line 6445
;6445:		{
line 6446
;6446:			trap_G2API_GetBoltMatrix(cent->ghoul2, 0, cgs.clientinfo[cent->currentState.number].bolt_lhand, &lHandMatrix, cent->turAngles, cent->lerpOrigin, cg.time, cgs.gameModels, cent->modelScale);
ADDRLP4 1068
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1068
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 812
ADDRLP4 1068
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+516
ADDP4
INDIRI4
ARGI4
ADDRLP4 488
ARGP4
ADDRLP4 1068
INDIRP4
CNSTI4 1016
ADDP4
ARGP4
ADDRLP4 1068
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 1068
INDIRP4
CNSTI4 964
ADDP4
ARGP4
ADDRGP4 trap_G2API_GetBoltMatrix
CALLI4
pop
line 6447
;6447:			gotLHandMatrix = qtrue;
ADDRLP4 772
CNSTI4 1
ASGNI4
line 6448
;6448:		}
LABELV $3490
line 6450
;6449:
;6450:		efOrg[0] = lHandMatrix.matrix[0][3];
ADDRLP4 240
ADDRLP4 488+12
INDIRF4
ASGNF4
line 6451
;6451:		efOrg[1] = lHandMatrix.matrix[1][3];
ADDRLP4 240+4
ADDRLP4 488+16+12
INDIRF4
ASGNF4
line 6452
;6452:		efOrg[2] = lHandMatrix.matrix[2][3];
ADDRLP4 240+8
ADDRLP4 488+32+12
INDIRF4
ASGNF4
line 6454
;6453:
;6454:		if ( (cent->currentState.forcePowersActive & (1 << FP_GRIP)) &&
ADDRLP4 1068
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1072
CNSTI4 0
ASGNI4
ADDRLP4 1068
INDIRP4
CNSTI4 240
ADDP4
INDIRI4
CNSTI4 64
BANDI4
ADDRLP4 1072
INDIRI4
EQI4 $3503
ADDRGP4 cg+88
INDIRI4
ADDRLP4 1072
INDIRI4
NEI4 $3507
ADDRLP4 1068
INDIRP4
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
EQI4 $3503
LABELV $3507
line 6456
;6455:			(cg.renderingThirdPerson || cent->currentState.number != cg.snap->ps.clientNum) )
;6456:		{
line 6459
;6457:			vec3_t boltDir;
;6458:			vec3_t origBolt;
;6459:			VectorCopy(efOrg, origBolt);
ADDRLP4 1088
ADDRLP4 240
INDIRB
ASGNB 12
line 6460
;6460:			trap_G2API_GiveMeVectorFromMatrix( &lHandMatrix, NEGATIVE_Y, boltDir );
ADDRLP4 488
ARGP4
CNSTI4 6
ARGI4
ADDRLP4 1076
ARGP4
ADDRGP4 trap_G2API_GiveMeVectorFromMatrix
CALLV
pop
line 6462
;6461:
;6462:			CG_ForceGripEffect( efOrg );
ADDRLP4 240
ARGP4
ADDRGP4 CG_ForceGripEffect
CALLV
pop
line 6463
;6463:			CG_ForceGripEffect( efOrg );
ADDRLP4 240
ARGP4
ADDRGP4 CG_ForceGripEffect
CALLV
pop
line 6466
;6464:
;6465:			//Render a scaled version of the model's hand with a n337 looking shader
;6466:			{
line 6471
;6467:				const char *rotateBone;
;6468:				char *limbName;
;6469:				char *limbCapName;
;6470:				vec3_t armAng;
;6471:				float wv = sin( cg.time * 0.003f ) * 0.08f + 0.1f;
CNSTF4 994352038
ADDRGP4 cg+64
INDIRI4
CVIF4 4
MULF4
ARGF4
ADDRLP4 1128
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 1112
CNSTF4 1034147594
ADDRLP4 1128
INDIRF4
MULF4
CNSTF4 1036831949
ADDF4
ASGNF4
line 6473
;6472:
;6473:				rotateBone = "lradius";
ADDRLP4 1116
ADDRGP4 $3509
ASGNP4
line 6474
;6474:				limbName = "l_arm";
ADDRLP4 1120
ADDRGP4 $3510
ASGNP4
line 6475
;6475:				limbCapName = "l_arm_cap_torso_off";
ADDRLP4 1124
ADDRGP4 $3511
ASGNP4
line 6477
;6476:
;6477:				if (cent->grip_arm.ghoul2 && trap_G2_HaveWeGhoul2Models(cent->grip_arm.ghoul2))
ADDRLP4 1132
ADDRFP4 0
INDIRP4
CNSTI4 1900
ADDP4
INDIRP4
ASGNP4
ADDRLP4 1132
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $3512
ADDRLP4 1132
INDIRP4
ARGP4
ADDRLP4 1136
ADDRGP4 trap_G2_HaveWeGhoul2Models
CALLI4
ASGNI4
ADDRLP4 1136
INDIRI4
CNSTI4 0
EQI4 $3512
line 6478
;6478:				{
line 6479
;6479:					trap_G2API_CleanGhoul2Models(&(cent->grip_arm.ghoul2));
ADDRFP4 0
INDIRP4
CNSTI4 1900
ADDP4
ARGP4
ADDRGP4 trap_G2API_CleanGhoul2Models
CALLV
pop
line 6480
;6480:				}
LABELV $3512
line 6482
;6481:
;6482:				memset( &cent->grip_arm, 0, sizeof(cent->grip_arm) );
ADDRFP4 0
INDIRP4
CNSTI4 1692
ADDP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 212
ARGI4
ADDRGP4 memset
CALLP4
pop
line 6484
;6483:
;6484:				VectorCopy(origBolt, efOrg);
ADDRLP4 240
ADDRLP4 1088
INDIRB
ASGNB 12
line 6485
;6485:				trap_G2API_GiveMeVectorFromMatrix( &lHandMatrix, NEGATIVE_Y, boltDir );
ADDRLP4 488
ARGP4
CNSTI4 6
ARGI4
ADDRLP4 1076
ARGP4
ADDRGP4 trap_G2API_GiveMeVectorFromMatrix
CALLV
pop
line 6486
;6486:				efOrg[0] += boltDir[0]*8;
ADDRLP4 240
ADDRLP4 240
INDIRF4
CNSTF4 1090519040
ADDRLP4 1076
INDIRF4
MULF4
ADDF4
ASGNF4
line 6487
;6487:				efOrg[1] += boltDir[1]*8;
ADDRLP4 240+4
ADDRLP4 240+4
INDIRF4
CNSTF4 1090519040
ADDRLP4 1076+4
INDIRF4
MULF4
ADDF4
ASGNF4
line 6488
;6488:				efOrg[2] += boltDir[2]*8;
ADDRLP4 240+8
ADDRLP4 240+8
INDIRF4
CNSTF4 1090519040
ADDRLP4 1076+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 6489
;6489:				trap_G2API_GiveMeVectorFromMatrix( &lHandMatrix, NEGATIVE_X, boltDir );
ADDRLP4 488
ARGP4
CNSTI4 4
ARGI4
ADDRLP4 1076
ARGP4
ADDRGP4 trap_G2API_GiveMeVectorFromMatrix
CALLV
pop
line 6490
;6490:				efOrg[0] -= boltDir[0]*4;
ADDRLP4 240
ADDRLP4 240
INDIRF4
CNSTF4 1082130432
ADDRLP4 1076
INDIRF4
MULF4
SUBF4
ASGNF4
line 6491
;6491:				efOrg[1] -= boltDir[1]*4;
ADDRLP4 240+4
ADDRLP4 240+4
INDIRF4
CNSTF4 1082130432
ADDRLP4 1076+4
INDIRF4
MULF4
SUBF4
ASGNF4
line 6492
;6492:				efOrg[2] -= boltDir[2]*4;
ADDRLP4 240+8
ADDRLP4 240+8
INDIRF4
CNSTF4 1082130432
ADDRLP4 1076+8
INDIRF4
MULF4
SUBF4
ASGNF4
line 6495
;6493:
;6494:				//efOrg[2] += 8;
;6495:				efOrg[2] -= 4;
ADDRLP4 240+8
ADDRLP4 240+8
INDIRF4
CNSTF4 1082130432
SUBF4
ASGNF4
line 6497
;6496:
;6497:				VectorCopy(efOrg, cent->grip_arm.origin);
ADDRFP4 0
INDIRP4
CNSTI4 1744
ADDP4
ADDRLP4 240
INDIRB
ASGNB 12
line 6498
;6498:				VectorCopy(cent->grip_arm.origin, cent->grip_arm.lightingOrigin);
ADDRLP4 1140
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1140
INDIRP4
CNSTI4 1800
ADDP4
ADDRLP4 1140
INDIRP4
CNSTI4 1744
ADDP4
INDIRB
ASGNB 12
line 6501
;6499:
;6500:				//VectorCopy(cent->lerpAngles, armAng);
;6501:				VectorAdd(vec3_origin, rootAngles, armAng);
ADDRLP4 1100
ADDRGP4 vec3_origin
INDIRF4
ADDRLP4 840
INDIRF4
ADDF4
ASGNF4
ADDRLP4 1100+4
ADDRGP4 vec3_origin+4
INDIRF4
ADDRLP4 840+4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 1100+8
ADDRGP4 vec3_origin+8
INDIRF4
ADDRLP4 840+8
INDIRF4
ADDF4
ASGNF4
line 6503
;6502:				//armAng[ROLL] = -90;
;6503:				armAng[ROLL] = 0;
ADDRLP4 1100+8
CNSTF4 0
ASGNF4
line 6504
;6504:				armAng[PITCH] = 0;
ADDRLP4 1100
CNSTF4 0
ASGNF4
line 6505
;6505:				AnglesToAxis(armAng, cent->grip_arm.axis);
ADDRLP4 1100
ARGP4
ADDRFP4 0
INDIRP4
CNSTI4 1704
ADDP4
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 6507
;6506:				
;6507:				trap_G2API_DuplicateGhoul2Instance(cent->ghoul2, &cent->grip_arm.ghoul2);
ADDRLP4 1144
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1144
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 1144
INDIRP4
CNSTI4 1900
ADDP4
ARGP4
ADDRGP4 trap_G2API_DuplicateGhoul2Instance
CALLV
pop
line 6509
;6508:
;6509:				trap_G2API_SetRootSurface(cent->grip_arm.ghoul2, 0, limbName);
ADDRFP4 0
INDIRP4
CNSTI4 1900
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 1120
INDIRP4
ARGP4
ADDRGP4 trap_G2API_SetRootSurface
CALLI4
pop
line 6510
;6510:				trap_G2API_SetNewOrigin(cent->grip_arm.ghoul2, trap_G2API_AddBolt(cent->grip_arm.ghoul2, 0, rotateBone));
ADDRFP4 0
INDIRP4
CNSTI4 1900
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 1116
INDIRP4
ARGP4
ADDRLP4 1148
ADDRGP4 trap_G2API_AddBolt
CALLI4
ASGNI4
ADDRFP4 0
INDIRP4
CNSTI4 1900
ADDP4
INDIRP4
ARGP4
ADDRLP4 1148
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetNewOrigin
CALLI4
pop
line 6511
;6511:				trap_G2API_SetSurfaceOnOff(cent->grip_arm.ghoul2, limbCapName, 0);
ADDRFP4 0
INDIRP4
CNSTI4 1900
ADDP4
INDIRP4
ARGP4
ADDRLP4 1124
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 trap_G2API_SetSurfaceOnOff
CALLI4
pop
line 6513
;6512:
;6513:				cent->grip_arm.modelScale[0] = 1;//+(wv*6);
ADDRFP4 0
INDIRP4
CNSTI4 1888
ADDP4
CNSTF4 1065353216
ASGNF4
line 6514
;6514:				cent->grip_arm.modelScale[1] = 1;//+(wv*6);
ADDRFP4 0
INDIRP4
CNSTI4 1892
ADDP4
CNSTF4 1065353216
ASGNF4
line 6515
;6515:				cent->grip_arm.modelScale[2] = 1;//+(wv*6);
ADDRFP4 0
INDIRP4
CNSTI4 1896
ADDP4
CNSTF4 1065353216
ASGNF4
line 6516
;6516:				ScaleModelAxis(&cent->grip_arm);
ADDRFP4 0
INDIRP4
CNSTI4 1692
ADDP4
ARGP4
ADDRGP4 ScaleModelAxis
CALLV
pop
line 6518
;6517:
;6518:				cent->grip_arm.radius = 64;
ADDRFP4 0
INDIRP4
CNSTI4 1784
ADDP4
CNSTF4 1115684864
ASGNF4
line 6520
;6519:
;6520:				cent->grip_arm.customShader = trap_R_RegisterShader( "gfx/misc/red_portashield" );
ADDRGP4 $3530
ARGP4
ADDRLP4 1152
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRFP4 0
INDIRP4
CNSTI4 1768
ADDP4
ADDRLP4 1152
INDIRI4
ASGNI4
line 6522
;6521:				
;6522:				cent->grip_arm.renderfx |= RF_RGB_TINT;
ADDRLP4 1156
ADDRFP4 0
INDIRP4
CNSTI4 1696
ADDP4
ASGNP4
ADDRLP4 1156
INDIRP4
ADDRLP4 1156
INDIRP4
INDIRI4
CNSTI4 2048
BORI4
ASGNI4
line 6523
;6523:				cent->grip_arm.shaderRGBA[0] = 255 - (wv*900);
ADDRLP4 1164
CNSTF4 1132396544
CNSTF4 1147207680
ADDRLP4 1112
INDIRF4
MULF4
SUBF4
ASGNF4
ADDRLP4 1168
CNSTF4 1325400064
ASGNF4
ADDRLP4 1164
INDIRF4
ADDRLP4 1168
INDIRF4
LTF4 $3532
ADDRLP4 1160
ADDRLP4 1164
INDIRF4
ADDRLP4 1168
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $3533
JUMPV
LABELV $3532
ADDRLP4 1160
ADDRLP4 1164
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $3533
ADDRFP4 0
INDIRP4
CNSTI4 1772
ADDP4
ADDRLP4 1160
INDIRU4
CVUU1 4
ASGNU1
line 6524
;6524:				if (cent->grip_arm.shaderRGBA[0] < 30)
ADDRFP4 0
INDIRP4
CNSTI4 1772
ADDP4
INDIRU1
CVUI4 1
CNSTI4 30
GEI4 $3534
line 6525
;6525:				{
line 6526
;6526:					cent->grip_arm.shaderRGBA[0] = 30;
ADDRFP4 0
INDIRP4
CNSTI4 1772
ADDP4
CNSTU1 30
ASGNU1
line 6527
;6527:				}
LABELV $3534
line 6528
;6528:				if (cent->grip_arm.shaderRGBA[0] > 255)
ADDRFP4 0
INDIRP4
CNSTI4 1772
ADDP4
INDIRU1
CVUI4 1
CNSTI4 255
LEI4 $3536
line 6529
;6529:				{
line 6530
;6530:					cent->grip_arm.shaderRGBA[0] = 255;
ADDRFP4 0
INDIRP4
CNSTI4 1772
ADDP4
CNSTU1 255
ASGNU1
line 6531
;6531:				}
LABELV $3536
line 6532
;6532:				cent->grip_arm.shaderRGBA[1] = cent->grip_arm.shaderRGBA[2] = cent->grip_arm.shaderRGBA[0];
ADDRLP4 1172
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1176
ADDRLP4 1172
INDIRP4
CNSTI4 1772
ADDP4
INDIRU1
ASGNU1
ADDRLP4 1172
INDIRP4
CNSTI4 1774
ADDP4
ADDRLP4 1176
INDIRU1
ASGNU1
ADDRLP4 1172
INDIRP4
CNSTI4 1773
ADDP4
ADDRLP4 1176
INDIRU1
ASGNU1
line 6534
;6533:				
;6534:				trap_R_AddRefEntityToScene( &cent->grip_arm );
ADDRFP4 0
INDIRP4
CNSTI4 1692
ADDP4
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 6535
;6535:			}
line 6536
;6536:		}
ADDRGP4 $3504
JUMPV
LABELV $3503
line 6537
;6537:		else if (!(cent->currentState.forcePowersActive & (1 << FP_GRIP)))
ADDRFP4 0
INDIRP4
CNSTI4 240
ADDP4
INDIRI4
CNSTI4 64
BANDI4
CNSTI4 0
NEI4 $3538
line 6538
;6538:		{
line 6539
;6539:			CG_ForcePushBlur( efOrg );
ADDRLP4 240
ARGP4
ADDRGP4 CG_ForcePushBlur
CALLV
pop
line 6540
;6540:		}
LABELV $3538
LABELV $3504
line 6541
;6541:	}
LABELV $3486
line 6543
;6542:
;6543:	if (cent->currentState.weapon == WP_STUN_BATON && cent->currentState.number == cg.snap->ps.clientNum)
ADDRLP4 1052
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1052
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
CNSTI4 1
NEI4 $3540
ADDRLP4 1052
INDIRP4
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
NEI4 $3540
line 6544
;6544:	{
line 6545
;6545:		trap_S_AddLoopingSound( cent->currentState.number, cg.refdef.vieworg, vec3_origin, 
ADDRGP4 $3545
ARGP4
ADDRLP4 1056
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRFP4 0
INDIRP4
INDIRI4
ARGI4
ADDRGP4 cg+3616+24
ARGP4
ADDRGP4 vec3_origin
ARGP4
ADDRLP4 1056
INDIRI4
ARGI4
ADDRGP4 trap_S_AddLoopingSound
CALLV
pop
line 6547
;6546:			trap_S_RegisterSound( "sound/weapons/baton/idle.wav" ) );
;6547:	}
LABELV $3540
line 6551
;6548:
;6549:	//NOTE: All effects that should be visible during mindtrick should go above here
;6550:
;6551:	if (iwantout)
ADDRLP4 768
INDIRI4
CNSTI4 0
EQI4 $3546
line 6552
;6552:	{
line 6553
;6553:		goto stillDoSaber;
ADDRGP4 $3548
JUMPV
LABELV $3546
line 6556
;6554:		//return;
;6555:	}
;6556:	else if (doAlpha)
ADDRLP4 832
INDIRI4
CNSTI4 0
EQI4 $3549
line 6557
;6557:	{
line 6558
;6558:		legs.renderfx |= RF_FORCE_ENT_ALPHA;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 1024
BORI4
ASGNI4
line 6559
;6559:		legs.shaderRGBA[3] = cent->trickAlpha;
ADDRLP4 0+80+3
ADDRFP4 0
INDIRP4
CNSTI4 1904
ADDP4
INDIRI4
CVIU4 4
CVUU1 4
ASGNU1
line 6561
;6560:
;6561:		if (legs.shaderRGBA[3] < 1)
ADDRLP4 0+80+3
INDIRU1
CVUI4 1
CNSTI4 1
GEI4 $3554
line 6562
;6562:		{ //don't cancel it out even if it's < 1
line 6563
;6563:			legs.shaderRGBA[3] = 1;
ADDRLP4 0+80+3
CNSTU1 1
ASGNU1
line 6564
;6564:		}
LABELV $3554
line 6565
;6565:	}
LABELV $3549
line 6567
;6566:
;6567:	if (cg_entities[cent->currentState.number].teamPowerEffectTime > cg.time)
CNSTI4 1920
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+1912
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
LEI4 $3560
line 6568
;6568:	{
line 6569
;6569:		if (cg_entities[cent->currentState.number].teamPowerType == 3)
CNSTI4 1920
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+1916
ADDP4
INDIRI4
CNSTI4 3
NEI4 $3564
line 6570
;6570:		{ //absorb is a somewhat different effect entirely
line 6572
;6571:			//Guess I'll take care of it where it's always been, just checking these values instead.
;6572:		}
ADDRGP4 $3565
JUMPV
LABELV $3564
line 6574
;6573:		else
;6574:		{
line 6578
;6575:			vec4_t preCol;
;6576:			int preRFX;
;6577:
;6578:			preRFX = legs.renderfx;
ADDRLP4 1072
ADDRLP4 0+4
INDIRI4
ASGNI4
line 6580
;6579:
;6580:			legs.renderfx |= RF_RGB_TINT;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 2048
BORI4
ASGNI4
line 6581
;6581:			legs.renderfx |= RF_FORCE_ENT_ALPHA;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 1024
BORI4
ASGNI4
line 6583
;6582:
;6583:			preCol[0] = legs.shaderRGBA[0];
ADDRLP4 1056
ADDRLP4 0+80
INDIRU1
CVUI4 1
CVIF4 4
ASGNF4
line 6584
;6584:			preCol[1] = legs.shaderRGBA[1];
ADDRLP4 1056+4
ADDRLP4 0+80+1
INDIRU1
CVUI4 1
CVIF4 4
ASGNF4
line 6585
;6585:			preCol[2] = legs.shaderRGBA[2];
ADDRLP4 1056+8
ADDRLP4 0+80+2
INDIRU1
CVUI4 1
CVIF4 4
ASGNF4
line 6586
;6586:			preCol[3] = legs.shaderRGBA[3];
ADDRLP4 1056+12
ADDRLP4 0+80+3
INDIRU1
CVUI4 1
CVIF4 4
ASGNF4
line 6588
;6587:
;6588:			if (cg_entities[cent->currentState.number].teamPowerType == 1)
CNSTI4 1920
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+1916
ADDP4
INDIRI4
CNSTI4 1
NEI4 $3580
line 6589
;6589:			{ //heal
line 6590
;6590:				legs.shaderRGBA[0] = 0;
ADDRLP4 0+80
CNSTU1 0
ASGNU1
line 6591
;6591:				legs.shaderRGBA[1] = 255;
ADDRLP4 0+80+1
CNSTU1 255
ASGNU1
line 6592
;6592:				legs.shaderRGBA[2] = 0;
ADDRLP4 0+80+2
CNSTU1 0
ASGNU1
line 6593
;6593:			}
ADDRGP4 $3581
JUMPV
LABELV $3580
line 6594
;6594:			else if (cg_entities[cent->currentState.number].teamPowerType == 0)
CNSTI4 1920
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+1916
ADDP4
INDIRI4
CNSTI4 0
NEI4 $3588
line 6595
;6595:			{ //regen
line 6596
;6596:				legs.shaderRGBA[0] = 0;
ADDRLP4 0+80
CNSTU1 0
ASGNU1
line 6597
;6597:				legs.shaderRGBA[1] = 0;
ADDRLP4 0+80+1
CNSTU1 0
ASGNU1
line 6598
;6598:				legs.shaderRGBA[2] = 255;
ADDRLP4 0+80+2
CNSTU1 255
ASGNU1
line 6599
;6599:			}
ADDRGP4 $3589
JUMPV
LABELV $3588
line 6601
;6600:			else
;6601:			{ //drain
line 6602
;6602:				legs.shaderRGBA[0] = 255;
ADDRLP4 0+80
CNSTU1 255
ASGNU1
line 6603
;6603:				legs.shaderRGBA[1] = 0;
ADDRLP4 0+80+1
CNSTU1 0
ASGNU1
line 6604
;6604:				legs.shaderRGBA[2] = 0;
ADDRLP4 0+80+2
CNSTU1 0
ASGNU1
line 6605
;6605:			}
LABELV $3589
LABELV $3581
line 6607
;6606:
;6607:			legs.shaderRGBA[3] = ((cg_entities[cent->currentState.number].teamPowerEffectTime - cg.time)/8);
ADDRLP4 0+80+3
CNSTI4 1920
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cg_entities+1912
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
SUBI4
CNSTI4 8
DIVI4
CVIU4 4
CVUU1 4
ASGNU1
line 6609
;6608:
;6609:			legs.customShader = trap_R_RegisterShader( "powerups/ysalimarishell" );
ADDRGP4 $3606
ARGP4
ADDRLP4 1076
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRLP4 0+76
ADDRLP4 1076
INDIRI4
ASGNI4
line 6612
;6610:			//trap_R_AddRefEntityToScene( &legs );
;6611:
;6612:			legs.customShader = 0;
ADDRLP4 0+76
CNSTI4 0
ASGNI4
line 6613
;6613:			legs.renderfx = preRFX;
ADDRLP4 0+4
ADDRLP4 1072
INDIRI4
ASGNI4
line 6614
;6614:			legs.shaderRGBA[0] = preCol[0];
ADDRLP4 1084
ADDRLP4 1056
INDIRF4
ASGNF4
ADDRLP4 1088
CNSTF4 1325400064
ASGNF4
ADDRLP4 1084
INDIRF4
ADDRLP4 1088
INDIRF4
LTF4 $3611
ADDRLP4 1080
ADDRLP4 1084
INDIRF4
ADDRLP4 1088
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $3612
JUMPV
LABELV $3611
ADDRLP4 1080
ADDRLP4 1084
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $3612
ADDRLP4 0+80
ADDRLP4 1080
INDIRU4
CVUU1 4
ASGNU1
line 6615
;6615:			legs.shaderRGBA[1] = preCol[1];
ADDRLP4 1096
ADDRLP4 1056+4
INDIRF4
ASGNF4
ADDRLP4 1100
CNSTF4 1325400064
ASGNF4
ADDRLP4 1096
INDIRF4
ADDRLP4 1100
INDIRF4
LTF4 $3617
ADDRLP4 1092
ADDRLP4 1096
INDIRF4
ADDRLP4 1100
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $3618
JUMPV
LABELV $3617
ADDRLP4 1092
ADDRLP4 1096
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $3618
ADDRLP4 0+80+1
ADDRLP4 1092
INDIRU4
CVUU1 4
ASGNU1
line 6616
;6616:			legs.shaderRGBA[2] = preCol[2];
ADDRLP4 1108
ADDRLP4 1056+8
INDIRF4
ASGNF4
ADDRLP4 1112
CNSTF4 1325400064
ASGNF4
ADDRLP4 1108
INDIRF4
ADDRLP4 1112
INDIRF4
LTF4 $3623
ADDRLP4 1104
ADDRLP4 1108
INDIRF4
ADDRLP4 1112
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $3624
JUMPV
LABELV $3623
ADDRLP4 1104
ADDRLP4 1108
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $3624
ADDRLP4 0+80+2
ADDRLP4 1104
INDIRU4
CVUU1 4
ASGNU1
line 6617
;6617:			legs.shaderRGBA[3] = preCol[3];
ADDRLP4 1120
ADDRLP4 1056+12
INDIRF4
ASGNF4
ADDRLP4 1124
CNSTF4 1325400064
ASGNF4
ADDRLP4 1120
INDIRF4
ADDRLP4 1124
INDIRF4
LTF4 $3629
ADDRLP4 1116
ADDRLP4 1120
INDIRF4
ADDRLP4 1124
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $3630
JUMPV
LABELV $3629
ADDRLP4 1116
ADDRLP4 1120
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $3630
ADDRLP4 0+80+3
ADDRLP4 1116
INDIRU4
CVUU1 4
ASGNU1
line 6618
;6618:		}
LABELV $3565
line 6619
;6619:	}
LABELV $3560
line 6622
;6620:
;6621:	//If you've tricked this client.
;6622:	if (CG_IsMindTricked(cg.snap->ps.fd.forceMindtrickTargetIndex,
ADDRGP4 cg+36
INDIRP4
CNSTI4 1200
ADDP4
INDIRI4
ARGI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 1204
ADDP4
INDIRI4
ARGI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 1208
ADDP4
INDIRI4
ARGI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 1212
ADDP4
INDIRI4
ARGI4
ADDRFP4 0
INDIRP4
INDIRI4
ARGI4
ADDRLP4 1056
ADDRGP4 CG_IsMindTricked
CALLI4
ASGNI4
ADDRLP4 1056
INDIRI4
CNSTI4 0
EQI4 $3631
line 6627
;6623:		cg.snap->ps.fd.forceMindtrickTargetIndex2,
;6624:		cg.snap->ps.fd.forceMindtrickTargetIndex3,
;6625:		cg.snap->ps.fd.forceMindtrickTargetIndex4,
;6626:		cent->currentState.number))
;6627:	{
line 6628
;6628:		if (cent->ghoul2)
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $3637
line 6629
;6629:		{
line 6633
;6630:			vec3_t efOrg;
;6631:			vec3_t tAng, fxAng;
;6632:			vec3_t axis[3];
;6633:			int effectTimeLayerC = effectTimeLayer;
ADDRLP4 1060
ADDRLP4 756
INDIRI4
ASGNI4
line 6637
;6634:			sharedBoltInterface_t fxObj;
;6635:
;6636:			//VectorSet( tAng, 0, cent->pe.torso.yawAngle, 0 );
;6637:			VectorSet( tAng, cent->turAngles[PITCH], cent->turAngles[YAW], cent->turAngles[ROLL] );
ADDRLP4 1192
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1168
ADDRLP4 1192
INDIRP4
CNSTI4 1016
ADDP4
INDIRF4
ASGNF4
ADDRLP4 1168+4
ADDRLP4 1192
INDIRP4
CNSTI4 1020
ADDP4
INDIRF4
ASGNF4
ADDRLP4 1168+8
ADDRFP4 0
INDIRP4
CNSTI4 1024
ADDP4
INDIRF4
ASGNF4
line 6639
;6638:
;6639:			trap_G2API_GetBoltMatrix(cent->ghoul2, 0, cgs.clientinfo[cent->currentState.number].bolt_head, &boltMatrix, tAng, cent->lerpOrigin, cg.time, cgs.gameModels, cent->modelScale);
ADDRLP4 1196
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1196
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 812
ADDRLP4 1196
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+520
ADDP4
INDIRI4
ARGI4
ADDRLP4 780
ARGP4
ADDRLP4 1168
ARGP4
ADDRLP4 1196
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 1196
INDIRP4
CNSTI4 964
ADDP4
ARGP4
ADDRGP4 trap_G2API_GetBoltMatrix
CALLI4
pop
line 6641
;6640:
;6641:			trap_G2API_GiveMeVectorFromMatrix(&boltMatrix, ORIGIN, efOrg);
ADDRLP4 780
ARGP4
CNSTI4 0
ARGI4
ADDRLP4 1100
ARGP4
ADDRGP4 trap_G2API_GiveMeVectorFromMatrix
CALLV
pop
line 6642
;6642:			trap_G2API_GiveMeVectorFromMatrix(&boltMatrix, NEGATIVE_Y, fxAng);
ADDRLP4 780
ARGP4
CNSTI4 6
ARGI4
ADDRLP4 1180
ARGP4
ADDRGP4 trap_G2API_GiveMeVectorFromMatrix
CALLV
pop
line 6644
;6643:
;6644: 			axis[0][0] = boltMatrix.matrix[0][0];
ADDRLP4 1064
ADDRLP4 780
INDIRF4
ASGNF4
line 6645
;6645: 			axis[0][1] = boltMatrix.matrix[1][0];
ADDRLP4 1064+4
ADDRLP4 780+16
INDIRF4
ASGNF4
line 6646
;6646:		 	axis[0][2] = boltMatrix.matrix[2][0];
ADDRLP4 1064+8
ADDRLP4 780+32
INDIRF4
ASGNF4
line 6648
;6647:
;6648: 			axis[1][0] = boltMatrix.matrix[0][1];
ADDRLP4 1064+12
ADDRLP4 780+4
INDIRF4
ASGNF4
line 6649
;6649: 			axis[1][1] = boltMatrix.matrix[1][1];
ADDRLP4 1064+12+4
ADDRLP4 780+16+4
INDIRF4
ASGNF4
line 6650
;6650:		 	axis[1][2] = boltMatrix.matrix[2][1];
ADDRLP4 1064+12+8
ADDRLP4 780+32+4
INDIRF4
ASGNF4
line 6652
;6651:
;6652: 			axis[2][0] = boltMatrix.matrix[0][2];
ADDRLP4 1064+24
ADDRLP4 780+8
INDIRF4
ASGNF4
line 6653
;6653: 			axis[2][1] = boltMatrix.matrix[1][2];
ADDRLP4 1064+24+4
ADDRLP4 780+16+8
INDIRF4
ASGNF4
line 6654
;6654:		 	axis[2][2] = boltMatrix.matrix[2][2];
ADDRLP4 1064+24+8
ADDRLP4 780+32+8
INDIRF4
ASGNF4
line 6656
;6655:
;6656:			VectorCopy(/*efOrg*/cent->lerpOrigin, fxObj.origin);
ADDRLP4 1112+28
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
INDIRB
ASGNB 12
line 6657
;6657:			VectorCopy(/*fxAng*/tAng, fxObj.angles);
ADDRLP4 1112+16
ADDRLP4 1168
INDIRB
ASGNB 12
line 6658
;6658:			VectorCopy(cent->modelScale, fxObj.scale);
ADDRLP4 1112+40
ADDRFP4 0
INDIRP4
CNSTI4 964
ADDP4
INDIRB
ASGNB 12
line 6659
;6659:			fxObj.ghoul2 = cent->ghoul2;
ADDRLP4 1112+4
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ASGNP4
line 6660
;6660:			fxObj.isValid = 1;
ADDRLP4 1112
CNSTI4 1
ASGNI4
line 6661
;6661:			fxObj.modelNum = 0;
ADDRLP4 1112+8
CNSTI4 0
ASGNI4
line 6662
;6662:			fxObj.boltNum = cgs.clientinfo[cent->currentState.number].bolt_head;
ADDRLP4 1112+12
CNSTI4 812
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+520
ADDP4
INDIRI4
ASGNI4
line 6663
;6663:			fxObj.entNum = cent->currentState.number;
ADDRLP4 1112+52
ADDRFP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRGP4 $3679
JUMPV
LABELV $3678
line 6666
;6664:	
;6665:			while (effectTimeLayerC > 0)
;6666:			{
line 6667
;6667:				trap_FX_PlayEntityEffectID(trap_FX_RegisterEffect("force/confusion.efx"), efOrg, axis, cent->boltInfo, cent->currentState.number);
ADDRGP4 $3681
ARGP4
ADDRLP4 1200
ADDRGP4 trap_FX_RegisterEffect
CALLI4
ASGNI4
ADDRLP4 1200
INDIRI4
ARGI4
ADDRLP4 1100
ARGP4
ADDRLP4 1064
ARGP4
ADDRLP4 1204
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1204
INDIRP4
CNSTI4 980
ADDP4
INDIRI4
ARGI4
ADDRLP4 1204
INDIRP4
INDIRI4
ARGI4
ADDRGP4 trap_FX_PlayEntityEffectID
CALLV
pop
line 6673
;6668:
;6669:				//FIXME: Due to the horrible inefficiency involved in the current effect bolt process an effect with as many particles as this won't
;6670:				//work too happily. It also doesn't look a lot better due to the lag between origin updates with the effect bolt. If those issues
;6671:				//are ever resolved it should be switched over to BoltedEffect.
;6672:				//trap_FX_PlayBoltedEffectID(trap_FX_RegisterEffect("force/confusion.efx"), &fxObj);
;6673:				effectTimeLayerC = 0;//-= 50;
ADDRLP4 1060
CNSTI4 0
ASGNI4
line 6674
;6674:			}
LABELV $3679
line 6665
ADDRLP4 1060
INDIRI4
CNSTI4 0
GTI4 $3678
line 6675
;6675:		}
LABELV $3637
line 6676
;6676:	}
LABELV $3631
line 6678
;6677:
;6678:	if (cgs.gametype == GT_HOLOCRON && cent->currentState.time2 && (cg.renderingThirdPerson || cg.snap->ps.clientNum != cent->currentState.number))
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 1
NEI4 $3682
ADDRLP4 1060
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1064
CNSTI4 0
ASGNI4
ADDRLP4 1060
INDIRP4
CNSTI4 88
ADDP4
INDIRI4
ADDRLP4 1064
INDIRI4
EQI4 $3682
ADDRGP4 cg+88
INDIRI4
ADDRLP4 1064
INDIRI4
NEI4 $3687
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
ADDRLP4 1060
INDIRP4
INDIRI4
EQI4 $3682
LABELV $3687
line 6679
;6679:	{
line 6680
;6680:		int i = 0;
ADDRLP4 1280
CNSTI4 0
ASGNI4
line 6681
;6681:		int renderedHolos = 0;
ADDRLP4 1284
CNSTI4 0
ASGNI4
ADDRGP4 $3689
JUMPV
LABELV $3688
line 6685
;6682:		refEntity_t		holoRef;
;6683:
;6684:		while (i < NUM_FORCE_POWERS && renderedHolos < 3)
;6685:		{
line 6686
;6686:			if (cent->currentState.time2 & (1 << i))
ADDRFP4 0
INDIRP4
CNSTI4 88
ADDP4
INDIRI4
CNSTI4 1
ADDRLP4 1280
INDIRI4
LSHI4
BANDI4
CNSTI4 0
EQI4 $3691
line 6687
;6687:			{
line 6688
;6688:				memset( &holoRef, 0, sizeof(holoRef) );
ADDRLP4 1068
ARGP4
CNSTI4 0
ARGI4
CNSTI4 212
ARGI4
ADDRGP4 memset
CALLP4
pop
line 6690
;6689:
;6690:				VectorCopy(cent->lerpOrigin, elevated);
ADDRLP4 224
ADDRFP4 0
INDIRP4
CNSTI4 928
ADDP4
INDIRB
ASGNB 12
line 6691
;6691:				elevated[2] += 8;
ADDRLP4 224+8
ADDRLP4 224+8
INDIRF4
CNSTF4 1090519040
ADDF4
ASGNF4
line 6693
;6692:
;6693:				VectorCopy( elevated, holoRef.lightingOrigin );
ADDRLP4 1068+108
ADDRLP4 224
INDIRB
ASGNB 12
line 6694
;6694:				holoRef.shadowPlane = shadowPlane;
ADDRLP4 1068+120
ADDRLP4 540
INDIRF4
ASGNF4
line 6695
;6695:				holoRef.renderfx = 0;//RF_THIRD_PERSON;
ADDRLP4 1068+4
CNSTI4 0
ASGNI4
line 6697
;6696:
;6697:				if (renderedHolos == 0)
ADDRLP4 1284
INDIRI4
CNSTI4 0
NEI4 $3697
line 6698
;6698:				{
line 6699
;6699:					angle = ((cg.time / 8) & 255) * (M_PI * 2) / 255;
ADDRLP4 236
CNSTF4 1086918619
ADDRGP4 cg+64
INDIRI4
CNSTI4 8
DIVI4
CNSTI4 255
BANDI4
CVIF4 4
MULF4
CNSTF4 1132396544
DIVF4
ASGNF4
line 6700
;6700:					dir[0] = cos(angle) * 20;
ADDRLP4 236
INDIRF4
ARGF4
ADDRLP4 1288
ADDRGP4 cos
CALLF4
ASGNF4
ADDRLP4 212
CNSTF4 1101004800
ADDRLP4 1288
INDIRF4
MULF4
ASGNF4
line 6701
;6701:					dir[1] = sin(angle) * 20;
ADDRLP4 236
INDIRF4
ARGF4
ADDRLP4 1292
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 212+4
CNSTF4 1101004800
ADDRLP4 1292
INDIRF4
MULF4
ASGNF4
line 6702
;6702:					dir[2] = cos(angle) * 20;
ADDRLP4 236
INDIRF4
ARGF4
ADDRLP4 1296
ADDRGP4 cos
CALLF4
ASGNF4
ADDRLP4 212+8
CNSTF4 1101004800
ADDRLP4 1296
INDIRF4
MULF4
ASGNF4
line 6703
;6703:					VectorAdd(elevated, dir, holoRef.origin);
ADDRLP4 1068+52
ADDRLP4 224
INDIRF4
ADDRLP4 212
INDIRF4
ADDF4
ASGNF4
ADDRLP4 1068+52+4
ADDRLP4 224+4
INDIRF4
ADDRLP4 212+4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 1068+52+8
ADDRLP4 224+8
INDIRF4
ADDRLP4 212+8
INDIRF4
ADDF4
ASGNF4
line 6705
;6704:
;6705:					angles[0] = sin(angle) * 30;
ADDRLP4 236
INDIRF4
ARGF4
ADDRLP4 1300
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 252
CNSTF4 1106247680
ADDRLP4 1300
INDIRF4
MULF4
ASGNF4
line 6706
;6706:					angles[1] = (angle * 180 / M_PI) + 90;
ADDRLP4 252+4
CNSTF4 1127481344
ADDRLP4 236
INDIRF4
MULF4
CNSTF4 1078530011
DIVF4
CNSTF4 1119092736
ADDF4
ASGNF4
line 6707
;6707:					if (angles[1] > 360)
ADDRLP4 252+4
INDIRF4
CNSTF4 1135869952
LEF4 $3712
line 6708
;6708:						angles[1] -= 360;
ADDRLP4 252+4
ADDRLP4 252+4
INDIRF4
CNSTF4 1135869952
SUBF4
ASGNF4
LABELV $3712
line 6709
;6709:					angles[2] = 0;
ADDRLP4 252+8
CNSTF4 0
ASGNF4
line 6710
;6710:					AnglesToAxis( angles, holoRef.axis );
ADDRLP4 252
ARGP4
ADDRLP4 1068+12
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 6711
;6711:				}
ADDRGP4 $3698
JUMPV
LABELV $3697
line 6712
;6712:				else if (renderedHolos == 1)
ADDRLP4 1284
INDIRI4
CNSTI4 1
NEI4 $3718
line 6713
;6713:				{
line 6714
;6714:					angle = ((cg.time / 8) & 255) * (M_PI * 2) / 255 + M_PI;
ADDRLP4 236
CNSTF4 1086918619
ADDRGP4 cg+64
INDIRI4
CNSTI4 8
DIVI4
CNSTI4 255
BANDI4
CVIF4 4
MULF4
CNSTF4 1132396544
DIVF4
CNSTF4 1078530011
ADDF4
ASGNF4
line 6715
;6715:					if (angle > M_PI * 2)
ADDRLP4 236
INDIRF4
CNSTF4 1086918619
LEF4 $3721
line 6716
;6716:						angle -= (float)M_PI * 2;
ADDRLP4 236
ADDRLP4 236
INDIRF4
CNSTF4 1086918619
SUBF4
ASGNF4
LABELV $3721
line 6717
;6717:					dir[0] = sin(angle) * 20;
ADDRLP4 236
INDIRF4
ARGF4
ADDRLP4 1288
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 212
CNSTF4 1101004800
ADDRLP4 1288
INDIRF4
MULF4
ASGNF4
line 6718
;6718:					dir[1] = cos(angle) * 20;
ADDRLP4 236
INDIRF4
ARGF4
ADDRLP4 1292
ADDRGP4 cos
CALLF4
ASGNF4
ADDRLP4 212+4
CNSTF4 1101004800
ADDRLP4 1292
INDIRF4
MULF4
ASGNF4
line 6719
;6719:					dir[2] = cos(angle) * 20;
ADDRLP4 236
INDIRF4
ARGF4
ADDRLP4 1296
ADDRGP4 cos
CALLF4
ASGNF4
ADDRLP4 212+8
CNSTF4 1101004800
ADDRLP4 1296
INDIRF4
MULF4
ASGNF4
line 6720
;6720:					VectorAdd(elevated, dir, holoRef.origin);
ADDRLP4 1068+52
ADDRLP4 224
INDIRF4
ADDRLP4 212
INDIRF4
ADDF4
ASGNF4
ADDRLP4 1068+52+4
ADDRLP4 224+4
INDIRF4
ADDRLP4 212+4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 1068+52+8
ADDRLP4 224+8
INDIRF4
ADDRLP4 212+8
INDIRF4
ADDF4
ASGNF4
line 6722
;6721:
;6722:					angles[0] = cos(angle - 0.5 * M_PI) * 30;
ADDRLP4 236
INDIRF4
CNSTF4 1070141403
SUBF4
ARGF4
ADDRLP4 1300
ADDRGP4 cos
CALLF4
ASGNF4
ADDRLP4 252
CNSTF4 1106247680
ADDRLP4 1300
INDIRF4
MULF4
ASGNF4
line 6723
;6723:					angles[1] = 360 - (angle * 180 / M_PI);
ADDRLP4 252+4
CNSTF4 1135869952
CNSTF4 1127481344
ADDRLP4 236
INDIRF4
MULF4
CNSTF4 1078530011
DIVF4
SUBF4
ASGNF4
line 6724
;6724:					if (angles[1] > 360)
ADDRLP4 252+4
INDIRF4
CNSTF4 1135869952
LEF4 $3735
line 6725
;6725:						angles[1] -= 360;
ADDRLP4 252+4
ADDRLP4 252+4
INDIRF4
CNSTF4 1135869952
SUBF4
ASGNF4
LABELV $3735
line 6726
;6726:					angles[2] = 0;
ADDRLP4 252+8
CNSTF4 0
ASGNF4
line 6727
;6727:					AnglesToAxis( angles, holoRef.axis );
ADDRLP4 252
ARGP4
ADDRLP4 1068+12
ARGP4
ADDRGP4 AnglesToAxis
CALLV
pop
line 6728
;6728:				}
ADDRGP4 $3719
JUMPV
LABELV $3718
line 6730
;6729:				else
;6730:				{
line 6731
;6731:					angle = ((cg.time / 6) & 255) * (M_PI * 2) / 255 + 0.5 * M_PI;
ADDRLP4 236
CNSTF4 1086918619
ADDRGP4 cg+64
INDIRI4
CNSTI4 6
DIVI4
CNSTI4 255
BANDI4
CVIF4 4
MULF4
CNSTF4 1132396544
DIVF4
CNSTF4 1070141403
ADDF4
ASGNF4
line 6732
;6732:					if (angle > M_PI * 2)
ADDRLP4 236
INDIRF4
CNSTF4 1086918619
LEF4 $3742
line 6733
;6733:						angle -= (float)M_PI * 2;
ADDRLP4 236
ADDRLP4 236
INDIRF4
CNSTF4 1086918619
SUBF4
ASGNF4
LABELV $3742
line 6734
;6734:					dir[0] = sin(angle) * 20;
ADDRLP4 236
INDIRF4
ARGF4
ADDRLP4 1288
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 212
CNSTF4 1101004800
ADDRLP4 1288
INDIRF4
MULF4
ASGNF4
line 6735
;6735:					dir[1] = cos(angle) * 20;
ADDRLP4 236
INDIRF4
ARGF4
ADDRLP4 1292
ADDRGP4 cos
CALLF4
ASGNF4
ADDRLP4 212+4
CNSTF4 1101004800
ADDRLP4 1292
INDIRF4
MULF4
ASGNF4
line 6736
;6736:					dir[2] = 0;
ADDRLP4 212+8
CNSTF4 0
ASGNF4
line 6737
;6737:					VectorAdd(elevated, dir, holoRef.origin);
ADDRLP4 1068+52
ADDRLP4 224
INDIRF4
ADDRLP4 212
INDIRF4
ADDF4
ASGNF4
ADDRLP4 1068+52+4
ADDRLP4 224+4
INDIRF4
ADDRLP4 212+4
INDIRF4
ADDF4
ASGNF4
ADDRLP4 1068+52+8
ADDRLP4 224+8
INDIRF4
ADDRLP4 212+8
INDIRF4
ADDF4
ASGNF4
line 6739
;6738:			
;6739:					VectorCopy(dir, holoRef.axis[1]);
ADDRLP4 1068+12+12
ADDRLP4 212
INDIRB
ASGNB 12
line 6740
;6740:					VectorNormalize(holoRef.axis[1]);
ADDRLP4 1068+12+12
ARGP4
ADDRGP4 VectorNormalize
CALLF4
pop
line 6741
;6741:					VectorSet(holoRef.axis[2], 0, 0, 1);
ADDRLP4 1068+12+24
CNSTF4 0
ASGNF4
ADDRLP4 1068+12+24+4
CNSTF4 0
ASGNF4
ADDRLP4 1068+12+24+8
CNSTF4 1065353216
ASGNF4
line 6742
;6742:					CrossProduct(holoRef.axis[1], holoRef.axis[2], holoRef.axis[0]);
ADDRLP4 1068+12+12
ARGP4
ADDRLP4 1068+12+24
ARGP4
ADDRLP4 1068+12
ARGP4
ADDRGP4 CrossProduct
CALLV
pop
line 6743
;6743:				}
LABELV $3719
LABELV $3698
line 6745
;6744:
;6745:				holoRef.modelScale[0] = 0.5;
ADDRLP4 1068+196
CNSTF4 1056964608
ASGNF4
line 6746
;6746:				holoRef.modelScale[1] = 0.5;
ADDRLP4 1068+196+4
CNSTF4 1056964608
ASGNF4
line 6747
;6747:				holoRef.modelScale[2] = 0.5;
ADDRLP4 1068+196+8
CNSTF4 1056964608
ASGNF4
line 6748
;6748:				ScaleModelAxis(&holoRef);
ADDRLP4 1068
ARGP4
ADDRGP4 ScaleModelAxis
CALLV
pop
line 6750
;6749:
;6750:				{
line 6755
;6751:					float wv;
;6752:					addspriteArgStruct_t fxSArgs;
;6753:					vec3_t holoCenter;
;6754:
;6755:					holoCenter[0] = holoRef.origin[0] + holoRef.axis[2][0]*18;
ADDRLP4 1364
ADDRLP4 1068+52
INDIRF4
CNSTF4 1099956224
ADDRLP4 1068+12+24
INDIRF4
MULF4
ADDF4
ASGNF4
line 6756
;6756:					holoCenter[1] = holoRef.origin[1] + holoRef.axis[2][1]*18;
ADDRLP4 1364+4
ADDRLP4 1068+52+4
INDIRF4
CNSTF4 1099956224
ADDRLP4 1068+12+24+4
INDIRF4
MULF4
ADDF4
ASGNF4
line 6757
;6757:					holoCenter[2] = holoRef.origin[2] + holoRef.axis[2][2]*18;
ADDRLP4 1364+8
ADDRLP4 1068+52+8
INDIRF4
CNSTF4 1099956224
ADDRLP4 1068+12+24+8
INDIRF4
MULF4
ADDF4
ASGNF4
line 6759
;6758:
;6759:					wv = sin( cg.time * 0.004f ) * 0.08f + 0.1f;
CNSTF4 998445679
ADDRGP4 cg+64
INDIRI4
CVIF4 4
MULF4
ARGF4
ADDRLP4 1376
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 1360
CNSTF4 1034147594
ADDRLP4 1376
INDIRF4
MULF4
CNSTF4 1036831949
ADDF4
ASGNF4
line 6761
;6760:
;6761:					VectorCopy(holoCenter, fxSArgs.origin);
ADDRLP4 1288
ADDRLP4 1364
INDIRB
ASGNB 12
line 6762
;6762:					VectorClear(fxSArgs.vel);
ADDRLP4 1380
CNSTF4 0
ASGNF4
ADDRLP4 1288+12+8
ADDRLP4 1380
INDIRF4
ASGNF4
ADDRLP4 1288+12+4
ADDRLP4 1380
INDIRF4
ASGNF4
ADDRLP4 1288+12
ADDRLP4 1380
INDIRF4
ASGNF4
line 6763
;6763:					VectorClear(fxSArgs.accel);
ADDRLP4 1384
CNSTF4 0
ASGNF4
ADDRLP4 1288+24+8
ADDRLP4 1384
INDIRF4
ASGNF4
ADDRLP4 1288+24+4
ADDRLP4 1384
INDIRF4
ASGNF4
ADDRLP4 1288+24
ADDRLP4 1384
INDIRF4
ASGNF4
line 6764
;6764:					fxSArgs.scale = wv*60;
ADDRLP4 1288+36
CNSTF4 1114636288
ADDRLP4 1360
INDIRF4
MULF4
ASGNF4
line 6765
;6765:					fxSArgs.dscale = wv*60;
ADDRLP4 1288+40
CNSTF4 1114636288
ADDRLP4 1360
INDIRF4
MULF4
ASGNF4
line 6766
;6766:					fxSArgs.sAlpha = wv*12;
ADDRLP4 1288+44
CNSTF4 1094713344
ADDRLP4 1360
INDIRF4
MULF4
ASGNF4
line 6767
;6767:					fxSArgs.eAlpha = wv*12;
ADDRLP4 1288+48
CNSTF4 1094713344
ADDRLP4 1360
INDIRF4
MULF4
ASGNF4
line 6768
;6768:					fxSArgs.rotation = 0.0f;
ADDRLP4 1288+52
CNSTF4 0
ASGNF4
line 6769
;6769:					fxSArgs.bounce = 0.0f;
ADDRLP4 1288+56
CNSTF4 0
ASGNF4
line 6770
;6770:					fxSArgs.life = 1.0f;
ADDRLP4 1288+60
CNSTI4 1
ASGNI4
line 6772
;6771:
;6772:					fxSArgs.flags = 0x08000000|0x00000001;
ADDRLP4 1288+68
CNSTI4 134217729
ASGNI4
line 6774
;6773:
;6774:					if (forcePowerDarkLight[i] == FORCE_DARKSIDE)
ADDRLP4 1388
CNSTI4 2
ASGNI4
ADDRLP4 1280
INDIRI4
ADDRLP4 1388
INDIRI4
LSHI4
ADDRGP4 forcePowerDarkLight
ADDP4
INDIRI4
ADDRLP4 1388
INDIRI4
NEI4 $3811
line 6775
;6775:					{ //dark
line 6776
;6776:						fxSArgs.sAlpha *= 3;
ADDRLP4 1288+44
CNSTF4 1077936128
ADDRLP4 1288+44
INDIRF4
MULF4
ASGNF4
line 6777
;6777:						fxSArgs.eAlpha *= 3;
ADDRLP4 1288+48
CNSTF4 1077936128
ADDRLP4 1288+48
INDIRF4
MULF4
ASGNF4
line 6778
;6778:						fxSArgs.shader = cgs.media.redSaberGlowShader;
ADDRLP4 1288+64
ADDRGP4 cgs+71064+116
INDIRI4
ASGNI4
line 6779
;6779:						trap_FX_AddSprite(&fxSArgs);
ADDRLP4 1288
ARGP4
ADDRGP4 trap_FX_AddSprite
CALLV
pop
line 6780
;6780:					}
ADDRGP4 $3812
JUMPV
LABELV $3811
line 6781
;6781:					else if (forcePowerDarkLight[i] == FORCE_LIGHTSIDE)
ADDRLP4 1280
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 forcePowerDarkLight
ADDP4
INDIRI4
CNSTI4 1
NEI4 $3818
line 6782
;6782:					{ //light
line 6783
;6783:						fxSArgs.sAlpha *= 1.5;
ADDRLP4 1288+44
CNSTF4 1069547520
ADDRLP4 1288+44
INDIRF4
MULF4
ASGNF4
line 6784
;6784:						fxSArgs.eAlpha *= 1.5;
ADDRLP4 1288+48
CNSTF4 1069547520
ADDRLP4 1288+48
INDIRF4
MULF4
ASGNF4
line 6785
;6785:						fxSArgs.shader = cgs.media.redSaberGlowShader;
ADDRLP4 1288+64
ADDRGP4 cgs+71064+116
INDIRI4
ASGNI4
line 6786
;6786:						trap_FX_AddSprite(&fxSArgs);
ADDRLP4 1288
ARGP4
ADDRGP4 trap_FX_AddSprite
CALLV
pop
line 6787
;6787:						fxSArgs.shader = cgs.media.greenSaberGlowShader;
ADDRLP4 1288+64
ADDRGP4 cgs+71064+140
INDIRI4
ASGNI4
line 6788
;6788:						trap_FX_AddSprite(&fxSArgs);
ADDRLP4 1288
ARGP4
ADDRGP4 trap_FX_AddSprite
CALLV
pop
line 6789
;6789:						fxSArgs.shader = cgs.media.blueSaberGlowShader;
ADDRLP4 1288+64
ADDRGP4 cgs+71064+148
INDIRI4
ASGNI4
line 6790
;6790:						trap_FX_AddSprite(&fxSArgs);
ADDRLP4 1288
ARGP4
ADDRGP4 trap_FX_AddSprite
CALLV
pop
line 6791
;6791:					}
ADDRGP4 $3819
JUMPV
LABELV $3818
line 6793
;6792:					else
;6793:					{ //neutral
line 6794
;6794:						if (i == FP_SABERATTACK ||
ADDRLP4 1280
INDIRI4
CNSTI4 15
EQI4 $3834
ADDRLP4 1280
INDIRI4
CNSTI4 16
EQI4 $3834
ADDRLP4 1280
INDIRI4
CNSTI4 17
NEI4 $3831
LABELV $3834
line 6797
;6795:							i == FP_SABERDEFEND ||
;6796:							i == FP_SABERTHROW)
;6797:						{ //saber power
line 6798
;6798:							fxSArgs.sAlpha *= 1.5;
ADDRLP4 1288+44
CNSTF4 1069547520
ADDRLP4 1288+44
INDIRF4
MULF4
ASGNF4
line 6799
;6799:							fxSArgs.eAlpha *= 1.5;
ADDRLP4 1288+48
CNSTF4 1069547520
ADDRLP4 1288+48
INDIRF4
MULF4
ASGNF4
line 6800
;6800:							fxSArgs.shader = cgs.media.greenSaberGlowShader;
ADDRLP4 1288+64
ADDRGP4 cgs+71064+140
INDIRI4
ASGNI4
line 6801
;6801:							trap_FX_AddSprite(&fxSArgs);
ADDRLP4 1288
ARGP4
ADDRGP4 trap_FX_AddSprite
CALLV
pop
line 6802
;6802:						}
ADDRGP4 $3832
JUMPV
LABELV $3831
line 6804
;6803:						else
;6804:						{
line 6805
;6805:							fxSArgs.sAlpha *= 0.5;
ADDRLP4 1288+44
CNSTF4 1056964608
ADDRLP4 1288+44
INDIRF4
MULF4
ASGNF4
line 6806
;6806:							fxSArgs.eAlpha *= 0.5;
ADDRLP4 1288+48
CNSTF4 1056964608
ADDRLP4 1288+48
INDIRF4
MULF4
ASGNF4
line 6807
;6807:							fxSArgs.shader = cgs.media.greenSaberGlowShader;
ADDRLP4 1288+64
ADDRGP4 cgs+71064+140
INDIRI4
ASGNI4
line 6808
;6808:							trap_FX_AddSprite(&fxSArgs);
ADDRLP4 1288
ARGP4
ADDRGP4 trap_FX_AddSprite
CALLV
pop
line 6809
;6809:							fxSArgs.shader = cgs.media.blueSaberGlowShader;
ADDRLP4 1288+64
ADDRGP4 cgs+71064+148
INDIRI4
ASGNI4
line 6810
;6810:							trap_FX_AddSprite(&fxSArgs);
ADDRLP4 1288
ARGP4
ADDRGP4 trap_FX_AddSprite
CALLV
pop
line 6811
;6811:						}
LABELV $3832
line 6812
;6812:					}
LABELV $3819
LABELV $3812
line 6813
;6813:				}
line 6815
;6814:
;6815:				holoRef.hModel = trap_R_RegisterModel(forceHolocronModels[i]);
ADDRLP4 1280
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 forceHolocronModels
ADDP4
INDIRP4
ARGP4
ADDRLP4 1288
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 1068+8
ADDRLP4 1288
INDIRI4
ASGNI4
line 6816
;6816:				trap_R_AddRefEntityToScene( &holoRef );
ADDRLP4 1068
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 6818
;6817:
;6818:				renderedHolos++;
ADDRLP4 1284
ADDRLP4 1284
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 6819
;6819:			}
LABELV $3691
line 6820
;6820:			i++;
ADDRLP4 1280
ADDRLP4 1280
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 6821
;6821:		}
LABELV $3689
line 6684
ADDRLP4 1280
INDIRI4
CNSTI4 18
GEI4 $3849
ADDRLP4 1284
INDIRI4
CNSTI4 3
LTI4 $3688
LABELV $3849
line 6822
;6822:	}
LABELV $3682
line 6824
;6823:
;6824:	if ((cent->currentState.powerups & (1 << PW_YSALAMIRI)) ||
ADDRLP4 1068
ADDRFP4 0
INDIRP4
CNSTI4 272
ADDP4
INDIRI4
ASGNI4
ADDRLP4 1072
CNSTI4 0
ASGNI4
ADDRLP4 1068
INDIRI4
CNSTI4 32768
BANDI4
ADDRLP4 1072
INDIRI4
NEI4 $3854
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 8
NEI4 $3850
ADDRLP4 1068
INDIRI4
CNSTI4 16
BANDI4
ADDRLP4 1072
INDIRI4
NEI4 $3854
ADDRLP4 1068
INDIRI4
CNSTI4 32
BANDI4
ADDRLP4 1072
INDIRI4
EQI4 $3850
LABELV $3854
line 6826
;6825:		(cgs.gametype == GT_CTY && ((cent->currentState.powerups & (1 << PW_REDFLAG)) || (cent->currentState.powerups & (1 << PW_BLUEFLAG)))) )
;6826:	{
line 6827
;6827:		if (cgs.gametype == GT_CTY && (cent->currentState.powerups & (1 << PW_REDFLAG)))
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 8
NEI4 $3855
ADDRFP4 0
INDIRP4
CNSTI4 272
ADDP4
INDIRI4
CNSTI4 16
BANDI4
CNSTI4 0
EQI4 $3855
line 6828
;6828:		{
line 6829
;6829:			CG_DrawPlayerSphere(cent, cent->lerpOrigin, 1.4, cgs.media.ysaliredShader );
ADDRLP4 1076
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1076
INDIRP4
ARGP4
ADDRLP4 1076
INDIRP4
CNSTI4 928
ADDP4
ARGP4
CNSTF4 1068708659
ARGF4
ADDRGP4 cgs+71064+572
INDIRI4
ARGI4
ADDRGP4 CG_DrawPlayerSphere
CALLV
pop
line 6830
;6830:		}
ADDRGP4 $3856
JUMPV
LABELV $3855
line 6831
;6831:		else if (cgs.gametype == GT_CTY && (cent->currentState.powerups & (1 << PW_BLUEFLAG)))
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 8
NEI4 $3860
ADDRFP4 0
INDIRP4
CNSTI4 272
ADDP4
INDIRI4
CNSTI4 32
BANDI4
CNSTI4 0
EQI4 $3860
line 6832
;6832:		{
line 6833
;6833:			CG_DrawPlayerSphere(cent, cent->lerpOrigin, 1.4, cgs.media.ysaliblueShader );
ADDRLP4 1076
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1076
INDIRP4
ARGP4
ADDRLP4 1076
INDIRP4
CNSTI4 928
ADDP4
ARGP4
CNSTF4 1068708659
ARGF4
ADDRGP4 cgs+71064+576
INDIRI4
ARGI4
ADDRGP4 CG_DrawPlayerSphere
CALLV
pop
line 6834
;6834:		}
ADDRGP4 $3861
JUMPV
LABELV $3860
line 6836
;6835:		else
;6836:		{
line 6837
;6837:			CG_DrawPlayerSphere(cent, cent->lerpOrigin, 1.4, cgs.media.ysalimariShader );
ADDRLP4 1076
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1076
INDIRP4
ARGP4
ADDRLP4 1076
INDIRP4
CNSTI4 928
ADDP4
ARGP4
CNSTF4 1068708659
ARGF4
ADDRGP4 cgs+71064+580
INDIRI4
ARGI4
ADDRGP4 CG_DrawPlayerSphere
CALLV
pop
line 6838
;6838:		}
LABELV $3861
LABELV $3856
line 6839
;6839:	}
LABELV $3850
line 6841
;6840:	
;6841:	if (cent->currentState.powerups & (1 << PW_FORCE_BOON))
ADDRFP4 0
INDIRP4
CNSTI4 272
ADDP4
INDIRI4
CNSTI4 16384
BANDI4
CNSTI4 0
EQI4 $3867
line 6842
;6842:	{
line 6843
;6843:		CG_DrawPlayerSphere(cent, cent->lerpOrigin, 2.0, cgs.media.boonShader );
ADDRLP4 1076
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1076
INDIRP4
ARGP4
ADDRLP4 1076
INDIRP4
CNSTI4 928
ADDP4
ARGP4
CNSTF4 1073741824
ARGF4
ADDRGP4 cgs+71064+584
INDIRI4
ARGI4
ADDRGP4 CG_DrawPlayerSphere
CALLV
pop
line 6844
;6844:	}
LABELV $3867
line 6846
;6845:
;6846:	if (cent->currentState.powerups & (1 << PW_FORCE_ENLIGHTENED_DARK))
ADDRFP4 0
INDIRP4
CNSTI4 272
ADDP4
INDIRI4
CNSTI4 8192
BANDI4
CNSTI4 0
EQI4 $3871
line 6847
;6847:	{
line 6848
;6848:		CG_DrawPlayerSphere(cent, cent->lerpOrigin, 2.0, cgs.media.endarkenmentShader );
ADDRLP4 1076
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1076
INDIRP4
ARGP4
ADDRLP4 1076
INDIRP4
CNSTI4 928
ADDP4
ARGP4
CNSTF4 1073741824
ARGF4
ADDRGP4 cgs+71064+588
INDIRI4
ARGI4
ADDRGP4 CG_DrawPlayerSphere
CALLV
pop
line 6849
;6849:	}
ADDRGP4 $3872
JUMPV
LABELV $3871
line 6850
;6850:	else if (cent->currentState.powerups & (1 << PW_FORCE_ENLIGHTENED_LIGHT))
ADDRFP4 0
INDIRP4
CNSTI4 272
ADDP4
INDIRI4
CNSTI4 4096
BANDI4
CNSTI4 0
EQI4 $3875
line 6851
;6851:	{
line 6852
;6852:		CG_DrawPlayerSphere(cent, cent->lerpOrigin, 2.0, cgs.media.enlightenmentShader );
ADDRLP4 1076
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1076
INDIRP4
ARGP4
ADDRLP4 1076
INDIRP4
CNSTI4 928
ADDP4
ARGP4
CNSTF4 1073741824
ARGF4
ADDRGP4 cgs+71064+592
INDIRI4
ARGI4
ADDRGP4 CG_DrawPlayerSphere
CALLV
pop
line 6853
;6853:	}
LABELV $3875
LABELV $3872
line 6855
;6854:
;6855:	if (cent->currentState.eFlags & EF_INVULNERABLE)
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 67108864
BANDI4
CNSTI4 0
EQI4 $3879
line 6856
;6856:	{
line 6857
;6857:		CG_DrawPlayerSphere(cent, cent->lerpOrigin, 1.4, cgs.media.invulnerabilityShader );
ADDRLP4 1076
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1076
INDIRP4
ARGP4
ADDRLP4 1076
INDIRP4
CNSTI4 928
ADDP4
ARGP4
CNSTF4 1068708659
ARGF4
ADDRGP4 cgs+71064+596
INDIRI4
ARGI4
ADDRGP4 CG_DrawPlayerSphere
CALLV
pop
line 6858
;6858:	}
LABELV $3879
LABELV $3548
line 6860
;6859:stillDoSaber:
;6860:	if (cent->currentState.weapon == WP_SABER && !cent->currentState.shouldtarget)
ADDRLP4 1076
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1076
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
CNSTI4 2
NEI4 $3883
ADDRLP4 1076
INDIRP4
CNSTI4 268
ADDP4
INDIRI4
CNSTI4 0
NEI4 $3883
line 6861
;6861:	{
line 6862
;6862:		if (!cent->currentState.saberInFlight && !(cent->currentState.eFlags & EF_DEAD))
ADDRLP4 1080
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1084
CNSTI4 0
ASGNI4
ADDRLP4 1080
INDIRP4
CNSTI4 228
ADDP4
INDIRI4
ADDRLP4 1084
INDIRI4
NEI4 $3885
ADDRLP4 1080
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
ADDRLP4 1084
INDIRI4
NEI4 $3885
line 6863
;6863:		{
line 6864
;6864:			if (cg.snap->ps.clientNum == cent->currentState.number)
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
ADDRFP4 0
INDIRP4
INDIRI4
NEI4 $3887
line 6865
;6865:			{
line 6866
;6866:				trap_S_AddLoopingSound( cent->currentState.number, cg.refdef.vieworg, vec3_origin, 
ADDRGP4 $3892
ARGP4
ADDRLP4 1088
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRFP4 0
INDIRP4
INDIRI4
ARGI4
ADDRGP4 cg+3616+24
ARGP4
ADDRGP4 vec3_origin
ARGP4
ADDRLP4 1088
INDIRI4
ARGI4
ADDRGP4 trap_S_AddLoopingSound
CALLV
pop
line 6868
;6867:					trap_S_RegisterSound( "sound/weapons/saber/saberhum1.wav" ) );
;6868:			}
ADDRGP4 $3888
JUMPV
LABELV $3887
line 6870
;6869:			else
;6870:			{
line 6871
;6871:				trap_S_AddLoopingSound( cent->currentState.number, cent->lerpOrigin, vec3_origin, 
ADDRGP4 $3892
ARGP4
ADDRLP4 1088
ADDRGP4 trap_S_RegisterSound
CALLI4
ASGNI4
ADDRLP4 1092
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1092
INDIRP4
INDIRI4
ARGI4
ADDRLP4 1092
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRGP4 vec3_origin
ARGP4
ADDRLP4 1088
INDIRI4
ARGI4
ADDRGP4 trap_S_AddLoopingSound
CALLV
pop
line 6873
;6872:					trap_S_RegisterSound( "sound/weapons/saber/saberhum1.wav" ) );
;6873:			}
LABELV $3888
line 6874
;6874:		}
LABELV $3885
line 6876
;6875:
;6876:		if (iwantout && !cent->currentState.saberInFlight)
ADDRLP4 1088
CNSTI4 0
ASGNI4
ADDRLP4 768
INDIRI4
ADDRLP4 1088
INDIRI4
EQI4 $3893
ADDRFP4 0
INDIRP4
CNSTI4 228
ADDP4
INDIRI4
ADDRLP4 1088
INDIRI4
NEI4 $3893
line 6877
;6877:		{
line 6878
;6878:			if (cent->currentState.eFlags & EF_DEAD)
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $3899
line 6879
;6879:			{
line 6880
;6880:				if (cent->ghoul2 && cent->currentState.saberInFlight && g2HasWeapon)
ADDRLP4 1092
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1092
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $3899
ADDRLP4 1096
CNSTI4 0
ASGNI4
ADDRLP4 1092
INDIRP4
CNSTI4 228
ADDP4
INDIRI4
ADDRLP4 1096
INDIRI4
EQI4 $3899
ADDRLP4 536
INDIRI4
ADDRLP4 1096
INDIRI4
EQI4 $3899
line 6881
;6881:				{ //special case, kill the saber on a freshly dead player if another source says to.
line 6882
;6882:					trap_G2API_RemoveGhoul2Model(&(cent->ghoul2), 1);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
ARGP4
CNSTI4 1
ARGI4
ADDRGP4 trap_G2API_RemoveGhoul2Model
CALLI4
pop
line 6883
;6883:					g2HasWeapon = qfalse;
ADDRLP4 536
CNSTI4 0
ASGNI4
line 6884
;6884:				}
line 6885
;6885:			}
line 6887
;6886:			//return;
;6887:			goto endOfCall;
ADDRGP4 $3899
JUMPV
LABELV $3893
line 6890
;6888:		}
;6889:
;6890:		if (cent->currentState.saberInFlight && cent->currentState.saberEntityNum)
ADDRLP4 1092
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1096
CNSTI4 0
ASGNI4
ADDRLP4 1092
INDIRP4
CNSTI4 228
ADDP4
INDIRI4
ADDRLP4 1096
INDIRI4
EQI4 $3900
ADDRLP4 1092
INDIRP4
CNSTI4 232
ADDP4
INDIRI4
ADDRLP4 1096
INDIRI4
EQI4 $3900
line 6891
;6891:		{
line 6894
;6892:			centity_t *saberEnt;
;6893:
;6894:			saberEnt = &cg_entities[cent->currentState.saberEntityNum];
ADDRLP4 1100
CNSTI4 1920
ADDRFP4 0
INDIRP4
CNSTI4 232
ADDP4
INDIRI4
MULI4
ADDRGP4 cg_entities
ADDP4
ASGNP4
line 6896
;6895:
;6896:			if (/*!cent->bolt4 &&*/ g2HasWeapon)
ADDRLP4 536
INDIRI4
CNSTI4 0
EQI4 $3902
line 6897
;6897:			{ //saber is in flight, do not have it as a standard weapon model
line 6898
;6898:				trap_G2API_RemoveGhoul2Model(&(cent->ghoul2), 1);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
ARGP4
CNSTI4 1
ARGI4
ADDRGP4 trap_G2API_RemoveGhoul2Model
CALLI4
pop
line 6899
;6899:				g2HasWeapon = qfalse;
ADDRLP4 536
CNSTI4 0
ASGNI4
line 6903
;6900:
;6901:				//cent->bolt4 = 1;
;6902:
;6903:				saberEnt->currentState.pos.trTime = cg.time;
ADDRLP4 1100
INDIRP4
CNSTI4 16
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 6904
;6904:				saberEnt->currentState.apos.trTime = cg.time;
ADDRLP4 1100
INDIRP4
CNSTI4 52
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 6906
;6905:
;6906:				VectorCopy(saberEnt->currentState.pos.trBase, saberEnt->lerpOrigin);
ADDRLP4 1100
INDIRP4
CNSTI4 928
ADDP4
ADDRLP4 1100
INDIRP4
CNSTI4 24
ADDP4
INDIRB
ASGNB 12
line 6907
;6907:				VectorCopy(saberEnt->currentState.apos.trBase, saberEnt->lerpAngles);
ADDRLP4 1100
INDIRP4
CNSTI4 940
ADDP4
ADDRLP4 1100
INDIRP4
CNSTI4 60
ADDP4
INDIRB
ASGNB 12
line 6909
;6908:
;6909:				cent->bolt3 = saberEnt->currentState.apos.trBase[0];
ADDRFP4 0
INDIRP4
CNSTI4 992
ADDP4
ADDRLP4 1100
INDIRP4
CNSTI4 60
ADDP4
INDIRF4
CVFI4 4
ASGNI4
line 6910
;6910:				cent->bolt2 = 0;
ADDRFP4 0
INDIRP4
CNSTI4 988
ADDP4
CNSTI4 0
ASGNI4
line 6912
;6911:
;6912:				saberEnt->currentState.bolt2 = 123;
ADDRLP4 1100
INDIRP4
CNSTI4 144
ADDP4
CNSTI4 123
ASGNI4
line 6914
;6913:
;6914:				if (saberEnt->ghoul2)
ADDRLP4 1100
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $3906
line 6915
;6915:				{
line 6917
;6916:					// now set up the gun bolt on it
;6917:					trap_G2API_AddBolt(saberEnt->ghoul2, 0, "*flash");
ADDRLP4 1100
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $3908
ARGP4
ADDRGP4 trap_G2API_AddBolt
CALLI4
pop
line 6918
;6918:				}
ADDRGP4 $3907
JUMPV
LABELV $3906
line 6920
;6919:				else
;6920:				{
line 6921
;6921:					trap_G2API_InitGhoul2Model(&saberEnt->ghoul2, "models/weapons2/saber/saber_w.glm", 0, 0, 0, 0, 0);
ADDRLP4 1100
INDIRP4
CNSTI4 952
ADDP4
ARGP4
ADDRGP4 $3909
ARGP4
ADDRLP4 1112
CNSTI4 0
ASGNI4
ADDRLP4 1112
INDIRI4
ARGI4
ADDRLP4 1112
INDIRI4
ARGI4
ADDRLP4 1112
INDIRI4
ARGI4
ADDRLP4 1112
INDIRI4
ARGI4
ADDRLP4 1112
INDIRI4
ARGI4
ADDRGP4 trap_G2API_InitGhoul2Model
CALLI4
pop
line 6923
;6922:
;6923:					if (saberEnt->ghoul2)
ADDRLP4 1100
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $3910
line 6924
;6924:					{
line 6925
;6925:						trap_G2API_AddBolt(saberEnt->ghoul2, 0, "*flash");
ADDRLP4 1100
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $3908
ARGP4
ADDRGP4 trap_G2API_AddBolt
CALLI4
pop
line 6928
;6926:						//cent->bolt4 = 2;
;6927:						
;6928:						VectorCopy(saberEnt->currentState.pos.trBase, saberEnt->lerpOrigin);
ADDRLP4 1100
INDIRP4
CNSTI4 928
ADDP4
ADDRLP4 1100
INDIRP4
CNSTI4 24
ADDP4
INDIRB
ASGNB 12
line 6929
;6929:						VectorCopy(saberEnt->currentState.apos.trBase, saberEnt->lerpAngles);
ADDRLP4 1100
INDIRP4
CNSTI4 940
ADDP4
ADDRLP4 1100
INDIRP4
CNSTI4 60
ADDP4
INDIRB
ASGNB 12
line 6930
;6930:						saberEnt->currentState.pos.trTime = cg.time;
ADDRLP4 1100
INDIRP4
CNSTI4 16
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 6931
;6931:						saberEnt->currentState.apos.trTime = cg.time;
ADDRLP4 1100
INDIRP4
CNSTI4 52
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 6932
;6932:					}
LABELV $3910
line 6933
;6933:				}
LABELV $3907
line 6934
;6934:			}
LABELV $3902
line 6944
;6935:			/*else if (cent->bolt4 != 2)
;6936:			{
;6937:				if (saberEnt->ghoul2)
;6938:				{
;6939:					trap_G2API_AddBolt(saberEnt->ghoul2, 0, "*flash");
;6940:					cent->bolt4 = 2;
;6941:				}
;6942:			}*/
;6943:
;6944:			if (saberEnt && saberEnt->ghoul2 /*&& cent->bolt4 == 2*/)
ADDRLP4 1108
CNSTU4 0
ASGNU4
ADDRLP4 1100
INDIRP4
CVPU4 4
ADDRLP4 1108
INDIRU4
EQU4 $3884
ADDRLP4 1100
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
ADDRLP4 1108
INDIRU4
EQU4 $3884
line 6945
;6945:			{
line 6948
;6946:				vec3_t bladeAngles;
;6947:
;6948:				if (!cent->bolt2)
ADDRFP4 0
INDIRP4
CNSTI4 988
ADDP4
INDIRI4
CNSTI4 0
NEI4 $3916
line 6949
;6949:				{
line 6950
;6950:					cent->bolt2 = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 988
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 6951
;6951:				}
LABELV $3916
line 6953
;6952:
;6953:				if (cent->bolt3 != 90)
ADDRFP4 0
INDIRP4
CNSTI4 992
ADDP4
INDIRI4
CNSTI4 90
EQI4 $3919
line 6954
;6954:				{
line 6955
;6955:					if (cent->bolt3 < 90)
ADDRFP4 0
INDIRP4
CNSTI4 992
ADDP4
INDIRI4
CNSTI4 90
GEI4 $3921
line 6956
;6956:					{
line 6957
;6957:						cent->bolt3 += (cg.time - cent->bolt2)*0.5;
ADDRLP4 1124
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1128
ADDRLP4 1124
INDIRP4
CNSTI4 992
ADDP4
ASGNP4
ADDRLP4 1128
INDIRP4
ADDRLP4 1128
INDIRP4
INDIRI4
CVIF4 4
CNSTF4 1056964608
ADDRGP4 cg+64
INDIRI4
ADDRLP4 1124
INDIRP4
CNSTI4 988
ADDP4
INDIRI4
SUBI4
CVIF4 4
MULF4
ADDF4
CVFI4 4
ASGNI4
line 6959
;6958:
;6959:						if (cent->bolt3 > 90)
ADDRFP4 0
INDIRP4
CNSTI4 992
ADDP4
INDIRI4
CNSTI4 90
LEI4 $3922
line 6960
;6960:						{
line 6961
;6961:							cent->bolt3 = 90;
ADDRFP4 0
INDIRP4
CNSTI4 992
ADDP4
CNSTI4 90
ASGNI4
line 6962
;6962:						}
line 6963
;6963:					}
ADDRGP4 $3922
JUMPV
LABELV $3921
line 6964
;6964:					else if (cent->bolt3 > 90)
ADDRFP4 0
INDIRP4
CNSTI4 992
ADDP4
INDIRI4
CNSTI4 90
LEI4 $3926
line 6965
;6965:					{
line 6966
;6966:						cent->bolt3 -= (cg.time - cent->bolt2)*0.5;
ADDRLP4 1124
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1128
ADDRLP4 1124
INDIRP4
CNSTI4 992
ADDP4
ASGNP4
ADDRLP4 1128
INDIRP4
ADDRLP4 1128
INDIRP4
INDIRI4
CVIF4 4
CNSTF4 1056964608
ADDRGP4 cg+64
INDIRI4
ADDRLP4 1124
INDIRP4
CNSTI4 988
ADDP4
INDIRI4
SUBI4
CVIF4 4
MULF4
SUBF4
CVFI4 4
ASGNI4
line 6968
;6967:
;6968:						if (cent->bolt3 < 90)
ADDRFP4 0
INDIRP4
CNSTI4 992
ADDP4
INDIRI4
CNSTI4 90
GEI4 $3929
line 6969
;6969:						{
line 6970
;6970:							cent->bolt3 = 90;
ADDRFP4 0
INDIRP4
CNSTI4 992
ADDP4
CNSTI4 90
ASGNI4
line 6971
;6971:						}
LABELV $3929
line 6972
;6972:					}
LABELV $3926
LABELV $3922
line 6973
;6973:				}
LABELV $3919
line 6975
;6974:
;6975:				cent->bolt2 = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 988
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 6977
;6976:
;6977:				saberEnt->currentState.apos.trBase[0] = cent->bolt3;
ADDRLP4 1100
INDIRP4
CNSTI4 60
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 992
ADDP4
INDIRI4
CVIF4 4
ASGNF4
line 6978
;6978:				saberEnt->lerpAngles[0] = cent->bolt3;
ADDRLP4 1100
INDIRP4
CNSTI4 940
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 992
ADDP4
INDIRI4
CVIF4 4
ASGNF4
line 6980
;6979:
;6980:				if (!saberEnt->currentState.saberInFlight && saberEnt->currentState.bolt2 != 123)
ADDRLP4 1100
INDIRP4
CNSTI4 228
ADDP4
INDIRI4
CNSTI4 0
NEI4 $3932
ADDRLP4 1100
INDIRP4
CNSTI4 144
ADDP4
INDIRI4
CNSTI4 123
EQI4 $3932
line 6981
;6981:				{ //owner is pulling is back
line 6984
;6982:					vec3_t owndir;
;6983:
;6984:					VectorSubtract(saberEnt->lerpOrigin, cent->lerpOrigin, owndir);
ADDRLP4 1144
CNSTI4 928
ASGNI4
ADDRLP4 1148
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1128
ADDRLP4 1100
INDIRP4
ADDRLP4 1144
INDIRI4
ADDP4
INDIRF4
ADDRLP4 1148
INDIRP4
ADDRLP4 1144
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 1152
CNSTI4 932
ASGNI4
ADDRLP4 1128+4
ADDRLP4 1100
INDIRP4
ADDRLP4 1152
INDIRI4
ADDP4
INDIRF4
ADDRLP4 1148
INDIRP4
ADDRLP4 1152
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 1156
CNSTI4 936
ASGNI4
ADDRLP4 1128+8
ADDRLP4 1100
INDIRP4
ADDRLP4 1156
INDIRI4
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
ADDRLP4 1156
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 6985
;6985:					VectorNormalize(owndir);
ADDRLP4 1128
ARGP4
ADDRGP4 VectorNormalize
CALLF4
pop
line 6987
;6986:
;6987:					vectoangles(owndir, owndir);
ADDRLP4 1128
ARGP4
ADDRLP4 1128
ARGP4
ADDRGP4 vectoangles
CALLV
pop
line 6989
;6988:
;6989:					owndir[0] += 90;
ADDRLP4 1128
ADDRLP4 1128
INDIRF4
CNSTF4 1119092736
ADDF4
ASGNF4
line 6991
;6990:
;6991:					VectorCopy(owndir, saberEnt->currentState.apos.trBase);
ADDRLP4 1100
INDIRP4
CNSTI4 60
ADDP4
ADDRLP4 1128
INDIRB
ASGNB 12
line 6992
;6992:					VectorCopy(owndir, saberEnt->lerpAngles);
ADDRLP4 1100
INDIRP4
CNSTI4 940
ADDP4
ADDRLP4 1128
INDIRB
ASGNB 12
line 6993
;6993:					VectorClear(saberEnt->currentState.apos.trDelta);
ADDRLP4 1164
CNSTF4 0
ASGNF4
ADDRLP4 1100
INDIRP4
CNSTI4 80
ADDP4
ADDRLP4 1164
INDIRF4
ASGNF4
ADDRLP4 1100
INDIRP4
CNSTI4 76
ADDP4
ADDRLP4 1164
INDIRF4
ASGNF4
ADDRLP4 1100
INDIRP4
CNSTI4 72
ADDP4
ADDRLP4 1164
INDIRF4
ASGNF4
line 6994
;6994:				}
LABELV $3932
line 6999
;6995:
;6996:				//We don't actually want to rely entirely on server updates to render the position of the saber, because we actually know generally where
;6997:				//it's going to be before the first position update even gets here, and it needs to start getting rendered the instant the saber model is
;6998:				//removed from the player hand. So we'll just render it manually and let normal rendering for the entity be ignored.
;6999:				if (!saberEnt->currentState.saberInFlight && saberEnt->currentState.bolt2 != 123)
ADDRLP4 1100
INDIRP4
CNSTI4 228
ADDP4
INDIRI4
CNSTI4 0
NEI4 $3936
ADDRLP4 1100
INDIRP4
CNSTI4 144
ADDP4
INDIRI4
CNSTI4 123
EQI4 $3936
line 7000
;7000:				{ //tell it that we're a saber and to render the glow around our handle because we're being pulled back
line 7001
;7001:					saberEnt->bolt3 = 999;
ADDRLP4 1100
INDIRP4
CNSTI4 992
ADDP4
CNSTI4 999
ASGNI4
line 7002
;7002:				}
LABELV $3936
line 7004
;7003:
;7004:				saberEnt->currentState.modelGhoul2 = 1;
ADDRLP4 1100
INDIRP4
CNSTI4 204
ADDP4
CNSTI4 1
ASGNI4
line 7005
;7005:				CG_ManualEntityRender(saberEnt);
ADDRLP4 1100
INDIRP4
ARGP4
ADDRGP4 CG_ManualEntityRender
CALLV
pop
line 7006
;7006:				saberEnt->bolt3 = 0;
ADDRLP4 1100
INDIRP4
CNSTI4 992
ADDP4
CNSTI4 0
ASGNI4
line 7007
;7007:				saberEnt->currentState.modelGhoul2 = 127;
ADDRLP4 1100
INDIRP4
CNSTI4 204
ADDP4
CNSTI4 127
ASGNI4
line 7009
;7008:
;7009:				VectorCopy(saberEnt->lerpAngles, bladeAngles);
ADDRLP4 1112
ADDRLP4 1100
INDIRP4
CNSTI4 940
ADDP4
INDIRB
ASGNB 12
line 7010
;7010:				bladeAngles[ROLL] = 0;
ADDRLP4 1112+8
CNSTF4 0
ASGNF4
line 7011
;7011:				CG_AddSaberBlade(cent, saberEnt, NULL, 0, 0, saberEnt->lerpOrigin, bladeAngles, qtrue);
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 1100
INDIRP4
ARGP4
CNSTP4 0
ARGP4
ADDRLP4 1136
CNSTI4 0
ASGNI4
ADDRLP4 1136
INDIRI4
ARGI4
ADDRLP4 1136
INDIRI4
ARGI4
ADDRLP4 1100
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRLP4 1112
ARGP4
CNSTI4 1
ARGI4
ADDRGP4 CG_AddSaberBlade
CALLV
pop
line 7014
;7012:
;7013:				//Make the player's hand glow while guiding the saber
;7014:				{
line 7019
;7015:					vec3_t tAng;
;7016:					float wv;
;7017:					addspriteArgStruct_t fxSArgs;
;7018:
;7019:					VectorSet( tAng, cent->turAngles[PITCH], cent->turAngles[YAW], cent->turAngles[ROLL] );
ADDRLP4 1228
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1212
ADDRLP4 1228
INDIRP4
CNSTI4 1016
ADDP4
INDIRF4
ASGNF4
ADDRLP4 1212+4
ADDRLP4 1228
INDIRP4
CNSTI4 1020
ADDP4
INDIRF4
ASGNF4
ADDRLP4 1212+8
ADDRFP4 0
INDIRP4
CNSTI4 1024
ADDP4
INDIRF4
ASGNF4
line 7021
;7020:
;7021:					trap_G2API_GetBoltMatrix(cent->ghoul2, 0, cgs.clientinfo[cent->currentState.number].bolt_rhand, &boltMatrix, tAng, cent->lerpOrigin, cg.time, cgs.gameModels, cent->modelScale);
ADDRLP4 1232
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1232
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 812
ADDRLP4 1232
INDIRP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+512
ADDP4
INDIRI4
ARGI4
ADDRLP4 780
ARGP4
ADDRLP4 1212
ARGP4
ADDRLP4 1232
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRGP4 cgs+36364
ARGP4
ADDRLP4 1232
INDIRP4
CNSTI4 964
ADDP4
ARGP4
ADDRGP4 trap_G2API_GetBoltMatrix
CALLI4
pop
line 7023
;7022:
;7023:					efOrg[0] = boltMatrix.matrix[0][3];
ADDRLP4 240
ADDRLP4 780+12
INDIRF4
ASGNF4
line 7024
;7024:					efOrg[1] = boltMatrix.matrix[1][3];
ADDRLP4 240+4
ADDRLP4 780+16+12
INDIRF4
ASGNF4
line 7025
;7025:					efOrg[2] = boltMatrix.matrix[2][3];
ADDRLP4 240+8
ADDRLP4 780+32+12
INDIRF4
ASGNF4
line 7027
;7026:
;7027:					wv = sin( cg.time * 0.003f ) * 0.08f + 0.1f;
CNSTF4 994352038
ADDRGP4 cg+64
INDIRI4
CVIF4 4
MULF4
ARGF4
ADDRLP4 1236
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 1224
CNSTF4 1034147594
ADDRLP4 1236
INDIRF4
MULF4
CNSTF4 1036831949
ADDF4
ASGNF4
line 7030
;7028:
;7029:					//trap_FX_AddSprite( NULL, efOrg, NULL, NULL, 8.0f, 8.0f, wv, wv, 0.0f, 0.0f, 1.0f, cgs.media.yellowSaberGlowShader, 0x08000000 );
;7030:					VectorCopy(efOrg, fxSArgs.origin);
ADDRLP4 1140
ADDRLP4 240
INDIRB
ASGNB 12
line 7031
;7031:					VectorClear(fxSArgs.vel);
ADDRLP4 1240
CNSTF4 0
ASGNF4
ADDRLP4 1140+12+8
ADDRLP4 1240
INDIRF4
ASGNF4
ADDRLP4 1140+12+4
ADDRLP4 1240
INDIRF4
ASGNF4
ADDRLP4 1140+12
ADDRLP4 1240
INDIRF4
ASGNF4
line 7032
;7032:					VectorClear(fxSArgs.accel);
ADDRLP4 1244
CNSTF4 0
ASGNF4
ADDRLP4 1140+24+8
ADDRLP4 1244
INDIRF4
ASGNF4
ADDRLP4 1140+24+4
ADDRLP4 1244
INDIRF4
ASGNF4
ADDRLP4 1140+24
ADDRLP4 1244
INDIRF4
ASGNF4
line 7033
;7033:					fxSArgs.scale = 8.0f;
ADDRLP4 1140+36
CNSTF4 1090519040
ASGNF4
line 7034
;7034:					fxSArgs.dscale = 8.0f;
ADDRLP4 1140+40
CNSTF4 1090519040
ASGNF4
line 7035
;7035:					fxSArgs.sAlpha = wv;
ADDRLP4 1140+44
ADDRLP4 1224
INDIRF4
ASGNF4
line 7036
;7036:					fxSArgs.eAlpha = wv;
ADDRLP4 1140+48
ADDRLP4 1224
INDIRF4
ASGNF4
line 7037
;7037:					fxSArgs.rotation = 0.0f;
ADDRLP4 1140+52
CNSTF4 0
ASGNF4
line 7038
;7038:					fxSArgs.bounce = 0.0f;
ADDRLP4 1140+56
CNSTF4 0
ASGNF4
line 7039
;7039:					fxSArgs.life = 1.0f;
ADDRLP4 1140+60
CNSTI4 1
ASGNI4
line 7040
;7040:					fxSArgs.shader = cgs.media.yellowDroppedSaberShader;
ADDRLP4 1140+64
ADDRGP4 cgs+71064+168
INDIRI4
ASGNI4
line 7041
;7041:					fxSArgs.flags = 0x08000000;
ADDRLP4 1140+68
CNSTI4 134217728
ASGNI4
line 7042
;7042:					trap_FX_AddSprite(&fxSArgs);
ADDRLP4 1140
ARGP4
ADDRGP4 trap_FX_AddSprite
CALLV
pop
line 7043
;7043:				}
line 7044
;7044:			}
line 7045
;7045:		}
ADDRGP4 $3884
JUMPV
LABELV $3900
line 7047
;7046:		else
;7047:		{
line 7050
;7048:			centity_t *saberEnt;
;7049:
;7050:			saberEnt = &cg_entities[cent->currentState.saberEntityNum];
ADDRLP4 1100
CNSTI4 1920
ADDRFP4 0
INDIRP4
CNSTI4 232
ADDP4
INDIRI4
MULI4
ADDRGP4 cg_entities
ADDP4
ASGNP4
line 7052
;7051:
;7052:			if (/*cent->bolt4 && */!g2HasWeapon)
ADDRLP4 536
INDIRI4
CNSTI4 0
NEI4 $3974
line 7053
;7053:			{
line 7054
;7054:				trap_G2API_CopySpecificGhoul2Model(g2WeaponInstances[WP_SABER], 0, cent->ghoul2, 1);
ADDRGP4 g2WeaponInstances+8
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
CNSTI4 1
ARGI4
ADDRGP4 trap_G2API_CopySpecificGhoul2Model
CALLV
pop
line 7056
;7055:
;7056:				if (saberEnt && saberEnt->ghoul2)
ADDRLP4 1104
ADDRLP4 1100
INDIRP4
ASGNP4
ADDRLP4 1108
CNSTU4 0
ASGNU4
ADDRLP4 1104
INDIRP4
CVPU4 4
ADDRLP4 1108
INDIRU4
EQU4 $3977
ADDRLP4 1104
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
ADDRLP4 1108
INDIRU4
EQU4 $3977
line 7057
;7057:				{
line 7058
;7058:					trap_G2API_CleanGhoul2Models(&(saberEnt->ghoul2));
ADDRLP4 1100
INDIRP4
CNSTI4 952
ADDP4
ARGP4
ADDRGP4 trap_G2API_CleanGhoul2Models
CALLV
pop
line 7059
;7059:				}
LABELV $3977
line 7061
;7060:
;7061:				saberEnt->currentState.modelindex = 0;
ADDRLP4 1100
INDIRP4
CNSTI4 212
ADDP4
CNSTI4 0
ASGNI4
line 7062
;7062:				saberEnt->ghoul2 = NULL;
ADDRLP4 1100
INDIRP4
CNSTI4 952
ADDP4
CNSTP4 0
ASGNP4
line 7063
;7063:				VectorClear(saberEnt->currentState.pos.trBase);
ADDRLP4 1112
ADDRLP4 1100
INDIRP4
ASGNP4
ADDRLP4 1116
CNSTF4 0
ASGNF4
ADDRLP4 1112
INDIRP4
CNSTI4 32
ADDP4
ADDRLP4 1116
INDIRF4
ASGNF4
ADDRLP4 1112
INDIRP4
CNSTI4 28
ADDP4
ADDRLP4 1116
INDIRF4
ASGNF4
ADDRLP4 1112
INDIRP4
CNSTI4 24
ADDP4
ADDRLP4 1116
INDIRF4
ASGNF4
line 7064
;7064:			}
LABELV $3974
line 7065
;7065:			CG_AddSaberBlade( cent, cent, NULL, 0, 0, legs.origin, rootAngles, qfalse);
ADDRLP4 1104
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1104
INDIRP4
ARGP4
ADDRLP4 1104
INDIRP4
ARGP4
CNSTP4 0
ARGP4
ADDRLP4 1108
CNSTI4 0
ASGNI4
ADDRLP4 1108
INDIRI4
ARGI4
ADDRLP4 1108
INDIRI4
ARGI4
ADDRLP4 0+52
ARGP4
ADDRLP4 840
ARGP4
ADDRLP4 1108
INDIRI4
ARGI4
ADDRGP4 CG_AddSaberBlade
CALLV
pop
line 7066
;7066:			cent->bolt3 = 0;
ADDRFP4 0
INDIRP4
CNSTI4 992
ADDP4
CNSTI4 0
ASGNI4
line 7067
;7067:			cent->bolt2 = 0;
ADDRFP4 0
INDIRP4
CNSTI4 988
ADDP4
CNSTI4 0
ASGNI4
line 7070
;7068:
;7069:			//cent->bolt4 = 0;
;7070:		}
line 7071
;7071:	}
ADDRGP4 $3884
JUMPV
LABELV $3883
line 7073
;7072:	else
;7073:	{
line 7074
;7074:		cent->saberLength = 0;
ADDRFP4 0
INDIRP4
CNSTI4 1000
ADDP4
CNSTF4 0
ASGNF4
line 7075
;7075:	}
LABELV $3884
line 7077
;7076:
;7077:	if (cent->currentState.eFlags & EF_DEAD)
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $3980
line 7078
;7078:	{
line 7079
;7079:		if (cent->ghoul2 && cent->currentState.saberInFlight && g2HasWeapon)
ADDRLP4 1080
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1080
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $3982
ADDRLP4 1084
CNSTI4 0
ASGNI4
ADDRLP4 1080
INDIRP4
CNSTI4 228
ADDP4
INDIRI4
ADDRLP4 1084
INDIRI4
EQI4 $3982
ADDRLP4 536
INDIRI4
ADDRLP4 1084
INDIRI4
EQI4 $3982
line 7080
;7080:		{ //special case, kill the saber on a freshly dead player if another source says to.
line 7081
;7081:			trap_G2API_RemoveGhoul2Model(&(cent->ghoul2), 1);
ADDRFP4 0
INDIRP4
CNSTI4 952
ADDP4
ARGP4
CNSTI4 1
ARGI4
ADDRGP4 trap_G2API_RemoveGhoul2Model
CALLI4
pop
line 7082
;7082:			g2HasWeapon = qfalse;
ADDRLP4 536
CNSTI4 0
ASGNI4
line 7083
;7083:		}
LABELV $3982
line 7084
;7084:	}
LABELV $3980
line 7086
;7085:
;7086:	if (iwantout)
ADDRLP4 768
INDIRI4
CNSTI4 0
EQI4 $3984
line 7087
;7087:	{
line 7089
;7088:		//return;
;7089:		goto endOfCall;
ADDRGP4 $3899
JUMPV
LABELV $3984
line 7092
;7090:	}
;7091:
;7092:	if ((cg.snap->ps.fd.forcePowersActive & (1 << FP_SEE)) && cg.snap->ps.clientNum != cent->currentState.number)
ADDRGP4 cg+36
INDIRP4
CNSTI4 892
ADDP4
INDIRI4
CNSTI4 16384
BANDI4
CNSTI4 0
EQI4 $3986
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
ADDRFP4 0
INDIRP4
INDIRI4
EQI4 $3986
line 7093
;7093:	{
line 7094
;7094:		legs.shaderRGBA[0] = 255;
ADDRLP4 0+80
CNSTU1 255
ASGNU1
line 7095
;7095:		legs.shaderRGBA[1] = 255;
ADDRLP4 0+80+1
CNSTU1 255
ASGNU1
line 7096
;7096:		legs.shaderRGBA[2] = 0;
ADDRLP4 0+80+2
CNSTU1 0
ASGNU1
line 7097
;7097:		legs.renderfx |= RF_MINLIGHT;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 1
BORI4
ASGNI4
line 7098
;7098:	}
LABELV $3986
line 7100
;7099:
;7100:	if (cg.snap->ps.duelInProgress /*&& cent->currentState.number != cg.snap->ps.clientNum*/)
ADDRGP4 cg+36
INDIRP4
CNSTI4 1348
ADDP4
INDIRI4
CNSTI4 0
EQI4 $3996
line 7101
;7101:	{ //I guess go ahead and glow your own client too in a duel
line 7102
;7102:		if (cent->currentState.number != cg.snap->ps.duelIndex &&
ADDRLP4 1080
ADDRFP4 0
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 1080
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 1340
ADDP4
INDIRI4
EQI4 $3999
ADDRLP4 1080
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
EQI4 $3999
line 7104
;7103:			cent->currentState.number != cg.snap->ps.clientNum)
;7104:		{ //everyone not involved in the duel is drawn very dark
line 7105
;7105:			legs.shaderRGBA[0] = 50;
ADDRLP4 0+80
CNSTU1 50
ASGNU1
line 7106
;7106:			legs.shaderRGBA[1] = 50;
ADDRLP4 0+80+1
CNSTU1 50
ASGNU1
line 7107
;7107:			legs.shaderRGBA[2] = 50;
ADDRLP4 0+80+2
CNSTU1 50
ASGNU1
line 7108
;7108:			legs.renderfx |= RF_RGB_TINT;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 2048
BORI4
ASGNI4
line 7109
;7109:		}
ADDRGP4 $3997
JUMPV
LABELV $3999
line 7111
;7110:		else
;7111:		{ //adjust the glow by how far away you are from your dueling partner
line 7114
;7112:			centity_t *duelEnt;
;7113:
;7114:			duelEnt = &cg_entities[cg.snap->ps.duelIndex];
ADDRLP4 1084
CNSTI4 1920
ADDRGP4 cg+36
INDIRP4
CNSTI4 1340
ADDP4
INDIRI4
MULI4
ADDRGP4 cg_entities
ADDP4
ASGNP4
line 7116
;7115:			
;7116:			if (duelEnt)
ADDRLP4 1084
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $3997
line 7117
;7117:			{
line 7119
;7118:				vec3_t vecSub;
;7119:				float subLen = 0;
ADDRLP4 1088
CNSTF4 0
ASGNF4
line 7121
;7120:
;7121:				VectorSubtract(duelEnt->lerpOrigin, cg.snap->ps.origin, vecSub);
ADDRLP4 1104
ADDRLP4 1084
INDIRP4
ASGNP4
ADDRLP4 1092
ADDRLP4 1104
INDIRP4
CNSTI4 928
ADDP4
INDIRF4
ADDRGP4 cg+36
INDIRP4
CNSTI4 64
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 1092+4
ADDRLP4 1104
INDIRP4
CNSTI4 932
ADDP4
INDIRF4
ADDRGP4 cg+36
INDIRP4
CNSTI4 68
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 1092+8
ADDRLP4 1084
INDIRP4
CNSTI4 936
ADDP4
INDIRF4
ADDRGP4 cg+36
INDIRP4
CNSTI4 72
ADDP4
INDIRF4
SUBF4
ASGNF4
line 7122
;7122:				subLen = VectorLength(vecSub);
ADDRLP4 1092
ARGP4
ADDRLP4 1108
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 1088
ADDRLP4 1108
INDIRF4
ASGNF4
line 7124
;7123:
;7124:				if (subLen < 1)
ADDRLP4 1088
INDIRF4
CNSTF4 1065353216
GEF4 $4017
line 7125
;7125:				{
line 7126
;7126:					subLen = 1;
ADDRLP4 1088
CNSTF4 1065353216
ASGNF4
line 7127
;7127:				}
LABELV $4017
line 7129
;7128:
;7129:				if (subLen > 1020)
ADDRLP4 1088
INDIRF4
CNSTF4 1149173760
LEF4 $4019
line 7130
;7130:				{
line 7131
;7131:					subLen = 1020;
ADDRLP4 1088
CNSTF4 1149173760
ASGNF4
line 7132
;7132:				}
LABELV $4019
line 7134
;7133:
;7134:				legs.shaderRGBA[0] = 255 - subLen/4;
ADDRLP4 1116
CNSTF4 1132396544
ADDRLP4 1088
INDIRF4
CNSTF4 1082130432
DIVF4
SUBF4
ASGNF4
ADDRLP4 1120
CNSTF4 1325400064
ASGNF4
ADDRLP4 1116
INDIRF4
ADDRLP4 1120
INDIRF4
LTF4 $4023
ADDRLP4 1112
ADDRLP4 1116
INDIRF4
ADDRLP4 1120
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $4024
JUMPV
LABELV $4023
ADDRLP4 1112
ADDRLP4 1116
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $4024
ADDRLP4 0+80
ADDRLP4 1112
INDIRU4
CVUU1 4
ASGNU1
line 7135
;7135:				legs.shaderRGBA[1] = 255 - subLen/4;
ADDRLP4 1128
CNSTF4 1132396544
ADDRLP4 1088
INDIRF4
CNSTF4 1082130432
DIVF4
SUBF4
ASGNF4
ADDRLP4 1132
CNSTF4 1325400064
ASGNF4
ADDRLP4 1128
INDIRF4
ADDRLP4 1132
INDIRF4
LTF4 $4028
ADDRLP4 1124
ADDRLP4 1128
INDIRF4
ADDRLP4 1132
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $4029
JUMPV
LABELV $4028
ADDRLP4 1124
ADDRLP4 1128
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $4029
ADDRLP4 0+80+1
ADDRLP4 1124
INDIRU4
CVUU1 4
ASGNU1
line 7136
;7136:				legs.shaderRGBA[2] = 255 - subLen/4;
ADDRLP4 1140
CNSTF4 1132396544
ADDRLP4 1088
INDIRF4
CNSTF4 1082130432
DIVF4
SUBF4
ASGNF4
ADDRLP4 1144
CNSTF4 1325400064
ASGNF4
ADDRLP4 1140
INDIRF4
ADDRLP4 1144
INDIRF4
LTF4 $4033
ADDRLP4 1136
ADDRLP4 1140
INDIRF4
ADDRLP4 1144
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $4034
JUMPV
LABELV $4033
ADDRLP4 1136
ADDRLP4 1140
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $4034
ADDRLP4 0+80+2
ADDRLP4 1136
INDIRU4
CVUU1 4
ASGNU1
line 7138
;7137:
;7138:				if (legs.shaderRGBA[2] < 1) legs.shaderRGBA[2] = 1;
ADDRLP4 0+80+2
INDIRU1
CVUI4 1
CNSTI4 1
GEI4 $4035
ADDRLP4 0+80+2
CNSTU1 1
ASGNU1
LABELV $4035
line 7140
;7139:
;7140:				legs.renderfx &= ~RF_RGB_TINT;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
line 7141
;7141:				legs.renderfx &= ~RF_FORCE_ENT_ALPHA;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -1025
BANDI4
ASGNI4
line 7142
;7142:				legs.customShader = cgs.media.forceShell;
ADDRLP4 0+76
ADDRGP4 cgs+71064+496
INDIRI4
ASGNI4
line 7146
;7143:		
;7144:				//trap_R_AddRefEntityToScene( &legs );
;7145:
;7146:				legs.customShader = 0;
ADDRLP4 0+76
CNSTI4 0
ASGNI4
line 7148
;7147:
;7148:				legs.shaderRGBA[0] = 255 - subLen/8;
ADDRLP4 1152
CNSTF4 1132396544
ADDRLP4 1088
INDIRF4
CNSTF4 1090519040
DIVF4
SUBF4
ASGNF4
ADDRLP4 1156
CNSTF4 1325400064
ASGNF4
ADDRLP4 1152
INDIRF4
ADDRLP4 1156
INDIRF4
LTF4 $4049
ADDRLP4 1148
ADDRLP4 1152
INDIRF4
ADDRLP4 1156
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $4050
JUMPV
LABELV $4049
ADDRLP4 1148
ADDRLP4 1152
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $4050
ADDRLP4 0+80
ADDRLP4 1148
INDIRU4
CVUU1 4
ASGNU1
line 7149
;7149:				legs.shaderRGBA[1] = 255 - subLen/8;
ADDRLP4 1164
CNSTF4 1132396544
ADDRLP4 1088
INDIRF4
CNSTF4 1090519040
DIVF4
SUBF4
ASGNF4
ADDRLP4 1168
CNSTF4 1325400064
ASGNF4
ADDRLP4 1164
INDIRF4
ADDRLP4 1168
INDIRF4
LTF4 $4054
ADDRLP4 1160
ADDRLP4 1164
INDIRF4
ADDRLP4 1168
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $4055
JUMPV
LABELV $4054
ADDRLP4 1160
ADDRLP4 1164
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $4055
ADDRLP4 0+80+1
ADDRLP4 1160
INDIRU4
CVUU1 4
ASGNU1
line 7150
;7150:				legs.shaderRGBA[2] = 255 - subLen/8;
ADDRLP4 1176
CNSTF4 1132396544
ADDRLP4 1088
INDIRF4
CNSTF4 1090519040
DIVF4
SUBF4
ASGNF4
ADDRLP4 1180
CNSTF4 1325400064
ASGNF4
ADDRLP4 1176
INDIRF4
ADDRLP4 1180
INDIRF4
LTF4 $4059
ADDRLP4 1172
ADDRLP4 1176
INDIRF4
ADDRLP4 1180
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $4060
JUMPV
LABELV $4059
ADDRLP4 1172
ADDRLP4 1176
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $4060
ADDRLP4 0+80+2
ADDRLP4 1172
INDIRU4
CVUU1 4
ASGNU1
line 7152
;7151:
;7152:				if (legs.shaderRGBA[2] < 1)
ADDRLP4 0+80+2
INDIRU1
CVUI4 1
CNSTI4 1
GEI4 $4061
line 7153
;7153:				{
line 7154
;7154:					legs.shaderRGBA[2] = 1;
ADDRLP4 0+80+2
CNSTU1 1
ASGNU1
line 7155
;7155:				}
LABELV $4061
line 7156
;7156:				if (legs.shaderRGBA[2] > 255)
ADDRLP4 0+80+2
INDIRU1
CVUI4 1
CNSTI4 255
LEI4 $4067
line 7157
;7157:				{
line 7158
;7158:					legs.shaderRGBA[2] = 255;
ADDRLP4 0+80+2
CNSTU1 255
ASGNU1
line 7159
;7159:				}
LABELV $4067
line 7161
;7160:
;7161:				if (subLen <= 1024)
ADDRLP4 1088
INDIRF4
CNSTF4 1149239296
GTF4 $3997
line 7162
;7162:				{
line 7163
;7163:					legs.renderfx |= RF_RGB_TINT;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 2048
BORI4
ASGNI4
line 7164
;7164:				}
line 7165
;7165:			}
line 7166
;7166:		}
line 7167
;7167:	}
ADDRGP4 $3997
JUMPV
LABELV $3996
line 7169
;7168:	else
;7169:	{
line 7170
;7170:		if (cent->currentState.bolt1 && !(cent->currentState.eFlags & EF_DEAD) && cent->currentState.number != cg.snap->ps.clientNum && (!cg.snap->ps.duelInProgress || cg.snap->ps.duelIndex != cent->currentState.number))
ADDRLP4 1080
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1084
CNSTI4 0
ASGNI4
ADDRLP4 1080
INDIRP4
CNSTI4 140
ADDP4
INDIRI4
ADDRLP4 1084
INDIRI4
EQI4 $4076
ADDRLP4 1080
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
ADDRLP4 1084
INDIRI4
NEI4 $4076
ADDRLP4 1088
ADDRLP4 1080
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 1088
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
EQI4 $4076
ADDRGP4 cg+36
INDIRP4
CNSTI4 1348
ADDP4
INDIRI4
ADDRLP4 1084
INDIRI4
EQI4 $4081
ADDRGP4 cg+36
INDIRP4
CNSTI4 1340
ADDP4
INDIRI4
ADDRLP4 1088
INDIRI4
EQI4 $4076
LABELV $4081
line 7171
;7171:		{
line 7172
;7172:			legs.shaderRGBA[0] = 50;
ADDRLP4 0+80
CNSTU1 50
ASGNU1
line 7173
;7173:			legs.shaderRGBA[1] = 50;
ADDRLP4 0+80+1
CNSTU1 50
ASGNU1
line 7174
;7174:			legs.shaderRGBA[2] = 50;
ADDRLP4 0+80+2
CNSTU1 50
ASGNU1
line 7175
;7175:			legs.renderfx |= RF_RGB_TINT;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 2048
BORI4
ASGNI4
line 7176
;7176:		}
LABELV $4076
line 7177
;7177:	}
LABELV $3997
LABELV $3421
line 7179
;7178:doEssentialThree:
;7179:	if (cent->currentState.eFlags & EF_DISINTEGRATION)
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 33554432
BANDI4
CNSTI4 0
EQI4 $4088
line 7180
;7180:	{
line 7184
;7181:		vec3_t tempAng, hitLoc;
;7182:		float tempLength;
;7183:
;7184:		if (!cent->dustTrailTime)
ADDRFP4 0
INDIRP4
CNSTI4 616
ADDP4
INDIRI4
CNSTI4 0
NEI4 $4090
line 7185
;7185:		{
line 7186
;7186:			cent->dustTrailTime = cg.time;
ADDRFP4 0
INDIRP4
CNSTI4 616
ADDP4
ADDRGP4 cg+64
INDIRI4
ASGNI4
line 7187
;7187:			cent->miscTime = legs.frame;
ADDRFP4 0
INDIRP4
CNSTI4 620
ADDP4
ADDRLP4 0+104
INDIRI4
ASGNI4
line 7188
;7188:		}
LABELV $4090
line 7190
;7189:
;7190:		if ((cg.time - cent->dustTrailTime) > 1500)
ADDRGP4 cg+64
INDIRI4
ADDRFP4 0
INDIRP4
CNSTI4 616
ADDP4
INDIRI4
SUBI4
CNSTI4 1500
LEI4 $4094
line 7191
;7191:		{ //avoid rendering the entity after disintegration has finished anyway
line 7192
;7192:			goto endOfCall;
ADDRGP4 $3899
JUMPV
LABELV $4094
line 7195
;7193:		}
;7194:
;7195:		trap_G2API_SetBoneAnim(legs.ghoul2, 0, "model_root", cent->miscTime, cent->miscTime, BONE_ANIM_OVERRIDE_FREEZE, 1.0f, cg.time, cent->miscTime, -1);
ADDRLP4 0+208
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $310
ARGP4
ADDRLP4 1108
ADDRFP4 0
INDIRP4
CNSTI4 620
ADDP4
INDIRI4
ASGNI4
ADDRLP4 1108
INDIRI4
ARGI4
ADDRLP4 1108
INDIRI4
ARGI4
CNSTI4 72
ARGI4
CNSTF4 1065353216
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRLP4 1108
INDIRI4
CVIF4 4
ARGF4
CNSTI4 -1
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 7196
;7196:		trap_G2API_SetBoneAnim(legs.ghoul2, 0, "lower_lumbar", cent->miscTime, cent->miscTime, BONE_ANIM_OVERRIDE_FREEZE, 1.0f, cg.time, cent->miscTime, -1);
ADDRLP4 0+208
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $323
ARGP4
ADDRLP4 1112
ADDRFP4 0
INDIRP4
CNSTI4 620
ADDP4
INDIRI4
ASGNI4
ADDRLP4 1112
INDIRI4
ARGI4
ADDRLP4 1112
INDIRI4
ARGI4
CNSTI4 72
ARGI4
CNSTF4 1065353216
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRLP4 1112
INDIRI4
CVIF4 4
ARGF4
CNSTI4 -1
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 7197
;7197:		trap_G2API_SetBoneAnim(legs.ghoul2, 0, "Motion", cent->miscTime, cent->miscTime, BONE_ANIM_OVERRIDE_FREEZE, 1.0f, cg.time, cent->miscTime, -1);
ADDRLP4 0+208
INDIRP4
ARGP4
CNSTI4 0
ARGI4
ADDRGP4 $322
ARGP4
ADDRLP4 1116
ADDRFP4 0
INDIRP4
CNSTI4 620
ADDP4
INDIRI4
ASGNI4
ADDRLP4 1116
INDIRI4
ARGI4
ADDRLP4 1116
INDIRI4
ARGI4
CNSTI4 72
ARGI4
CNSTF4 1065353216
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRLP4 1116
INDIRI4
CVIF4 4
ARGF4
CNSTI4 -1
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 7199
;7198:
;7199:		VectorCopy(cent->currentState.origin2, hitLoc);
ADDRLP4 1080
ADDRFP4 0
INDIRP4
CNSTI4 104
ADDP4
INDIRB
ASGNB 12
line 7201
;7200:
;7201:		VectorSubtract( hitLoc, legs.origin, legs.oldorigin );
ADDRLP4 0+64
ADDRLP4 1080
INDIRF4
ADDRLP4 0+52
INDIRF4
SUBF4
ASGNF4
ADDRLP4 0+64+4
ADDRLP4 1080+4
INDIRF4
ADDRLP4 0+52+4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 0+64+8
ADDRLP4 1080+8
INDIRF4
ADDRLP4 0+52+8
INDIRF4
SUBF4
ASGNF4
line 7203
;7202:		
;7203:		tempLength = VectorNormalize( legs.oldorigin );
ADDRLP4 0+64
ARGP4
ADDRLP4 1120
ADDRGP4 VectorNormalize
CALLF4
ASGNF4
ADDRLP4 1092
ADDRLP4 1120
INDIRF4
ASGNF4
line 7204
;7204:		vectoangles( legs.oldorigin, tempAng );
ADDRLP4 0+64
ARGP4
ADDRLP4 1096
ARGP4
ADDRGP4 vectoangles
CALLV
pop
line 7205
;7205:		tempAng[YAW] -= cent->lerpAngles[YAW];
ADDRLP4 1096+4
ADDRLP4 1096+4
INDIRF4
ADDRFP4 0
INDIRP4
CNSTI4 944
ADDP4
INDIRF4
SUBF4
ASGNF4
line 7206
;7206:		AngleVectors( tempAng, legs.oldorigin, NULL, NULL );
ADDRLP4 1096
ARGP4
ADDRLP4 0+64
ARGP4
ADDRLP4 1124
CNSTP4 0
ASGNP4
ADDRLP4 1124
INDIRP4
ARGP4
ADDRLP4 1124
INDIRP4
ARGP4
ADDRGP4 AngleVectors
CALLV
pop
line 7207
;7207:		VectorScale( legs.oldorigin, tempLength, legs.oldorigin );
ADDRLP4 0+64
ADDRLP4 0+64
INDIRF4
ADDRLP4 1092
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+64+4
ADDRLP4 0+64+4
INDIRF4
ADDRLP4 1092
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+64+8
ADDRLP4 0+64+8
INDIRF4
ADDRLP4 1092
INDIRF4
MULF4
ASGNF4
line 7208
;7208:		legs.endTime = cent->dustTrailTime;
ADDRLP4 0+176
ADDRFP4 0
INDIRP4
CNSTI4 616
ADDP4
INDIRI4
CVIF4 4
ASGNF4
line 7217
;7209:
;7210:		//FIXME: Sorting is all wrong here, it can't decide if it should render this part or the outer body first
;7211:		/*
;7212:		legs.renderfx |= RF_DISINTEGRATE2;
;7213:		legs.customShader = cgs.media.disruptorShader;
;7214:		//trap_R_AddRefEntityToScene( &legs );
;7215:		*/
;7216:
;7217:		legs.renderfx &= ~(RF_DISINTEGRATE2);
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -262145
BANDI4
ASGNI4
line 7218
;7218:		legs.renderfx |= (RF_DISINTEGRATE1);
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 131072
BORI4
ASGNI4
line 7220
;7219:
;7220:		legs.customShader = 0;
ADDRLP4 0+76
CNSTI4 0
ASGNI4
line 7223
;7221:		//trap_R_AddRefEntityToScene( &legs );
;7222:
;7223:		goto endOfCall;
ADDRGP4 $3899
JUMPV
LABELV $4088
line 7226
;7224:	}
;7225:	else
;7226:	{
line 7227
;7227:		cent->dustTrailTime = 0;
ADDRFP4 0
INDIRP4
CNSTI4 616
ADDP4
CNSTI4 0
ASGNI4
line 7228
;7228:		cent->miscTime = 0;
ADDRFP4 0
INDIRP4
CNSTI4 620
ADDP4
CNSTI4 0
ASGNI4
line 7229
;7229:	}
line 7233
;7230:
;7231:	//trap_R_AddRefEntityToScene( &legs );
;7232:
;7233:	if (cent->isATST)
ADDRFP4 0
INDIRP4
CNSTI4 1028
ADDP4
INDIRI4
CNSTI4 0
EQI4 $4133
line 7234
;7234:	{
line 7236
;7235:		//return;
;7236:		goto endOfCall;
ADDRGP4 $3899
JUMPV
LABELV $4133
line 7239
;7237:	}
;7238:
;7239:	cent->frame_minus2 = cent->frame_minus1;
ADDRLP4 1080
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1080
INDIRP4
CNSTI4 1252
ADDP4
ADDRLP4 1080
INDIRP4
CNSTI4 1040
ADDP4
INDIRB
ASGNB 212
line 7240
;7240:	if (cent->frame_minus1_refreshed)
ADDRFP4 0
INDIRP4
CNSTI4 1464
ADDP4
INDIRI4
CNSTI4 0
EQI4 $4135
line 7241
;7241:	{
line 7242
;7242:		cent->frame_minus2_refreshed = 1;
ADDRFP4 0
INDIRP4
CNSTI4 1468
ADDP4
CNSTI4 1
ASGNI4
line 7243
;7243:	}
LABELV $4135
line 7244
;7244:	cent->frame_minus1 = legs;
ADDRFP4 0
INDIRP4
CNSTI4 1040
ADDP4
ADDRLP4 0
INDIRB
ASGNB 212
line 7245
;7245:	cent->frame_minus1_refreshed = 1;
ADDRFP4 0
INDIRP4
CNSTI4 1464
ADDP4
CNSTI4 1
ASGNI4
line 7247
;7246:
;7247:	if (!cent->frame_hold_refreshed && (cent->currentState.powerups & (1 << PW_SPEEDBURST)))
ADDRLP4 1084
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1088
CNSTI4 0
ASGNI4
ADDRLP4 1084
INDIRP4
CNSTI4 1688
ADDP4
INDIRI4
ADDRLP4 1088
INDIRI4
NEI4 $4137
ADDRLP4 1084
INDIRP4
CNSTI4 272
ADDP4
INDIRI4
CNSTI4 256
BANDI4
ADDRLP4 1088
INDIRI4
EQI4 $4137
line 7248
;7248:	{
line 7249
;7249:		cent->frame_hold_time = cg.time + 254;
ADDRFP4 0
INDIRP4
CNSTI4 1684
ADDP4
ADDRGP4 cg+64
INDIRI4
CNSTI4 254
ADDI4
ASGNI4
line 7250
;7250:	}
LABELV $4137
line 7252
;7251:
;7252:	if (cent->frame_hold_time >= cg.time)
ADDRFP4 0
INDIRP4
CNSTI4 1684
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
LTI4 $4140
line 7253
;7253:	{
line 7254
;7254:		if (!cent->frame_hold_refreshed)
ADDRFP4 0
INDIRP4
CNSTI4 1688
ADDP4
INDIRI4
CNSTI4 0
NEI4 $4143
line 7255
;7255:		{ //We're taking the ghoul2 instance from the original refent and duplicating it onto our refent alias so that we can then freeze the frame and fade it for the effect
line 7256
;7256:			if (cent->frame_hold.ghoul2 && trap_G2_HaveWeGhoul2Models(cent->frame_hold.ghoul2) &&
ADDRLP4 1092
ADDRFP4 0
INDIRP4
CNSTI4 1680
ADDP4
INDIRP4
ASGNP4
ADDRLP4 1092
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $4145
ADDRLP4 1092
INDIRP4
ARGP4
ADDRLP4 1096
ADDRGP4 trap_G2_HaveWeGhoul2Models
CALLI4
ASGNI4
ADDRLP4 1096
INDIRI4
CNSTI4 0
EQI4 $4145
ADDRLP4 1100
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1100
INDIRP4
CNSTI4 1680
ADDP4
INDIRP4
CVPU4 4
ADDRLP4 1100
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
EQU4 $4145
line 7258
;7257:				cent->frame_hold.ghoul2 != cent->ghoul2)
;7258:			{
line 7259
;7259:				trap_G2API_CleanGhoul2Models(&(cent->frame_hold.ghoul2));
ADDRFP4 0
INDIRP4
CNSTI4 1680
ADDP4
ARGP4
ADDRGP4 trap_G2API_CleanGhoul2Models
CALLV
pop
line 7260
;7260:			}
LABELV $4145
line 7261
;7261:			cent->frame_hold = legs;
ADDRFP4 0
INDIRP4
CNSTI4 1472
ADDP4
ADDRLP4 0
INDIRB
ASGNB 212
line 7262
;7262:			cent->frame_hold_refreshed = 1;
ADDRFP4 0
INDIRP4
CNSTI4 1688
ADDP4
CNSTI4 1
ASGNI4
line 7263
;7263:			cent->frame_hold.ghoul2 = NULL;
ADDRFP4 0
INDIRP4
CNSTI4 1680
ADDP4
CNSTP4 0
ASGNP4
line 7265
;7264:	
;7265:			trap_G2API_DuplicateGhoul2Instance(cent->ghoul2, &cent->frame_hold.ghoul2);
ADDRLP4 1104
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1104
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
ARGP4
ADDRLP4 1104
INDIRP4
CNSTI4 1680
ADDP4
ARGP4
ADDRGP4 trap_G2API_DuplicateGhoul2Instance
CALLV
pop
line 7269
;7266:
;7267:			//Set the animation to the current frame and freeze on end
;7268:			//trap_G2API_SetBoneAnim(cent->frame_hold.ghoul2, 0, "model_root", cent->frame_hold.frame, cent->frame_hold.frame, BONE_ANIM_OVERRIDE_FREEZE, 1.0f, cg.time, cent->frame_hold.frame, -1);
;7269:			trap_G2API_SetBoneAnim(cent->frame_hold.ghoul2, 0, "model_root", cent->frame_hold.frame, cent->frame_hold.frame, 0, 1.0f, cg.time, cent->frame_hold.frame, -1);
ADDRLP4 1108
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1108
INDIRP4
CNSTI4 1680
ADDP4
INDIRP4
ARGP4
ADDRLP4 1112
CNSTI4 0
ASGNI4
ADDRLP4 1112
INDIRI4
ARGI4
ADDRGP4 $310
ARGP4
ADDRLP4 1116
ADDRLP4 1108
INDIRP4
CNSTI4 1576
ADDP4
INDIRI4
ASGNI4
ADDRLP4 1116
INDIRI4
ARGI4
ADDRLP4 1116
INDIRI4
ARGI4
ADDRLP4 1112
INDIRI4
ARGI4
CNSTF4 1065353216
ARGF4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRLP4 1116
INDIRI4
CVIF4 4
ARGF4
CNSTI4 -1
ARGI4
ADDRGP4 trap_G2API_SetBoneAnim
CALLI4
pop
line 7270
;7270:		}
LABELV $4143
line 7272
;7271:
;7272:		cent->frame_hold.renderfx |= RF_FORCE_ENT_ALPHA;
ADDRLP4 1092
ADDRFP4 0
INDIRP4
CNSTI4 1476
ADDP4
ASGNP4
ADDRLP4 1092
INDIRP4
ADDRLP4 1092
INDIRP4
INDIRI4
CNSTI4 1024
BORI4
ASGNI4
line 7273
;7273:		cent->frame_hold.shaderRGBA[3] = (cent->frame_hold_time - cg.time);
ADDRLP4 1096
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1096
INDIRP4
CNSTI4 1555
ADDP4
ADDRLP4 1096
INDIRP4
CNSTI4 1684
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
SUBI4
CVIU4 4
CVUU1 4
ASGNU1
line 7274
;7274:		if (cent->frame_hold.shaderRGBA[3] > 254)
ADDRFP4 0
INDIRP4
CNSTI4 1555
ADDP4
INDIRU1
CVUI4 1
CNSTI4 254
LEI4 $4149
line 7275
;7275:		{
line 7276
;7276:			cent->frame_hold.shaderRGBA[3] = 254;
ADDRFP4 0
INDIRP4
CNSTI4 1555
ADDP4
CNSTU1 254
ASGNU1
line 7277
;7277:		}
LABELV $4149
line 7278
;7278:		if (cent->frame_hold.shaderRGBA[3] < 1)
ADDRFP4 0
INDIRP4
CNSTI4 1555
ADDP4
INDIRU1
CVUI4 1
CNSTI4 1
GEI4 $4151
line 7279
;7279:		{
line 7280
;7280:			cent->frame_hold.shaderRGBA[3] = 1;
ADDRFP4 0
INDIRP4
CNSTI4 1555
ADDP4
CNSTU1 1
ASGNU1
line 7281
;7281:		}
LABELV $4151
line 7283
;7282:
;7283:		trap_R_AddRefEntityToScene(&cent->frame_hold);
ADDRFP4 0
INDIRP4
CNSTI4 1472
ADDP4
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 7284
;7284:	}
ADDRGP4 $4141
JUMPV
LABELV $4140
line 7286
;7285:	else
;7286:	{
line 7287
;7287:		cent->frame_hold_refreshed = 0;
ADDRFP4 0
INDIRP4
CNSTI4 1688
ADDP4
CNSTI4 0
ASGNI4
line 7288
;7288:	}
LABELV $4141
line 7293
;7289:
;7290:	//
;7291:	// add the gun / barrel / flash
;7292:	//
;7293:	if (cent->currentState.weapon != WP_EMPLACED_GUN)
ADDRFP4 0
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
CNSTI4 14
EQI4 $4153
line 7294
;7294:	{
line 7295
;7295:		CG_AddPlayerWeapon( &legs, NULL, cent, ci->team, rootAngles, qtrue );
ADDRLP4 0
ARGP4
CNSTP4 0
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 828
INDIRP4
CNSTI4 68
ADDP4
INDIRI4
ARGI4
ADDRLP4 840
ARGP4
CNSTI4 1
ARGI4
ADDRGP4 CG_AddPlayerWeapon
CALLV
pop
line 7296
;7296:	}
LABELV $4153
line 7298
;7297:	// add powerups floating behind the player
;7298:	CG_PlayerPowerups( cent, &legs );
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 0
ARGP4
ADDRGP4 CG_PlayerPowerups
CALLV
pop
line 7300
;7299:
;7300:	if ((cent->currentState.forcePowersActive & (1 << FP_RAGE)) &&
ADDRLP4 1092
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1096
CNSTI4 0
ASGNI4
ADDRLP4 1092
INDIRP4
CNSTI4 240
ADDP4
INDIRI4
CNSTI4 256
BANDI4
ADDRLP4 1096
INDIRI4
EQI4 $4155
ADDRGP4 cg+88
INDIRI4
ADDRLP4 1096
INDIRI4
NEI4 $4159
ADDRLP4 1092
INDIRP4
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
EQI4 $4155
LABELV $4159
line 7302
;7301:		(cg.renderingThirdPerson || cent->currentState.number != cg.snap->ps.clientNum))
;7302:	{
line 7304
;7303:		//legs.customShader = cgs.media.rageShader;
;7304:		legs.renderfx &= ~RF_FORCE_ENT_ALPHA;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -1025
BANDI4
ASGNI4
line 7305
;7305:		legs.renderfx &= ~RF_MINLIGHT;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -2
BANDI4
ASGNI4
line 7307
;7306:
;7307:		legs.renderfx |= RF_RGB_TINT;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 2048
BORI4
ASGNI4
line 7308
;7308:		legs.shaderRGBA[0] = 255;
ADDRLP4 0+80
CNSTU1 255
ASGNU1
line 7309
;7309:		legs.shaderRGBA[1] = legs.shaderRGBA[2] = 0;
ADDRLP4 1100
CNSTU1 0
ASGNU1
ADDRLP4 0+80+2
ADDRLP4 1100
INDIRU1
ASGNU1
ADDRLP4 0+80+1
ADDRLP4 1100
INDIRU1
ASGNU1
line 7310
;7310:		legs.shaderRGBA[3] = 255;
ADDRLP4 0+80+3
CNSTU1 255
ASGNU1
line 7312
;7311:
;7312:		if ( rand() & 1 )
ADDRLP4 1104
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 1104
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $4170
line 7313
;7313:		{
line 7314
;7314:			legs.customShader = cgs.media.electricBodyShader;	
ADDRLP4 0+76
ADDRGP4 cgs+71064+396
INDIRI4
ASGNI4
line 7315
;7315:		}
ADDRGP4 $4171
JUMPV
LABELV $4170
line 7317
;7316:		else
;7317:		{
line 7318
;7318:			legs.customShader = cgs.media.electricBody2Shader;
ADDRLP4 0+76
ADDRGP4 cgs+71064+400
INDIRI4
ASGNI4
line 7319
;7319:		}
LABELV $4171
line 7322
;7320:
;7321:		//trap_R_AddRefEntityToScene( &legs );
;7322:	}
LABELV $4155
line 7324
;7323:
;7324:	if (!cg.snap->ps.duelInProgress && cent->currentState.bolt1 && !(cent->currentState.eFlags & EF_DEAD) && cent->currentState.number != cg.snap->ps.clientNum && (!cg.snap->ps.duelInProgress || cg.snap->ps.duelIndex != cent->currentState.number))
ADDRLP4 1100
CNSTI4 1348
ASGNI4
ADDRLP4 1104
CNSTI4 0
ASGNI4
ADDRGP4 cg+36
INDIRP4
ADDRLP4 1100
INDIRI4
ADDP4
INDIRI4
ADDRLP4 1104
INDIRI4
NEI4 $4178
ADDRLP4 1108
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1108
INDIRP4
CNSTI4 140
ADDP4
INDIRI4
ADDRLP4 1104
INDIRI4
EQI4 $4178
ADDRLP4 1108
INDIRP4
CNSTI4 8
ADDP4
INDIRI4
CNSTI4 1
BANDI4
ADDRLP4 1104
INDIRI4
NEI4 $4178
ADDRLP4 1112
ADDRLP4 1108
INDIRP4
INDIRI4
ASGNI4
ADDRLP4 1112
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
EQI4 $4178
ADDRGP4 cg+36
INDIRP4
ADDRLP4 1100
INDIRI4
ADDP4
INDIRI4
ADDRLP4 1104
INDIRI4
EQI4 $4184
ADDRGP4 cg+36
INDIRP4
CNSTI4 1340
ADDP4
INDIRI4
ADDRLP4 1112
INDIRI4
EQI4 $4178
LABELV $4184
line 7325
;7325:	{
line 7326
;7326:		legs.shaderRGBA[0] = 50;
ADDRLP4 0+80
CNSTU1 50
ASGNU1
line 7327
;7327:		legs.shaderRGBA[1] = 50;
ADDRLP4 0+80+1
CNSTU1 50
ASGNU1
line 7328
;7328:		legs.shaderRGBA[2] = 255;
ADDRLP4 0+80+2
CNSTU1 255
ASGNU1
line 7330
;7329:
;7330:		legs.renderfx &= ~RF_RGB_TINT;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
line 7331
;7331:		legs.renderfx &= ~RF_FORCE_ENT_ALPHA;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -1025
BANDI4
ASGNI4
line 7332
;7332:		legs.customShader = cgs.media.forceSightBubble;
ADDRLP4 0+76
ADDRGP4 cgs+71064+492
INDIRI4
ASGNI4
line 7335
;7333:		
;7334:		//trap_R_AddRefEntityToScene( &legs );
;7335:	}
LABELV $4178
line 7339
;7336:
;7337:	//For now, these two are using the old shield shader. This is just so that you
;7338:	//can tell it apart from the JM/duel shaders, but it's still very obvious.
;7339:	if (cent->currentState.forcePowersActive & (1 << FP_PROTECT))
ADDRFP4 0
INDIRP4
CNSTI4 240
ADDP4
INDIRI4
CNSTI4 512
BANDI4
CNSTI4 0
EQI4 $4195
line 7340
;7340:	{ //aborb is represented by green..
line 7341
;7341:		legs.shaderRGBA[0] = 0;
ADDRLP4 0+80
CNSTU1 0
ASGNU1
line 7342
;7342:		legs.shaderRGBA[1] = 255;
ADDRLP4 0+80+1
CNSTU1 255
ASGNU1
line 7343
;7343:		legs.shaderRGBA[2] = 0;
ADDRLP4 0+80+2
CNSTU1 0
ASGNU1
line 7344
;7344:		legs.shaderRGBA[3] = 254;
ADDRLP4 0+80+3
CNSTU1 254
ASGNU1
line 7346
;7345:
;7346:		legs.renderfx &= ~RF_RGB_TINT;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
line 7347
;7347:		legs.renderfx &= ~RF_FORCE_ENT_ALPHA;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -1025
BANDI4
ASGNI4
line 7348
;7348:		legs.customShader = cgs.media.playerShieldDamage;
ADDRLP4 0+76
ADDRGP4 cgs+71064+488
INDIRI4
ASGNI4
line 7351
;7349:		
;7350:		//trap_R_AddRefEntityToScene( &legs );
;7351:	}
LABELV $4195
line 7354
;7352:	//if (cent->currentState.forcePowersActive & (1 << FP_ABSORB))
;7353:	//Showing only when the power has been active (absorbed something) recently now, instead of always.
;7354:	if (cg_entities[cent->currentState.number].teamPowerEffectTime > cg.time && cg_entities[cent->currentState.number].teamPowerType == 3)
ADDRLP4 1116
CNSTI4 1920
ADDRFP4 0
INDIRP4
INDIRI4
MULI4
ASGNI4
ADDRLP4 1116
INDIRI4
ADDRGP4 cg_entities+1912
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
LEI4 $4209
ADDRLP4 1116
INDIRI4
ADDRGP4 cg_entities+1916
ADDP4
INDIRI4
CNSTI4 3
NEI4 $4209
line 7355
;7355:	{ //aborb is represented by blue..
line 7356
;7356:		legs.shaderRGBA[0] = 0;
ADDRLP4 0+80
CNSTU1 0
ASGNU1
line 7357
;7357:		legs.shaderRGBA[1] = 0;
ADDRLP4 0+80+1
CNSTU1 0
ASGNU1
line 7358
;7358:		legs.shaderRGBA[2] = 255;
ADDRLP4 0+80+2
CNSTU1 255
ASGNU1
line 7359
;7359:		legs.shaderRGBA[3] = 254;
ADDRLP4 0+80+3
CNSTU1 254
ASGNU1
line 7361
;7360:
;7361:		legs.renderfx &= ~RF_RGB_TINT;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
line 7362
;7362:		legs.renderfx &= ~RF_FORCE_ENT_ALPHA;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -1025
BANDI4
ASGNI4
line 7363
;7363:		legs.customShader = cgs.media.playerShieldDamage;
ADDRLP4 0+76
ADDRGP4 cgs+71064+488
INDIRI4
ASGNI4
line 7366
;7364:		
;7365:		//trap_R_AddRefEntityToScene( &legs );
;7366:	}
LABELV $4209
line 7368
;7367:
;7368:	if (cent->currentState.isJediMaster && cg.snap->ps.clientNum != cent->currentState.number)
ADDRLP4 1120
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 1120
INDIRP4
CNSTI4 244
ADDP4
INDIRI4
CNSTI4 0
EQI4 $4226
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
ADDRLP4 1120
INDIRP4
INDIRI4
EQI4 $4226
line 7369
;7369:	{
line 7370
;7370:		legs.shaderRGBA[0] = 100;
ADDRLP4 0+80
CNSTU1 100
ASGNU1
line 7371
;7371:		legs.shaderRGBA[1] = 100;
ADDRLP4 0+80+1
CNSTU1 100
ASGNU1
line 7372
;7372:		legs.shaderRGBA[2] = 255;
ADDRLP4 0+80+2
CNSTU1 255
ASGNU1
line 7374
;7373:
;7374:		legs.renderfx &= ~RF_RGB_TINT;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
line 7375
;7375:		legs.renderfx &= ~RF_FORCE_ENT_ALPHA;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -1025
BANDI4
ASGNI4
line 7376
;7376:		legs.renderfx |= RF_NODEPTH;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 16
BORI4
ASGNI4
line 7377
;7377:		legs.customShader = cgs.media.forceShell;
ADDRLP4 0+76
ADDRGP4 cgs+71064+496
INDIRI4
ASGNI4
line 7381
;7378:		
;7379:		//trap_R_AddRefEntityToScene( &legs );
;7380:
;7381:		legs.renderfx &= ~RF_NODEPTH;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -17
BANDI4
ASGNI4
line 7382
;7382:	}
LABELV $4226
line 7384
;7383:
;7384:	if ((cg.snap->ps.fd.forcePowersActive & (1 << FP_SEE)) && cg.snap->ps.clientNum != cent->currentState.number && cg_auraShell.integer)
ADDRLP4 1124
CNSTI4 0
ASGNI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 892
ADDP4
INDIRI4
CNSTI4 16384
BANDI4
ADDRLP4 1124
INDIRI4
EQI4 $4241
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
ADDRFP4 0
INDIRP4
INDIRI4
EQI4 $4241
ADDRGP4 cg_auraShell+12
INDIRI4
ADDRLP4 1124
INDIRI4
EQI4 $4241
line 7385
;7385:	{
line 7386
;7386:		if (cgs.gametype >= GT_TEAM)
ADDRGP4 cgs+32960
INDIRI4
CNSTI4 5
LTI4 $4246
line 7387
;7387:		{	// A team game
line 7388
;7388:			switch(cgs.clientinfo[ cent->currentState.clientNum ].team)
ADDRLP4 1128
CNSTI4 812
ADDRFP4 0
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+68
ADDP4
INDIRI4
ASGNI4
ADDRLP4 1128
INDIRI4
CNSTI4 1
EQI4 $4254
ADDRLP4 1128
INDIRI4
CNSTI4 2
EQI4 $4260
ADDRGP4 $4249
JUMPV
line 7389
;7389:			{
LABELV $4254
line 7391
;7390:			case TEAM_RED:
;7391:				legs.shaderRGBA[0] = 255;
ADDRLP4 0+80
CNSTU1 255
ASGNU1
line 7392
;7392:				legs.shaderRGBA[1] = 50;
ADDRLP4 0+80+1
CNSTU1 50
ASGNU1
line 7393
;7393:				legs.shaderRGBA[2] = 50;
ADDRLP4 0+80+2
CNSTU1 50
ASGNU1
line 7394
;7394:				break;
ADDRGP4 $4247
JUMPV
LABELV $4260
line 7396
;7395:			case TEAM_BLUE:
;7396:				legs.shaderRGBA[0] = 75;
ADDRLP4 0+80
CNSTU1 75
ASGNU1
line 7397
;7397:				legs.shaderRGBA[1] = 75;
ADDRLP4 0+80+1
CNSTU1 75
ASGNU1
line 7398
;7398:				legs.shaderRGBA[2] = 255;
ADDRLP4 0+80+2
CNSTU1 255
ASGNU1
line 7399
;7399:				break;
ADDRGP4 $4247
JUMPV
LABELV $4249
line 7402
;7400:
;7401:			default:
;7402:				legs.shaderRGBA[0] = 255;
ADDRLP4 0+80
CNSTU1 255
ASGNU1
line 7403
;7403:				legs.shaderRGBA[1] = 255;
ADDRLP4 0+80+1
CNSTU1 255
ASGNU1
line 7404
;7404:				legs.shaderRGBA[2] = 0;
ADDRLP4 0+80+2
CNSTU1 0
ASGNU1
line 7405
;7405:				break;
line 7407
;7406:			}
;7407:		}
ADDRGP4 $4247
JUMPV
LABELV $4246
line 7409
;7408:		else
;7409:		{	// Not a team game
line 7410
;7410:			legs.shaderRGBA[0] = 255;
ADDRLP4 0+80
CNSTU1 255
ASGNU1
line 7411
;7411:			legs.shaderRGBA[1] = 255;
ADDRLP4 0+80+1
CNSTU1 255
ASGNU1
line 7412
;7412:			legs.shaderRGBA[2] = 0;
ADDRLP4 0+80+2
CNSTU1 0
ASGNU1
line 7413
;7413:		}
LABELV $4247
line 7415
;7414:
;7415:/*		if (cg.snap->ps.fd.forcePowerLevel[FP_SEE] <= FORCE_LEVEL_1)
line 7421
;7416:		{
;7417:			legs.renderfx |= RF_MINLIGHT;
;7418:		}
;7419:		else
;7420:*/		{	// See through walls.
;7421:			legs.renderfx |= RF_MINLIGHT | RF_NODEPTH;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 17
BORI4
ASGNI4
line 7423
;7422:
;7423:			if (cg.snap->ps.fd.forcePowerLevel[FP_SEE] < FORCE_LEVEL_2)
ADDRGP4 cg+36
INDIRP4
CNSTI4 1044
ADDP4
INDIRI4
CNSTI4 2
GEI4 $4277
line 7424
;7424:			{ //only level 2+ can see players through walls
line 7425
;7425:				legs.renderfx &= ~RF_NODEPTH;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -17
BANDI4
ASGNI4
line 7426
;7426:			}
LABELV $4277
line 7427
;7427:		}
line 7429
;7428:
;7429:		legs.renderfx &= ~RF_RGB_TINT;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
line 7430
;7430:		legs.renderfx &= ~RF_FORCE_ENT_ALPHA;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -1025
BANDI4
ASGNI4
line 7431
;7431:		legs.customShader = cgs.media.sightShell;
ADDRLP4 0+76
ADDRGP4 cgs+71064+500
INDIRI4
ASGNI4
line 7434
;7432:		
;7433:		//trap_R_AddRefEntityToScene( &legs );
;7434:	}
LABELV $4241
line 7438
;7435:
;7436:	// Electricity
;7437:	//------------------------------------------------
;7438:	if ( cent->currentState.emplacedOwner > cg.time ) 
ADDRFP4 0
INDIRP4
CNSTI4 180
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
LEI4 $4286
line 7439
;7439:	{
line 7440
;7440:		int	dif = cent->currentState.emplacedOwner - cg.time;
ADDRLP4 1128
ADDRFP4 0
INDIRP4
CNSTI4 180
ADDP4
INDIRI4
ADDRGP4 cg+64
INDIRI4
SUBI4
ASGNI4
line 7442
;7441:
;7442:		if ( dif > 0 && random() > 0.4f )
ADDRLP4 1128
INDIRI4
CNSTI4 0
LEI4 $4290
ADDRLP4 1132
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 1132
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
CNSTF4 1053609165
LEF4 $4290
line 7443
;7443:		{
line 7445
;7444:			// fade out over the last 500 ms
;7445:			int brightness = 255;
ADDRLP4 1136
CNSTI4 255
ASGNI4
line 7447
;7446:			
;7447:			if ( dif < 500 )
ADDRLP4 1128
INDIRI4
CNSTI4 500
GEI4 $4292
line 7448
;7448:			{
line 7449
;7449:				brightness = floor((dif - 500.0f) / 500.0f * 255.0f );
ADDRLP4 1140
CNSTF4 1140457472
ASGNF4
CNSTF4 1132396544
ADDRLP4 1128
INDIRI4
CVIF4 4
ADDRLP4 1140
INDIRF4
SUBF4
ADDRLP4 1140
INDIRF4
DIVF4
MULF4
ARGF4
ADDRLP4 1144
ADDRGP4 floor
CALLF4
ASGNF4
ADDRLP4 1136
ADDRLP4 1144
INDIRF4
CVFI4 4
ASGNI4
line 7450
;7450:			}
LABELV $4292
line 7452
;7451:
;7452:			legs.renderfx &= ~RF_FORCE_ENT_ALPHA;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -1025
BANDI4
ASGNI4
line 7453
;7453:			legs.renderfx &= ~RF_MINLIGHT;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -2
BANDI4
ASGNI4
line 7455
;7454:
;7455:			legs.renderfx |= RF_RGB_TINT;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 2048
BORI4
ASGNI4
line 7456
;7456:			legs.shaderRGBA[0] = legs.shaderRGBA[1] = legs.shaderRGBA[2] = brightness;
ADDRLP4 1140
ADDRLP4 1136
INDIRI4
CVIU4 4
CVUU1 4
ASGNU1
ADDRLP4 0+80+2
ADDRLP4 1140
INDIRU1
ASGNU1
ADDRLP4 0+80+1
ADDRLP4 1140
INDIRU1
ASGNU1
ADDRLP4 0+80
ADDRLP4 1140
INDIRU1
ASGNU1
line 7457
;7457:			legs.shaderRGBA[3] = 255;
ADDRLP4 0+80+3
CNSTU1 255
ASGNU1
line 7459
;7458:
;7459:			if ( rand() & 1 )
ADDRLP4 1144
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 1144
INDIRI4
CNSTI4 1
BANDI4
CNSTI4 0
EQI4 $4304
line 7460
;7460:			{
line 7461
;7461:				legs.customShader = cgs.media.electricBodyShader;	
ADDRLP4 0+76
ADDRGP4 cgs+71064+396
INDIRI4
ASGNI4
line 7462
;7462:			}
ADDRGP4 $4305
JUMPV
LABELV $4304
line 7464
;7463:			else
;7464:			{
line 7465
;7465:				legs.customShader = cgs.media.electricBody2Shader;
ADDRLP4 0+76
ADDRGP4 cgs+71064+400
INDIRI4
ASGNI4
line 7466
;7466:			}
LABELV $4305
line 7470
;7467:
;7468:			//trap_R_AddRefEntityToScene( &legs );
;7469:
;7470:			if ( random() > 0.9f )
ADDRLP4 1148
ADDRGP4 rand
CALLI4
ASGNI4
ADDRLP4 1148
INDIRI4
CNSTI4 32767
BANDI4
CVIF4 4
CNSTF4 1191181824
DIVF4
CNSTF4 1063675494
LEF4 $4312
line 7471
;7471:				trap_S_StartSound ( NULL, cent->currentState.number, CHAN_AUTO, cgs.media.crackleSound );
CNSTP4 0
ARGP4
ADDRFP4 0
INDIRP4
INDIRI4
ARGI4
CNSTI4 0
ARGI4
ADDRGP4 cgs+71064+676
INDIRI4
ARGI4
ADDRGP4 trap_S_StartSound
CALLV
pop
LABELV $4312
line 7472
;7472:		}
LABELV $4290
line 7473
;7473:	} 
LABELV $4286
line 7475
;7474:
;7475:	if (cent->currentState.powerups & (1 << PW_SHIELDHIT))
ADDRFP4 0
INDIRP4
CNSTI4 272
ADDP4
INDIRI4
CNSTI4 128
BANDI4
CNSTI4 0
EQI4 $4316
line 7476
;7476:	{
line 7484
;7477:		/*
;7478:		legs.shaderRGBA[0] = legs.shaderRGBA[1] = legs.shaderRGBA[2] = 255.0f * 0.5f;//t;
;7479:		legs.shaderRGBA[3] = 255;
;7480:		legs.renderfx &= ~RF_ALPHA_FADE;
;7481:		legs.renderfx |= RF_RGB_TINT;
;7482:		*/
;7483:
;7484:		legs.shaderRGBA[0] = legs.shaderRGBA[1] = legs.shaderRGBA[2] = Q_irand(1, 255);
CNSTI4 1
ARGI4
CNSTI4 255
ARGI4
ADDRLP4 1128
ADDRGP4 Q_irand
CALLI4
ASGNI4
ADDRLP4 1132
ADDRLP4 1128
INDIRI4
CVIU4 4
CVUU1 4
ASGNU1
ADDRLP4 0+80+2
ADDRLP4 1132
INDIRU1
ASGNU1
ADDRLP4 0+80+1
ADDRLP4 1132
INDIRU1
ASGNU1
ADDRLP4 0+80
ADDRLP4 1132
INDIRU1
ASGNU1
line 7486
;7485:
;7486:		legs.renderfx &= ~RF_FORCE_ENT_ALPHA;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -1025
BANDI4
ASGNI4
line 7487
;7487:		legs.renderfx &= ~RF_MINLIGHT;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -2
BANDI4
ASGNI4
line 7488
;7488:		legs.renderfx &= ~RF_RGB_TINT;
ADDRLP4 0+4
ADDRLP4 0+4
INDIRI4
CNSTI4 -2049
BANDI4
ASGNI4
line 7489
;7489:		legs.customShader = cgs.media.playerShieldDamage;
ADDRLP4 0+76
ADDRGP4 cgs+71064+488
INDIRI4
ASGNI4
line 7492
;7490:		
;7491:		//trap_R_AddRefEntityToScene( &legs );
;7492:	}
LABELV $4316
LABELV $3899
line 7495
;7493:endOfCall:
;7494:	
;7495:	if (cgBoneAnglePostSet.refreshSet)
ADDRGP4 cgBoneAnglePostSet+52
INDIRI4
CNSTI4 0
EQI4 $4329
line 7496
;7496:	{
line 7497
;7497:		trap_G2API_SetBoneAngles(cgBoneAnglePostSet.ghoul2, cgBoneAnglePostSet.modelIndex, cgBoneAnglePostSet.boneName,
ADDRGP4 cgBoneAnglePostSet
INDIRP4
ARGP4
ADDRGP4 cgBoneAnglePostSet+4
INDIRI4
ARGI4
ADDRGP4 cgBoneAnglePostSet+8
INDIRP4
ARGP4
ADDRGP4 cgBoneAnglePostSet+12
ARGP4
ADDRGP4 cgBoneAnglePostSet+24
INDIRI4
ARGI4
ADDRGP4 cgBoneAnglePostSet+28
INDIRI4
ARGI4
ADDRGP4 cgBoneAnglePostSet+32
INDIRI4
ARGI4
ADDRGP4 cgBoneAnglePostSet+36
INDIRI4
ARGI4
ADDRGP4 cgBoneAnglePostSet+40
INDIRP4
ARGP4
ADDRGP4 cgBoneAnglePostSet+44
INDIRI4
ARGI4
ADDRGP4 cgBoneAnglePostSet+48
INDIRI4
ARGI4
ADDRGP4 trap_G2API_SetBoneAngles
CALLI4
pop
line 7501
;7498:			cgBoneAnglePostSet.angles, cgBoneAnglePostSet.flags, cgBoneAnglePostSet.up, cgBoneAnglePostSet.right,
;7499:			cgBoneAnglePostSet.forward, cgBoneAnglePostSet.modelList, cgBoneAnglePostSet.blendTime, cgBoneAnglePostSet.currentTime);
;7500:
;7501:		cgBoneAnglePostSet.refreshSet = qfalse;
ADDRGP4 cgBoneAnglePostSet+52
CNSTI4 0
ASGNI4
line 7502
;7502:	}
LABELV $4329
line 7507
;7503:
;7504:   // adnan
;7505:   // TIE FIGHTER MODEL
;7506:   // assign the model to be drawn...
;7507:   legs.hModel = trap_R_RegisterModel("models/map_objects/imp_detention/tie_fighter.md3");
ADDRGP4 $4344
ARGP4
ADDRLP4 1128
ADDRGP4 trap_R_RegisterModel
CALLI4
ASGNI4
ADDRLP4 0+8
ADDRLP4 1128
INDIRI4
ASGNI4
line 7510
;7508:   //legs.hModel = trap_R_RegisterModel("models/deathstar/deathstar.md3");
;7509:   // assign the skin...
;7510:   legs.customShader = trap_R_RegisterShader("models/map_objects/imp_detention/tie_body_damage");
ADDRGP4 $4346
ARGP4
ADDRLP4 1132
ADDRGP4 trap_R_RegisterShader
CALLI4
ASGNI4
ADDRLP4 0+76
ADDRLP4 1132
INDIRI4
ASGNI4
line 7518
;7511:   //legs.customShader = trap_R_RegisterShader("models/deathstar/deathstar");
;7512:   //legs.customSkin = trap_R_RegisterSkin("models/deathstar/deathstar.skin");
;7513:   // have it point in the correct direction
;7514:   
;7515:   //AnglesToAxis(cg_entities[cent->currentState.clientNum].lerpAngles, legs.axis);
;7516:   //QuaternionFromTieFloats(cg_entities[cent->currentState.clientNum].currentState.tieFloats, &q);
;7517:   //QuaternionFromTieFloats(cg.snap->ps.tieFloats, &q);
;7518:   if(cent->currentState.clientNum == cg.snap->ps.clientNum) {
ADDRFP4 0
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
ADDRGP4 cg+36
INDIRP4
CNSTI4 188
ADDP4
INDIRI4
NEI4 $4347
line 7519
;7519:      QuaternionToAxis(cg.Q, legs.axis);
ADDRLP4 1136
ADDRGP4 cg+168288
INDIRB
ASGNB 16
ADDRLP4 1136
ARGP4
ADDRLP4 0+12
ARGP4
ADDRGP4 QuaternionToAxis
CALLF4
pop
line 7520
;7520:   } else {
ADDRGP4 $4348
JUMPV
LABELV $4347
line 7521
;7521:      QuaternionFromString((char*)CG_ConfigString(CS_QUATERNIONS + cent->currentState.clientNum), &q);
ADDRFP4 0
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
CNSTI4 1054
ADDI4
ARGI4
ADDRLP4 1136
ADDRGP4 CG_ConfigString
CALLP4
ASGNP4
ADDRLP4 1136
INDIRP4
ARGP4
ADDRLP4 868
ARGP4
ADDRGP4 QuaternionFromString
CALLV
pop
line 7523
;7522:      //Com_Printf("%f, %f, %f, %f", q.x, q.y, q.z, q.w);
;7523:      QuaternionToAxis(q, legs.axis);
ADDRLP4 1140
ADDRLP4 868
INDIRB
ASGNB 16
ADDRLP4 1140
ARGP4
ADDRLP4 0+12
ARGP4
ADDRGP4 QuaternionToAxis
CALLF4
pop
line 7524
;7524:   }
LABELV $4348
line 7527
;7525:   
;7526:   // scale the model down...0
;7527:   VectorScale(legs.axis[0], 0.05f, legs.axis[0]);
ADDRLP4 0+12
CNSTF4 1028443341
ADDRLP4 0+12
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+4
CNSTF4 1028443341
ADDRLP4 0+12+4
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+8
CNSTF4 1028443341
ADDRLP4 0+12+8
INDIRF4
MULF4
ASGNF4
line 7528
;7528:   VectorScale(legs.axis[1], 0.05f, legs.axis[1]);
ADDRLP4 0+12+12
CNSTF4 1028443341
ADDRLP4 0+12+12
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+12+4
CNSTF4 1028443341
ADDRLP4 0+12+12+4
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+12+8
CNSTF4 1028443341
ADDRLP4 0+12+12+8
INDIRF4
MULF4
ASGNF4
line 7529
;7529:   VectorScale(legs.axis[2], 0.05f, legs.axis[2]);
ADDRLP4 0+12+24
CNSTF4 1028443341
ADDRLP4 0+12+24
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+24+4
CNSTF4 1028443341
ADDRLP4 0+12+24+4
INDIRF4
MULF4
ASGNF4
ADDRLP4 0+12+24+8
CNSTF4 1028443341
ADDRLP4 0+12+24+8
INDIRF4
MULF4
ASGNF4
line 7531
;7530:   // draw it.
;7531:   trap_R_AddRefEntityToScene( &legs );
ADDRLP4 0
ARGP4
ADDRGP4 trap_R_AddRefEntityToScene
CALLV
pop
line 7532
;7532:}
LABELV $3087
endproc CG_Player 1396 44
export CG_ResetPlayerEntity
proc CG_ResetPlayerEntity 56 20
line 7545
;7533:
;7534:
;7535://=====================================================================
;7536:
;7537:/*
;7538:===============
;7539:CG_ResetPlayerEntity
;7540:
;7541:A player just came into view or teleported, so reset all animation info
;7542:===============
;7543:*/
;7544:void CG_ResetPlayerEntity( centity_t *cent ) 
;7545:{
line 7546
;7546:	cent->errorTime = -99999;		// guarantee no error decay added
ADDRFP4 0
INDIRP4
CNSTI4 860
ADDP4
CNSTI4 -99999
ASGNI4
line 7547
;7547:	cent->extrapolated = qfalse;	
ADDRFP4 0
INDIRP4
CNSTI4 888
ADDP4
CNSTI4 0
ASGNI4
line 7549
;7548:
;7549:	CG_ClearLerpFrame( cent, &cgs.clientinfo[ cent->currentState.clientNum ], &cent->pe.legs, cent->currentState.legsAnim, qfalse);
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 0
INDIRP4
ARGP4
CNSTI4 812
ADDRLP4 0
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
MULI4
ADDRGP4 cgs+43024
ADDP4
ARGP4
ADDRLP4 0
INDIRP4
CNSTI4 644
ADDP4
ARGP4
ADDRLP4 0
INDIRP4
CNSTI4 280
ADDP4
INDIRI4
ARGI4
CNSTI4 0
ARGI4
ADDRGP4 CG_ClearLerpFrame
CALLV
pop
line 7550
;7550:	CG_ClearLerpFrame( cent, &cgs.clientinfo[ cent->currentState.clientNum ], &cent->pe.torso, cent->currentState.torsoAnim, qtrue);
ADDRLP4 4
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
INDIRP4
ARGP4
CNSTI4 812
ADDRLP4 4
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
MULI4
ADDRGP4 cgs+43024
ADDP4
ARGP4
ADDRLP4 4
INDIRP4
CNSTI4 708
ADDP4
ARGP4
ADDRLP4 4
INDIRP4
CNSTI4 284
ADDP4
INDIRI4
ARGI4
CNSTI4 1
ARGI4
ADDRGP4 CG_ClearLerpFrame
CALLV
pop
line 7552
;7551:
;7552:	BG_EvaluateTrajectory( &cent->currentState.pos, cg.time, cent->lerpOrigin );
ADDRLP4 8
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 8
INDIRP4
CNSTI4 12
ADDP4
ARGP4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRLP4 8
INDIRP4
CNSTI4 928
ADDP4
ARGP4
ADDRGP4 BG_EvaluateTrajectory
CALLV
pop
line 7553
;7553:	BG_EvaluateTrajectory( &cent->currentState.apos, cg.time, cent->lerpAngles );
ADDRLP4 12
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 12
INDIRP4
CNSTI4 48
ADDP4
ARGP4
ADDRGP4 cg+64
INDIRI4
ARGI4
ADDRLP4 12
INDIRP4
CNSTI4 940
ADDP4
ARGP4
ADDRGP4 BG_EvaluateTrajectory
CALLV
pop
line 7555
;7554:
;7555:	VectorCopy( cent->lerpOrigin, cent->rawOrigin );
ADDRLP4 16
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 16
INDIRP4
CNSTI4 892
ADDP4
ADDRLP4 16
INDIRP4
CNSTI4 928
ADDP4
INDIRB
ASGNB 12
line 7556
;7556:	VectorCopy( cent->lerpAngles, cent->rawAngles );
ADDRLP4 20
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
CNSTI4 904
ADDP4
ADDRLP4 20
INDIRP4
CNSTI4 940
ADDP4
INDIRB
ASGNB 12
line 7558
;7557:
;7558:	memset( &cent->pe.legs, 0, sizeof( cent->pe.legs ) );
ADDRFP4 0
INDIRP4
CNSTI4 644
ADDP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 64
ARGI4
ADDRGP4 memset
CALLP4
pop
line 7559
;7559:	cent->pe.legs.yawAngle = cent->rawAngles[YAW];
ADDRLP4 24
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 24
INDIRP4
CNSTI4 664
ADDP4
ADDRLP4 24
INDIRP4
CNSTI4 908
ADDP4
INDIRF4
ASGNF4
line 7560
;7560:	cent->pe.legs.yawing = qfalse;
ADDRFP4 0
INDIRP4
CNSTI4 668
ADDP4
CNSTI4 0
ASGNI4
line 7561
;7561:	cent->pe.legs.pitchAngle = 0;
ADDRFP4 0
INDIRP4
CNSTI4 672
ADDP4
CNSTF4 0
ASGNF4
line 7562
;7562:	cent->pe.legs.pitching = qfalse;
ADDRFP4 0
INDIRP4
CNSTI4 676
ADDP4
CNSTI4 0
ASGNI4
line 7564
;7563:
;7564:	memset( &cent->pe.torso, 0, sizeof( cent->pe.legs ) );
ADDRFP4 0
INDIRP4
CNSTI4 708
ADDP4
ARGP4
CNSTI4 0
ARGI4
CNSTI4 64
ARGI4
ADDRGP4 memset
CALLP4
pop
line 7565
;7565:	cent->pe.torso.yawAngle = cent->rawAngles[YAW];
ADDRLP4 28
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 28
INDIRP4
CNSTI4 728
ADDP4
ADDRLP4 28
INDIRP4
CNSTI4 908
ADDP4
INDIRF4
ASGNF4
line 7566
;7566:	cent->pe.torso.yawing = qfalse;
ADDRFP4 0
INDIRP4
CNSTI4 732
ADDP4
CNSTI4 0
ASGNI4
line 7567
;7567:	cent->pe.torso.pitchAngle = cent->rawAngles[PITCH];
ADDRLP4 32
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 32
INDIRP4
CNSTI4 736
ADDP4
ADDRLP4 32
INDIRP4
CNSTI4 904
ADDP4
INDIRF4
ASGNF4
line 7568
;7568:	cent->pe.torso.pitching = qfalse;
ADDRFP4 0
INDIRP4
CNSTI4 740
ADDP4
CNSTI4 0
ASGNI4
line 7570
;7569:
;7570:	if ((cent->ghoul2 == NULL) && trap_G2_HaveWeGhoul2Models(cgs.clientinfo[cent->currentState.clientNum].ghoul2Model))
ADDRLP4 36
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 36
INDIRP4
CNSTI4 952
ADDP4
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $4400
CNSTI4 812
ADDRLP4 36
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+504
ADDP4
INDIRP4
ARGP4
ADDRLP4 40
ADDRGP4 trap_G2_HaveWeGhoul2Models
CALLI4
ASGNI4
ADDRLP4 40
INDIRI4
CNSTI4 0
EQI4 $4400
line 7571
;7571:	{
line 7572
;7572:		trap_G2API_DuplicateGhoul2Instance(cgs.clientinfo[cent->currentState.clientNum].ghoul2Model, &cent->ghoul2);
ADDRLP4 44
ADDRFP4 0
INDIRP4
ASGNP4
CNSTI4 812
ADDRLP4 44
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+504
ADDP4
INDIRP4
ARGP4
ADDRLP4 44
INDIRP4
CNSTI4 952
ADDP4
ARGP4
ADDRGP4 trap_G2API_DuplicateGhoul2Instance
CALLV
pop
line 7573
;7573:		CG_CopyG2WeaponInstance(cent->currentState.weapon, cgs.clientinfo[cent->currentState.clientNum].ghoul2Model);
ADDRLP4 48
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 48
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
ARGI4
CNSTI4 812
ADDRLP4 48
INDIRP4
CNSTI4 220
ADDP4
INDIRI4
MULI4
ADDRGP4 cgs+43024+504
ADDP4
INDIRP4
ARGP4
ADDRGP4 CG_CopyG2WeaponInstance
CALLV
pop
line 7574
;7574:		cent->weapon = cent->currentState.weapon;
ADDRLP4 52
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 52
INDIRP4
CNSTI4 956
ADDP4
ADDRLP4 52
INDIRP4
CNSTI4 276
ADDP4
INDIRI4
ASGNI4
line 7575
;7575:	}
LABELV $4400
line 7577
;7576:
;7577:	if ( cg_debugPosition.integer ) {
ADDRGP4 cg_debugPosition+12
INDIRI4
CNSTI4 0
EQI4 $4408
line 7578
;7578:		CG_Printf("%i ResetPlayerEntity yaw=%i\n", cent->currentState.number, cent->pe.torso.yawAngle );
ADDRGP4 $4411
ARGP4
ADDRLP4 44
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 44
INDIRP4
INDIRI4
ARGI4
ADDRLP4 44
INDIRP4
CNSTI4 728
ADDP4
INDIRF4
ARGF4
ADDRGP4 CG_Printf
CALLV
pop
line 7579
;7579:	}
LABELV $4408
line 7580
;7580:}
LABELV $4395
endproc CG_ResetPlayerEntity 56 20
import forceHolocronModels
import CG_AllocMark
bss
export cgBoneAnglePostSet
align 4
LABELV cgBoneAnglePostSet
skip 56
import animTable
import g2WeaponInstances
import CG_CheckPlayerG2Weapons
import CG_CopyG2WeaponInstance
import CG_ShutDownG2Weapons
import CG_InitG2Weapons
import CG_CreateBBRefEnts
import CG_SetGhoul2Info
import CG_Init_CGents
import CG_Init_CG
import trap_G2API_SetNewOrigin
import trap_G2API_SetSurfaceOnOff
import trap_G2API_SetRootSurface
import trap_G2API_SetBoneAnim
import trap_G2API_GetGLAName
import trap_G2API_SetBoneAngles
import trap_G2API_CleanGhoul2Models
import trap_G2API_SetBoltInfo
import trap_G2API_AddBolt
import trap_G2API_RemoveGhoul2Model
import trap_G2API_HasGhoul2ModelOnIndex
import trap_G2API_DuplicateGhoul2Instance
import trap_G2API_CopySpecificGhoul2Model
import trap_G2API_CopyGhoul2Instance
import trap_G2API_GiveMeVectorFromMatrix
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 trap_G2API_CollisionDetect
import FX_ForceDrained
import FX_TieLaserAltFireThink
import FX_TieLaserWeaponHitPlayer
import FX_TieLaserWeaponHitWall
import FX_TieLaserProjectileThink
import FX_BlasterWeaponHitPlayer
import FX_BlasterWeaponHitWall
import FX_BlasterAltFireThink
import FX_BlasterProjectileThink
import FX_BryarAltHitPlayer
import FX_BryarHitPlayer
import FX_BryarAltHitWall
import FX_BryarHitWall
import CG_Spark
import FX_TurretHitPlayer
import FX_TurretHitWall
import FX_TurretProjectileThink
import CG_NewParticleArea
import initparticles
import CG_GetStripEdString
import CG_ParticleExplosion
import CG_ParticleMisc
import CG_ParticleDust
import CG_ParticleSparks
import CG_ParticleBulletDebris
import CG_ParticleSnowFlurry
import CG_AddParticleShrapnel
import CG_ParticleSmoke
import CG_ParticleSnow
import CG_AddParticles
import CG_ClearParticles
import trap_ROFF_Purge_Ent
import trap_ROFF_Play
import trap_ROFF_Cache
import trap_ROFF_UpdateEntities
import trap_ROFF_Clean
import trap_CG_RegisterSharedMemory
import trap_SP_GetStringTextString
import trap_SP_Print
import trap_FX_AddSprite
import trap_FX_AddPrimitive
import trap_FX_AddBezier
import trap_FX_AddPoly
import trap_FX_AdjustTime
import trap_FX_FreeSystem
import trap_FX_InitSystem
import trap_FX_AddScheduledEffects
import trap_FX_PlayBoltedEffectID
import trap_FX_PlayEntityEffectID
import trap_FX_PlayEffectID
import trap_FX_PlaySimpleEffectID
import trap_FX_PlayEntityEffect
import trap_FX_PlayEffect
import trap_FX_PlaySimpleEffect
import trap_FX_RegisterEffect
import trap_R_inPVS
import trap_GetEntityToken
import trap_getCameraInfo
import trap_startCamera
import trap_loadCamera
import trap_SnapVector
import trap_CIN_SetExtents
import trap_CIN_DrawCinematic
import trap_CIN_RunCinematic
import trap_CIN_StopCinematic
import trap_CIN_PlayCinematic
import BG_CycleForce
import BG_ProperForceIndex
import BG_CycleInven
import trap_Key_GetKey
import trap_Key_SetCatcher
import trap_Key_GetCatcher
import trap_Key_IsDown
import trap_MemoryRemaining
import testPrintFloat
import testPrintInt
import trap_OpenUIMenu
import trap_SetClientTurnExtent
import trap_SetClientForceAngle
import trap_SetUserCmdValue
import trap_GetUserCmd
import trap_GetCurrentCmdNumber
import trap_GetServerCommand
import trap_GetSnapshot
import trap_GetCurrentSnapshotNumber
import trap_GetGameState
import trap_GetGlconfig
import trap_FX_AddLine
import trap_R_GetBModelVerts
import trap_R_SetLightStyle
import trap_R_GetLightStyle
import trap_R_RemapShader
import trap_R_DrawRotatePic2
import trap_R_DrawRotatePic
import trap_R_LerpTag
import trap_R_ModelBounds
import trap_R_DrawStretchPic
import trap_R_SetColor
import trap_R_RenderScene
import trap_R_LightForPoint
import trap_R_AddLightToScene
import trap_R_AddPolysToScene
import trap_R_AddPolyToScene
import trap_R_AddRefEntityToScene
import trap_R_ClearScene
import trap_AnyLanguage_ReadCharFromString
import trap_Language_UsesSpaces
import trap_Language_IsAsian
import trap_R_Font_DrawString
import trap_R_Font_HeightPixels
import trap_R_Font_StrLenChars
import trap_R_Font_StrLenPixels
import trap_R_RegisterFont
import trap_R_RegisterShaderNoMip
import trap_R_RegisterShader
import trap_R_RegisterSkin
import trap_R_RegisterModel
import trap_R_LoadWorldMap
import trap_S_StopBackgroundTrack
import trap_S_StartBackgroundTrack
import trap_S_RegisterSound
import trap_S_Respatialize
import trap_S_UpdateEntityPosition
import trap_S_AddRealLoopingSound
import trap_S_AddLoopingSound
import trap_S_ClearLoopingSounds
import trap_S_StartLocalSound
import trap_S_StopLoopingSound
import trap_S_StartSound
import trap_S_MuteSound
import trap_CM_MarkFragments
import trap_CM_TransformedBoxTrace
import trap_CM_BoxTrace
import trap_CM_TransformedPointContents
import trap_CM_PointContents
import trap_CM_TempBoxModel
import trap_CM_InlineModel
import trap_CM_NumInlineModels
import trap_CM_LoadMap
import trap_UpdateScreen
import trap_SendClientCommand
import trap_AddCommand
import trap_SendConsoleCommand
import trap_FS_FCloseFile
import trap_FS_Write
import trap_FS_Read
import trap_FS_FOpenFile
import trap_Args
import trap_Argv
import trap_Argc
import trap_Cvar_VariableStringBuffer
import trap_Cvar_Set
import trap_Cvar_Update
import trap_Cvar_Register
import trap_Milliseconds
import trap_Error
import trap_Print
import CG_SagaObjectiveCompleted
import CG_SagaRoundOver
import CG_InitSagaMode
import CG_CheckChangedPredictableEvents
import CG_TransitionPlayerState
import CG_Respawn
import CG_PlayBufferedVoiceChats
import CG_VoiceChatLocal
import CG_ShaderStateChanged
import CG_LoadVoiceChats
import CG_SetConfigValues
import CG_ParseServerinfo
import CG_ExecuteNewServerCommands
import CG_InitConsoleCommands
import CG_ConsoleCommand
import CG_DrawOldTourneyScoreboard
import CG_DrawOldScoreboard
import CG_DrawInformation
import CG_LoadingClient
import CG_LoadingItem
import CG_LoadingString
import CG_ProcessSnapshots
import CG_InitGlass
import CG_TestLine
import CG_SurfaceExplosion
import CG_MakeExplosion
import CG_Bleed
import CG_ScorePlum
import CG_CreateDebris
import CG_GlassShatter
import CG_BubbleTrail
import CG_SmokePuff
import CG_AddLocalEntities
import CG_AllocLocalEntity
import CG_InitLocalEntities
import CG_ImpactMark
import CG_AddMarks
import CG_InitMarkPolys
import CG_OutOfAmmoChange
import CG_DrawIconBackground
import CG_DrawWeaponSelect
import CG_AddPlayerWeapon
import CG_AddViewWeapon
import CG_MissileHitPlayer
import CG_MissileHitWall
import CG_FireWeapon
import CG_RegisterItemVisuals
import CG_RegisterWeapon
import CG_Weapon_f
import CG_PrevWeapon_f
import CG_NextWeapon_f
import CG_GetClientWeaponMuzzleBoltPoint
import TurretClientRun
import ScaleModelAxis
import CG_PositionRotatedEntityOnTag
import CG_PositionEntityOnTag
import CG_AdjustPositionForMover
import CG_Beam
import CG_ManualEntityRender
import CG_AddPacketEntities
import CG_SetEntitySoundPosition
import CG_ReattachLimb
import CG_PainEvent
import CG_EntityEvent
import CG_PlaceString
import CG_CheckEvents
import CG_PredictPlayerState
import CG_Trace
import CG_PointContents
import CG_BuildSolidList
import CG_StatusHandle
import CG_OtherTeamHasFlag
import CG_YourTeamHasFlag
import CG_GameTypeString
import CG_CheckOrderPending
import CG_Text_PaintChar
import CG_Draw3DModel
import CG_GetKillerText
import CG_GetGameStatusText
import CG_GetTeamColor
import CG_InitTeamChat
import CG_SetPrintString
import CG_ShowResponseHead
import CG_DeferMenuScript
import CG_RunMenuScript
import CG_OwnerDrawVisible
import CG_GetValue
import CG_SelectNextPlayer
import CG_SelectPrevPlayer
import CG_Text_Height
import CG_Text_Width
import CG_Text_Paint
import CG_OwnerDraw
import CG_DrawTeamBackground
import CG_DrawFlagModel
import CG_DrawActive
import CG_DrawHead
import CG_CenterPrint
import CG_AddLagometerSnapshotInfo
import CG_AddLagometerFrameInfo
import teamChat2
import teamChat1
import systemChat
import drawTeamOverlayModificationCount
import numSortedTeamPlayers
import sortedTeamPlayers
import CG_DrawTopBottom
import CG_DrawSides
import CG_DrawRect
import UI_DrawScaledProportionalString
import UI_DrawProportionalString
import CG_GetColorForHealth
import CG_ColorForHealth
import CG_TileClear
import CG_TeamColor
import CG_FadeColor
import CG_DrawStrlen
import CG_DrawSmallStringColor
import CG_DrawSmallString
import CG_DrawBigStringColor
import CG_DrawBigString
import CG_DrawStringExt
import CG_DrawNumField
import CG_DrawString
import CG_DrawRotatePic2
import CG_DrawRotatePic
import CG_DrawPic
import CG_FillRect
import CG_TestModelAnimate_f
import CG_TestModelSetAnglespost_f
import CG_TestModelSetAnglespre_f
import CG_ListModelBones_f
import CG_ListModelSurfaces_f
import CG_TestModelSurfaceOnOff_f
import CG_TestG2Model_f
import CG_DrawActiveFrame
import CG_AddBufferedSound
import CG_ZoomUp_f
import CG_ZoomDown_f
import CG_TestModelPrevSkin_f
import CG_TestModelNextSkin_f
import CG_TestModelPrevFrame_f
import CG_TestModelNextFrame_f
import CG_TestGun_f
import CG_TestModel_f
import CG_PrevForcePower_f
import CG_NextForcePower_f
import CG_PrevInventory_f
import CG_NextInventory_f
import CG_BuildSpectatorString
import CG_SetScoreSelection
import CG_RankRunFrame
import CG_EventHandling
import CG_MouseEvent
import CG_KeyEvent
import CG_LoadMenus
import CG_LastAttacker
import CG_CrosshairPlayer
import CG_UpdateCvars
import CG_StartMusic
import CG_Error
import CG_Printf
import CG_Argv
import CG_ConfigString
import cg_followCamTransition
import cg_followCam
import cg_roll
import cg_throttle
import cg_debugBB
import ui_myteam
import cg_recordSPDemoName
import cg_recordSPDemo
import cg_singlePlayerActive
import cg_enableBreath
import cg_enableDust
import cg_singlePlayer
import cg_currentSelectedPlayerName
import cg_currentSelectedPlayer
import cg_blueTeamName
import cg_redTeamName
import cg_trueLightning
import cg_noProjectileTrail
import cg_noTaunt
import cg_bigFont
import cg_smallFont
import cg_cameraMode
import cg_timescale
import cg_timescaleFadeSpeed
import cg_timescaleFadeEnd
import cg_cameraOrbitDelay
import cg_cameraOrbit
import pmove_msec
import pmove_fixed
import cg_smoothClients
import cg_hudFiles
import cg_scorePlum
import cg_noVoiceText
import cg_noVoiceChats
import cg_teamChatsOnly
import cg_drawFriend
import cg_deferPlayers
import cg_predictItems
import cg_blood
import cg_paused
import cg_buildScript
import cg_forceModel
import cg_stats
import cg_teamChatHeight
import cg_teamChatTime
import cg_synchronousClients
import cg_drawEnemyInfo
import cg_lagometer
import cg_stereoSeparation
import cg_thirdPersonHorzOffset
import cg_thirdPersonAlpha
import cg_thirdPersonTargetDamp
import cg_thirdPersonCameraDamp
import cg_thirdPersonVertOffset
import cg_thirdPersonPitchOffset
import cg_thirdPersonAngle
import cg_thirdPersonRange
import cg_thirdPerson
import cg_dismember
import cg_animBlend
import cg_auraShell
import cg_speedTrail
import cg_duelHeadAngles
import cg_saberTrail
import cg_saberContact
import cg_saberDynamicMarkTime
import cg_saberDynamicMarks
import cg_fpls
import cg_saberModelTraceEffect
import cg_oldPainSounds
import cg_swingAngles
import cg_zoomFov
import cg_fov
import cg_simpleItems
import cg_ignore
import cg_autoswitch
import cg_tracerLength
import cg_tracerWidth
import cg_tracerChance
import cg_viewsize
import cg_drawGun
import cg_gun_z
import cg_gun_y
import cg_gun_x
import cg_gun_frame
import cg_addMarks
import cg_footsteps
import cg_showmiss
import cg_noPlayerAnims
import cg_nopredict
import cg_errorDecay
import cg_debugEvents
import cg_debugPosition
import cg_debugAnim
import cg_animSpeed
import cg_draw2D
import cg_drawStatus
import cg_crosshairHealth
import cg_crosshairSize
import cg_crosshairY
import cg_crosshairX
import cg_teamOverlayUserinfo
import cg_drawTeamOverlay
import cg_drawRewards
import cg_dynamicCrosshair
import cg_drawScores
import cg_drawCrosshairNames
import cg_drawCrosshair
import cg_drawAmmoWarning
import cg_drawIcons
import cg_draw3dIcons
import cg_drawSnapshot
import cg_drawFPS
import cg_drawTimer
import cg_shadows
import cg_bobroll
import cg_bobpitch
import cg_bobup
import cg_runroll
import cg_runpitch
import cg_centertime
import cg_vehicleTemplates
import cg_vehicles
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 cg_markPolys
import cg_items
import cg_weapons
import cg_entities
import cg
import cgs
import CGCam_SetMusicMult
import CGCam_Shake
import cgScreenEffects
import ammoTicPos
import forceTicPos
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 $4411
byte 1 37
byte 1 105
byte 1 32
byte 1 82
byte 1 101
byte 1 115
byte 1 101
byte 1 116
byte 1 80
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 69
byte 1 110
byte 1 116
byte 1 105
byte 1 116
byte 1 121
byte 1 32
byte 1 121
byte 1 97
byte 1 119
byte 1 61
byte 1 37
byte 1 105
byte 1 10
byte 1 0
align 1
LABELV $4346
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 109
byte 1 97
byte 1 112
byte 1 95
byte 1 111
byte 1 98
byte 1 106
byte 1 101
byte 1 99
byte 1 116
byte 1 115
byte 1 47
byte 1 105
byte 1 109
byte 1 112
byte 1 95
byte 1 100
byte 1 101
byte 1 116
byte 1 101
byte 1 110
byte 1 116
byte 1 105
byte 1 111
byte 1 110
byte 1 47
byte 1 116
byte 1 105
byte 1 101
byte 1 95
byte 1 98
byte 1 111
byte 1 100
byte 1 121
byte 1 95
byte 1 100
byte 1 97
byte 1 109
byte 1 97
byte 1 103
byte 1 101
byte 1 0
align 1
LABELV $4344
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 109
byte 1 97
byte 1 112
byte 1 95
byte 1 111
byte 1 98
byte 1 106
byte 1 101
byte 1 99
byte 1 116
byte 1 115
byte 1 47
byte 1 105
byte 1 109
byte 1 112
byte 1 95
byte 1 100
byte 1 101
byte 1 116
byte 1 101
byte 1 110
byte 1 116
byte 1 105
byte 1 111
byte 1 110
byte 1 47
byte 1 116
byte 1 105
byte 1 101
byte 1 95
byte 1 102
byte 1 105
byte 1 103
byte 1 104
byte 1 116
byte 1 101
byte 1 114
byte 1 46
byte 1 109
byte 1 100
byte 1 51
byte 1 0
align 1
LABELV $3909
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 50
byte 1 47
byte 1 115
byte 1 97
byte 1 98
byte 1 101
byte 1 114
byte 1 47
byte 1 115
byte 1 97
byte 1 98
byte 1 101
byte 1 114
byte 1 95
byte 1 119
byte 1 46
byte 1 103
byte 1 108
byte 1 109
byte 1 0
align 1
LABELV $3908
byte 1 42
byte 1 102
byte 1 108
byte 1 97
byte 1 115
byte 1 104
byte 1 0
align 1
LABELV $3892
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 115
byte 1 97
byte 1 98
byte 1 101
byte 1 114
byte 1 47
byte 1 115
byte 1 97
byte 1 98
byte 1 101
byte 1 114
byte 1 104
byte 1 117
byte 1 109
byte 1 49
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $3681
byte 1 102
byte 1 111
byte 1 114
byte 1 99
byte 1 101
byte 1 47
byte 1 99
byte 1 111
byte 1 110
byte 1 102
byte 1 117
byte 1 115
byte 1 105
byte 1 111
byte 1 110
byte 1 46
byte 1 101
byte 1 102
byte 1 120
byte 1 0
align 1
LABELV $3606
byte 1 112
byte 1 111
byte 1 119
byte 1 101
byte 1 114
byte 1 117
byte 1 112
byte 1 115
byte 1 47
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 115
byte 1 104
byte 1 101
byte 1 108
byte 1 108
byte 1 0
align 1
LABELV $3545
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 98
byte 1 97
byte 1 116
byte 1 111
byte 1 110
byte 1 47
byte 1 105
byte 1 100
byte 1 108
byte 1 101
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $3530
byte 1 103
byte 1 102
byte 1 120
byte 1 47
byte 1 109
byte 1 105
byte 1 115
byte 1 99
byte 1 47
byte 1 114
byte 1 101
byte 1 100
byte 1 95
byte 1 112
byte 1 111
byte 1 114
byte 1 116
byte 1 97
byte 1 115
byte 1 104
byte 1 105
byte 1 101
byte 1 108
byte 1 100
byte 1 0
align 1
LABELV $3511
byte 1 108
byte 1 95
byte 1 97
byte 1 114
byte 1 109
byte 1 95
byte 1 99
byte 1 97
byte 1 112
byte 1 95
byte 1 116
byte 1 111
byte 1 114
byte 1 115
byte 1 111
byte 1 95
byte 1 111
byte 1 102
byte 1 102
byte 1 0
align 1
LABELV $3510
byte 1 108
byte 1 95
byte 1 97
byte 1 114
byte 1 109
byte 1 0
align 1
LABELV $3509
byte 1 108
byte 1 114
byte 1 97
byte 1 100
byte 1 105
byte 1 117
byte 1 115
byte 1 0
align 1
LABELV $3344
byte 1 48
byte 1 0
align 1
LABELV $3343
byte 1 99
byte 1 103
byte 1 95
byte 1 102
byte 1 112
byte 1 108
byte 1 115
byte 1 0
align 1
LABELV $3316
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 105
byte 1 116
byte 1 101
byte 1 109
byte 1 115
byte 1 47
byte 1 114
byte 1 101
byte 1 109
byte 1 111
byte 1 116
byte 1 101
byte 1 46
byte 1 109
byte 1 100
byte 1 51
byte 1 0
align 1
LABELV $3200
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 115
byte 1 97
byte 1 98
byte 1 101
byte 1 114
byte 1 47
byte 1 115
byte 1 97
byte 1 98
byte 1 101
byte 1 114
byte 1 111
byte 1 110
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $3197
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 115
byte 1 97
byte 1 98
byte 1 101
byte 1 114
byte 1 47
byte 1 115
byte 1 97
byte 1 98
byte 1 101
byte 1 114
byte 1 111
byte 1 102
byte 1 102
byte 1 113
byte 1 117
byte 1 105
byte 1 99
byte 1 107
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $3093
byte 1 66
byte 1 97
byte 1 100
byte 1 32
byte 1 99
byte 1 108
byte 1 105
byte 1 101
byte 1 110
byte 1 116
byte 1 78
byte 1 117
byte 1 109
byte 1 32
byte 1 111
byte 1 110
byte 1 32
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 32
byte 1 101
byte 1 110
byte 1 116
byte 1 105
byte 1 116
byte 1 121
byte 1 0
align 1
LABELV $3064
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 115
byte 1 47
byte 1 107
byte 1 121
byte 1 108
byte 1 101
byte 1 47
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 46
byte 1 103
byte 1 108
byte 1 109
byte 1 0
align 1
LABELV $3063
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 115
byte 1 47
byte 1 107
byte 1 121
byte 1 108
byte 1 101
byte 1 47
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 95
byte 1 102
byte 1 112
byte 1 108
byte 1 115
byte 1 50
byte 1 46
byte 1 115
byte 1 107
byte 1 105
byte 1 110
byte 1 0
align 1
LABELV $2527
byte 1 103
byte 1 102
byte 1 120
byte 1 47
byte 1 109
byte 1 105
byte 1 115
byte 1 99
byte 1 47
byte 1 101
byte 1 108
byte 1 101
byte 1 99
byte 1 116
byte 1 114
byte 1 105
byte 1 99
byte 1 50
byte 1 0
align 1
LABELV $2130
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 119
byte 1 101
byte 1 97
byte 1 112
byte 1 111
byte 1 110
byte 1 115
byte 1 47
byte 1 115
byte 1 97
byte 1 98
byte 1 101
byte 1 114
byte 1 47
byte 1 115
byte 1 97
byte 1 98
byte 1 101
byte 1 114
byte 1 104
byte 1 105
byte 1 116
byte 1 119
byte 1 97
byte 1 108
byte 1 108
byte 1 37
byte 1 105
byte 1 0
align 1
LABELV $2104
byte 1 115
byte 1 97
byte 1 98
byte 1 101
byte 1 114
byte 1 47
byte 1 115
byte 1 112
byte 1 97
byte 1 114
byte 1 107
byte 1 46
byte 1 101
byte 1 102
byte 1 120
byte 1 0
align 1
LABELV $1988
byte 1 115
byte 1 97
byte 1 98
byte 1 101
byte 1 114
byte 1 47
byte 1 98
byte 1 108
byte 1 111
byte 1 111
byte 1 100
byte 1 95
byte 1 115
byte 1 112
byte 1 97
byte 1 114
byte 1 107
byte 1 115
byte 1 46
byte 1 101
byte 1 102
byte 1 120
byte 1 0
align 1
LABELV $1939
byte 1 103
byte 1 102
byte 1 120
byte 1 47
byte 1 101
byte 1 102
byte 1 102
byte 1 101
byte 1 99
byte 1 116
byte 1 115
byte 1 47
byte 1 115
byte 1 97
byte 1 98
byte 1 101
byte 1 114
byte 1 68
byte 1 97
byte 1 109
byte 1 97
byte 1 103
byte 1 101
byte 1 71
byte 1 108
byte 1 111
byte 1 119
byte 1 0
align 1
LABELV $1540
byte 1 103
byte 1 102
byte 1 120
byte 1 47
byte 1 101
byte 1 102
byte 1 102
byte 1 101
byte 1 99
byte 1 116
byte 1 115
byte 1 47
byte 1 102
byte 1 111
byte 1 114
byte 1 99
byte 1 101
byte 1 80
byte 1 117
byte 1 115
byte 1 104
byte 1 0
align 1
LABELV $1205
byte 1 99
byte 1 101
byte 1 114
byte 1 118
byte 1 105
byte 1 99
byte 1 97
byte 1 108
byte 1 0
align 1
LABELV $1173
byte 1 116
byte 1 104
byte 1 111
byte 1 114
byte 1 97
byte 1 99
byte 1 105
byte 1 99
byte 1 0
align 1
LABELV $1101
byte 1 66
byte 1 97
byte 1 100
byte 1 32
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 32
byte 1 109
byte 1 111
byte 1 118
byte 1 101
byte 1 109
byte 1 101
byte 1 110
byte 1 116
byte 1 32
byte 1 97
byte 1 110
byte 1 103
byte 1 108
byte 1 101
byte 1 0
align 1
LABELV $949
byte 1 67
byte 1 108
byte 1 97
byte 1 109
byte 1 112
byte 1 32
byte 1 108
byte 1 102
byte 1 45
byte 1 62
byte 1 102
byte 1 114
byte 1 97
byte 1 109
byte 1 101
byte 1 84
byte 1 105
byte 1 109
byte 1 101
byte 1 10
byte 1 0
align 1
LABELV $756
byte 1 37
byte 1 100
byte 1 58
byte 1 32
byte 1 37
byte 1 100
byte 1 32
byte 1 65
byte 1 110
byte 1 105
byte 1 109
byte 1 58
byte 1 32
byte 1 37
byte 1 105
byte 1 44
byte 1 32
byte 1 39
byte 1 37
byte 1 115
byte 1 39
byte 1 10
byte 1 0
align 1
LABELV $749
byte 1 66
byte 1 97
byte 1 100
byte 1 32
byte 1 97
byte 1 110
byte 1 105
byte 1 109
byte 1 97
byte 1 116
byte 1 105
byte 1 111
byte 1 110
byte 1 32
byte 1 110
byte 1 117
byte 1 109
byte 1 98
byte 1 101
byte 1 114
byte 1 58
byte 1 32
byte 1 37
byte 1 105
byte 1 0
align 1
LABELV $729
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 99
byte 1 104
byte 1 97
byte 1 114
byte 1 115
byte 1 47
byte 1 97
byte 1 116
byte 1 115
byte 1 116
byte 1 47
byte 1 65
byte 1 84
byte 1 83
byte 1 84
byte 1 115
byte 1 116
byte 1 97
byte 1 114
byte 1 116
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $708
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 99
byte 1 104
byte 1 97
byte 1 114
byte 1 115
byte 1 47
byte 1 97
byte 1 116
byte 1 115
byte 1 116
byte 1 47
byte 1 65
byte 1 84
byte 1 83
byte 1 84
byte 1 99
byte 1 114
byte 1 97
byte 1 115
byte 1 104
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $702
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 99
byte 1 104
byte 1 97
byte 1 114
byte 1 115
byte 1 47
byte 1 97
byte 1 116
byte 1 115
byte 1 116
byte 1 47
byte 1 65
byte 1 84
byte 1 83
byte 1 84
byte 1 115
byte 1 116
byte 1 101
byte 1 112
byte 1 50
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $701
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 99
byte 1 104
byte 1 97
byte 1 114
byte 1 115
byte 1 47
byte 1 97
byte 1 116
byte 1 115
byte 1 116
byte 1 47
byte 1 65
byte 1 84
byte 1 83
byte 1 84
byte 1 115
byte 1 116
byte 1 101
byte 1 112
byte 1 49
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $621
byte 1 77
byte 1 101
byte 1 109
byte 1 111
byte 1 114
byte 1 121
byte 1 32
byte 1 105
byte 1 115
byte 1 32
byte 1 108
byte 1 111
byte 1 119
byte 1 46
byte 1 32
byte 1 32
byte 1 85
byte 1 115
byte 1 105
byte 1 110
byte 1 103
byte 1 32
byte 1 100
byte 1 101
byte 1 102
byte 1 101
byte 1 114
byte 1 114
byte 1 101
byte 1 100
byte 1 32
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 46
byte 1 10
byte 1 0
align 1
LABELV $588
byte 1 102
byte 1 111
byte 1 114
byte 1 99
byte 1 101
byte 1 112
byte 1 111
byte 1 119
byte 1 101
byte 1 114
byte 1 115
byte 1 0
align 1
LABELV $555
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 0
align 1
LABELV $553
byte 1 103
byte 1 95
byte 1 98
byte 1 108
byte 1 117
byte 1 101
byte 1 116
byte 1 101
byte 1 97
byte 1 109
byte 1 0
align 1
LABELV $551
byte 1 103
byte 1 95
byte 1 114
byte 1 101
byte 1 100
byte 1 116
byte 1 101
byte 1 97
byte 1 109
byte 1 0
align 1
LABELV $549
byte 1 116
byte 1 108
byte 1 0
align 1
LABELV $547
byte 1 116
byte 1 116
byte 1 0
align 1
LABELV $545
byte 1 116
byte 1 0
align 1
LABELV $543
byte 1 108
byte 1 0
align 1
LABELV $541
byte 1 119
byte 1 0
align 1
LABELV $539
byte 1 104
byte 1 99
byte 1 0
align 1
LABELV $537
byte 1 115
byte 1 107
byte 1 105
byte 1 108
byte 1 108
byte 1 0
align 1
LABELV $535
byte 1 99
byte 1 50
byte 1 0
align 1
LABELV $532
byte 1 99
byte 1 49
byte 1 0
align 1
LABELV $529
byte 1 110
byte 1 0
align 1
LABELV $522
byte 1 67
byte 1 71
byte 1 95
byte 1 83
byte 1 101
byte 1 116
byte 1 68
byte 1 101
byte 1 102
byte 1 101
byte 1 114
byte 1 114
byte 1 101
byte 1 100
byte 1 67
byte 1 108
byte 1 105
byte 1 101
byte 1 110
byte 1 116
byte 1 73
byte 1 110
byte 1 102
byte 1 111
byte 1 58
byte 1 32
byte 1 110
byte 1 111
byte 1 32
byte 1 118
byte 1 97
byte 1 108
byte 1 105
byte 1 100
byte 1 32
byte 1 99
byte 1 108
byte 1 105
byte 1 101
byte 1 110
byte 1 116
byte 1 115
byte 1 33
byte 1 10
byte 1 0
align 1
LABELV $445
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 99
byte 1 104
byte 1 97
byte 1 114
byte 1 115
byte 1 47
byte 1 37
byte 1 115
byte 1 47
byte 1 109
byte 1 105
byte 1 115
byte 1 99
byte 1 47
byte 1 37
byte 1 115
byte 1 0
align 1
LABELV $442
byte 1 99
byte 1 104
byte 1 97
byte 1 114
byte 1 115
byte 1 47
byte 1 109
byte 1 112
byte 1 95
byte 1 103
byte 1 101
byte 1 110
byte 1 101
byte 1 114
byte 1 105
byte 1 99
byte 1 95
byte 1 102
byte 1 101
byte 1 109
byte 1 97
byte 1 108
byte 1 101
byte 1 47
byte 1 109
byte 1 105
byte 1 115
byte 1 99
byte 1 0
align 1
LABELV $437
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 47
byte 1 37
byte 1 115
byte 1 47
byte 1 37
byte 1 115
byte 1 0
align 1
LABELV $434
byte 1 37
byte 1 115
byte 1 0
align 1
LABELV $414
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 115
byte 1 47
byte 1 37
byte 1 115
byte 1 47
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 115
byte 1 95
byte 1 37
byte 1 115
byte 1 46
byte 1 99
byte 1 102
byte 1 103
byte 1 0
align 1
LABELV $413
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 115
byte 1 47
byte 1 37
byte 1 115
byte 1 47
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 115
byte 1 95
byte 1 100
byte 1 101
byte 1 102
byte 1 97
byte 1 117
byte 1 108
byte 1 116
byte 1 46
byte 1 99
byte 1 102
byte 1 103
byte 1 0
align 1
LABELV $410
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 115
byte 1 47
byte 1 37
byte 1 115
byte 1 47
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 115
byte 1 46
byte 1 99
byte 1 102
byte 1 103
byte 1 0
align 1
LABELV $406
byte 1 99
byte 1 104
byte 1 97
byte 1 114
byte 1 115
byte 1 47
byte 1 109
byte 1 112
byte 1 95
byte 1 103
byte 1 101
byte 1 110
byte 1 101
byte 1 114
byte 1 105
byte 1 99
byte 1 95
byte 1 109
byte 1 97
byte 1 108
byte 1 101
byte 1 47
byte 1 109
byte 1 105
byte 1 115
byte 1 99
byte 1 0
align 1
LABELV $405
byte 1 116
byte 1 97
byte 1 103
byte 1 95
byte 1 102
byte 1 108
byte 1 97
byte 1 103
byte 1 0
align 1
LABELV $392
byte 1 68
byte 1 69
byte 1 70
byte 1 65
byte 1 85
byte 1 76
byte 1 84
byte 1 95
byte 1 77
byte 1 79
byte 1 68
byte 1 69
byte 1 76
byte 1 32
byte 1 40
byte 1 37
byte 1 115
byte 1 41
byte 1 32
byte 1 102
byte 1 97
byte 1 105
byte 1 108
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 103
byte 1 105
byte 1 115
byte 1 116
byte 1 101
byte 1 114
byte 1 0
align 1
LABELV $389
byte 1 68
byte 1 69
byte 1 70
byte 1 65
byte 1 85
byte 1 76
byte 1 84
byte 1 95
byte 1 84
byte 1 69
byte 1 65
byte 1 77
byte 1 95
byte 1 77
byte 1 79
byte 1 68
byte 1 69
byte 1 76
byte 1 32
byte 1 47
byte 1 32
byte 1 115
byte 1 107
byte 1 105
byte 1 110
byte 1 32
byte 1 40
byte 1 37
byte 1 115
byte 1 47
byte 1 37
byte 1 115
byte 1 41
byte 1 32
byte 1 102
byte 1 97
byte 1 105
byte 1 108
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 103
byte 1 105
byte 1 115
byte 1 116
byte 1 101
byte 1 114
byte 1 0
align 1
LABELV $386
byte 1 69
byte 1 109
byte 1 112
byte 1 105
byte 1 114
byte 1 101
byte 1 0
align 1
LABELV $385
byte 1 82
byte 1 101
byte 1 98
byte 1 101
byte 1 108
byte 1 108
byte 1 105
byte 1 111
byte 1 110
byte 1 0
align 1
LABELV $377
byte 1 47
byte 1 0
align 1
LABELV $352
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 115
byte 1 47
byte 1 37
byte 1 115
byte 1 47
byte 1 105
byte 1 99
byte 1 111
byte 1 110
byte 1 95
byte 1 37
byte 1 115
byte 1 0
align 1
LABELV $323
byte 1 108
byte 1 111
byte 1 119
byte 1 101
byte 1 114
byte 1 95
byte 1 108
byte 1 117
byte 1 109
byte 1 98
byte 1 97
byte 1 114
byte 1 0
align 1
LABELV $322
byte 1 77
byte 1 111
byte 1 116
byte 1 105
byte 1 111
byte 1 110
byte 1 0
align 1
LABELV $321
byte 1 42
byte 1 104
byte 1 101
byte 1 97
byte 1 100
byte 1 95
byte 1 116
byte 1 111
byte 1 112
byte 1 0
align 1
LABELV $320
byte 1 42
byte 1 108
byte 1 95
byte 1 104
byte 1 97
byte 1 110
byte 1 100
byte 1 0
align 1
LABELV $318
byte 1 99
byte 1 114
byte 1 97
byte 1 110
byte 1 105
byte 1 117
byte 1 109
byte 1 0
align 1
LABELV $314
byte 1 117
byte 1 112
byte 1 112
byte 1 101
byte 1 114
byte 1 95
byte 1 108
byte 1 117
byte 1 109
byte 1 98
byte 1 97
byte 1 114
byte 1 0
align 1
LABELV $310
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 95
byte 1 114
byte 1 111
byte 1 111
byte 1 116
byte 1 0
align 1
LABELV $307
byte 1 42
byte 1 114
byte 1 95
byte 1 104
byte 1 97
byte 1 110
byte 1 100
byte 1 0
align 1
LABELV $306
byte 1 112
byte 1 101
byte 1 108
byte 1 118
byte 1 105
byte 1 115
byte 1 0
align 1
LABELV $305
byte 1 42
byte 1 102
byte 1 108
byte 1 97
byte 1 115
byte 1 104
byte 1 50
byte 1 0
align 1
LABELV $303
byte 1 114
byte 1 95
byte 1 99
byte 1 108
byte 1 97
byte 1 118
byte 1 105
byte 1 99
byte 1 97
byte 1 108
byte 1 0
align 1
LABELV $301
byte 1 108
byte 1 95
byte 1 99
byte 1 108
byte 1 97
byte 1 118
byte 1 105
byte 1 99
byte 1 97
byte 1 108
byte 1 0
align 1
LABELV $299
byte 1 77
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 95
byte 1 114
byte 1 111
byte 1 111
byte 1 116
byte 1 0
align 1
LABELV $298
byte 1 42
byte 1 102
byte 1 108
byte 1 97
byte 1 115
byte 1 104
byte 1 49
byte 1 0
align 1
LABELV $268
byte 1 70
byte 1 97
byte 1 105
byte 1 108
byte 1 101
byte 1 100
byte 1 32
byte 1 116
byte 1 111
byte 1 32
byte 1 108
byte 1 111
byte 1 97
byte 1 100
byte 1 32
byte 1 97
byte 1 110
byte 1 105
byte 1 109
byte 1 97
byte 1 116
byte 1 105
byte 1 111
byte 1 110
byte 1 32
byte 1 102
byte 1 105
byte 1 108
byte 1 101
byte 1 32
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 115
byte 1 47
byte 1 95
byte 1 104
byte 1 117
byte 1 109
byte 1 97
byte 1 110
byte 1 111
byte 1 105
byte 1 100
byte 1 47
byte 1 97
byte 1 110
byte 1 105
byte 1 109
byte 1 97
byte 1 116
byte 1 105
byte 1 111
byte 1 110
byte 1 46
byte 1 99
byte 1 102
byte 1 103
byte 1 10
byte 1 0
align 1
LABELV $265
byte 1 77
byte 1 111
byte 1 100
byte 1 101
byte 1 108
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 117
byte 1 115
byte 1 101
byte 1 32
byte 1 115
byte 1 117
byte 1 112
byte 1 112
byte 1 111
byte 1 114
byte 1 116
byte 1 101
byte 1 100
byte 1 32
byte 1 97
byte 1 110
byte 1 105
byte 1 109
byte 1 97
byte 1 116
byte 1 105
byte 1 111
byte 1 110
byte 1 32
byte 1 99
byte 1 111
byte 1 110
byte 1 102
byte 1 105
byte 1 103
byte 1 46
byte 1 10
byte 1 0
align 1
LABELV $262
byte 1 47
byte 1 97
byte 1 110
byte 1 105
byte 1 109
byte 1 97
byte 1 116
byte 1 105
byte 1 111
byte 1 110
byte 1 46
byte 1 99
byte 1 102
byte 1 103
byte 1 0
align 1
LABELV $259
byte 1 70
byte 1 97
byte 1 105
byte 1 108
byte 1 101
byte 1 100
byte 1 32
byte 1 116
byte 1 111
byte 1 32
byte 1 108
byte 1 111
byte 1 97
byte 1 100
byte 1 32
byte 1 97
byte 1 110
byte 1 105
byte 1 109
byte 1 97
byte 1 116
byte 1 105
byte 1 111
byte 1 110
byte 1 32
byte 1 102
byte 1 105
byte 1 108
byte 1 101
byte 1 32
byte 1 37
byte 1 115
byte 1 10
byte 1 0
align 1
LABELV $258
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 115
byte 1 47
byte 1 95
byte 1 104
byte 1 117
byte 1 109
byte 1 97
byte 1 110
byte 1 111
byte 1 105
byte 1 100
byte 1 47
byte 1 97
byte 1 110
byte 1 105
byte 1 109
byte 1 97
byte 1 116
byte 1 105
byte 1 111
byte 1 110
byte 1 46
byte 1 99
byte 1 102
byte 1 103
byte 1 0
align 1
LABELV $251
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 115
byte 1 47
byte 1 95
byte 1 104
byte 1 117
byte 1 109
byte 1 97
byte 1 110
byte 1 111
byte 1 105
byte 1 100
byte 1 47
byte 1 0
align 1
LABELV $244
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 115
byte 1 47
byte 1 37
byte 1 115
byte 1 47
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 46
byte 1 103
byte 1 108
byte 1 109
byte 1 0
align 1
LABELV $243
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 115
byte 1 47
byte 1 37
byte 1 115
byte 1 47
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 95
byte 1 37
byte 1 115
byte 1 46
byte 1 115
byte 1 107
byte 1 105
byte 1 110
byte 1 0
align 1
LABELV $242
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 115
byte 1 47
byte 1 97
byte 1 116
byte 1 115
byte 1 116
byte 1 47
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 46
byte 1 103
byte 1 108
byte 1 109
byte 1 0
align 1
LABELV $225
byte 1 87
byte 1 65
byte 1 82
byte 1 78
byte 1 73
byte 1 78
byte 1 71
byte 1 58
byte 1 32
byte 1 65
byte 1 116
byte 1 116
byte 1 101
byte 1 109
byte 1 112
byte 1 116
byte 1 101
byte 1 100
byte 1 32
byte 1 116
byte 1 111
byte 1 32
byte 1 108
byte 1 111
byte 1 97
byte 1 100
byte 1 32
byte 1 97
byte 1 110
byte 1 32
byte 1 117
byte 1 110
byte 1 115
byte 1 117
byte 1 112
byte 1 112
byte 1 111
byte 1 114
byte 1 116
byte 1 101
byte 1 100
byte 1 32
byte 1 109
byte 1 117
byte 1 108
byte 1 116
byte 1 105
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 32
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 33
byte 1 32
byte 1 40
byte 1 98
byte 1 97
byte 1 100
byte 1 32
byte 1 111
byte 1 114
byte 1 32
byte 1 109
byte 1 105
byte 1 115
byte 1 115
byte 1 105
byte 1 110
byte 1 103
byte 1 32
byte 1 98
byte 1 111
byte 1 110
byte 1 101
byte 1 44
byte 1 32
byte 1 111
byte 1 114
byte 1 32
byte 1 109
byte 1 105
byte 1 115
byte 1 115
byte 1 105
byte 1 110
byte 1 103
byte 1 32
byte 1 97
byte 1 110
byte 1 105
byte 1 109
byte 1 97
byte 1 116
byte 1 105
byte 1 111
byte 1 110
byte 1 32
byte 1 115
byte 1 101
byte 1 113
byte 1 117
byte 1 101
byte 1 110
byte 1 99
byte 1 101
byte 1 41
byte 1 10
byte 1 0
align 1
LABELV $224
byte 1 100
byte 1 101
byte 1 102
byte 1 97
byte 1 117
byte 1 108
byte 1 116
byte 1 0
align 1
LABELV $212
byte 1 115
byte 1 117
byte 1 114
byte 1 102
byte 1 79
byte 1 110
byte 1 0
align 1
LABELV $209
byte 1 44
byte 1 0
align 1
LABELV $204
byte 1 115
byte 1 117
byte 1 114
byte 1 102
byte 1 79
byte 1 102
byte 1 102
byte 1 0
align 1
LABELV $195
byte 1 70
byte 1 105
byte 1 108
byte 1 101
byte 1 32
byte 1 37
byte 1 115
byte 1 32
byte 1 116
byte 1 111
byte 1 111
byte 1 32
byte 1 108
byte 1 111
byte 1 110
byte 1 103
byte 1 10
byte 1 0
align 1
LABELV $190
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 115
byte 1 47
byte 1 112
byte 1 108
byte 1 97
byte 1 121
byte 1 101
byte 1 114
byte 1 115
byte 1 47
byte 1 37
byte 1 115
byte 1 47
byte 1 109
byte 1 111
byte 1 100
byte 1 101
byte 1 108
byte 1 95
byte 1 37
byte 1 115
byte 1 46
byte 1 115
byte 1 117
byte 1 114
byte 1 102
byte 1 0
align 1
LABELV $188
byte 1 98
byte 1 108
byte 1 117
byte 1 101
byte 1 0
align 1
LABELV $187
byte 1 114
byte 1 101
byte 1 100
byte 1 0
align 1
LABELV $186
byte 1 100
byte 1 101
byte 1 102
byte 1 97
byte 1 117
byte 1 108
byte 1 116
byte 1 95
byte 1 109
byte 1 112
byte 1 0
align 1
LABELV $183
byte 1 109
byte 1 111
byte 1 114
byte 1 103
byte 1 97
byte 1 110
byte 1 0
align 1
LABELV $180
byte 1 102
byte 1 112
byte 1 108
byte 1 115
byte 1 51
byte 1 0
align 1
LABELV $177
byte 1 102
byte 1 112
byte 1 108
byte 1 115
byte 1 50
byte 1 0
align 1
LABELV $174
byte 1 102
byte 1 112
byte 1 108
byte 1 115
byte 1 0
align 1
LABELV $171
byte 1 107
byte 1 121
byte 1 108
byte 1 101
byte 1 0
align 1
LABELV $160
byte 1 85
byte 1 110
byte 1 107
byte 1 110
byte 1 111
byte 1 119
byte 1 110
byte 1 32
byte 1 99
byte 1 117
byte 1 115
byte 1 116
byte 1 111
byte 1 109
byte 1 32
byte 1 115
byte 1 111
byte 1 117
byte 1 110
byte 1 100
byte 1 58
byte 1 32
byte 1 37
byte 1 115
byte 1 0
align 1
LABELV $145
byte 1 42
byte 1 116
byte 1 97
byte 1 117
byte 1 110
byte 1 116
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $144
byte 1 42
byte 1 108
byte 1 97
byte 1 110
byte 1 100
byte 1 49
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $143
byte 1 42
byte 1 103
byte 1 97
byte 1 115
byte 1 112
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $142
byte 1 42
byte 1 99
byte 1 104
byte 1 111
byte 1 107
byte 1 101
byte 1 51
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $141
byte 1 42
byte 1 99
byte 1 104
byte 1 111
byte 1 107
byte 1 101
byte 1 50
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $140
byte 1 42
byte 1 99
byte 1 104
byte 1 111
byte 1 107
byte 1 101
byte 1 49
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $139
byte 1 42
byte 1 102
byte 1 97
byte 1 108
byte 1 108
byte 1 105
byte 1 110
byte 1 103
byte 1 49
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $138
byte 1 42
byte 1 112
byte 1 97
byte 1 105
byte 1 110
byte 1 49
byte 1 48
byte 1 48
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $137
byte 1 42
byte 1 112
byte 1 97
byte 1 105
byte 1 110
byte 1 55
byte 1 53
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $136
byte 1 42
byte 1 112
byte 1 97
byte 1 105
byte 1 110
byte 1 53
byte 1 48
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $135
byte 1 42
byte 1 112
byte 1 97
byte 1 105
byte 1 110
byte 1 50
byte 1 53
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $134
byte 1 42
byte 1 106
byte 1 117
byte 1 109
byte 1 112
byte 1 49
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $133
byte 1 42
byte 1 100
byte 1 101
byte 1 97
byte 1 116
byte 1 104
byte 1 51
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $132
byte 1 42
byte 1 100
byte 1 101
byte 1 97
byte 1 116
byte 1 104
byte 1 50
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
align 1
LABELV $131
byte 1 42
byte 1 100
byte 1 101
byte 1 97
byte 1 116
byte 1 104
byte 1 49
byte 1 46
byte 1 119
byte 1 97
byte 1 118
byte 1 0
