10286 lines
146 KiB
NASM
10286 lines
146 KiB
NASM
export SP_info_camp
|
|
code
|
|
proc SP_info_camp 4 8
|
|
file "../g_misc.c"
|
|
line 22
|
|
;1:// Copyright (C) 1999-2000 Id Software, Inc.
|
|
;2://
|
|
;3:// g_misc.c
|
|
;4:
|
|
;5:#include "g_local.h"
|
|
;6:
|
|
;7:#define HOLOCRON_RESPAWN_TIME 30000
|
|
;8:#define MAX_AMMO_GIVE 2
|
|
;9:#define STATION_RECHARGE_TIME 3000//800
|
|
;10:
|
|
;11:void HolocronThink(gentity_t *ent);
|
|
;12:extern vmCvar_t g_MaxHolocronCarry;
|
|
;13:
|
|
;14:/*QUAKED func_group (0 0 0) ?
|
|
;15:Used to group brushes together just for editor convenience. They are turned into normal brushes by the utilities.
|
|
;16:*/
|
|
;17:
|
|
;18:
|
|
;19:/*QUAKED info_camp (0 0.5 0) (-4 -4 -4) (4 4 4)
|
|
;20:Used as a positional target for calculations in the utilities (spotlights, etc), but removed during gameplay.
|
|
;21:*/
|
|
;22:void SP_info_camp( gentity_t *self ) {
|
|
line 23
|
|
;23: G_SetOrigin( self, self->s.origin );
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_SetOrigin
|
|
CALLV
|
|
pop
|
|
line 24
|
|
;24:}
|
|
LABELV $78
|
|
endproc SP_info_camp 4 8
|
|
export SP_info_null
|
|
proc SP_info_null 0 4
|
|
line 30
|
|
;25:
|
|
;26:
|
|
;27:/*QUAKED info_null (0 0.5 0) (-4 -4 -4) (4 4 4)
|
|
;28:Used as a positional target for calculations in the utilities (spotlights, etc), but removed during gameplay.
|
|
;29:*/
|
|
;30:void SP_info_null( gentity_t *self ) {
|
|
line 31
|
|
;31: G_FreeEntity( self );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_FreeEntity
|
|
CALLV
|
|
pop
|
|
line 32
|
|
;32:}
|
|
LABELV $79
|
|
endproc SP_info_null 0 4
|
|
export SP_info_notnull
|
|
proc SP_info_notnull 4 8
|
|
line 39
|
|
;33:
|
|
;34:
|
|
;35:/*QUAKED info_notnull (0 0.5 0) (-4 -4 -4) (4 4 4)
|
|
;36:Used as a positional target for in-game calculation, like jumppad targets.
|
|
;37:target_position does the same thing
|
|
;38:*/
|
|
;39:void SP_info_notnull( gentity_t *self ){
|
|
line 40
|
|
;40: G_SetOrigin( self, self->s.origin );
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_SetOrigin
|
|
CALLV
|
|
pop
|
|
line 41
|
|
;41:}
|
|
LABELV $80
|
|
endproc SP_info_notnull 4 8
|
|
export SP_light
|
|
proc SP_light 0 4
|
|
line 51
|
|
;42:
|
|
;43:
|
|
;44:/*QUAKED light (0 1 0) (-8 -8 -8) (8 8 8) linear
|
|
;45:Non-displayed light.
|
|
;46:"light" overrides the default 300 intensity.
|
|
;47:Linear checbox gives linear falloff instead of inverse square
|
|
;48:Lights pointed at a target will be spotlights.
|
|
;49:"radius" overrides the default 64 unit radius of a spotlight at the target point.
|
|
;50:*/
|
|
;51:void SP_light( gentity_t *self ) {
|
|
line 52
|
|
;52: G_FreeEntity( self );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_FreeEntity
|
|
CALLV
|
|
pop
|
|
line 53
|
|
;53:}
|
|
LABELV $81
|
|
endproc SP_light 0 4
|
|
export TeleportPlayer
|
|
proc TeleportPlayer 40 16
|
|
line 65
|
|
;54:
|
|
;55:
|
|
;56:
|
|
;57:/*
|
|
;58:=================================================================================
|
|
;59:
|
|
;60:TELEPORTERS
|
|
;61:
|
|
;62:=================================================================================
|
|
;63:*/
|
|
;64:
|
|
;65:void TeleportPlayer( gentity_t *player, vec3_t origin, vec3_t angles ) {
|
|
line 70
|
|
;66: gentity_t *tent;
|
|
;67:
|
|
;68: // use temp events at source and destination to prevent the effect
|
|
;69: // from getting dropped by a second player event
|
|
;70: if ( player->client->sess.sessionTeam != TEAM_SPECTATOR ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
EQI4 $83
|
|
line 71
|
|
;71: tent = G_TempEntity( player->client->ps.origin, EV_PLAYER_TELEPORT_OUT );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
ARGP4
|
|
CNSTI4 60
|
|
ARGI4
|
|
ADDRLP4 4
|
|
ADDRGP4 G_TempEntity
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 72
|
|
;72: tent->s.clientNum = player->s.clientNum;
|
|
ADDRLP4 8
|
|
CNSTI4 220
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ADDP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 74
|
|
;73:
|
|
;74: tent = G_TempEntity( origin, EV_PLAYER_TELEPORT_IN );
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 59
|
|
ARGI4
|
|
ADDRLP4 12
|
|
ADDRGP4 G_TempEntity
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
ASGNP4
|
|
line 75
|
|
;75: tent->s.clientNum = player->s.clientNum;
|
|
ADDRLP4 16
|
|
CNSTI4 220
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ADDP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 76
|
|
;76: }
|
|
LABELV $83
|
|
line 79
|
|
;77:
|
|
;78: // unlink to make sure it can't possibly interfere with G_KillBox
|
|
;79: trap_UnlinkEntity (player);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_UnlinkEntity
|
|
CALLV
|
|
pop
|
|
line 81
|
|
;80:
|
|
;81: VectorCopy ( origin, player->client->ps.origin );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 82
|
|
;82: player->client->ps.origin[2] += 1;
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 28
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
INDIRF4
|
|
CNSTF4 1065353216
|
|
ADDF4
|
|
ASGNF4
|
|
line 85
|
|
;83:
|
|
;84: // spit the player out
|
|
;85: AngleVectors( angles, player->client->ps.velocity, NULL, NULL );
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 32
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 8
|
|
CNSTP4 0
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 AngleVectors
|
|
CALLV
|
|
pop
|
|
line 86
|
|
;86: VectorScale( player->client->ps.velocity, 400, player->client->ps.velocity );
|
|
ADDRLP4 12
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 32
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTF4 1137180672
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
INDIRF4
|
|
MULF4
|
|
ASGNF4
|
|
ADDRLP4 16
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 36
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CNSTF4 1137180672
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
INDIRF4
|
|
MULF4
|
|
ASGNF4
|
|
ADDRLP4 20
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 40
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTF4 1137180672
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
INDIRF4
|
|
MULF4
|
|
ASGNF4
|
|
line 87
|
|
;87: player->client->ps.pm_time = 160; // hold time
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 16
|
|
ADDP4
|
|
CNSTI4 160
|
|
ASGNI4
|
|
line 88
|
|
;88: player->client->ps.pm_flags |= PMF_TIME_KNOCKBACK;
|
|
ADDRLP4 24
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 12
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 64
|
|
BORI4
|
|
ASGNI4
|
|
line 91
|
|
;89:
|
|
;90: // toggle the teleport bit so the client knows to not lerp
|
|
;91: player->client->ps.eFlags ^= EF_TELEPORT_BIT;
|
|
ADDRLP4 28
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 108
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 4
|
|
BXORI4
|
|
ASGNI4
|
|
line 94
|
|
;92:
|
|
;93: // set angles
|
|
;94: SetClientViewAngle( player, angles );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 SetClientViewAngle
|
|
CALLV
|
|
pop
|
|
line 97
|
|
;95:
|
|
;96: // kill anything at the destination
|
|
;97: if ( player->client->sess.sessionTeam != TEAM_SPECTATOR ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
EQI4 $85
|
|
line 98
|
|
;98: G_KillBox (player);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_KillBox
|
|
CALLV
|
|
pop
|
|
line 99
|
|
;99: }
|
|
LABELV $85
|
|
line 102
|
|
;100:
|
|
;101: // save results of pmove
|
|
;102: BG_PlayerStateToEntityState( &player->client->ps, &player->s, qtrue );
|
|
ADDRLP4 32
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 BG_PlayerStateToEntityState
|
|
CALLV
|
|
pop
|
|
line 105
|
|
;103:
|
|
;104: // use the precise origin for linking
|
|
;105: VectorCopy( player->client->ps.origin, player->r.currentOrigin );
|
|
ADDRLP4 36
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
CNSTI4 368
|
|
ADDP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 107
|
|
;106:
|
|
;107: if ( player->client->sess.sessionTeam != TEAM_SPECTATOR ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
EQI4 $87
|
|
line 108
|
|
;108: trap_LinkEntity (player);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_LinkEntity
|
|
CALLV
|
|
pop
|
|
line 109
|
|
;109: }
|
|
LABELV $87
|
|
line 110
|
|
;110:}
|
|
LABELV $82
|
|
endproc TeleportPlayer 40 16
|
|
export SP_misc_teleporter_dest
|
|
proc SP_misc_teleporter_dest 0 0
|
|
line 118
|
|
;111:
|
|
;112:
|
|
;113:/*QUAKED misc_teleporter_dest (1 0 0) (-32 -32 -24) (32 32 -16)
|
|
;114:Point teleporters at these.
|
|
;115:Now that we don't have teleport destination pads, this is just
|
|
;116:an info_notnull
|
|
;117:*/
|
|
;118:void SP_misc_teleporter_dest( gentity_t *ent ) {
|
|
line 119
|
|
;119:}
|
|
LABELV $89
|
|
endproc SP_misc_teleporter_dest 0 0
|
|
export SP_misc_model
|
|
proc SP_misc_model 0 4
|
|
line 127
|
|
;120:
|
|
;121:
|
|
;122://===========================================================
|
|
;123:
|
|
;124:/*QUAKED misc_model (1 0 0) (-16 -16 -16) (16 16 16)
|
|
;125:"model" arbitrary .md3 file to display
|
|
;126:*/
|
|
;127:void SP_misc_model( gentity_t *ent ) {
|
|
line 138
|
|
;128:
|
|
;129:#if 0
|
|
;130: ent->s.modelindex = G_ModelIndex( ent->model );
|
|
;131: VectorSet (ent->mins, -16, -16, -16);
|
|
;132: VectorSet (ent->maxs, 16, 16, 16);
|
|
;133: trap_LinkEntity (ent);
|
|
;134:
|
|
;135: G_SetOrigin( ent, ent->s.origin );
|
|
;136: VectorCopy( ent->s.angles, ent->s.apos.trBase );
|
|
;137:#else
|
|
;138: G_FreeEntity( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_FreeEntity
|
|
CALLV
|
|
pop
|
|
line 140
|
|
;139:#endif
|
|
;140:}
|
|
LABELV $90
|
|
endproc SP_misc_model 0 4
|
|
export SP_misc_G2model
|
|
proc SP_misc_G2model 0 4
|
|
line 146
|
|
;141:
|
|
;142:
|
|
;143:/*QUAKED misc_G2model (1 0 0) (-16 -16 -16) (16 16 16)
|
|
;144:"model" arbitrary .glm file to display
|
|
;145:*/
|
|
;146:void SP_misc_G2model( gentity_t *ent ) {
|
|
line 160
|
|
;147:
|
|
;148:#if 0
|
|
;149: char name1[200] = "models/players/kyle/modelmp.glm";
|
|
;150: trap_G2API_InitGhoul2Model(&ent->s, name1, G_ModelIndex( name1 ), 0, 0, 0, 0);
|
|
;151: trap_G2API_SetBoneAnim(ent->s.ghoul2, 0, "model_root", 0, 12, BONE_ANIM_OVERRIDE_LOOP, 1.0f, level.time, -1, -1);
|
|
;152: ent->s.radius = 150;
|
|
;153:// VectorSet (ent->mins, -16, -16, -16);
|
|
;154:// VectorSet (ent->maxs, 16, 16, 16);
|
|
;155: trap_LinkEntity (ent);
|
|
;156:
|
|
;157: G_SetOrigin( ent, ent->s.origin );
|
|
;158: VectorCopy( ent->s.angles, ent->s.apos.trBase );
|
|
;159:#else
|
|
;160: G_FreeEntity( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_FreeEntity
|
|
CALLV
|
|
pop
|
|
line 162
|
|
;161:#endif
|
|
;162:}
|
|
LABELV $91
|
|
endproc SP_misc_G2model 0 4
|
|
export locateCamera
|
|
proc locateCamera 52 8
|
|
line 166
|
|
;163:
|
|
;164://===========================================================
|
|
;165:
|
|
;166:void locateCamera( gentity_t *ent ) {
|
|
line 171
|
|
;167: vec3_t dir;
|
|
;168: gentity_t *target;
|
|
;169: gentity_t *owner;
|
|
;170:
|
|
;171: owner = G_PickTarget( ent->target );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 20
|
|
ADDRGP4 G_PickTarget
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ASGNP4
|
|
line 172
|
|
;172: if ( !owner ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $93
|
|
line 173
|
|
;173: G_Printf( "Couldn't find target for misc_partal_surface\n" );
|
|
ADDRGP4 $95
|
|
ARGP4
|
|
ADDRGP4 G_Printf
|
|
CALLV
|
|
pop
|
|
line 174
|
|
;174: G_FreeEntity( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_FreeEntity
|
|
CALLV
|
|
pop
|
|
line 175
|
|
;175: return;
|
|
ADDRGP4 $92
|
|
JUMPV
|
|
LABELV $93
|
|
line 177
|
|
;176: }
|
|
;177: ent->r.ownerNum = owner->s.number;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 396
|
|
ADDP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 180
|
|
;178:
|
|
;179: // frame holds the rotate speed
|
|
;180: if ( owner->spawnflags & 1 ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $96
|
|
line 181
|
|
;181: ent->s.frame = 25;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 224
|
|
ADDP4
|
|
CNSTI4 25
|
|
ASGNI4
|
|
line 182
|
|
;182: } else if ( owner->spawnflags & 2 ) {
|
|
ADDRGP4 $97
|
|
JUMPV
|
|
LABELV $96
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $98
|
|
line 183
|
|
;183: ent->s.frame = 75;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 224
|
|
ADDP4
|
|
CNSTI4 75
|
|
ASGNI4
|
|
line 184
|
|
;184: }
|
|
LABELV $98
|
|
LABELV $97
|
|
line 187
|
|
;185:
|
|
;186: // swing camera ?
|
|
;187: if ( owner->spawnflags & 4 ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 4
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $100
|
|
line 189
|
|
;188: // set to 0 for no rotation at all
|
|
;189: ent->s.powerups = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 272
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 190
|
|
;190: }
|
|
ADDRGP4 $101
|
|
JUMPV
|
|
LABELV $100
|
|
line 191
|
|
;191: else {
|
|
line 192
|
|
;192: ent->s.powerups = 1;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 272
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 193
|
|
;193: }
|
|
LABELV $101
|
|
line 196
|
|
;194:
|
|
;195: // clientNum holds the rotate offset
|
|
;196: ent->s.clientNum = owner->s.clientNum;
|
|
ADDRLP4 24
|
|
CNSTI4 220
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
ADDP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 198
|
|
;197:
|
|
;198: VectorCopy( owner->s.origin, ent->s.origin2 );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 104
|
|
ADDP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 201
|
|
;199:
|
|
;200: // see if the portal_camera has a target
|
|
;201: target = G_PickTarget( owner->target );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 28
|
|
ADDRGP4 G_PickTarget
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
ASGNP4
|
|
line 202
|
|
;202: if ( target ) {
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $102
|
|
line 203
|
|
;203: VectorSubtract( target->s.origin, owner->s.origin, dir );
|
|
ADDRLP4 36
|
|
CNSTI4 92
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ADDRLP4 36
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 36
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 44
|
|
CNSTI4 96
|
|
ASGNI4
|
|
ADDRLP4 4+4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ADDRLP4 44
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 44
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 48
|
|
CNSTI4 100
|
|
ASGNI4
|
|
ADDRLP4 4+8
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ADDRLP4 48
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 48
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 204
|
|
;204: VectorNormalize( dir );
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRGP4 VectorNormalize
|
|
CALLF4
|
|
pop
|
|
line 205
|
|
;205: } else {
|
|
ADDRGP4 $103
|
|
JUMPV
|
|
LABELV $102
|
|
line 206
|
|
;206: G_SetMovedir( owner->s.angles, dir );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 116
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRGP4 G_SetMovedir
|
|
CALLV
|
|
pop
|
|
line 207
|
|
;207: }
|
|
LABELV $103
|
|
line 209
|
|
;208:
|
|
;209: ent->s.eventParm = DirToByte( dir );
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRLP4 32
|
|
ADDRGP4 DirToByte
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 256
|
|
ADDP4
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 210
|
|
;210:}
|
|
LABELV $92
|
|
endproc locateCamera 52 8
|
|
export SP_misc_portal_surface
|
|
proc SP_misc_portal_surface 20 4
|
|
line 216
|
|
;211:
|
|
;212:/*QUAKED misc_portal_surface (0 0 1) (-8 -8 -8) (8 8 8)
|
|
;213:The portal surface nearest this entity will show a view from the targeted misc_portal_camera, or a mirror view if untargeted.
|
|
;214:This must be within 64 world units of the surface!
|
|
;215:*/
|
|
;216:void SP_misc_portal_surface(gentity_t *ent) {
|
|
line 217
|
|
;217: VectorClear( ent->r.mins );
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
CNSTF4 0
|
|
ASGNF4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 324
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRF4
|
|
ASGNF4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 320
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRF4
|
|
ASGNF4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRF4
|
|
ASGNF4
|
|
line 218
|
|
;218: VectorClear( ent->r.maxs );
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
CNSTF4 0
|
|
ASGNF4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
ADDRLP4 12
|
|
INDIRF4
|
|
ASGNF4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 332
|
|
ADDP4
|
|
ADDRLP4 12
|
|
INDIRF4
|
|
ASGNF4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
ADDRLP4 12
|
|
INDIRF4
|
|
ASGNF4
|
|
line 219
|
|
;219: trap_LinkEntity (ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_LinkEntity
|
|
CALLV
|
|
pop
|
|
line 221
|
|
;220:
|
|
;221: ent->r.svFlags = SVF_PORTAL;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 304
|
|
ADDP4
|
|
CNSTI4 64
|
|
ASGNI4
|
|
line 222
|
|
;222: ent->s.eType = ET_PORTAL;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
CNSTI4 8
|
|
ASGNI4
|
|
line 224
|
|
;223:
|
|
;224: if ( !ent->target ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $107
|
|
line 225
|
|
;225: VectorCopy( ent->s.origin, ent->s.origin2 );
|
|
ADDRLP4 16
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CNSTI4 104
|
|
ADDP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 226
|
|
;226: } else {
|
|
ADDRGP4 $108
|
|
JUMPV
|
|
LABELV $107
|
|
line 227
|
|
;227: ent->think = locateCamera;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
ADDRGP4 locateCamera
|
|
ASGNP4
|
|
line 228
|
|
;228: ent->nextthink = level.time + 100;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 100
|
|
ADDI4
|
|
ASGNI4
|
|
line 229
|
|
;229: }
|
|
LABELV $108
|
|
line 230
|
|
;230:}
|
|
LABELV $106
|
|
endproc SP_misc_portal_surface 20 4
|
|
export SP_misc_portal_camera
|
|
proc SP_misc_portal_camera 20 12
|
|
line 236
|
|
;231:
|
|
;232:/*QUAKED misc_portal_camera (0 0 1) (-8 -8 -8) (8 8 8) slowrotate fastrotate noswing
|
|
;233:The target for a misc_portal_director. You can set either angles or target another entity to determine the direction of view.
|
|
;234:"roll" an angle modifier to orient the camera around the target vector;
|
|
;235:*/
|
|
;236:void SP_misc_portal_camera(gentity_t *ent) {
|
|
line 239
|
|
;237: float roll;
|
|
;238:
|
|
;239: VectorClear( ent->r.mins );
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
CNSTF4 0
|
|
ASGNF4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 324
|
|
ADDP4
|
|
ADDRLP4 8
|
|
INDIRF4
|
|
ASGNF4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 320
|
|
ADDP4
|
|
ADDRLP4 8
|
|
INDIRF4
|
|
ASGNF4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
ADDRLP4 8
|
|
INDIRF4
|
|
ASGNF4
|
|
line 240
|
|
;240: VectorClear( ent->r.maxs );
|
|
ADDRLP4 12
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
CNSTF4 0
|
|
ASGNF4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
ADDRLP4 16
|
|
INDIRF4
|
|
ASGNF4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 332
|
|
ADDP4
|
|
ADDRLP4 16
|
|
INDIRF4
|
|
ASGNF4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
ADDRLP4 16
|
|
INDIRF4
|
|
ASGNF4
|
|
line 241
|
|
;241: trap_LinkEntity (ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_LinkEntity
|
|
CALLV
|
|
pop
|
|
line 243
|
|
;242:
|
|
;243: G_SpawnFloat( "roll", "0", &roll );
|
|
ADDRGP4 $111
|
|
ARGP4
|
|
ADDRGP4 $112
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ARGP4
|
|
ADDRGP4 G_SpawnFloat
|
|
CALLI4
|
|
pop
|
|
line 245
|
|
;244:
|
|
;245: ent->s.clientNum = roll/360.0 * 256;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 220
|
|
ADDP4
|
|
CNSTF4 1132462080
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
CNSTF4 1135869952
|
|
DIVF4
|
|
MULF4
|
|
CVFI4 4
|
|
ASGNI4
|
|
line 246
|
|
;246:}
|
|
LABELV $110
|
|
endproc SP_misc_portal_camera 20 12
|
|
export HolocronRespawn
|
|
proc HolocronRespawn 4 0
|
|
line 292
|
|
;247:
|
|
;248:/*QUAKED misc_holocron (0 0 1) (-8 -8 -8) (8 8 8)
|
|
;249:count Set to type of holocron (based on force power value)
|
|
;250: HEAL = 0
|
|
;251: JUMP = 1
|
|
;252: SPEED = 2
|
|
;253: PUSH = 3
|
|
;254: PULL = 4
|
|
;255: TELEPATHY = 5
|
|
;256: GRIP = 6
|
|
;257: LIGHTNING = 7
|
|
;258: RAGE = 8
|
|
;259: PROTECT = 9
|
|
;260: ABSORB = 10
|
|
;261: TEAM HEAL = 11
|
|
;262: TEAM FORCE = 12
|
|
;263: DRAIN = 13
|
|
;264: SEE = 14
|
|
;265: SABERATTACK = 15
|
|
;266: SABERDEFEND = 16
|
|
;267: SABERTHROW = 17
|
|
;268:*/
|
|
;269:
|
|
;270:/*char *holocronTypeModels[] = {
|
|
;271: "models/chunks/rock/rock_big.md3",//FP_HEAL,
|
|
;272: "models/chunks/rock/rock_big.md3",//FP_LEVITATION,
|
|
;273: "models/chunks/rock/rock_big.md3",//FP_SPEED,
|
|
;274: "models/chunks/rock/rock_big.md3",//FP_PUSH,
|
|
;275: "models/chunks/rock/rock_big.md3",//FP_PULL,
|
|
;276: "models/chunks/rock/rock_big.md3",//FP_TELEPATHY,
|
|
;277: "models/chunks/rock/rock_big.md3",//FP_GRIP,
|
|
;278: "models/chunks/rock/rock_big.md3",//FP_LIGHTNING,
|
|
;279: "models/chunks/rock/rock_big.md3",//FP_RAGE,
|
|
;280: "models/chunks/rock/rock_big.md3",//FP_PROTECT,
|
|
;281: "models/chunks/rock/rock_big.md3",//FP_ABSORB,
|
|
;282: "models/chunks/rock/rock_big.md3",//FP_TEAM_HEAL,
|
|
;283: "models/chunks/rock/rock_big.md3",//FP_TEAM_FORCE,
|
|
;284: "models/chunks/rock/rock_big.md3",//FP_DRAIN,
|
|
;285: "models/chunks/rock/rock_big.md3",//FP_SEE
|
|
;286: "models/chunks/rock/rock_big.md3",//FP_SABERATTACK
|
|
;287: "models/chunks/rock/rock_big.md3",//FP_SABERDEFEND
|
|
;288: "models/chunks/rock/rock_big.md3"//FP_SABERTHROW
|
|
;289:};*/
|
|
;290:
|
|
;291:void HolocronRespawn(gentity_t *self)
|
|
;292:{
|
|
line 293
|
|
;293: self->s.modelindex = (self->count - 128);
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 212
|
|
ADDP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 128
|
|
SUBI4
|
|
ASGNI4
|
|
line 294
|
|
;294:}
|
|
LABELV $113
|
|
endproc HolocronRespawn 4 0
|
|
export HolocronPopOut
|
|
proc HolocronPopOut 12 8
|
|
line 297
|
|
;295:
|
|
;296:void HolocronPopOut(gentity_t *self)
|
|
;297:{
|
|
line 298
|
|
;298: if (Q_irand(1, 10) < 5)
|
|
CNSTI4 1
|
|
ARGI4
|
|
CNSTI4 10
|
|
ARGI4
|
|
ADDRLP4 0
|
|
ADDRGP4 Q_irand
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 5
|
|
GEI4 $115
|
|
line 299
|
|
;299: {
|
|
line 300
|
|
;300: self->s.pos.trDelta[0] = 150 + Q_irand(1, 100);
|
|
CNSTI4 1
|
|
ARGI4
|
|
CNSTI4 100
|
|
ARGI4
|
|
ADDRLP4 4
|
|
ADDRGP4 Q_irand
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 36
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 150
|
|
ADDI4
|
|
CVIF4 4
|
|
ASGNF4
|
|
line 301
|
|
;301: }
|
|
ADDRGP4 $116
|
|
JUMPV
|
|
LABELV $115
|
|
line 303
|
|
;302: else
|
|
;303: {
|
|
line 304
|
|
;304: self->s.pos.trDelta[0] = -150 - Q_irand(1, 100);
|
|
CNSTI4 1
|
|
ARGI4
|
|
CNSTI4 100
|
|
ARGI4
|
|
ADDRLP4 4
|
|
ADDRGP4 Q_irand
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 36
|
|
ADDP4
|
|
CNSTI4 -150
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
SUBI4
|
|
CVIF4 4
|
|
ASGNF4
|
|
line 305
|
|
;305: }
|
|
LABELV $116
|
|
line 306
|
|
;306: if (Q_irand(1, 10) < 5)
|
|
CNSTI4 1
|
|
ARGI4
|
|
CNSTI4 10
|
|
ARGI4
|
|
ADDRLP4 4
|
|
ADDRGP4 Q_irand
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 5
|
|
GEI4 $117
|
|
line 307
|
|
;307: {
|
|
line 308
|
|
;308: self->s.pos.trDelta[1] = 150 + Q_irand(1, 100);
|
|
CNSTI4 1
|
|
ARGI4
|
|
CNSTI4 100
|
|
ARGI4
|
|
ADDRLP4 8
|
|
ADDRGP4 Q_irand
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 40
|
|
ADDP4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 150
|
|
ADDI4
|
|
CVIF4 4
|
|
ASGNF4
|
|
line 309
|
|
;309: }
|
|
ADDRGP4 $118
|
|
JUMPV
|
|
LABELV $117
|
|
line 311
|
|
;310: else
|
|
;311: {
|
|
line 312
|
|
;312: self->s.pos.trDelta[1] = -150 - Q_irand(1, 100);
|
|
CNSTI4 1
|
|
ARGI4
|
|
CNSTI4 100
|
|
ARGI4
|
|
ADDRLP4 8
|
|
ADDRGP4 Q_irand
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 40
|
|
ADDP4
|
|
CNSTI4 -150
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
SUBI4
|
|
CVIF4 4
|
|
ASGNF4
|
|
line 313
|
|
;313: }
|
|
LABELV $118
|
|
line 314
|
|
;314: self->s.pos.trDelta[2] = 150 + Q_irand(1, 100);
|
|
CNSTI4 1
|
|
ARGI4
|
|
CNSTI4 100
|
|
ARGI4
|
|
ADDRLP4 8
|
|
ADDRGP4 Q_irand
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 44
|
|
ADDP4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 150
|
|
ADDI4
|
|
CVIF4 4
|
|
ASGNF4
|
|
line 315
|
|
;315:}
|
|
LABELV $114
|
|
endproc HolocronPopOut 12 8
|
|
export HolocronTouch
|
|
proc HolocronTouch 44 12
|
|
line 318
|
|
;316:
|
|
;317:void HolocronTouch(gentity_t *self, gentity_t *other, trace_t *trace)
|
|
;318:{
|
|
line 319
|
|
;319: int i = 0;
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 320
|
|
;320: int othercarrying = 0;
|
|
ADDRLP4 12
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 321
|
|
;321: float time_lowest = 0;
|
|
ADDRLP4 8
|
|
CNSTF4 0
|
|
ASGNF4
|
|
line 322
|
|
;322: int index_lowest = -1;
|
|
ADDRLP4 4
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
line 323
|
|
;323: int hasall = 1;
|
|
ADDRLP4 16
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 324
|
|
;324: int forceReselect = WP_NONE;
|
|
ADDRLP4 20
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 326
|
|
;325:
|
|
;326: if (trace)
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $120
|
|
line 327
|
|
;327: {
|
|
line 328
|
|
;328: self->s.groundEntityNum = trace->entityNum;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 192
|
|
ADDP4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 52
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 329
|
|
;329: }
|
|
LABELV $120
|
|
line 331
|
|
;330:
|
|
;331: if (!other || !other->client || other->health < 1)
|
|
ADDRLP4 24
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 28
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 28
|
|
INDIRU4
|
|
EQU4 $125
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 28
|
|
INDIRU4
|
|
EQU4 $125
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
GEI4 $122
|
|
LABELV $125
|
|
line 332
|
|
;332: {
|
|
line 333
|
|
;333: return;
|
|
ADDRGP4 $119
|
|
JUMPV
|
|
LABELV $122
|
|
line 336
|
|
;334: }
|
|
;335:
|
|
;336: if (!self->s.modelindex)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 212
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $126
|
|
line 337
|
|
;337: {
|
|
line 338
|
|
;338: return;
|
|
ADDRGP4 $119
|
|
JUMPV
|
|
LABELV $126
|
|
line 341
|
|
;339: }
|
|
;340:
|
|
;341: if (self->enemy)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $128
|
|
line 342
|
|
;342: {
|
|
line 343
|
|
;343: return;
|
|
ADDRGP4 $119
|
|
JUMPV
|
|
LABELV $128
|
|
line 346
|
|
;344: }
|
|
;345:
|
|
;346: if (other->client->ps.holocronsCarried[self->count])
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDP4
|
|
INDIRF4
|
|
CNSTF4 0
|
|
EQF4 $130
|
|
line 347
|
|
;347: {
|
|
line 348
|
|
;348: return;
|
|
ADDRGP4 $119
|
|
JUMPV
|
|
LABELV $130
|
|
line 351
|
|
;349: }
|
|
;350:
|
|
;351: if (other->client->ps.holocronCantTouch == self->s.number && other->client->ps.holocronCantTouchTime > level.time)
|
|
ADDRLP4 32
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
CNSTI4 704
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI4
|
|
NEI4 $136
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
CNSTI4 708
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CVIF4 4
|
|
LEF4 $136
|
|
line 352
|
|
;352: {
|
|
line 353
|
|
;353: return;
|
|
ADDRGP4 $119
|
|
JUMPV
|
|
LABELV $135
|
|
line 357
|
|
;354: }
|
|
;355:
|
|
;356: while (i < NUM_FORCE_POWERS)
|
|
;357: {
|
|
line 358
|
|
;358: if (other->client->ps.holocronsCarried[i])
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDP4
|
|
INDIRF4
|
|
CNSTF4 0
|
|
EQF4 $138
|
|
line 359
|
|
;359: {
|
|
line 360
|
|
;360: othercarrying++;
|
|
ADDRLP4 12
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 362
|
|
;361:
|
|
;362: if (index_lowest == -1 || other->client->ps.holocronsCarried[i] < time_lowest)
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 -1
|
|
EQI4 $142
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 8
|
|
INDIRF4
|
|
GEF4 $139
|
|
LABELV $142
|
|
line 363
|
|
;363: {
|
|
line 364
|
|
;364: index_lowest = i;
|
|
ADDRLP4 4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ASGNI4
|
|
line 365
|
|
;365: time_lowest = other->client->ps.holocronsCarried[i];
|
|
ADDRLP4 8
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDP4
|
|
INDIRF4
|
|
ASGNF4
|
|
line 366
|
|
;366: }
|
|
line 367
|
|
;367: }
|
|
ADDRGP4 $139
|
|
JUMPV
|
|
LABELV $138
|
|
line 368
|
|
;368: else if (i != self->count)
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
EQI4 $143
|
|
line 369
|
|
;369: {
|
|
line 370
|
|
;370: hasall = 0;
|
|
ADDRLP4 16
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 371
|
|
;371: }
|
|
LABELV $143
|
|
LABELV $139
|
|
line 372
|
|
;372: i++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 373
|
|
;373: }
|
|
LABELV $136
|
|
line 356
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 18
|
|
LTI4 $135
|
|
line 375
|
|
;374:
|
|
;375: if (hasall)
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $145
|
|
line 376
|
|
;376: { //once we pick up this holocron we'll have all of them, so give us super special best prize!
|
|
line 378
|
|
;377: //G_Printf("You deserve a pat on the back.\n");
|
|
;378: }
|
|
LABELV $145
|
|
line 380
|
|
;379:
|
|
;380: if (!(other->client->ps.fd.forcePowersActive & (1 << other->client->ps.fd.forcePowerSelected)))
|
|
ADDRLP4 36
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
CNSTI4 836
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
CNSTI4 840
|
|
ADDP4
|
|
INDIRI4
|
|
LSHI4
|
|
BANDI4
|
|
CNSTI4 0
|
|
NEI4 $147
|
|
line 381
|
|
;381: { //If the player isn't using his currently selected force power, select this one
|
|
line 382
|
|
;382: if (self->count != FP_SABERATTACK && self->count != FP_SABERDEFEND && self->count != FP_SABERTHROW && self->count != FP_LEVITATION)
|
|
ADDRLP4 40
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 40
|
|
INDIRI4
|
|
CNSTI4 15
|
|
EQI4 $149
|
|
ADDRLP4 40
|
|
INDIRI4
|
|
CNSTI4 16
|
|
EQI4 $149
|
|
ADDRLP4 40
|
|
INDIRI4
|
|
CNSTI4 17
|
|
EQI4 $149
|
|
ADDRLP4 40
|
|
INDIRI4
|
|
CNSTI4 1
|
|
EQI4 $149
|
|
line 383
|
|
;383: {
|
|
line 384
|
|
;384: other->client->ps.fd.forcePowerSelected = self->count;
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 840
|
|
ADDP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 385
|
|
;385: }
|
|
LABELV $149
|
|
line 386
|
|
;386: }
|
|
LABELV $147
|
|
line 388
|
|
;387:
|
|
;388: if (g_MaxHolocronCarry.integer && othercarrying >= g_MaxHolocronCarry.integer)
|
|
ADDRGP4 g_MaxHolocronCarry+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $151
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
ADDRGP4 g_MaxHolocronCarry+12
|
|
INDIRI4
|
|
LTI4 $151
|
|
line 389
|
|
;389: { //make the oldest holocron carried by the player pop out to make room for this one
|
|
line 390
|
|
;390: other->client->ps.holocronsCarried[index_lowest] = 0;
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDP4
|
|
CNSTF4 0
|
|
ASGNF4
|
|
line 405
|
|
;391:
|
|
;392: /*
|
|
;393: if (index_lowest == FP_SABERATTACK && !HasSetSaberOnly())
|
|
;394: { //you lost your saberattack holocron, so no more saber for you
|
|
;395: other->client->ps.stats[STAT_WEAPONS] |= (1 << WP_STUN_BATON);
|
|
;396: other->client->ps.stats[STAT_WEAPONS] &= ~(1 << WP_SABER);
|
|
;397:
|
|
;398: if (other->client->ps.weapon == WP_SABER)
|
|
;399: {
|
|
;400: forceReselect = WP_SABER;
|
|
;401: }
|
|
;402: }
|
|
;403: */
|
|
;404: //NOTE: No longer valid as we are now always giving a force level 1 saber attack level in holocron
|
|
;405: }
|
|
LABELV $151
|
|
line 408
|
|
;406:
|
|
;407: //G_Sound(other, CHAN_AUTO, G_SoundIndex("sound/weapons/w_pkup.wav"));
|
|
;408: G_AddEvent( other, EV_ITEM_PICKUP, self->s.number );
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 20
|
|
ARGI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 410
|
|
;409:
|
|
;410: other->client->ps.holocronsCarried[self->count] = level.time;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CVIF4 4
|
|
ASGNF4
|
|
line 411
|
|
;411: self->s.modelindex = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 212
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 412
|
|
;412: self->enemy = other;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 414
|
|
;413:
|
|
;414: self->pos2[0] = 1;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 560
|
|
ADDP4
|
|
CNSTF4 1065353216
|
|
ASGNF4
|
|
line 415
|
|
;415: self->pos2[1] = level.time + HOLOCRON_RESPAWN_TIME;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 564
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 30000
|
|
ADDI4
|
|
CVIF4 4
|
|
ASGNF4
|
|
line 430
|
|
;416:
|
|
;417: /*
|
|
;418: if (self->count == FP_SABERATTACK && !HasSetSaberOnly())
|
|
;419: { //player gets a saber
|
|
;420: other->client->ps.stats[STAT_WEAPONS] |= (1 << WP_SABER);
|
|
;421: other->client->ps.stats[STAT_WEAPONS] &= ~(1 << WP_STUN_BATON);
|
|
;422:
|
|
;423: if (other->client->ps.weapon == WP_STUN_BATON)
|
|
;424: {
|
|
;425: forceReselect = WP_STUN_BATON;
|
|
;426: }
|
|
;427: }
|
|
;428: */
|
|
;429:
|
|
;430: if (forceReselect != WP_NONE)
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $157
|
|
line 431
|
|
;431: {
|
|
line 432
|
|
;432: G_AddEvent(other, EV_NOAMMO, forceReselect);
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 22
|
|
ARGI4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 433
|
|
;433: }
|
|
LABELV $157
|
|
line 436
|
|
;434:
|
|
;435: //G_Printf("DON'T TOUCH ME\n");
|
|
;436:}
|
|
LABELV $119
|
|
endproc HolocronTouch 44 12
|
|
export HolocronThink
|
|
proc HolocronThink 68 4
|
|
line 439
|
|
;437:
|
|
;438:void HolocronThink(gentity_t *ent)
|
|
;439:{
|
|
line 440
|
|
;440: if (ent->pos2[0] && (!ent->enemy || !ent->enemy->client || ent->enemy->health < 1))
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 560
|
|
ADDP4
|
|
INDIRF4
|
|
CNSTF4 0
|
|
EQF4 $160
|
|
ADDRLP4 4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 8
|
|
INDIRU4
|
|
EQU4 $163
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 8
|
|
INDIRU4
|
|
EQU4 $163
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
GEI4 $160
|
|
LABELV $163
|
|
line 441
|
|
;441: {
|
|
line 442
|
|
;442: if (ent->enemy && ent->enemy->client)
|
|
ADDRLP4 12
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 16
|
|
INDIRU4
|
|
EQU4 $161
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 16
|
|
INDIRU4
|
|
EQU4 $161
|
|
line 443
|
|
;443: {
|
|
line 444
|
|
;444: HolocronRespawn(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 HolocronRespawn
|
|
CALLV
|
|
pop
|
|
line 445
|
|
;445: VectorCopy(ent->enemy->client->ps.origin, ent->s.pos.trBase);
|
|
ADDRLP4 20
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTI4 24
|
|
ADDP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 446
|
|
;446: VectorCopy(ent->enemy->client->ps.origin, ent->s.origin);
|
|
ADDRLP4 24
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 447
|
|
;447: VectorCopy(ent->enemy->client->ps.origin, ent->r.currentOrigin);
|
|
ADDRLP4 28
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
CNSTI4 368
|
|
ADDP4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 449
|
|
;448: //copy to person carrying's origin before popping out of them
|
|
;449: HolocronPopOut(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 HolocronPopOut
|
|
CALLV
|
|
pop
|
|
line 450
|
|
;450: ent->enemy->client->ps.holocronsCarried[ent->count] = 0;
|
|
ADDRLP4 32
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDP4
|
|
CNSTF4 0
|
|
ASGNF4
|
|
line 451
|
|
;451: ent->enemy = NULL;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 453
|
|
;452:
|
|
;453: goto justthink;
|
|
ADDRGP4 $166
|
|
JUMPV
|
|
line 455
|
|
;454: }
|
|
;455: }
|
|
LABELV $160
|
|
line 456
|
|
;456: else if (ent->pos2[0] && ent->enemy && ent->enemy->client)
|
|
ADDRLP4 12
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 560
|
|
ADDP4
|
|
INDIRF4
|
|
CNSTF4 0
|
|
EQF4 $167
|
|
ADDRLP4 16
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 20
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 20
|
|
INDIRU4
|
|
EQU4 $167
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 20
|
|
INDIRU4
|
|
EQU4 $167
|
|
line 457
|
|
;457: {
|
|
line 458
|
|
;458: ent->pos2[1] = level.time + HOLOCRON_RESPAWN_TIME;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 564
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 30000
|
|
ADDI4
|
|
CVIF4 4
|
|
ASGNF4
|
|
line 459
|
|
;459: }
|
|
LABELV $167
|
|
LABELV $161
|
|
line 461
|
|
;460:
|
|
;461: if (ent->enemy && ent->enemy->client)
|
|
ADDRLP4 24
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 28
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 28
|
|
INDIRU4
|
|
EQU4 $170
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 28
|
|
INDIRU4
|
|
EQU4 $170
|
|
line 462
|
|
;462: {
|
|
line 463
|
|
;463: if (!ent->enemy->client->ps.holocronsCarried[ent->count])
|
|
ADDRLP4 32
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDP4
|
|
INDIRF4
|
|
CNSTF4 0
|
|
NEF4 $172
|
|
line 464
|
|
;464: {
|
|
line 465
|
|
;465: ent->enemy->client->ps.holocronCantTouch = ent->s.number;
|
|
ADDRLP4 36
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 704
|
|
ADDP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 466
|
|
;466: ent->enemy->client->ps.holocronCantTouchTime = level.time + 5000;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 708
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 5000
|
|
ADDI4
|
|
CVIF4 4
|
|
ASGNF4
|
|
line 468
|
|
;467:
|
|
;468: HolocronRespawn(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 HolocronRespawn
|
|
CALLV
|
|
pop
|
|
line 469
|
|
;469: VectorCopy(ent->enemy->client->ps.origin, ent->s.pos.trBase);
|
|
ADDRLP4 40
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 40
|
|
INDIRP4
|
|
CNSTI4 24
|
|
ADDP4
|
|
ADDRLP4 40
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 470
|
|
;470: VectorCopy(ent->enemy->client->ps.origin, ent->s.origin);
|
|
ADDRLP4 44
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 44
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ADDRLP4 44
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 471
|
|
;471: VectorCopy(ent->enemy->client->ps.origin, ent->r.currentOrigin);
|
|
ADDRLP4 48
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 48
|
|
INDIRP4
|
|
CNSTI4 368
|
|
ADDP4
|
|
ADDRLP4 48
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 473
|
|
;472: //copy to person carrying's origin before popping out of them
|
|
;473: HolocronPopOut(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 HolocronPopOut
|
|
CALLV
|
|
pop
|
|
line 474
|
|
;474: ent->enemy = NULL;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 476
|
|
;475:
|
|
;476: goto justthink;
|
|
ADDRGP4 $166
|
|
JUMPV
|
|
LABELV $172
|
|
line 479
|
|
;477: }
|
|
;478:
|
|
;479: if (!ent->enemy->inuse || (ent->enemy->client && ent->enemy->client->ps.fallingToDeath))
|
|
ADDRLP4 36
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 40
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
CNSTI4 412
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 40
|
|
INDIRI4
|
|
EQI4 $177
|
|
ADDRLP4 44
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 44
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $175
|
|
ADDRLP4 44
|
|
INDIRP4
|
|
CNSTI4 1340
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 40
|
|
INDIRI4
|
|
EQI4 $175
|
|
LABELV $177
|
|
line 480
|
|
;480: {
|
|
line 481
|
|
;481: if (ent->enemy->inuse && ent->enemy->client)
|
|
ADDRLP4 48
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 48
|
|
INDIRP4
|
|
CNSTI4 412
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $178
|
|
ADDRLP4 48
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $178
|
|
line 482
|
|
;482: {
|
|
line 483
|
|
;483: ent->enemy->client->ps.holocronBits &= ~(1 << ent->count);
|
|
ADDRLP4 52
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 56
|
|
CNSTI4 712
|
|
ASGNI4
|
|
ADDRLP4 60
|
|
ADDRLP4 52
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ADDRLP4 56
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 60
|
|
INDIRP4
|
|
ADDRLP4 60
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDRLP4 52
|
|
INDIRP4
|
|
ADDRLP4 56
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
LSHI4
|
|
BCOMI4
|
|
BANDI4
|
|
ASGNI4
|
|
line 484
|
|
;484: ent->enemy->client->ps.holocronsCarried[ent->count] = 0;
|
|
ADDRLP4 64
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 64
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRLP4 64
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDP4
|
|
CNSTF4 0
|
|
ASGNF4
|
|
line 485
|
|
;485: }
|
|
LABELV $178
|
|
line 486
|
|
;486: ent->enemy = NULL;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 487
|
|
;487: HolocronRespawn(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 HolocronRespawn
|
|
CALLV
|
|
pop
|
|
line 488
|
|
;488: VectorCopy(ent->s.origin2, ent->s.pos.trBase);
|
|
ADDRLP4 52
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 52
|
|
INDIRP4
|
|
CNSTI4 24
|
|
ADDP4
|
|
ADDRLP4 52
|
|
INDIRP4
|
|
CNSTI4 104
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 489
|
|
;489: VectorCopy(ent->s.origin2, ent->s.origin);
|
|
ADDRLP4 56
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 56
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ADDRLP4 56
|
|
INDIRP4
|
|
CNSTI4 104
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 490
|
|
;490: VectorCopy(ent->s.origin2, ent->r.currentOrigin);
|
|
ADDRLP4 60
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 60
|
|
INDIRP4
|
|
CNSTI4 368
|
|
ADDP4
|
|
ADDRLP4 60
|
|
INDIRP4
|
|
CNSTI4 104
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 492
|
|
;491:
|
|
;492: ent->s.pos.trTime = level.time;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 16
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 494
|
|
;493:
|
|
;494: ent->pos2[0] = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 560
|
|
ADDP4
|
|
CNSTF4 0
|
|
ASGNF4
|
|
line 496
|
|
;495:
|
|
;496: trap_LinkEntity(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_LinkEntity
|
|
CALLV
|
|
pop
|
|
line 498
|
|
;497:
|
|
;498: goto justthink;
|
|
ADDRGP4 $166
|
|
JUMPV
|
|
LABELV $175
|
|
line 500
|
|
;499: }
|
|
;500: }
|
|
LABELV $170
|
|
line 502
|
|
;501:
|
|
;502: if (ent->pos2[0] && ent->pos2[1] < level.time)
|
|
ADDRLP4 32
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
CNSTI4 560
|
|
ADDP4
|
|
INDIRF4
|
|
CNSTF4 0
|
|
EQF4 $181
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
CNSTI4 564
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CVIF4 4
|
|
GEF4 $181
|
|
line 503
|
|
;503: { //isn't in original place and has been there for (HOLOCRON_RESPAWN_TIME) seconds without being picked up, so respawn
|
|
line 504
|
|
;504: VectorCopy(ent->s.origin2, ent->s.pos.trBase);
|
|
ADDRLP4 36
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
CNSTI4 24
|
|
ADDP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
CNSTI4 104
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 505
|
|
;505: VectorCopy(ent->s.origin2, ent->s.origin);
|
|
ADDRLP4 40
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 40
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ADDRLP4 40
|
|
INDIRP4
|
|
CNSTI4 104
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 506
|
|
;506: VectorCopy(ent->s.origin2, ent->r.currentOrigin);
|
|
ADDRLP4 44
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 44
|
|
INDIRP4
|
|
CNSTI4 368
|
|
ADDP4
|
|
ADDRLP4 44
|
|
INDIRP4
|
|
CNSTI4 104
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 508
|
|
;507:
|
|
;508: ent->s.pos.trTime = level.time;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 16
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 510
|
|
;509:
|
|
;510: ent->pos2[0] = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 560
|
|
ADDP4
|
|
CNSTF4 0
|
|
ASGNF4
|
|
line 512
|
|
;511:
|
|
;512: trap_LinkEntity(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_LinkEntity
|
|
CALLV
|
|
pop
|
|
line 513
|
|
;513: }
|
|
LABELV $181
|
|
LABELV $166
|
|
line 516
|
|
;514:
|
|
;515:justthink:
|
|
;516: ent->nextthink = level.time + 50;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 50
|
|
ADDI4
|
|
ASGNI4
|
|
line 518
|
|
;517:
|
|
;518: if (ent->s.pos.trDelta[0] || ent->s.pos.trDelta[1] || ent->s.pos.trDelta[2])
|
|
ADDRLP4 36
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 40
|
|
CNSTF4 0
|
|
ASGNF4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
CNSTI4 36
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 40
|
|
INDIRF4
|
|
NEF4 $189
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
CNSTI4 40
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 40
|
|
INDIRF4
|
|
NEF4 $189
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
CNSTI4 44
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 40
|
|
INDIRF4
|
|
EQF4 $186
|
|
LABELV $189
|
|
line 519
|
|
;519: {
|
|
line 520
|
|
;520: G_RunObject(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_RunObject
|
|
CALLV
|
|
pop
|
|
line 521
|
|
;521: }
|
|
LABELV $186
|
|
line 522
|
|
;522:}
|
|
LABELV $159
|
|
endproc HolocronThink 68 4
|
|
export SP_misc_holocron
|
|
proc SP_misc_holocron 1132 28
|
|
line 525
|
|
;523:
|
|
;524:void SP_misc_holocron(gentity_t *ent)
|
|
;525:{
|
|
line 529
|
|
;526: vec3_t dest;
|
|
;527: trace_t tr;
|
|
;528:
|
|
;529: if (g_gametype.integer != GT_HOLOCRON)
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 1
|
|
EQI4 $191
|
|
line 530
|
|
;530: {
|
|
line 531
|
|
;531: G_FreeEntity(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_FreeEntity
|
|
CALLV
|
|
pop
|
|
line 532
|
|
;532: return;
|
|
ADDRGP4 $190
|
|
JUMPV
|
|
LABELV $191
|
|
line 535
|
|
;533: }
|
|
;534:
|
|
;535: if (HasSetSaberOnly())
|
|
ADDRLP4 1092
|
|
ADDRGP4 HasSetSaberOnly
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 1092
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $194
|
|
line 536
|
|
;536: {
|
|
line 537
|
|
;537: if (ent->count == FP_SABERATTACK ||
|
|
ADDRLP4 1096
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 1096
|
|
INDIRI4
|
|
CNSTI4 15
|
|
EQI4 $199
|
|
ADDRLP4 1096
|
|
INDIRI4
|
|
CNSTI4 16
|
|
EQI4 $199
|
|
ADDRLP4 1096
|
|
INDIRI4
|
|
CNSTI4 17
|
|
NEI4 $196
|
|
LABELV $199
|
|
line 540
|
|
;538: ent->count == FP_SABERDEFEND ||
|
|
;539: ent->count == FP_SABERTHROW)
|
|
;540: { //having saber holocrons in saber only mode is pointless
|
|
line 541
|
|
;541: G_FreeEntity(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_FreeEntity
|
|
CALLV
|
|
pop
|
|
line 542
|
|
;542: return;
|
|
ADDRGP4 $190
|
|
JUMPV
|
|
LABELV $196
|
|
line 544
|
|
;543: }
|
|
;544: }
|
|
LABELV $194
|
|
line 546
|
|
;545:
|
|
;546: ent->s.isJediMaster = qtrue;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 244
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 548
|
|
;547:
|
|
;548: VectorSet( ent->r.maxs, 8, 8, 8 );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
CNSTF4 1090519040
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 332
|
|
ADDP4
|
|
CNSTF4 1090519040
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
CNSTF4 1090519040
|
|
ASGNF4
|
|
line 549
|
|
;549: VectorSet( ent->r.mins, -8, -8, -8 );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
CNSTF4 3238002688
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 320
|
|
ADDP4
|
|
CNSTF4 3238002688
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 324
|
|
ADDP4
|
|
CNSTF4 3238002688
|
|
ASGNF4
|
|
line 551
|
|
;550:
|
|
;551: ent->s.origin[2] += 0.1;
|
|
ADDRLP4 1096
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 100
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1096
|
|
INDIRP4
|
|
ADDRLP4 1096
|
|
INDIRP4
|
|
INDIRF4
|
|
CNSTF4 1036831949
|
|
ADDF4
|
|
ASGNF4
|
|
line 552
|
|
;552: ent->r.maxs[2] -= 0.1;
|
|
ADDRLP4 1100
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1100
|
|
INDIRP4
|
|
ADDRLP4 1100
|
|
INDIRP4
|
|
INDIRF4
|
|
CNSTF4 1036831949
|
|
SUBF4
|
|
ASGNF4
|
|
line 554
|
|
;553:
|
|
;554: VectorSet( dest, ent->s.origin[0], ent->s.origin[1], ent->s.origin[2] - 4096 );
|
|
ADDRLP4 1104
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 1104
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
INDIRF4
|
|
ASGNF4
|
|
ADDRLP4 0+4
|
|
ADDRLP4 1104
|
|
INDIRP4
|
|
CNSTI4 96
|
|
ADDP4
|
|
INDIRF4
|
|
ASGNF4
|
|
ADDRLP4 0+8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 100
|
|
ADDP4
|
|
INDIRF4
|
|
CNSTF4 1166016512
|
|
SUBF4
|
|
ASGNF4
|
|
line 555
|
|
;555: trap_Trace( &tr, ent->s.origin, ent->r.mins, ent->r.maxs, dest, ent->s.number, MASK_SOLID );
|
|
ADDRLP4 12
|
|
ARGP4
|
|
ADDRLP4 1108
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1108
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 1108
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 1108
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ARGP4
|
|
ADDRLP4 1108
|
|
INDIRP4
|
|
INDIRI4
|
|
ARGI4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 trap_Trace
|
|
CALLV
|
|
pop
|
|
line 556
|
|
;556: if ( tr.startsolid )
|
|
ADDRLP4 12+4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $202
|
|
line 557
|
|
;557: {
|
|
line 558
|
|
;558: G_Printf ("SP_misc_holocron: misc_holocron startsolid at %s\n", vtos(ent->s.origin));
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 1112
|
|
ADDRGP4 vtos
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $205
|
|
ARGP4
|
|
ADDRLP4 1112
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_Printf
|
|
CALLV
|
|
pop
|
|
line 559
|
|
;559: G_FreeEntity( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_FreeEntity
|
|
CALLV
|
|
pop
|
|
line 560
|
|
;560: return;
|
|
ADDRGP4 $190
|
|
JUMPV
|
|
LABELV $202
|
|
line 564
|
|
;561: }
|
|
;562:
|
|
;563: //add the 0.1 back after the trace
|
|
;564: ent->r.maxs[2] += 0.1;
|
|
ADDRLP4 1112
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1112
|
|
INDIRP4
|
|
ADDRLP4 1112
|
|
INDIRP4
|
|
INDIRF4
|
|
CNSTF4 1036831949
|
|
ADDF4
|
|
ASGNF4
|
|
line 569
|
|
;565:
|
|
;566: // allow to ride movers
|
|
;567:// ent->s.groundEntityNum = tr.entityNum;
|
|
;568:
|
|
;569: G_SetOrigin( ent, tr.endpos );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 12+12
|
|
ARGP4
|
|
ADDRGP4 G_SetOrigin
|
|
CALLV
|
|
pop
|
|
line 571
|
|
;570:
|
|
;571: if (ent->count < 0)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
GEI4 $207
|
|
line 572
|
|
;572: {
|
|
line 573
|
|
;573: ent->count = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 574
|
|
;574: }
|
|
LABELV $207
|
|
line 576
|
|
;575:
|
|
;576: if (ent->count >= NUM_FORCE_POWERS)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 18
|
|
LTI4 $209
|
|
line 577
|
|
;577: {
|
|
line 578
|
|
;578: ent->count = NUM_FORCE_POWERS-1;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
CNSTI4 17
|
|
ASGNI4
|
|
line 579
|
|
;579: }
|
|
LABELV $209
|
|
line 591
|
|
;580:/*
|
|
;581: if (g_forcePowerDisable.integer &&
|
|
;582: (g_forcePowerDisable.integer & (1 << ent->count)))
|
|
;583: {
|
|
;584: G_FreeEntity(ent);
|
|
;585: return;
|
|
;586: }
|
|
;587:*/
|
|
;588: //No longer doing this, causing too many complaints about accidentally setting no force powers at all
|
|
;589: //and starting a holocron game (making it basically just FFA)
|
|
;590:
|
|
;591: ent->enemy = NULL;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 593
|
|
;592:
|
|
;593: ent->s.eFlags = EF_BOUNCE_HALF;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 8
|
|
ADDP4
|
|
CNSTI4 32
|
|
ASGNI4
|
|
line 595
|
|
;594:
|
|
;595: ent->s.modelindex = (ent->count - 128);//G_ModelIndex(holocronTypeModels[ent->count]);
|
|
ADDRLP4 1116
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1116
|
|
INDIRP4
|
|
CNSTI4 212
|
|
ADDP4
|
|
ADDRLP4 1116
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 128
|
|
SUBI4
|
|
ASGNI4
|
|
line 596
|
|
;596: ent->s.eType = ET_HOLOCRON;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
CNSTI4 5
|
|
ASGNI4
|
|
line 597
|
|
;597: ent->s.pos.trType = TR_GRAVITY;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 12
|
|
ADDP4
|
|
CNSTI4 5
|
|
ASGNI4
|
|
line 598
|
|
;598: ent->s.pos.trTime = level.time;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 16
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 600
|
|
;599:
|
|
;600: ent->r.contents = CONTENTS_TRIGGER;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 340
|
|
ADDP4
|
|
CNSTI4 1024
|
|
ASGNI4
|
|
line 601
|
|
;601: ent->clipmask = MASK_SOLID;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 508
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 603
|
|
;602:
|
|
;603: ent->s.trickedentindex4 = ent->count;
|
|
ADDRLP4 1120
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1120
|
|
INDIRP4
|
|
CNSTI4 160
|
|
ADDP4
|
|
ADDRLP4 1120
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 605
|
|
;604:
|
|
;605: if (forcePowerDarkLight[ent->count] == FORCE_DARKSIDE)
|
|
ADDRLP4 1124
|
|
CNSTI4 2
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 1124
|
|
INDIRI4
|
|
LSHI4
|
|
ADDRGP4 forcePowerDarkLight
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 1124
|
|
INDIRI4
|
|
NEI4 $212
|
|
line 606
|
|
;606: {
|
|
line 607
|
|
;607: ent->s.trickedentindex3 = 1;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 156
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 608
|
|
;608: }
|
|
ADDRGP4 $213
|
|
JUMPV
|
|
LABELV $212
|
|
line 609
|
|
;609: else if (forcePowerDarkLight[ent->count] == FORCE_LIGHTSIDE)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 forcePowerDarkLight
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
NEI4 $214
|
|
line 610
|
|
;610: {
|
|
line 611
|
|
;611: ent->s.trickedentindex3 = 2;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 156
|
|
ADDP4
|
|
CNSTI4 2
|
|
ASGNI4
|
|
line 612
|
|
;612: }
|
|
ADDRGP4 $215
|
|
JUMPV
|
|
LABELV $214
|
|
line 614
|
|
;613: else
|
|
;614: {
|
|
line 615
|
|
;615: ent->s.trickedentindex3 = 3;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 156
|
|
ADDP4
|
|
CNSTI4 3
|
|
ASGNI4
|
|
line 616
|
|
;616: }
|
|
LABELV $215
|
|
LABELV $213
|
|
line 618
|
|
;617:
|
|
;618: ent->physicsObject = qtrue;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 500
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 620
|
|
;619:
|
|
;620: VectorCopy(ent->s.pos.trBase, ent->s.origin2); //remember the spawn spot
|
|
ADDRLP4 1128
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1128
|
|
INDIRP4
|
|
CNSTI4 104
|
|
ADDP4
|
|
ADDRLP4 1128
|
|
INDIRP4
|
|
CNSTI4 24
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 622
|
|
;621:
|
|
;622: ent->touch = HolocronTouch;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 648
|
|
ADDP4
|
|
ADDRGP4 HolocronTouch
|
|
ASGNP4
|
|
line 624
|
|
;623:
|
|
;624: trap_LinkEntity(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_LinkEntity
|
|
CALLV
|
|
pop
|
|
line 626
|
|
;625:
|
|
;626: ent->think = HolocronThink;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
ADDRGP4 HolocronThink
|
|
ASGNP4
|
|
line 627
|
|
;627: ent->nextthink = level.time + 50;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 50
|
|
ADDI4
|
|
ASGNI4
|
|
line 628
|
|
;628:}
|
|
LABELV $190
|
|
endproc SP_misc_holocron 1132 28
|
|
export Use_Shooter
|
|
proc Use_Shooter 64 16
|
|
line 638
|
|
;629:
|
|
;630:/*
|
|
;631:======================================================================
|
|
;632:
|
|
;633: SHOOTERS
|
|
;634:
|
|
;635:======================================================================
|
|
;636:*/
|
|
;637:
|
|
;638:void Use_Shooter( gentity_t *ent, gentity_t *other, gentity_t *activator ) {
|
|
line 644
|
|
;639: vec3_t dir;
|
|
;640: float deg;
|
|
;641: vec3_t up, right;
|
|
;642:
|
|
;643: // see if we have a target
|
|
;644: if ( ent->enemy ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $218
|
|
line 645
|
|
;645: VectorSubtract( ent->enemy->r.currentOrigin, ent->s.origin, dir );
|
|
ADDRLP4 40
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 44
|
|
ADDRLP4 40
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 44
|
|
INDIRP4
|
|
INDIRP4
|
|
CNSTI4 368
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 40
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 0+4
|
|
ADDRLP4 44
|
|
INDIRP4
|
|
INDIRP4
|
|
CNSTI4 372
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 40
|
|
INDIRP4
|
|
CNSTI4 96
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 48
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0+8
|
|
ADDRLP4 48
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 376
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 48
|
|
INDIRP4
|
|
CNSTI4 100
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 646
|
|
;646: VectorNormalize( dir );
|
|
ADDRLP4 0
|
|
ARGP4
|
|
ADDRGP4 VectorNormalize
|
|
CALLF4
|
|
pop
|
|
line 647
|
|
;647: } else {
|
|
ADDRGP4 $219
|
|
JUMPV
|
|
LABELV $218
|
|
line 648
|
|
;648: VectorCopy( ent->movedir, dir );
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 612
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 649
|
|
;649: }
|
|
LABELV $219
|
|
line 652
|
|
;650:
|
|
;651: // randomize a bit
|
|
;652: PerpendicularVector( up, dir );
|
|
ADDRLP4 16
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ARGP4
|
|
ADDRGP4 PerpendicularVector
|
|
CALLV
|
|
pop
|
|
line 653
|
|
;653: CrossProduct( up, dir, right );
|
|
ADDRLP4 16
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ARGP4
|
|
ADDRLP4 28
|
|
ARGP4
|
|
ADDRGP4 CrossProduct
|
|
CALLV
|
|
pop
|
|
line 655
|
|
;654:
|
|
;655: deg = crandom() * ent->random;
|
|
ADDRLP4 40
|
|
ADDRGP4 rand
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 12
|
|
CNSTF4 1073741824
|
|
ADDRLP4 40
|
|
INDIRI4
|
|
CNSTI4 32767
|
|
BANDI4
|
|
CVIF4 4
|
|
CNSTF4 1191181824
|
|
DIVF4
|
|
CNSTF4 1056964608
|
|
SUBF4
|
|
MULF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 760
|
|
ADDP4
|
|
INDIRF4
|
|
MULF4
|
|
ASGNF4
|
|
line 656
|
|
;656: VectorMA( dir, deg, up, dir );
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
ADDRLP4 16
|
|
INDIRF4
|
|
ADDRLP4 12
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 0+4
|
|
ADDRLP4 0+4
|
|
INDIRF4
|
|
ADDRLP4 16+4
|
|
INDIRF4
|
|
ADDRLP4 12
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 0+8
|
|
ADDRLP4 0+8
|
|
INDIRF4
|
|
ADDRLP4 16+8
|
|
INDIRF4
|
|
ADDRLP4 12
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
line 658
|
|
;657:
|
|
;658: deg = crandom() * ent->random;
|
|
ADDRLP4 48
|
|
ADDRGP4 rand
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 12
|
|
CNSTF4 1073741824
|
|
ADDRLP4 48
|
|
INDIRI4
|
|
CNSTI4 32767
|
|
BANDI4
|
|
CVIF4 4
|
|
CNSTF4 1191181824
|
|
DIVF4
|
|
CNSTF4 1056964608
|
|
SUBF4
|
|
MULF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 760
|
|
ADDP4
|
|
INDIRF4
|
|
MULF4
|
|
ASGNF4
|
|
line 659
|
|
;659: VectorMA( dir, deg, right, dir );
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
ADDRLP4 28
|
|
INDIRF4
|
|
ADDRLP4 12
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 0+4
|
|
ADDRLP4 0+4
|
|
INDIRF4
|
|
ADDRLP4 28+4
|
|
INDIRF4
|
|
ADDRLP4 12
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 0+8
|
|
ADDRLP4 0+8
|
|
INDIRF4
|
|
ADDRLP4 28+8
|
|
INDIRF4
|
|
ADDRLP4 12
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
line 661
|
|
;660:
|
|
;661: VectorNormalize( dir );
|
|
ADDRLP4 0
|
|
ARGP4
|
|
ADDRGP4 VectorNormalize
|
|
CALLF4
|
|
pop
|
|
line 663
|
|
;662:
|
|
;663: switch ( ent->s.weapon ) {
|
|
ADDRLP4 56
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 276
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 56
|
|
INDIRI4
|
|
CNSTI4 4
|
|
EQI4 $237
|
|
ADDRGP4 $234
|
|
JUMPV
|
|
LABELV $237
|
|
line 665
|
|
;664: case WP_BLASTER:
|
|
;665: WP_FireBlasterMissile( ent, ent->s.origin, dir, qfalse );
|
|
ADDRLP4 60
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 60
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 60
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 WP_FireBlasterMissile
|
|
CALLV
|
|
pop
|
|
line 666
|
|
;666: break;
|
|
LABELV $234
|
|
LABELV $235
|
|
line 669
|
|
;667: }
|
|
;668:
|
|
;669: G_AddEvent( ent, EV_FIRE_WEAPON, 0 );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 24
|
|
ARGI4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 670
|
|
;670:}
|
|
LABELV $217
|
|
endproc Use_Shooter 64 16
|
|
proc InitShooter_Finish 8 4
|
|
line 673
|
|
;671:
|
|
;672:
|
|
;673:static void InitShooter_Finish( gentity_t *ent ) {
|
|
line 674
|
|
;674: ent->enemy = G_PickTarget( ent->target );
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRGP4 G_PickTarget
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 675
|
|
;675: ent->think = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 676
|
|
;676: ent->nextthink = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 677
|
|
;677:}
|
|
LABELV $238
|
|
endproc InitShooter_Finish 8 4
|
|
export InitShooter
|
|
proc InitShooter 16 8
|
|
line 679
|
|
;678:
|
|
;679:void InitShooter( gentity_t *ent, int weapon ) {
|
|
line 680
|
|
;680: ent->use = Use_Shooter;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 652
|
|
ADDP4
|
|
ADDRGP4 Use_Shooter
|
|
ASGNP4
|
|
line 681
|
|
;681: ent->s.weapon = weapon;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 276
|
|
ADDP4
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 683
|
|
;682:
|
|
;683: RegisterItem( BG_FindItemForWeapon( weapon ) );
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 0
|
|
ADDRGP4 BG_FindItemForWeapon
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 RegisterItem
|
|
CALLV
|
|
pop
|
|
line 685
|
|
;684:
|
|
;685: G_SetMovedir( ent->s.angles, ent->movedir );
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 116
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 612
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_SetMovedir
|
|
CALLV
|
|
pop
|
|
line 687
|
|
;686:
|
|
;687: if ( !ent->random ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 760
|
|
ADDP4
|
|
INDIRF4
|
|
CNSTF4 0
|
|
NEF4 $240
|
|
line 688
|
|
;688: ent->random = 1.0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 760
|
|
ADDP4
|
|
CNSTF4 1065353216
|
|
ASGNF4
|
|
line 689
|
|
;689: }
|
|
LABELV $240
|
|
line 690
|
|
;690: ent->random = sin( M_PI * ent->random / 180 );
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 760
|
|
ADDP4
|
|
ASGNP4
|
|
CNSTF4 1078530011
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
INDIRF4
|
|
MULF4
|
|
CNSTF4 1127481344
|
|
DIVF4
|
|
ARGF4
|
|
ADDRLP4 12
|
|
ADDRGP4 sin
|
|
CALLF4
|
|
ASGNF4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ADDRLP4 12
|
|
INDIRF4
|
|
ASGNF4
|
|
line 692
|
|
;691: // target might be a moving object, so we can't set movedir for it
|
|
;692: if ( ent->target ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $242
|
|
line 693
|
|
;693: ent->think = InitShooter_Finish;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
ADDRGP4 InitShooter_Finish
|
|
ASGNP4
|
|
line 694
|
|
;694: ent->nextthink = level.time + 500;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 500
|
|
ADDI4
|
|
ASGNI4
|
|
line 695
|
|
;695: }
|
|
LABELV $242
|
|
line 696
|
|
;696: trap_LinkEntity( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_LinkEntity
|
|
CALLV
|
|
pop
|
|
line 697
|
|
;697:}
|
|
LABELV $239
|
|
endproc InitShooter 16 8
|
|
export SP_shooter_blaster
|
|
proc SP_shooter_blaster 0 8
|
|
line 703
|
|
;698:
|
|
;699:/*QUAKED shooter_blaster (1 0 0) (-16 -16 -16) (16 16 16)
|
|
;700:Fires at either the target or the current direction.
|
|
;701:"random" is the number of degrees of deviance from the taget. (1.0 default)
|
|
;702:*/
|
|
;703:void SP_shooter_blaster( gentity_t *ent ) {
|
|
line 704
|
|
;704: InitShooter( ent, WP_BLASTER);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 4
|
|
ARGI4
|
|
ADDRGP4 InitShooter
|
|
CALLV
|
|
pop
|
|
line 705
|
|
;705:}
|
|
LABELV $245
|
|
endproc SP_shooter_blaster 0 8
|
|
export check_recharge
|
|
proc check_recharge 8 0
|
|
line 708
|
|
;706:
|
|
;707:void check_recharge(gentity_t *ent)
|
|
;708:{
|
|
line 709
|
|
;709: if (ent->fly_sound_debounce_time < level.time)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 668
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
GEI4 $247
|
|
line 710
|
|
;710: {
|
|
line 711
|
|
;711: ent->s.loopSound = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 200
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 712
|
|
;712: }
|
|
LABELV $247
|
|
line 714
|
|
;713:
|
|
;714: if (ent->count < ent->boltpoint4)
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 780
|
|
ADDP4
|
|
INDIRI4
|
|
GEI4 $250
|
|
line 715
|
|
;715: {
|
|
line 716
|
|
;716: ent->count++;
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 717
|
|
;717: }
|
|
LABELV $250
|
|
line 719
|
|
;718:
|
|
;719: ent->nextthink = level.time + ent->bolt_Head;
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 784
|
|
ADDP4
|
|
INDIRI4
|
|
ADDI4
|
|
ASGNI4
|
|
line 720
|
|
;720:}
|
|
LABELV $246
|
|
endproc check_recharge 8 0
|
|
export EnergyShieldStationSettings
|
|
proc EnergyShieldStationSettings 0 12
|
|
line 728
|
|
;721:
|
|
;722:/*
|
|
;723:================
|
|
;724:EnergyShieldStationSettings
|
|
;725:================
|
|
;726:*/
|
|
;727:void EnergyShieldStationSettings(gentity_t *ent)
|
|
;728:{
|
|
line 729
|
|
;729: G_SpawnInt( "count", "0", &ent->count );
|
|
ADDRGP4 $254
|
|
ARGP4
|
|
ADDRGP4 $112
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_SpawnInt
|
|
CALLI4
|
|
pop
|
|
line 731
|
|
;730:
|
|
;731: if (!ent->count)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $255
|
|
line 732
|
|
;732: {
|
|
line 733
|
|
;733: ent->count = 50;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
CNSTI4 50
|
|
ASGNI4
|
|
line 734
|
|
;734: }
|
|
LABELV $255
|
|
line 736
|
|
;735:
|
|
;736: G_SpawnInt("chargerate", "0", &ent->bolt_Head);
|
|
ADDRGP4 $257
|
|
ARGP4
|
|
ADDRGP4 $112
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 784
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_SpawnInt
|
|
CALLI4
|
|
pop
|
|
line 738
|
|
;737:
|
|
;738: if (!ent->bolt_Head)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 784
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $258
|
|
line 739
|
|
;739: {
|
|
line 740
|
|
;740: ent->bolt_Head = STATION_RECHARGE_TIME;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 784
|
|
ADDP4
|
|
CNSTI4 3000
|
|
ASGNI4
|
|
line 741
|
|
;741: }
|
|
LABELV $258
|
|
line 742
|
|
;742:}
|
|
LABELV $253
|
|
endproc EnergyShieldStationSettings 0 12
|
|
export shield_power_converter_use
|
|
proc shield_power_converter_use 32 12
|
|
line 750
|
|
;743:
|
|
;744:/*
|
|
;745:================
|
|
;746:shield_power_converter_use
|
|
;747:================
|
|
;748:*/
|
|
;749:void shield_power_converter_use( gentity_t *self, gentity_t *other, gentity_t *activator)
|
|
;750:{
|
|
line 752
|
|
;751: int dif,add;
|
|
;752: int stop = 1;
|
|
ADDRLP4 0
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 754
|
|
;753:
|
|
;754: if (!activator || !activator->client)
|
|
ADDRLP4 12
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 16
|
|
INDIRU4
|
|
EQU4 $263
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 16
|
|
INDIRU4
|
|
NEU4 $261
|
|
LABELV $263
|
|
line 755
|
|
;755: {
|
|
line 756
|
|
;756: return;
|
|
ADDRGP4 $260
|
|
JUMPV
|
|
LABELV $261
|
|
line 759
|
|
;757: }
|
|
;758:
|
|
;759: if (self->setTime < level.time)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 628
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
GEI4 $264
|
|
line 760
|
|
;760: {
|
|
line 761
|
|
;761: if (!self->s.loopSound)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 200
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $267
|
|
line 762
|
|
;762: {
|
|
line 763
|
|
;763: self->s.loopSound = G_SoundIndex("sound/interface/shieldcon_run.wav");
|
|
ADDRGP4 $269
|
|
ARGP4
|
|
ADDRLP4 20
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 200
|
|
ADDP4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
ASGNI4
|
|
line 764
|
|
;764: }
|
|
LABELV $267
|
|
line 765
|
|
;765: self->setTime = level.time + 100;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 628
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 100
|
|
ADDI4
|
|
ASGNI4
|
|
line 767
|
|
;766:
|
|
;767: dif = activator->client->ps.stats[STAT_MAX_HEALTH] - activator->client->ps.stats[STAT_ARMOR];
|
|
ADDRLP4 20
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTI4 248
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTI4 236
|
|
ADDP4
|
|
INDIRI4
|
|
SUBI4
|
|
ASGNI4
|
|
line 769
|
|
;768:
|
|
;769: if (dif > 0) // Already at full armor?
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
LEI4 $271
|
|
line 770
|
|
;770: {
|
|
line 771
|
|
;771: if (dif >MAX_AMMO_GIVE)
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LEI4 $273
|
|
line 772
|
|
;772: {
|
|
line 773
|
|
;773: add = MAX_AMMO_GIVE;
|
|
ADDRLP4 8
|
|
CNSTI4 2
|
|
ASGNI4
|
|
line 774
|
|
;774: }
|
|
ADDRGP4 $274
|
|
JUMPV
|
|
LABELV $273
|
|
line 776
|
|
;775: else
|
|
;776: {
|
|
line 777
|
|
;777: add = dif;
|
|
ADDRLP4 8
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 778
|
|
;778: }
|
|
LABELV $274
|
|
line 780
|
|
;779:
|
|
;780: if (self->count<add)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
GEI4 $275
|
|
line 781
|
|
;781: {
|
|
line 782
|
|
;782: add = self->count;
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 783
|
|
;783: }
|
|
LABELV $275
|
|
line 785
|
|
;784:
|
|
;785: self->count -= add;
|
|
ADDRLP4 24
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
SUBI4
|
|
ASGNI4
|
|
line 786
|
|
;786: if (self->count <= 0)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
GTI4 $277
|
|
line 787
|
|
;787: {
|
|
line 788
|
|
;788: self->setTime = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 628
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 789
|
|
;789: }
|
|
LABELV $277
|
|
line 790
|
|
;790: stop = 0;
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 792
|
|
;791:
|
|
;792: self->fly_sound_debounce_time = level.time + 50;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 668
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 50
|
|
ADDI4
|
|
ASGNI4
|
|
line 794
|
|
;793:
|
|
;794: activator->client->ps.stats[STAT_ARMOR] += add;
|
|
ADDRLP4 28
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 236
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ADDI4
|
|
ASGNI4
|
|
line 795
|
|
;795: }
|
|
LABELV $271
|
|
line 796
|
|
;796: }
|
|
LABELV $264
|
|
line 798
|
|
;797:
|
|
;798: if (stop || self->count <= 0)
|
|
ADDRLP4 20
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
NEI4 $282
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
GTI4 $280
|
|
LABELV $282
|
|
line 799
|
|
;799: {
|
|
line 800
|
|
;800: if (self->s.loopSound && self->setTime < level.time)
|
|
ADDRLP4 24
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
CNSTI4 200
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $283
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
CNSTI4 628
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
GEI4 $283
|
|
line 801
|
|
;801: {
|
|
line 802
|
|
;802: G_Sound(self, CHAN_AUTO, G_SoundIndex("sound/interface/shieldcon_done.mp3"));
|
|
ADDRGP4 $286
|
|
ARGP4
|
|
ADDRLP4 28
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_Sound
|
|
CALLV
|
|
pop
|
|
line 803
|
|
;803: }
|
|
LABELV $283
|
|
line 804
|
|
;804: self->s.loopSound = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 200
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 805
|
|
;805: if (self->setTime < level.time)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 628
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
GEI4 $287
|
|
line 806
|
|
;806: {
|
|
line 807
|
|
;807: self->setTime = level.time + self->bolt_Head+100;
|
|
ADDRLP4 28
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
CNSTI4 628
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
CNSTI4 784
|
|
ADDP4
|
|
INDIRI4
|
|
ADDI4
|
|
CNSTI4 100
|
|
ADDI4
|
|
ASGNI4
|
|
line 808
|
|
;808: }
|
|
LABELV $287
|
|
line 809
|
|
;809: }
|
|
LABELV $280
|
|
line 810
|
|
;810:}
|
|
LABELV $260
|
|
endproc shield_power_converter_use 32 12
|
|
export SP_misc_shield_floor_unit
|
|
proc SP_misc_shield_floor_unit 1136 28
|
|
line 815
|
|
;811:
|
|
;812://QED comment is in bg_misc
|
|
;813://------------------------------------------------------------
|
|
;814:void SP_misc_shield_floor_unit( gentity_t *ent )
|
|
;815:{
|
|
line 819
|
|
;816: vec3_t dest;
|
|
;817: trace_t tr;
|
|
;818:
|
|
;819: if (g_gametype.integer != GT_CTF &&
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 7
|
|
EQI4 $292
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 8
|
|
EQI4 $292
|
|
line 821
|
|
;820: g_gametype.integer != GT_CTY)
|
|
;821: {
|
|
line 822
|
|
;822: G_FreeEntity( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_FreeEntity
|
|
CALLV
|
|
pop
|
|
line 823
|
|
;823: return;
|
|
ADDRGP4 $291
|
|
JUMPV
|
|
LABELV $292
|
|
line 826
|
|
;824: }
|
|
;825:
|
|
;826: VectorSet( ent->r.mins, -16, -16, 0 );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
CNSTF4 3246391296
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 320
|
|
ADDP4
|
|
CNSTF4 3246391296
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 324
|
|
ADDP4
|
|
CNSTF4 0
|
|
ASGNF4
|
|
line 827
|
|
;827: VectorSet( ent->r.maxs, 16, 16, 40 );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
CNSTF4 1098907648
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 332
|
|
ADDP4
|
|
CNSTF4 1098907648
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
CNSTF4 1109393408
|
|
ASGNF4
|
|
line 829
|
|
;828:
|
|
;829: ent->s.origin[2] += 0.1;
|
|
ADDRLP4 1092
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 100
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1092
|
|
INDIRP4
|
|
ADDRLP4 1092
|
|
INDIRP4
|
|
INDIRF4
|
|
CNSTF4 1036831949
|
|
ADDF4
|
|
ASGNF4
|
|
line 830
|
|
;830: ent->r.maxs[2] -= 0.1;
|
|
ADDRLP4 1096
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1096
|
|
INDIRP4
|
|
ADDRLP4 1096
|
|
INDIRP4
|
|
INDIRF4
|
|
CNSTF4 1036831949
|
|
SUBF4
|
|
ASGNF4
|
|
line 832
|
|
;831:
|
|
;832: VectorSet( dest, ent->s.origin[0], ent->s.origin[1], ent->s.origin[2] - 4096 );
|
|
ADDRLP4 1100
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 1100
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
INDIRF4
|
|
ASGNF4
|
|
ADDRLP4 0+4
|
|
ADDRLP4 1100
|
|
INDIRP4
|
|
CNSTI4 96
|
|
ADDP4
|
|
INDIRF4
|
|
ASGNF4
|
|
ADDRLP4 0+8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 100
|
|
ADDP4
|
|
INDIRF4
|
|
CNSTF4 1166016512
|
|
SUBF4
|
|
ASGNF4
|
|
line 833
|
|
;833: trap_Trace( &tr, ent->s.origin, ent->r.mins, ent->r.maxs, dest, ent->s.number, MASK_SOLID );
|
|
ADDRLP4 12
|
|
ARGP4
|
|
ADDRLP4 1104
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1104
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 1104
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 1104
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ARGP4
|
|
ADDRLP4 1104
|
|
INDIRP4
|
|
INDIRI4
|
|
ARGI4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 trap_Trace
|
|
CALLV
|
|
pop
|
|
line 834
|
|
;834: if ( tr.startsolid )
|
|
ADDRLP4 12+4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $298
|
|
line 835
|
|
;835: {
|
|
line 836
|
|
;836: G_Printf ("SP_misc_shield_floor_unit: misc_shield_floor_unit startsolid at %s\n", vtos(ent->s.origin));
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 1108
|
|
ADDRGP4 vtos
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $301
|
|
ARGP4
|
|
ADDRLP4 1108
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_Printf
|
|
CALLV
|
|
pop
|
|
line 837
|
|
;837: G_FreeEntity( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_FreeEntity
|
|
CALLV
|
|
pop
|
|
line 838
|
|
;838: return;
|
|
ADDRGP4 $291
|
|
JUMPV
|
|
LABELV $298
|
|
line 842
|
|
;839: }
|
|
;840:
|
|
;841: //add the 0.1 back after the trace
|
|
;842: ent->r.maxs[2] += 0.1;
|
|
ADDRLP4 1108
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1108
|
|
INDIRP4
|
|
ADDRLP4 1108
|
|
INDIRP4
|
|
INDIRF4
|
|
CNSTF4 1036831949
|
|
ADDF4
|
|
ASGNF4
|
|
line 845
|
|
;843:
|
|
;844: // allow to ride movers
|
|
;845: ent->s.groundEntityNum = tr.entityNum;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 192
|
|
ADDP4
|
|
ADDRLP4 12+52
|
|
INDIRI4
|
|
ASGNI4
|
|
line 847
|
|
;846:
|
|
;847: G_SetOrigin( ent, tr.endpos );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 12+12
|
|
ARGP4
|
|
ADDRGP4 G_SetOrigin
|
|
CALLV
|
|
pop
|
|
line 849
|
|
;848:
|
|
;849: if (!ent->health)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $304
|
|
line 850
|
|
;850: {
|
|
line 851
|
|
;851: ent->health = 60;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
CNSTI4 60
|
|
ASGNI4
|
|
line 852
|
|
;852: }
|
|
LABELV $304
|
|
line 854
|
|
;853:
|
|
;854: if (!ent->model || !ent->model[0])
|
|
ADDRLP4 1112
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 476
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1112
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $308
|
|
ADDRLP4 1112
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $306
|
|
LABELV $308
|
|
line 855
|
|
;855: {
|
|
line 856
|
|
;856: ent->model = "/models/items/a_shield_converter.md3";
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 476
|
|
ADDP4
|
|
ADDRGP4 $309
|
|
ASGNP4
|
|
line 857
|
|
;857: }
|
|
LABELV $306
|
|
line 859
|
|
;858:
|
|
;859: ent->s.modelindex = G_ModelIndex( ent->model );
|
|
ADDRLP4 1116
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1116
|
|
INDIRP4
|
|
CNSTI4 476
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 1120
|
|
ADDRGP4 G_ModelIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 1116
|
|
INDIRP4
|
|
CNSTI4 212
|
|
ADDP4
|
|
ADDRLP4 1120
|
|
INDIRI4
|
|
ASGNI4
|
|
line 861
|
|
;860:
|
|
;861: ent->s.eFlags = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 8
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 862
|
|
;862: ent->r.svFlags |= SVF_PLAYER_USABLE;
|
|
ADDRLP4 1124
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 304
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1124
|
|
INDIRP4
|
|
ADDRLP4 1124
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 16
|
|
BORI4
|
|
ASGNI4
|
|
line 863
|
|
;863: ent->r.contents = CONTENTS_SOLID;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 340
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 864
|
|
;864: ent->clipmask = MASK_SOLID;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 508
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 866
|
|
;865:
|
|
;866: EnergyShieldStationSettings(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 EnergyShieldStationSettings
|
|
CALLV
|
|
pop
|
|
line 868
|
|
;867:
|
|
;868: ent->boltpoint4 = ent->count; //initial value
|
|
ADDRLP4 1128
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1128
|
|
INDIRP4
|
|
CNSTI4 780
|
|
ADDP4
|
|
ADDRLP4 1128
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 869
|
|
;869: ent->think = check_recharge;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
ADDRGP4 check_recharge
|
|
ASGNP4
|
|
line 870
|
|
;870: ent->nextthink = level.time + STATION_RECHARGE_TIME;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 3000
|
|
ADDI4
|
|
ASGNI4
|
|
line 872
|
|
;871:
|
|
;872: ent->use = shield_power_converter_use;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 652
|
|
ADDP4
|
|
ADDRGP4 shield_power_converter_use
|
|
ASGNP4
|
|
line 874
|
|
;873:
|
|
;874: VectorCopy( ent->s.angles, ent->s.apos.trBase );
|
|
ADDRLP4 1132
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1132
|
|
INDIRP4
|
|
CNSTI4 60
|
|
ADDP4
|
|
ADDRLP4 1132
|
|
INDIRP4
|
|
CNSTI4 116
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 875
|
|
;875: trap_LinkEntity (ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_LinkEntity
|
|
CALLV
|
|
pop
|
|
line 877
|
|
;876:
|
|
;877: G_SoundIndex("sound/interface/shieldcon_run.wav");
|
|
ADDRGP4 $269
|
|
ARGP4
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
pop
|
|
line 878
|
|
;878: G_SoundIndex("sound/interface/shieldcon_done.mp3");
|
|
ADDRGP4 $286
|
|
ARGP4
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
pop
|
|
line 879
|
|
;879: G_SoundIndex("sound/interface/shieldcon_empty.mp3");
|
|
ADDRGP4 $311
|
|
ARGP4
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
pop
|
|
line 880
|
|
;880:}
|
|
LABELV $291
|
|
endproc SP_misc_shield_floor_unit 1136 28
|
|
export SP_misc_model_shield_power_converter
|
|
proc SP_misc_model_shield_power_converter 28 8
|
|
line 891
|
|
;881:
|
|
;882:
|
|
;883:/*QUAKED misc_model_shield_power_converter (1 0 0) (-16 -16 -16) (16 16 16)
|
|
;884:#MODELNAME="models/items/psd_big.md3"
|
|
;885:Gives shield energy when used.
|
|
;886:
|
|
;887:"count" - the amount of ammo given when used (default 100)
|
|
;888:*/
|
|
;889://------------------------------------------------------------
|
|
;890:void SP_misc_model_shield_power_converter( gentity_t *ent )
|
|
;891:{
|
|
line 892
|
|
;892: if (!ent->health)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $313
|
|
line 893
|
|
;893: {
|
|
line 894
|
|
;894: ent->health = 60;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
CNSTI4 60
|
|
ASGNI4
|
|
line 895
|
|
;895: }
|
|
LABELV $313
|
|
line 897
|
|
;896:
|
|
;897: VectorSet (ent->r.mins, -16, -16, -16);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
CNSTF4 3246391296
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 320
|
|
ADDP4
|
|
CNSTF4 3246391296
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 324
|
|
ADDP4
|
|
CNSTF4 3246391296
|
|
ASGNF4
|
|
line 898
|
|
;898: VectorSet (ent->r.maxs, 16, 16, 16);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
CNSTF4 1098907648
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 332
|
|
ADDP4
|
|
CNSTF4 1098907648
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
CNSTF4 1098907648
|
|
ASGNF4
|
|
line 900
|
|
;899:
|
|
;900: ent->s.modelindex = G_ModelIndex( ent->model );
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 476
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRGP4 G_ModelIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 212
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 902
|
|
;901:
|
|
;902: ent->s.eFlags = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 8
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 903
|
|
;903: ent->r.svFlags |= SVF_PLAYER_USABLE;
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 304
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 16
|
|
BORI4
|
|
ASGNI4
|
|
line 904
|
|
;904: ent->r.contents = CONTENTS_SOLID;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 340
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 905
|
|
;905: ent->clipmask = MASK_SOLID;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 508
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 907
|
|
;906:
|
|
;907: EnergyShieldStationSettings(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 EnergyShieldStationSettings
|
|
CALLV
|
|
pop
|
|
line 909
|
|
;908:
|
|
;909: ent->boltpoint4 = ent->count; //initial value
|
|
ADDRLP4 12
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 780
|
|
ADDP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 910
|
|
;910: ent->think = check_recharge;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
ADDRGP4 check_recharge
|
|
ASGNP4
|
|
line 911
|
|
;911: ent->nextthink = level.time + STATION_RECHARGE_TIME;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 3000
|
|
ADDI4
|
|
ASGNI4
|
|
line 913
|
|
;912:
|
|
;913: ent->use = shield_power_converter_use;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 652
|
|
ADDP4
|
|
ADDRGP4 shield_power_converter_use
|
|
ASGNP4
|
|
line 915
|
|
;914:
|
|
;915: G_SetOrigin( ent, ent->s.origin );
|
|
ADDRLP4 16
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_SetOrigin
|
|
CALLV
|
|
pop
|
|
line 916
|
|
;916: VectorCopy( ent->s.angles, ent->s.apos.trBase );
|
|
ADDRLP4 20
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTI4 60
|
|
ADDP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTI4 116
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 917
|
|
;917: trap_LinkEntity (ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_LinkEntity
|
|
CALLV
|
|
pop
|
|
line 919
|
|
;918:
|
|
;919: G_SoundIndex("sound/movers/objects/useshieldstation.wav");
|
|
ADDRGP4 $316
|
|
ARGP4
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
pop
|
|
line 921
|
|
;920:
|
|
;921: ent->s.modelindex2 = G_ModelIndex("/models/items/psd_big.md3"); // Precache model
|
|
ADDRGP4 $317
|
|
ARGP4
|
|
ADDRLP4 24
|
|
ADDRGP4 G_ModelIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 216
|
|
ADDP4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
ASGNI4
|
|
line 922
|
|
;922:}
|
|
LABELV $312
|
|
endproc SP_misc_model_shield_power_converter 28 8
|
|
export EnergyAmmoStationSettings
|
|
proc EnergyAmmoStationSettings 0 12
|
|
line 931
|
|
;923:
|
|
;924:
|
|
;925:/*
|
|
;926:================
|
|
;927:EnergyAmmoShieldStationSettings
|
|
;928:================
|
|
;929:*/
|
|
;930:void EnergyAmmoStationSettings(gentity_t *ent)
|
|
;931:{
|
|
line 932
|
|
;932: G_SpawnInt( "count", "0", &ent->count );
|
|
ADDRGP4 $254
|
|
ARGP4
|
|
ADDRGP4 $112
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_SpawnInt
|
|
CALLI4
|
|
pop
|
|
line 934
|
|
;933:
|
|
;934: if (!ent->count)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $319
|
|
line 935
|
|
;935: {
|
|
line 936
|
|
;936: ent->count = 100;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
CNSTI4 100
|
|
ASGNI4
|
|
line 937
|
|
;937: }
|
|
LABELV $319
|
|
line 938
|
|
;938:}
|
|
LABELV $318
|
|
endproc EnergyAmmoStationSettings 0 12
|
|
export ammo_power_converter_use
|
|
proc ammo_power_converter_use 52 4
|
|
line 946
|
|
;939:
|
|
;940:/*
|
|
;941:================
|
|
;942:ammo_power_converter_use
|
|
;943:================
|
|
;944:*/
|
|
;945:void ammo_power_converter_use( gentity_t *self, gentity_t *other, gentity_t *activator)
|
|
;946:{
|
|
line 950
|
|
;947: int add,highest;
|
|
;948: qboolean overcharge;
|
|
;949: int difBlaster,difPowerCell,difMetalBolts;
|
|
;950: int stop = 1;
|
|
ADDRLP4 0
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 952
|
|
;951:
|
|
;952: if (!activator || !activator->client)
|
|
ADDRLP4 28
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 32
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 32
|
|
INDIRU4
|
|
EQU4 $324
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 32
|
|
INDIRU4
|
|
NEU4 $322
|
|
LABELV $324
|
|
line 953
|
|
;953: {
|
|
line 954
|
|
;954: return;
|
|
ADDRGP4 $321
|
|
JUMPV
|
|
LABELV $322
|
|
line 957
|
|
;955: }
|
|
;956:
|
|
;957: if (self->setTime < level.time)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 628
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
GEI4 $325
|
|
line 958
|
|
;958: {
|
|
line 959
|
|
;959: overcharge = qfalse;
|
|
ADDRLP4 24
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 961
|
|
;960:
|
|
;961: if (!self->s.loopSound)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 200
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $328
|
|
line 962
|
|
;962: {
|
|
line 963
|
|
;963: self->s.loopSound = G_SoundIndex("sound/player/pickupshield.wav");
|
|
ADDRGP4 $330
|
|
ARGP4
|
|
ADDRLP4 36
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 200
|
|
ADDP4
|
|
ADDRLP4 36
|
|
INDIRI4
|
|
ASGNI4
|
|
line 964
|
|
;964: }
|
|
LABELV $328
|
|
line 966
|
|
;965:
|
|
;966: self->setTime = level.time + 100;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 628
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 100
|
|
ADDI4
|
|
ASGNI4
|
|
line 968
|
|
;967:
|
|
;968: if (self->count) // Has it got any power left?
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $332
|
|
line 969
|
|
;969: {
|
|
line 970
|
|
;970: if (self->count > MAX_AMMO_GIVE)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LEI4 $334
|
|
line 971
|
|
;971: {
|
|
line 972
|
|
;972: add = MAX_AMMO_GIVE;
|
|
ADDRLP4 4
|
|
CNSTI4 2
|
|
ASGNI4
|
|
line 973
|
|
;973: }
|
|
ADDRGP4 $335
|
|
JUMPV
|
|
LABELV $334
|
|
line 974
|
|
;974: else if (self->count<0)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
GEI4 $336
|
|
line 975
|
|
;975: {
|
|
line 976
|
|
;976: add = 0;
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 977
|
|
;977: }
|
|
ADDRGP4 $337
|
|
JUMPV
|
|
LABELV $336
|
|
line 979
|
|
;978: else
|
|
;979: {
|
|
line 980
|
|
;980: add = self->count;
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 981
|
|
;981: }
|
|
LABELV $337
|
|
LABELV $335
|
|
line 983
|
|
;982:
|
|
;983: activator->client->ps.ammo[AMMO_BLASTER] += add;
|
|
ADDRLP4 36
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 416
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDI4
|
|
ASGNI4
|
|
line 984
|
|
;984: activator->client->ps.ammo[AMMO_POWERCELL] += add;
|
|
ADDRLP4 40
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 40
|
|
INDIRP4
|
|
ADDRLP4 40
|
|
INDIRP4
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDI4
|
|
ASGNI4
|
|
line 985
|
|
;985: activator->client->ps.ammo[AMMO_METAL_BOLTS] += add;
|
|
ADDRLP4 44
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 424
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 44
|
|
INDIRP4
|
|
ADDRLP4 44
|
|
INDIRP4
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDI4
|
|
ASGNI4
|
|
line 987
|
|
;986:
|
|
;987: self->count -= add;
|
|
ADDRLP4 48
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 48
|
|
INDIRP4
|
|
ADDRLP4 48
|
|
INDIRP4
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
SUBI4
|
|
ASGNI4
|
|
line 988
|
|
;988: stop = 0;
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 990
|
|
;989:
|
|
;990: self->fly_sound_debounce_time = level.time + 50;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 668
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 50
|
|
ADDI4
|
|
ASGNI4
|
|
line 992
|
|
;991:
|
|
;992: difBlaster = activator->client->ps.ammo[AMMO_BLASTER] - ammoData[AMMO_BLASTER].max;
|
|
ADDRLP4 12
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 416
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 ammoData+8
|
|
INDIRI4
|
|
SUBI4
|
|
ASGNI4
|
|
line 993
|
|
;993: difPowerCell = activator->client->ps.ammo[AMMO_POWERCELL] - ammoData[AMMO_POWERCELL].max;
|
|
ADDRLP4 16
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 ammoData+12
|
|
INDIRI4
|
|
SUBI4
|
|
ASGNI4
|
|
line 994
|
|
;994: difMetalBolts = activator->client->ps.ammo[AMMO_METAL_BOLTS] - ammoData[AMMO_METAL_BOLTS].max;
|
|
ADDRLP4 20
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 424
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 ammoData+16
|
|
INDIRI4
|
|
SUBI4
|
|
ASGNI4
|
|
line 997
|
|
;995:
|
|
;996: // Find the highest one
|
|
;997: highest = difBlaster;
|
|
ADDRLP4 8
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
ASGNI4
|
|
line 998
|
|
;998: if (difPowerCell>difBlaster)
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
LEI4 $342
|
|
line 999
|
|
;999: {
|
|
line 1000
|
|
;1000: highest = difPowerCell;
|
|
ADDRLP4 8
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1001
|
|
;1001: }
|
|
LABELV $342
|
|
line 1003
|
|
;1002:
|
|
;1003: if (difMetalBolts > highest)
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
LEI4 $344
|
|
line 1004
|
|
;1004: {
|
|
line 1005
|
|
;1005: highest = difMetalBolts;
|
|
ADDRLP4 8
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1006
|
|
;1006: }
|
|
LABELV $344
|
|
line 1007
|
|
;1007: }
|
|
LABELV $332
|
|
line 1008
|
|
;1008: }
|
|
LABELV $325
|
|
line 1010
|
|
;1009:
|
|
;1010: if (stop)
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $346
|
|
line 1011
|
|
;1011: {
|
|
line 1012
|
|
;1012: self->s.loopSound = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 200
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1013
|
|
;1013: }
|
|
LABELV $346
|
|
line 1014
|
|
;1014:}
|
|
LABELV $321
|
|
endproc ammo_power_converter_use 52 4
|
|
export SP_misc_model_ammo_power_converter
|
|
proc SP_misc_model_ammo_power_converter 24 8
|
|
line 1025
|
|
;1015:
|
|
;1016:
|
|
;1017:/*QUAKED misc_model_ammo_power_converter (1 0 0) (-16 -16 -16) (16 16 16)
|
|
;1018:#MODELNAME="models/items/power_converter.md3"
|
|
;1019:Gives ammo energy when used.
|
|
;1020:
|
|
;1021:"count" - the amount of ammo given when used (default 100)
|
|
;1022:*/
|
|
;1023://------------------------------------------------------------
|
|
;1024:void SP_misc_model_ammo_power_converter( gentity_t *ent )
|
|
;1025:{
|
|
line 1026
|
|
;1026: if (!ent->health)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $349
|
|
line 1027
|
|
;1027: {
|
|
line 1028
|
|
;1028: ent->health = 60;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
CNSTI4 60
|
|
ASGNI4
|
|
line 1029
|
|
;1029: }
|
|
LABELV $349
|
|
line 1031
|
|
;1030:
|
|
;1031: VectorSet (ent->r.mins, -16, -16, -16);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
CNSTF4 3246391296
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 320
|
|
ADDP4
|
|
CNSTF4 3246391296
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 324
|
|
ADDP4
|
|
CNSTF4 3246391296
|
|
ASGNF4
|
|
line 1032
|
|
;1032: VectorSet (ent->r.maxs, 16, 16, 16);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
CNSTF4 1098907648
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 332
|
|
ADDP4
|
|
CNSTF4 1098907648
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
CNSTF4 1098907648
|
|
ASGNF4
|
|
line 1034
|
|
;1033:
|
|
;1034: ent->s.modelindex = G_ModelIndex( ent->model );
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 476
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRGP4 G_ModelIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 212
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1036
|
|
;1035:
|
|
;1036: ent->s.eFlags = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 8
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1037
|
|
;1037: ent->r.svFlags |= SVF_PLAYER_USABLE;
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 304
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 16
|
|
BORI4
|
|
ASGNI4
|
|
line 1038
|
|
;1038: ent->r.contents = CONTENTS_SOLID;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 340
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1039
|
|
;1039: ent->clipmask = MASK_SOLID;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 508
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1041
|
|
;1040:
|
|
;1041: ent->use = ammo_power_converter_use;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 652
|
|
ADDP4
|
|
ADDRGP4 ammo_power_converter_use
|
|
ASGNP4
|
|
line 1043
|
|
;1042:
|
|
;1043: EnergyAmmoStationSettings(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 EnergyAmmoStationSettings
|
|
CALLV
|
|
pop
|
|
line 1045
|
|
;1044:
|
|
;1045: ent->boltpoint4 = ent->count; //initial value
|
|
ADDRLP4 12
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 780
|
|
ADDP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1046
|
|
;1046: ent->think = check_recharge;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
ADDRGP4 check_recharge
|
|
ASGNP4
|
|
line 1047
|
|
;1047: ent->nextthink = level.time + STATION_RECHARGE_TIME;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 3000
|
|
ADDI4
|
|
ASGNI4
|
|
line 1049
|
|
;1048:
|
|
;1049: G_SetOrigin( ent, ent->s.origin );
|
|
ADDRLP4 16
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_SetOrigin
|
|
CALLV
|
|
pop
|
|
line 1050
|
|
;1050: VectorCopy( ent->s.angles, ent->s.apos.trBase );
|
|
ADDRLP4 20
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTI4 60
|
|
ADDP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTI4 116
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 1051
|
|
;1051: trap_LinkEntity (ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_LinkEntity
|
|
CALLV
|
|
pop
|
|
line 1053
|
|
;1052:
|
|
;1053: G_SoundIndex("sound/movers/objects/useshieldstation.wav");
|
|
ADDRGP4 $316
|
|
ARGP4
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
pop
|
|
line 1054
|
|
;1054:}
|
|
LABELV $348
|
|
endproc SP_misc_model_ammo_power_converter 24 8
|
|
export EnergyHealthStationSettings
|
|
proc EnergyHealthStationSettings 0 12
|
|
line 1062
|
|
;1055:
|
|
;1056:/*
|
|
;1057:================
|
|
;1058:EnergyHealthStationSettings
|
|
;1059:================
|
|
;1060:*/
|
|
;1061:void EnergyHealthStationSettings(gentity_t *ent)
|
|
;1062:{
|
|
line 1063
|
|
;1063: G_SpawnInt( "count", "0", &ent->count );
|
|
ADDRGP4 $254
|
|
ARGP4
|
|
ADDRGP4 $112
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_SpawnInt
|
|
CALLI4
|
|
pop
|
|
line 1065
|
|
;1064:
|
|
;1065: if (!ent->count)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $353
|
|
line 1066
|
|
;1066: {
|
|
line 1067
|
|
;1067: ent->count = 100;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
CNSTI4 100
|
|
ASGNI4
|
|
line 1068
|
|
;1068: }
|
|
LABELV $353
|
|
line 1069
|
|
;1069:}
|
|
LABELV $352
|
|
endproc EnergyHealthStationSettings 0 12
|
|
export health_power_converter_use
|
|
proc health_power_converter_use 32 4
|
|
line 1077
|
|
;1070:
|
|
;1071:/*
|
|
;1072:================
|
|
;1073:health_power_converter_use
|
|
;1074:================
|
|
;1075:*/
|
|
;1076:void health_power_converter_use( gentity_t *self, gentity_t *other, gentity_t *activator)
|
|
;1077:{
|
|
line 1079
|
|
;1078: int dif,add;
|
|
;1079: int stop = 1;
|
|
ADDRLP4 0
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1081
|
|
;1080:
|
|
;1081: if (!activator || !activator->client)
|
|
ADDRLP4 12
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 16
|
|
INDIRU4
|
|
EQU4 $358
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 16
|
|
INDIRU4
|
|
NEU4 $356
|
|
LABELV $358
|
|
line 1082
|
|
;1082: {
|
|
line 1083
|
|
;1083: return;
|
|
ADDRGP4 $355
|
|
JUMPV
|
|
LABELV $356
|
|
line 1086
|
|
;1084: }
|
|
;1085:
|
|
;1086: if (self->setTime < level.time)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 628
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
GEI4 $359
|
|
line 1087
|
|
;1087: {
|
|
line 1088
|
|
;1088: if (!self->s.loopSound)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 200
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $362
|
|
line 1089
|
|
;1089: {
|
|
line 1090
|
|
;1090: self->s.loopSound = G_SoundIndex("sound/player/pickuphealth.wav");
|
|
ADDRGP4 $364
|
|
ARGP4
|
|
ADDRLP4 20
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 200
|
|
ADDP4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1091
|
|
;1091: }
|
|
LABELV $362
|
|
line 1092
|
|
;1092: self->setTime = level.time + 100;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 628
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 100
|
|
ADDI4
|
|
ASGNI4
|
|
line 1094
|
|
;1093:
|
|
;1094: dif = activator->client->ps.stats[STAT_MAX_HEALTH] - activator->health;
|
|
ADDRLP4 20
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 248
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
SUBI4
|
|
ASGNI4
|
|
line 1096
|
|
;1095:
|
|
;1096: if (dif > 0) // Already at full armor?
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
LEI4 $366
|
|
line 1097
|
|
;1097: {
|
|
line 1098
|
|
;1098: if (dif >MAX_AMMO_GIVE)
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LEI4 $368
|
|
line 1099
|
|
;1099: {
|
|
line 1100
|
|
;1100: add = MAX_AMMO_GIVE;
|
|
ADDRLP4 8
|
|
CNSTI4 2
|
|
ASGNI4
|
|
line 1101
|
|
;1101: }
|
|
ADDRGP4 $369
|
|
JUMPV
|
|
LABELV $368
|
|
line 1103
|
|
;1102: else
|
|
;1103: {
|
|
line 1104
|
|
;1104: add = dif;
|
|
ADDRLP4 8
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1105
|
|
;1105: }
|
|
LABELV $369
|
|
line 1107
|
|
;1106:
|
|
;1107: if (self->count<add)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
GEI4 $370
|
|
line 1108
|
|
;1108: {
|
|
line 1109
|
|
;1109: add = self->count;
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1110
|
|
;1110: }
|
|
LABELV $370
|
|
line 1112
|
|
;1111:
|
|
;1112: self->count -= add;
|
|
ADDRLP4 24
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
SUBI4
|
|
ASGNI4
|
|
line 1113
|
|
;1113: stop = 0;
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1115
|
|
;1114:
|
|
;1115: self->fly_sound_debounce_time = level.time + 50;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 668
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 50
|
|
ADDI4
|
|
ASGNI4
|
|
line 1117
|
|
;1116:
|
|
;1117: activator->health += add;
|
|
ADDRLP4 28
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ADDI4
|
|
ASGNI4
|
|
line 1118
|
|
;1118: }
|
|
LABELV $366
|
|
line 1119
|
|
;1119: }
|
|
LABELV $359
|
|
line 1121
|
|
;1120:
|
|
;1121: if (stop)
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $373
|
|
line 1122
|
|
;1122: {
|
|
line 1123
|
|
;1123: self->s.loopSound = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 200
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1124
|
|
;1124: }
|
|
LABELV $373
|
|
line 1125
|
|
;1125:}
|
|
LABELV $355
|
|
endproc health_power_converter_use 32 4
|
|
export SP_misc_model_health_power_converter
|
|
proc SP_misc_model_health_power_converter 24 8
|
|
line 1136
|
|
;1126:
|
|
;1127:
|
|
;1128:/*QUAKED misc_model_health_power_converter (1 0 0) (-16 -16 -16) (16 16 16)
|
|
;1129:#MODELNAME="models/items/power_converter.md3"
|
|
;1130:Gives ammo energy when used.
|
|
;1131:
|
|
;1132:"count" - the amount of ammo given when used (default 100)
|
|
;1133:*/
|
|
;1134://------------------------------------------------------------
|
|
;1135:void SP_misc_model_health_power_converter( gentity_t *ent )
|
|
;1136:{
|
|
line 1137
|
|
;1137: if (!ent->health)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $376
|
|
line 1138
|
|
;1138: {
|
|
line 1139
|
|
;1139: ent->health = 60;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
CNSTI4 60
|
|
ASGNI4
|
|
line 1140
|
|
;1140: }
|
|
LABELV $376
|
|
line 1142
|
|
;1141:
|
|
;1142: VectorSet (ent->r.mins, -16, -16, -16);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
CNSTF4 3246391296
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 320
|
|
ADDP4
|
|
CNSTF4 3246391296
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 324
|
|
ADDP4
|
|
CNSTF4 3246391296
|
|
ASGNF4
|
|
line 1143
|
|
;1143: VectorSet (ent->r.maxs, 16, 16, 16);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
CNSTF4 1098907648
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 332
|
|
ADDP4
|
|
CNSTF4 1098907648
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
CNSTF4 1098907648
|
|
ASGNF4
|
|
line 1145
|
|
;1144:
|
|
;1145: ent->s.modelindex = G_ModelIndex( ent->model );
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 476
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRGP4 G_ModelIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 212
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1147
|
|
;1146:
|
|
;1147: ent->s.eFlags = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 8
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1148
|
|
;1148: ent->r.svFlags |= SVF_PLAYER_USABLE;
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 304
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 16
|
|
BORI4
|
|
ASGNI4
|
|
line 1149
|
|
;1149: ent->r.contents = CONTENTS_SOLID;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 340
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1150
|
|
;1150: ent->clipmask = MASK_SOLID;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 508
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1152
|
|
;1151:
|
|
;1152: ent->use = health_power_converter_use;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 652
|
|
ADDP4
|
|
ADDRGP4 health_power_converter_use
|
|
ASGNP4
|
|
line 1154
|
|
;1153:
|
|
;1154: EnergyHealthStationSettings(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 EnergyHealthStationSettings
|
|
CALLV
|
|
pop
|
|
line 1156
|
|
;1155:
|
|
;1156: ent->boltpoint4 = ent->count; //initial value
|
|
ADDRLP4 12
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 780
|
|
ADDP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1157
|
|
;1157: ent->think = check_recharge;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
ADDRGP4 check_recharge
|
|
ASGNP4
|
|
line 1158
|
|
;1158: ent->nextthink = level.time + STATION_RECHARGE_TIME;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 3000
|
|
ADDI4
|
|
ASGNI4
|
|
line 1160
|
|
;1159:
|
|
;1160: G_SetOrigin( ent, ent->s.origin );
|
|
ADDRLP4 16
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_SetOrigin
|
|
CALLV
|
|
pop
|
|
line 1161
|
|
;1161: VectorCopy( ent->s.angles, ent->s.apos.trBase );
|
|
ADDRLP4 20
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTI4 60
|
|
ADDP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTI4 116
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 1162
|
|
;1162: trap_LinkEntity (ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_LinkEntity
|
|
CALLV
|
|
pop
|
|
line 1164
|
|
;1163:
|
|
;1164: G_SoundIndex("sound/movers/objects/useshieldstation.wav");
|
|
ADDRGP4 $316
|
|
ARGP4
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
pop
|
|
line 1165
|
|
;1165:}
|
|
LABELV $375
|
|
endproc SP_misc_model_health_power_converter 24 8
|
|
export DmgBoxHit
|
|
proc DmgBoxHit 0 0
|
|
line 1168
|
|
;1166:
|
|
;1167:void DmgBoxHit( gentity_t *self, gentity_t *other, trace_t *trace )
|
|
;1168:{
|
|
line 1169
|
|
;1169: return;
|
|
LABELV $379
|
|
endproc DmgBoxHit 0 0
|
|
export DmgBoxUpdateSelf
|
|
proc DmgBoxUpdateSelf 24 4
|
|
line 1173
|
|
;1170:}
|
|
;1171:
|
|
;1172:void DmgBoxUpdateSelf(gentity_t *self)
|
|
;1173:{
|
|
line 1174
|
|
;1174: gentity_t *owner = &g_entities[self->r.ownerNum];
|
|
ADDRLP4 0
|
|
CNSTI4 828
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 396
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ASGNP4
|
|
line 1176
|
|
;1175:
|
|
;1176: if (!owner || !owner->client || !owner->inuse)
|
|
ADDRLP4 8
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 8
|
|
INDIRU4
|
|
EQU4 $384
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 8
|
|
INDIRU4
|
|
EQU4 $384
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 412
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $381
|
|
LABELV $384
|
|
line 1177
|
|
;1177: {
|
|
line 1178
|
|
;1178: goto killMe;
|
|
ADDRGP4 $385
|
|
JUMPV
|
|
LABELV $381
|
|
line 1181
|
|
;1179: }
|
|
;1180:
|
|
;1181: if (self->damageRedirect == DAMAGEREDIRECT_HEAD &&
|
|
ADDRLP4 12
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 816
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
NEI4 $386
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1636
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
INDIRI4
|
|
EQI4 $386
|
|
line 1183
|
|
;1182: owner->client->damageBoxHandle_Head != self->s.number)
|
|
;1183: {
|
|
line 1184
|
|
;1184: goto killMe;
|
|
ADDRGP4 $385
|
|
JUMPV
|
|
LABELV $386
|
|
line 1187
|
|
;1185: }
|
|
;1186:
|
|
;1187: if (self->damageRedirect == DAMAGEREDIRECT_RLEG &&
|
|
ADDRLP4 16
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CNSTI4 816
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
NEI4 $388
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1640
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
INDIRI4
|
|
EQI4 $388
|
|
line 1189
|
|
;1188: owner->client->damageBoxHandle_RLeg != self->s.number)
|
|
;1189: {
|
|
line 1190
|
|
;1190: goto killMe;
|
|
ADDRGP4 $385
|
|
JUMPV
|
|
LABELV $388
|
|
line 1193
|
|
;1191: }
|
|
;1192:
|
|
;1193: if (self->damageRedirect == DAMAGEREDIRECT_LLEG &&
|
|
ADDRLP4 20
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTI4 816
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $390
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1644
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
INDIRI4
|
|
EQI4 $390
|
|
line 1195
|
|
;1194: owner->client->damageBoxHandle_LLeg != self->s.number)
|
|
;1195: {
|
|
line 1196
|
|
;1196: goto killMe;
|
|
ADDRGP4 $385
|
|
JUMPV
|
|
LABELV $390
|
|
line 1199
|
|
;1197: }
|
|
;1198:
|
|
;1199: if (owner->health < 1)
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
GEI4 $392
|
|
line 1200
|
|
;1200: {
|
|
line 1201
|
|
;1201: goto killMe;
|
|
ADDRGP4 $385
|
|
JUMPV
|
|
LABELV $392
|
|
line 1206
|
|
;1202: }
|
|
;1203:
|
|
;1204: //G_TestLine(self->r.currentOrigin, owner->client->ps.origin, 0x0000ff, 100);
|
|
;1205:
|
|
;1206: trap_LinkEntity(self);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_LinkEntity
|
|
CALLV
|
|
pop
|
|
line 1208
|
|
;1207:
|
|
;1208: self->nextthink = level.time;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1209
|
|
;1209: return;
|
|
ADDRGP4 $380
|
|
JUMPV
|
|
LABELV $385
|
|
line 1212
|
|
;1210:
|
|
;1211:killMe:
|
|
;1212: self->think = G_FreeEntity;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
ADDRGP4 G_FreeEntity
|
|
ASGNP4
|
|
line 1213
|
|
;1213: self->nextthink = level.time;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1214
|
|
;1214:}
|
|
LABELV $380
|
|
endproc DmgBoxUpdateSelf 24 4
|
|
export DmgBoxAbsorb_Die
|
|
proc DmgBoxAbsorb_Die 0 0
|
|
line 1217
|
|
;1215:
|
|
;1216:void DmgBoxAbsorb_Die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int damage, int mod )
|
|
;1217:{
|
|
line 1218
|
|
;1218: self->health = 1;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1219
|
|
;1219:}
|
|
LABELV $396
|
|
endproc DmgBoxAbsorb_Die 0 0
|
|
export DmgBoxAbsorb_Pain
|
|
proc DmgBoxAbsorb_Pain 0 0
|
|
line 1222
|
|
;1220:
|
|
;1221:void DmgBoxAbsorb_Pain(gentity_t *self, gentity_t *attacker, int damage)
|
|
;1222:{
|
|
line 1223
|
|
;1223: self->health = 1;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1224
|
|
;1224:}
|
|
LABELV $397
|
|
endproc DmgBoxAbsorb_Pain 0 0
|
|
export CreateNewDamageBox
|
|
proc CreateNewDamageBox 16 0
|
|
line 1227
|
|
;1225:
|
|
;1226:gentity_t *CreateNewDamageBox( gentity_t *ent )
|
|
;1227:{
|
|
line 1232
|
|
;1228: gentity_t *dmgBox;
|
|
;1229:
|
|
;1230: //We do not want the client to have any real knowledge of the entity whatsoever. It will only
|
|
;1231: //ever be used on the server.
|
|
;1232: dmgBox = G_Spawn();
|
|
ADDRLP4 4
|
|
ADDRGP4 G_Spawn
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 1233
|
|
;1233: dmgBox->classname = "dmg_box";
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 416
|
|
ADDP4
|
|
ADDRGP4 $399
|
|
ASGNP4
|
|
line 1235
|
|
;1234:
|
|
;1235: dmgBox->r.svFlags = SVF_USE_CURRENT_ORIGIN;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 304
|
|
ADDP4
|
|
CNSTI4 128
|
|
ASGNI4
|
|
line 1236
|
|
;1236: dmgBox->r.ownerNum = ent->s.number;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 396
|
|
ADDP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1238
|
|
;1237:
|
|
;1238: dmgBox->clipmask = 0;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 508
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1239
|
|
;1239: dmgBox->r.contents = MASK_PLAYERSOLID;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 340
|
|
ADDP4
|
|
CNSTI4 273
|
|
ASGNI4
|
|
line 1241
|
|
;1240:
|
|
;1241: dmgBox->mass = 5000;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 624
|
|
ADDP4
|
|
CNSTF4 1167867904
|
|
ASGNF4
|
|
line 1243
|
|
;1242:
|
|
;1243: dmgBox->s.eFlags |= EF_NODRAW;
|
|
ADDRLP4 8
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 8
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 128
|
|
BORI4
|
|
ASGNI4
|
|
line 1244
|
|
;1244: dmgBox->r.svFlags |= SVF_NOCLIENT;
|
|
ADDRLP4 12
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 304
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
BORI4
|
|
ASGNI4
|
|
line 1246
|
|
;1245:
|
|
;1246: dmgBox->touch = DmgBoxHit;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 648
|
|
ADDP4
|
|
ADDRGP4 DmgBoxHit
|
|
ASGNP4
|
|
line 1248
|
|
;1247:
|
|
;1248: dmgBox->takedamage = qtrue;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 680
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1250
|
|
;1249:
|
|
;1250: dmgBox->health = 1;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1252
|
|
;1251:
|
|
;1252: dmgBox->pain = DmgBoxAbsorb_Pain;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 656
|
|
ADDP4
|
|
ADDRGP4 DmgBoxAbsorb_Pain
|
|
ASGNP4
|
|
line 1253
|
|
;1253: dmgBox->die = DmgBoxAbsorb_Die;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 660
|
|
ADDP4
|
|
ADDRGP4 DmgBoxAbsorb_Die
|
|
ASGNP4
|
|
line 1255
|
|
;1254:
|
|
;1255: dmgBox->think = DmgBoxUpdateSelf;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
ADDRGP4 DmgBoxUpdateSelf
|
|
ASGNP4
|
|
line 1256
|
|
;1256: dmgBox->nextthink = level.time + 50;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 50
|
|
ADDI4
|
|
ASGNI4
|
|
line 1258
|
|
;1257:
|
|
;1258: return dmgBox;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
RETP4
|
|
LABELV $398
|
|
endproc CreateNewDamageBox 16 0
|
|
export ATST_ManageDamageBoxes
|
|
proc ATST_ManageDamageBoxes 92 16
|
|
line 1262
|
|
;1259:}
|
|
;1260:
|
|
;1261:void ATST_ManageDamageBoxes(gentity_t *ent)
|
|
;1262:{
|
|
line 1266
|
|
;1263: vec3_t headOrg, lLegOrg, rLegOrg;
|
|
;1264: vec3_t fwd, right, up, flatAngle;
|
|
;1265:
|
|
;1266: if (!ent->client->damageBoxHandle_Head)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1636
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $402
|
|
line 1267
|
|
;1267: {
|
|
line 1268
|
|
;1268: gentity_t *dmgBox = CreateNewDamageBox(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 88
|
|
ADDRGP4 CreateNewDamageBox
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 84
|
|
ADDRLP4 88
|
|
INDIRP4
|
|
ASGNP4
|
|
line 1270
|
|
;1269:
|
|
;1270: if (dmgBox)
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $404
|
|
line 1271
|
|
;1271: {
|
|
line 1272
|
|
;1272: VectorSet( dmgBox->r.mins, ATST_MINS0, ATST_MINS1, ATST_MINS2 );
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
CNSTF4 3256877056
|
|
ASGNF4
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 320
|
|
ADDP4
|
|
CNSTF4 3256877056
|
|
ASGNF4
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 324
|
|
ADDP4
|
|
CNSTF4 3250585600
|
|
ASGNF4
|
|
line 1273
|
|
;1273: VectorSet( dmgBox->r.maxs, ATST_MAXS0, ATST_MAXS1, ATST_HEADSIZE );
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
CNSTF4 1109393408
|
|
ASGNF4
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 332
|
|
ADDP4
|
|
CNSTF4 1109393408
|
|
ASGNF4
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
CNSTF4 1119092736
|
|
ASGNF4
|
|
line 1275
|
|
;1274:
|
|
;1275: ent->client->damageBoxHandle_Head = dmgBox->s.number;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1636
|
|
ADDP4
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1276
|
|
;1276: dmgBox->damageRedirect = DAMAGEREDIRECT_HEAD;
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 816
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1277
|
|
;1277: dmgBox->damageRedirectTo = ent->s.number;
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 820
|
|
ADDP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1278
|
|
;1278: }
|
|
LABELV $404
|
|
line 1279
|
|
;1279: }
|
|
LABELV $402
|
|
line 1280
|
|
;1280: if (!ent->client->damageBoxHandle_RLeg)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1640
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $406
|
|
line 1281
|
|
;1281: {
|
|
line 1282
|
|
;1282: gentity_t *dmgBox = CreateNewDamageBox(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 88
|
|
ADDRGP4 CreateNewDamageBox
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 84
|
|
ADDRLP4 88
|
|
INDIRP4
|
|
ASGNP4
|
|
line 1284
|
|
;1283:
|
|
;1284: if (dmgBox)
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $408
|
|
line 1285
|
|
;1285: {
|
|
line 1286
|
|
;1286: VectorSet( dmgBox->r.mins, ATST_MINS0/4, ATST_MINS1/4, ATST_MINS2 );
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
CNSTF4 3240099840
|
|
ASGNF4
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 320
|
|
ADDP4
|
|
CNSTF4 3240099840
|
|
ASGNF4
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 324
|
|
ADDP4
|
|
CNSTF4 3250585600
|
|
ASGNF4
|
|
line 1287
|
|
;1287: VectorSet( dmgBox->r.maxs, ATST_MAXS0/4, ATST_MAXS1/4, ATST_MAXS2-ATST_HEADSIZE );
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
CNSTF4 1092616192
|
|
ASGNF4
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 332
|
|
ADDP4
|
|
CNSTF4 1092616192
|
|
ASGNF4
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
CNSTF4 1126039552
|
|
ASGNF4
|
|
line 1289
|
|
;1288:
|
|
;1289: ent->client->damageBoxHandle_RLeg = dmgBox->s.number;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1640
|
|
ADDP4
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1290
|
|
;1290: dmgBox->damageRedirect = DAMAGEREDIRECT_RLEG;
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 816
|
|
ADDP4
|
|
CNSTI4 2
|
|
ASGNI4
|
|
line 1291
|
|
;1291: dmgBox->damageRedirectTo = ent->s.number;
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 820
|
|
ADDP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1292
|
|
;1292: }
|
|
LABELV $408
|
|
line 1293
|
|
;1293: }
|
|
LABELV $406
|
|
line 1294
|
|
;1294: if (!ent->client->damageBoxHandle_LLeg)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1644
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $410
|
|
line 1295
|
|
;1295: {
|
|
line 1296
|
|
;1296: gentity_t *dmgBox = CreateNewDamageBox(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 88
|
|
ADDRGP4 CreateNewDamageBox
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 84
|
|
ADDRLP4 88
|
|
INDIRP4
|
|
ASGNP4
|
|
line 1298
|
|
;1297:
|
|
;1298: if (dmgBox)
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $412
|
|
line 1299
|
|
;1299: {
|
|
line 1300
|
|
;1300: VectorSet( dmgBox->r.mins, ATST_MINS0/4, ATST_MINS1/4, ATST_MINS2 );
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
CNSTF4 3240099840
|
|
ASGNF4
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 320
|
|
ADDP4
|
|
CNSTF4 3240099840
|
|
ASGNF4
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 324
|
|
ADDP4
|
|
CNSTF4 3250585600
|
|
ASGNF4
|
|
line 1301
|
|
;1301: VectorSet( dmgBox->r.maxs, ATST_MAXS0/4, ATST_MAXS1/4, ATST_MAXS2-ATST_HEADSIZE );
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
CNSTF4 1092616192
|
|
ASGNF4
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 332
|
|
ADDP4
|
|
CNSTF4 1092616192
|
|
ASGNF4
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
CNSTF4 1126039552
|
|
ASGNF4
|
|
line 1303
|
|
;1302:
|
|
;1303: ent->client->damageBoxHandle_LLeg = dmgBox->s.number;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1644
|
|
ADDP4
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1304
|
|
;1304: dmgBox->damageRedirect = DAMAGEREDIRECT_LLEG;
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 816
|
|
ADDP4
|
|
CNSTI4 3
|
|
ASGNI4
|
|
line 1305
|
|
;1305: dmgBox->damageRedirectTo = ent->s.number;
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 820
|
|
ADDP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1306
|
|
;1306: }
|
|
LABELV $412
|
|
line 1307
|
|
;1307: }
|
|
LABELV $410
|
|
line 1309
|
|
;1308:
|
|
;1309: if (!ent->client->damageBoxHandle_Head ||
|
|
ADDRLP4 84
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 88
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 1636
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 88
|
|
INDIRI4
|
|
EQI4 $417
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 1644
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 88
|
|
INDIRI4
|
|
EQI4 $417
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 1640
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 88
|
|
INDIRI4
|
|
NEI4 $414
|
|
LABELV $417
|
|
line 1312
|
|
;1310: !ent->client->damageBoxHandle_LLeg ||
|
|
;1311: !ent->client->damageBoxHandle_RLeg)
|
|
;1312: {
|
|
line 1313
|
|
;1313: return;
|
|
ADDRGP4 $401
|
|
JUMPV
|
|
LABELV $414
|
|
line 1316
|
|
;1314: }
|
|
;1315:
|
|
;1316: VectorCopy(ent->client->ps.origin, headOrg);
|
|
ADDRLP4 48
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 1317
|
|
;1317: headOrg[2] += (ATST_MAXS2-ATST_HEADSIZE);
|
|
ADDRLP4 48+8
|
|
ADDRLP4 48+8
|
|
INDIRF4
|
|
CNSTF4 1126039552
|
|
ADDF4
|
|
ASGNF4
|
|
line 1319
|
|
;1318:
|
|
;1319: VectorCopy(ent->client->ps.viewangles, flatAngle);
|
|
ADDRLP4 36
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 156
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 1320
|
|
;1320: flatAngle[PITCH] = 0;
|
|
ADDRLP4 36
|
|
CNSTF4 0
|
|
ASGNF4
|
|
line 1321
|
|
;1321: flatAngle[ROLL] = 0;
|
|
ADDRLP4 36+8
|
|
CNSTF4 0
|
|
ASGNF4
|
|
line 1323
|
|
;1322:
|
|
;1323: AngleVectors(flatAngle, fwd, right, up);
|
|
ADDRLP4 36
|
|
ARGP4
|
|
ADDRLP4 60
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ARGP4
|
|
ADDRLP4 72
|
|
ARGP4
|
|
ADDRGP4 AngleVectors
|
|
CALLV
|
|
pop
|
|
line 1325
|
|
;1324:
|
|
;1325: VectorCopy(ent->client->ps.origin, lLegOrg);
|
|
ADDRLP4 12
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 1326
|
|
;1326: VectorCopy(ent->client->ps.origin, rLegOrg);
|
|
ADDRLP4 24
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 1328
|
|
;1327:
|
|
;1328: lLegOrg[0] -= right[0]*32;
|
|
ADDRLP4 12
|
|
ADDRLP4 12
|
|
INDIRF4
|
|
CNSTF4 1107296256
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
MULF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 1329
|
|
;1329: lLegOrg[1] -= right[1]*32;
|
|
ADDRLP4 12+4
|
|
ADDRLP4 12+4
|
|
INDIRF4
|
|
CNSTF4 1107296256
|
|
ADDRLP4 0+4
|
|
INDIRF4
|
|
MULF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 1330
|
|
;1330: lLegOrg[2] -= right[2]*32;
|
|
ADDRLP4 12+8
|
|
ADDRLP4 12+8
|
|
INDIRF4
|
|
CNSTF4 1107296256
|
|
ADDRLP4 0+8
|
|
INDIRF4
|
|
MULF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 1332
|
|
;1331:
|
|
;1332: rLegOrg[0] += right[0]*32;
|
|
ADDRLP4 24
|
|
ADDRLP4 24
|
|
INDIRF4
|
|
CNSTF4 1107296256
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
line 1333
|
|
;1333: rLegOrg[1] += right[1]*32;
|
|
ADDRLP4 24+4
|
|
ADDRLP4 24+4
|
|
INDIRF4
|
|
CNSTF4 1107296256
|
|
ADDRLP4 0+4
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
line 1334
|
|
;1334: rLegOrg[2] += right[2]*32;
|
|
ADDRLP4 24+8
|
|
ADDRLP4 24+8
|
|
INDIRF4
|
|
CNSTF4 1107296256
|
|
ADDRLP4 0+8
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
line 1336
|
|
;1335:
|
|
;1336: G_SetOrigin(&g_entities[ent->client->damageBoxHandle_Head], headOrg);
|
|
CNSTI4 828
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1636
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 48
|
|
ARGP4
|
|
ADDRGP4 G_SetOrigin
|
|
CALLV
|
|
pop
|
|
line 1337
|
|
;1337: G_SetOrigin(&g_entities[ent->client->damageBoxHandle_LLeg], lLegOrg);
|
|
CNSTI4 828
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1644
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 12
|
|
ARGP4
|
|
ADDRGP4 G_SetOrigin
|
|
CALLV
|
|
pop
|
|
line 1338
|
|
;1338: G_SetOrigin(&g_entities[ent->client->damageBoxHandle_RLeg], rLegOrg);
|
|
CNSTI4 828
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1640
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 24
|
|
ARGP4
|
|
ADDRGP4 G_SetOrigin
|
|
CALLV
|
|
pop
|
|
line 1339
|
|
;1339:}
|
|
LABELV $401
|
|
endproc ATST_ManageDamageBoxes 92 16
|
|
export G_PlayerBecomeATST
|
|
proc G_PlayerBecomeATST 8 0
|
|
line 1342
|
|
;1340:
|
|
;1341:int G_PlayerBecomeATST(gentity_t *ent)
|
|
;1342:{
|
|
line 1343
|
|
;1343: if (!ent || !ent->client)
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 4
|
|
INDIRU4
|
|
EQU4 $431
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 4
|
|
INDIRU4
|
|
NEU4 $429
|
|
LABELV $431
|
|
line 1344
|
|
;1344: {
|
|
line 1345
|
|
;1345: return 0;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $428
|
|
JUMPV
|
|
LABELV $429
|
|
line 1348
|
|
;1346: }
|
|
;1347:
|
|
;1348: if (ent->client->ps.weaponTime > 0)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 44
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
LEI4 $432
|
|
line 1349
|
|
;1349: {
|
|
line 1350
|
|
;1350: return 0;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $428
|
|
JUMPV
|
|
LABELV $432
|
|
line 1353
|
|
;1351: }
|
|
;1352:
|
|
;1353: if (ent->client->ps.forceHandExtend != HANDEXTEND_NONE)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1236
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $434
|
|
line 1354
|
|
;1354: {
|
|
line 1355
|
|
;1355: return 0;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $428
|
|
JUMPV
|
|
LABELV $434
|
|
line 1358
|
|
;1356: }
|
|
;1357:
|
|
;1358: if (ent->client->ps.zoomMode)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1320
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $436
|
|
line 1359
|
|
;1359: {
|
|
line 1360
|
|
;1360: return 0;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $428
|
|
JUMPV
|
|
LABELV $436
|
|
line 1363
|
|
;1361: }
|
|
;1362:
|
|
;1363: if (ent->client->ps.usingATST)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1304
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $438
|
|
line 1364
|
|
;1364: {
|
|
line 1365
|
|
;1365: ent->client->ps.usingATST = qfalse;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1304
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1366
|
|
;1366: ent->client->ps.forceHandExtend = HANDEXTEND_WEAPONREADY;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1236
|
|
ADDP4
|
|
CNSTI4 6
|
|
ASGNI4
|
|
line 1367
|
|
;1367: }
|
|
ADDRGP4 $439
|
|
JUMPV
|
|
LABELV $438
|
|
line 1369
|
|
;1368: else
|
|
;1369: {
|
|
line 1370
|
|
;1370: ent->client->ps.usingATST = qtrue;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1304
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1371
|
|
;1371: }
|
|
LABELV $439
|
|
line 1373
|
|
;1372:
|
|
;1373: ent->client->ps.weaponTime = 1000;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 44
|
|
ADDP4
|
|
CNSTI4 1000
|
|
ASGNI4
|
|
line 1375
|
|
;1374:
|
|
;1375: return 1;
|
|
CNSTI4 1
|
|
RETI4
|
|
LABELV $428
|
|
endproc G_PlayerBecomeATST 8 0
|
|
export fx_runner_think
|
|
proc fx_runner_think 16 12
|
|
line 1395
|
|
;1376:}
|
|
;1377:
|
|
;1378:/*QUAKED fx_runner (0 0 1) (-8 -8 -8) (8 8 8) STARTOFF ONESHOT
|
|
;1379: STARTOFF - effect starts off, toggles on/off when used
|
|
;1380: ONESHOT - effect fires only when used
|
|
;1381:
|
|
;1382: "angles" - 3-float vector, angle the effect should play (unless fxTarget is supplied)
|
|
;1383: "fxFile" - name of the effect file to play
|
|
;1384: "fxTarget" - aim the effect toward this object, otherwise defaults to up
|
|
;1385: "target" - uses its target when the fx gets triggered
|
|
;1386: "delay" - how often to call the effect, don't over-do this ( default 400 )
|
|
;1387: note that it has to send an event each time it plays, so don't kill bandwidth or I will cry
|
|
;1388: "random" - random amount of time to add to delay, ( default 0, 200 = 0ms to 200ms )
|
|
;1389:*/
|
|
;1390:#define FX_RUNNER_RESERVED 0x800000
|
|
;1391:#define FX_ENT_RADIUS 8 //32
|
|
;1392:
|
|
;1393://----------------------------------------------------------
|
|
;1394:void fx_runner_think( gentity_t *ent )
|
|
;1395:{
|
|
line 1397
|
|
;1396: // call the effect with the desired position and orientation
|
|
;1397: G_AddEvent( ent, EV_PLAY_EFFECT_ID, ent->bolt_Head );
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 64
|
|
ARGI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 784
|
|
ADDP4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 1399
|
|
;1398:
|
|
;1399: ent->nextthink = level.time + ent->delay + random() * ent->random;
|
|
ADDRLP4 4
|
|
ADDRGP4 rand
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 764
|
|
ADDP4
|
|
INDIRI4
|
|
ADDI4
|
|
CVIF4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 32767
|
|
BANDI4
|
|
CVIF4 4
|
|
CNSTF4 1191181824
|
|
DIVF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 760
|
|
ADDP4
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
CVFI4 4
|
|
ASGNI4
|
|
line 1401
|
|
;1400:
|
|
;1401: if ( ent->target )
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $442
|
|
line 1402
|
|
;1402: {
|
|
line 1404
|
|
;1403: // let our target know that we have spawned an effect
|
|
;1404: G_UseTargets( ent, ent );
|
|
ADDRLP4 12
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_UseTargets
|
|
CALLV
|
|
pop
|
|
line 1405
|
|
;1405: }
|
|
LABELV $442
|
|
line 1406
|
|
;1406:}
|
|
LABELV $440
|
|
endproc fx_runner_think 16 12
|
|
export fx_runner_use
|
|
proc fx_runner_use 4 8
|
|
line 1410
|
|
;1407:
|
|
;1408://----------------------------------------------------------
|
|
;1409:void fx_runner_use( gentity_t *self, gentity_t *other, gentity_t *activator )
|
|
;1410:{
|
|
line 1411
|
|
;1411: if ( self->spawnflags & 2 ) // ONESHOT
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $445
|
|
line 1412
|
|
;1412: {
|
|
line 1415
|
|
;1413: // call the effect with the desired position and orientation, as a safety thing,
|
|
;1414: // make sure we aren't thinking at all.
|
|
;1415: fx_runner_think( self );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 fx_runner_think
|
|
CALLV
|
|
pop
|
|
line 1416
|
|
;1416: self->nextthink = -1;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
line 1418
|
|
;1417:
|
|
;1418: if ( self->target )
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $446
|
|
line 1419
|
|
;1419: {
|
|
line 1421
|
|
;1420: // let our target know that we have spawned an effect
|
|
;1421: G_UseTargets( self, self );
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_UseTargets
|
|
CALLV
|
|
pop
|
|
line 1422
|
|
;1422: }
|
|
line 1423
|
|
;1423: }
|
|
ADDRGP4 $446
|
|
JUMPV
|
|
LABELV $445
|
|
line 1425
|
|
;1424: else
|
|
;1425: {
|
|
line 1427
|
|
;1426: // ensure we are working with the right think function
|
|
;1427: self->think = fx_runner_think;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
ADDRGP4 fx_runner_think
|
|
ASGNP4
|
|
line 1430
|
|
;1428:
|
|
;1429: // toggle our state
|
|
;1430: if ( self->nextthink == -1 )
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 -1
|
|
NEI4 $449
|
|
line 1431
|
|
;1431: {
|
|
line 1434
|
|
;1432: // NOTE: we fire the effect immediately on use, the fx_runner_think func will set
|
|
;1433: // up the nextthink time.
|
|
;1434: fx_runner_think( self );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 fx_runner_think
|
|
CALLV
|
|
pop
|
|
line 1435
|
|
;1435: }
|
|
ADDRGP4 $450
|
|
JUMPV
|
|
LABELV $449
|
|
line 1437
|
|
;1436: else
|
|
;1437: {
|
|
line 1439
|
|
;1438: // turn off for now
|
|
;1439: self->nextthink = -1;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
line 1440
|
|
;1440: }
|
|
LABELV $450
|
|
line 1441
|
|
;1441: }
|
|
LABELV $446
|
|
line 1442
|
|
;1442:}
|
|
LABELV $444
|
|
endproc fx_runner_use 4 8
|
|
export fx_runner_link
|
|
proc fx_runner_link 44 12
|
|
line 1446
|
|
;1443:
|
|
;1444://----------------------------------------------------------
|
|
;1445:void fx_runner_link( gentity_t *ent )
|
|
;1446:{
|
|
line 1449
|
|
;1447: vec3_t dir;
|
|
;1448:
|
|
;1449: if ( ent->roffname && ent->roffname[0] )
|
|
ADDRLP4 12
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 428
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $452
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
EQI4 $452
|
|
line 1450
|
|
;1450: {
|
|
line 1452
|
|
;1451: // try to use the target to override the orientation
|
|
;1452: gentity_t *target = NULL;
|
|
ADDRLP4 16
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 1454
|
|
;1453:
|
|
;1454: target = G_Find( target, FOFS(targetname), ent->roffname );
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 588
|
|
ARGI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 428
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 20
|
|
ADDRGP4 G_Find
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ASGNP4
|
|
line 1456
|
|
;1455:
|
|
;1456: if ( !target )
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $454
|
|
line 1457
|
|
;1457: {
|
|
line 1459
|
|
;1458: // Bah, no good, dump a warning, but continue on and use the UP vector
|
|
;1459: Com_Printf( "fx_runner_link: target specified but not found: %s\n", ent->roffname );
|
|
ADDRGP4 $456
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 428
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 Com_Printf
|
|
CALLV
|
|
pop
|
|
line 1460
|
|
;1460: Com_Printf( " -assuming UP orientation.\n" );
|
|
ADDRGP4 $457
|
|
ARGP4
|
|
ADDRGP4 Com_Printf
|
|
CALLV
|
|
pop
|
|
line 1461
|
|
;1461: }
|
|
ADDRGP4 $455
|
|
JUMPV
|
|
LABELV $454
|
|
line 1463
|
|
;1462: else
|
|
;1463: {
|
|
line 1465
|
|
;1464: // Our target is valid so let's override the default UP vector
|
|
;1465: VectorSubtract( target->s.origin, ent->s.origin, dir );
|
|
ADDRLP4 28
|
|
CNSTI4 92
|
|
ASGNI4
|
|
ADDRLP4 32
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 36
|
|
CNSTI4 96
|
|
ASGNI4
|
|
ADDRLP4 0+4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ADDRLP4 36
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
ADDRLP4 36
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 40
|
|
CNSTI4 100
|
|
ASGNI4
|
|
ADDRLP4 0+8
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ADDRLP4 40
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 40
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 1466
|
|
;1466: VectorNormalize( dir );
|
|
ADDRLP4 0
|
|
ARGP4
|
|
ADDRGP4 VectorNormalize
|
|
CALLF4
|
|
pop
|
|
line 1467
|
|
;1467: vectoangles( dir, ent->s.angles );
|
|
ADDRLP4 0
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 116
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 vectoangles
|
|
CALLV
|
|
pop
|
|
line 1468
|
|
;1468: }
|
|
LABELV $455
|
|
line 1469
|
|
;1469: }
|
|
LABELV $452
|
|
line 1472
|
|
;1470:
|
|
;1471: // don't really do anything with this right now other than do a check to warn the designers if the target is bogus
|
|
;1472: if ( ent->target )
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $460
|
|
line 1473
|
|
;1473: {
|
|
line 1474
|
|
;1474: gentity_t *target = NULL;
|
|
ADDRLP4 16
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 1476
|
|
;1475:
|
|
;1476: target = G_Find( target, FOFS(targetname), ent->target );
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 588
|
|
ARGI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 20
|
|
ADDRGP4 G_Find
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ASGNP4
|
|
line 1478
|
|
;1477:
|
|
;1478: if ( !target )
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $462
|
|
line 1479
|
|
;1479: {
|
|
line 1481
|
|
;1480: // Target is bogus, but we can still continue
|
|
;1481: Com_Printf( "fx_runner_link: target was specified but is not valid: %s\n", ent->target );
|
|
ADDRGP4 $464
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 Com_Printf
|
|
CALLV
|
|
pop
|
|
line 1482
|
|
;1482: }
|
|
LABELV $462
|
|
line 1483
|
|
;1483: }
|
|
LABELV $460
|
|
line 1485
|
|
;1484:
|
|
;1485: G_SetAngles( ent, ent->s.angles );
|
|
ADDRLP4 16
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CNSTI4 116
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_SetAngles
|
|
CALLV
|
|
pop
|
|
line 1487
|
|
;1486:
|
|
;1487: if ( ent->spawnflags & 1 || ent->spawnflags & 2 ) // STARTOFF || ONESHOT
|
|
ADDRLP4 20
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 24
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
CNSTI4 1
|
|
BANDI4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
NEI4 $467
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
CNSTI4 2
|
|
BANDI4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
EQI4 $465
|
|
LABELV $467
|
|
line 1488
|
|
;1488: {
|
|
line 1490
|
|
;1489: // We won't even consider thinking until we are used
|
|
;1490: ent->nextthink = -1;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
line 1491
|
|
;1491: }
|
|
ADDRGP4 $466
|
|
JUMPV
|
|
LABELV $465
|
|
line 1493
|
|
;1492: else
|
|
;1493: {
|
|
line 1495
|
|
;1494: // Let's get to work right now!
|
|
;1495: ent->think = fx_runner_think;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
ADDRGP4 fx_runner_think
|
|
ASGNP4
|
|
line 1496
|
|
;1496: ent->nextthink = level.time + 100; // wait a small bit, then start working
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 100
|
|
ADDI4
|
|
ASGNI4
|
|
line 1497
|
|
;1497: }
|
|
LABELV $466
|
|
line 1498
|
|
;1498:}
|
|
LABELV $451
|
|
endproc fx_runner_link 44 12
|
|
export SP_fx_runner
|
|
proc SP_fx_runner 36 12
|
|
line 1502
|
|
;1499:
|
|
;1500://----------------------------------------------------------
|
|
;1501:void SP_fx_runner( gentity_t *ent )
|
|
;1502:{
|
|
line 1506
|
|
;1503: char *fxFile;
|
|
;1504:
|
|
;1505: // Get our defaults
|
|
;1506: G_SpawnInt( "delay", "400", &ent->delay );
|
|
ADDRGP4 $470
|
|
ARGP4
|
|
ADDRGP4 $471
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 764
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_SpawnInt
|
|
CALLI4
|
|
pop
|
|
line 1507
|
|
;1507: G_SpawnFloat( "random", "0", &ent->random );
|
|
ADDRGP4 $472
|
|
ARGP4
|
|
ADDRGP4 $112
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 760
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_SpawnFloat
|
|
CALLI4
|
|
pop
|
|
line 1509
|
|
;1508:
|
|
;1509: if (!ent->s.angles[0] && !ent->s.angles[1] && !ent->s.angles[2])
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
CNSTF4 0
|
|
ASGNF4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 116
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 8
|
|
INDIRF4
|
|
NEF4 $473
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 120
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 8
|
|
INDIRF4
|
|
NEF4 $473
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 124
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 8
|
|
INDIRF4
|
|
NEF4 $473
|
|
line 1510
|
|
;1510: {
|
|
line 1512
|
|
;1511: // didn't have angles, so give us the default of up
|
|
;1512: VectorSet( ent->s.angles, -90, 0, 0 );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 116
|
|
ADDP4
|
|
CNSTF4 3266576384
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 120
|
|
ADDP4
|
|
CNSTF4 0
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 124
|
|
ADDP4
|
|
CNSTF4 0
|
|
ASGNF4
|
|
line 1513
|
|
;1513: }
|
|
LABELV $473
|
|
line 1516
|
|
;1514:
|
|
;1515: // make us useable if we can be targeted
|
|
;1516: if ( ent->targetname )
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 588
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $475
|
|
line 1517
|
|
;1517: {
|
|
line 1518
|
|
;1518: ent->use = fx_runner_use;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 652
|
|
ADDP4
|
|
ADDRGP4 fx_runner_use
|
|
ASGNP4
|
|
line 1519
|
|
;1519: }
|
|
LABELV $475
|
|
line 1521
|
|
;1520:
|
|
;1521: G_SpawnString( "fxFile", "", &fxFile );
|
|
ADDRGP4 $477
|
|
ARGP4
|
|
ADDRGP4 $478
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ARGP4
|
|
ADDRGP4 G_SpawnString
|
|
CALLI4
|
|
pop
|
|
line 1523
|
|
;1522:
|
|
;1523: G_SpawnString( "fxTarget", "", &ent->roffname );
|
|
ADDRGP4 $479
|
|
ARGP4
|
|
ADDRGP4 $478
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 428
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_SpawnString
|
|
CALLI4
|
|
pop
|
|
line 1525
|
|
;1524:
|
|
;1525: if ( !fxFile || !fxFile[0] )
|
|
ADDRLP4 12
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $482
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $480
|
|
LABELV $482
|
|
line 1526
|
|
;1526: {
|
|
line 1527
|
|
;1527: Com_Printf( S_COLOR_RED"ERROR: fx_runner %s at %s has no fxFile specified\n", ent->targetname, vtos(ent->s.origin) );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 16
|
|
ADDRGP4 vtos
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $483
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 588
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 Com_Printf
|
|
CALLV
|
|
pop
|
|
line 1528
|
|
;1528: G_FreeEntity( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_FreeEntity
|
|
CALLV
|
|
pop
|
|
line 1529
|
|
;1529: return;
|
|
ADDRGP4 $469
|
|
JUMPV
|
|
LABELV $480
|
|
line 1534
|
|
;1530: }
|
|
;1531:
|
|
;1532: // Try and associate an effect file, unfortunately we won't know if this worked or not
|
|
;1533: // until the CGAME trys to register it...
|
|
;1534: ent->bolt_Head = G_EffectIndex( fxFile );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 16
|
|
ADDRGP4 G_EffectIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 784
|
|
ADDP4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1538
|
|
;1535: //It is dirty, yes. But no one likes adding things to the entity structure.
|
|
;1536:
|
|
;1537: // Give us a bit of time to spawn in the other entities, since we may have to target one of 'em
|
|
;1538: ent->think = fx_runner_link;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
ADDRGP4 fx_runner_link
|
|
ASGNP4
|
|
line 1539
|
|
;1539: ent->nextthink = level.time + 300;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 300
|
|
ADDI4
|
|
ASGNI4
|
|
line 1542
|
|
;1540:
|
|
;1541: // Save our position and link us up!
|
|
;1542: G_SetOrigin( ent, ent->s.origin );
|
|
ADDRLP4 20
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_SetOrigin
|
|
CALLV
|
|
pop
|
|
line 1544
|
|
;1543:
|
|
;1544: VectorSet( ent->r.maxs, FX_ENT_RADIUS, FX_ENT_RADIUS, FX_ENT_RADIUS );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
CNSTF4 1090519040
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 332
|
|
ADDP4
|
|
CNSTF4 1090519040
|
|
ASGNF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
CNSTF4 1090519040
|
|
ASGNF4
|
|
line 1545
|
|
;1545: VectorScale( ent->r.maxs, -1, ent->r.mins );
|
|
ADDRLP4 24
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
CNSTF4 3212836864
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
INDIRF4
|
|
MULF4
|
|
ASGNF4
|
|
ADDRLP4 28
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
CNSTI4 320
|
|
ADDP4
|
|
CNSTF4 3212836864
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
CNSTI4 332
|
|
ADDP4
|
|
INDIRF4
|
|
MULF4
|
|
ASGNF4
|
|
ADDRLP4 32
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
CNSTI4 324
|
|
ADDP4
|
|
CNSTF4 3212836864
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
INDIRF4
|
|
MULF4
|
|
ASGNF4
|
|
line 1547
|
|
;1546:
|
|
;1547: trap_LinkEntity( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_LinkEntity
|
|
CALLV
|
|
pop
|
|
line 1548
|
|
;1548:}
|
|
LABELV $469
|
|
endproc SP_fx_runner 36 12
|
|
import g_MaxHolocronCarry
|
|
import trap_ROFF_Purge_Ent
|
|
import trap_ROFF_Play
|
|
import trap_ROFF_Cache
|
|
import trap_ROFF_UpdateEntities
|
|
import trap_ROFF_Clean
|
|
import trap_SP_GetStringTextString
|
|
import trap_SP_Register
|
|
import trap_SP_RegisterServer
|
|
import trap_SnapVector
|
|
import trap_GeneticParentsAndChildSelection
|
|
import trap_BotResetWeaponState
|
|
import trap_BotFreeWeaponState
|
|
import trap_BotAllocWeaponState
|
|
import trap_BotLoadWeaponWeights
|
|
import trap_BotGetWeaponInfo
|
|
import trap_BotChooseBestFightWeapon
|
|
import trap_BotAddAvoidSpot
|
|
import trap_BotInitMoveState
|
|
import trap_BotFreeMoveState
|
|
import trap_BotAllocMoveState
|
|
import trap_BotPredictVisiblePosition
|
|
import trap_BotMovementViewTarget
|
|
import trap_BotReachabilityArea
|
|
import trap_BotResetLastAvoidReach
|
|
import trap_BotResetAvoidReach
|
|
import trap_BotMoveInDirection
|
|
import trap_BotMoveToGoal
|
|
import trap_BotResetMoveState
|
|
import trap_BotFreeGoalState
|
|
import trap_BotAllocGoalState
|
|
import trap_BotMutateGoalFuzzyLogic
|
|
import trap_BotSaveGoalFuzzyLogic
|
|
import trap_BotInterbreedGoalFuzzyLogic
|
|
import trap_BotFreeItemWeights
|
|
import trap_BotLoadItemWeights
|
|
import trap_BotUpdateEntityItems
|
|
import trap_BotInitLevelItems
|
|
import trap_BotSetAvoidGoalTime
|
|
import trap_BotAvoidGoalTime
|
|
import trap_BotGetLevelItemGoal
|
|
import trap_BotGetMapLocationGoal
|
|
import trap_BotGetNextCampSpotGoal
|
|
import trap_BotItemGoalInVisButNotVisible
|
|
import trap_BotTouchingGoal
|
|
import trap_BotChooseNBGItem
|
|
import trap_BotChooseLTGItem
|
|
import trap_BotGetSecondGoal
|
|
import trap_BotGetTopGoal
|
|
import trap_BotGoalName
|
|
import trap_BotDumpGoalStack
|
|
import trap_BotDumpAvoidGoals
|
|
import trap_BotEmptyGoalStack
|
|
import trap_BotPopGoal
|
|
import trap_BotPushGoal
|
|
import trap_BotResetAvoidGoals
|
|
import trap_BotRemoveFromAvoidGoals
|
|
import trap_BotResetGoalState
|
|
import trap_BotSetChatName
|
|
import trap_BotSetChatGender
|
|
import trap_BotLoadChatFile
|
|
import trap_BotReplaceSynonyms
|
|
import trap_UnifyWhiteSpaces
|
|
import trap_BotMatchVariable
|
|
import trap_BotFindMatch
|
|
import trap_StringContains
|
|
import trap_BotGetChatMessage
|
|
import trap_BotEnterChat
|
|
import trap_BotChatLength
|
|
import trap_BotReplyChat
|
|
import trap_BotNumInitialChats
|
|
import trap_BotInitialChat
|
|
import trap_BotNumConsoleMessages
|
|
import trap_BotNextConsoleMessage
|
|
import trap_BotRemoveConsoleMessage
|
|
import trap_BotQueueConsoleMessage
|
|
import trap_BotFreeChatState
|
|
import trap_BotAllocChatState
|
|
import trap_Characteristic_String
|
|
import trap_Characteristic_BInteger
|
|
import trap_Characteristic_Integer
|
|
import trap_Characteristic_BFloat
|
|
import trap_Characteristic_Float
|
|
import trap_BotFreeCharacter
|
|
import trap_BotLoadCharacter
|
|
import trap_EA_ResetInput
|
|
import trap_EA_GetInput
|
|
import trap_EA_EndRegular
|
|
import trap_EA_ForcePower
|
|
import trap_EA_Alt_Attack
|
|
import trap_EA_View
|
|
import trap_EA_Move
|
|
import trap_EA_DelayedJump
|
|
import trap_EA_Jump
|
|
import trap_EA_SelectWeapon
|
|
import trap_EA_MoveRight
|
|
import trap_EA_MoveLeft
|
|
import trap_EA_MoveBack
|
|
import trap_EA_MoveForward
|
|
import trap_EA_MoveDown
|
|
import trap_EA_MoveUp
|
|
import trap_EA_Crouch
|
|
import trap_EA_Respawn
|
|
import trap_EA_Use
|
|
import trap_EA_Attack
|
|
import trap_EA_Talk
|
|
import trap_EA_Gesture
|
|
import trap_EA_Action
|
|
import trap_EA_Command
|
|
import trap_EA_SayTeam
|
|
import trap_EA_Say
|
|
import trap_AAS_PredictClientMovement
|
|
import trap_AAS_Swimming
|
|
import trap_AAS_AlternativeRouteGoals
|
|
import trap_AAS_PredictRoute
|
|
import trap_AAS_EnableRoutingArea
|
|
import trap_AAS_AreaTravelTimeToGoalArea
|
|
import trap_AAS_AreaReachability
|
|
import trap_AAS_IntForBSPEpairKey
|
|
import trap_AAS_FloatForBSPEpairKey
|
|
import trap_AAS_VectorForBSPEpairKey
|
|
import trap_AAS_ValueForBSPEpairKey
|
|
import trap_AAS_NextBSPEntity
|
|
import trap_AAS_PointContents
|
|
import trap_AAS_TraceAreas
|
|
import trap_AAS_PointReachabilityAreaIndex
|
|
import trap_AAS_PointAreaNum
|
|
import trap_AAS_Time
|
|
import trap_AAS_PresenceTypeBoundingBox
|
|
import trap_AAS_Initialized
|
|
import trap_AAS_EntityInfo
|
|
import trap_AAS_AreaInfo
|
|
import trap_AAS_BBoxAreas
|
|
import trap_BotUserCommand
|
|
import trap_BotGetServerCommand
|
|
import trap_BotGetSnapshotEntity
|
|
import trap_BotLibTest
|
|
import trap_BotLibUpdateEntity
|
|
import trap_BotLibLoadMap
|
|
import trap_BotLibStartFrame
|
|
import trap_BotLibDefine
|
|
import trap_BotLibVarGet
|
|
import trap_BotLibVarSet
|
|
import trap_BotLibShutdown
|
|
import trap_BotLibSetup
|
|
import trap_DebugPolygonDelete
|
|
import trap_DebugPolygonCreate
|
|
import trap_GetEntityToken
|
|
import trap_GetUsercmd
|
|
import trap_BotFreeClient
|
|
import trap_BotAllocateClient
|
|
import trap_EntityContact
|
|
import trap_EntitiesInBox
|
|
import trap_UnlinkEntity
|
|
import trap_LinkEntity
|
|
import trap_AreasConnected
|
|
import trap_AdjustAreaPortalState
|
|
import trap_InPVSIgnorePortals
|
|
import trap_InPVS
|
|
import trap_PointContents
|
|
import trap_Trace
|
|
import trap_SetBrushModel
|
|
import trap_GetServerinfo
|
|
import trap_SetUserinfo
|
|
import trap_GetUserinfo
|
|
import trap_GetConfigstring
|
|
import trap_SetConfigstring
|
|
import trap_SendServerCommand
|
|
import trap_DropClient
|
|
import trap_LocateGameData
|
|
import trap_Cvar_VariableStringBuffer
|
|
import trap_Cvar_VariableValue
|
|
import trap_Cvar_VariableIntegerValue
|
|
import trap_Cvar_Set
|
|
import trap_Cvar_Update
|
|
import trap_Cvar_Register
|
|
import trap_SendConsoleCommand
|
|
import trap_FS_GetFileList
|
|
import trap_FS_FCloseFile
|
|
import trap_FS_Write
|
|
import trap_FS_Read
|
|
import trap_FS_FOpenFile
|
|
import trap_Args
|
|
import trap_Argv
|
|
import trap_Argc
|
|
import trap_Milliseconds
|
|
import trap_Error
|
|
import trap_Printf
|
|
import g_timeouttospec
|
|
import g_forceDodge
|
|
import g_dismember
|
|
import g_singlePlayer
|
|
import g_enableBreath
|
|
import g_enableDust
|
|
import g_rankings
|
|
import pmove_msec
|
|
import pmove_fixed
|
|
import g_smoothClients
|
|
import g_blueteam
|
|
import g_redteam
|
|
import g_debugUp
|
|
import g_debugRight
|
|
import g_debugForward
|
|
import g_filterBan
|
|
import g_banIPs
|
|
import g_teamForceBalance
|
|
import g_teamAutoJoin
|
|
import g_allowVote
|
|
import g_blood
|
|
import g_doWarmup
|
|
import g_warmup
|
|
import g_motd
|
|
import g_synchronousClients
|
|
import g_adaptRespawn
|
|
import g_weaponTeamRespawn
|
|
import g_weaponRespawn
|
|
import g_debugDamage
|
|
import g_debugAlloc
|
|
import g_debugMove
|
|
import g_inactivity
|
|
import g_forcerespawn
|
|
import g_quadfactor
|
|
import g_knockback
|
|
import g_speed
|
|
import g_gravity
|
|
import g_needpass
|
|
import g_password
|
|
import g_friendlySaber
|
|
import g_friendlyFire
|
|
import g_saberInterpolate
|
|
import g_capturelimit
|
|
import g_timelimit
|
|
import g_duel_fraglimit
|
|
import g_fraglimit
|
|
import g_duelWeaponDisable
|
|
import g_weaponDisable
|
|
import g_forcePowerDisable
|
|
import g_spawnInvulnerability
|
|
import g_forceRegenTime
|
|
import g_saberLocking
|
|
import g_privateDuel
|
|
import g_forceBasedTeams
|
|
import g_maxForceRank
|
|
import g_dmflags
|
|
import g_autoMapCycle
|
|
import g_restarted
|
|
import g_maxGameClients
|
|
import g_maxclients
|
|
import g_cheats
|
|
import g_dedicated
|
|
import g_gametype
|
|
import g_entities
|
|
import level
|
|
import Pickup_Team
|
|
import CheckTeamStatus
|
|
import TeamplayInfoMessage
|
|
import Team_GetLocationMsg
|
|
import Team_GetLocation
|
|
import SelectSagaSpawnPoint
|
|
import SelectCTFSpawnPoint
|
|
import Team_FreeEntity
|
|
import Team_ReturnFlag
|
|
import Team_InitGame
|
|
import Team_CheckHurtCarrier
|
|
import Team_FragBonuses
|
|
import Team_DroppedFlagThink
|
|
import AddTeamScore
|
|
import TeamColorString
|
|
import OtherTeamName
|
|
import TeamName
|
|
import OtherTeam
|
|
import BotAIStartFrame
|
|
import BotAIShutdownClient
|
|
import BotAISetupClient
|
|
import BotAILoadMap
|
|
import BotAIShutdown
|
|
import BotAISetup
|
|
import B_CleanupAlloc
|
|
import B_InitAlloc
|
|
import InFieldOfVision
|
|
import BotOrder
|
|
import OrgVisible
|
|
import InitSagaMode
|
|
import G_ClearClientLog
|
|
import G_LogExit
|
|
import G_LogWeaponOutput
|
|
import G_LogWeaponInit
|
|
import G_LogWeaponItem
|
|
import G_LogWeaponPowerup
|
|
import G_LogWeaponFrag
|
|
import G_LogWeaponDeath
|
|
import G_LogWeaponKill
|
|
import G_LogWeaponDamage
|
|
import G_LogWeaponFire
|
|
import G_LogWeaponPickup
|
|
import Jedi_DodgeEvasion
|
|
import ForceTelepathy
|
|
import ForceThrow
|
|
import ForceSeeing
|
|
import ForceTeamForceReplenish
|
|
import ForceTeamHeal
|
|
import ForceAbsorb
|
|
import ForceProtect
|
|
import ForceGrip
|
|
import ForceRage
|
|
import ForceSpeed
|
|
import ForceHeal
|
|
import ForcePowerUsableOn
|
|
import WP_ForcePowersUpdate
|
|
import WP_SpawnInitForcePowers
|
|
import WP_InitForcePowers
|
|
import WP_SaberInitBladeData
|
|
import WP_SaberCanBlock
|
|
import WP_SaberPositionUpdate
|
|
import WP_ForcePowerStop
|
|
import HasSetSaberOnly
|
|
import G_PreDefSound
|
|
import G_RefreshNextMap
|
|
import G_DoesMapSupportGametype
|
|
import BotInterbreedEndMatch
|
|
import Svcmd_BotList_f
|
|
import Svcmd_AddBot_f
|
|
import G_BotConnect
|
|
import G_RemoveQueuedBotBegin
|
|
import G_CheckBotSpawn
|
|
import G_GetBotInfoByName
|
|
import G_GetBotInfoByNumber
|
|
import G_InitBots
|
|
import UpdateTournamentInfo
|
|
import G_WriteSessionData
|
|
import G_InitWorldSession
|
|
import G_InitSessionData
|
|
import G_ReadSessionData
|
|
import Svcmd_GameMem_f
|
|
import G_InitMemory
|
|
import G_Alloc
|
|
import Team_CheckDroppedItem
|
|
import OnSameTeam
|
|
import G_RunClient
|
|
import ClientEndFrame
|
|
import ClientThink
|
|
import G_CheckClientTimeouts
|
|
import ClientCommand
|
|
import ClientBegin
|
|
import ClientDisconnect
|
|
import ClientUserinfoChanged
|
|
import ClientConnect
|
|
import G_GetStripEdString
|
|
import G_Error
|
|
import G_Printf
|
|
import SendScoreboardMessageToAllClients
|
|
import G_LogPrintf
|
|
import G_RunThink
|
|
import CheckTeamLeader
|
|
import SetLeader
|
|
import FindIntermissionPoint
|
|
import g_ff_objectives
|
|
import DeathmatchScoreboardMessage
|
|
import G_SetStats
|
|
import MoveClientToIntermission
|
|
import BlowDetpacks
|
|
import FireWeapon
|
|
import G_FilterPacket
|
|
import G_ProcessIPBans
|
|
import ConsoleCommand
|
|
import gJMSaberEnt
|
|
import SpotWouldTelefrag
|
|
import CalculateRanks
|
|
import AddScore
|
|
import player_die
|
|
import ClientSpawn
|
|
import InitBodyQue
|
|
import BeginIntermission
|
|
import respawn
|
|
import CopyToBodyQue
|
|
import SelectSpawnPoint
|
|
import SetClientViewAngle
|
|
import PickTeam
|
|
import TeamLeader
|
|
import TeamCount
|
|
import CheckGauntletAttack
|
|
import SnapVectorTowards
|
|
import CalcMuzzlePoint
|
|
import LogAccuracyHit
|
|
import WP_FireGenericBlasterMissile
|
|
import WP_FireTurretMissile
|
|
import trigger_teleporter_touch
|
|
import Touch_DoorTrigger
|
|
import G_RunMover
|
|
import WP_FireBlasterMissile
|
|
import G_ExplodeMissile
|
|
import G_BounceProjectile
|
|
import CreateMissile
|
|
import G_RunMissile
|
|
import G_ReflectMissile
|
|
import ExplodeDeath
|
|
import TossClientCubes
|
|
import TossClientItems
|
|
import TossClientWeapon
|
|
import body_die
|
|
import G_RadiusDamage
|
|
import G_Damage
|
|
import CanDamage
|
|
import trap_G2API_SetBoneAnim
|
|
import trap_G2API_GetGLAName
|
|
import trap_G2API_SetBoneAngles
|
|
import trap_G2API_CleanGhoul2Models
|
|
import trap_G2API_RemoveGhoul2Model
|
|
import trap_G2API_HasGhoul2ModelOnIndex
|
|
import trap_G2API_DuplicateGhoul2Instance
|
|
import trap_G2API_CopySpecificGhoul2Model
|
|
import trap_G2API_CopyGhoul2Instance
|
|
import trap_G2API_SetBoltInfo
|
|
import trap_G2API_AddBolt
|
|
import trap_G2API_InitGhoul2Model
|
|
import trap_G2API_GetBoltMatrix_NoReconstruct
|
|
import trap_G2API_GetBoltMatrix
|
|
import trap_G2_HaveWeGhoul2Models
|
|
import trap_G2_SetGhoul2ModelIndexes
|
|
import trap_G2_ListModelBones
|
|
import trap_G2_ListModelSurfaces
|
|
import G_SkinIndex
|
|
import BuildShaderStateConfig
|
|
import AddRemap
|
|
import G_SetOrigin
|
|
import G_AddEvent
|
|
import G_AddPredictableEvent
|
|
import vtos
|
|
import tv
|
|
import G_RunObject
|
|
import G_TouchSolids
|
|
import G_TouchTriggers
|
|
import G_EntitiesFree
|
|
import G_FreeEntity
|
|
import G_KillG2Queue
|
|
import G_SendG2KillQueue
|
|
import TryUse
|
|
import G_EntitySound
|
|
import G_SoundAtLoc
|
|
import G_Sound
|
|
import G_MuteSound
|
|
import G_ScreenShake
|
|
import G_PlayEffect
|
|
import G_TempEntity
|
|
import G_Spawn
|
|
import G_InitGentity
|
|
import G_SetAngles
|
|
import G_SetMovedir
|
|
import G_UseTargets
|
|
import G_PickTarget
|
|
import G_RadiusList
|
|
import G_Find
|
|
import G_KillBox
|
|
import G_TeamCommand
|
|
import G_EffectIndex
|
|
import G_SoundIndex
|
|
import G_ModelIndex
|
|
import SaveRegisteredItems
|
|
import RegisterItem
|
|
import ClearRegisteredItems
|
|
import Touch_Item
|
|
import Add_Ammo
|
|
import ArmorIndex
|
|
import Think_Weapon
|
|
import FinishSpawningItem
|
|
import G_SpawnItem
|
|
import SetRespawn
|
|
import LaunchItem
|
|
import Drop_Item
|
|
import PrecacheItem
|
|
import UseHoldableItem
|
|
import RespawnItem
|
|
import G_RunItem
|
|
import G_CheckTeamItems
|
|
import ItemUse_MedPack
|
|
import ItemUse_Seeker
|
|
import ItemUse_Sentry
|
|
import ItemUse_Shield
|
|
import ItemUse_Binoculars
|
|
import G_GetDuelWinner
|
|
import Cmd_EngageDuel_f
|
|
import Cmd_ToggleSaber_f
|
|
import G_ItemUsable
|
|
import Cmd_SaberAttackCycle_f
|
|
import Cmd_FollowCycle_f
|
|
import SetTeam
|
|
import BroadcastTeamChange
|
|
import StopFollowing
|
|
import Cmd_Score_f
|
|
import G_NewString
|
|
import G_SpawnEntitiesFromString
|
|
import G_SpawnVector
|
|
import G_SpawnInt
|
|
import G_SpawnFloat
|
|
import G_SpawnString
|
|
import g2SaberInstance
|
|
import precachedKyle
|
|
import forcePowerDarkLight
|
|
import WeaponAttackAnim
|
|
import WeaponReadyAnim
|
|
import BG_OutOfMemory
|
|
import BG_StringAlloc
|
|
import BG_TempFree
|
|
import BG_TempAlloc
|
|
import BG_AllocUnaligned
|
|
import BG_Alloc
|
|
import BG_CanUseFPNow
|
|
import BG_HasYsalamiri
|
|
import BG_GetItemIndexByTag
|
|
import BG_ParseAnimationFile
|
|
import BG_PlayerTouchesItem
|
|
import BG_G2PlayerAngles
|
|
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_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 Pmove
|
|
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_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 PerpendicularVector
|
|
import AngleVectors
|
|
import MatrixMultiply
|
|
import MakeNormalVectors
|
|
import RotateAroundDirection
|
|
import RotatePointAroundVector
|
|
import ProjectPointOnPlane
|
|
import PlaneFromPoints
|
|
import AngleDelta
|
|
import AngleNormalize180
|
|
import AngleNormalize360
|
|
import AnglesSubtract
|
|
import AngleSubtract
|
|
import LerpAngle
|
|
import AngleMod
|
|
import BoxOnPlaneSide
|
|
import SetPlaneSignbits
|
|
import AxisCopy
|
|
import AxisClear
|
|
import AnglesToAxis
|
|
import vectoangles
|
|
import Q_crandom
|
|
import Q_random
|
|
import Q_rand
|
|
import Q_acos
|
|
import Q_log2
|
|
import VectorRotate
|
|
import Vector4Scale
|
|
import VectorNormalize2
|
|
import VectorNormalize
|
|
import CrossProduct
|
|
import VectorInverse
|
|
import VectorNormalizeFast
|
|
import DistanceSquared
|
|
import Distance
|
|
import VectorLengthSquared
|
|
import VectorLength
|
|
import VectorCompare
|
|
import AddPointToBounds
|
|
import ClearBounds
|
|
import RadiusFromBounds
|
|
import NormalizeColor
|
|
import ColorBytes4
|
|
import ColorBytes3
|
|
import _VectorMA
|
|
import _VectorScale
|
|
import _VectorCopy
|
|
import _VectorAdd
|
|
import _VectorSubtract
|
|
import _DotProduct
|
|
import ByteToDir
|
|
import DirToByte
|
|
import 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 $483
|
|
char 1 94
|
|
char 1 49
|
|
char 1 69
|
|
char 1 82
|
|
char 1 82
|
|
char 1 79
|
|
char 1 82
|
|
char 1 58
|
|
char 1 32
|
|
char 1 102
|
|
char 1 120
|
|
char 1 95
|
|
char 1 114
|
|
char 1 117
|
|
char 1 110
|
|
char 1 110
|
|
char 1 101
|
|
char 1 114
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 32
|
|
char 1 97
|
|
char 1 116
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 32
|
|
char 1 104
|
|
char 1 97
|
|
char 1 115
|
|
char 1 32
|
|
char 1 110
|
|
char 1 111
|
|
char 1 32
|
|
char 1 102
|
|
char 1 120
|
|
char 1 70
|
|
char 1 105
|
|
char 1 108
|
|
char 1 101
|
|
char 1 32
|
|
char 1 115
|
|
char 1 112
|
|
char 1 101
|
|
char 1 99
|
|
char 1 105
|
|
char 1 102
|
|
char 1 105
|
|
char 1 101
|
|
char 1 100
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $479
|
|
char 1 102
|
|
char 1 120
|
|
char 1 84
|
|
char 1 97
|
|
char 1 114
|
|
char 1 103
|
|
char 1 101
|
|
char 1 116
|
|
char 1 0
|
|
align 1
|
|
LABELV $478
|
|
char 1 0
|
|
align 1
|
|
LABELV $477
|
|
char 1 102
|
|
char 1 120
|
|
char 1 70
|
|
char 1 105
|
|
char 1 108
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $472
|
|
char 1 114
|
|
char 1 97
|
|
char 1 110
|
|
char 1 100
|
|
char 1 111
|
|
char 1 109
|
|
char 1 0
|
|
align 1
|
|
LABELV $471
|
|
char 1 52
|
|
char 1 48
|
|
char 1 48
|
|
char 1 0
|
|
align 1
|
|
LABELV $470
|
|
char 1 100
|
|
char 1 101
|
|
char 1 108
|
|
char 1 97
|
|
char 1 121
|
|
char 1 0
|
|
align 1
|
|
LABELV $464
|
|
char 1 102
|
|
char 1 120
|
|
char 1 95
|
|
char 1 114
|
|
char 1 117
|
|
char 1 110
|
|
char 1 110
|
|
char 1 101
|
|
char 1 114
|
|
char 1 95
|
|
char 1 108
|
|
char 1 105
|
|
char 1 110
|
|
char 1 107
|
|
char 1 58
|
|
char 1 32
|
|
char 1 116
|
|
char 1 97
|
|
char 1 114
|
|
char 1 103
|
|
char 1 101
|
|
char 1 116
|
|
char 1 32
|
|
char 1 119
|
|
char 1 97
|
|
char 1 115
|
|
char 1 32
|
|
char 1 115
|
|
char 1 112
|
|
char 1 101
|
|
char 1 99
|
|
char 1 105
|
|
char 1 102
|
|
char 1 105
|
|
char 1 101
|
|
char 1 100
|
|
char 1 32
|
|
char 1 98
|
|
char 1 117
|
|
char 1 116
|
|
char 1 32
|
|
char 1 105
|
|
char 1 115
|
|
char 1 32
|
|
char 1 110
|
|
char 1 111
|
|
char 1 116
|
|
char 1 32
|
|
char 1 118
|
|
char 1 97
|
|
char 1 108
|
|
char 1 105
|
|
char 1 100
|
|
char 1 58
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $457
|
|
char 1 32
|
|
char 1 32
|
|
char 1 45
|
|
char 1 97
|
|
char 1 115
|
|
char 1 115
|
|
char 1 117
|
|
char 1 109
|
|
char 1 105
|
|
char 1 110
|
|
char 1 103
|
|
char 1 32
|
|
char 1 85
|
|
char 1 80
|
|
char 1 32
|
|
char 1 111
|
|
char 1 114
|
|
char 1 105
|
|
char 1 101
|
|
char 1 110
|
|
char 1 116
|
|
char 1 97
|
|
char 1 116
|
|
char 1 105
|
|
char 1 111
|
|
char 1 110
|
|
char 1 46
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $456
|
|
char 1 102
|
|
char 1 120
|
|
char 1 95
|
|
char 1 114
|
|
char 1 117
|
|
char 1 110
|
|
char 1 110
|
|
char 1 101
|
|
char 1 114
|
|
char 1 95
|
|
char 1 108
|
|
char 1 105
|
|
char 1 110
|
|
char 1 107
|
|
char 1 58
|
|
char 1 32
|
|
char 1 116
|
|
char 1 97
|
|
char 1 114
|
|
char 1 103
|
|
char 1 101
|
|
char 1 116
|
|
char 1 32
|
|
char 1 115
|
|
char 1 112
|
|
char 1 101
|
|
char 1 99
|
|
char 1 105
|
|
char 1 102
|
|
char 1 105
|
|
char 1 101
|
|
char 1 100
|
|
char 1 32
|
|
char 1 98
|
|
char 1 117
|
|
char 1 116
|
|
char 1 32
|
|
char 1 110
|
|
char 1 111
|
|
char 1 116
|
|
char 1 32
|
|
char 1 102
|
|
char 1 111
|
|
char 1 117
|
|
char 1 110
|
|
char 1 100
|
|
char 1 58
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $399
|
|
char 1 100
|
|
char 1 109
|
|
char 1 103
|
|
char 1 95
|
|
char 1 98
|
|
char 1 111
|
|
char 1 120
|
|
char 1 0
|
|
align 1
|
|
LABELV $364
|
|
char 1 115
|
|
char 1 111
|
|
char 1 117
|
|
char 1 110
|
|
char 1 100
|
|
char 1 47
|
|
char 1 112
|
|
char 1 108
|
|
char 1 97
|
|
char 1 121
|
|
char 1 101
|
|
char 1 114
|
|
char 1 47
|
|
char 1 112
|
|
char 1 105
|
|
char 1 99
|
|
char 1 107
|
|
char 1 117
|
|
char 1 112
|
|
char 1 104
|
|
char 1 101
|
|
char 1 97
|
|
char 1 108
|
|
char 1 116
|
|
char 1 104
|
|
char 1 46
|
|
char 1 119
|
|
char 1 97
|
|
char 1 118
|
|
char 1 0
|
|
align 1
|
|
LABELV $330
|
|
char 1 115
|
|
char 1 111
|
|
char 1 117
|
|
char 1 110
|
|
char 1 100
|
|
char 1 47
|
|
char 1 112
|
|
char 1 108
|
|
char 1 97
|
|
char 1 121
|
|
char 1 101
|
|
char 1 114
|
|
char 1 47
|
|
char 1 112
|
|
char 1 105
|
|
char 1 99
|
|
char 1 107
|
|
char 1 117
|
|
char 1 112
|
|
char 1 115
|
|
char 1 104
|
|
char 1 105
|
|
char 1 101
|
|
char 1 108
|
|
char 1 100
|
|
char 1 46
|
|
char 1 119
|
|
char 1 97
|
|
char 1 118
|
|
char 1 0
|
|
align 1
|
|
LABELV $317
|
|
char 1 47
|
|
char 1 109
|
|
char 1 111
|
|
char 1 100
|
|
char 1 101
|
|
char 1 108
|
|
char 1 115
|
|
char 1 47
|
|
char 1 105
|
|
char 1 116
|
|
char 1 101
|
|
char 1 109
|
|
char 1 115
|
|
char 1 47
|
|
char 1 112
|
|
char 1 115
|
|
char 1 100
|
|
char 1 95
|
|
char 1 98
|
|
char 1 105
|
|
char 1 103
|
|
char 1 46
|
|
char 1 109
|
|
char 1 100
|
|
char 1 51
|
|
char 1 0
|
|
align 1
|
|
LABELV $316
|
|
char 1 115
|
|
char 1 111
|
|
char 1 117
|
|
char 1 110
|
|
char 1 100
|
|
char 1 47
|
|
char 1 109
|
|
char 1 111
|
|
char 1 118
|
|
char 1 101
|
|
char 1 114
|
|
char 1 115
|
|
char 1 47
|
|
char 1 111
|
|
char 1 98
|
|
char 1 106
|
|
char 1 101
|
|
char 1 99
|
|
char 1 116
|
|
char 1 115
|
|
char 1 47
|
|
char 1 117
|
|
char 1 115
|
|
char 1 101
|
|
char 1 115
|
|
char 1 104
|
|
char 1 105
|
|
char 1 101
|
|
char 1 108
|
|
char 1 100
|
|
char 1 115
|
|
char 1 116
|
|
char 1 97
|
|
char 1 116
|
|
char 1 105
|
|
char 1 111
|
|
char 1 110
|
|
char 1 46
|
|
char 1 119
|
|
char 1 97
|
|
char 1 118
|
|
char 1 0
|
|
align 1
|
|
LABELV $311
|
|
char 1 115
|
|
char 1 111
|
|
char 1 117
|
|
char 1 110
|
|
char 1 100
|
|
char 1 47
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 101
|
|
char 1 114
|
|
char 1 102
|
|
char 1 97
|
|
char 1 99
|
|
char 1 101
|
|
char 1 47
|
|
char 1 115
|
|
char 1 104
|
|
char 1 105
|
|
char 1 101
|
|
char 1 108
|
|
char 1 100
|
|
char 1 99
|
|
char 1 111
|
|
char 1 110
|
|
char 1 95
|
|
char 1 101
|
|
char 1 109
|
|
char 1 112
|
|
char 1 116
|
|
char 1 121
|
|
char 1 46
|
|
char 1 109
|
|
char 1 112
|
|
char 1 51
|
|
char 1 0
|
|
align 1
|
|
LABELV $309
|
|
char 1 47
|
|
char 1 109
|
|
char 1 111
|
|
char 1 100
|
|
char 1 101
|
|
char 1 108
|
|
char 1 115
|
|
char 1 47
|
|
char 1 105
|
|
char 1 116
|
|
char 1 101
|
|
char 1 109
|
|
char 1 115
|
|
char 1 47
|
|
char 1 97
|
|
char 1 95
|
|
char 1 115
|
|
char 1 104
|
|
char 1 105
|
|
char 1 101
|
|
char 1 108
|
|
char 1 100
|
|
char 1 95
|
|
char 1 99
|
|
char 1 111
|
|
char 1 110
|
|
char 1 118
|
|
char 1 101
|
|
char 1 114
|
|
char 1 116
|
|
char 1 101
|
|
char 1 114
|
|
char 1 46
|
|
char 1 109
|
|
char 1 100
|
|
char 1 51
|
|
char 1 0
|
|
align 1
|
|
LABELV $301
|
|
char 1 83
|
|
char 1 80
|
|
char 1 95
|
|
char 1 109
|
|
char 1 105
|
|
char 1 115
|
|
char 1 99
|
|
char 1 95
|
|
char 1 115
|
|
char 1 104
|
|
char 1 105
|
|
char 1 101
|
|
char 1 108
|
|
char 1 100
|
|
char 1 95
|
|
char 1 102
|
|
char 1 108
|
|
char 1 111
|
|
char 1 111
|
|
char 1 114
|
|
char 1 95
|
|
char 1 117
|
|
char 1 110
|
|
char 1 105
|
|
char 1 116
|
|
char 1 58
|
|
char 1 32
|
|
char 1 109
|
|
char 1 105
|
|
char 1 115
|
|
char 1 99
|
|
char 1 95
|
|
char 1 115
|
|
char 1 104
|
|
char 1 105
|
|
char 1 101
|
|
char 1 108
|
|
char 1 100
|
|
char 1 95
|
|
char 1 102
|
|
char 1 108
|
|
char 1 111
|
|
char 1 111
|
|
char 1 114
|
|
char 1 95
|
|
char 1 117
|
|
char 1 110
|
|
char 1 105
|
|
char 1 116
|
|
char 1 32
|
|
char 1 115
|
|
char 1 116
|
|
char 1 97
|
|
char 1 114
|
|
char 1 116
|
|
char 1 115
|
|
char 1 111
|
|
char 1 108
|
|
char 1 105
|
|
char 1 100
|
|
char 1 32
|
|
char 1 97
|
|
char 1 116
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $286
|
|
char 1 115
|
|
char 1 111
|
|
char 1 117
|
|
char 1 110
|
|
char 1 100
|
|
char 1 47
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 101
|
|
char 1 114
|
|
char 1 102
|
|
char 1 97
|
|
char 1 99
|
|
char 1 101
|
|
char 1 47
|
|
char 1 115
|
|
char 1 104
|
|
char 1 105
|
|
char 1 101
|
|
char 1 108
|
|
char 1 100
|
|
char 1 99
|
|
char 1 111
|
|
char 1 110
|
|
char 1 95
|
|
char 1 100
|
|
char 1 111
|
|
char 1 110
|
|
char 1 101
|
|
char 1 46
|
|
char 1 109
|
|
char 1 112
|
|
char 1 51
|
|
char 1 0
|
|
align 1
|
|
LABELV $269
|
|
char 1 115
|
|
char 1 111
|
|
char 1 117
|
|
char 1 110
|
|
char 1 100
|
|
char 1 47
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 101
|
|
char 1 114
|
|
char 1 102
|
|
char 1 97
|
|
char 1 99
|
|
char 1 101
|
|
char 1 47
|
|
char 1 115
|
|
char 1 104
|
|
char 1 105
|
|
char 1 101
|
|
char 1 108
|
|
char 1 100
|
|
char 1 99
|
|
char 1 111
|
|
char 1 110
|
|
char 1 95
|
|
char 1 114
|
|
char 1 117
|
|
char 1 110
|
|
char 1 46
|
|
char 1 119
|
|
char 1 97
|
|
char 1 118
|
|
char 1 0
|
|
align 1
|
|
LABELV $257
|
|
char 1 99
|
|
char 1 104
|
|
char 1 97
|
|
char 1 114
|
|
char 1 103
|
|
char 1 101
|
|
char 1 114
|
|
char 1 97
|
|
char 1 116
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $254
|
|
char 1 99
|
|
char 1 111
|
|
char 1 117
|
|
char 1 110
|
|
char 1 116
|
|
char 1 0
|
|
align 1
|
|
LABELV $205
|
|
char 1 83
|
|
char 1 80
|
|
char 1 95
|
|
char 1 109
|
|
char 1 105
|
|
char 1 115
|
|
char 1 99
|
|
char 1 95
|
|
char 1 104
|
|
char 1 111
|
|
char 1 108
|
|
char 1 111
|
|
char 1 99
|
|
char 1 114
|
|
char 1 111
|
|
char 1 110
|
|
char 1 58
|
|
char 1 32
|
|
char 1 109
|
|
char 1 105
|
|
char 1 115
|
|
char 1 99
|
|
char 1 95
|
|
char 1 104
|
|
char 1 111
|
|
char 1 108
|
|
char 1 111
|
|
char 1 99
|
|
char 1 114
|
|
char 1 111
|
|
char 1 110
|
|
char 1 32
|
|
char 1 115
|
|
char 1 116
|
|
char 1 97
|
|
char 1 114
|
|
char 1 116
|
|
char 1 115
|
|
char 1 111
|
|
char 1 108
|
|
char 1 105
|
|
char 1 100
|
|
char 1 32
|
|
char 1 97
|
|
char 1 116
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $112
|
|
char 1 48
|
|
char 1 0
|
|
align 1
|
|
LABELV $111
|
|
char 1 114
|
|
char 1 111
|
|
char 1 108
|
|
char 1 108
|
|
char 1 0
|
|
align 1
|
|
LABELV $95
|
|
char 1 67
|
|
char 1 111
|
|
char 1 117
|
|
char 1 108
|
|
char 1 100
|
|
char 1 110
|
|
char 1 39
|
|
char 1 116
|
|
char 1 32
|
|
char 1 102
|
|
char 1 105
|
|
char 1 110
|
|
char 1 100
|
|
char 1 32
|
|
char 1 116
|
|
char 1 97
|
|
char 1 114
|
|
char 1 103
|
|
char 1 101
|
|
char 1 116
|
|
char 1 32
|
|
char 1 102
|
|
char 1 111
|
|
char 1 114
|
|
char 1 32
|
|
char 1 109
|
|
char 1 105
|
|
char 1 115
|
|
char 1 99
|
|
char 1 95
|
|
char 1 112
|
|
char 1 97
|
|
char 1 114
|
|
char 1 116
|
|
char 1 97
|
|
char 1 108
|
|
char 1 95
|
|
char 1 115
|
|
char 1 117
|
|
char 1 114
|
|
char 1 102
|
|
char 1 97
|
|
char 1 99
|
|
char 1 101
|
|
char 1 10
|
|
char 1 0
|