3664 lines
58 KiB
NASM
3664 lines
58 KiB
NASM
export Use_Target_Give
|
|
code
|
|
proc Use_Target_Give 1088 12
|
|
file "../g_target.c"
|
|
line 10
|
|
;1:// Copyright (C) 1999-2000 Id Software, Inc.
|
|
;2://
|
|
;3:#include "g_local.h"
|
|
;4:
|
|
;5://==========================================================
|
|
;6:
|
|
;7:/*QUAKED target_give (1 0 0) (-8 -8 -8) (8 8 8)
|
|
;8:Gives the activator all the items pointed to.
|
|
;9:*/
|
|
;10:void Use_Target_Give( gentity_t *ent, gentity_t *other, gentity_t *activator ) {
|
|
line 14
|
|
;11: gentity_t *t;
|
|
;12: trace_t trace;
|
|
;13:
|
|
;14: if ( !activator->client ) {
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $79
|
|
line 15
|
|
;15: return;
|
|
ADDRGP4 $78
|
|
JUMPV
|
|
LABELV $79
|
|
line 18
|
|
;16: }
|
|
;17:
|
|
;18: if ( !ent->target ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $81
|
|
line 19
|
|
;19: return;
|
|
ADDRGP4 $78
|
|
JUMPV
|
|
LABELV $81
|
|
line 22
|
|
;20: }
|
|
;21:
|
|
;22: memset( &trace, 0, sizeof( trace ) );
|
|
ADDRLP4 4
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
CNSTI4 1080
|
|
ARGI4
|
|
ADDRGP4 memset
|
|
CALLP4
|
|
pop
|
|
line 23
|
|
;23: t = NULL;
|
|
ADDRLP4 0
|
|
CNSTP4 0
|
|
ASGNP4
|
|
ADDRGP4 $84
|
|
JUMPV
|
|
LABELV $83
|
|
line 24
|
|
;24: while ( (t = G_Find (t, FOFS(targetname), ent->target)) != NULL ) {
|
|
line 25
|
|
;25: if ( !t->item ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 824
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $86
|
|
line 26
|
|
;26: continue;
|
|
ADDRGP4 $84
|
|
JUMPV
|
|
LABELV $86
|
|
line 28
|
|
;27: }
|
|
;28: Touch_Item( t, activator, &trace );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRGP4 Touch_Item
|
|
CALLV
|
|
pop
|
|
line 31
|
|
;29:
|
|
;30: // make sure it isn't going to respawn or show any events
|
|
;31: t->nextthink = 0;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 32
|
|
;32: trap_UnlinkEntity( t );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_UnlinkEntity
|
|
CALLV
|
|
pop
|
|
line 33
|
|
;33: }
|
|
LABELV $84
|
|
line 24
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 588
|
|
ARGI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 1084
|
|
ADDRGP4 G_Find
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 1084
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1084
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $83
|
|
line 34
|
|
;34:}
|
|
LABELV $78
|
|
endproc Use_Target_Give 1088 12
|
|
export SP_target_give
|
|
proc SP_target_give 0 0
|
|
line 36
|
|
;35:
|
|
;36:void SP_target_give( gentity_t *ent ) {
|
|
line 37
|
|
;37: ent->use = Use_Target_Give;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 652
|
|
ADDP4
|
|
ADDRGP4 Use_Target_Give
|
|
ASGNP4
|
|
line 38
|
|
;38:}
|
|
LABELV $88
|
|
endproc SP_target_give 0 0
|
|
export Use_target_remove_powerups
|
|
proc Use_target_remove_powerups 0 12
|
|
line 47
|
|
;39:
|
|
;40:
|
|
;41://==========================================================
|
|
;42:
|
|
;43:/*QUAKED target_remove_powerups (1 0 0) (-8 -8 -8) (8 8 8)
|
|
;44:takes away all the activators powerups.
|
|
;45:Used to drop flight powerups into death puts.
|
|
;46:*/
|
|
;47:void Use_target_remove_powerups( gentity_t *ent, gentity_t *other, gentity_t *activator ) {
|
|
line 48
|
|
;48: if( !activator->client ) {
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $90
|
|
line 49
|
|
;49: return;
|
|
ADDRGP4 $89
|
|
JUMPV
|
|
LABELV $90
|
|
line 52
|
|
;50: }
|
|
;51:
|
|
;52: if( activator->client->ps.powerups[PW_REDFLAG] ) {
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 360
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $92
|
|
line 53
|
|
;53: Team_ReturnFlag( TEAM_RED );
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 Team_ReturnFlag
|
|
CALLV
|
|
pop
|
|
line 54
|
|
;54: } else if( activator->client->ps.powerups[PW_BLUEFLAG] ) {
|
|
ADDRGP4 $93
|
|
JUMPV
|
|
LABELV $92
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 364
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $94
|
|
line 55
|
|
;55: Team_ReturnFlag( TEAM_BLUE );
|
|
CNSTI4 2
|
|
ARGI4
|
|
ADDRGP4 Team_ReturnFlag
|
|
CALLV
|
|
pop
|
|
line 56
|
|
;56: } else if( activator->client->ps.powerups[PW_NEUTRALFLAG] ) {
|
|
ADDRGP4 $95
|
|
JUMPV
|
|
LABELV $94
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $96
|
|
line 57
|
|
;57: Team_ReturnFlag( TEAM_FREE );
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 Team_ReturnFlag
|
|
CALLV
|
|
pop
|
|
line 58
|
|
;58: }
|
|
LABELV $96
|
|
LABELV $95
|
|
LABELV $93
|
|
line 60
|
|
;59:
|
|
;60: memset( activator->client->ps.powerups, 0, sizeof( activator->client->ps.powerups ) );
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 344
|
|
ADDP4
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
CNSTI4 64
|
|
ARGI4
|
|
ADDRGP4 memset
|
|
CALLP4
|
|
pop
|
|
line 61
|
|
;61:}
|
|
LABELV $89
|
|
endproc Use_target_remove_powerups 0 12
|
|
export SP_target_remove_powerups
|
|
proc SP_target_remove_powerups 0 0
|
|
line 63
|
|
;62:
|
|
;63:void SP_target_remove_powerups( gentity_t *ent ) {
|
|
line 64
|
|
;64: ent->use = Use_target_remove_powerups;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 652
|
|
ADDP4
|
|
ADDRGP4 Use_target_remove_powerups
|
|
ASGNP4
|
|
line 65
|
|
;65:}
|
|
LABELV $98
|
|
endproc SP_target_remove_powerups 0 0
|
|
export Think_Target_Delay
|
|
proc Think_Target_Delay 4 8
|
|
line 78
|
|
;66:
|
|
;67:
|
|
;68://==========================================================
|
|
;69:
|
|
;70:/*QUAKED target_delay (1 0 0) (-8 -8 -8) (8 8 8) NO_RETRIGGER
|
|
;71:
|
|
;72:NO_RETRIGGER - Keeps the delay from resetting the time if it is
|
|
;73:activated again while it is counting down to an event.
|
|
;74:
|
|
;75:"wait" seconds to pause before firing targets.
|
|
;76:"random" delay variance, total delay = delay +/- random seconds
|
|
;77:*/
|
|
;78:void Think_Target_Delay( gentity_t *ent ) {
|
|
line 79
|
|
;79: G_UseTargets( ent, ent->activator );
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 732
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_UseTargets
|
|
CALLV
|
|
pop
|
|
line 80
|
|
;80:}
|
|
LABELV $99
|
|
endproc Think_Target_Delay 4 8
|
|
export Use_Target_Delay
|
|
proc Use_Target_Delay 12 0
|
|
line 82
|
|
;81:
|
|
;82:void Use_Target_Delay( gentity_t *ent, gentity_t *other, gentity_t *activator ) {
|
|
line 83
|
|
;83: if (ent->nextthink > level.time && (ent->spawnflags & 1))
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
LEI4 $101
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $101
|
|
line 84
|
|
;84: { //Leave me alone, I am thinking.
|
|
line 85
|
|
;85: return;
|
|
ADDRGP4 $100
|
|
JUMPV
|
|
LABELV $101
|
|
line 87
|
|
;86: }
|
|
;87: ent->nextthink = level.time + ( ent->wait + ent->random * crandom() ) * 1000;
|
|
ADDRLP4 4
|
|
ADDRGP4 rand
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CVIF4 4
|
|
CNSTF4 1148846080
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 756
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 760
|
|
ADDP4
|
|
INDIRF4
|
|
CNSTF4 1073741824
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 32767
|
|
BANDI4
|
|
CVIF4 4
|
|
CNSTF4 1191181824
|
|
DIVF4
|
|
CNSTF4 1056964608
|
|
SUBF4
|
|
MULF4
|
|
MULF4
|
|
ADDF4
|
|
MULF4
|
|
ADDF4
|
|
CVFI4 4
|
|
ASGNI4
|
|
line 88
|
|
;88: ent->think = Think_Target_Delay;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
ADDRGP4 Think_Target_Delay
|
|
ASGNP4
|
|
line 89
|
|
;89: ent->activator = activator;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 732
|
|
ADDP4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
line 90
|
|
;90:}
|
|
LABELV $100
|
|
endproc Use_Target_Delay 12 0
|
|
export SP_target_delay
|
|
proc SP_target_delay 4 12
|
|
line 92
|
|
;91:
|
|
;92:void SP_target_delay( gentity_t *ent ) {
|
|
line 94
|
|
;93: // check delay for backwards compatability
|
|
;94: if ( !G_SpawnFloat( "delay", "0", &ent->wait ) ) {
|
|
ADDRGP4 $108
|
|
ARGP4
|
|
ADDRGP4 $109
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 756
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ADDRGP4 G_SpawnFloat
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $106
|
|
line 95
|
|
;95: G_SpawnFloat( "wait", "1", &ent->wait );
|
|
ADDRGP4 $110
|
|
ARGP4
|
|
ADDRGP4 $111
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 756
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_SpawnFloat
|
|
CALLI4
|
|
pop
|
|
line 96
|
|
;96: }
|
|
LABELV $106
|
|
line 98
|
|
;97:
|
|
;98: if ( !ent->wait ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 756
|
|
ADDP4
|
|
INDIRF4
|
|
CNSTF4 0
|
|
NEF4 $112
|
|
line 99
|
|
;99: ent->wait = 1;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 756
|
|
ADDP4
|
|
CNSTF4 1065353216
|
|
ASGNF4
|
|
line 100
|
|
;100: }
|
|
LABELV $112
|
|
line 101
|
|
;101: ent->use = Use_Target_Delay;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 652
|
|
ADDP4
|
|
ADDRGP4 Use_Target_Delay
|
|
ASGNP4
|
|
line 102
|
|
;102:}
|
|
LABELV $105
|
|
endproc SP_target_delay 4 12
|
|
export Use_Target_Score
|
|
proc Use_Target_Score 4 12
|
|
line 112
|
|
;103:
|
|
;104:
|
|
;105://==========================================================
|
|
;106:
|
|
;107:/*QUAKED target_score (1 0 0) (-8 -8 -8) (8 8 8)
|
|
;108:"count" number of points to add, default 1
|
|
;109:
|
|
;110:The activator is given this many points.
|
|
;111:*/
|
|
;112:void Use_Target_Score (gentity_t *ent, gentity_t *other, gentity_t *activator) {
|
|
line 113
|
|
;113: AddScore( activator, ent->r.currentOrigin, ent->count );
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 368
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 AddScore
|
|
CALLV
|
|
pop
|
|
line 114
|
|
;114:}
|
|
LABELV $114
|
|
endproc Use_Target_Score 4 12
|
|
export SP_target_score
|
|
proc SP_target_score 0 0
|
|
line 116
|
|
;115:
|
|
;116:void SP_target_score( gentity_t *ent ) {
|
|
line 117
|
|
;117: if ( !ent->count ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $116
|
|
line 118
|
|
;118: ent->count = 1;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 712
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 119
|
|
;119: }
|
|
LABELV $116
|
|
line 120
|
|
;120: ent->use = Use_Target_Score;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 652
|
|
ADDP4
|
|
ADDRGP4 Use_Target_Score
|
|
ASGNP4
|
|
line 121
|
|
;121:}
|
|
LABELV $115
|
|
endproc SP_target_score 0 0
|
|
export Use_Target_Print
|
|
proc Use_Target_Print 4 8
|
|
line 130
|
|
;122:
|
|
;123:
|
|
;124://==========================================================
|
|
;125:
|
|
;126:/*QUAKED target_print (1 0 0) (-8 -8 -8) (8 8 8) redteam blueteam private
|
|
;127:"message" text to print
|
|
;128:If "private", only the activator gets the message. If no checks, all clients get the message.
|
|
;129:*/
|
|
;130:void Use_Target_Print (gentity_t *ent, gentity_t *other, gentity_t *activator) {
|
|
line 131
|
|
;131: if ( activator->client && ( ent->spawnflags & 4 ) ) {
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $119
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 4
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $119
|
|
line 132
|
|
;132: trap_SendServerCommand( activator-g_entities, va("cp \"%s\"", ent->message ));
|
|
ADDRGP4 $121
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 572
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRGP4 g_entities
|
|
CVPU4 4
|
|
SUBU4
|
|
CVUI4 4
|
|
CNSTI4 828
|
|
DIVI4
|
|
ARGI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 133
|
|
;133: return;
|
|
ADDRGP4 $118
|
|
JUMPV
|
|
LABELV $119
|
|
line 136
|
|
;134: }
|
|
;135:
|
|
;136: if ( ent->spawnflags & 3 ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $122
|
|
line 137
|
|
;137: if ( ent->spawnflags & 1 ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $124
|
|
line 138
|
|
;138: G_TeamCommand( TEAM_RED, va("cp \"%s\"", ent->message) );
|
|
ADDRGP4 $121
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 572
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_TeamCommand
|
|
CALLV
|
|
pop
|
|
line 139
|
|
;139: }
|
|
LABELV $124
|
|
line 140
|
|
;140: if ( ent->spawnflags & 2 ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $118
|
|
line 141
|
|
;141: G_TeamCommand( TEAM_BLUE, va("cp \"%s\"", ent->message) );
|
|
ADDRGP4 $121
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 572
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 2
|
|
ARGI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_TeamCommand
|
|
CALLV
|
|
pop
|
|
line 142
|
|
;142: }
|
|
line 143
|
|
;143: return;
|
|
ADDRGP4 $118
|
|
JUMPV
|
|
LABELV $122
|
|
line 146
|
|
;144: }
|
|
;145:
|
|
;146: trap_SendServerCommand( -1, va("cp \"%s\"", ent->message ));
|
|
ADDRGP4 $121
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 572
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 -1
|
|
ARGI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 147
|
|
;147:}
|
|
LABELV $118
|
|
endproc Use_Target_Print 4 8
|
|
export SP_target_print
|
|
proc SP_target_print 0 0
|
|
line 149
|
|
;148:
|
|
;149:void SP_target_print( gentity_t *ent ) {
|
|
line 150
|
|
;150: ent->use = Use_Target_Print;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 652
|
|
ADDP4
|
|
ADDRGP4 Use_Target_Print
|
|
ASGNP4
|
|
line 151
|
|
;151:}
|
|
LABELV $128
|
|
endproc SP_target_print 0 0
|
|
export Use_Target_Speaker
|
|
proc Use_Target_Speaker 4 12
|
|
line 169
|
|
;152:
|
|
;153:
|
|
;154://==========================================================
|
|
;155:
|
|
;156:
|
|
;157:/*QUAKED target_speaker (1 0 0) (-8 -8 -8) (8 8 8) looped-on looped-off global activator
|
|
;158:"noise" wav file to play
|
|
;159:
|
|
;160:A global sound will play full volume throughout the level.
|
|
;161:Activator sounds will play on the player that activated the target.
|
|
;162:Global and activator sounds can't be combined with looping.
|
|
;163:Normal sounds play each time the target is used.
|
|
;164:Looped sounds will be toggled by use functions.
|
|
;165:Multiple identical looping sounds will just increase volume without any speed cost.
|
|
;166:"wait" : Seconds between auto triggerings, 0 = don't auto trigger
|
|
;167:"random" wait variance, default is 0
|
|
;168:*/
|
|
;169:void Use_Target_Speaker (gentity_t *ent, gentity_t *other, gentity_t *activator) {
|
|
line 170
|
|
;170: if (ent->spawnflags & 3) { // looping sound toggles
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $130
|
|
line 171
|
|
;171: if (ent->s.loopSound)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 200
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $132
|
|
line 172
|
|
;172: {
|
|
line 173
|
|
;173: ent->s.loopSound = 0; // turn it off
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 200
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 174
|
|
;174: ent->s.trickedentindex = 1;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 148
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 175
|
|
;175: }
|
|
ADDRGP4 $131
|
|
JUMPV
|
|
LABELV $132
|
|
line 177
|
|
;176: else
|
|
;177: {
|
|
line 178
|
|
;178: ent->s.loopSound = ent->noise_index; // start it
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 200
|
|
ADDP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 752
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 179
|
|
;179: ent->s.trickedentindex = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 148
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 180
|
|
;180: }
|
|
line 181
|
|
;181: }else { // normal sound
|
|
ADDRGP4 $131
|
|
JUMPV
|
|
LABELV $130
|
|
line 182
|
|
;182: if ( ent->spawnflags & 8 ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 8
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $134
|
|
line 183
|
|
;183: G_AddEvent( activator, EV_GENERAL_SOUND, ent->noise_index );
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 66
|
|
ARGI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 752
|
|
ADDP4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 184
|
|
;184: } else if (ent->spawnflags & 4) {
|
|
ADDRGP4 $135
|
|
JUMPV
|
|
LABELV $134
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 4
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $136
|
|
line 185
|
|
;185: G_AddEvent( ent, EV_GLOBAL_SOUND, ent->noise_index );
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 67
|
|
ARGI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 752
|
|
ADDP4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 186
|
|
;186: } else {
|
|
ADDRGP4 $137
|
|
JUMPV
|
|
LABELV $136
|
|
line 187
|
|
;187: G_AddEvent( ent, EV_GENERAL_SOUND, ent->noise_index );
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 66
|
|
ARGI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 752
|
|
ADDP4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 188
|
|
;188: }
|
|
LABELV $137
|
|
LABELV $135
|
|
line 189
|
|
;189: }
|
|
LABELV $131
|
|
line 190
|
|
;190:}
|
|
LABELV $129
|
|
endproc Use_Target_Speaker 4 12
|
|
export SP_target_speaker
|
|
proc SP_target_speaker 92 12
|
|
line 192
|
|
;191:
|
|
;192:void SP_target_speaker( gentity_t *ent ) {
|
|
line 196
|
|
;193: char buffer[MAX_QPATH];
|
|
;194: char *s;
|
|
;195:
|
|
;196: G_SpawnFloat( "wait", "0", &ent->wait );
|
|
ADDRGP4 $110
|
|
ARGP4
|
|
ADDRGP4 $109
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 756
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_SpawnFloat
|
|
CALLI4
|
|
pop
|
|
line 197
|
|
;197: G_SpawnFloat( "random", "0", &ent->random );
|
|
ADDRGP4 $139
|
|
ARGP4
|
|
ADDRGP4 $109
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 760
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 G_SpawnFloat
|
|
CALLI4
|
|
pop
|
|
line 199
|
|
;198:
|
|
;199: if ( !G_SpawnString( "noise", "NOSOUND", &s ) ) {
|
|
ADDRGP4 $142
|
|
ARGP4
|
|
ADDRGP4 $143
|
|
ARGP4
|
|
ADDRLP4 64
|
|
ARGP4
|
|
ADDRLP4 68
|
|
ADDRGP4 G_SpawnString
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 68
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $140
|
|
line 200
|
|
;200: G_Error( "target_speaker without a noise key at %s", vtos( ent->s.origin ) );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 72
|
|
ADDRGP4 vtos
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $144
|
|
ARGP4
|
|
ADDRLP4 72
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_Error
|
|
CALLV
|
|
pop
|
|
line 201
|
|
;201: }
|
|
LABELV $140
|
|
line 205
|
|
;202:
|
|
;203: // force all client reletive sounds to be "activator" speakers that
|
|
;204: // play on the entity that activates it
|
|
;205: if ( s[0] == '*' ) {
|
|
ADDRLP4 64
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 42
|
|
NEI4 $145
|
|
line 206
|
|
;206: ent->spawnflags |= 8;
|
|
ADDRLP4 72
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 72
|
|
INDIRP4
|
|
ADDRLP4 72
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 8
|
|
BORI4
|
|
ASGNI4
|
|
line 207
|
|
;207: }
|
|
LABELV $145
|
|
line 209
|
|
;208:
|
|
;209: Q_strncpyz( buffer, s, sizeof(buffer) );
|
|
ADDRLP4 0
|
|
ARGP4
|
|
ADDRLP4 64
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 64
|
|
ARGI4
|
|
ADDRGP4 Q_strncpyz
|
|
CALLV
|
|
pop
|
|
line 211
|
|
;210:
|
|
;211: ent->noise_index = G_SoundIndex(buffer);
|
|
ADDRLP4 0
|
|
ARGP4
|
|
ADDRLP4 72
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 752
|
|
ADDP4
|
|
ADDRLP4 72
|
|
INDIRI4
|
|
ASGNI4
|
|
line 214
|
|
;212:
|
|
;213: // a repeating speaker can be done completely client side
|
|
;214: ent->s.eType = ET_SPEAKER;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
CNSTI4 9
|
|
ASGNI4
|
|
line 215
|
|
;215: ent->s.eventParm = ent->noise_index;
|
|
ADDRLP4 76
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 76
|
|
INDIRP4
|
|
CNSTI4 256
|
|
ADDP4
|
|
ADDRLP4 76
|
|
INDIRP4
|
|
CNSTI4 752
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 216
|
|
;216: ent->s.frame = ent->wait * 10;
|
|
ADDRLP4 80
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 80
|
|
INDIRP4
|
|
CNSTI4 224
|
|
ADDP4
|
|
CNSTF4 1092616192
|
|
ADDRLP4 80
|
|
INDIRP4
|
|
CNSTI4 756
|
|
ADDP4
|
|
INDIRF4
|
|
MULF4
|
|
CVFI4 4
|
|
ASGNI4
|
|
line 217
|
|
;217: ent->s.clientNum = ent->random * 10;
|
|
ADDRLP4 84
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 220
|
|
ADDP4
|
|
CNSTF4 1092616192
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 760
|
|
ADDP4
|
|
INDIRF4
|
|
MULF4
|
|
CVFI4 4
|
|
ASGNI4
|
|
line 221
|
|
;218:
|
|
;219:
|
|
;220: // check for prestarted looping sound
|
|
;221: if ( ent->spawnflags & 1 ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $147
|
|
line 222
|
|
;222: ent->s.loopSound = ent->noise_index;
|
|
ADDRLP4 88
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 88
|
|
INDIRP4
|
|
CNSTI4 200
|
|
ADDP4
|
|
ADDRLP4 88
|
|
INDIRP4
|
|
CNSTI4 752
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 223
|
|
;223: }
|
|
LABELV $147
|
|
line 225
|
|
;224:
|
|
;225: ent->use = Use_Target_Speaker;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 652
|
|
ADDP4
|
|
ADDRGP4 Use_Target_Speaker
|
|
ASGNP4
|
|
line 227
|
|
;226:
|
|
;227: if (ent->spawnflags & 4) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 4
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $149
|
|
line 228
|
|
;228: ent->r.svFlags |= SVF_BROADCAST;
|
|
ADDRLP4 88
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 304
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 88
|
|
INDIRP4
|
|
ADDRLP4 88
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 32
|
|
BORI4
|
|
ASGNI4
|
|
line 229
|
|
;229: }
|
|
LABELV $149
|
|
line 231
|
|
;230:
|
|
;231: VectorCopy( ent->s.origin, ent->s.pos.trBase );
|
|
ADDRLP4 88
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 88
|
|
INDIRP4
|
|
CNSTI4 24
|
|
ADDP4
|
|
ADDRLP4 88
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 235
|
|
;232:
|
|
;233: // must link the entity so we get areas and clusters so
|
|
;234: // the server can determine who to send updates to
|
|
;235: trap_LinkEntity( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_LinkEntity
|
|
CALLV
|
|
pop
|
|
line 236
|
|
;236:}
|
|
LABELV $138
|
|
endproc SP_target_speaker 92 12
|
|
export target_laser_think
|
|
proc target_laser_think 1144 32
|
|
line 245
|
|
;237:
|
|
;238:
|
|
;239:
|
|
;240://==========================================================
|
|
;241:
|
|
;242:/*QUAKED target_laser (0 .5 .8) (-8 -8 -8) (8 8 8) START_ON
|
|
;243:When triggered, fires a laser. You can either set a target or a direction.
|
|
;244:*/
|
|
;245:void target_laser_think (gentity_t *self) {
|
|
line 251
|
|
;246: vec3_t end;
|
|
;247: trace_t tr;
|
|
;248: vec3_t point;
|
|
;249:
|
|
;250: // if pointed at another entity, set movedir to point at it
|
|
;251: if ( self->enemy ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $152
|
|
line 252
|
|
;252: VectorMA (self->enemy->s.origin, 0.5, self->enemy->r.mins, point);
|
|
ADDRLP4 1104
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1108
|
|
ADDRLP4 1104
|
|
INDIRP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1112
|
|
CNSTF4 1056964608
|
|
ASGNF4
|
|
ADDRLP4 0
|
|
ADDRLP4 1108
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 1112
|
|
INDIRF4
|
|
ADDRLP4 1108
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 1116
|
|
ADDRLP4 1104
|
|
INDIRP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0+4
|
|
ADDRLP4 1116
|
|
INDIRP4
|
|
CNSTI4 96
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 1112
|
|
INDIRF4
|
|
ADDRLP4 1116
|
|
INDIRP4
|
|
CNSTI4 320
|
|
ADDP4
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 1120
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0+8
|
|
ADDRLP4 1120
|
|
INDIRP4
|
|
CNSTI4 100
|
|
ADDP4
|
|
INDIRF4
|
|
CNSTF4 1056964608
|
|
ADDRLP4 1120
|
|
INDIRP4
|
|
CNSTI4 324
|
|
ADDP4
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
line 253
|
|
;253: VectorMA (point, 0.5, self->enemy->r.maxs, point);
|
|
ADDRLP4 1124
|
|
CNSTF4 1056964608
|
|
ASGNF4
|
|
ADDRLP4 1128
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
ADDRLP4 1124
|
|
INDIRF4
|
|
ADDRLP4 1128
|
|
INDIRP4
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 0+4
|
|
ADDRLP4 0+4
|
|
INDIRF4
|
|
ADDRLP4 1124
|
|
INDIRF4
|
|
ADDRLP4 1128
|
|
INDIRP4
|
|
INDIRP4
|
|
CNSTI4 332
|
|
ADDP4
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 0+8
|
|
ADDRLP4 0+8
|
|
INDIRF4
|
|
CNSTF4 1056964608
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
line 254
|
|
;254: VectorSubtract (point, self->s.origin, self->movedir);
|
|
ADDRLP4 1132
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1132
|
|
INDIRP4
|
|
CNSTI4 612
|
|
ADDP4
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
ADDRLP4 1132
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 1136
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1136
|
|
INDIRP4
|
|
CNSTI4 616
|
|
ADDP4
|
|
ADDRLP4 0+4
|
|
INDIRF4
|
|
ADDRLP4 1136
|
|
INDIRP4
|
|
CNSTI4 96
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 1140
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1140
|
|
INDIRP4
|
|
CNSTI4 620
|
|
ADDP4
|
|
ADDRLP4 0+8
|
|
INDIRF4
|
|
ADDRLP4 1140
|
|
INDIRP4
|
|
CNSTI4 100
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 255
|
|
;255: VectorNormalize (self->movedir);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 612
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 VectorNormalize
|
|
CALLF4
|
|
pop
|
|
line 256
|
|
;256: }
|
|
LABELV $152
|
|
line 259
|
|
;257:
|
|
;258: // fire forward and see what we hit
|
|
;259: VectorMA (self->s.origin, 2048, self->movedir, end);
|
|
ADDRLP4 1104
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1108
|
|
CNSTF4 1157627904
|
|
ASGNF4
|
|
ADDRLP4 12
|
|
ADDRLP4 1104
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 1108
|
|
INDIRF4
|
|
ADDRLP4 1104
|
|
INDIRP4
|
|
CNSTI4 612
|
|
ADDP4
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 12+4
|
|
ADDRLP4 1104
|
|
INDIRP4
|
|
CNSTI4 96
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 1108
|
|
INDIRF4
|
|
ADDRLP4 1104
|
|
INDIRP4
|
|
CNSTI4 616
|
|
ADDP4
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 1112
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 12+8
|
|
ADDRLP4 1112
|
|
INDIRP4
|
|
CNSTI4 100
|
|
ADDP4
|
|
INDIRF4
|
|
CNSTF4 1157627904
|
|
ADDRLP4 1112
|
|
INDIRP4
|
|
CNSTI4 620
|
|
ADDP4
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
line 261
|
|
;260:
|
|
;261: trap_Trace( &tr, self->s.origin, NULL, NULL, end, self->s.number, CONTENTS_SOLID|CONTENTS_BODY|CONTENTS_CORPSE);
|
|
ADDRLP4 24
|
|
ARGP4
|
|
ADDRLP4 1116
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1116
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 1120
|
|
CNSTP4 0
|
|
ASGNP4
|
|
ADDRLP4 1120
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 1120
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 12
|
|
ARGP4
|
|
ADDRLP4 1116
|
|
INDIRP4
|
|
INDIRI4
|
|
ARGI4
|
|
CNSTI4 769
|
|
ARGI4
|
|
ADDRGP4 trap_Trace
|
|
CALLV
|
|
pop
|
|
line 263
|
|
;262:
|
|
;263: if ( tr.entityNum ) {
|
|
ADDRLP4 24+52
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $164
|
|
line 265
|
|
;264: // hurt it if we can
|
|
;265: G_Damage ( &g_entities[tr.entityNum], self, self->activator, self->movedir,
|
|
CNSTI4 828
|
|
ADDRLP4 24+52
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 1124
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1124
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 1124
|
|
INDIRP4
|
|
CNSTI4 732
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 1124
|
|
INDIRP4
|
|
CNSTI4 612
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 24+12
|
|
ARGP4
|
|
ADDRLP4 1124
|
|
INDIRP4
|
|
CNSTI4 688
|
|
ADDP4
|
|
INDIRI4
|
|
ARGI4
|
|
CNSTI4 4
|
|
ARGI4
|
|
CNSTI4 36
|
|
ARGI4
|
|
ADDRGP4 G_Damage
|
|
CALLV
|
|
pop
|
|
line 267
|
|
;266: tr.endpos, self->damage, DAMAGE_NO_KNOCKBACK, MOD_TARGET_LASER);
|
|
;267: }
|
|
LABELV $164
|
|
line 269
|
|
;268:
|
|
;269: VectorCopy (tr.endpos, self->s.origin2);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 104
|
|
ADDP4
|
|
ADDRLP4 24+12
|
|
INDIRB
|
|
ASGNB 12
|
|
line 271
|
|
;270:
|
|
;271: trap_LinkEntity( self );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_LinkEntity
|
|
CALLV
|
|
pop
|
|
line 272
|
|
;272: self->nextthink = level.time + FRAMETIME;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 100
|
|
ADDI4
|
|
ASGNI4
|
|
line 273
|
|
;273:}
|
|
LABELV $151
|
|
endproc target_laser_think 1144 32
|
|
export target_laser_on
|
|
proc target_laser_on 4 4
|
|
line 276
|
|
;274:
|
|
;275:void target_laser_on (gentity_t *self)
|
|
;276:{
|
|
line 277
|
|
;277: if (!self->activator)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 732
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $172
|
|
line 278
|
|
;278: self->activator = self;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 732
|
|
ADDP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
LABELV $172
|
|
line 279
|
|
;279: target_laser_think (self);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 target_laser_think
|
|
CALLV
|
|
pop
|
|
line 280
|
|
;280:}
|
|
LABELV $171
|
|
endproc target_laser_on 4 4
|
|
export target_laser_off
|
|
proc target_laser_off 0 4
|
|
line 283
|
|
;281:
|
|
;282:void target_laser_off (gentity_t *self)
|
|
;283:{
|
|
line 284
|
|
;284: trap_UnlinkEntity( self );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_UnlinkEntity
|
|
CALLV
|
|
pop
|
|
line 285
|
|
;285: self->nextthink = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 286
|
|
;286:}
|
|
LABELV $174
|
|
endproc target_laser_off 0 4
|
|
export target_laser_use
|
|
proc target_laser_use 0 4
|
|
line 289
|
|
;287:
|
|
;288:void target_laser_use (gentity_t *self, gentity_t *other, gentity_t *activator)
|
|
;289:{
|
|
line 290
|
|
;290: self->activator = activator;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 732
|
|
ADDP4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
line 291
|
|
;291: if ( self->nextthink > 0 )
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
LEI4 $176
|
|
line 292
|
|
;292: target_laser_off (self);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 target_laser_off
|
|
CALLV
|
|
pop
|
|
ADDRGP4 $177
|
|
JUMPV
|
|
LABELV $176
|
|
line 294
|
|
;293: else
|
|
;294: target_laser_on (self);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 target_laser_on
|
|
CALLV
|
|
pop
|
|
LABELV $177
|
|
line 295
|
|
;295:}
|
|
LABELV $175
|
|
endproc target_laser_use 0 4
|
|
export target_laser_start
|
|
proc target_laser_start 16 16
|
|
line 298
|
|
;296:
|
|
;297:void target_laser_start (gentity_t *self)
|
|
;298:{
|
|
line 301
|
|
;299: gentity_t *ent;
|
|
;300:
|
|
;301: self->s.eType = ET_BEAM;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
CNSTI4 7
|
|
ASGNI4
|
|
line 303
|
|
;302:
|
|
;303: if (self->target) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $179
|
|
line 304
|
|
;304: ent = G_Find (NULL, FOFS(targetname), self->target);
|
|
CNSTP4 0
|
|
ARGP4
|
|
CNSTI4 588
|
|
ARGI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRGP4 G_Find
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 305
|
|
;305: if (!ent) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $181
|
|
line 306
|
|
;306: G_Printf ("%s at %s: %s is a bad target\n", self->classname, vtos(self->s.origin), self->target);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 8
|
|
ADDRGP4 vtos
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $183
|
|
ARGP4
|
|
ADDRLP4 12
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 416
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_Printf
|
|
CALLV
|
|
pop
|
|
line 307
|
|
;307: }
|
|
LABELV $181
|
|
line 308
|
|
;308: self->enemy = ent;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 728
|
|
ADDP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
line 309
|
|
;309: } else {
|
|
ADDRGP4 $180
|
|
JUMPV
|
|
LABELV $179
|
|
line 310
|
|
;310: G_SetMovedir (self->s.angles, self->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 311
|
|
;311: }
|
|
LABELV $180
|
|
line 313
|
|
;312:
|
|
;313: self->use = target_laser_use;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 652
|
|
ADDP4
|
|
ADDRGP4 target_laser_use
|
|
ASGNP4
|
|
line 314
|
|
;314: self->think = target_laser_think;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
ADDRGP4 target_laser_think
|
|
ASGNP4
|
|
line 316
|
|
;315:
|
|
;316: if ( !self->damage ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 688
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $184
|
|
line 317
|
|
;317: self->damage = 1;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 688
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 318
|
|
;318: }
|
|
LABELV $184
|
|
line 320
|
|
;319:
|
|
;320: if (self->spawnflags & 1)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $186
|
|
line 321
|
|
;321: target_laser_on (self);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 target_laser_on
|
|
CALLV
|
|
pop
|
|
ADDRGP4 $187
|
|
JUMPV
|
|
LABELV $186
|
|
line 323
|
|
;322: else
|
|
;323: target_laser_off (self);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 target_laser_off
|
|
CALLV
|
|
pop
|
|
LABELV $187
|
|
line 324
|
|
;324:}
|
|
LABELV $178
|
|
endproc target_laser_start 16 16
|
|
export SP_target_laser
|
|
proc SP_target_laser 0 0
|
|
line 327
|
|
;325:
|
|
;326:void SP_target_laser (gentity_t *self)
|
|
;327:{
|
|
line 329
|
|
;328: // let everything else get spawned before we start firing
|
|
;329: self->think = target_laser_start;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
ADDRGP4 target_laser_start
|
|
ASGNP4
|
|
line 330
|
|
;330: self->nextthink = level.time + FRAMETIME;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 100
|
|
ADDI4
|
|
ASGNI4
|
|
line 331
|
|
;331:}
|
|
LABELV $188
|
|
endproc SP_target_laser 0 0
|
|
export target_teleporter_use
|
|
proc target_teleporter_use 12 12
|
|
line 336
|
|
;332:
|
|
;333:
|
|
;334://==========================================================
|
|
;335:
|
|
;336:void target_teleporter_use( gentity_t *self, gentity_t *other, gentity_t *activator ) {
|
|
line 339
|
|
;337: gentity_t *dest;
|
|
;338:
|
|
;339: if (!activator->client)
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $191
|
|
line 340
|
|
;340: return;
|
|
ADDRGP4 $190
|
|
JUMPV
|
|
LABELV $191
|
|
line 341
|
|
;341: dest = G_PickTarget( self->target );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRGP4 G_PickTarget
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 342
|
|
;342: if (!dest) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $193
|
|
line 343
|
|
;343: G_Printf ("Couldn't find teleporter destination\n");
|
|
ADDRGP4 $195
|
|
ARGP4
|
|
ADDRGP4 G_Printf
|
|
CALLV
|
|
pop
|
|
line 344
|
|
;344: return;
|
|
ADDRGP4 $190
|
|
JUMPV
|
|
LABELV $193
|
|
line 347
|
|
;345: }
|
|
;346:
|
|
;347: TeleportPlayer( activator, dest->s.origin, dest->s.angles );
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 116
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 TeleportPlayer
|
|
CALLV
|
|
pop
|
|
line 348
|
|
;348:}
|
|
LABELV $190
|
|
endproc target_teleporter_use 12 12
|
|
export SP_target_teleporter
|
|
proc SP_target_teleporter 4 12
|
|
line 353
|
|
;349:
|
|
;350:/*QUAKED target_teleporter (1 0 0) (-8 -8 -8) (8 8 8)
|
|
;351:The activator will be teleported away.
|
|
;352:*/
|
|
;353:void SP_target_teleporter( gentity_t *self ) {
|
|
line 354
|
|
;354: if (!self->targetname)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 588
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $197
|
|
line 355
|
|
;355: G_Printf("untargeted %s at %s\n", self->classname, vtos(self->s.origin));
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ADDRGP4 vtos
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $199
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 416
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_Printf
|
|
CALLV
|
|
pop
|
|
LABELV $197
|
|
line 357
|
|
;356:
|
|
;357: self->use = target_teleporter_use;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 652
|
|
ADDP4
|
|
ADDRGP4 target_teleporter_use
|
|
ASGNP4
|
|
line 358
|
|
;358:}
|
|
LABELV $196
|
|
endproc SP_target_teleporter 4 12
|
|
export target_relay_use
|
|
proc target_relay_use 36 12
|
|
line 368
|
|
;359:
|
|
;360://==========================================================
|
|
;361:
|
|
;362:
|
|
;363:/*QUAKED target_relay (.5 .5 .5) (-8 -8 -8) (8 8 8) RED_ONLY BLUE_ONLY RANDOM
|
|
;364:This doesn't perform any actions except fire its targets.
|
|
;365:The activator can be forced to be from a certain team.
|
|
;366:if RANDOM is checked, only one of the targets will be fired, not all of them
|
|
;367:*/
|
|
;368:void target_relay_use (gentity_t *self, gentity_t *other, gentity_t *activator) {
|
|
line 369
|
|
;369: if ( ( self->spawnflags & 1 ) && activator->client
|
|
ADDRLP4 0
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $201
|
|
ADDRLP4 4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $201
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
EQI4 $201
|
|
line 370
|
|
;370: && activator->client->sess.sessionTeam != TEAM_RED ) {
|
|
line 371
|
|
;371: return;
|
|
ADDRGP4 $200
|
|
JUMPV
|
|
LABELV $201
|
|
line 373
|
|
;372: }
|
|
;373: if ( ( self->spawnflags & 2 ) && activator->client
|
|
ADDRLP4 8
|
|
CNSTI4 2
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $203
|
|
ADDRLP4 12
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $203
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
EQI4 $203
|
|
line 374
|
|
;374: && activator->client->sess.sessionTeam != TEAM_BLUE ) {
|
|
line 375
|
|
;375: return;
|
|
ADDRGP4 $200
|
|
JUMPV
|
|
LABELV $203
|
|
line 377
|
|
;376: }
|
|
;377: if ( self->spawnflags & 4 ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 420
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 4
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $205
|
|
line 380
|
|
;378: gentity_t *ent;
|
|
;379:
|
|
;380: ent = G_PickTarget( self->target );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 584
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 20
|
|
ADDRGP4 G_PickTarget
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ASGNP4
|
|
line 381
|
|
;381: if ( ent && ent->use ) {
|
|
ADDRLP4 24
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 28
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 28
|
|
INDIRU4
|
|
EQU4 $200
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
CNSTI4 652
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 28
|
|
INDIRU4
|
|
EQU4 $200
|
|
line 382
|
|
;382: ent->use( ent, self, activator );
|
|
ADDRLP4 32
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
CNSTI4 652
|
|
ADDP4
|
|
INDIRP4
|
|
CALLV
|
|
pop
|
|
line 383
|
|
;383: }
|
|
line 384
|
|
;384: return;
|
|
ADDRGP4 $200
|
|
JUMPV
|
|
LABELV $205
|
|
line 386
|
|
;385: }
|
|
;386: G_UseTargets (self, activator);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_UseTargets
|
|
CALLV
|
|
pop
|
|
line 387
|
|
;387:}
|
|
LABELV $200
|
|
endproc target_relay_use 36 12
|
|
export SP_target_relay
|
|
proc SP_target_relay 0 0
|
|
line 389
|
|
;388:
|
|
;389:void SP_target_relay (gentity_t *self) {
|
|
line 390
|
|
;390: self->use = target_relay_use;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 652
|
|
ADDP4
|
|
ADDRGP4 target_relay_use
|
|
ASGNP4
|
|
line 391
|
|
;391:}
|
|
LABELV $209
|
|
endproc SP_target_relay 0 0
|
|
export target_kill_use
|
|
proc target_kill_use 8 32
|
|
line 399
|
|
;392:
|
|
;393:
|
|
;394://==========================================================
|
|
;395:
|
|
;396:/*QUAKED target_kill (.5 .5 .5) (-8 -8 -8) (8 8 8)
|
|
;397:Kills the activator.
|
|
;398:*/
|
|
;399:void target_kill_use( gentity_t *self, gentity_t *other, gentity_t *activator ) {
|
|
line 400
|
|
;400: G_Damage ( activator, NULL, NULL, NULL, NULL, 100000, DAMAGE_NO_PROTECTION, MOD_TELEFRAG);
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
CNSTP4 0
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
CNSTP4 0
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 100000
|
|
ARGI4
|
|
CNSTI4 8
|
|
ARGI4
|
|
CNSTI4 33
|
|
ARGI4
|
|
ADDRGP4 G_Damage
|
|
CALLV
|
|
pop
|
|
line 401
|
|
;401:}
|
|
LABELV $210
|
|
endproc target_kill_use 8 32
|
|
export SP_target_kill
|
|
proc SP_target_kill 0 0
|
|
line 403
|
|
;402:
|
|
;403:void SP_target_kill( gentity_t *self ) {
|
|
line 404
|
|
;404: self->use = target_kill_use;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 652
|
|
ADDP4
|
|
ADDRGP4 target_kill_use
|
|
ASGNP4
|
|
line 405
|
|
;405:}
|
|
LABELV $211
|
|
endproc SP_target_kill 0 0
|
|
export SP_target_position
|
|
proc SP_target_position 4 8
|
|
line 410
|
|
;406:
|
|
;407:/*QUAKED target_position (0 0.5 0) (-4 -4 -4) (4 4 4)
|
|
;408:Used as a positional target for in-game calculation, like jumppad targets.
|
|
;409:*/
|
|
;410:void SP_target_position( gentity_t *self ){
|
|
line 411
|
|
;411: 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 412
|
|
;412:}
|
|
LABELV $212
|
|
endproc SP_target_position 4 8
|
|
proc target_location_linkup 16 8
|
|
line 415
|
|
;413:
|
|
;414:static void target_location_linkup(gentity_t *ent)
|
|
;415:{
|
|
line 419
|
|
;416: int i;
|
|
;417: int n;
|
|
;418:
|
|
;419: if (level.locationLinked)
|
|
ADDRGP4 level+9048
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $214
|
|
line 420
|
|
;420: return;
|
|
ADDRGP4 $213
|
|
JUMPV
|
|
LABELV $214
|
|
line 422
|
|
;421:
|
|
;422: level.locationLinked = qtrue;
|
|
ADDRGP4 level+9048
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 424
|
|
;423:
|
|
;424: level.locationHead = NULL;
|
|
ADDRGP4 level+9052
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 426
|
|
;425:
|
|
;426: trap_SetConfigstring( CS_LOCATIONS, "unknown" );
|
|
CNSTI4 640
|
|
ARGI4
|
|
ADDRGP4 $219
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 428
|
|
;427:
|
|
;428: for (i = 0, ent = g_entities, n = 1;
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
ADDRGP4 g_entities
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRGP4 $223
|
|
JUMPV
|
|
LABELV $220
|
|
line 430
|
|
;429: i < level.num_entities;
|
|
;430: i++, ent++) {
|
|
line 431
|
|
;431: if (ent->classname && !Q_stricmp(ent->classname, "target_location")) {
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 416
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $225
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $227
|
|
ARGP4
|
|
ADDRLP4 12
|
|
ADDRGP4 Q_stricmp
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $225
|
|
line 433
|
|
;432: // lets overload some variables!
|
|
;433: ent->health = n; // use for location marking
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 434
|
|
;434: trap_SetConfigstring( CS_LOCATIONS + n, ent->message );
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 640
|
|
ADDI4
|
|
ARGI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 572
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SetConfigstring
|
|
CALLV
|
|
pop
|
|
line 435
|
|
;435: n++;
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 436
|
|
;436: ent->nextTrain = level.locationHead;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 540
|
|
ADDP4
|
|
ADDRGP4 level+9052
|
|
INDIRP4
|
|
ASGNP4
|
|
line 437
|
|
;437: level.locationHead = ent;
|
|
ADDRGP4 level+9052
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
line 438
|
|
;438: }
|
|
LABELV $225
|
|
line 439
|
|
;439: }
|
|
LABELV $221
|
|
line 430
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 828
|
|
ADDP4
|
|
ASGNP4
|
|
LABELV $223
|
|
line 429
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 level+12
|
|
INDIRI4
|
|
LTI4 $220
|
|
line 442
|
|
;440:
|
|
;441: // All linked together now
|
|
;442:}
|
|
LABELV $213
|
|
endproc target_location_linkup 16 8
|
|
export SP_target_location
|
|
proc SP_target_location 4 8
|
|
line 452
|
|
;443:
|
|
;444:/*QUAKED target_location (0 0.5 0) (-8 -8 -8) (8 8 8)
|
|
;445:Set "message" to the name of this location.
|
|
;446:Set "count" to 0-7 for color.
|
|
;447:0:white 1:red 2:green 3:yellow 4:blue 5:cyan 6:magenta 7:white
|
|
;448:
|
|
;449:Closest target_location in sight used for the location, if none
|
|
;450:in site, closest in distance
|
|
;451:*/
|
|
;452:void SP_target_location( gentity_t *self ){
|
|
line 453
|
|
;453: self->think = target_location_linkup;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 636
|
|
ADDP4
|
|
ADDRGP4 target_location_linkup
|
|
ASGNP4
|
|
line 454
|
|
;454: self->nextthink = level.time + 200; // Let them all spawn first
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 632
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 200
|
|
ADDI4
|
|
ASGNI4
|
|
line 456
|
|
;455:
|
|
;456: 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 457
|
|
;457:}
|
|
LABELV $230
|
|
endproc SP_target_location 4 8
|
|
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 G_PlayerBecomeATST
|
|
import ATST_ManageDamageBoxes
|
|
import TeleportPlayer
|
|
import trigger_teleporter_touch
|
|
import Touch_DoorTrigger
|
|
import G_RunMover
|
|
import WP_FireBlasterMissile
|
|
import G_ExplodeMissile
|
|
import G_BounceProjectile
|
|
import CreateMissile
|
|
import G_RunMissile
|
|
import G_ReflectMissile
|
|
import 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 $227
|
|
char 1 116
|
|
char 1 97
|
|
char 1 114
|
|
char 1 103
|
|
char 1 101
|
|
char 1 116
|
|
char 1 95
|
|
char 1 108
|
|
char 1 111
|
|
char 1 99
|
|
char 1 97
|
|
char 1 116
|
|
char 1 105
|
|
char 1 111
|
|
char 1 110
|
|
char 1 0
|
|
align 1
|
|
LABELV $219
|
|
char 1 117
|
|
char 1 110
|
|
char 1 107
|
|
char 1 110
|
|
char 1 111
|
|
char 1 119
|
|
char 1 110
|
|
char 1 0
|
|
align 1
|
|
LABELV $199
|
|
char 1 117
|
|
char 1 110
|
|
char 1 116
|
|
char 1 97
|
|
char 1 114
|
|
char 1 103
|
|
char 1 101
|
|
char 1 116
|
|
char 1 101
|
|
char 1 100
|
|
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 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $195
|
|
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 101
|
|
char 1 108
|
|
char 1 101
|
|
char 1 112
|
|
char 1 111
|
|
char 1 114
|
|
char 1 116
|
|
char 1 101
|
|
char 1 114
|
|
char 1 32
|
|
char 1 100
|
|
char 1 101
|
|
char 1 115
|
|
char 1 116
|
|
char 1 105
|
|
char 1 110
|
|
char 1 97
|
|
char 1 116
|
|
char 1 105
|
|
char 1 111
|
|
char 1 110
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $183
|
|
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 58
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 32
|
|
char 1 105
|
|
char 1 115
|
|
char 1 32
|
|
char 1 97
|
|
char 1 32
|
|
char 1 98
|
|
char 1 97
|
|
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 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $144
|
|
char 1 116
|
|
char 1 97
|
|
char 1 114
|
|
char 1 103
|
|
char 1 101
|
|
char 1 116
|
|
char 1 95
|
|
char 1 115
|
|
char 1 112
|
|
char 1 101
|
|
char 1 97
|
|
char 1 107
|
|
char 1 101
|
|
char 1 114
|
|
char 1 32
|
|
char 1 119
|
|
char 1 105
|
|
char 1 116
|
|
char 1 104
|
|
char 1 111
|
|
char 1 117
|
|
char 1 116
|
|
char 1 32
|
|
char 1 97
|
|
char 1 32
|
|
char 1 110
|
|
char 1 111
|
|
char 1 105
|
|
char 1 115
|
|
char 1 101
|
|
char 1 32
|
|
char 1 107
|
|
char 1 101
|
|
char 1 121
|
|
char 1 32
|
|
char 1 97
|
|
char 1 116
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 0
|
|
align 1
|
|
LABELV $143
|
|
char 1 78
|
|
char 1 79
|
|
char 1 83
|
|
char 1 79
|
|
char 1 85
|
|
char 1 78
|
|
char 1 68
|
|
char 1 0
|
|
align 1
|
|
LABELV $142
|
|
char 1 110
|
|
char 1 111
|
|
char 1 105
|
|
char 1 115
|
|
char 1 101
|
|
char 1 0
|
|
align 1
|
|
LABELV $139
|
|
char 1 114
|
|
char 1 97
|
|
char 1 110
|
|
char 1 100
|
|
char 1 111
|
|
char 1 109
|
|
char 1 0
|
|
align 1
|
|
LABELV $121
|
|
char 1 99
|
|
char 1 112
|
|
char 1 32
|
|
char 1 34
|
|
char 1 37
|
|
char 1 115
|
|
char 1 34
|
|
char 1 0
|
|
align 1
|
|
LABELV $111
|
|
char 1 49
|
|
char 1 0
|
|
align 1
|
|
LABELV $110
|
|
char 1 119
|
|
char 1 97
|
|
char 1 105
|
|
char 1 116
|
|
char 1 0
|
|
align 1
|
|
LABELV $109
|
|
char 1 48
|
|
char 1 0
|
|
align 1
|
|
LABELV $108
|
|
char 1 100
|
|
char 1 101
|
|
char 1 108
|
|
char 1 97
|
|
char 1 121
|
|
char 1 0
|