12167 lines
173 KiB
NASM
12167 lines
173 KiB
NASM
export P_SetTwitchInfo
|
|
code
|
|
proc P_SetTwitchInfo 4 0
|
|
file "../g_active.c"
|
|
line 7
|
|
;1:// Copyright (C) 1999-2000 Id Software, Inc.
|
|
;2://
|
|
;3:
|
|
;4:#include "g_local.h"
|
|
;5:
|
|
;6:void P_SetTwitchInfo(gclient_t *client)
|
|
;7:{
|
|
line 8
|
|
;8: client->ps.painTime = level.time;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 192
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 9
|
|
;9: client->ps.painDirection ^= 1;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 196
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
BXORI4
|
|
ASGNI4
|
|
line 10
|
|
;10:}
|
|
LABELV $78
|
|
endproc P_SetTwitchInfo 4 0
|
|
export P_DamageFeedback
|
|
proc P_DamageFeedback 48 12
|
|
line 22
|
|
;11:
|
|
;12:/*
|
|
;13:===============
|
|
;14:G_DamageFeedback
|
|
;15:
|
|
;16:Called just before a snapshot is sent to the given player.
|
|
;17:Totals up all damage and generates both the player_state_t
|
|
;18:damage values to that client for pain blends and kicks, and
|
|
;19:global pain sound events for all clients.
|
|
;20:===============
|
|
;21:*/
|
|
;22:void P_DamageFeedback( gentity_t *player ) {
|
|
line 27
|
|
;23: gclient_t *client;
|
|
;24: float count;
|
|
;25: vec3_t angles;
|
|
;26:
|
|
;27: client = player->client;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 28
|
|
;28: if ( client->ps.pm_type == PM_DEAD ) {
|
|
ADDRLP4 20
|
|
CNSTI4 4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
NEI4 $81
|
|
line 29
|
|
;29: return;
|
|
ADDRGP4 $80
|
|
JUMPV
|
|
LABELV $81
|
|
line 33
|
|
;30: }
|
|
;31:
|
|
;32: // total points of damage shot at the player this frame
|
|
;33: count = client->damage_blood + client->damage_armor;
|
|
ADDRLP4 4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1612
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1608
|
|
ADDP4
|
|
INDIRI4
|
|
ADDI4
|
|
CVIF4 4
|
|
ASGNF4
|
|
line 34
|
|
;34: if ( count == 0 ) {
|
|
ADDRLP4 4
|
|
INDIRF4
|
|
CNSTF4 0
|
|
NEF4 $83
|
|
line 35
|
|
;35: return; // didn't take any damage
|
|
ADDRGP4 $80
|
|
JUMPV
|
|
LABELV $83
|
|
line 38
|
|
;36: }
|
|
;37:
|
|
;38: if ( count > 255 ) {
|
|
ADDRLP4 4
|
|
INDIRF4
|
|
CNSTF4 1132396544
|
|
LEF4 $85
|
|
line 39
|
|
;39: count = 255;
|
|
ADDRLP4 4
|
|
CNSTF4 1132396544
|
|
ASGNF4
|
|
line 40
|
|
;40: }
|
|
LABELV $85
|
|
line 46
|
|
;41:
|
|
;42: // send the information to the client
|
|
;43:
|
|
;44: // world damage (falling, slime, etc) uses a special code
|
|
;45: // to make the blend blob centered instead of positional
|
|
;46: if ( client->damage_fromWorld ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1632
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $87
|
|
line 47
|
|
;47: client->ps.damagePitch = 255;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 180
|
|
ADDP4
|
|
CNSTI4 255
|
|
ASGNI4
|
|
line 48
|
|
;48: client->ps.damageYaw = 255;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 176
|
|
ADDP4
|
|
CNSTI4 255
|
|
ASGNI4
|
|
line 50
|
|
;49:
|
|
;50: client->damage_fromWorld = qfalse;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1632
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 51
|
|
;51: } else {
|
|
ADDRGP4 $88
|
|
JUMPV
|
|
LABELV $87
|
|
line 52
|
|
;52: vectoangles( client->damage_from, angles );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1620
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRGP4 vectoangles
|
|
CALLV
|
|
pop
|
|
line 53
|
|
;53: client->ps.damagePitch = angles[PITCH]/360.0 * 256;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 180
|
|
ADDP4
|
|
CNSTF4 1132462080
|
|
ADDRLP4 8
|
|
INDIRF4
|
|
CNSTF4 1135869952
|
|
DIVF4
|
|
MULF4
|
|
CVFI4 4
|
|
ASGNI4
|
|
line 54
|
|
;54: client->ps.damageYaw = angles[YAW]/360.0 * 256;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 176
|
|
ADDP4
|
|
CNSTF4 1132462080
|
|
ADDRLP4 8+4
|
|
INDIRF4
|
|
CNSTF4 1135869952
|
|
DIVF4
|
|
MULF4
|
|
CVFI4 4
|
|
ASGNI4
|
|
line 55
|
|
;55: }
|
|
LABELV $88
|
|
line 58
|
|
;56:
|
|
;57: // play an apropriate pain sound
|
|
;58: if ( (level.time > player->pain_debounce_time) && !(player->flags & FL_GODMODE) ) {
|
|
ADDRLP4 28
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
CNSTI4 664
|
|
ADDP4
|
|
INDIRI4
|
|
LEI4 $90
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
CNSTI4 472
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 16
|
|
BANDI4
|
|
CNSTI4 0
|
|
NEI4 $90
|
|
line 61
|
|
;59:
|
|
;60: // don't do more than two pain sounds a second
|
|
;61: if ( level.time - client->ps.painTime < 500 ) {
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 192
|
|
ADDP4
|
|
INDIRI4
|
|
SUBI4
|
|
CNSTI4 500
|
|
GEI4 $93
|
|
line 62
|
|
;62: return;
|
|
ADDRGP4 $80
|
|
JUMPV
|
|
LABELV $93
|
|
line 64
|
|
;63: }
|
|
;64: P_SetTwitchInfo(client);
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 P_SetTwitchInfo
|
|
CALLV
|
|
pop
|
|
line 65
|
|
;65: player->pain_debounce_time = level.time + 700;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 664
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 700
|
|
ADDI4
|
|
ASGNI4
|
|
line 66
|
|
;66: G_AddEvent( player, EV_PAIN, player->health );
|
|
ADDRLP4 32
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 77
|
|
ARGI4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 67
|
|
;67: client->ps.damageEvent++;
|
|
ADDRLP4 36
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 172
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 69
|
|
;68:
|
|
;69: if (client->damage_armor && !client->damage_blood)
|
|
ADDRLP4 44
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1608
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 44
|
|
INDIRI4
|
|
EQI4 $97
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1612
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 44
|
|
INDIRI4
|
|
NEI4 $97
|
|
line 70
|
|
;70: {
|
|
line 71
|
|
;71: client->ps.damageType = 1; //pure shields
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 188
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 72
|
|
;72: }
|
|
ADDRGP4 $98
|
|
JUMPV
|
|
LABELV $97
|
|
line 73
|
|
;73: else if (client->damage_armor)
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1608
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $99
|
|
line 74
|
|
;74: {
|
|
line 75
|
|
;75: client->ps.damageType = 2; //shields and health
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 188
|
|
ADDP4
|
|
CNSTI4 2
|
|
ASGNI4
|
|
line 76
|
|
;76: }
|
|
ADDRGP4 $100
|
|
JUMPV
|
|
LABELV $99
|
|
line 78
|
|
;77: else
|
|
;78: {
|
|
line 79
|
|
;79: client->ps.damageType = 0; //pure health
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 188
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 80
|
|
;80: }
|
|
LABELV $100
|
|
LABELV $98
|
|
line 81
|
|
;81: }
|
|
LABELV $90
|
|
line 84
|
|
;82:
|
|
;83:
|
|
;84: client->ps.damageCount = count;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 184
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRF4
|
|
CVFI4 4
|
|
ASGNI4
|
|
line 89
|
|
;85:
|
|
;86: //
|
|
;87: // clear totals
|
|
;88: //
|
|
;89: client->damage_blood = 0;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1612
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 90
|
|
;90: client->damage_armor = 0;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1608
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 91
|
|
;91: client->damage_knockback = 0;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1616
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 92
|
|
;92:}
|
|
LABELV $80
|
|
endproc P_DamageFeedback 48 12
|
|
export P_WorldEffects
|
|
proc P_WorldEffects 40 32
|
|
line 103
|
|
;93:
|
|
;94:
|
|
;95:
|
|
;96:/*
|
|
;97:=============
|
|
;98:P_WorldEffects
|
|
;99:
|
|
;100:Check for lava / slime contents and drowning
|
|
;101:=============
|
|
;102:*/
|
|
;103:void P_WorldEffects( gentity_t *ent ) {
|
|
line 107
|
|
;104: qboolean envirosuit;
|
|
;105: int waterlevel;
|
|
;106:
|
|
;107: if ( ent->client->noclip ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1576
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $102
|
|
line 108
|
|
;108: ent->client->airOutTime = level.time + 12000; // don't need air
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1688
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 12000
|
|
ADDI4
|
|
ASGNI4
|
|
line 109
|
|
;109: return;
|
|
ADDRGP4 $101
|
|
JUMPV
|
|
LABELV $102
|
|
line 112
|
|
;110: }
|
|
;111:
|
|
;112: waterlevel = ent->waterlevel;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 748
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 114
|
|
;113:
|
|
;114: envirosuit = ent->client->ps.powerups[PW_BATTLESUIT] > level.time;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 352
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
LEI4 $107
|
|
ADDRLP4 8
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRGP4 $108
|
|
JUMPV
|
|
LABELV $107
|
|
ADDRLP4 8
|
|
CNSTI4 0
|
|
ASGNI4
|
|
LABELV $108
|
|
ADDRLP4 4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ASGNI4
|
|
line 119
|
|
;115:
|
|
;116: //
|
|
;117: // check for drowning
|
|
;118: //
|
|
;119: if ( waterlevel == 3 ) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $109
|
|
line 121
|
|
;120: // envirosuit give air
|
|
;121: if ( envirosuit ) {
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $111
|
|
line 122
|
|
;122: ent->client->airOutTime = level.time + 10000;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1688
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 10000
|
|
ADDI4
|
|
ASGNI4
|
|
line 123
|
|
;123: }
|
|
LABELV $111
|
|
line 126
|
|
;124:
|
|
;125: // if out of air, start drowning
|
|
;126: if ( ent->client->airOutTime < level.time) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1688
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
GEI4 $110
|
|
line 128
|
|
;127: // drown!
|
|
;128: ent->client->airOutTime += 1000;
|
|
ADDRLP4 12
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1688
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1000
|
|
ADDI4
|
|
ASGNI4
|
|
line 129
|
|
;129: if ( ent->health > 0 ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
LEI4 $110
|
|
line 131
|
|
;130: // take more damage the longer underwater
|
|
;131: ent->damage += 2;
|
|
ADDRLP4 16
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 688
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
ADDI4
|
|
ASGNI4
|
|
line 132
|
|
;132: if (ent->damage > 15)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 688
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 15
|
|
LEI4 $119
|
|
line 133
|
|
;133: ent->damage = 15;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 688
|
|
ADDP4
|
|
CNSTI4 15
|
|
ASGNI4
|
|
LABELV $119
|
|
line 136
|
|
;134:
|
|
;135: // play a gurp sound instead of a normal pain sound
|
|
;136: if (ent->health <= ent->damage) {
|
|
ADDRLP4 20
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTI4 688
|
|
ADDP4
|
|
INDIRI4
|
|
GTI4 $121
|
|
line 137
|
|
;137: G_Sound(ent, CHAN_VOICE, G_SoundIndex(/*"*drown.wav"*/"sound/player/gurp1.wav"));
|
|
ADDRGP4 $123
|
|
ARGP4
|
|
ADDRLP4 24
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 3
|
|
ARGI4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_Sound
|
|
CALLV
|
|
pop
|
|
line 138
|
|
;138: } else if (rand()&1) {
|
|
ADDRGP4 $122
|
|
JUMPV
|
|
LABELV $121
|
|
ADDRLP4 24
|
|
ADDRGP4 rand
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
CNSTI4 1
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $124
|
|
line 139
|
|
;139: G_Sound(ent, CHAN_VOICE, G_SoundIndex("sound/player/gurp1.wav"));
|
|
ADDRGP4 $123
|
|
ARGP4
|
|
ADDRLP4 28
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 3
|
|
ARGI4
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_Sound
|
|
CALLV
|
|
pop
|
|
line 140
|
|
;140: } else {
|
|
ADDRGP4 $125
|
|
JUMPV
|
|
LABELV $124
|
|
line 141
|
|
;141: G_Sound(ent, CHAN_VOICE, G_SoundIndex("sound/player/gurp2.wav"));
|
|
ADDRGP4 $126
|
|
ARGP4
|
|
ADDRLP4 28
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 3
|
|
ARGI4
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_Sound
|
|
CALLV
|
|
pop
|
|
line 142
|
|
;142: }
|
|
LABELV $125
|
|
LABELV $122
|
|
line 145
|
|
;143:
|
|
;144: // don't play a normal pain sound
|
|
;145: ent->pain_debounce_time = level.time + 200;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 664
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 200
|
|
ADDI4
|
|
ASGNI4
|
|
line 147
|
|
;146:
|
|
;147: G_Damage (ent, NULL, NULL, NULL, NULL,
|
|
ADDRLP4 28
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 32
|
|
CNSTP4 0
|
|
ASGNP4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 36
|
|
CNSTP4 0
|
|
ASGNP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
CNSTI4 688
|
|
ADDP4
|
|
INDIRI4
|
|
ARGI4
|
|
CNSTI4 2
|
|
ARGI4
|
|
CNSTI4 29
|
|
ARGI4
|
|
ADDRGP4 G_Damage
|
|
CALLV
|
|
pop
|
|
line 149
|
|
;148: ent->damage, DAMAGE_NO_ARMOR, MOD_WATER);
|
|
;149: }
|
|
line 150
|
|
;150: }
|
|
line 151
|
|
;151: } else {
|
|
ADDRGP4 $110
|
|
JUMPV
|
|
LABELV $109
|
|
line 152
|
|
;152: ent->client->airOutTime = level.time + 12000;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1688
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 12000
|
|
ADDI4
|
|
ASGNI4
|
|
line 153
|
|
;153: ent->damage = 2;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 688
|
|
ADDP4
|
|
CNSTI4 2
|
|
ASGNI4
|
|
line 154
|
|
;154: }
|
|
LABELV $110
|
|
line 159
|
|
;155:
|
|
;156: //
|
|
;157: // check for sizzle damage (move to pmove?)
|
|
;158: //
|
|
;159: if (waterlevel &&
|
|
ADDRLP4 12
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
EQI4 $129
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 744
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 131074
|
|
BANDI4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
EQI4 $129
|
|
line 160
|
|
;160: (ent->watertype&(CONTENTS_LAVA|CONTENTS_SLIME)) ) {
|
|
line 161
|
|
;161: if (ent->health > 0
|
|
ADDRLP4 16
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
LEI4 $131
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CNSTI4 664
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
GTI4 $131
|
|
line 162
|
|
;162: && ent->pain_debounce_time <= level.time ) {
|
|
line 164
|
|
;163:
|
|
;164: if ( envirosuit ) {
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $134
|
|
line 165
|
|
;165: G_AddEvent( ent, EV_POWERUP_BATTLESUIT, 0 );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 83
|
|
ARGI4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 166
|
|
;166: } else {
|
|
ADDRGP4 $135
|
|
JUMPV
|
|
LABELV $134
|
|
line 167
|
|
;167: if (ent->watertype & CONTENTS_LAVA) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 744
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $136
|
|
line 168
|
|
;168: G_Damage (ent, NULL, NULL, NULL, NULL,
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 20
|
|
CNSTP4 0
|
|
ASGNP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 24
|
|
CNSTP4 0
|
|
ASGNP4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 30
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ARGI4
|
|
CNSTI4 0
|
|
ARGI4
|
|
CNSTI4 31
|
|
ARGI4
|
|
ADDRGP4 G_Damage
|
|
CALLV
|
|
pop
|
|
line 170
|
|
;169: 30*waterlevel, 0, MOD_LAVA);
|
|
;170: }
|
|
LABELV $136
|
|
line 172
|
|
;171:
|
|
;172: if (ent->watertype & CONTENTS_SLIME) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 744
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 131072
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $138
|
|
line 173
|
|
;173: G_Damage (ent, NULL, NULL, NULL, NULL,
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 20
|
|
CNSTP4 0
|
|
ASGNP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 24
|
|
CNSTP4 0
|
|
ASGNP4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 10
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ARGI4
|
|
CNSTI4 0
|
|
ARGI4
|
|
CNSTI4 30
|
|
ARGI4
|
|
ADDRGP4 G_Damage
|
|
CALLV
|
|
pop
|
|
line 175
|
|
;174: 10*waterlevel, 0, MOD_SLIME);
|
|
;175: }
|
|
LABELV $138
|
|
line 176
|
|
;176: }
|
|
LABELV $135
|
|
line 177
|
|
;177: }
|
|
LABELV $131
|
|
line 178
|
|
;178: }
|
|
LABELV $129
|
|
line 179
|
|
;179:}
|
|
LABELV $101
|
|
endproc P_WorldEffects 40 32
|
|
export DoImpact
|
|
proc DoImpact 96 32
|
|
line 188
|
|
;180:
|
|
;181:
|
|
;182:
|
|
;183:
|
|
;184:
|
|
;185://==============================================================
|
|
;186:extern void G_ApplyKnockback( gentity_t *targ, vec3_t newDir, float knockback );
|
|
;187:void DoImpact( gentity_t *self, gentity_t *other, qboolean damageSelf )
|
|
;188:{
|
|
line 193
|
|
;189: float magnitude, my_mass;
|
|
;190: vec3_t velocity;
|
|
;191: int cont;
|
|
;192:
|
|
;193: if( self->client )
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $141
|
|
line 194
|
|
;194: {
|
|
line 195
|
|
;195: VectorCopy( self->client->ps.velocity, velocity );
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 32
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 196
|
|
;196: my_mass = self->mass;
|
|
ADDRLP4 16
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 624
|
|
ADDP4
|
|
INDIRF4
|
|
ASGNF4
|
|
line 197
|
|
;197: }
|
|
ADDRGP4 $142
|
|
JUMPV
|
|
LABELV $141
|
|
line 199
|
|
;198: else
|
|
;199: {
|
|
line 200
|
|
;200: VectorCopy( self->s.pos.trDelta, velocity );
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 36
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 201
|
|
;201: if ( self->s.pos.trType == TR_GRAVITY )
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 12
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 5
|
|
NEI4 $143
|
|
line 202
|
|
;202: {
|
|
line 203
|
|
;203: velocity[2] -= 0.25f * g_gravity.value;
|
|
ADDRLP4 4+8
|
|
ADDRLP4 4+8
|
|
INDIRF4
|
|
CNSTF4 1048576000
|
|
ADDRGP4 g_gravity+8
|
|
INDIRF4
|
|
MULF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 204
|
|
;204: }
|
|
LABELV $143
|
|
line 205
|
|
;205: if( !self->mass )
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 624
|
|
ADDP4
|
|
INDIRF4
|
|
CNSTF4 0
|
|
NEF4 $147
|
|
line 206
|
|
;206: {
|
|
line 207
|
|
;207: my_mass = 1;
|
|
ADDRLP4 16
|
|
CNSTF4 1065353216
|
|
ASGNF4
|
|
line 208
|
|
;208: }
|
|
ADDRGP4 $148
|
|
JUMPV
|
|
LABELV $147
|
|
line 209
|
|
;209: else if ( self->mass <= 10 )
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 624
|
|
ADDP4
|
|
INDIRF4
|
|
CNSTF4 1092616192
|
|
GTF4 $149
|
|
line 210
|
|
;210: {
|
|
line 211
|
|
;211: my_mass = 10;
|
|
ADDRLP4 16
|
|
CNSTF4 1092616192
|
|
ASGNF4
|
|
line 212
|
|
;212: }
|
|
ADDRGP4 $150
|
|
JUMPV
|
|
LABELV $149
|
|
line 214
|
|
;213: else
|
|
;214: {
|
|
line 215
|
|
;215: my_mass = self->mass;///10;
|
|
ADDRLP4 16
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 624
|
|
ADDP4
|
|
INDIRF4
|
|
ASGNF4
|
|
line 216
|
|
;216: }
|
|
LABELV $150
|
|
LABELV $148
|
|
line 217
|
|
;217: }
|
|
LABELV $142
|
|
line 219
|
|
;218:
|
|
;219: magnitude = VectorLength( velocity ) * my_mass / 10;
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRLP4 24
|
|
ADDRGP4 VectorLength
|
|
CALLF4
|
|
ASGNF4
|
|
ADDRLP4 0
|
|
ADDRLP4 24
|
|
INDIRF4
|
|
ADDRLP4 16
|
|
INDIRF4
|
|
MULF4
|
|
CNSTF4 1092616192
|
|
DIVF4
|
|
ASGNF4
|
|
line 232
|
|
;220:
|
|
;221: /*
|
|
;222: if(pointcontents(self.absmax)==CONTENT_WATER)//FIXME: or other watertypes
|
|
;223: magnitude/=3; //water absorbs 2/3 velocity
|
|
;224:
|
|
;225: if(self.classname=="barrel"&&self.aflag)//rolling barrels are made for impacts!
|
|
;226: magnitude*=3;
|
|
;227:
|
|
;228: if(self.frozen>0&&magnitude<300&&self.flags&FL_ONGROUND&&loser==world&&self.velocity_z<-20&&self.last_onground+0.3<time)
|
|
;229: magnitude=300;
|
|
;230: */
|
|
;231:
|
|
;232: if ( !self->client || self->client->ps.lastOnGround+300<level.time || ( self->client->ps.lastOnGround+100 < level.time && other->material >= MAT_GLASS ) )
|
|
ADDRLP4 28
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $156
|
|
ADDRLP4 32
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
CNSTI4 500
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
CNSTI4 300
|
|
ADDI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
LTI4 $156
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
CNSTI4 100
|
|
ADDI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
GEI4 $151
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 684
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
LTI4 $151
|
|
LABELV $156
|
|
line 233
|
|
;233: {
|
|
line 235
|
|
;234: vec3_t dir1, dir2;
|
|
;235: float force = 0, dot;
|
|
ADDRLP4 36
|
|
CNSTF4 0
|
|
ASGNF4
|
|
line 237
|
|
;236:
|
|
;237: if ( other->material >= MAT_GLASS )
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 684
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
LTI4 $157
|
|
line 238
|
|
;238: magnitude *= 2;
|
|
ADDRLP4 0
|
|
CNSTF4 1073741824
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
MULF4
|
|
ASGNF4
|
|
LABELV $157
|
|
line 241
|
|
;239:
|
|
;240: //damage them
|
|
;241: if ( magnitude >= 100 && other->s.number < ENTITYNUM_WORLD )
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
CNSTF4 1120403456
|
|
LTF4 $159
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1022
|
|
GEI4 $159
|
|
line 242
|
|
;242: {
|
|
line 243
|
|
;243: VectorCopy( velocity, dir1 );
|
|
ADDRLP4 52
|
|
ADDRLP4 4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 244
|
|
;244: VectorNormalize( dir1 );
|
|
ADDRLP4 52
|
|
ARGP4
|
|
ADDRGP4 VectorNormalize
|
|
CALLF4
|
|
pop
|
|
line 245
|
|
;245: if( VectorCompare( other->r.currentOrigin, vec3_origin ) )
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 368
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 vec3_origin
|
|
ARGP4
|
|
ADDRLP4 68
|
|
ADDRGP4 VectorCompare
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 68
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $161
|
|
line 246
|
|
;246: {//a brush with no origin
|
|
line 247
|
|
;247: VectorCopy ( dir1, dir2 );
|
|
ADDRLP4 40
|
|
ADDRLP4 52
|
|
INDIRB
|
|
ASGNB 12
|
|
line 248
|
|
;248: }
|
|
ADDRGP4 $162
|
|
JUMPV
|
|
LABELV $161
|
|
line 250
|
|
;249: else
|
|
;250: {
|
|
line 251
|
|
;251: VectorSubtract( other->r.currentOrigin, self->r.currentOrigin, dir2 );
|
|
ADDRLP4 72
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 76
|
|
CNSTI4 368
|
|
ASGNI4
|
|
ADDRLP4 80
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 40
|
|
ADDRLP4 72
|
|
INDIRP4
|
|
ADDRLP4 76
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 80
|
|
INDIRP4
|
|
ADDRLP4 76
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 84
|
|
CNSTI4 372
|
|
ASGNI4
|
|
ADDRLP4 40+4
|
|
ADDRLP4 72
|
|
INDIRP4
|
|
ADDRLP4 84
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 80
|
|
INDIRP4
|
|
ADDRLP4 84
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 88
|
|
CNSTI4 376
|
|
ASGNI4
|
|
ADDRLP4 40+8
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ADDRLP4 88
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 88
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 252
|
|
;252: VectorNormalize( dir2 );
|
|
ADDRLP4 40
|
|
ARGP4
|
|
ADDRGP4 VectorNormalize
|
|
CALLF4
|
|
pop
|
|
line 253
|
|
;253: }
|
|
LABELV $162
|
|
line 255
|
|
;254:
|
|
;255: dot = DotProduct( dir1, dir2 );
|
|
ADDRLP4 64
|
|
ADDRLP4 52
|
|
INDIRF4
|
|
ADDRLP4 40
|
|
INDIRF4
|
|
MULF4
|
|
ADDRLP4 52+4
|
|
INDIRF4
|
|
ADDRLP4 40+4
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ADDRLP4 52+8
|
|
INDIRF4
|
|
ADDRLP4 40+8
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
line 257
|
|
;256:
|
|
;257: if ( dot >= 0.2 )
|
|
ADDRLP4 64
|
|
INDIRF4
|
|
CNSTF4 1045220557
|
|
LTF4 $169
|
|
line 258
|
|
;258: {
|
|
line 259
|
|
;259: force = dot;
|
|
ADDRLP4 36
|
|
ADDRLP4 64
|
|
INDIRF4
|
|
ASGNF4
|
|
line 260
|
|
;260: }
|
|
ADDRGP4 $170
|
|
JUMPV
|
|
LABELV $169
|
|
line 262
|
|
;261: else
|
|
;262: {
|
|
line 263
|
|
;263: force = 0;
|
|
ADDRLP4 36
|
|
CNSTF4 0
|
|
ASGNF4
|
|
line 264
|
|
;264: }
|
|
LABELV $170
|
|
line 266
|
|
;265:
|
|
;266: force *= (magnitude/50);
|
|
ADDRLP4 36
|
|
ADDRLP4 36
|
|
INDIRF4
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
CNSTF4 1112014848
|
|
DIVF4
|
|
MULF4
|
|
ASGNF4
|
|
line 268
|
|
;267:
|
|
;268: cont = trap_PointContents( other->r.absmax, other->s.number );
|
|
ADDRLP4 72
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 72
|
|
INDIRP4
|
|
CNSTI4 356
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 72
|
|
INDIRP4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 76
|
|
ADDRGP4 trap_PointContents
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 20
|
|
ADDRLP4 76
|
|
INDIRI4
|
|
ASGNI4
|
|
line 269
|
|
;269: if( (cont&CONTENTS_WATER) )//|| (self.classname=="barrel"&&self.aflag))//FIXME: or other watertypes
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
CNSTI4 4
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $171
|
|
line 270
|
|
;270: {
|
|
line 271
|
|
;271: force /= 3; //water absorbs 2/3 velocity
|
|
ADDRLP4 36
|
|
ADDRLP4 36
|
|
INDIRF4
|
|
CNSTF4 1077936128
|
|
DIVF4
|
|
ASGNF4
|
|
line 272
|
|
;272: }
|
|
LABELV $171
|
|
line 279
|
|
;273:
|
|
;274: /*
|
|
;275: if(self.frozen>0&&force>10)
|
|
;276: force=10;
|
|
;277: */
|
|
;278:
|
|
;279: if( ( force >= 1 && other->s.number != 0 ) || force >= 10)
|
|
ADDRLP4 36
|
|
INDIRF4
|
|
CNSTF4 1065353216
|
|
LTF4 $176
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $175
|
|
LABELV $176
|
|
ADDRLP4 36
|
|
INDIRF4
|
|
CNSTF4 1092616192
|
|
LTF4 $173
|
|
LABELV $175
|
|
line 280
|
|
;280: {
|
|
line 288
|
|
;281: /*
|
|
;282: dprint("Damage other (");
|
|
;283: dprint(loser.classname);
|
|
;284: dprint("): ");
|
|
;285: dprint(ftos(force));
|
|
;286: dprint("\n");
|
|
;287: */
|
|
;288: if ( other->r.svFlags & SVF_GLASS_BRUSH )
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 304
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 134217728
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $177
|
|
line 289
|
|
;289: {
|
|
line 290
|
|
;290: other->splashRadius = (float)(self->r.maxs[0] - self->r.mins[0])/4.0f;
|
|
ADDRLP4 80
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 700
|
|
ADDP4
|
|
ADDRLP4 80
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 80
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
CNSTF4 1082130432
|
|
DIVF4
|
|
CVFI4 4
|
|
ASGNI4
|
|
line 291
|
|
;291: }
|
|
LABELV $177
|
|
line 292
|
|
;292: if ( other->takedamage )
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 680
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $179
|
|
line 293
|
|
;293: {
|
|
line 294
|
|
;294: G_Damage( other, self, self, velocity, self->r.currentOrigin, force, DAMAGE_NO_ARMOR, MOD_CRUSH);//FIXME: MOD_IMPACT
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 80
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 80
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 80
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRLP4 80
|
|
INDIRP4
|
|
CNSTI4 368
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 36
|
|
INDIRF4
|
|
CVFI4 4
|
|
ARGI4
|
|
CNSTI4 2
|
|
ARGI4
|
|
CNSTI4 32
|
|
ARGI4
|
|
ADDRGP4 G_Damage
|
|
CALLV
|
|
pop
|
|
line 295
|
|
;295: }
|
|
ADDRGP4 $180
|
|
JUMPV
|
|
LABELV $179
|
|
line 297
|
|
;296: else
|
|
;297: {
|
|
line 298
|
|
;298: G_ApplyKnockback( other, dir2, force );
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 40
|
|
ARGP4
|
|
ADDRLP4 36
|
|
INDIRF4
|
|
ARGF4
|
|
ADDRGP4 G_ApplyKnockback
|
|
CALLV
|
|
pop
|
|
line 299
|
|
;299: }
|
|
LABELV $180
|
|
line 300
|
|
;300: }
|
|
LABELV $173
|
|
line 301
|
|
;301: }
|
|
LABELV $159
|
|
line 303
|
|
;302:
|
|
;303: if ( damageSelf && self->takedamage )
|
|
ADDRLP4 68
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRFP4 8
|
|
INDIRI4
|
|
ADDRLP4 68
|
|
INDIRI4
|
|
EQI4 $181
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 680
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 68
|
|
INDIRI4
|
|
EQI4 $181
|
|
line 304
|
|
;304: {
|
|
line 307
|
|
;305: //Now damage me
|
|
;306: //FIXME: more lenient falling damage, especially for when driving a vehicle
|
|
;307: if ( self->client && self->client->ps.fd.forceJumpZStart )
|
|
ADDRLP4 72
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 72
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $183
|
|
ADDRLP4 72
|
|
INDIRP4
|
|
CNSTI4 1080
|
|
ADDP4
|
|
INDIRF4
|
|
CNSTF4 0
|
|
EQF4 $183
|
|
line 308
|
|
;308: {//we were force-jumping
|
|
line 309
|
|
;309: if ( self->r.currentOrigin[2] >= self->client->ps.fd.forceJumpZStart )
|
|
ADDRLP4 76
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 76
|
|
INDIRP4
|
|
CNSTI4 376
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 76
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1080
|
|
ADDP4
|
|
INDIRF4
|
|
LTF4 $185
|
|
line 310
|
|
;310: {//we landed at same height or higher than we landed
|
|
line 311
|
|
;311: magnitude = 0;
|
|
ADDRLP4 0
|
|
CNSTF4 0
|
|
ASGNF4
|
|
line 312
|
|
;312: }
|
|
ADDRGP4 $186
|
|
JUMPV
|
|
LABELV $185
|
|
line 314
|
|
;313: else
|
|
;314: {//FIXME: take off some of it, at least?
|
|
line 315
|
|
;315: magnitude = (self->client->ps.fd.forceJumpZStart-self->r.currentOrigin[2])/3;
|
|
ADDRLP4 80
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 80
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1080
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 80
|
|
INDIRP4
|
|
CNSTI4 376
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
CNSTF4 1077936128
|
|
DIVF4
|
|
ASGNF4
|
|
line 316
|
|
;316: }
|
|
LABELV $186
|
|
line 317
|
|
;317: }
|
|
LABELV $183
|
|
line 319
|
|
;318: //if(self.classname!="monster_mezzoman"&&self.netname!="spider")//Cats always land on their feet
|
|
;319: if( ( magnitude >= 100 + self->health && self->s.number != 0 && self->s.weapon != WP_SABER ) || ( magnitude >= 700 ) )//&& self.safe_time < level.time ))//health here is used to simulate structural integrity
|
|
ADDRLP4 76
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
ADDRLP4 76
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 100
|
|
ADDI4
|
|
CVIF4 4
|
|
LTF4 $191
|
|
ADDRLP4 76
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $191
|
|
ADDRLP4 76
|
|
INDIRP4
|
|
CNSTI4 276
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
NEI4 $189
|
|
LABELV $191
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
CNSTF4 1143930880
|
|
LTF4 $187
|
|
LABELV $189
|
|
line 320
|
|
;320: {
|
|
line 321
|
|
;321: if ( (self->s.weapon == WP_SABER || self->s.number == 0) && self->client && self->client->ps.groundEntityNum < ENTITYNUM_NONE && magnitude < 1000 )
|
|
ADDRLP4 80
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 80
|
|
INDIRP4
|
|
CNSTI4 276
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
EQI4 $194
|
|
ADDRLP4 80
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $192
|
|
LABELV $194
|
|
ADDRLP4 84
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $192
|
|
ADDRLP4 84
|
|
INDIRP4
|
|
CNSTI4 84
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1023
|
|
GEI4 $192
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
CNSTF4 1148846080
|
|
GEF4 $192
|
|
line 322
|
|
;322: {//players and jedi take less impact damage
|
|
line 324
|
|
;323: //allow for some lenience on high falls
|
|
;324: magnitude /= 2;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
CNSTF4 1073741824
|
|
DIVF4
|
|
ASGNF4
|
|
line 331
|
|
;325: /*
|
|
;326: if ( self.absorb_time >= time )//crouching on impact absorbs 1/2 the damage
|
|
;327: {
|
|
;328: magnitude/=2;
|
|
;329: }
|
|
;330: */
|
|
;331: }
|
|
LABELV $192
|
|
line 332
|
|
;332: magnitude /= 40;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
CNSTF4 1109393408
|
|
DIVF4
|
|
ASGNF4
|
|
line 333
|
|
;333: magnitude = magnitude - force/2;//If damage other, subtract half of that damage off of own injury
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
ADDRLP4 36
|
|
INDIRF4
|
|
CNSTF4 1073741824
|
|
DIVF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 334
|
|
;334: if ( magnitude >= 1 )
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
CNSTF4 1065353216
|
|
LTF4 $195
|
|
line 335
|
|
;335: {
|
|
line 348
|
|
;336: //FIXME: Put in a thingtype impact sound function
|
|
;337: /*
|
|
;338: dprint("Damage self (");
|
|
;339: dprint(self.classname);
|
|
;340: dprint("): ");
|
|
;341: dprint(ftos(magnitude));
|
|
;342: dprint("\n");
|
|
;343: */
|
|
;344: /*
|
|
;345: if ( self.classname=="player_sheep "&& self.flags&FL_ONGROUND && self.velocity_z > -50 )
|
|
;346: return;
|
|
;347: */
|
|
;348: G_Damage( self, NULL, NULL, NULL, self->r.currentOrigin, magnitude/2, DAMAGE_NO_ARMOR, MOD_FALLING );//FIXME: MOD_IMPACT
|
|
ADDRLP4 88
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 88
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 92
|
|
CNSTP4 0
|
|
ASGNP4
|
|
ADDRLP4 92
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 92
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTP4 0
|
|
ARGP4
|
|
ADDRLP4 88
|
|
INDIRP4
|
|
CNSTI4 368
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRF4
|
|
CNSTF4 1073741824
|
|
DIVF4
|
|
CVFI4 4
|
|
ARGI4
|
|
CNSTI4 2
|
|
ARGI4
|
|
CNSTI4 34
|
|
ARGI4
|
|
ADDRGP4 G_Damage
|
|
CALLV
|
|
pop
|
|
line 349
|
|
;349: }
|
|
LABELV $195
|
|
line 350
|
|
;350: }
|
|
LABELV $187
|
|
line 351
|
|
;351: }
|
|
LABELV $181
|
|
line 362
|
|
;352:
|
|
;353: //FIXME: slow my velocity some?
|
|
;354:
|
|
;355: // NOTENOTE We don't use lastimpact as of yet
|
|
;356:// self->lastImpact = level.time;
|
|
;357:
|
|
;358: /*
|
|
;359: if(self.flags&FL_ONGROUND)
|
|
;360: self.last_onground=time;
|
|
;361: */
|
|
;362: }
|
|
LABELV $151
|
|
line 363
|
|
;363:}
|
|
LABELV $140
|
|
endproc DoImpact 96 32
|
|
export G_SetClientSound
|
|
proc G_SetClientSound 8 0
|
|
line 370
|
|
;364:
|
|
;365:/*
|
|
;366:===============
|
|
;367:G_SetClientSound
|
|
;368:===============
|
|
;369:*/
|
|
;370:void G_SetClientSound( gentity_t *ent ) {
|
|
line 371
|
|
;371: if (ent->waterlevel && (ent->watertype&(CONTENTS_LAVA|CONTENTS_SLIME)) ) {
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 748
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
EQI4 $198
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 744
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 131074
|
|
BANDI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
EQI4 $198
|
|
line 372
|
|
;372: ent->client->ps.loopSound = level.snd_fry;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 476
|
|
ADDP4
|
|
ADDRGP4 level+220
|
|
INDIRI4
|
|
ASGNI4
|
|
line 373
|
|
;373: } else {
|
|
ADDRGP4 $199
|
|
JUMPV
|
|
LABELV $198
|
|
line 374
|
|
;374: ent->client->ps.loopSound = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 476
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 375
|
|
;375: }
|
|
LABELV $199
|
|
line 376
|
|
;376:}
|
|
LABELV $197
|
|
endproc G_SetClientSound 8 0
|
|
export ClientImpacts
|
|
proc ClientImpacts 1100 12
|
|
line 387
|
|
;377:
|
|
;378:
|
|
;379:
|
|
;380://==============================================================
|
|
;381:
|
|
;382:/*
|
|
;383:==============
|
|
;384:ClientImpacts
|
|
;385:==============
|
|
;386:*/
|
|
;387:void ClientImpacts( gentity_t *ent, pmove_t *pm ) {
|
|
line 392
|
|
;388: int i, j;
|
|
;389: trace_t trace;
|
|
;390: gentity_t *other;
|
|
;391:
|
|
;392: memset( &trace, 0, sizeof( trace ) );
|
|
ADDRLP4 12
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
CNSTI4 1080
|
|
ARGI4
|
|
ADDRGP4 memset
|
|
CALLP4
|
|
pop
|
|
line 393
|
|
;393: for (i=0 ; i<pm->numtouch ; i++) {
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $205
|
|
JUMPV
|
|
LABELV $202
|
|
line 394
|
|
;394: for (j=0 ; j<i ; j++) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $209
|
|
JUMPV
|
|
LABELV $206
|
|
line 395
|
|
;395: if (pm->touchents[j] == pm->touchents[i] ) {
|
|
ADDRLP4 1092
|
|
CNSTI4 2
|
|
ASGNI4
|
|
ADDRLP4 1096
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 56
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRLP4 1092
|
|
INDIRI4
|
|
LSHI4
|
|
ADDRLP4 1096
|
|
INDIRP4
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRLP4 1092
|
|
INDIRI4
|
|
LSHI4
|
|
ADDRLP4 1096
|
|
INDIRP4
|
|
ADDP4
|
|
INDIRI4
|
|
NEI4 $210
|
|
line 396
|
|
;396: break;
|
|
ADDRGP4 $208
|
|
JUMPV
|
|
LABELV $210
|
|
line 398
|
|
;397: }
|
|
;398: }
|
|
LABELV $207
|
|
line 394
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $209
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
LTI4 $206
|
|
LABELV $208
|
|
line 399
|
|
;399: if (j != i) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
EQI4 $212
|
|
line 400
|
|
;400: continue; // duplicated
|
|
ADDRGP4 $203
|
|
JUMPV
|
|
LABELV $212
|
|
line 402
|
|
;401: }
|
|
;402: other = &g_entities[ pm->touchents[i] ];
|
|
ADDRLP4 8
|
|
CNSTI4 828
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 56
|
|
ADDP4
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ASGNP4
|
|
line 404
|
|
;403:
|
|
;404: if ( ( ent->r.svFlags & SVF_BOT ) && ( ent->touch ) ) {
|
|
ADDRLP4 1092
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1092
|
|
INDIRP4
|
|
CNSTI4 304
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 8
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $214
|
|
ADDRLP4 1092
|
|
INDIRP4
|
|
CNSTI4 648
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $214
|
|
line 405
|
|
;405: ent->touch( ent, other, &trace );
|
|
ADDRLP4 1096
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1096
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 12
|
|
ARGP4
|
|
ADDRLP4 1096
|
|
INDIRP4
|
|
CNSTI4 648
|
|
ADDP4
|
|
INDIRP4
|
|
CALLV
|
|
pop
|
|
line 406
|
|
;406: }
|
|
LABELV $214
|
|
line 408
|
|
;407:
|
|
;408: if ( !other->touch ) {
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 648
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $216
|
|
line 409
|
|
;409: continue;
|
|
ADDRGP4 $203
|
|
JUMPV
|
|
LABELV $216
|
|
line 412
|
|
;410: }
|
|
;411:
|
|
;412: other->touch( other, ent, &trace );
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 12
|
|
ARGP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 648
|
|
ADDP4
|
|
INDIRP4
|
|
CALLV
|
|
pop
|
|
line 413
|
|
;413: }
|
|
LABELV $203
|
|
line 393
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $205
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 52
|
|
ADDP4
|
|
INDIRI4
|
|
LTI4 $202
|
|
line 415
|
|
;414:
|
|
;415:}
|
|
LABELV $201
|
|
endproc ClientImpacts 1100 12
|
|
data
|
|
align 4
|
|
LABELV $219
|
|
byte 4 1109393408
|
|
byte 4 1109393408
|
|
byte 4 1112539136
|
|
export G_TouchTriggers
|
|
code
|
|
proc G_TouchTriggers 5264 16
|
|
line 425
|
|
;416:
|
|
;417:/*
|
|
;418:============
|
|
;419:G_TouchTriggers
|
|
;420:
|
|
;421:Find all trigger entities that ent's current position touches.
|
|
;422:Spectators will only interact with teleporters.
|
|
;423:============
|
|
;424:*/
|
|
;425:void G_TouchTriggers( gentity_t *ent ) {
|
|
line 433
|
|
;426: int i, num;
|
|
;427: int touch[MAX_GENTITIES];
|
|
;428: gentity_t *hit;
|
|
;429: trace_t trace;
|
|
;430: vec3_t mins, maxs;
|
|
;431: static vec3_t range = { 40, 40, 52 };
|
|
;432:
|
|
;433: if ( !ent->client ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $220
|
|
line 434
|
|
;434: return;
|
|
ADDRGP4 $218
|
|
JUMPV
|
|
LABELV $220
|
|
line 438
|
|
;435: }
|
|
;436:
|
|
;437: // dead clients don't activate triggers!
|
|
;438: if ( ent->client->ps.stats[STAT_HEALTH] <= 0 ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 216
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
GTI4 $222
|
|
line 439
|
|
;439: return;
|
|
ADDRGP4 $218
|
|
JUMPV
|
|
LABELV $222
|
|
line 442
|
|
;440: }
|
|
;441:
|
|
;442: VectorSubtract( ent->client->ps.origin, range, mins );
|
|
ADDRLP4 5212
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1088
|
|
ADDRLP4 5212
|
|
INDIRP4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRGP4 $219
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 1088+4
|
|
ADDRLP4 5212
|
|
INDIRP4
|
|
INDIRP4
|
|
CNSTI4 24
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRGP4 $219+4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 1088+8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 28
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRGP4 $219+8
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 443
|
|
;443: VectorAdd( ent->client->ps.origin, range, maxs );
|
|
ADDRLP4 5216
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1100
|
|
ADDRLP4 5216
|
|
INDIRP4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRGP4 $219
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 1100+4
|
|
ADDRLP4 5216
|
|
INDIRP4
|
|
INDIRP4
|
|
CNSTI4 24
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRGP4 $219+4
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 1100+8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 28
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRGP4 $219+8
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
line 445
|
|
;444:
|
|
;445: num = trap_EntitiesInBox( mins, maxs, touch, MAX_GENTITIES );
|
|
ADDRLP4 1088
|
|
ARGP4
|
|
ADDRLP4 1100
|
|
ARGP4
|
|
ADDRLP4 1116
|
|
ARGP4
|
|
CNSTI4 1024
|
|
ARGI4
|
|
ADDRLP4 5220
|
|
ADDRGP4 trap_EntitiesInBox
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 1112
|
|
ADDRLP4 5220
|
|
INDIRI4
|
|
ASGNI4
|
|
line 448
|
|
;446:
|
|
;447: // can't use ent->r.absmin, because that has a one unit pad
|
|
;448: VectorAdd( ent->client->ps.origin, ent->r.mins, mins );
|
|
ADDRLP4 5224
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 5228
|
|
ADDRLP4 5224
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1088
|
|
ADDRLP4 5228
|
|
INDIRP4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 5224
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 1088+4
|
|
ADDRLP4 5228
|
|
INDIRP4
|
|
INDIRP4
|
|
CNSTI4 24
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 5224
|
|
INDIRP4
|
|
CNSTI4 320
|
|
ADDP4
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 5232
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1088+8
|
|
ADDRLP4 5232
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 28
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 5232
|
|
INDIRP4
|
|
CNSTI4 324
|
|
ADDP4
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
line 449
|
|
;449: VectorAdd( ent->client->ps.origin, ent->r.maxs, maxs );
|
|
ADDRLP4 5236
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 5240
|
|
ADDRLP4 5236
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 1100
|
|
ADDRLP4 5240
|
|
INDIRP4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 5236
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 1100+4
|
|
ADDRLP4 5240
|
|
INDIRP4
|
|
INDIRP4
|
|
CNSTI4 24
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 5236
|
|
INDIRP4
|
|
CNSTI4 332
|
|
ADDP4
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 5244
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1100+8
|
|
ADDRLP4 5244
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 28
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 5244
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
line 451
|
|
;450:
|
|
;451: for ( i=0 ; i<num ; i++ ) {
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $239
|
|
JUMPV
|
|
LABELV $236
|
|
line 452
|
|
;452: hit = &g_entities[touch[i]];
|
|
ADDRLP4 0
|
|
CNSTI4 828
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRLP4 1116
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ASGNP4
|
|
line 454
|
|
;453:
|
|
;454: if ( !hit->touch && !ent->touch ) {
|
|
ADDRLP4 5248
|
|
CNSTI4 648
|
|
ASGNI4
|
|
ADDRLP4 5252
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 5248
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 5252
|
|
INDIRU4
|
|
NEU4 $240
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 5248
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 5252
|
|
INDIRU4
|
|
NEU4 $240
|
|
line 455
|
|
;455: continue;
|
|
ADDRGP4 $237
|
|
JUMPV
|
|
LABELV $240
|
|
line 457
|
|
;456: }
|
|
;457: if ( !( hit->r.contents & CONTENTS_TRIGGER ) ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 340
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1024
|
|
BANDI4
|
|
CNSTI4 0
|
|
NEI4 $242
|
|
line 458
|
|
;458: continue;
|
|
ADDRGP4 $237
|
|
JUMPV
|
|
LABELV $242
|
|
line 462
|
|
;459: }
|
|
;460:
|
|
;461: // ignore most entities if a spectator
|
|
;462: if ( ent->client->sess.sessionTeam == TEAM_SPECTATOR ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $244
|
|
line 463
|
|
;463: if ( hit->s.eType != ET_TELEPORT_TRIGGER &&
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 11
|
|
EQI4 $246
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 648
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRGP4 Touch_DoorTrigger
|
|
CVPU4 4
|
|
EQU4 $246
|
|
line 466
|
|
;464: // this is ugly but adding a new ET_? type will
|
|
;465: // most likely cause network incompatibilities
|
|
;466: hit->touch != Touch_DoorTrigger) {
|
|
line 467
|
|
;467: continue;
|
|
ADDRGP4 $237
|
|
JUMPV
|
|
LABELV $246
|
|
line 469
|
|
;468: }
|
|
;469: }
|
|
LABELV $244
|
|
line 473
|
|
;470:
|
|
;471: // use seperate code for determining if an item is picked up
|
|
;472: // so you don't have to actually contact its bounding box
|
|
;473: if ( hit->s.eType == ET_ITEM ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
NEI4 $248
|
|
line 474
|
|
;474: if ( !BG_PlayerTouchesItem( &ent->client->ps, &hit->s, level.time ) ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 5256
|
|
ADDRGP4 BG_PlayerTouchesItem
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 5256
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $249
|
|
line 475
|
|
;475: continue;
|
|
ADDRGP4 $237
|
|
JUMPV
|
|
line 477
|
|
;476: }
|
|
;477: } else {
|
|
LABELV $248
|
|
line 478
|
|
;478: if ( !trap_EntityContact( mins, maxs, hit ) ) {
|
|
ADDRLP4 1088
|
|
ARGP4
|
|
ADDRLP4 1100
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 5256
|
|
ADDRGP4 trap_EntityContact
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 5256
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $253
|
|
line 479
|
|
;479: continue;
|
|
ADDRGP4 $237
|
|
JUMPV
|
|
LABELV $253
|
|
line 481
|
|
;480: }
|
|
;481: }
|
|
LABELV $249
|
|
line 483
|
|
;482:
|
|
;483: memset( &trace, 0, sizeof(trace) );
|
|
ADDRLP4 8
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
CNSTI4 1080
|
|
ARGI4
|
|
ADDRGP4 memset
|
|
CALLP4
|
|
pop
|
|
line 485
|
|
;484:
|
|
;485: if ( hit->touch ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 648
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $255
|
|
line 486
|
|
;486: hit->touch (hit, ent, &trace);
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 648
|
|
ADDP4
|
|
INDIRP4
|
|
CALLV
|
|
pop
|
|
line 487
|
|
;487: }
|
|
LABELV $255
|
|
line 489
|
|
;488:
|
|
;489: if ( ( ent->r.svFlags & SVF_BOT ) && ( ent->touch ) ) {
|
|
ADDRLP4 5256
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 5256
|
|
INDIRP4
|
|
CNSTI4 304
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 8
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $257
|
|
ADDRLP4 5256
|
|
INDIRP4
|
|
CNSTI4 648
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $257
|
|
line 490
|
|
;490: ent->touch( ent, hit, &trace );
|
|
ADDRLP4 5260
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 5260
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRLP4 5260
|
|
INDIRP4
|
|
CNSTI4 648
|
|
ADDP4
|
|
INDIRP4
|
|
CALLV
|
|
pop
|
|
line 491
|
|
;491: }
|
|
LABELV $257
|
|
line 492
|
|
;492: }
|
|
LABELV $237
|
|
line 451
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $239
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRLP4 1112
|
|
INDIRI4
|
|
LTI4 $236
|
|
line 495
|
|
;493:
|
|
;494: // if we didn't touch a jump pad this pmove frame
|
|
;495: if ( ent->client->ps.jumppad_frame != ent->client->ps.pmove_framecount ) {
|
|
ADDRLP4 5248
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 5248
|
|
INDIRP4
|
|
CNSTI4 492
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 5248
|
|
INDIRP4
|
|
CNSTI4 488
|
|
ADDP4
|
|
INDIRI4
|
|
EQI4 $259
|
|
line 496
|
|
;496: ent->client->ps.jumppad_frame = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 492
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 497
|
|
;497: ent->client->ps.jumppad_ent = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 480
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 498
|
|
;498: }
|
|
LABELV $259
|
|
line 499
|
|
;499:}
|
|
LABELV $218
|
|
endproc G_TouchTriggers 5264 16
|
|
lit
|
|
align 4
|
|
LABELV $262
|
|
byte 4 1109393408
|
|
byte 4 1109393408
|
|
byte 4 1112539136
|
|
export G_MoverTouchPushTriggers
|
|
code
|
|
proc G_MoverTouchPushTriggers 5328 16
|
|
line 511
|
|
;500:
|
|
;501:
|
|
;502:/*
|
|
;503:============
|
|
;504:G_MoverTouchTriggers
|
|
;505:
|
|
;506:Find all trigger entities that ent's current position touches.
|
|
;507:Spectators will only interact with teleporters.
|
|
;508:============
|
|
;509:*/
|
|
;510:void G_MoverTouchPushTriggers( gentity_t *ent, vec3_t oldOrg )
|
|
;511:{
|
|
line 518
|
|
;512: int i, num;
|
|
;513: float step, stepSize, dist;
|
|
;514: int touch[MAX_GENTITIES];
|
|
;515: gentity_t *hit;
|
|
;516: trace_t trace;
|
|
;517: vec3_t mins, maxs, dir, size, checkSpot;
|
|
;518: const vec3_t range = { 40, 40, 52 };
|
|
ADDRLP4 5224
|
|
ADDRGP4 $262
|
|
INDIRB
|
|
ASGNB 12
|
|
line 521
|
|
;519:
|
|
;520: // non-moving movers don't hit triggers!
|
|
;521: if ( !VectorLengthSquared( ent->s.pos.trDelta ) )
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 36
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 5272
|
|
ADDRGP4 VectorLengthSquared
|
|
CALLF4
|
|
ASGNF4
|
|
ADDRLP4 5272
|
|
INDIRF4
|
|
CNSTF4 0
|
|
NEF4 $263
|
|
line 522
|
|
;522: {
|
|
line 523
|
|
;523: return;
|
|
ADDRGP4 $261
|
|
JUMPV
|
|
LABELV $263
|
|
line 526
|
|
;524: }
|
|
;525:
|
|
;526: VectorSubtract( ent->r.mins, ent->r.maxs, size );
|
|
ADDRLP4 5276
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 5260
|
|
ADDRLP4 5276
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 5276
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 5260+4
|
|
ADDRLP4 5276
|
|
INDIRP4
|
|
CNSTI4 320
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 5276
|
|
INDIRP4
|
|
CNSTI4 332
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 5280
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 5260+8
|
|
ADDRLP4 5280
|
|
INDIRP4
|
|
CNSTI4 324
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 5280
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 527
|
|
;527: stepSize = VectorLength( size );
|
|
ADDRLP4 5260
|
|
ARGP4
|
|
ADDRLP4 5284
|
|
ADDRGP4 VectorLength
|
|
CALLF4
|
|
ASGNF4
|
|
ADDRLP4 5252
|
|
ADDRLP4 5284
|
|
INDIRF4
|
|
ASGNF4
|
|
line 528
|
|
;528: if ( stepSize < 1 )
|
|
ADDRLP4 5252
|
|
INDIRF4
|
|
CNSTF4 1065353216
|
|
GEF4 $267
|
|
line 529
|
|
;529: {
|
|
line 530
|
|
;530: stepSize = 1;
|
|
ADDRLP4 5252
|
|
CNSTF4 1065353216
|
|
ASGNF4
|
|
line 531
|
|
;531: }
|
|
LABELV $267
|
|
line 533
|
|
;532:
|
|
;533: VectorSubtract( ent->r.currentOrigin, oldOrg, dir );
|
|
ADDRLP4 5288
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 5292
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 5240
|
|
ADDRLP4 5288
|
|
INDIRP4
|
|
CNSTI4 368
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 5292
|
|
INDIRP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 5240+4
|
|
ADDRLP4 5288
|
|
INDIRP4
|
|
CNSTI4 372
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 5292
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 5240+8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 376
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 8
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 534
|
|
;534: dist = VectorNormalize( dir );
|
|
ADDRLP4 5240
|
|
ARGP4
|
|
ADDRLP4 5296
|
|
ADDRGP4 VectorNormalize
|
|
CALLF4
|
|
ASGNF4
|
|
ADDRLP4 5256
|
|
ADDRLP4 5296
|
|
INDIRF4
|
|
ASGNF4
|
|
line 535
|
|
;535: for ( step = 0; step <= dist; step += stepSize )
|
|
ADDRLP4 5236
|
|
CNSTF4 0
|
|
ASGNF4
|
|
ADDRGP4 $274
|
|
JUMPV
|
|
LABELV $271
|
|
line 536
|
|
;536: {
|
|
line 537
|
|
;537: VectorMA( ent->r.currentOrigin, step, dir, checkSpot );
|
|
ADDRLP4 5300
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1112
|
|
ADDRLP4 5300
|
|
INDIRP4
|
|
CNSTI4 368
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 5240
|
|
INDIRF4
|
|
ADDRLP4 5236
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 1112+4
|
|
ADDRLP4 5300
|
|
INDIRP4
|
|
CNSTI4 372
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 5240+4
|
|
INDIRF4
|
|
ADDRLP4 5236
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 1112+8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 376
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 5240+8
|
|
INDIRF4
|
|
ADDRLP4 5236
|
|
INDIRF4
|
|
MULF4
|
|
ADDF4
|
|
ASGNF4
|
|
line 538
|
|
;538: VectorSubtract( checkSpot, range, mins );
|
|
ADDRLP4 1088
|
|
ADDRLP4 1112
|
|
INDIRF4
|
|
ADDRLP4 5224
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 1088+4
|
|
ADDRLP4 1112+4
|
|
INDIRF4
|
|
ADDRLP4 5224+4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 1088+8
|
|
ADDRLP4 1112+8
|
|
INDIRF4
|
|
ADDRLP4 5224+8
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 539
|
|
;539: VectorAdd( checkSpot, range, maxs );
|
|
ADDRLP4 1100
|
|
ADDRLP4 1112
|
|
INDIRF4
|
|
ADDRLP4 5224
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 1100+4
|
|
ADDRLP4 1112+4
|
|
INDIRF4
|
|
ADDRLP4 5224+4
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 1100+8
|
|
ADDRLP4 1112+8
|
|
INDIRF4
|
|
ADDRLP4 5224+8
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
line 541
|
|
;540:
|
|
;541: num = trap_EntitiesInBox( mins, maxs, touch, MAX_GENTITIES );
|
|
ADDRLP4 1088
|
|
ARGP4
|
|
ADDRLP4 1100
|
|
ARGP4
|
|
ADDRLP4 1128
|
|
ARGP4
|
|
CNSTI4 1024
|
|
ARGI4
|
|
ADDRLP4 5308
|
|
ADDRGP4 trap_EntitiesInBox
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 1124
|
|
ADDRLP4 5308
|
|
INDIRI4
|
|
ASGNI4
|
|
line 544
|
|
;542:
|
|
;543: // can't use ent->r.absmin, because that has a one unit pad
|
|
;544: VectorAdd( checkSpot, ent->r.mins, mins );
|
|
ADDRLP4 5312
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1088
|
|
ADDRLP4 1112
|
|
INDIRF4
|
|
ADDRLP4 5312
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 1088+4
|
|
ADDRLP4 1112+4
|
|
INDIRF4
|
|
ADDRLP4 5312
|
|
INDIRP4
|
|
CNSTI4 320
|
|
ADDP4
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 1088+8
|
|
ADDRLP4 1112+8
|
|
INDIRF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 324
|
|
ADDP4
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
line 545
|
|
;545: VectorAdd( checkSpot, ent->r.maxs, maxs );
|
|
ADDRLP4 5316
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1100
|
|
ADDRLP4 1112
|
|
INDIRF4
|
|
ADDRLP4 5316
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 1100+4
|
|
ADDRLP4 1112+4
|
|
INDIRF4
|
|
ADDRLP4 5316
|
|
INDIRP4
|
|
CNSTI4 332
|
|
ADDP4
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
ADDRLP4 1100+8
|
|
ADDRLP4 1112+8
|
|
INDIRF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 336
|
|
ADDP4
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
line 547
|
|
;546:
|
|
;547: for ( i=0 ; i<num ; i++ )
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $302
|
|
JUMPV
|
|
LABELV $299
|
|
line 548
|
|
;548: {
|
|
line 549
|
|
;549: hit = &g_entities[touch[i]];
|
|
ADDRLP4 0
|
|
CNSTI4 828
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRLP4 1128
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ASGNP4
|
|
line 551
|
|
;550:
|
|
;551: if ( hit->s.eType != ET_PUSH_TRIGGER )
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 10
|
|
EQI4 $303
|
|
line 552
|
|
;552: {
|
|
line 553
|
|
;553: continue;
|
|
ADDRGP4 $300
|
|
JUMPV
|
|
LABELV $303
|
|
line 556
|
|
;554: }
|
|
;555:
|
|
;556: if ( hit->touch == NULL )
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 648
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $305
|
|
line 557
|
|
;557: {
|
|
line 558
|
|
;558: continue;
|
|
ADDRGP4 $300
|
|
JUMPV
|
|
LABELV $305
|
|
line 561
|
|
;559: }
|
|
;560:
|
|
;561: if ( !( hit->r.contents & CONTENTS_TRIGGER ) )
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 340
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1024
|
|
BANDI4
|
|
CNSTI4 0
|
|
NEI4 $307
|
|
line 562
|
|
;562: {
|
|
line 563
|
|
;563: continue;
|
|
ADDRGP4 $300
|
|
JUMPV
|
|
LABELV $307
|
|
line 567
|
|
;564: }
|
|
;565:
|
|
;566:
|
|
;567: if ( !trap_EntityContact( mins, maxs, hit ) )
|
|
ADDRLP4 1088
|
|
ARGP4
|
|
ADDRLP4 1100
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 5320
|
|
ADDRGP4 trap_EntityContact
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 5320
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $309
|
|
line 568
|
|
;568: {
|
|
line 569
|
|
;569: continue;
|
|
ADDRGP4 $300
|
|
JUMPV
|
|
LABELV $309
|
|
line 572
|
|
;570: }
|
|
;571:
|
|
;572: memset( &trace, 0, sizeof(trace) );
|
|
ADDRLP4 8
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
CNSTI4 1080
|
|
ARGI4
|
|
ADDRGP4 memset
|
|
CALLP4
|
|
pop
|
|
line 574
|
|
;573:
|
|
;574: if ( hit->touch != NULL )
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 648
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $311
|
|
line 575
|
|
;575: {
|
|
line 576
|
|
;576: hit->touch(hit, ent, &trace);
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 648
|
|
ADDP4
|
|
INDIRP4
|
|
CALLV
|
|
pop
|
|
line 577
|
|
;577: }
|
|
LABELV $311
|
|
line 578
|
|
;578: }
|
|
LABELV $300
|
|
line 547
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $302
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRLP4 1124
|
|
INDIRI4
|
|
LTI4 $299
|
|
line 579
|
|
;579: }
|
|
LABELV $272
|
|
line 535
|
|
ADDRLP4 5236
|
|
ADDRLP4 5236
|
|
INDIRF4
|
|
ADDRLP4 5252
|
|
INDIRF4
|
|
ADDF4
|
|
ASGNF4
|
|
LABELV $274
|
|
ADDRLP4 5236
|
|
INDIRF4
|
|
ADDRLP4 5256
|
|
INDIRF4
|
|
LEF4 $271
|
|
line 580
|
|
;580:}
|
|
LABELV $261
|
|
endproc G_MoverTouchPushTriggers 5328 16
|
|
export SpectatorThink
|
|
proc SpectatorThink 396 12
|
|
line 587
|
|
;581:
|
|
;582:/*
|
|
;583:=================
|
|
;584:SpectatorThink
|
|
;585:=================
|
|
;586:*/
|
|
;587:void SpectatorThink( gentity_t *ent, usercmd_t *ucmd ) {
|
|
line 591
|
|
;588: pmove_t pm;
|
|
;589: gclient_t *client;
|
|
;590:
|
|
;591: client = ent->client;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 593
|
|
;592:
|
|
;593: if ( client->sess.spectatorState != SPECTATOR_FOLLOW ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1528
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
EQI4 $314
|
|
line 594
|
|
;594: client->ps.pm_type = PM_SPECTATOR;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
CNSTI4 3
|
|
ASGNI4
|
|
line 595
|
|
;595: client->ps.speed = 400; // faster than normal
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 60
|
|
ADDP4
|
|
CNSTI4 400
|
|
ASGNI4
|
|
line 596
|
|
;596: client->ps.basespeed = 400;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 64
|
|
ADDP4
|
|
CNSTI4 400
|
|
ASGNI4
|
|
line 599
|
|
;597:
|
|
;598: // set up for pmove
|
|
;599: memset (&pm, 0, sizeof(pm));
|
|
ADDRLP4 4
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
CNSTI4 376
|
|
ARGI4
|
|
ADDRGP4 memset
|
|
CALLP4
|
|
pop
|
|
line 600
|
|
;600: pm.ps = &client->ps;
|
|
ADDRLP4 4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
line 601
|
|
;601: pm.cmd = *ucmd;
|
|
ADDRLP4 4+4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
INDIRB
|
|
ASGNB 28
|
|
line 602
|
|
;602: pm.tracemask = MASK_PLAYERSOLID & ~CONTENTS_BODY; // spectators can fly through bodies
|
|
ADDRLP4 4+32
|
|
CNSTI4 17
|
|
ASGNI4
|
|
line 603
|
|
;603: pm.trace = trap_Trace;
|
|
ADDRLP4 4+240
|
|
ADDRGP4 trap_Trace
|
|
ASGNP4
|
|
line 604
|
|
;604: pm.pointcontents = trap_PointContents;
|
|
ADDRLP4 4+244
|
|
ADDRGP4 trap_PointContents
|
|
ASGNP4
|
|
line 606
|
|
;605:
|
|
;606: pm.animations = NULL;
|
|
ADDRLP4 4+224
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 609
|
|
;607:
|
|
;608: // perform a pmove
|
|
;609: Pmove (&pm);
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRGP4 Pmove
|
|
CALLV
|
|
pop
|
|
line 611
|
|
;610: // save results of pmove
|
|
;611: VectorCopy( client->ps.origin, ent->s.origin );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 92
|
|
ADDP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 613
|
|
;612:
|
|
;613: G_TouchTriggers( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_TouchTriggers
|
|
CALLV
|
|
pop
|
|
line 614
|
|
;614: trap_UnlinkEntity( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_UnlinkEntity
|
|
CALLV
|
|
pop
|
|
line 615
|
|
;615: }
|
|
LABELV $314
|
|
line 617
|
|
;616:
|
|
;617: client->oldbuttons = client->buttons;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1588
|
|
ADDP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1584
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 618
|
|
;618: client->buttons = ucmd->buttons;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1584
|
|
ADDP4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 16
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 621
|
|
;619:
|
|
;620: // attack button cycles through spectators
|
|
;621: if ( ( client->buttons & BUTTON_ATTACK ) && ! ( client->oldbuttons & BUTTON_ATTACK ) ) {
|
|
ADDRLP4 388
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRLP4 392
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1584
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 388
|
|
INDIRI4
|
|
BANDI4
|
|
ADDRLP4 392
|
|
INDIRI4
|
|
EQI4 $321
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1588
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 388
|
|
INDIRI4
|
|
BANDI4
|
|
ADDRLP4 392
|
|
INDIRI4
|
|
NEI4 $321
|
|
line 622
|
|
;622: Cmd_FollowCycle_f( ent, 1 );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 Cmd_FollowCycle_f
|
|
CALLV
|
|
pop
|
|
line 623
|
|
;623: }
|
|
LABELV $321
|
|
line 625
|
|
;624:
|
|
;625: if (client->sess.spectatorState == SPECTATOR_FOLLOW && (ucmd->upmove > 0))
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1528
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
NEI4 $323
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 26
|
|
ADDP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
LEI4 $323
|
|
line 626
|
|
;626: { //jump now removes you from follow mode
|
|
line 627
|
|
;627: StopFollowing(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 StopFollowing
|
|
CALLV
|
|
pop
|
|
line 628
|
|
;628: }
|
|
LABELV $323
|
|
line 629
|
|
;629:}
|
|
LABELV $313
|
|
endproc SpectatorThink 396 12
|
|
export ClientInactivityTimer
|
|
proc ClientInactivityTimer 12 8
|
|
line 640
|
|
;630:
|
|
;631:
|
|
;632:
|
|
;633:/*
|
|
;634:=================
|
|
;635:ClientInactivityTimer
|
|
;636:
|
|
;637:Returns qfalse if the client is dropped
|
|
;638:=================
|
|
;639:*/
|
|
;640:qboolean ClientInactivityTimer( gclient_t *client ) {
|
|
line 641
|
|
;641: if ( ! g_inactivity.integer ) {
|
|
ADDRGP4 g_inactivity+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $326
|
|
line 644
|
|
;642: // give everyone some time, so if the operator sets g_inactivity during
|
|
;643: // gameplay, everyone isn't kicked
|
|
;644: client->inactivityTime = level.time + 60 * 1000;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 1676
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 60000
|
|
ADDI4
|
|
ASGNI4
|
|
line 645
|
|
;645: client->inactivityWarning = qfalse;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 1680
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 646
|
|
;646: } else if ( client->pers.cmd.forwardmove ||
|
|
ADDRGP4 $327
|
|
JUMPV
|
|
LABELV $326
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1396
|
|
ADDP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
NEI4 $334
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1397
|
|
ADDP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
NEI4 $334
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1398
|
|
ADDP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
NEI4 $334
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1388
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 129
|
|
BANDI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
EQI4 $330
|
|
LABELV $334
|
|
line 649
|
|
;647: client->pers.cmd.rightmove ||
|
|
;648: client->pers.cmd.upmove ||
|
|
;649: (client->pers.cmd.buttons & (BUTTON_ATTACK|BUTTON_ALT_ATTACK)) ) {
|
|
line 650
|
|
;650: client->inactivityTime = level.time + g_inactivity.integer * 1000;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 1676
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 1000
|
|
ADDRGP4 g_inactivity+12
|
|
INDIRI4
|
|
MULI4
|
|
ADDI4
|
|
ASGNI4
|
|
line 651
|
|
;651: client->inactivityWarning = qfalse;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 1680
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 652
|
|
;652: } else if ( !client->pers.localClient ) {
|
|
ADDRGP4 $331
|
|
JUMPV
|
|
LABELV $330
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 1400
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $337
|
|
line 653
|
|
;653: if ( level.time > client->inactivityTime ) {
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 1676
|
|
ADDP4
|
|
INDIRI4
|
|
LEI4 $339
|
|
line 654
|
|
;654: trap_DropClient( client - level.clients, "Dropped due to inactivity" );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
CVPU4 4
|
|
SUBU4
|
|
CVUI4 4
|
|
CNSTI4 1756
|
|
DIVI4
|
|
ARGI4
|
|
ADDRGP4 $342
|
|
ARGP4
|
|
ADDRGP4 trap_DropClient
|
|
CALLV
|
|
pop
|
|
line 655
|
|
;655: return qfalse;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $325
|
|
JUMPV
|
|
LABELV $339
|
|
line 657
|
|
;656: }
|
|
;657: if ( level.time > client->inactivityTime - 10000 && !client->inactivityWarning ) {
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 1676
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 10000
|
|
SUBI4
|
|
LEI4 $343
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 1680
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $343
|
|
line 658
|
|
;658: client->inactivityWarning = qtrue;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 1680
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 659
|
|
;659: trap_SendServerCommand( client - level.clients, "cp \"Ten seconds until inactivity drop!\n\"" );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
CVPU4 4
|
|
SUBU4
|
|
CVUI4 4
|
|
CNSTI4 1756
|
|
DIVI4
|
|
ARGI4
|
|
ADDRGP4 $346
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 660
|
|
;660: }
|
|
LABELV $343
|
|
line 661
|
|
;661: }
|
|
LABELV $337
|
|
LABELV $331
|
|
LABELV $327
|
|
line 662
|
|
;662: return qtrue;
|
|
CNSTI4 1
|
|
RETI4
|
|
LABELV $325
|
|
endproc ClientInactivityTimer 12 8
|
|
export ClientTimerActions
|
|
proc ClientTimerActions 20 0
|
|
line 672
|
|
;663:}
|
|
;664:
|
|
;665:/*
|
|
;666:==================
|
|
;667:ClientTimerActions
|
|
;668:
|
|
;669:Actions that happen once a second
|
|
;670:==================
|
|
;671:*/
|
|
;672:void ClientTimerActions( gentity_t *ent, int msec ) {
|
|
line 675
|
|
;673: gclient_t *client;
|
|
;674:
|
|
;675: client = ent->client;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 676
|
|
;676: client->timeResidual += msec;
|
|
ADDRLP4 4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1708
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
INDIRI4
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ADDI4
|
|
ASGNI4
|
|
ADDRGP4 $349
|
|
JUMPV
|
|
LABELV $348
|
|
line 679
|
|
;677:
|
|
;678: while ( client->timeResidual >= 1000 )
|
|
;679: {
|
|
line 680
|
|
;680: client->timeResidual -= 1000;
|
|
ADDRLP4 8
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1708
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1000
|
|
SUBI4
|
|
ASGNI4
|
|
line 683
|
|
;681:
|
|
;682: // count down health when over max
|
|
;683: if ( ent->health > client->ps.stats[STAT_MAX_HEALTH] ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 248
|
|
ADDP4
|
|
INDIRI4
|
|
LEI4 $351
|
|
line 684
|
|
;684: ent->health--;
|
|
ADDRLP4 12
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
SUBI4
|
|
ASGNI4
|
|
line 685
|
|
;685: }
|
|
LABELV $351
|
|
line 688
|
|
;686:
|
|
;687: // count down armor when over max
|
|
;688: if ( client->ps.stats[STAT_ARMOR] > client->ps.stats[STAT_MAX_HEALTH] ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 236
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 248
|
|
ADDP4
|
|
INDIRI4
|
|
LEI4 $353
|
|
line 689
|
|
;689: client->ps.stats[STAT_ARMOR]--;
|
|
ADDRLP4 16
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 236
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
SUBI4
|
|
ASGNI4
|
|
line 690
|
|
;690: }
|
|
LABELV $353
|
|
line 691
|
|
;691: }
|
|
LABELV $349
|
|
line 678
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1708
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1000
|
|
GEI4 $348
|
|
line 692
|
|
;692:}
|
|
LABELV $347
|
|
endproc ClientTimerActions 20 0
|
|
export ClientIntermissionThink
|
|
proc ClientIntermissionThink 24 0
|
|
line 699
|
|
;693:
|
|
;694:/*
|
|
;695:====================
|
|
;696:ClientIntermissionThink
|
|
;697:====================
|
|
;698:*/
|
|
;699:void ClientIntermissionThink( gclient_t *client ) {
|
|
line 700
|
|
;700: client->ps.eFlags &= ~EF_TALK;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 108
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 -4097
|
|
BANDI4
|
|
ASGNI4
|
|
line 701
|
|
;701: client->ps.eFlags &= ~EF_FIRING;
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 108
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 -257
|
|
BANDI4
|
|
ASGNI4
|
|
line 706
|
|
;702:
|
|
;703: // the level will exit when everyone wants to or after timeouts
|
|
;704:
|
|
;705: // swap and latch button actions
|
|
;706: client->oldbuttons = client->buttons;
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 1588
|
|
ADDP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 1584
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 707
|
|
;707: client->buttons = client->pers.cmd.buttons;
|
|
ADDRLP4 12
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 1584
|
|
ADDP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 1388
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 708
|
|
;708: if ( client->buttons & ( BUTTON_ATTACK | BUTTON_USE_HOLDABLE ) & ( client->oldbuttons ^ client->buttons ) ) {
|
|
ADDRLP4 16
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 20
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CNSTI4 1584
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
CNSTI4 5
|
|
BANDI4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CNSTI4 1588
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
BXORI4
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $356
|
|
line 710
|
|
;709: // this used to be an ^1 but once a player says ready, it should stick
|
|
;710: client->readyToExit = 1;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 1572
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 711
|
|
;711: }
|
|
LABELV $356
|
|
line 712
|
|
;712:}
|
|
LABELV $355
|
|
endproc ClientIntermissionThink 24 0
|
|
export ClientEvents
|
|
proc ClientEvents 68 32
|
|
line 723
|
|
;713:
|
|
;714:
|
|
;715:/*
|
|
;716:================
|
|
;717:ClientEvents
|
|
;718:
|
|
;719:Events will be passed on to the clients for presentation,
|
|
;720:but any server game effects are handled here
|
|
;721:================
|
|
;722:*/
|
|
;723:void ClientEvents( gentity_t *ent, int oldEventSequence ) {
|
|
line 734
|
|
;724: int i;//, j;
|
|
;725: int event;
|
|
;726: gclient_t *client;
|
|
;727: int damage;
|
|
;728: vec3_t dir;
|
|
;729:// vec3_t origin, angles;
|
|
;730:// qboolean fired;
|
|
;731:// gitem_t *item;
|
|
;732:// gentity_t *drop;
|
|
;733:
|
|
;734: client = ent->client;
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 736
|
|
;735:
|
|
;736: if ( oldEventSequence < client->ps.eventSequence - MAX_PS_EVENTS ) {
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 112
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
SUBI4
|
|
GEI4 $359
|
|
line 737
|
|
;737: oldEventSequence = client->ps.eventSequence - MAX_PS_EVENTS;
|
|
ADDRFP4 4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 112
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
SUBI4
|
|
ASGNI4
|
|
line 738
|
|
;738: }
|
|
LABELV $359
|
|
line 739
|
|
;739: for ( i = oldEventSequence ; i < client->ps.eventSequence ; i++ ) {
|
|
ADDRLP4 0
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRGP4 $364
|
|
JUMPV
|
|
LABELV $361
|
|
line 740
|
|
;740: event = client->ps.events[ i & (MAX_PS_EVENTS-1) ];
|
|
ADDRLP4 4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
BANDI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 116
|
|
ADDP4
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 742
|
|
;741:
|
|
;742: switch ( event ) {
|
|
ADDRLP4 32
|
|
CNSTI4 15
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
EQI4 $367
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
GTI4 $393
|
|
LABELV $392
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 11
|
|
EQI4 $367
|
|
ADDRGP4 $366
|
|
JUMPV
|
|
LABELV $393
|
|
ADDRLP4 40
|
|
CNSTI4 24
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRLP4 40
|
|
INDIRI4
|
|
EQI4 $380
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 25
|
|
EQI4 $382
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 26
|
|
EQI4 $384
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRLP4 40
|
|
INDIRI4
|
|
LTI4 $366
|
|
LABELV $394
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 41
|
|
LTI4 $366
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 46
|
|
GTI4 $366
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 $395-164
|
|
ADDP4
|
|
INDIRP4
|
|
JUMPV
|
|
lit
|
|
align 4
|
|
LABELV $395
|
|
address $386
|
|
address $387
|
|
address $388
|
|
address $366
|
|
address $390
|
|
address $391
|
|
code
|
|
LABELV $367
|
|
line 745
|
|
;743: case EV_FALL:
|
|
;744: case EV_ROLL:
|
|
;745: {
|
|
line 746
|
|
;746: int delta = client->ps.eventParms[ i & (MAX_PS_EVENTS-1) ];
|
|
ADDRLP4 48
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
BANDI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 124
|
|
ADDP4
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 748
|
|
;747:
|
|
;748: if (ent->client && ent->client->ps.fallingToDeath)
|
|
ADDRLP4 52
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 52
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $368
|
|
ADDRLP4 52
|
|
INDIRP4
|
|
CNSTI4 1340
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $368
|
|
line 749
|
|
;749: {
|
|
line 750
|
|
;750: break;
|
|
ADDRGP4 $366
|
|
JUMPV
|
|
LABELV $368
|
|
line 753
|
|
;751: }
|
|
;752:
|
|
;753: if ( ent->s.eType != ET_PLAYER )
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
EQI4 $370
|
|
line 754
|
|
;754: {
|
|
line 755
|
|
;755: break; // not in the player model
|
|
ADDRGP4 $366
|
|
JUMPV
|
|
LABELV $370
|
|
line 758
|
|
;756: }
|
|
;757:
|
|
;758: if ( g_dmflags.integer & DF_NO_FALLING )
|
|
ADDRGP4 g_dmflags+12
|
|
INDIRI4
|
|
CNSTI4 8
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $372
|
|
line 759
|
|
;759: {
|
|
line 760
|
|
;760: break;
|
|
ADDRGP4 $366
|
|
JUMPV
|
|
LABELV $372
|
|
line 763
|
|
;761: }
|
|
;762:
|
|
;763: if (delta <= 44)
|
|
ADDRLP4 48
|
|
INDIRI4
|
|
CNSTI4 44
|
|
GTI4 $375
|
|
line 764
|
|
;764: {
|
|
line 765
|
|
;765: break;
|
|
ADDRGP4 $366
|
|
JUMPV
|
|
LABELV $375
|
|
line 768
|
|
;766: }
|
|
;767:
|
|
;768: damage = delta*0.16; //good enough for now, I guess
|
|
ADDRLP4 24
|
|
CNSTF4 1042536202
|
|
ADDRLP4 48
|
|
INDIRI4
|
|
CVIF4 4
|
|
MULF4
|
|
CVFI4 4
|
|
ASGNI4
|
|
line 770
|
|
;769:
|
|
;770: VectorSet (dir, 0, 0, 1);
|
|
ADDRLP4 56
|
|
CNSTF4 0
|
|
ASGNF4
|
|
ADDRLP4 12
|
|
ADDRLP4 56
|
|
INDIRF4
|
|
ASGNF4
|
|
ADDRLP4 12+4
|
|
ADDRLP4 56
|
|
INDIRF4
|
|
ASGNF4
|
|
ADDRLP4 12+8
|
|
CNSTF4 1065353216
|
|
ASGNF4
|
|
line 771
|
|
;771: ent->pain_debounce_time = level.time + 200; // no normal pain sound
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 664
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 200
|
|
ADDI4
|
|
ASGNI4
|
|
line 772
|
|
;772: G_Damage (ent, NULL, NULL, NULL, NULL, damage, DAMAGE_NO_ARMOR, MOD_FALLING);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 60
|
|
CNSTP4 0
|
|
ASGNP4
|
|
ADDRLP4 60
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 60
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 64
|
|
CNSTP4 0
|
|
ASGNP4
|
|
ADDRLP4 64
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 64
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
ARGI4
|
|
CNSTI4 2
|
|
ARGI4
|
|
CNSTI4 34
|
|
ARGI4
|
|
ADDRGP4 G_Damage
|
|
CALLV
|
|
pop
|
|
line 773
|
|
;773: }
|
|
line 774
|
|
;774: break;
|
|
ADDRGP4 $366
|
|
JUMPV
|
|
LABELV $380
|
|
line 776
|
|
;775: case EV_FIRE_WEAPON:
|
|
;776: FireWeapon( ent, qfalse );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 FireWeapon
|
|
CALLV
|
|
pop
|
|
line 777
|
|
;777: ent->client->dangerTime = level.time;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1748
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 778
|
|
;778: ent->client->ps.eFlags &= ~EF_INVULNERABLE;
|
|
ADDRLP4 48
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 108
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 48
|
|
INDIRP4
|
|
ADDRLP4 48
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 -67108865
|
|
BANDI4
|
|
ASGNI4
|
|
line 779
|
|
;779: ent->client->invulnerableTimer = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1564
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 780
|
|
;780: break;
|
|
ADDRGP4 $366
|
|
JUMPV
|
|
LABELV $382
|
|
line 783
|
|
;781:
|
|
;782: case EV_ALT_FIRE:
|
|
;783: FireWeapon( ent, qtrue );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 FireWeapon
|
|
CALLV
|
|
pop
|
|
line 784
|
|
;784: ent->client->dangerTime = level.time;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1748
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 785
|
|
;785: ent->client->ps.eFlags &= ~EF_INVULNERABLE;
|
|
ADDRLP4 52
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 108
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 52
|
|
INDIRP4
|
|
ADDRLP4 52
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 -67108865
|
|
BANDI4
|
|
ASGNI4
|
|
line 786
|
|
;786: ent->client->invulnerableTimer = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1564
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 787
|
|
;787: break;
|
|
ADDRGP4 $366
|
|
JUMPV
|
|
LABELV $384
|
|
line 790
|
|
;788:
|
|
;789: case EV_SABER_ATTACK:
|
|
;790: ent->client->dangerTime = level.time;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1748
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 791
|
|
;791: ent->client->ps.eFlags &= ~EF_INVULNERABLE;
|
|
ADDRLP4 56
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 108
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 56
|
|
INDIRP4
|
|
ADDRLP4 56
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 -67108865
|
|
BANDI4
|
|
ASGNI4
|
|
line 792
|
|
;792: ent->client->invulnerableTimer = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1564
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 793
|
|
;793: break;
|
|
ADDRGP4 $366
|
|
JUMPV
|
|
LABELV $386
|
|
line 797
|
|
;794:
|
|
;795: //rww - Note that these must be in the same order (ITEM#-wise) as they are in holdable_t
|
|
;796: case EV_USE_ITEM1: //seeker droid
|
|
;797: ItemUse_Seeker(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ItemUse_Seeker
|
|
CALLV
|
|
pop
|
|
line 798
|
|
;798: break;
|
|
ADDRGP4 $366
|
|
JUMPV
|
|
LABELV $387
|
|
line 800
|
|
;799: case EV_USE_ITEM2: //shield
|
|
;800: ItemUse_Shield(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ItemUse_Shield
|
|
CALLV
|
|
pop
|
|
line 801
|
|
;801: break;
|
|
ADDRGP4 $366
|
|
JUMPV
|
|
LABELV $388
|
|
line 803
|
|
;802: case EV_USE_ITEM3: //medpack
|
|
;803: ItemUse_MedPack(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ItemUse_MedPack
|
|
CALLV
|
|
pop
|
|
line 804
|
|
;804: break;
|
|
ADDRGP4 $366
|
|
JUMPV
|
|
line 807
|
|
;805: case EV_USE_ITEM4: //datapad
|
|
;806: //G_Printf("Used Datapad\n");
|
|
;807: break;
|
|
LABELV $390
|
|
line 809
|
|
;808: case EV_USE_ITEM5: //binoculars
|
|
;809: ItemUse_Binoculars(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ItemUse_Binoculars
|
|
CALLV
|
|
pop
|
|
line 810
|
|
;810: break;
|
|
ADDRGP4 $366
|
|
JUMPV
|
|
LABELV $391
|
|
line 812
|
|
;811: case EV_USE_ITEM6: //sentry gun
|
|
;812: ItemUse_Sentry(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ItemUse_Sentry
|
|
CALLV
|
|
pop
|
|
line 813
|
|
;813: break;
|
|
line 816
|
|
;814:
|
|
;815: default:
|
|
;816: break;
|
|
LABELV $366
|
|
line 818
|
|
;817: }
|
|
;818: }
|
|
LABELV $362
|
|
line 739
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $364
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 112
|
|
ADDP4
|
|
INDIRI4
|
|
LTI4 $361
|
|
line 820
|
|
;819:
|
|
;820:}
|
|
LABELV $358
|
|
endproc ClientEvents 68 32
|
|
export SendPendingPredictableEvents
|
|
proc SendPendingPredictableEvents 40 12
|
|
line 827
|
|
;821:
|
|
;822:/*
|
|
;823:==============
|
|
;824:SendPendingPredictableEvents
|
|
;825:==============
|
|
;826:*/
|
|
;827:void SendPendingPredictableEvents( playerState_t *ps ) {
|
|
line 833
|
|
;828: gentity_t *t;
|
|
;829: int event, seq;
|
|
;830: int extEvent, number;
|
|
;831:
|
|
;832: // if there are still events pending
|
|
;833: if ( ps->entityEventSequence < ps->eventSequence ) {
|
|
ADDRLP4 20
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTI4 496
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
CNSTI4 112
|
|
ADDP4
|
|
INDIRI4
|
|
GEI4 $398
|
|
line 836
|
|
;834: // create a temporary entity for this event which is sent to everyone
|
|
;835: // except the client who generated the event
|
|
;836: seq = ps->entityEventSequence & (MAX_PS_EVENTS-1);
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 496
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
BANDI4
|
|
ASGNI4
|
|
line 837
|
|
;837: event = ps->events[ seq ] | ( ( ps->entityEventSequence & 3 ) << 8 );
|
|
ADDRLP4 24
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
CNSTI4 116
|
|
ADDP4
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 24
|
|
INDIRP4
|
|
CNSTI4 496
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
BANDI4
|
|
CNSTI4 8
|
|
LSHI4
|
|
BORI4
|
|
ASGNI4
|
|
line 839
|
|
;838: // set external event to zero before calling BG_PlayerStateToEntityState
|
|
;839: extEvent = ps->externalEvent;
|
|
ADDRLP4 12
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 132
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 840
|
|
;840: ps->externalEvent = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 132
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 842
|
|
;841: // create temporary entity for event
|
|
;842: t = G_TempEntity( ps->origin, event );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 28
|
|
ADDRGP4 G_TempEntity
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
ASGNP4
|
|
line 843
|
|
;843: number = t->s.number;
|
|
ADDRLP4 16
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 844
|
|
;844: BG_PlayerStateToEntityState( ps, &t->s, qtrue );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 BG_PlayerStateToEntityState
|
|
CALLV
|
|
pop
|
|
line 845
|
|
;845: t->s.number = number;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ASGNI4
|
|
line 846
|
|
;846: t->s.eType = ET_EVENTS + event;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 16
|
|
ADDI4
|
|
ASGNI4
|
|
line 847
|
|
;847: t->s.eFlags |= EF_PLAYER_EVENT;
|
|
ADDRLP4 32
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 8
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
ADDRLP4 32
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 16
|
|
BORI4
|
|
ASGNI4
|
|
line 848
|
|
;848: t->s.otherEntityNum = ps->clientNum;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 184
|
|
ADDP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 144
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 850
|
|
;849: // send to everyone except the client who generated the event
|
|
;850: t->r.svFlags |= SVF_NOTSINGLECLIENT;
|
|
ADDRLP4 36
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 304
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 2048
|
|
BORI4
|
|
ASGNI4
|
|
line 851
|
|
;851: t->r.singleClient = ps->clientNum;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 308
|
|
ADDP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 144
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 853
|
|
;852: // set back external event
|
|
;853: ps->externalEvent = extEvent;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 132
|
|
ADDP4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
ASGNI4
|
|
line 854
|
|
;854: }
|
|
LABELV $398
|
|
line 855
|
|
;855:}
|
|
LABELV $397
|
|
endproc SendPendingPredictableEvents 40 12
|
|
proc G_UpdateForceSightBroadcasts 72 12
|
|
line 875
|
|
;856:
|
|
;857:extern int saberOffSound;
|
|
;858:extern int saberOnSound;
|
|
;859:
|
|
;860:/*
|
|
;861:==================
|
|
;862:G_UpdateClientBroadcasts
|
|
;863:
|
|
;864:Determines whether this client should be broadcast to any other clients.
|
|
;865:A client is broadcast when another client is using force sight or is
|
|
;866:==================
|
|
;867:*/
|
|
;868:#define MAX_JEDIMASTER_DISTANCE 2500
|
|
;869:#define MAX_JEDIMASTER_FOV 100
|
|
;870:
|
|
;871:#define MAX_SIGHT_DISTANCE 1500
|
|
;872:#define MAX_SIGHT_FOV 100
|
|
;873:
|
|
;874:static void G_UpdateForceSightBroadcasts ( gentity_t *self )
|
|
;875:{
|
|
line 879
|
|
;876: int i;
|
|
;877:
|
|
;878: // Any clients with force sight on should see this client
|
|
;879: for ( i = 0; i < level.numConnectedClients; i ++ )
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $404
|
|
JUMPV
|
|
LABELV $401
|
|
line 880
|
|
;880: {
|
|
line 881
|
|
;881: gentity_t *ent = &g_entities[level.sortedClients[i]];
|
|
ADDRLP4 4
|
|
CNSTI4 828
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 level+84
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ASGNP4
|
|
line 885
|
|
;882: float dist;
|
|
;883: vec3_t angles;
|
|
;884:
|
|
;885: if ( ent == self )
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
NEU4 $407
|
|
line 886
|
|
;886: {
|
|
line 887
|
|
;887: continue;
|
|
ADDRGP4 $402
|
|
JUMPV
|
|
LABELV $407
|
|
line 891
|
|
;888: }
|
|
;889:
|
|
;890: // Not using force sight so we shouldnt broadcast to this one
|
|
;891: if ( !(ent->client->ps.fd.forcePowersActive & (1<<FP_SEE) ) )
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 836
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 16384
|
|
BANDI4
|
|
CNSTI4 0
|
|
NEI4 $409
|
|
line 892
|
|
;892: {
|
|
line 893
|
|
;893: continue;
|
|
ADDRGP4 $402
|
|
JUMPV
|
|
LABELV $409
|
|
line 896
|
|
;894: }
|
|
;895:
|
|
;896: VectorSubtract( self->client->ps.origin, ent->client->ps.origin, angles );
|
|
ADDRLP4 24
|
|
CNSTI4 408
|
|
ASGNI4
|
|
ADDRLP4 28
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 32
|
|
CNSTI4 20
|
|
ASGNI4
|
|
ADDRLP4 36
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
INDIRP4
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
INDIRP4
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 40
|
|
CNSTI4 24
|
|
ASGNI4
|
|
ADDRLP4 8+4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
INDIRP4
|
|
ADDRLP4 40
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
INDIRP4
|
|
ADDRLP4 40
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 44
|
|
CNSTI4 408
|
|
ASGNI4
|
|
ADDRLP4 48
|
|
CNSTI4 28
|
|
ASGNI4
|
|
ADDRLP4 8+8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 44
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRP4
|
|
ADDRLP4 48
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 44
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRP4
|
|
ADDRLP4 48
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 897
|
|
;897: dist = VectorLengthSquared ( angles );
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRLP4 52
|
|
ADDRGP4 VectorLengthSquared
|
|
CALLF4
|
|
ASGNF4
|
|
ADDRLP4 20
|
|
ADDRLP4 52
|
|
INDIRF4
|
|
ASGNF4
|
|
line 898
|
|
;898: vectoangles ( angles, angles );
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRGP4 vectoangles
|
|
CALLV
|
|
pop
|
|
line 901
|
|
;899:
|
|
;900: // Too far away then just forget it
|
|
;901: if ( dist > MAX_SIGHT_DISTANCE * MAX_SIGHT_DISTANCE )
|
|
ADDRLP4 20
|
|
INDIRF4
|
|
CNSTF4 1242125376
|
|
LEF4 $413
|
|
line 902
|
|
;902: {
|
|
line 903
|
|
;903: continue;
|
|
ADDRGP4 $402
|
|
JUMPV
|
|
LABELV $413
|
|
line 907
|
|
;904: }
|
|
;905:
|
|
;906: // If not within the field of view then forget it
|
|
;907: if ( !InFieldOfVision ( ent->client->ps.viewangles, MAX_SIGHT_FOV, angles ) )
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 156
|
|
ADDP4
|
|
ARGP4
|
|
CNSTF4 1120403456
|
|
ARGF4
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRLP4 56
|
|
ADDRGP4 InFieldOfVision
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 56
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $415
|
|
line 908
|
|
;908: {
|
|
line 909
|
|
;909: break;
|
|
ADDRGP4 $403
|
|
JUMPV
|
|
LABELV $415
|
|
line 914
|
|
;910: }
|
|
;911:
|
|
;912: // Turn on the broadcast bit for the master and since there is only one
|
|
;913: // master we are done
|
|
;914: self->r.broadcastClients[ent->s.clientNum/32] |= (1 << (ent->s.clientNum%32));
|
|
ADDRLP4 60
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 220
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 64
|
|
CNSTI4 32
|
|
ASGNI4
|
|
ADDRLP4 68
|
|
ADDRLP4 60
|
|
INDIRI4
|
|
ADDRLP4 64
|
|
INDIRI4
|
|
DIVI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 400
|
|
ADDP4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 68
|
|
INDIRP4
|
|
ADDRLP4 68
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDRLP4 60
|
|
INDIRI4
|
|
ADDRLP4 64
|
|
INDIRI4
|
|
MODI4
|
|
LSHI4
|
|
BORI4
|
|
ASGNI4
|
|
line 916
|
|
;915:
|
|
;916: break;
|
|
ADDRGP4 $403
|
|
JUMPV
|
|
LABELV $402
|
|
line 879
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $404
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 level+72
|
|
INDIRI4
|
|
LTI4 $401
|
|
LABELV $403
|
|
line 918
|
|
;917: }
|
|
;918:}
|
|
LABELV $400
|
|
endproc G_UpdateForceSightBroadcasts 72 12
|
|
proc G_UpdateJediMasterBroadcasts 72 12
|
|
line 921
|
|
;919:
|
|
;920:static void G_UpdateJediMasterBroadcasts ( gentity_t *self )
|
|
;921:{
|
|
line 925
|
|
;922: int i;
|
|
;923:
|
|
;924: // Not jedi master mode then nothing to do
|
|
;925: if ( g_gametype.integer != GT_JEDIMASTER )
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
CNSTI4 2
|
|
EQI4 $418
|
|
line 926
|
|
;926: {
|
|
line 927
|
|
;927: return;
|
|
ADDRGP4 $417
|
|
JUMPV
|
|
LABELV $418
|
|
line 931
|
|
;928: }
|
|
;929:
|
|
;930: // This client isnt the jedi master so it shouldnt broadcast
|
|
;931: if ( !self->client->ps.isJediMaster )
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 604
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $421
|
|
line 932
|
|
;932: {
|
|
line 933
|
|
;933: return;
|
|
ADDRGP4 $417
|
|
JUMPV
|
|
LABELV $421
|
|
line 937
|
|
;934: }
|
|
;935:
|
|
;936: // Broadcast ourself to all clients within range
|
|
;937: for ( i = 0; i < level.numConnectedClients; i ++ )
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $426
|
|
JUMPV
|
|
LABELV $423
|
|
line 938
|
|
;938: {
|
|
line 939
|
|
;939: gentity_t *ent = &g_entities[level.sortedClients[i]];
|
|
ADDRLP4 4
|
|
CNSTI4 828
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 level+84
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ASGNP4
|
|
line 943
|
|
;940: float dist;
|
|
;941: vec3_t angles;
|
|
;942:
|
|
;943: if ( ent == self )
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
NEU4 $429
|
|
line 944
|
|
;944: {
|
|
line 945
|
|
;945: continue;
|
|
ADDRGP4 $424
|
|
JUMPV
|
|
LABELV $429
|
|
line 948
|
|
;946: }
|
|
;947:
|
|
;948: VectorSubtract( self->client->ps.origin, ent->client->ps.origin, angles );
|
|
ADDRLP4 24
|
|
CNSTI4 408
|
|
ASGNI4
|
|
ADDRLP4 28
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 32
|
|
CNSTI4 20
|
|
ASGNI4
|
|
ADDRLP4 36
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
INDIRP4
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
INDIRP4
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 40
|
|
CNSTI4 24
|
|
ASGNI4
|
|
ADDRLP4 8+4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
INDIRP4
|
|
ADDRLP4 40
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
INDIRP4
|
|
ADDRLP4 40
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 44
|
|
CNSTI4 408
|
|
ASGNI4
|
|
ADDRLP4 48
|
|
CNSTI4 28
|
|
ASGNI4
|
|
ADDRLP4 8+8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 44
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRP4
|
|
ADDRLP4 48
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 44
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRP4
|
|
ADDRLP4 48
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 949
|
|
;949: dist = VectorLengthSquared ( angles );
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRLP4 52
|
|
ADDRGP4 VectorLengthSquared
|
|
CALLF4
|
|
ASGNF4
|
|
ADDRLP4 20
|
|
ADDRLP4 52
|
|
INDIRF4
|
|
ASGNF4
|
|
line 950
|
|
;950: vectoangles ( angles, angles );
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRGP4 vectoangles
|
|
CALLV
|
|
pop
|
|
line 953
|
|
;951:
|
|
;952: // Too far away then just forget it
|
|
;953: if ( dist > MAX_JEDIMASTER_DISTANCE * MAX_JEDIMASTER_DISTANCE )
|
|
ADDRLP4 20
|
|
INDIRF4
|
|
CNSTF4 1254013984
|
|
LEF4 $433
|
|
line 954
|
|
;954: {
|
|
line 955
|
|
;955: continue;
|
|
ADDRGP4 $424
|
|
JUMPV
|
|
LABELV $433
|
|
line 959
|
|
;956: }
|
|
;957:
|
|
;958: // If not within the field of view then forget it
|
|
;959: if ( !InFieldOfVision ( ent->client->ps.viewangles, MAX_JEDIMASTER_FOV, angles ) )
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 156
|
|
ADDP4
|
|
ARGP4
|
|
CNSTF4 1120403456
|
|
ARGF4
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRLP4 56
|
|
ADDRGP4 InFieldOfVision
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 56
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $435
|
|
line 960
|
|
;960: {
|
|
line 961
|
|
;961: continue;
|
|
ADDRGP4 $424
|
|
JUMPV
|
|
LABELV $435
|
|
line 966
|
|
;962: }
|
|
;963:
|
|
;964: // Turn on the broadcast bit for the master and since there is only one
|
|
;965: // master we are done
|
|
;966: self->r.broadcastClients[ent->s.clientNum/32] |= (1 << (ent->s.clientNum%32));
|
|
ADDRLP4 60
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 220
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 64
|
|
CNSTI4 32
|
|
ASGNI4
|
|
ADDRLP4 68
|
|
ADDRLP4 60
|
|
INDIRI4
|
|
ADDRLP4 64
|
|
INDIRI4
|
|
DIVI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 400
|
|
ADDP4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 68
|
|
INDIRP4
|
|
ADDRLP4 68
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDRLP4 60
|
|
INDIRI4
|
|
ADDRLP4 64
|
|
INDIRI4
|
|
MODI4
|
|
LSHI4
|
|
BORI4
|
|
ASGNI4
|
|
line 967
|
|
;967: }
|
|
LABELV $424
|
|
line 937
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $426
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRGP4 level+72
|
|
INDIRI4
|
|
LTI4 $423
|
|
line 968
|
|
;968:}
|
|
LABELV $417
|
|
endproc G_UpdateJediMasterBroadcasts 72 12
|
|
export G_UpdateClientBroadcasts
|
|
proc G_UpdateClientBroadcasts 0 12
|
|
line 971
|
|
;969:
|
|
;970:void G_UpdateClientBroadcasts ( gentity_t *self )
|
|
;971:{
|
|
line 973
|
|
;972: // Clear all the broadcast bits for this client
|
|
;973: memset ( self->r.broadcastClients, 0, sizeof ( self->r.broadcastClients ) );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 400
|
|
ADDP4
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
CNSTI4 8
|
|
ARGI4
|
|
ADDRGP4 memset
|
|
CALLP4
|
|
pop
|
|
line 976
|
|
;974:
|
|
;975: // The jedi master is broadcast to everyone in range
|
|
;976: G_UpdateJediMasterBroadcasts ( self );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_UpdateJediMasterBroadcasts
|
|
CALLV
|
|
pop
|
|
line 979
|
|
;977:
|
|
;978: // Anyone with force sight on should see this client
|
|
;979: G_UpdateForceSightBroadcasts ( self );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_UpdateForceSightBroadcasts
|
|
CALLV
|
|
pop
|
|
line 980
|
|
;980:}
|
|
LABELV $437
|
|
endproc G_UpdateClientBroadcasts 0 12
|
|
export ClientThink_real
|
|
proc ClientThink_real 580 32
|
|
line 993
|
|
;981:
|
|
;982:/*
|
|
;983:==============
|
|
;984:ClientThink
|
|
;985:
|
|
;986:This will be called once for each client frame, which will
|
|
;987:usually be a couple times for each server frame on fast clients.
|
|
;988:
|
|
;989:If "g_synchronousClients 1" is set, this will be called exactly
|
|
;990:once for each server frame, which makes for smooth demo recording.
|
|
;991:==============
|
|
;992:*/
|
|
;993:void ClientThink_real( gentity_t *ent ) {
|
|
line 1001
|
|
;994: gclient_t *client;
|
|
;995: pmove_t pm;
|
|
;996: int oldEventSequence;
|
|
;997: int msec;
|
|
;998: int i;
|
|
;999: usercmd_t *ucmd;
|
|
;1000:
|
|
;1001: client = ent->client;
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 1004
|
|
;1002:
|
|
;1003: // don't think if the client is not yet connected (and thus not yet spawned in)
|
|
;1004: if (client->pers.connected != CON_CONNECTED) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
EQI4 $439
|
|
line 1005
|
|
;1005: return;
|
|
ADDRGP4 $438
|
|
JUMPV
|
|
LABELV $439
|
|
line 1008
|
|
;1006: }
|
|
;1007: // mark the time, so the connection sprite can be removed
|
|
;1008: ucmd = &ent->client->pers.cmd;
|
|
ADDRLP4 384
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1372
|
|
ADDP4
|
|
ASGNP4
|
|
line 1011
|
|
;1009:
|
|
;1010: // sanity check the command time to prevent speedup cheating
|
|
;1011: if ( ucmd->serverTime > level.time + 200 ) {
|
|
ADDRLP4 384
|
|
INDIRP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 200
|
|
ADDI4
|
|
LEI4 $441
|
|
line 1012
|
|
;1012: ucmd->serverTime = level.time + 200;
|
|
ADDRLP4 384
|
|
INDIRP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 200
|
|
ADDI4
|
|
ASGNI4
|
|
line 1014
|
|
;1013:// G_Printf("serverTime <<<<<\n" );
|
|
;1014: }
|
|
LABELV $441
|
|
line 1015
|
|
;1015: if ( ucmd->serverTime < level.time - 1000 ) {
|
|
ADDRLP4 384
|
|
INDIRP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 1000
|
|
SUBI4
|
|
GEI4 $445
|
|
line 1016
|
|
;1016: ucmd->serverTime = level.time - 1000;
|
|
ADDRLP4 384
|
|
INDIRP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 1000
|
|
SUBI4
|
|
ASGNI4
|
|
line 1018
|
|
;1017:// G_Printf("serverTime >>>>>\n" );
|
|
;1018: }
|
|
LABELV $445
|
|
line 1020
|
|
;1019:
|
|
;1020: msec = ucmd->serverTime - client->ps.commandTime;
|
|
ADDRLP4 388
|
|
ADDRLP4 384
|
|
INDIRP4
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
INDIRI4
|
|
SUBI4
|
|
ASGNI4
|
|
line 1023
|
|
;1021: // following others may result in bad times, but we still want
|
|
;1022: // to check for follow toggles
|
|
;1023: if ( msec < 1 && client->sess.spectatorState != SPECTATOR_FOLLOW ) {
|
|
ADDRLP4 388
|
|
INDIRI4
|
|
CNSTI4 1
|
|
GEI4 $449
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1528
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
EQI4 $449
|
|
line 1024
|
|
;1024: return;
|
|
ADDRGP4 $438
|
|
JUMPV
|
|
LABELV $449
|
|
line 1026
|
|
;1025: }
|
|
;1026: if ( msec > 200 ) {
|
|
ADDRLP4 388
|
|
INDIRI4
|
|
CNSTI4 200
|
|
LEI4 $451
|
|
line 1027
|
|
;1027: msec = 200;
|
|
ADDRLP4 388
|
|
CNSTI4 200
|
|
ASGNI4
|
|
line 1028
|
|
;1028: }
|
|
LABELV $451
|
|
line 1030
|
|
;1029:
|
|
;1030: if ( pmove_msec.integer < 8 ) {
|
|
ADDRGP4 pmove_msec+12
|
|
INDIRI4
|
|
CNSTI4 8
|
|
GEI4 $453
|
|
line 1031
|
|
;1031: trap_Cvar_Set("pmove_msec", "8");
|
|
ADDRGP4 $456
|
|
ARGP4
|
|
ADDRGP4 $457
|
|
ARGP4
|
|
ADDRGP4 trap_Cvar_Set
|
|
CALLV
|
|
pop
|
|
line 1032
|
|
;1032: }
|
|
ADDRGP4 $454
|
|
JUMPV
|
|
LABELV $453
|
|
line 1033
|
|
;1033: else if (pmove_msec.integer > 33) {
|
|
ADDRGP4 pmove_msec+12
|
|
INDIRI4
|
|
CNSTI4 33
|
|
LEI4 $458
|
|
line 1034
|
|
;1034: trap_Cvar_Set("pmove_msec", "33");
|
|
ADDRGP4 $456
|
|
ARGP4
|
|
ADDRGP4 $461
|
|
ARGP4
|
|
ADDRGP4 trap_Cvar_Set
|
|
CALLV
|
|
pop
|
|
line 1035
|
|
;1035: }
|
|
LABELV $458
|
|
LABELV $454
|
|
line 1037
|
|
;1036:
|
|
;1037: if ( pmove_fixed.integer || client->pers.pmoveFixed ) {
|
|
ADDRLP4 396
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 pmove_fixed+12
|
|
INDIRI4
|
|
ADDRLP4 396
|
|
INDIRI4
|
|
NEI4 $465
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1412
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 396
|
|
INDIRI4
|
|
EQI4 $462
|
|
LABELV $465
|
|
line 1038
|
|
;1038: ucmd->serverTime = ((ucmd->serverTime + pmove_msec.integer-1) / pmove_msec.integer) * pmove_msec.integer;
|
|
ADDRLP4 384
|
|
INDIRP4
|
|
ADDRLP4 384
|
|
INDIRP4
|
|
INDIRI4
|
|
ADDRGP4 pmove_msec+12
|
|
INDIRI4
|
|
ADDI4
|
|
CNSTI4 1
|
|
SUBI4
|
|
ADDRGP4 pmove_msec+12
|
|
INDIRI4
|
|
DIVI4
|
|
ADDRGP4 pmove_msec+12
|
|
INDIRI4
|
|
MULI4
|
|
ASGNI4
|
|
line 1041
|
|
;1039: //if (ucmd->serverTime - client->ps.commandTime <= 0)
|
|
;1040: // return;
|
|
;1041: }
|
|
LABELV $462
|
|
line 1046
|
|
;1042:
|
|
;1043: //
|
|
;1044: // check for exiting intermission
|
|
;1045: //
|
|
;1046: if ( level.intermissiontime ) {
|
|
ADDRGP4 level+9008
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $469
|
|
line 1047
|
|
;1047: ClientIntermissionThink( client );
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ClientIntermissionThink
|
|
CALLV
|
|
pop
|
|
line 1048
|
|
;1048: return;
|
|
ADDRGP4 $438
|
|
JUMPV
|
|
LABELV $469
|
|
line 1052
|
|
;1049: }
|
|
;1050:
|
|
;1051: // spectators don't do much
|
|
;1052: if ( client->sess.sessionTeam == TEAM_SPECTATOR ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $472
|
|
line 1053
|
|
;1053: if ( client->sess.spectatorState == SPECTATOR_SCOREBOARD ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1528
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $474
|
|
line 1054
|
|
;1054: return;
|
|
ADDRGP4 $438
|
|
JUMPV
|
|
LABELV $474
|
|
line 1056
|
|
;1055: }
|
|
;1056: SpectatorThink( ent, ucmd );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 384
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 SpectatorThink
|
|
CALLV
|
|
pop
|
|
line 1057
|
|
;1057: return;
|
|
ADDRGP4 $438
|
|
JUMPV
|
|
LABELV $472
|
|
line 1060
|
|
;1058: }
|
|
;1059:
|
|
;1060: if (ent && ent->client && (ent->client->ps.eFlags & EF_INVULNERABLE))
|
|
ADDRLP4 400
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 404
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRLP4 400
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 404
|
|
INDIRU4
|
|
EQU4 $476
|
|
ADDRLP4 408
|
|
ADDRLP4 400
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 408
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 404
|
|
INDIRU4
|
|
EQU4 $476
|
|
ADDRLP4 408
|
|
INDIRP4
|
|
CNSTI4 108
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 67108864
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $476
|
|
line 1061
|
|
;1061: {
|
|
line 1062
|
|
;1062: if (ent->client->invulnerableTimer <= level.time)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1564
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
GTI4 $478
|
|
line 1063
|
|
;1063: {
|
|
line 1064
|
|
;1064: ent->client->ps.eFlags &= ~EF_INVULNERABLE;
|
|
ADDRLP4 412
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 108
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 412
|
|
INDIRP4
|
|
ADDRLP4 412
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 -67108865
|
|
BANDI4
|
|
ASGNI4
|
|
line 1065
|
|
;1065: }
|
|
LABELV $478
|
|
line 1066
|
|
;1066: }
|
|
LABELV $476
|
|
line 1069
|
|
;1067:
|
|
;1068: // check for inactivity timer, but never drop the local client of a non-dedicated server
|
|
;1069: if ( !ClientInactivityTimer( client ) ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 412
|
|
ADDRGP4 ClientInactivityTimer
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 412
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $481
|
|
line 1070
|
|
;1070: return;
|
|
ADDRGP4 $438
|
|
JUMPV
|
|
LABELV $481
|
|
line 1074
|
|
;1071: }
|
|
;1072:
|
|
;1073: // clear the rewards if time
|
|
;1074: if ( level.time > client->rewardTime ) {
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1684
|
|
ADDP4
|
|
INDIRI4
|
|
LEI4 $483
|
|
line 1075
|
|
;1075: client->ps.eFlags &= ~(EF_AWARD_IMPRESSIVE | EF_AWARD_EXCELLENT | EF_AWARD_GAUNTLET | EF_AWARD_ASSIST | EF_AWARD_DEFEND | EF_AWARD_CAP );
|
|
ADDRLP4 416
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 108
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 -231497
|
|
BANDI4
|
|
ASGNI4
|
|
line 1076
|
|
;1076: }
|
|
LABELV $483
|
|
line 1078
|
|
;1077:
|
|
;1078: if ( client->noclip ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1576
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $486
|
|
line 1079
|
|
;1079: client->ps.pm_type = PM_NOCLIP;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
CNSTI4 2
|
|
ASGNI4
|
|
line 1080
|
|
;1080: } else if ( client->ps.eFlags & EF_DISINTEGRATION ) {
|
|
ADDRGP4 $487
|
|
JUMPV
|
|
LABELV $486
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 108
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 33554432
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $488
|
|
line 1081
|
|
;1081: client->ps.pm_type = PM_NOCLIP;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
CNSTI4 2
|
|
ASGNI4
|
|
line 1082
|
|
;1082: } else if ( client->ps.stats[STAT_HEALTH] <= 0 ) {
|
|
ADDRGP4 $489
|
|
JUMPV
|
|
LABELV $488
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 216
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
GTI4 $490
|
|
line 1083
|
|
;1083: client->ps.pm_type = PM_DEAD;
|
|
ADDRLP4 416
|
|
CNSTI4 4
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 416
|
|
INDIRI4
|
|
ADDP4
|
|
ADDRLP4 416
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1084
|
|
;1084: } else {
|
|
ADDRGP4 $491
|
|
JUMPV
|
|
LABELV $490
|
|
line 1085
|
|
;1085: if (client->ps.forceGripChangeMovetype)
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1276
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $492
|
|
line 1086
|
|
;1086: {
|
|
line 1087
|
|
;1087: client->ps.pm_type = client->ps.forceGripChangeMovetype;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1276
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1088
|
|
;1088: }
|
|
ADDRGP4 $493
|
|
JUMPV
|
|
LABELV $492
|
|
line 1090
|
|
;1089: else
|
|
;1090: {
|
|
line 1091
|
|
;1091: client->ps.pm_type = PM_NORMAL;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1092
|
|
;1092: }
|
|
LABELV $493
|
|
line 1093
|
|
;1093: }
|
|
LABELV $491
|
|
LABELV $489
|
|
LABELV $487
|
|
line 1095
|
|
;1094:
|
|
;1095: client->ps.gravity = g_gravity.value;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 56
|
|
ADDP4
|
|
ADDRGP4 g_gravity+8
|
|
INDIRF4
|
|
CVFI4 4
|
|
ASGNI4
|
|
line 1098
|
|
;1096:
|
|
;1097: // set speed
|
|
;1098: client->ps.speed = g_speed.value;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 60
|
|
ADDP4
|
|
ADDRGP4 g_speed+8
|
|
INDIRF4
|
|
CVFI4 4
|
|
ASGNI4
|
|
line 1099
|
|
;1099: client->ps.basespeed = g_speed.value;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 64
|
|
ADDP4
|
|
ADDRGP4 g_speed+8
|
|
INDIRF4
|
|
CVFI4 4
|
|
ASGNI4
|
|
line 1101
|
|
;1100:
|
|
;1101: if (ent->client->ps.duelInProgress)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1292
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $497
|
|
line 1102
|
|
;1102: {
|
|
line 1103
|
|
;1103: gentity_t *duelAgainst = &g_entities[ent->client->ps.duelIndex];
|
|
ADDRLP4 416
|
|
CNSTI4 828
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1284
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ASGNP4
|
|
line 1108
|
|
;1104:
|
|
;1105: //Keep the time updated, so once this duel ends this player can't engage in a duel for another
|
|
;1106: //10 seconds. This will give other people a chance to engage in duels in case this player wants
|
|
;1107: //to engage again right after he's done fighting and someone else is waiting.
|
|
;1108: ent->client->ps.fd.privateDuelTime = level.time + 10000;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1228
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 10000
|
|
ADDI4
|
|
ASGNI4
|
|
line 1110
|
|
;1109:
|
|
;1110: if (ent->client->ps.duelTime < level.time)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1288
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
GEI4 $500
|
|
line 1111
|
|
;1111: {
|
|
line 1113
|
|
;1112: //Bring out the sabers
|
|
;1113: if (ent->client->ps.weapon == WP_SABER && ent->client->ps.saberHolstered &&
|
|
ADDRLP4 420
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 420
|
|
INDIRP4
|
|
CNSTI4 148
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
NEI4 $503
|
|
ADDRLP4 424
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 420
|
|
INDIRP4
|
|
CNSTI4 1300
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 424
|
|
INDIRI4
|
|
EQI4 $503
|
|
ADDRLP4 420
|
|
INDIRP4
|
|
CNSTI4 1288
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 424
|
|
INDIRI4
|
|
EQI4 $503
|
|
line 1115
|
|
;1114: ent->client->ps.duelTime)
|
|
;1115: {
|
|
line 1116
|
|
;1116: if (!saberOffSound || !saberOnSound)
|
|
ADDRLP4 428
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 saberOffSound
|
|
INDIRI4
|
|
ADDRLP4 428
|
|
INDIRI4
|
|
EQI4 $507
|
|
ADDRGP4 saberOnSound
|
|
INDIRI4
|
|
ADDRLP4 428
|
|
INDIRI4
|
|
NEI4 $505
|
|
LABELV $507
|
|
line 1117
|
|
;1117: {
|
|
line 1118
|
|
;1118: saberOffSound = G_SoundIndex("sound/weapons/saber/saberoffquick.wav");
|
|
ADDRGP4 $508
|
|
ARGP4
|
|
ADDRLP4 432
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRGP4 saberOffSound
|
|
ADDRLP4 432
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1119
|
|
;1119: saberOnSound = G_SoundIndex("sound/weapons/saber/saberon.wav");
|
|
ADDRGP4 $509
|
|
ARGP4
|
|
ADDRLP4 436
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRGP4 saberOnSound
|
|
ADDRLP4 436
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1120
|
|
;1120: }
|
|
LABELV $505
|
|
line 1122
|
|
;1121:
|
|
;1122: ent->client->ps.saberHolstered = qfalse;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1300
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1123
|
|
;1123: G_Sound(ent, CHAN_AUTO, saberOnSound);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 saberOnSound
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_Sound
|
|
CALLV
|
|
pop
|
|
line 1125
|
|
;1124:
|
|
;1125: G_AddEvent(ent, EV_PRIVATE_DUEL, 2);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 13
|
|
ARGI4
|
|
CNSTI4 2
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 1127
|
|
;1126:
|
|
;1127: ent->client->ps.duelTime = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1288
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1128
|
|
;1128: }
|
|
LABELV $503
|
|
line 1130
|
|
;1129:
|
|
;1130: if (duelAgainst && duelAgainst->client && duelAgainst->inuse &&
|
|
ADDRLP4 432
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 432
|
|
INDIRU4
|
|
EQU4 $501
|
|
ADDRLP4 436
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 436
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 432
|
|
INDIRU4
|
|
EQU4 $501
|
|
ADDRLP4 440
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
CNSTI4 412
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 440
|
|
INDIRI4
|
|
EQI4 $501
|
|
ADDRLP4 436
|
|
INDIRP4
|
|
CNSTI4 148
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
NEI4 $501
|
|
ADDRLP4 436
|
|
INDIRP4
|
|
CNSTI4 1300
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 440
|
|
INDIRI4
|
|
EQI4 $501
|
|
ADDRLP4 436
|
|
INDIRP4
|
|
CNSTI4 1288
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 440
|
|
INDIRI4
|
|
EQI4 $501
|
|
line 1133
|
|
;1131: duelAgainst->client->ps.weapon == WP_SABER && duelAgainst->client->ps.saberHolstered &&
|
|
;1132: duelAgainst->client->ps.duelTime)
|
|
;1133: {
|
|
line 1134
|
|
;1134: if (!saberOffSound || !saberOnSound)
|
|
ADDRLP4 444
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 saberOffSound
|
|
INDIRI4
|
|
ADDRLP4 444
|
|
INDIRI4
|
|
EQI4 $514
|
|
ADDRGP4 saberOnSound
|
|
INDIRI4
|
|
ADDRLP4 444
|
|
INDIRI4
|
|
NEI4 $512
|
|
LABELV $514
|
|
line 1135
|
|
;1135: {
|
|
line 1136
|
|
;1136: saberOffSound = G_SoundIndex("sound/weapons/saber/saberoffquick.wav");
|
|
ADDRGP4 $508
|
|
ARGP4
|
|
ADDRLP4 448
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRGP4 saberOffSound
|
|
ADDRLP4 448
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1137
|
|
;1137: saberOnSound = G_SoundIndex("sound/weapons/saber/saberon.wav");
|
|
ADDRGP4 $509
|
|
ARGP4
|
|
ADDRLP4 452
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRGP4 saberOnSound
|
|
ADDRLP4 452
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1138
|
|
;1138: }
|
|
LABELV $512
|
|
line 1140
|
|
;1139:
|
|
;1140: duelAgainst->client->ps.saberHolstered = qfalse;
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1300
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1141
|
|
;1141: G_Sound(duelAgainst, CHAN_AUTO, saberOnSound);
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 saberOnSound
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_Sound
|
|
CALLV
|
|
pop
|
|
line 1143
|
|
;1142:
|
|
;1143: G_AddEvent(duelAgainst, EV_PRIVATE_DUEL, 2);
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 13
|
|
ARGI4
|
|
CNSTI4 2
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 1145
|
|
;1144:
|
|
;1145: duelAgainst->client->ps.duelTime = 0;
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1288
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1146
|
|
;1146: }
|
|
line 1147
|
|
;1147: }
|
|
ADDRGP4 $501
|
|
JUMPV
|
|
LABELV $500
|
|
line 1149
|
|
;1148: else
|
|
;1149: {
|
|
line 1150
|
|
;1150: client->ps.speed = 0;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 60
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1151
|
|
;1151: client->ps.basespeed = 0;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 64
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1152
|
|
;1152: ucmd->forwardmove = 0;
|
|
ADDRLP4 384
|
|
INDIRP4
|
|
CNSTI4 24
|
|
ADDP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 1153
|
|
;1153: ucmd->rightmove = 0;
|
|
ADDRLP4 384
|
|
INDIRP4
|
|
CNSTI4 25
|
|
ADDP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 1154
|
|
;1154: ucmd->upmove = 0;
|
|
ADDRLP4 384
|
|
INDIRP4
|
|
CNSTI4 26
|
|
ADDP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 1155
|
|
;1155: }
|
|
LABELV $501
|
|
line 1157
|
|
;1156:
|
|
;1157: if (!duelAgainst || !duelAgainst->client || !duelAgainst->inuse ||
|
|
ADDRLP4 424
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 424
|
|
INDIRU4
|
|
EQU4 $519
|
|
ADDRLP4 428
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 428
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 424
|
|
INDIRU4
|
|
EQU4 $519
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
CNSTI4 412
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $519
|
|
ADDRLP4 428
|
|
INDIRP4
|
|
CNSTI4 1284
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI4
|
|
EQI4 $515
|
|
LABELV $519
|
|
line 1159
|
|
;1158: duelAgainst->client->ps.duelIndex != ent->s.number)
|
|
;1159: {
|
|
line 1160
|
|
;1160: ent->client->ps.duelInProgress = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1292
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1161
|
|
;1161: G_AddEvent(ent, EV_PRIVATE_DUEL, 0);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 13
|
|
ARGI4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 1162
|
|
;1162: }
|
|
ADDRGP4 $516
|
|
JUMPV
|
|
LABELV $515
|
|
line 1163
|
|
;1163: else if (duelAgainst->health < 1 || duelAgainst->client->ps.stats[STAT_HEALTH] < 1)
|
|
ADDRLP4 436
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 436
|
|
INDIRI4
|
|
LTI4 $522
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 216
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 436
|
|
INDIRI4
|
|
GEI4 $520
|
|
LABELV $522
|
|
line 1164
|
|
;1164: {
|
|
line 1165
|
|
;1165: ent->client->ps.duelInProgress = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1292
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1166
|
|
;1166: duelAgainst->client->ps.duelInProgress = 0;
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1292
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1168
|
|
;1167:
|
|
;1168: G_AddEvent(ent, EV_PRIVATE_DUEL, 0);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 13
|
|
ARGI4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 1169
|
|
;1169: G_AddEvent(duelAgainst, EV_PRIVATE_DUEL, 0);
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 13
|
|
ARGI4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 1172
|
|
;1170:
|
|
;1171: //Winner gets full health.. providing he's still alive
|
|
;1172: if (ent->health > 0 && ent->client->ps.stats[STAT_HEALTH] > 0)
|
|
ADDRLP4 440
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 444
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 440
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 444
|
|
INDIRI4
|
|
LEI4 $523
|
|
ADDRLP4 440
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 216
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 444
|
|
INDIRI4
|
|
LEI4 $523
|
|
line 1173
|
|
;1173: {
|
|
line 1174
|
|
;1174: if (ent->health < ent->client->ps.stats[STAT_MAX_HEALTH])
|
|
ADDRLP4 448
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 448
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 448
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 248
|
|
ADDP4
|
|
INDIRI4
|
|
GEI4 $525
|
|
line 1175
|
|
;1175: {
|
|
line 1176
|
|
;1176: ent->client->ps.stats[STAT_HEALTH] = ent->health = ent->client->ps.stats[STAT_MAX_HEALTH];
|
|
ADDRLP4 452
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 456
|
|
ADDRLP4 452
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 460
|
|
ADDRLP4 456
|
|
INDIRP4
|
|
CNSTI4 248
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 452
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
ADDRLP4 460
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 456
|
|
INDIRP4
|
|
CNSTI4 216
|
|
ADDP4
|
|
ADDRLP4 460
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1177
|
|
;1177: }
|
|
LABELV $525
|
|
line 1179
|
|
;1178:
|
|
;1179: if (g_spawnInvulnerability.integer)
|
|
ADDRGP4 g_spawnInvulnerability+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $527
|
|
line 1180
|
|
;1180: {
|
|
line 1181
|
|
;1181: ent->client->ps.eFlags |= EF_INVULNERABLE;
|
|
ADDRLP4 452
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 108
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 452
|
|
INDIRP4
|
|
ADDRLP4 452
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 67108864
|
|
BORI4
|
|
ASGNI4
|
|
line 1182
|
|
;1182: ent->client->invulnerableTimer = level.time + g_spawnInvulnerability.integer;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1564
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRGP4 g_spawnInvulnerability+12
|
|
INDIRI4
|
|
ADDI4
|
|
ASGNI4
|
|
line 1183
|
|
;1183: }
|
|
LABELV $527
|
|
line 1184
|
|
;1184: }
|
|
LABELV $523
|
|
line 1191
|
|
;1185:
|
|
;1186: /*
|
|
;1187: trap_SendServerCommand( ent-g_entities, va("print \"%s %s\n\"", ent->client->pers.netname, G_GetStripEdString("SVINGAME", "PLDUELWINNER")) );
|
|
;1188: trap_SendServerCommand( duelAgainst-g_entities, va("print \"%s %s\n\"", ent->client->pers.netname, G_GetStripEdString("SVINGAME", "PLDUELWINNER")) );
|
|
;1189: */
|
|
;1190: //Private duel announcements are now made globally because we only want one duel at a time.
|
|
;1191: if (ent->health > 0 && ent->client->ps.stats[STAT_HEALTH] > 0)
|
|
ADDRLP4 448
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 452
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 448
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 452
|
|
INDIRI4
|
|
LEI4 $532
|
|
ADDRLP4 448
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 216
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 452
|
|
INDIRI4
|
|
LEI4 $532
|
|
line 1192
|
|
;1192: {
|
|
line 1193
|
|
;1193: trap_SendServerCommand( -1, va("cp \"%s %s %s!\n\"", ent->client->pers.netname, G_GetStripEdString("SVINGAME", "PLDUELWINNER"), duelAgainst->client->pers.netname) );
|
|
ADDRGP4 $535
|
|
ARGP4
|
|
ADDRGP4 $536
|
|
ARGP4
|
|
ADDRLP4 456
|
|
ADDRGP4 G_GetStripEdString
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $534
|
|
ARGP4
|
|
ADDRLP4 460
|
|
CNSTI4 408
|
|
ASGNI4
|
|
ADDRLP4 464
|
|
CNSTI4 1416
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 460
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRP4
|
|
ADDRLP4 464
|
|
INDIRI4
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 456
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
ADDRLP4 460
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRP4
|
|
ADDRLP4 464
|
|
INDIRI4
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 468
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 -1
|
|
ARGI4
|
|
ADDRLP4 468
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 1194
|
|
;1194: }
|
|
ADDRGP4 $521
|
|
JUMPV
|
|
LABELV $532
|
|
line 1196
|
|
;1195: else
|
|
;1196: { //it was a draw, because we both managed to die in the same frame
|
|
line 1197
|
|
;1197: trap_SendServerCommand( -1, va("cp \"%s\n\"", G_GetStripEdString("SVINGAME", "PLDUELTIE")) );
|
|
ADDRGP4 $535
|
|
ARGP4
|
|
ADDRGP4 $538
|
|
ARGP4
|
|
ADDRLP4 456
|
|
ADDRGP4 G_GetStripEdString
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $537
|
|
ARGP4
|
|
ADDRLP4 456
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 460
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 -1
|
|
ARGI4
|
|
ADDRLP4 460
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 1198
|
|
;1198: }
|
|
line 1199
|
|
;1199: }
|
|
ADDRGP4 $521
|
|
JUMPV
|
|
LABELV $520
|
|
line 1201
|
|
;1200: else
|
|
;1201: {
|
|
line 1203
|
|
;1202: vec3_t vSub;
|
|
;1203: float subLen = 0;
|
|
ADDRLP4 440
|
|
CNSTF4 0
|
|
ASGNF4
|
|
line 1205
|
|
;1204:
|
|
;1205: VectorSubtract(ent->client->ps.origin, duelAgainst->client->ps.origin, vSub);
|
|
ADDRLP4 456
|
|
CNSTI4 408
|
|
ASGNI4
|
|
ADDRLP4 460
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 456
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 464
|
|
CNSTI4 20
|
|
ASGNI4
|
|
ADDRLP4 468
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
ADDRLP4 456
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 444
|
|
ADDRLP4 460
|
|
INDIRP4
|
|
INDIRP4
|
|
ADDRLP4 464
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 468
|
|
INDIRP4
|
|
INDIRP4
|
|
ADDRLP4 464
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 472
|
|
CNSTI4 24
|
|
ASGNI4
|
|
ADDRLP4 444+4
|
|
ADDRLP4 460
|
|
INDIRP4
|
|
INDIRP4
|
|
ADDRLP4 472
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 468
|
|
INDIRP4
|
|
INDIRP4
|
|
ADDRLP4 472
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 476
|
|
CNSTI4 408
|
|
ASGNI4
|
|
ADDRLP4 480
|
|
CNSTI4 28
|
|
ASGNI4
|
|
ADDRLP4 444+8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 476
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRP4
|
|
ADDRLP4 480
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
ADDRLP4 476
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRP4
|
|
ADDRLP4 480
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 1206
|
|
;1206: subLen = VectorLength(vSub);
|
|
ADDRLP4 444
|
|
ARGP4
|
|
ADDRLP4 484
|
|
ADDRGP4 VectorLength
|
|
CALLF4
|
|
ASGNF4
|
|
ADDRLP4 440
|
|
ADDRLP4 484
|
|
INDIRF4
|
|
ASGNF4
|
|
line 1208
|
|
;1207:
|
|
;1208: if (subLen >= 1024)
|
|
ADDRLP4 440
|
|
INDIRF4
|
|
CNSTF4 1149239296
|
|
LTF4 $541
|
|
line 1209
|
|
;1209: {
|
|
line 1210
|
|
;1210: ent->client->ps.duelInProgress = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1292
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1211
|
|
;1211: duelAgainst->client->ps.duelInProgress = 0;
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1292
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1213
|
|
;1212:
|
|
;1213: G_AddEvent(ent, EV_PRIVATE_DUEL, 0);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 13
|
|
ARGI4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 1214
|
|
;1214: G_AddEvent(duelAgainst, EV_PRIVATE_DUEL, 0);
|
|
ADDRLP4 416
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 13
|
|
ARGI4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 1216
|
|
;1215:
|
|
;1216: trap_SendServerCommand( -1, va("print \"%s\n\"", G_GetStripEdString("SVINGAME", "PLDUELSTOP")) );
|
|
ADDRGP4 $535
|
|
ARGP4
|
|
ADDRGP4 $544
|
|
ARGP4
|
|
ADDRLP4 488
|
|
ADDRGP4 G_GetStripEdString
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRGP4 $543
|
|
ARGP4
|
|
ADDRLP4 488
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 492
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
CNSTI4 -1
|
|
ARGI4
|
|
ADDRLP4 492
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_SendServerCommand
|
|
CALLV
|
|
pop
|
|
line 1217
|
|
;1217: }
|
|
LABELV $541
|
|
line 1218
|
|
;1218: }
|
|
LABELV $521
|
|
LABELV $516
|
|
line 1219
|
|
;1219: }
|
|
LABELV $497
|
|
line 1227
|
|
;1220:
|
|
;1221: /*
|
|
;1222: if ( client->ps.powerups[PW_HASTE] ) {
|
|
;1223: client->ps.speed *= 1.3;
|
|
;1224: }
|
|
;1225: */
|
|
;1226:
|
|
;1227: if (client->ps.usingATST && ent->health > 0)
|
|
ADDRLP4 416
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1304
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 416
|
|
INDIRI4
|
|
EQI4 $545
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 416
|
|
INDIRI4
|
|
LEI4 $545
|
|
line 1228
|
|
;1228: { //we have special shot clip boxes as an ATST
|
|
line 1229
|
|
;1229: ent->r.contents |= CONTENTS_NOSHOT;
|
|
ADDRLP4 420
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 340
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 420
|
|
INDIRP4
|
|
ADDRLP4 420
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 2097152
|
|
BORI4
|
|
ASGNI4
|
|
line 1230
|
|
;1230: ATST_ManageDamageBoxes(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ATST_ManageDamageBoxes
|
|
CALLV
|
|
pop
|
|
line 1231
|
|
;1231: }
|
|
ADDRGP4 $546
|
|
JUMPV
|
|
LABELV $545
|
|
line 1233
|
|
;1232: else
|
|
;1233: {
|
|
line 1234
|
|
;1234: ent->r.contents &= ~CONTENTS_NOSHOT;
|
|
ADDRLP4 420
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 340
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 420
|
|
INDIRP4
|
|
ADDRLP4 420
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 -2097153
|
|
BANDI4
|
|
ASGNI4
|
|
line 1235
|
|
;1235: client->damageBoxHandle_Head = 0;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1636
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1236
|
|
;1236: client->damageBoxHandle_RLeg = 0;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1640
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1237
|
|
;1237: client->damageBoxHandle_LLeg = 0;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1644
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1238
|
|
;1238: }
|
|
LABELV $546
|
|
line 1244
|
|
;1239:
|
|
;1240: //rww - moved this stuff into the pmove code so that it's predicted properly
|
|
;1241: //BG_AdjustClientSpeed(&client->ps, &client->pers.cmd, level.time);
|
|
;1242:
|
|
;1243: // set up for pmove
|
|
;1244: oldEventSequence = client->ps.eventSequence;
|
|
ADDRLP4 392
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 112
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1246
|
|
;1245:
|
|
;1246: memset (&pm, 0, sizeof(pm));
|
|
ADDRLP4 8
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
CNSTI4 376
|
|
ARGI4
|
|
ADDRGP4 memset
|
|
CALLP4
|
|
pop
|
|
line 1248
|
|
;1247:
|
|
;1248: if ( ent->flags & FL_FORCE_GESTURE ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 472
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 32768
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $547
|
|
line 1249
|
|
;1249: ent->flags &= ~FL_FORCE_GESTURE;
|
|
ADDRLP4 420
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 472
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 420
|
|
INDIRP4
|
|
ADDRLP4 420
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 -32769
|
|
BANDI4
|
|
ASGNI4
|
|
line 1250
|
|
;1250: ent->client->pers.cmd.buttons |= BUTTON_GESTURE;
|
|
ADDRLP4 424
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1388
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 424
|
|
INDIRP4
|
|
ADDRLP4 424
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 8
|
|
BORI4
|
|
ASGNI4
|
|
line 1251
|
|
;1251: }
|
|
LABELV $547
|
|
line 1253
|
|
;1252:
|
|
;1253: if (ent->client && ent->client->ps.fallingToDeath &&
|
|
ADDRLP4 420
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 420
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $549
|
|
ADDRLP4 424
|
|
ADDRLP4 420
|
|
INDIRP4
|
|
CNSTI4 1340
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 424
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $549
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 3000
|
|
SUBI4
|
|
ADDRLP4 424
|
|
INDIRI4
|
|
LEI4 $549
|
|
line 1255
|
|
;1254: (level.time - FALL_FADE_TIME) > ent->client->ps.fallingToDeath)
|
|
;1255: { //die!
|
|
line 1256
|
|
;1256: player_die(ent, ent, ent, 100000, MOD_FALLING);
|
|
ADDRLP4 428
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 428
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 428
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 428
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 100000
|
|
ARGI4
|
|
CNSTI4 34
|
|
ARGI4
|
|
ADDRGP4 player_die
|
|
CALLV
|
|
pop
|
|
line 1257
|
|
;1257: respawn(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 respawn
|
|
CALLV
|
|
pop
|
|
line 1258
|
|
;1258: ent->client->ps.fallingToDeath = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1340
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1260
|
|
;1259:
|
|
;1260: G_MuteSound(ent->s.number, CHAN_VOICE); //stop screaming, because you are dead!
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI4
|
|
ARGI4
|
|
CNSTI4 3
|
|
ARGI4
|
|
ADDRGP4 G_MuteSound
|
|
CALLV
|
|
pop
|
|
line 1261
|
|
;1261: }
|
|
LABELV $549
|
|
line 1263
|
|
;1262:
|
|
;1263: if (ent->client->ps.otherKillerTime > level.time &&
|
|
ADDRLP4 428
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 428
|
|
INDIRP4
|
|
CNSTI4 752
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
LEI4 $552
|
|
ADDRLP4 428
|
|
INDIRP4
|
|
CNSTI4 84
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1023
|
|
EQI4 $552
|
|
ADDRLP4 428
|
|
INDIRP4
|
|
CNSTI4 756
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
GEI4 $552
|
|
line 1266
|
|
;1264: ent->client->ps.groundEntityNum != ENTITYNUM_NONE &&
|
|
;1265: ent->client->ps.otherKillerDebounceTime < level.time)
|
|
;1266: {
|
|
line 1267
|
|
;1267: ent->client->ps.otherKillerTime = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 752
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1268
|
|
;1268: ent->client->ps.otherKiller = ENTITYNUM_NONE;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 748
|
|
ADDP4
|
|
CNSTI4 1023
|
|
ASGNI4
|
|
line 1269
|
|
;1269: }
|
|
ADDRGP4 $553
|
|
JUMPV
|
|
LABELV $552
|
|
line 1270
|
|
;1270: else if (ent->client->ps.otherKillerTime > level.time &&
|
|
ADDRLP4 432
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 432
|
|
INDIRP4
|
|
CNSTI4 752
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
LEI4 $556
|
|
ADDRLP4 432
|
|
INDIRP4
|
|
CNSTI4 84
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 1023
|
|
NEI4 $556
|
|
line 1272
|
|
;1271: ent->client->ps.groundEntityNum == ENTITYNUM_NONE)
|
|
;1272: {
|
|
line 1273
|
|
;1273: if (ent->client->ps.otherKillerDebounceTime < (level.time + 100))
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 756
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 100
|
|
ADDI4
|
|
GEI4 $559
|
|
line 1274
|
|
;1274: {
|
|
line 1275
|
|
;1275: ent->client->ps.otherKillerDebounceTime = level.time + 100;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 756
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 100
|
|
ADDI4
|
|
ASGNI4
|
|
line 1276
|
|
;1276: }
|
|
LABELV $559
|
|
line 1277
|
|
;1277: }
|
|
LABELV $556
|
|
LABELV $553
|
|
line 1282
|
|
;1278:
|
|
;1279:// WP_ForcePowersUpdate( ent, msec, ucmd); //update any active force powers
|
|
;1280:// WP_SaberPositionUpdate(ent, ucmd); //check the server-side saber point, do apprioriate server-side actions (effects are cs-only)
|
|
;1281:
|
|
;1282: if ((ent->client->pers.cmd.buttons & BUTTON_USE) && ent->client->ps.useDelay < level.time)
|
|
ADDRLP4 436
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 436
|
|
INDIRP4
|
|
CNSTI4 1388
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 32
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $563
|
|
ADDRLP4 436
|
|
INDIRP4
|
|
CNSTI4 1344
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
GEI4 $563
|
|
line 1283
|
|
;1283: {
|
|
line 1284
|
|
;1284: TryUse(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 TryUse
|
|
CALLV
|
|
pop
|
|
line 1285
|
|
;1285: ent->client->ps.useDelay = level.time + 100;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1344
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 100
|
|
ADDI4
|
|
ASGNI4
|
|
line 1286
|
|
;1286: }
|
|
LABELV $563
|
|
line 1288
|
|
;1287:
|
|
;1288: pm.ps = &client->ps;
|
|
ADDRLP4 8
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 1289
|
|
;1289: pm.cmd = *ucmd;
|
|
ADDRLP4 8+4
|
|
ADDRLP4 384
|
|
INDIRP4
|
|
INDIRB
|
|
ASGNB 28
|
|
line 1290
|
|
;1290: if ( pm.ps->pm_type == PM_DEAD ) {
|
|
ADDRLP4 440
|
|
CNSTI4 4
|
|
ASGNI4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ADDRLP4 440
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 440
|
|
INDIRI4
|
|
NEI4 $568
|
|
line 1291
|
|
;1291: pm.tracemask = MASK_PLAYERSOLID & ~CONTENTS_BODY;
|
|
ADDRLP4 8+32
|
|
CNSTI4 17
|
|
ASGNI4
|
|
line 1292
|
|
;1292: }
|
|
ADDRGP4 $569
|
|
JUMPV
|
|
LABELV $568
|
|
line 1293
|
|
;1293: else if ( ent->r.svFlags & SVF_BOT ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 304
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 8
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $571
|
|
line 1294
|
|
;1294: pm.tracemask = MASK_PLAYERSOLID | CONTENTS_BOTCLIP;
|
|
ADDRLP4 8+32
|
|
CNSTI4 337
|
|
ASGNI4
|
|
line 1295
|
|
;1295: }
|
|
ADDRGP4 $572
|
|
JUMPV
|
|
LABELV $571
|
|
line 1296
|
|
;1296: else {
|
|
line 1297
|
|
;1297: pm.tracemask = MASK_PLAYERSOLID;
|
|
ADDRLP4 8+32
|
|
CNSTI4 273
|
|
ASGNI4
|
|
line 1298
|
|
;1298: }
|
|
LABELV $572
|
|
LABELV $569
|
|
line 1299
|
|
;1299: pm.trace = trap_Trace;
|
|
ADDRLP4 8+240
|
|
ADDRGP4 trap_Trace
|
|
ASGNP4
|
|
line 1300
|
|
;1300: pm.pointcontents = trap_PointContents;
|
|
ADDRLP4 8+244
|
|
ADDRGP4 trap_PointContents
|
|
ASGNP4
|
|
line 1301
|
|
;1301: pm.debugLevel = g_debugMove.integer;
|
|
ADDRLP4 8+36
|
|
ADDRGP4 g_debugMove+12
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1302
|
|
;1302: pm.noFootsteps = ( g_dmflags.integer & DF_NO_FOOTSTEPS ) > 0;
|
|
ADDRGP4 g_dmflags+12
|
|
INDIRI4
|
|
CNSTI4 32
|
|
BANDI4
|
|
CNSTI4 0
|
|
LEI4 $582
|
|
ADDRLP4 444
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRGP4 $583
|
|
JUMPV
|
|
LABELV $582
|
|
ADDRLP4 444
|
|
CNSTI4 0
|
|
ASGNI4
|
|
LABELV $583
|
|
ADDRLP4 8+40
|
|
ADDRLP4 444
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1304
|
|
;1303:
|
|
;1304: pm.pmove_fixed = pmove_fixed.integer | client->pers.pmoveFixed;
|
|
ADDRLP4 8+232
|
|
ADDRGP4 pmove_fixed+12
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1412
|
|
ADDP4
|
|
INDIRI4
|
|
BORI4
|
|
ASGNI4
|
|
line 1305
|
|
;1305: pm.pmove_msec = pmove_msec.integer;
|
|
ADDRLP4 8+236
|
|
ADDRGP4 pmove_msec+12
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1307
|
|
;1306:
|
|
;1307: pm.animations = bgGlobalAnimations;//NULL;
|
|
ADDRLP4 8+224
|
|
ADDRGP4 bgGlobalAnimations
|
|
ASGNP4
|
|
line 1309
|
|
;1308:
|
|
;1309: pm.gametype = g_gametype.integer;
|
|
ADDRLP4 8+220
|
|
ADDRGP4 g_gametype+12
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1311
|
|
;1310:
|
|
;1311: VectorCopy( client->ps.origin, client->oldOrigin );
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1596
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 1313
|
|
;1312:
|
|
;1313: if (level.intermissionQueued != 0 && g_singlePlayer.integer) {
|
|
ADDRLP4 452
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 level+9004
|
|
INDIRI4
|
|
ADDRLP4 452
|
|
INDIRI4
|
|
EQI4 $591
|
|
ADDRGP4 g_singlePlayer+12
|
|
INDIRI4
|
|
ADDRLP4 452
|
|
INDIRI4
|
|
EQI4 $591
|
|
line 1314
|
|
;1314: if ( level.time - level.intermissionQueued >= 1000 ) {
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRGP4 level+9004
|
|
INDIRI4
|
|
SUBI4
|
|
CNSTI4 1000
|
|
LTI4 $595
|
|
line 1315
|
|
;1315: pm.cmd.buttons = 0;
|
|
ADDRLP4 8+4+16
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1316
|
|
;1316: pm.cmd.forwardmove = 0;
|
|
ADDRLP4 8+4+24
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 1317
|
|
;1317: pm.cmd.rightmove = 0;
|
|
ADDRLP4 8+4+25
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 1318
|
|
;1318: pm.cmd.upmove = 0;
|
|
ADDRLP4 8+4+26
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 1319
|
|
;1319: if ( level.time - level.intermissionQueued >= 2000 && level.time - level.intermissionQueued <= 2500 ) {
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRGP4 level+9004
|
|
INDIRI4
|
|
SUBI4
|
|
CNSTI4 2000
|
|
LTI4 $607
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRGP4 level+9004
|
|
INDIRI4
|
|
SUBI4
|
|
CNSTI4 2500
|
|
GTI4 $607
|
|
line 1320
|
|
;1320: trap_SendConsoleCommand( EXEC_APPEND, "centerview\n");
|
|
CNSTI4 2
|
|
ARGI4
|
|
ADDRGP4 $613
|
|
ARGP4
|
|
ADDRGP4 trap_SendConsoleCommand
|
|
CALLV
|
|
pop
|
|
line 1321
|
|
;1321: }
|
|
LABELV $607
|
|
line 1322
|
|
;1322: ent->client->ps.pm_type = PM_SPINTERMISSION;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
CNSTI4 7
|
|
ASGNI4
|
|
line 1323
|
|
;1323: }
|
|
LABELV $595
|
|
line 1324
|
|
;1324: }
|
|
LABELV $591
|
|
line 1326
|
|
;1325:
|
|
;1326: for ( i = 0 ; i < MAX_CLIENTS ; i++ )
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
LABELV $614
|
|
line 1327
|
|
;1327: {
|
|
line 1328
|
|
;1328: if (g_entities[i].inuse && g_entities[i].client)
|
|
ADDRLP4 456
|
|
CNSTI4 828
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ASGNI4
|
|
ADDRLP4 456
|
|
INDIRI4
|
|
ADDRGP4 g_entities+412
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $618
|
|
ADDRLP4 456
|
|
INDIRI4
|
|
ADDRGP4 g_entities+408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $618
|
|
line 1329
|
|
;1329: {
|
|
line 1330
|
|
;1330: pm.bgClients[i] = &g_entities[i].client->ps;
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRLP4 8+248
|
|
ADDP4
|
|
CNSTI4 828
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities+408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 1331
|
|
;1331: }
|
|
LABELV $618
|
|
line 1332
|
|
;1332: }
|
|
LABELV $615
|
|
line 1326
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 32
|
|
LTI4 $614
|
|
line 1334
|
|
;1333:
|
|
;1334: if (ent->client->ps.saberLockTime > level.time)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 524
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
LEI4 $624
|
|
line 1335
|
|
;1335: {
|
|
line 1336
|
|
;1336: gentity_t *blockOpp = &g_entities[ent->client->ps.saberLockEnemy];
|
|
ADDRLP4 456
|
|
CNSTI4 828
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 528
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ASGNP4
|
|
line 1338
|
|
;1337:
|
|
;1338: if (blockOpp && blockOpp->inuse && blockOpp->client)
|
|
ADDRLP4 464
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRLP4 456
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 464
|
|
INDIRU4
|
|
EQU4 $627
|
|
ADDRLP4 456
|
|
INDIRP4
|
|
CNSTI4 412
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $627
|
|
ADDRLP4 456
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 464
|
|
INDIRU4
|
|
EQU4 $627
|
|
line 1339
|
|
;1339: {
|
|
line 1343
|
|
;1340: vec3_t lockDir, lockAng;
|
|
;1341:
|
|
;1342: //VectorClear( ent->client->ps.velocity );
|
|
;1343: VectorSubtract( blockOpp->r.currentOrigin, ent->r.currentOrigin, lockDir );
|
|
ADDRLP4 496
|
|
CNSTI4 368
|
|
ASGNI4
|
|
ADDRLP4 500
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 468
|
|
ADDRLP4 456
|
|
INDIRP4
|
|
ADDRLP4 496
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 500
|
|
INDIRP4
|
|
ADDRLP4 496
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 504
|
|
CNSTI4 372
|
|
ASGNI4
|
|
ADDRLP4 468+4
|
|
ADDRLP4 456
|
|
INDIRP4
|
|
ADDRLP4 504
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRLP4 500
|
|
INDIRP4
|
|
ADDRLP4 504
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
ADDRLP4 508
|
|
CNSTI4 376
|
|
ASGNI4
|
|
ADDRLP4 468+8
|
|
ADDRLP4 456
|
|
INDIRP4
|
|
ADDRLP4 508
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 508
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRF4
|
|
SUBF4
|
|
ASGNF4
|
|
line 1345
|
|
;1344: //lockAng[YAW] = vectoyaw( defDir );
|
|
;1345: vectoangles(lockDir, lockAng);
|
|
ADDRLP4 468
|
|
ARGP4
|
|
ADDRLP4 480
|
|
ARGP4
|
|
ADDRGP4 vectoangles
|
|
CALLV
|
|
pop
|
|
line 1346
|
|
;1346: SetClientViewAngle( ent, lockAng );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 480
|
|
ARGP4
|
|
ADDRGP4 SetClientViewAngle
|
|
CALLV
|
|
pop
|
|
line 1347
|
|
;1347: }
|
|
LABELV $627
|
|
line 1349
|
|
;1348:
|
|
;1349: if ( ( ent->client->buttons & BUTTON_ATTACK ) && ! ( ent->client->oldbuttons & BUTTON_ATTACK ) )
|
|
ADDRLP4 468
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 472
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRLP4 476
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 468
|
|
INDIRP4
|
|
CNSTI4 1584
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 472
|
|
INDIRI4
|
|
BANDI4
|
|
ADDRLP4 476
|
|
INDIRI4
|
|
EQI4 $631
|
|
ADDRLP4 468
|
|
INDIRP4
|
|
CNSTI4 1588
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 472
|
|
INDIRI4
|
|
BANDI4
|
|
ADDRLP4 476
|
|
INDIRI4
|
|
NEI4 $631
|
|
line 1350
|
|
;1350: {
|
|
line 1351
|
|
;1351: ent->client->ps.saberLockHits++;
|
|
ADDRLP4 480
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 536
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 480
|
|
INDIRP4
|
|
ADDRLP4 480
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 1352
|
|
;1352: }
|
|
LABELV $631
|
|
line 1353
|
|
;1353: if (ent->client->ps.saberLockHits > 2)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 536
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LEI4 $625
|
|
line 1354
|
|
;1354: {
|
|
line 1355
|
|
;1355: if (!ent->client->ps.saberLockAdvance)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 540
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $635
|
|
line 1356
|
|
;1356: {
|
|
line 1357
|
|
;1357: ent->client->ps.saberLockHits -= 3;
|
|
ADDRLP4 480
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 536
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 480
|
|
INDIRP4
|
|
ADDRLP4 480
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
SUBI4
|
|
ASGNI4
|
|
line 1358
|
|
;1358: }
|
|
LABELV $635
|
|
line 1359
|
|
;1359: ent->client->ps.saberLockAdvance = qtrue;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 540
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1360
|
|
;1360: }
|
|
line 1361
|
|
;1361: }
|
|
ADDRGP4 $625
|
|
JUMPV
|
|
LABELV $624
|
|
line 1363
|
|
;1362: else
|
|
;1363: {
|
|
line 1364
|
|
;1364: ent->client->ps.saberLockFrame = 0;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 532
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1365
|
|
;1365: }
|
|
LABELV $625
|
|
line 1367
|
|
;1366:
|
|
;1367: Pmove (&pm);
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRGP4 Pmove
|
|
CALLV
|
|
pop
|
|
line 1369
|
|
;1368:
|
|
;1369: switch(pm.cmd.generic_cmd)
|
|
ADDRLP4 456
|
|
ADDRLP4 8+4+23
|
|
INDIRU1
|
|
CVUI4 1
|
|
ASGNI4
|
|
ADDRLP4 456
|
|
INDIRI4
|
|
CNSTI4 0
|
|
LTI4 $638
|
|
ADDRLP4 456
|
|
INDIRI4
|
|
CNSTI4 20
|
|
GTI4 $638
|
|
ADDRLP4 456
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRGP4 $679
|
|
ADDP4
|
|
INDIRP4
|
|
JUMPV
|
|
lit
|
|
align 4
|
|
LABELV $679
|
|
address $638
|
|
address $643
|
|
address $644
|
|
address $645
|
|
address $646
|
|
address $647
|
|
address $648
|
|
address $649
|
|
address $650
|
|
address $651
|
|
address $652
|
|
address $653
|
|
address $654
|
|
address $655
|
|
address $656
|
|
address $659
|
|
address $662
|
|
address $665
|
|
address $670
|
|
address $675
|
|
address $678
|
|
code
|
|
line 1370
|
|
;1370: {
|
|
line 1372
|
|
;1371: case 0:
|
|
;1372: break;
|
|
LABELV $643
|
|
line 1374
|
|
;1373: case GENCMD_SABERSWITCH:
|
|
;1374: Cmd_ToggleSaber_f(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 Cmd_ToggleSaber_f
|
|
CALLV
|
|
pop
|
|
line 1375
|
|
;1375: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $644
|
|
line 1377
|
|
;1376: case GENCMD_ENGAGE_DUEL:
|
|
;1377: Cmd_EngageDuel_f(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 Cmd_EngageDuel_f
|
|
CALLV
|
|
pop
|
|
line 1378
|
|
;1378: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $645
|
|
line 1380
|
|
;1379: case GENCMD_FORCE_HEAL:
|
|
;1380: ForceHeal(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ForceHeal
|
|
CALLV
|
|
pop
|
|
line 1381
|
|
;1381: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $646
|
|
line 1383
|
|
;1382: case GENCMD_FORCE_SPEED:
|
|
;1383: ForceSpeed(ent, 0);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 ForceSpeed
|
|
CALLV
|
|
pop
|
|
line 1384
|
|
;1384: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $647
|
|
line 1386
|
|
;1385: case GENCMD_FORCE_THROW:
|
|
;1386: ForceThrow(ent, qfalse);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 ForceThrow
|
|
CALLV
|
|
pop
|
|
line 1387
|
|
;1387: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $648
|
|
line 1389
|
|
;1388: case GENCMD_FORCE_PULL:
|
|
;1389: ForceThrow(ent, qtrue);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 ForceThrow
|
|
CALLV
|
|
pop
|
|
line 1390
|
|
;1390: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $649
|
|
line 1392
|
|
;1391: case GENCMD_FORCE_DISTRACT:
|
|
;1392: ForceTelepathy(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ForceTelepathy
|
|
CALLV
|
|
pop
|
|
line 1393
|
|
;1393: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $650
|
|
line 1395
|
|
;1394: case GENCMD_FORCE_RAGE:
|
|
;1395: ForceRage(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ForceRage
|
|
CALLV
|
|
pop
|
|
line 1396
|
|
;1396: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $651
|
|
line 1398
|
|
;1397: case GENCMD_FORCE_PROTECT:
|
|
;1398: ForceProtect(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ForceProtect
|
|
CALLV
|
|
pop
|
|
line 1399
|
|
;1399: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $652
|
|
line 1401
|
|
;1400: case GENCMD_FORCE_ABSORB:
|
|
;1401: ForceAbsorb(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ForceAbsorb
|
|
CALLV
|
|
pop
|
|
line 1402
|
|
;1402: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $653
|
|
line 1404
|
|
;1403: case GENCMD_FORCE_HEALOTHER:
|
|
;1404: ForceTeamHeal(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ForceTeamHeal
|
|
CALLV
|
|
pop
|
|
line 1405
|
|
;1405: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $654
|
|
line 1407
|
|
;1406: case GENCMD_FORCE_FORCEPOWEROTHER:
|
|
;1407: ForceTeamForceReplenish(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ForceTeamForceReplenish
|
|
CALLV
|
|
pop
|
|
line 1408
|
|
;1408: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $655
|
|
line 1410
|
|
;1409: case GENCMD_FORCE_SEEING:
|
|
;1410: ForceSeeing(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ForceSeeing
|
|
CALLV
|
|
pop
|
|
line 1411
|
|
;1411: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $656
|
|
line 1413
|
|
;1412: case GENCMD_USE_SEEKER:
|
|
;1413: if ( (ent->client->ps.stats[STAT_HOLDABLE_ITEMS] & (1 << HI_SEEKER)) &&
|
|
ADDRLP4 464
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 464
|
|
INDIRP4
|
|
CNSTI4 224
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $638
|
|
ADDRLP4 464
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRLP4 468
|
|
ADDRGP4 G_ItemUsable
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 468
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $638
|
|
line 1415
|
|
;1414: G_ItemUsable(&ent->client->ps, HI_SEEKER) )
|
|
;1415: {
|
|
line 1416
|
|
;1416: ItemUse_Seeker(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ItemUse_Seeker
|
|
CALLV
|
|
pop
|
|
line 1417
|
|
;1417: G_AddEvent(ent, EV_USE_ITEM0+HI_SEEKER, 0);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 41
|
|
ARGI4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 1418
|
|
;1418: ent->client->ps.stats[STAT_HOLDABLE_ITEMS] &= ~(1 << HI_SEEKER);
|
|
ADDRLP4 472
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 224
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 472
|
|
INDIRP4
|
|
ADDRLP4 472
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 -3
|
|
BANDI4
|
|
ASGNI4
|
|
line 1419
|
|
;1419: }
|
|
line 1420
|
|
;1420: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $659
|
|
line 1422
|
|
;1421: case GENCMD_USE_FIELD:
|
|
;1422: if ( (ent->client->ps.stats[STAT_HOLDABLE_ITEMS] & (1 << HI_SHIELD)) &&
|
|
ADDRLP4 472
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 472
|
|
INDIRP4
|
|
CNSTI4 224
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 4
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $638
|
|
ADDRLP4 472
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 2
|
|
ARGI4
|
|
ADDRLP4 476
|
|
ADDRGP4 G_ItemUsable
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 476
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $638
|
|
line 1424
|
|
;1423: G_ItemUsable(&ent->client->ps, HI_SHIELD) )
|
|
;1424: {
|
|
line 1425
|
|
;1425: ItemUse_Shield(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ItemUse_Shield
|
|
CALLV
|
|
pop
|
|
line 1426
|
|
;1426: G_AddEvent(ent, EV_USE_ITEM0+HI_SHIELD, 0);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 42
|
|
ARGI4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 1427
|
|
;1427: ent->client->ps.stats[STAT_HOLDABLE_ITEMS] &= ~(1 << HI_SHIELD);
|
|
ADDRLP4 480
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 224
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 480
|
|
INDIRP4
|
|
ADDRLP4 480
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 -5
|
|
BANDI4
|
|
ASGNI4
|
|
line 1428
|
|
;1428: }
|
|
line 1429
|
|
;1429: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $662
|
|
line 1431
|
|
;1430: case GENCMD_USE_BACTA:
|
|
;1431: if ( (ent->client->ps.stats[STAT_HOLDABLE_ITEMS] & (1 << HI_MEDPAC)) &&
|
|
ADDRLP4 480
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 480
|
|
INDIRP4
|
|
CNSTI4 224
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 8
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $638
|
|
ADDRLP4 480
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 3
|
|
ARGI4
|
|
ADDRLP4 484
|
|
ADDRGP4 G_ItemUsable
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 484
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $638
|
|
line 1433
|
|
;1432: G_ItemUsable(&ent->client->ps, HI_MEDPAC) )
|
|
;1433: {
|
|
line 1434
|
|
;1434: ItemUse_MedPack(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ItemUse_MedPack
|
|
CALLV
|
|
pop
|
|
line 1435
|
|
;1435: G_AddEvent(ent, EV_USE_ITEM0+HI_MEDPAC, 0);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 43
|
|
ARGI4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 1436
|
|
;1436: ent->client->ps.stats[STAT_HOLDABLE_ITEMS] &= ~(1 << HI_MEDPAC);
|
|
ADDRLP4 488
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 224
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 488
|
|
INDIRP4
|
|
ADDRLP4 488
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 -9
|
|
BANDI4
|
|
ASGNI4
|
|
line 1437
|
|
;1437: }
|
|
line 1438
|
|
;1438: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $665
|
|
line 1440
|
|
;1439: case GENCMD_USE_ELECTROBINOCULARS:
|
|
;1440: if ( (ent->client->ps.stats[STAT_HOLDABLE_ITEMS] & (1 << HI_BINOCULARS)) &&
|
|
ADDRLP4 488
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 488
|
|
INDIRP4
|
|
CNSTI4 224
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 32
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $638
|
|
ADDRLP4 488
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 5
|
|
ARGI4
|
|
ADDRLP4 492
|
|
ADDRGP4 G_ItemUsable
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 492
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $638
|
|
line 1442
|
|
;1441: G_ItemUsable(&ent->client->ps, HI_BINOCULARS) )
|
|
;1442: {
|
|
line 1443
|
|
;1443: ItemUse_Binoculars(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ItemUse_Binoculars
|
|
CALLV
|
|
pop
|
|
line 1444
|
|
;1444: if (ent->client->ps.zoomMode == 0)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1320
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $668
|
|
line 1445
|
|
;1445: {
|
|
line 1446
|
|
;1446: G_AddEvent(ent, EV_USE_ITEM0+HI_BINOCULARS, 1);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 45
|
|
ARGI4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 1447
|
|
;1447: }
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $668
|
|
line 1449
|
|
;1448: else
|
|
;1449: {
|
|
line 1450
|
|
;1450: G_AddEvent(ent, EV_USE_ITEM0+HI_BINOCULARS, 2);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 45
|
|
ARGI4
|
|
CNSTI4 2
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 1451
|
|
;1451: }
|
|
line 1452
|
|
;1452: }
|
|
line 1453
|
|
;1453: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $670
|
|
line 1455
|
|
;1454: case GENCMD_ZOOM:
|
|
;1455: if ( (ent->client->ps.stats[STAT_HOLDABLE_ITEMS] & (1 << HI_BINOCULARS)) &&
|
|
ADDRLP4 496
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 496
|
|
INDIRP4
|
|
CNSTI4 224
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 32
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $638
|
|
ADDRLP4 496
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 5
|
|
ARGI4
|
|
ADDRLP4 500
|
|
ADDRGP4 G_ItemUsable
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 500
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $638
|
|
line 1457
|
|
;1456: G_ItemUsable(&ent->client->ps, HI_BINOCULARS) )
|
|
;1457: {
|
|
line 1458
|
|
;1458: ItemUse_Binoculars(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ItemUse_Binoculars
|
|
CALLV
|
|
pop
|
|
line 1459
|
|
;1459: if (ent->client->ps.zoomMode == 0)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1320
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $673
|
|
line 1460
|
|
;1460: {
|
|
line 1461
|
|
;1461: G_AddEvent(ent, EV_USE_ITEM0+HI_BINOCULARS, 1);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 45
|
|
ARGI4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 1462
|
|
;1462: }
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $673
|
|
line 1464
|
|
;1463: else
|
|
;1464: {
|
|
line 1465
|
|
;1465: G_AddEvent(ent, EV_USE_ITEM0+HI_BINOCULARS, 2);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 45
|
|
ARGI4
|
|
CNSTI4 2
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 1466
|
|
;1466: }
|
|
line 1467
|
|
;1467: }
|
|
line 1468
|
|
;1468: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $675
|
|
line 1470
|
|
;1469: case GENCMD_USE_SENTRY:
|
|
;1470: if ( (ent->client->ps.stats[STAT_HOLDABLE_ITEMS] & (1 << HI_SENTRY_GUN)) &&
|
|
ADDRLP4 504
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 504
|
|
INDIRP4
|
|
CNSTI4 224
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 64
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $638
|
|
ADDRLP4 504
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 6
|
|
ARGI4
|
|
ADDRLP4 508
|
|
ADDRGP4 G_ItemUsable
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 508
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $638
|
|
line 1472
|
|
;1471: G_ItemUsable(&ent->client->ps, HI_SENTRY_GUN) )
|
|
;1472: {
|
|
line 1473
|
|
;1473: ItemUse_Sentry(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ItemUse_Sentry
|
|
CALLV
|
|
pop
|
|
line 1474
|
|
;1474: G_AddEvent(ent, EV_USE_ITEM0+HI_SENTRY_GUN, 0);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 46
|
|
ARGI4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 G_AddEvent
|
|
CALLV
|
|
pop
|
|
line 1475
|
|
;1475: ent->client->ps.stats[STAT_HOLDABLE_ITEMS] &= ~(1 << HI_SENTRY_GUN);
|
|
ADDRLP4 512
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 224
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 512
|
|
INDIRP4
|
|
ADDRLP4 512
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 -65
|
|
BANDI4
|
|
ASGNI4
|
|
line 1476
|
|
;1476: }
|
|
line 1477
|
|
;1477: break;
|
|
ADDRGP4 $638
|
|
JUMPV
|
|
LABELV $678
|
|
line 1479
|
|
;1478: case GENCMD_SABERATTACKCYCLE:
|
|
;1479: Cmd_SaberAttackCycle_f(ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 Cmd_SaberAttackCycle_f
|
|
CALLV
|
|
pop
|
|
line 1480
|
|
;1480: break;
|
|
line 1482
|
|
;1481: default:
|
|
;1482: break;
|
|
LABELV $638
|
|
line 1486
|
|
;1483: }
|
|
;1484:
|
|
;1485: // save results of pmove
|
|
;1486: if ( ent->client->ps.eventSequence != oldEventSequence ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 112
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 392
|
|
INDIRI4
|
|
EQI4 $680
|
|
line 1487
|
|
;1487: ent->eventTime = level.time;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 488
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1488
|
|
;1488: }
|
|
LABELV $680
|
|
line 1489
|
|
;1489: if (g_smoothClients.integer) {
|
|
ADDRGP4 g_smoothClients+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $683
|
|
line 1490
|
|
;1490: BG_PlayerStateToEntityStateExtraPolate( &ent->client->ps, &ent->s, ent->client->ps.commandTime, qtrue );
|
|
ADDRLP4 464
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 468
|
|
ADDRLP4 464
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 468
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 464
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 468
|
|
INDIRP4
|
|
INDIRI4
|
|
ARGI4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 BG_PlayerStateToEntityStateExtraPolate
|
|
CALLV
|
|
pop
|
|
line 1491
|
|
;1491: }
|
|
ADDRGP4 $684
|
|
JUMPV
|
|
LABELV $683
|
|
line 1492
|
|
;1492: else {
|
|
line 1493
|
|
;1493: BG_PlayerStateToEntityState( &ent->client->ps, &ent->s, qtrue );
|
|
ADDRLP4 464
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 464
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 464
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 BG_PlayerStateToEntityState
|
|
CALLV
|
|
pop
|
|
line 1494
|
|
;1494: }
|
|
LABELV $684
|
|
line 1495
|
|
;1495: SendPendingPredictableEvents( &ent->client->ps );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 SendPendingPredictableEvents
|
|
CALLV
|
|
pop
|
|
line 1497
|
|
;1496:
|
|
;1497: if ( !( ent->client->ps.eFlags & EF_FIRING ) ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 108
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 256
|
|
BANDI4
|
|
CNSTI4 0
|
|
NEI4 $686
|
|
line 1498
|
|
;1498: client->fireHeld = qfalse; // for grapple
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1696
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1499
|
|
;1499: }
|
|
LABELV $686
|
|
line 1502
|
|
;1500:
|
|
;1501: // use the snapped origin for linking so it matches client predicted versions
|
|
;1502: VectorCopy( ent->s.pos.trBase, ent->r.currentOrigin );
|
|
ADDRLP4 464
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 464
|
|
INDIRP4
|
|
CNSTI4 368
|
|
ADDP4
|
|
ADDRLP4 464
|
|
INDIRP4
|
|
CNSTI4 24
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 1504
|
|
;1503:
|
|
;1504: VectorCopy (pm.mins, ent->r.mins);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 316
|
|
ADDP4
|
|
ADDRLP4 8+188
|
|
INDIRB
|
|
ASGNB 12
|
|
line 1505
|
|
;1505: VectorCopy (pm.maxs, ent->r.maxs);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 328
|
|
ADDP4
|
|
ADDRLP4 8+200
|
|
INDIRB
|
|
ASGNB 12
|
|
line 1507
|
|
;1506:
|
|
;1507: ent->waterlevel = pm.waterlevel;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 748
|
|
ADDP4
|
|
ADDRLP4 8+216
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1508
|
|
;1508: ent->watertype = pm.watertype;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 744
|
|
ADDP4
|
|
ADDRLP4 8+212
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1511
|
|
;1509:
|
|
;1510: // execute client events
|
|
;1511: ClientEvents( ent, oldEventSequence );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 392
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 ClientEvents
|
|
CALLV
|
|
pop
|
|
line 1513
|
|
;1512:
|
|
;1513: if ( pm.useEvent )
|
|
ADDRLP4 8+184
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $692
|
|
line 1514
|
|
;1514: {
|
|
line 1517
|
|
;1515: //TODO: Use
|
|
;1516:// TryUse( ent );
|
|
;1517: }
|
|
LABELV $692
|
|
line 1520
|
|
;1518:
|
|
;1519: // link entity now, after any personal teleporters have been used
|
|
;1520: trap_LinkEntity (ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 trap_LinkEntity
|
|
CALLV
|
|
pop
|
|
line 1521
|
|
;1521: if ( !ent->client->noclip ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1576
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $695
|
|
line 1522
|
|
;1522: G_TouchTriggers( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_TouchTriggers
|
|
CALLV
|
|
pop
|
|
line 1523
|
|
;1523: }
|
|
LABELV $695
|
|
line 1526
|
|
;1524:
|
|
;1525: // NOTE: now copy the exact origin over otherwise clients can be snapped into solid
|
|
;1526: VectorCopy( ent->client->ps.origin, ent->r.currentOrigin );
|
|
ADDRLP4 468
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 468
|
|
INDIRP4
|
|
CNSTI4 368
|
|
ADDP4
|
|
ADDRLP4 468
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
INDIRB
|
|
ASGNB 12
|
|
line 1532
|
|
;1527:
|
|
;1528: //test for solid areas in the AAS file
|
|
;1529:// BotTestAAS(ent->r.currentOrigin);
|
|
;1530:
|
|
;1531: // touch other objects
|
|
;1532: ClientImpacts( ent, &pm );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRGP4 ClientImpacts
|
|
CALLV
|
|
pop
|
|
line 1535
|
|
;1533:
|
|
;1534: // save results of triggers and client events
|
|
;1535: if (ent->client->ps.eventSequence != oldEventSequence) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 112
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 392
|
|
INDIRI4
|
|
EQI4 $697
|
|
line 1536
|
|
;1536: ent->eventTime = level.time;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 488
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1537
|
|
;1537: }
|
|
LABELV $697
|
|
line 1540
|
|
;1538:
|
|
;1539: // swap and latch button actions
|
|
;1540: client->oldbuttons = client->buttons;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1588
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1584
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1541
|
|
;1541: client->buttons = ucmd->buttons;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1584
|
|
ADDP4
|
|
ADDRLP4 384
|
|
INDIRP4
|
|
CNSTI4 16
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1542
|
|
;1542: client->latched_buttons |= client->buttons & ~client->oldbuttons;
|
|
ADDRLP4 480
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1592
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 480
|
|
INDIRP4
|
|
ADDRLP4 480
|
|
INDIRP4
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1584
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1588
|
|
ADDP4
|
|
INDIRI4
|
|
BCOMI4
|
|
BANDI4
|
|
BORI4
|
|
ASGNI4
|
|
line 1545
|
|
;1543:
|
|
;1544: // Did we kick someone in our pmove sequence?
|
|
;1545: if (client->ps.forceKickFlip)
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1280
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $700
|
|
line 1546
|
|
;1546: {
|
|
line 1547
|
|
;1547: gentity_t *faceKicked = &g_entities[client->ps.forceKickFlip-1];
|
|
ADDRLP4 484
|
|
CNSTI4 828
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1280
|
|
ADDP4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities-828
|
|
ADDP4
|
|
ASGNP4
|
|
line 1549
|
|
;1548:
|
|
;1549: if (faceKicked && faceKicked->client && (!OnSameTeam(ent, faceKicked) || g_friendlyFire.integer) &&
|
|
ADDRLP4 492
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 492
|
|
INDIRU4
|
|
EQU4 $703
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 492
|
|
INDIRU4
|
|
EQU4 $703
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 496
|
|
ADDRGP4 OnSameTeam
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 500
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 496
|
|
INDIRI4
|
|
ADDRLP4 500
|
|
INDIRI4
|
|
EQI4 $706
|
|
ADDRGP4 g_friendlyFire+12
|
|
INDIRI4
|
|
ADDRLP4 500
|
|
INDIRI4
|
|
EQI4 $703
|
|
LABELV $706
|
|
ADDRLP4 504
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 504
|
|
INDIRP4
|
|
CNSTI4 1292
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $707
|
|
ADDRLP4 504
|
|
INDIRP4
|
|
CNSTI4 1284
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI4
|
|
NEI4 $703
|
|
LABELV $707
|
|
ADDRLP4 508
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 508
|
|
INDIRP4
|
|
CNSTI4 1292
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $708
|
|
ADDRLP4 508
|
|
INDIRP4
|
|
CNSTI4 1284
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
INDIRI4
|
|
NEI4 $703
|
|
LABELV $708
|
|
line 1552
|
|
;1550: (!faceKicked->client->ps.duelInProgress || faceKicked->client->ps.duelIndex == ent->s.number) &&
|
|
;1551: (!ent->client->ps.duelInProgress || ent->client->ps.duelIndex == faceKicked->s.number))
|
|
;1552: {
|
|
line 1553
|
|
;1553: if ( faceKicked && faceKicked->client && faceKicked->health && faceKicked->takedamage )
|
|
ADDRLP4 516
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 516
|
|
INDIRU4
|
|
EQU4 $709
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 516
|
|
INDIRU4
|
|
EQU4 $709
|
|
ADDRLP4 520
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 520
|
|
INDIRI4
|
|
EQI4 $709
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
CNSTI4 680
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 520
|
|
INDIRI4
|
|
EQI4 $709
|
|
line 1554
|
|
;1554: {//push them away and do pain
|
|
line 1556
|
|
;1555: vec3_t oppDir;
|
|
;1556: int strength = (int)VectorNormalize2( client->ps.velocity, oppDir );
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 32
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 528
|
|
ARGP4
|
|
ADDRLP4 540
|
|
ADDRGP4 VectorNormalize2
|
|
CALLF4
|
|
ASGNF4
|
|
ADDRLP4 524
|
|
ADDRLP4 540
|
|
INDIRF4
|
|
CVFI4 4
|
|
ASGNI4
|
|
line 1558
|
|
;1557:
|
|
;1558: strength *= 0.05;
|
|
ADDRLP4 524
|
|
CNSTF4 1028443341
|
|
ADDRLP4 524
|
|
INDIRI4
|
|
CVIF4 4
|
|
MULF4
|
|
CVFI4 4
|
|
ASGNI4
|
|
line 1560
|
|
;1559:
|
|
;1560: VectorScale( oppDir, -1, oppDir );
|
|
ADDRLP4 544
|
|
CNSTF4 3212836864
|
|
ASGNF4
|
|
ADDRLP4 528
|
|
ADDRLP4 544
|
|
INDIRF4
|
|
ADDRLP4 528
|
|
INDIRF4
|
|
MULF4
|
|
ASGNF4
|
|
ADDRLP4 528+4
|
|
ADDRLP4 544
|
|
INDIRF4
|
|
ADDRLP4 528+4
|
|
INDIRF4
|
|
MULF4
|
|
ASGNF4
|
|
ADDRLP4 528+8
|
|
CNSTF4 3212836864
|
|
ADDRLP4 528+8
|
|
INDIRF4
|
|
MULF4
|
|
ASGNF4
|
|
line 1562
|
|
;1561:
|
|
;1562: G_Damage( faceKicked, ent, ent, oppDir, client->ps.origin, strength, DAMAGE_NO_ARMOR, MOD_MELEE );
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 548
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 548
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 548
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 528
|
|
ARGP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 20
|
|
ADDP4
|
|
ARGP4
|
|
ADDRLP4 524
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 552
|
|
CNSTI4 2
|
|
ASGNI4
|
|
ADDRLP4 552
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 552
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_Damage
|
|
CALLV
|
|
pop
|
|
line 1564
|
|
;1563:
|
|
;1564: if (faceKicked->health > 0 &&
|
|
ADDRLP4 560
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 560
|
|
INDIRI4
|
|
LEI4 $715
|
|
ADDRLP4 564
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 564
|
|
INDIRP4
|
|
CNSTI4 216
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRLP4 560
|
|
INDIRI4
|
|
LEI4 $715
|
|
ADDRLP4 564
|
|
INDIRP4
|
|
CNSTI4 1236
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 8
|
|
EQI4 $715
|
|
line 1567
|
|
;1565: faceKicked->client->ps.stats[STAT_HEALTH] > 0 &&
|
|
;1566: faceKicked->client->ps.forceHandExtend != HANDEXTEND_KNOCKDOWN)
|
|
;1567: {
|
|
line 1568
|
|
;1568: if (Q_irand(1, 10) <= 3)
|
|
CNSTI4 1
|
|
ARGI4
|
|
CNSTI4 10
|
|
ARGI4
|
|
ADDRLP4 568
|
|
ADDRGP4 Q_irand
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 568
|
|
INDIRI4
|
|
CNSTI4 3
|
|
GTI4 $717
|
|
line 1569
|
|
;1569: { //only actually knock over sometimes, but always do velocity hit
|
|
line 1570
|
|
;1570: faceKicked->client->ps.forceHandExtend = HANDEXTEND_KNOCKDOWN;
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1236
|
|
ADDP4
|
|
CNSTI4 8
|
|
ASGNI4
|
|
line 1571
|
|
;1571: faceKicked->client->ps.forceHandExtendTime = level.time + 1100;
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1240
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 1100
|
|
ADDI4
|
|
ASGNI4
|
|
line 1572
|
|
;1572: faceKicked->client->ps.forceDodgeAnim = 0; //this toggles between 1 and 0, when it's 1 we should play the get up anim
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1248
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1573
|
|
;1573: }
|
|
LABELV $717
|
|
line 1575
|
|
;1574:
|
|
;1575: faceKicked->client->ps.otherKiller = ent->s.number;
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 748
|
|
ADDP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1576
|
|
;1576: faceKicked->client->ps.otherKillerTime = level.time + 5000;
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 752
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 5000
|
|
ADDI4
|
|
ASGNI4
|
|
line 1577
|
|
;1577: faceKicked->client->ps.otherKillerDebounceTime = level.time + 100;
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 756
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
CNSTI4 100
|
|
ADDI4
|
|
ASGNI4
|
|
line 1579
|
|
;1578:
|
|
;1579: faceKicked->client->ps.velocity[0] = oppDir[0]*(strength*40);
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 32
|
|
ADDP4
|
|
ADDRLP4 528
|
|
INDIRF4
|
|
CNSTI4 40
|
|
ADDRLP4 524
|
|
INDIRI4
|
|
MULI4
|
|
CVIF4 4
|
|
MULF4
|
|
ASGNF4
|
|
line 1580
|
|
;1580: faceKicked->client->ps.velocity[1] = oppDir[1]*(strength*40);
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 36
|
|
ADDP4
|
|
ADDRLP4 528+4
|
|
INDIRF4
|
|
CNSTI4 40
|
|
ADDRLP4 524
|
|
INDIRI4
|
|
MULI4
|
|
CVIF4 4
|
|
MULF4
|
|
ASGNF4
|
|
line 1581
|
|
;1581: faceKicked->client->ps.velocity[2] = 200;
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 40
|
|
ADDP4
|
|
CNSTF4 1128792064
|
|
ASGNF4
|
|
line 1582
|
|
;1582: }
|
|
LABELV $715
|
|
line 1584
|
|
;1583:
|
|
;1584: G_Sound( faceKicked, CHAN_AUTO, G_SoundIndex( va("sound/weapons/melee/punch%d", Q_irand(1, 4)) ) );
|
|
CNSTI4 1
|
|
ARGI4
|
|
CNSTI4 4
|
|
ARGI4
|
|
ADDRLP4 568
|
|
ADDRGP4 Q_irand
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRGP4 $723
|
|
ARGP4
|
|
ADDRLP4 568
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 572
|
|
ADDRGP4 va
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 572
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 576
|
|
ADDRGP4 G_SoundIndex
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 484
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRLP4 576
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 G_Sound
|
|
CALLV
|
|
pop
|
|
line 1585
|
|
;1585: }
|
|
LABELV $709
|
|
line 1586
|
|
;1586: }
|
|
LABELV $703
|
|
line 1588
|
|
;1587:
|
|
;1588: client->ps.forceKickFlip = 0;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1280
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1589
|
|
;1589: }
|
|
LABELV $700
|
|
line 1592
|
|
;1590:
|
|
;1591: // check for respawning
|
|
;1592: if ( client->ps.stats[STAT_HEALTH] <= 0 ) {
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 216
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
GTI4 $724
|
|
line 1594
|
|
;1593: // wait for the attack button to be pressed
|
|
;1594: if ( level.time > client->respawnTime ) {
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1672
|
|
ADDP4
|
|
INDIRI4
|
|
LEI4 $438
|
|
line 1596
|
|
;1595: // forcerespawn is to prevent users from waiting out powerups
|
|
;1596: if ( g_forcerespawn.integer > 0 &&
|
|
ADDRGP4 g_forcerespawn+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
LEI4 $729
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI4 1672
|
|
ADDP4
|
|
INDIRI4
|
|
SUBI4
|
|
CNSTI4 1000
|
|
ADDRGP4 g_forcerespawn+12
|
|
INDIRI4
|
|
MULI4
|
|
LEI4 $729
|
|
line 1597
|
|
;1597: ( level.time - client->respawnTime ) > g_forcerespawn.integer * 1000 ) {
|
|
line 1598
|
|
;1598: respawn( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 respawn
|
|
CALLV
|
|
pop
|
|
line 1599
|
|
;1599: return;
|
|
ADDRGP4 $438
|
|
JUMPV
|
|
LABELV $729
|
|
line 1603
|
|
;1600: }
|
|
;1601:
|
|
;1602: // pressing attack or use is the normal respawn method
|
|
;1603: if ( ucmd->buttons & ( BUTTON_ATTACK | BUTTON_USE_HOLDABLE ) ) {
|
|
ADDRLP4 384
|
|
INDIRP4
|
|
CNSTI4 16
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 5
|
|
BANDI4
|
|
CNSTI4 0
|
|
EQI4 $438
|
|
line 1604
|
|
;1604: respawn( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 respawn
|
|
CALLV
|
|
pop
|
|
line 1605
|
|
;1605: }
|
|
line 1606
|
|
;1606: }
|
|
line 1607
|
|
;1607: return;
|
|
ADDRGP4 $438
|
|
JUMPV
|
|
LABELV $724
|
|
line 1611
|
|
;1608: }
|
|
;1609:
|
|
;1610: // perform once-a-second actions
|
|
;1611: ClientTimerActions( ent, msec );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 388
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 ClientTimerActions
|
|
CALLV
|
|
pop
|
|
line 1613
|
|
;1612:
|
|
;1613: G_UpdateClientBroadcasts ( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_UpdateClientBroadcasts
|
|
CALLV
|
|
pop
|
|
line 1614
|
|
;1614:}
|
|
LABELV $438
|
|
endproc ClientThink_real 580 32
|
|
export G_CheckClientTimeouts
|
|
proc G_CheckClientTimeouts 0 8
|
|
line 1624
|
|
;1615:
|
|
;1616:/*
|
|
;1617:==================
|
|
;1618:G_CheckClientTimeouts
|
|
;1619:
|
|
;1620:Checks whether a client has exceded any timeouts and act accordingly
|
|
;1621:==================
|
|
;1622:*/
|
|
;1623:void G_CheckClientTimeouts ( gentity_t *ent )
|
|
;1624:{
|
|
line 1626
|
|
;1625: // Only timeout supported right now is the timeout to spectator mode
|
|
;1626: if ( !g_timeouttospec.integer )
|
|
ADDRGP4 g_timeouttospec+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $737
|
|
line 1627
|
|
;1627: {
|
|
line 1628
|
|
;1628: return;
|
|
ADDRGP4 $736
|
|
JUMPV
|
|
LABELV $737
|
|
line 1632
|
|
;1629: }
|
|
;1630:
|
|
;1631: // Already a spectator, no need to boot them to spectator
|
|
;1632: if ( ent->client->sess.sessionTeam == TEAM_SPECTATOR )
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $740
|
|
line 1633
|
|
;1633: {
|
|
line 1634
|
|
;1634: return;
|
|
ADDRGP4 $736
|
|
JUMPV
|
|
LABELV $740
|
|
line 1639
|
|
;1635: }
|
|
;1636:
|
|
;1637: // See how long its been since a command was received by the client and if its
|
|
;1638: // longer than the timeout to spectator then force this client into spectator mode
|
|
;1639: if ( level.time - ent->client->pers.cmd.serverTime > g_timeouttospec.integer * 1000 )
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1372
|
|
ADDP4
|
|
INDIRI4
|
|
SUBI4
|
|
CNSTI4 1000
|
|
ADDRGP4 g_timeouttospec+12
|
|
INDIRI4
|
|
MULI4
|
|
LEI4 $742
|
|
line 1640
|
|
;1640: {
|
|
line 1641
|
|
;1641: SetTeam ( ent, "spectator" );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $746
|
|
ARGP4
|
|
ADDRGP4 SetTeam
|
|
CALLV
|
|
pop
|
|
line 1642
|
|
;1642: }
|
|
LABELV $742
|
|
line 1643
|
|
;1643:}
|
|
LABELV $736
|
|
endproc G_CheckClientTimeouts 0 8
|
|
export ClientThink
|
|
proc ClientThink 8 8
|
|
line 1652
|
|
;1644:
|
|
;1645:/*
|
|
;1646:==================
|
|
;1647:ClientThink
|
|
;1648:
|
|
;1649:A new command has arrived from the client
|
|
;1650:==================
|
|
;1651:*/
|
|
;1652:void ClientThink( int clientNum ) {
|
|
line 1655
|
|
;1653: gentity_t *ent;
|
|
;1654:
|
|
;1655: ent = g_entities + clientNum;
|
|
ADDRLP4 0
|
|
CNSTI4 828
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 g_entities
|
|
ADDP4
|
|
ASGNP4
|
|
line 1656
|
|
;1656: trap_GetUsercmd( clientNum, &ent->client->pers.cmd );
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1372
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 trap_GetUsercmd
|
|
CALLV
|
|
pop
|
|
line 1660
|
|
;1657:
|
|
;1658: // mark the time we got info, so we can display the
|
|
;1659: // phone jack if they don't get any for a while
|
|
;1660: ent->client->lastCmdTime = level.time;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1580
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1662
|
|
;1661:
|
|
;1662: if ( !(ent->r.svFlags & SVF_BOT) && !g_synchronousClients.integer ) {
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 304
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 8
|
|
BANDI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
NEI4 $749
|
|
ADDRGP4 g_synchronousClients+12
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
NEI4 $749
|
|
line 1663
|
|
;1663: ClientThink_real( ent );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ClientThink_real
|
|
CALLV
|
|
pop
|
|
line 1664
|
|
;1664: }
|
|
LABELV $749
|
|
line 1665
|
|
;1665:}
|
|
LABELV $747
|
|
endproc ClientThink 8 8
|
|
export G_RunClient
|
|
proc G_RunClient 4 4
|
|
line 1668
|
|
;1666:
|
|
;1667:
|
|
;1668:void G_RunClient( gentity_t *ent ) {
|
|
line 1669
|
|
;1669: if ( !(ent->r.svFlags & SVF_BOT) && !g_synchronousClients.integer ) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 304
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 8
|
|
BANDI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
NEI4 $753
|
|
ADDRGP4 g_synchronousClients+12
|
|
INDIRI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
NEI4 $753
|
|
line 1670
|
|
;1670: return;
|
|
ADDRGP4 $752
|
|
JUMPV
|
|
LABELV $753
|
|
line 1672
|
|
;1671: }
|
|
;1672: ent->client->pers.cmd.serverTime = level.time;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1372
|
|
ADDP4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1673
|
|
;1673: ClientThink_real( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 ClientThink_real
|
|
CALLV
|
|
pop
|
|
line 1674
|
|
;1674:}
|
|
LABELV $752
|
|
endproc G_RunClient 4 4
|
|
export SpectatorClientEndFrame
|
|
proc SpectatorClientEndFrame 24 8
|
|
line 1683
|
|
;1675:
|
|
;1676:
|
|
;1677:/*
|
|
;1678:==================
|
|
;1679:SpectatorClientEndFrame
|
|
;1680:
|
|
;1681:==================
|
|
;1682:*/
|
|
;1683:void SpectatorClientEndFrame( gentity_t *ent ) {
|
|
line 1687
|
|
;1684: gclient_t *cl;
|
|
;1685:
|
|
;1686: // if we are doing a chase cam or a remote view, grab the latest info
|
|
;1687: if ( ent->client->sess.spectatorState == SPECTATOR_FOLLOW ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1528
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
NEI4 $758
|
|
line 1690
|
|
;1688: int clientNum, flags;
|
|
;1689:
|
|
;1690: clientNum = ent->client->sess.spectatorClient;
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1532
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1693
|
|
;1691:
|
|
;1692: // team follow1 and team follow2 go to whatever clients are playing
|
|
;1693: if ( clientNum == -1 ) {
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 -1
|
|
NEI4 $760
|
|
line 1694
|
|
;1694: clientNum = level.follow1;
|
|
ADDRLP4 4
|
|
ADDRGP4 level+212
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1695
|
|
;1695: } else if ( clientNum == -2 ) {
|
|
ADDRGP4 $761
|
|
JUMPV
|
|
LABELV $760
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 -2
|
|
NEI4 $763
|
|
line 1696
|
|
;1696: clientNum = level.follow2;
|
|
ADDRLP4 4
|
|
ADDRGP4 level+216
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1697
|
|
;1697: }
|
|
LABELV $763
|
|
LABELV $761
|
|
line 1698
|
|
;1698: if ( clientNum >= 0 ) {
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
LTI4 $766
|
|
line 1699
|
|
;1699: cl = &level.clients[ clientNum ];
|
|
ADDRLP4 0
|
|
CNSTI4 1756
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
MULI4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
ADDP4
|
|
ASGNP4
|
|
line 1700
|
|
;1700: if ( cl->pers.connected == CON_CONNECTED && cl->sess.sessionTeam != TEAM_SPECTATOR ) {
|
|
ADDRLP4 12
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 2
|
|
NEI4 $768
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
EQI4 $768
|
|
line 1701
|
|
;1701: flags = (cl->ps.eFlags & ~(EF_VOTED | EF_TEAMVOTED)) | (ent->client->ps.eFlags & (EF_VOTED | EF_TEAMVOTED));
|
|
ADDRLP4 16
|
|
CNSTI4 108
|
|
ASGNI4
|
|
ADDRLP4 8
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 -540673
|
|
BANDI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 540672
|
|
BANDI4
|
|
BORI4
|
|
ASGNI4
|
|
line 1702
|
|
;1702: ent->client->ps = cl->ps;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRB
|
|
ASGNB 1368
|
|
line 1703
|
|
;1703: ent->client->ps.pm_flags |= PMF_FOLLOW;
|
|
ADDRLP4 20
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 12
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 4096
|
|
BORI4
|
|
ASGNI4
|
|
line 1704
|
|
;1704: ent->client->ps.eFlags = flags;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 108
|
|
ADDP4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1705
|
|
;1705: return;
|
|
ADDRGP4 $757
|
|
JUMPV
|
|
LABELV $768
|
|
line 1706
|
|
;1706: } else {
|
|
line 1708
|
|
;1707: // drop them to free spectators unless they are dedicated camera followers
|
|
;1708: if ( ent->client->sess.spectatorClient >= 0 ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1532
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
LTI4 $770
|
|
line 1709
|
|
;1709: ent->client->sess.spectatorState = SPECTATOR_FREE;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1528
|
|
ADDP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 1710
|
|
;1710: ClientBegin( ent->client - level.clients, qtrue );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRGP4 level
|
|
INDIRP4
|
|
CVPU4 4
|
|
SUBU4
|
|
CVUI4 4
|
|
CNSTI4 1756
|
|
DIVI4
|
|
ARGI4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 ClientBegin
|
|
CALLV
|
|
pop
|
|
line 1711
|
|
;1711: }
|
|
LABELV $770
|
|
line 1712
|
|
;1712: }
|
|
line 1713
|
|
;1713: }
|
|
LABELV $766
|
|
line 1714
|
|
;1714: }
|
|
LABELV $758
|
|
line 1716
|
|
;1715:
|
|
;1716: if ( ent->client->sess.spectatorState == SPECTATOR_SCOREBOARD ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1528
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $772
|
|
line 1717
|
|
;1717: ent->client->ps.pm_flags |= PMF_SCOREBOARD;
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 12
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 8192
|
|
BORI4
|
|
ASGNI4
|
|
line 1718
|
|
;1718: } else {
|
|
ADDRGP4 $773
|
|
JUMPV
|
|
LABELV $772
|
|
line 1719
|
|
;1719: ent->client->ps.pm_flags &= ~PMF_SCOREBOARD;
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 12
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 -8193
|
|
BANDI4
|
|
ASGNI4
|
|
line 1720
|
|
;1720: }
|
|
LABELV $773
|
|
line 1721
|
|
;1721:}
|
|
LABELV $757
|
|
endproc SpectatorClientEndFrame 24 8
|
|
export ClientEndFrame
|
|
proc ClientEndFrame 20 16
|
|
line 1732
|
|
;1722:
|
|
;1723:/*
|
|
;1724:==============
|
|
;1725:ClientEndFrame
|
|
;1726:
|
|
;1727:Called at the end of each server frame for each connected client
|
|
;1728:A fast client will have multiple ClientThink for each ClientEdFrame,
|
|
;1729:while a slow client may have multiple ClientEndFrame between ClientThink.
|
|
;1730:==============
|
|
;1731:*/
|
|
;1732:void ClientEndFrame( gentity_t *ent ) {
|
|
line 1736
|
|
;1733: int i;
|
|
;1734: clientPersistant_t *pers;
|
|
;1735:
|
|
;1736: if ( ent->client->sess.sessionTeam == TEAM_SPECTATOR ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1520
|
|
ADDP4
|
|
INDIRI4
|
|
CNSTI4 3
|
|
NEI4 $775
|
|
line 1737
|
|
;1737: SpectatorClientEndFrame( ent );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 SpectatorClientEndFrame
|
|
CALLV
|
|
pop
|
|
line 1738
|
|
;1738: return;
|
|
ADDRGP4 $774
|
|
JUMPV
|
|
LABELV $775
|
|
line 1741
|
|
;1739: }
|
|
;1740:
|
|
;1741: pers = &ent->client->pers;
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1368
|
|
ADDP4
|
|
ASGNP4
|
|
line 1744
|
|
;1742:
|
|
;1743: // turn off any expired powerups
|
|
;1744: for ( i = 0 ; i < MAX_POWERUPS ; i++ ) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
LABELV $777
|
|
line 1745
|
|
;1745: if ( ent->client->ps.powerups[ i ] < level.time ) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 344
|
|
ADDP4
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
GEI4 $781
|
|
line 1746
|
|
;1746: ent->client->ps.powerups[ i ] = 0;
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 344
|
|
ADDP4
|
|
ADDP4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 1747
|
|
;1747: }
|
|
LABELV $781
|
|
line 1748
|
|
;1748: }
|
|
LABELV $778
|
|
line 1744
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 16
|
|
LTI4 $777
|
|
line 1762
|
|
;1749:
|
|
;1750: // save network bandwidth
|
|
;1751:#if 0
|
|
;1752: if ( !g_synchronousClients->integer && (ent->client->ps.pm_type == PM_NORMAL || ent->client->ps.pm_type == PM_FLOAT) ) {
|
|
;1753: // FIXME: this must change eventually for non-sync demo recording
|
|
;1754: VectorClear( ent->client->ps.viewangles );
|
|
;1755: }
|
|
;1756:#endif
|
|
;1757:
|
|
;1758: //
|
|
;1759: // If the end of unit layout is displayed, don't give
|
|
;1760: // the player any normal movement attributes
|
|
;1761: //
|
|
;1762: if ( level.intermissiontime ) {
|
|
ADDRGP4 level+9008
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $784
|
|
line 1763
|
|
;1763: return;
|
|
ADDRGP4 $774
|
|
JUMPV
|
|
LABELV $784
|
|
line 1767
|
|
;1764: }
|
|
;1765:
|
|
;1766: // burn from lava, etc
|
|
;1767: P_WorldEffects (ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 P_WorldEffects
|
|
CALLV
|
|
pop
|
|
line 1770
|
|
;1768:
|
|
;1769: // apply all the damage taken this frame
|
|
;1770: P_DamageFeedback (ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 P_DamageFeedback
|
|
CALLV
|
|
pop
|
|
line 1773
|
|
;1771:
|
|
;1772: // add the EF_CONNECTION flag if we haven't gotten commands recently
|
|
;1773: if ( level.time - ent->client->lastCmdTime > 1000 ) {
|
|
ADDRGP4 level+32
|
|
INDIRI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 1580
|
|
ADDP4
|
|
INDIRI4
|
|
SUBI4
|
|
CNSTI4 1000
|
|
LEI4 $787
|
|
line 1774
|
|
;1774: ent->s.eFlags |= EF_CONNECTION;
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 8
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 8192
|
|
BORI4
|
|
ASGNI4
|
|
line 1775
|
|
;1775: } else {
|
|
ADDRGP4 $788
|
|
JUMPV
|
|
LABELV $787
|
|
line 1776
|
|
;1776: ent->s.eFlags &= ~EF_CONNECTION;
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 8
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 -8193
|
|
BANDI4
|
|
ASGNI4
|
|
line 1777
|
|
;1777: }
|
|
LABELV $788
|
|
line 1779
|
|
;1778:
|
|
;1779: ent->client->ps.stats[STAT_HEALTH] = ent->health; // FIXME: get rid of ent->health...
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
CNSTI4 216
|
|
ADDP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 676
|
|
ADDP4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 1781
|
|
;1780:
|
|
;1781: G_SetClientSound (ent);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 G_SetClientSound
|
|
CALLV
|
|
pop
|
|
line 1784
|
|
;1782:
|
|
;1783: // set the latest infor
|
|
;1784: if (g_smoothClients.integer) {
|
|
ADDRGP4 g_smoothClients+12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $790
|
|
line 1785
|
|
;1785: BG_PlayerStateToEntityStateExtraPolate( &ent->client->ps, &ent->s, ent->client->ps.commandTime, qtrue );
|
|
ADDRLP4 12
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
INDIRI4
|
|
ARGI4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 BG_PlayerStateToEntityStateExtraPolate
|
|
CALLV
|
|
pop
|
|
line 1786
|
|
;1786: }
|
|
ADDRGP4 $791
|
|
JUMPV
|
|
LABELV $790
|
|
line 1787
|
|
;1787: else {
|
|
line 1788
|
|
;1788: BG_PlayerStateToEntityState( &ent->client->ps, &ent->s, qtrue );
|
|
ADDRLP4 12
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 BG_PlayerStateToEntityState
|
|
CALLV
|
|
pop
|
|
line 1789
|
|
;1789: }
|
|
LABELV $791
|
|
line 1790
|
|
;1790: SendPendingPredictableEvents( &ent->client->ps );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 408
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 SendPendingPredictableEvents
|
|
CALLV
|
|
pop
|
|
line 1795
|
|
;1791:
|
|
;1792: // set the bit for the reachability area the client is currently in
|
|
;1793:// i = trap_AAS_PointReachabilityAreaIndex( ent->client->ps.origin );
|
|
;1794:// ent->client->areabits[i >> 3] |= 1 << (i & 7);
|
|
;1795:}
|
|
LABELV $774
|
|
endproc ClientEndFrame 20 16
|
|
import saberOnSound
|
|
import saberOffSound
|
|
import G_ApplyKnockback
|
|
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 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_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 $746
|
|
char 1 115
|
|
char 1 112
|
|
char 1 101
|
|
char 1 99
|
|
char 1 116
|
|
char 1 97
|
|
char 1 116
|
|
char 1 111
|
|
char 1 114
|
|
char 1 0
|
|
align 1
|
|
LABELV $723
|
|
char 1 115
|
|
char 1 111
|
|
char 1 117
|
|
char 1 110
|
|
char 1 100
|
|
char 1 47
|
|
char 1 119
|
|
char 1 101
|
|
char 1 97
|
|
char 1 112
|
|
char 1 111
|
|
char 1 110
|
|
char 1 115
|
|
char 1 47
|
|
char 1 109
|
|
char 1 101
|
|
char 1 108
|
|
char 1 101
|
|
char 1 101
|
|
char 1 47
|
|
char 1 112
|
|
char 1 117
|
|
char 1 110
|
|
char 1 99
|
|
char 1 104
|
|
char 1 37
|
|
char 1 100
|
|
char 1 0
|
|
align 1
|
|
LABELV $613
|
|
char 1 99
|
|
char 1 101
|
|
char 1 110
|
|
char 1 116
|
|
char 1 101
|
|
char 1 114
|
|
char 1 118
|
|
char 1 105
|
|
char 1 101
|
|
char 1 119
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $544
|
|
char 1 80
|
|
char 1 76
|
|
char 1 68
|
|
char 1 85
|
|
char 1 69
|
|
char 1 76
|
|
char 1 83
|
|
char 1 84
|
|
char 1 79
|
|
char 1 80
|
|
char 1 0
|
|
align 1
|
|
LABELV $543
|
|
char 1 112
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 32
|
|
char 1 34
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 34
|
|
char 1 0
|
|
align 1
|
|
LABELV $538
|
|
char 1 80
|
|
char 1 76
|
|
char 1 68
|
|
char 1 85
|
|
char 1 69
|
|
char 1 76
|
|
char 1 84
|
|
char 1 73
|
|
char 1 69
|
|
char 1 0
|
|
align 1
|
|
LABELV $537
|
|
char 1 99
|
|
char 1 112
|
|
char 1 32
|
|
char 1 34
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 34
|
|
char 1 0
|
|
align 1
|
|
LABELV $536
|
|
char 1 80
|
|
char 1 76
|
|
char 1 68
|
|
char 1 85
|
|
char 1 69
|
|
char 1 76
|
|
char 1 87
|
|
char 1 73
|
|
char 1 78
|
|
char 1 78
|
|
char 1 69
|
|
char 1 82
|
|
char 1 0
|
|
align 1
|
|
LABELV $535
|
|
char 1 83
|
|
char 1 86
|
|
char 1 73
|
|
char 1 78
|
|
char 1 71
|
|
char 1 65
|
|
char 1 77
|
|
char 1 69
|
|
char 1 0
|
|
align 1
|
|
LABELV $534
|
|
char 1 99
|
|
char 1 112
|
|
char 1 32
|
|
char 1 34
|
|
char 1 37
|
|
char 1 115
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 33
|
|
char 1 10
|
|
char 1 34
|
|
char 1 0
|
|
align 1
|
|
LABELV $509
|
|
char 1 115
|
|
char 1 111
|
|
char 1 117
|
|
char 1 110
|
|
char 1 100
|
|
char 1 47
|
|
char 1 119
|
|
char 1 101
|
|
char 1 97
|
|
char 1 112
|
|
char 1 111
|
|
char 1 110
|
|
char 1 115
|
|
char 1 47
|
|
char 1 115
|
|
char 1 97
|
|
char 1 98
|
|
char 1 101
|
|
char 1 114
|
|
char 1 47
|
|
char 1 115
|
|
char 1 97
|
|
char 1 98
|
|
char 1 101
|
|
char 1 114
|
|
char 1 111
|
|
char 1 110
|
|
char 1 46
|
|
char 1 119
|
|
char 1 97
|
|
char 1 118
|
|
char 1 0
|
|
align 1
|
|
LABELV $508
|
|
char 1 115
|
|
char 1 111
|
|
char 1 117
|
|
char 1 110
|
|
char 1 100
|
|
char 1 47
|
|
char 1 119
|
|
char 1 101
|
|
char 1 97
|
|
char 1 112
|
|
char 1 111
|
|
char 1 110
|
|
char 1 115
|
|
char 1 47
|
|
char 1 115
|
|
char 1 97
|
|
char 1 98
|
|
char 1 101
|
|
char 1 114
|
|
char 1 47
|
|
char 1 115
|
|
char 1 97
|
|
char 1 98
|
|
char 1 101
|
|
char 1 114
|
|
char 1 111
|
|
char 1 102
|
|
char 1 102
|
|
char 1 113
|
|
char 1 117
|
|
char 1 105
|
|
char 1 99
|
|
char 1 107
|
|
char 1 46
|
|
char 1 119
|
|
char 1 97
|
|
char 1 118
|
|
char 1 0
|
|
align 1
|
|
LABELV $461
|
|
char 1 51
|
|
char 1 51
|
|
char 1 0
|
|
align 1
|
|
LABELV $457
|
|
char 1 56
|
|
char 1 0
|
|
align 1
|
|
LABELV $456
|
|
char 1 112
|
|
char 1 109
|
|
char 1 111
|
|
char 1 118
|
|
char 1 101
|
|
char 1 95
|
|
char 1 109
|
|
char 1 115
|
|
char 1 101
|
|
char 1 99
|
|
char 1 0
|
|
align 1
|
|
LABELV $346
|
|
char 1 99
|
|
char 1 112
|
|
char 1 32
|
|
char 1 34
|
|
char 1 84
|
|
char 1 101
|
|
char 1 110
|
|
char 1 32
|
|
char 1 115
|
|
char 1 101
|
|
char 1 99
|
|
char 1 111
|
|
char 1 110
|
|
char 1 100
|
|
char 1 115
|
|
char 1 32
|
|
char 1 117
|
|
char 1 110
|
|
char 1 116
|
|
char 1 105
|
|
char 1 108
|
|
char 1 32
|
|
char 1 105
|
|
char 1 110
|
|
char 1 97
|
|
char 1 99
|
|
char 1 116
|
|
char 1 105
|
|
char 1 118
|
|
char 1 105
|
|
char 1 116
|
|
char 1 121
|
|
char 1 32
|
|
char 1 100
|
|
char 1 114
|
|
char 1 111
|
|
char 1 112
|
|
char 1 33
|
|
char 1 10
|
|
char 1 34
|
|
char 1 0
|
|
align 1
|
|
LABELV $342
|
|
char 1 68
|
|
char 1 114
|
|
char 1 111
|
|
char 1 112
|
|
char 1 112
|
|
char 1 101
|
|
char 1 100
|
|
char 1 32
|
|
char 1 100
|
|
char 1 117
|
|
char 1 101
|
|
char 1 32
|
|
char 1 116
|
|
char 1 111
|
|
char 1 32
|
|
char 1 105
|
|
char 1 110
|
|
char 1 97
|
|
char 1 99
|
|
char 1 116
|
|
char 1 105
|
|
char 1 118
|
|
char 1 105
|
|
char 1 116
|
|
char 1 121
|
|
char 1 0
|
|
align 1
|
|
LABELV $126
|
|
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 103
|
|
char 1 117
|
|
char 1 114
|
|
char 1 112
|
|
char 1 50
|
|
char 1 46
|
|
char 1 119
|
|
char 1 97
|
|
char 1 118
|
|
char 1 0
|
|
align 1
|
|
LABELV $123
|
|
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 103
|
|
char 1 117
|
|
char 1 114
|
|
char 1 112
|
|
char 1 49
|
|
char 1 46
|
|
char 1 119
|
|
char 1 97
|
|
char 1 118
|
|
char 1 0
|