11467 lines
143 KiB
NASM
11467 lines
143 KiB
NASM
|
|
data
|
||
|
|
export pm_stopspeed
|
||
|
|
align 4
|
||
|
|
LABELV pm_stopspeed
|
||
|
|
byte 4 1120403456
|
||
|
|
export pm_duckScale
|
||
|
|
align 4
|
||
|
|
LABELV pm_duckScale
|
||
|
|
byte 4 1048576000
|
||
|
|
export pm_swimScale
|
||
|
|
align 4
|
||
|
|
LABELV pm_swimScale
|
||
|
|
byte 4 1056964608
|
||
|
|
export pm_wadeScale
|
||
|
|
align 4
|
||
|
|
LABELV pm_wadeScale
|
||
|
|
byte 4 1060320051
|
||
|
|
export pm_accelerate
|
||
|
|
align 4
|
||
|
|
LABELV pm_accelerate
|
||
|
|
byte 4 1092616192
|
||
|
|
export pm_airaccelerate
|
||
|
|
align 4
|
||
|
|
LABELV pm_airaccelerate
|
||
|
|
byte 4 1065353216
|
||
|
|
export pm_wateraccelerate
|
||
|
|
align 4
|
||
|
|
LABELV pm_wateraccelerate
|
||
|
|
byte 4 1082130432
|
||
|
|
export pm_flyaccelerate
|
||
|
|
align 4
|
||
|
|
LABELV pm_flyaccelerate
|
||
|
|
byte 4 1090519040
|
||
|
|
export pm_friction
|
||
|
|
align 4
|
||
|
|
LABELV pm_friction
|
||
|
|
byte 4 1086324736
|
||
|
|
export pm_waterfriction
|
||
|
|
align 4
|
||
|
|
LABELV pm_waterfriction
|
||
|
|
byte 4 1065353216
|
||
|
|
export pm_flightfriction
|
||
|
|
align 4
|
||
|
|
LABELV pm_flightfriction
|
||
|
|
byte 4 1077936128
|
||
|
|
export pm_spectatorfriction
|
||
|
|
align 4
|
||
|
|
LABELV pm_spectatorfriction
|
||
|
|
byte 4 1084227584
|
||
|
|
export c_pmove
|
||
|
|
align 4
|
||
|
|
LABELV c_pmove
|
||
|
|
byte 4 0
|
||
|
|
export PM_AddEvent
|
||
|
|
code
|
||
|
|
proc PM_AddEvent 0 12
|
||
|
|
file "debug-x86-Linux-2.3/TA/cgame/game/bg_pmove.c"
|
||
|
|
line 38
|
||
|
|
;1:// Copyright (C) 1999-2000 Id Software, Inc.
|
||
|
|
;2://
|
||
|
|
;3:// bg_pmove.c -- both games player movement code
|
||
|
|
;4:// takes a playerstate and a usercmd as input and returns a modifed playerstate
|
||
|
|
;5:
|
||
|
|
;6:#include "q_shared.h"
|
||
|
|
;7:#include "bg_public.h"
|
||
|
|
;8:#include "bg_local.h"
|
||
|
|
;9:
|
||
|
|
;10:pmove_t *pm;
|
||
|
|
;11:pml_t pml;
|
||
|
|
;12:
|
||
|
|
;13:// movement parameters
|
||
|
|
;14:float pm_stopspeed = 100.0f;
|
||
|
|
;15:float pm_duckScale = 0.25f;
|
||
|
|
;16:float pm_swimScale = 0.50f;
|
||
|
|
;17:float pm_wadeScale = 0.70f;
|
||
|
|
;18:
|
||
|
|
;19:float pm_accelerate = 10.0f;
|
||
|
|
;20:float pm_airaccelerate = 1.0f;
|
||
|
|
;21:float pm_wateraccelerate = 4.0f;
|
||
|
|
;22:float pm_flyaccelerate = 8.0f;
|
||
|
|
;23:
|
||
|
|
;24:float pm_friction = 6.0f;
|
||
|
|
;25:float pm_waterfriction = 1.0f;
|
||
|
|
;26:float pm_flightfriction = 3.0f;
|
||
|
|
;27:float pm_spectatorfriction = 5.0f;
|
||
|
|
;28:
|
||
|
|
;29:int c_pmove = 0;
|
||
|
|
;30:
|
||
|
|
;31:
|
||
|
|
;32:/*
|
||
|
|
;33:===============
|
||
|
|
;34:PM_AddEvent
|
||
|
|
;35:
|
||
|
|
;36:===============
|
||
|
|
;37:*/
|
||
|
|
;38:void PM_AddEvent( int newEvent ) {
|
||
|
|
line 39
|
||
|
|
;39: BG_AddPredictableEventToPlayerstate( newEvent, 0, pm->ps );
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
CNSTI4 0
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 BG_AddPredictableEventToPlayerstate
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 40
|
||
|
|
;40:}
|
||
|
|
LABELV $41
|
||
|
|
endproc PM_AddEvent 0 12
|
||
|
|
export PM_AddTouchEnt
|
||
|
|
proc PM_AddTouchEnt 12 0
|
||
|
|
line 47
|
||
|
|
;41:
|
||
|
|
;42:/*
|
||
|
|
;43:===============
|
||
|
|
;44:PM_AddTouchEnt
|
||
|
|
;45:===============
|
||
|
|
;46:*/
|
||
|
|
;47:void PM_AddTouchEnt( int entityNum ) {
|
||
|
|
line 50
|
||
|
|
;48: int i;
|
||
|
|
;49:
|
||
|
|
;50: if ( entityNum == ENTITYNUM_WORLD ) {
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1022
|
||
|
|
NEI4 $43
|
||
|
|
line 51
|
||
|
|
;51: return;
|
||
|
|
ADDRGP4 $42
|
||
|
|
JUMPV
|
||
|
|
LABELV $43
|
||
|
|
line 53
|
||
|
|
;52: }
|
||
|
|
;53: if ( pm->numtouch == MAXTOUCH ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 48
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 32
|
||
|
|
NEI4 $45
|
||
|
|
line 54
|
||
|
|
;54: return;
|
||
|
|
ADDRGP4 $42
|
||
|
|
JUMPV
|
||
|
|
LABELV $45
|
||
|
|
line 58
|
||
|
|
;55: }
|
||
|
|
;56:
|
||
|
|
;57: // see if it is already added
|
||
|
|
;58: for ( i = 0 ; i < pm->numtouch ; i++ ) {
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRGP4 $50
|
||
|
|
JUMPV
|
||
|
|
LABELV $47
|
||
|
|
line 59
|
||
|
|
;59: if ( pm->touchents[ i ] == entityNum ) {
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 52
|
||
|
|
ADDP4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $51
|
||
|
|
line 60
|
||
|
|
;60: return;
|
||
|
|
ADDRGP4 $42
|
||
|
|
JUMPV
|
||
|
|
LABELV $51
|
||
|
|
line 62
|
||
|
|
;61: }
|
||
|
|
;62: }
|
||
|
|
LABELV $48
|
||
|
|
line 58
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
LABELV $50
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 48
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
LTI4 $47
|
||
|
|
line 65
|
||
|
|
;63:
|
||
|
|
;64: // add it
|
||
|
|
;65: pm->touchents[pm->numtouch] = entityNum;
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 48
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 52
|
||
|
|
ADDP4
|
||
|
|
ADDP4
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
line 66
|
||
|
|
;66: pm->numtouch++;
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 48
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
line 67
|
||
|
|
;67:}
|
||
|
|
LABELV $42
|
||
|
|
endproc PM_AddTouchEnt 12 0
|
||
|
|
proc PM_StartTorsoAnim 8 0
|
||
|
|
line 74
|
||
|
|
;68:
|
||
|
|
;69:/*
|
||
|
|
;70:===================
|
||
|
|
;71:PM_StartTorsoAnim
|
||
|
|
;72:===================
|
||
|
|
;73:*/
|
||
|
|
;74:static void PM_StartTorsoAnim( int anim ) {
|
||
|
|
line 75
|
||
|
|
;75: if ( pm->ps->pm_type >= PM_DEAD ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 3
|
||
|
|
LTI4 $54
|
||
|
|
line 76
|
||
|
|
;76: return;
|
||
|
|
ADDRGP4 $53
|
||
|
|
JUMPV
|
||
|
|
LABELV $54
|
||
|
|
line 78
|
||
|
|
;77: }
|
||
|
|
;78: pm->ps->torsoAnim = ( ( pm->ps->torsoAnim & ANIM_TOGGLEBIT ) ^ ANIM_TOGGLEBIT )
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 84
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 4
|
||
|
|
CNSTI4 128
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRI4
|
||
|
|
BANDI4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRI4
|
||
|
|
BXORI4
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRI4
|
||
|
|
BORI4
|
||
|
|
ASGNI4
|
||
|
|
line 80
|
||
|
|
;79: | anim;
|
||
|
|
;80:}
|
||
|
|
LABELV $53
|
||
|
|
endproc PM_StartTorsoAnim 8 0
|
||
|
|
proc PM_StartLegsAnim 8 0
|
||
|
|
line 81
|
||
|
|
;81:static void PM_StartLegsAnim( int anim ) {
|
||
|
|
line 82
|
||
|
|
;82: if ( pm->ps->pm_type >= PM_DEAD ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 3
|
||
|
|
LTI4 $57
|
||
|
|
line 83
|
||
|
|
;83: return;
|
||
|
|
ADDRGP4 $56
|
||
|
|
JUMPV
|
||
|
|
LABELV $57
|
||
|
|
line 85
|
||
|
|
;84: }
|
||
|
|
;85: if ( pm->ps->legsTimer > 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 72
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
LEI4 $59
|
||
|
|
line 86
|
||
|
|
;86: return; // a high priority animation is running
|
||
|
|
ADDRGP4 $56
|
||
|
|
JUMPV
|
||
|
|
LABELV $59
|
||
|
|
line 88
|
||
|
|
;87: }
|
||
|
|
;88: pm->ps->legsAnim = ( ( pm->ps->legsAnim & ANIM_TOGGLEBIT ) ^ ANIM_TOGGLEBIT )
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 76
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 4
|
||
|
|
CNSTI4 128
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRI4
|
||
|
|
BANDI4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRI4
|
||
|
|
BXORI4
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRI4
|
||
|
|
BORI4
|
||
|
|
ASGNI4
|
||
|
|
line 90
|
||
|
|
;89: | anim;
|
||
|
|
;90:}
|
||
|
|
LABELV $56
|
||
|
|
endproc PM_StartLegsAnim 8 0
|
||
|
|
proc PM_ContinueLegsAnim 0 4
|
||
|
|
line 92
|
||
|
|
;91:
|
||
|
|
;92:static void PM_ContinueLegsAnim( int anim ) {
|
||
|
|
line 93
|
||
|
|
;93: if ( ( pm->ps->legsAnim & ~ANIM_TOGGLEBIT ) == anim ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 76
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -129
|
||
|
|
BANDI4
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $62
|
||
|
|
line 94
|
||
|
|
;94: return;
|
||
|
|
ADDRGP4 $61
|
||
|
|
JUMPV
|
||
|
|
LABELV $62
|
||
|
|
line 96
|
||
|
|
;95: }
|
||
|
|
;96: if ( pm->ps->legsTimer > 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 72
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
LEI4 $64
|
||
|
|
line 97
|
||
|
|
;97: return; // a high priority animation is running
|
||
|
|
ADDRGP4 $61
|
||
|
|
JUMPV
|
||
|
|
LABELV $64
|
||
|
|
line 99
|
||
|
|
;98: }
|
||
|
|
;99: PM_StartLegsAnim( anim );
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StartLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 100
|
||
|
|
;100:}
|
||
|
|
LABELV $61
|
||
|
|
endproc PM_ContinueLegsAnim 0 4
|
||
|
|
proc PM_ContinueTorsoAnim 0 4
|
||
|
|
line 102
|
||
|
|
;101:
|
||
|
|
;102:static void PM_ContinueTorsoAnim( int anim ) {
|
||
|
|
line 103
|
||
|
|
;103: if ( ( pm->ps->torsoAnim & ~ANIM_TOGGLEBIT ) == anim ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 84
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -129
|
||
|
|
BANDI4
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $67
|
||
|
|
line 104
|
||
|
|
;104: return;
|
||
|
|
ADDRGP4 $66
|
||
|
|
JUMPV
|
||
|
|
LABELV $67
|
||
|
|
line 106
|
||
|
|
;105: }
|
||
|
|
;106: if ( pm->ps->torsoTimer > 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
LEI4 $69
|
||
|
|
line 107
|
||
|
|
;107: return; // a high priority animation is running
|
||
|
|
ADDRGP4 $66
|
||
|
|
JUMPV
|
||
|
|
LABELV $69
|
||
|
|
line 109
|
||
|
|
;108: }
|
||
|
|
;109: PM_StartTorsoAnim( anim );
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StartTorsoAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 110
|
||
|
|
;110:}
|
||
|
|
LABELV $66
|
||
|
|
endproc PM_ContinueTorsoAnim 0 4
|
||
|
|
proc PM_ForceLegsAnim 0 4
|
||
|
|
line 112
|
||
|
|
;111:
|
||
|
|
;112:static void PM_ForceLegsAnim( int anim ) {
|
||
|
|
line 113
|
||
|
|
;113: pm->ps->legsTimer = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 72
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 114
|
||
|
|
;114: PM_StartLegsAnim( anim );
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StartLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 115
|
||
|
|
;115:}
|
||
|
|
LABELV $71
|
||
|
|
endproc PM_ForceLegsAnim 0 4
|
||
|
|
export PM_ClipVelocity
|
||
|
|
proc PM_ClipVelocity 32 0
|
||
|
|
line 125
|
||
|
|
;116:
|
||
|
|
;117:
|
||
|
|
;118:/*
|
||
|
|
;119:==================
|
||
|
|
;120:PM_ClipVelocity
|
||
|
|
;121:
|
||
|
|
;122:Slide off of the impacting surface
|
||
|
|
;123:==================
|
||
|
|
;124:*/
|
||
|
|
;125:void PM_ClipVelocity( vec3_t in, vec3_t normal, vec3_t out, float overbounce ) {
|
||
|
|
line 130
|
||
|
|
;126: float backoff;
|
||
|
|
;127: float change;
|
||
|
|
;128: int i;
|
||
|
|
;129:
|
||
|
|
;130: backoff = DotProduct (in, normal);
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 16
|
||
|
|
ADDRFP4 4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 20
|
||
|
|
CNSTI4 4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 24
|
||
|
|
CNSTI4 8
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRI4
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRI4
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRI4
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRI4
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 132
|
||
|
|
;131:
|
||
|
|
;132: if ( backoff < 0 ) {
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 0
|
||
|
|
GEF4 $73
|
||
|
|
line 133
|
||
|
|
;133: backoff *= overbounce;
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRF4
|
||
|
|
ADDRFP4 12
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 134
|
||
|
|
;134: } else {
|
||
|
|
ADDRGP4 $74
|
||
|
|
JUMPV
|
||
|
|
LABELV $73
|
||
|
|
line 135
|
||
|
|
;135: backoff /= overbounce;
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRF4
|
||
|
|
ADDRFP4 12
|
||
|
|
INDIRF4
|
||
|
|
DIVF4
|
||
|
|
ASGNF4
|
||
|
|
line 136
|
||
|
|
;136: }
|
||
|
|
LABELV $74
|
||
|
|
line 138
|
||
|
|
;137:
|
||
|
|
;138: for ( i=0 ; i<3 ; i++ ) {
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
LABELV $75
|
||
|
|
line 139
|
||
|
|
;139: change = normal[i]*backoff;
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ADDRFP4 4
|
||
|
|
INDIRP4
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 140
|
||
|
|
;140: out[i] = in[i] - change;
|
||
|
|
ADDRLP4 28
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRI4
|
||
|
|
ADDRFP4 8
|
||
|
|
INDIRP4
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRI4
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
SUBF4
|
||
|
|
ASGNF4
|
||
|
|
line 141
|
||
|
|
;141: }
|
||
|
|
LABELV $76
|
||
|
|
line 138
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 3
|
||
|
|
LTI4 $75
|
||
|
|
line 142
|
||
|
|
;142:}
|
||
|
|
LABELV $72
|
||
|
|
endproc PM_ClipVelocity 32 0
|
||
|
|
proc PM_Friction 48 4
|
||
|
|
line 152
|
||
|
|
;143:
|
||
|
|
;144:
|
||
|
|
;145:/*
|
||
|
|
;146:==================
|
||
|
|
;147:PM_Friction
|
||
|
|
;148:
|
||
|
|
;149:Handles both ground friction and water friction
|
||
|
|
;150:==================
|
||
|
|
;151:*/
|
||
|
|
;152:static void PM_Friction( void ) {
|
||
|
|
line 158
|
||
|
|
;153: vec3_t vec;
|
||
|
|
;154: float *vel;
|
||
|
|
;155: float speed, newspeed, control;
|
||
|
|
;156: float drop;
|
||
|
|
;157:
|
||
|
|
;158: vel = pm->ps->velocity;
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
line 160
|
||
|
|
;159:
|
||
|
|
;160: VectorCopy( vel, vec );
|
||
|
|
ADDRLP4 16
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRB
|
||
|
|
ASGNB 12
|
||
|
|
line 161
|
||
|
|
;161: if ( pml.walking ) {
|
||
|
|
ADDRGP4 pml+44
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $80
|
||
|
|
line 162
|
||
|
|
;162: vec[2] = 0; // ignore slope movement
|
||
|
|
ADDRLP4 16+8
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
line 163
|
||
|
|
;163: }
|
||
|
|
LABELV $80
|
||
|
|
line 165
|
||
|
|
;164:
|
||
|
|
;165: speed = VectorLength(vec);
|
||
|
|
ADDRLP4 16
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 32
|
||
|
|
ADDRGP4 VectorLength
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 166
|
||
|
|
;166: if (speed < 1) {
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1065353216
|
||
|
|
GEF4 $84
|
||
|
|
line 167
|
||
|
|
;167: vel[0] = 0;
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
line 168
|
||
|
|
;168: vel[1] = 0; // allow sinking underwater
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
line 170
|
||
|
|
;169: // FIXME: still have z friction underwater?
|
||
|
|
;170: return;
|
||
|
|
ADDRGP4 $79
|
||
|
|
JUMPV
|
||
|
|
LABELV $84
|
||
|
|
line 173
|
||
|
|
;171: }
|
||
|
|
;172:
|
||
|
|
;173: drop = 0;
|
||
|
|
ADDRLP4 12
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
line 176
|
||
|
|
;174:
|
||
|
|
;175: // apply ground friction
|
||
|
|
;176: if ( pm->waterlevel <= 1 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
GTI4 $86
|
||
|
|
line 177
|
||
|
|
;177: if ( pml.walking && !(pml.groundTrace.surfaceFlags & SURF_SLICK) ) {
|
||
|
|
ADDRLP4 36
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRGP4 pml+44
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRI4
|
||
|
|
EQI4 $88
|
||
|
|
ADDRGP4 pml+52+44
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
BANDI4
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $88
|
||
|
|
line 179
|
||
|
|
;178: // if getting knocked back, no friction
|
||
|
|
;179: if ( ! (pm->ps->pm_flags & PMF_TIME_KNOCKBACK) ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 64
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $93
|
||
|
|
line 180
|
||
|
|
;180: control = speed < pm_stopspeed ? pm_stopspeed : speed;
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pm_stopspeed
|
||
|
|
INDIRF4
|
||
|
|
GEF4 $96
|
||
|
|
ADDRLP4 40
|
||
|
|
ADDRGP4 pm_stopspeed
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRGP4 $97
|
||
|
|
JUMPV
|
||
|
|
LABELV $96
|
||
|
|
ADDRLP4 40
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
LABELV $97
|
||
|
|
ADDRLP4 28
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 181
|
||
|
|
;181: drop += control*pm_friction*pml.frametime;
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pm_friction
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRGP4 pml+36
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 182
|
||
|
|
;182: }
|
||
|
|
LABELV $93
|
||
|
|
line 183
|
||
|
|
;183: }
|
||
|
|
LABELV $88
|
||
|
|
line 184
|
||
|
|
;184: }
|
||
|
|
LABELV $86
|
||
|
|
line 187
|
||
|
|
;185:
|
||
|
|
;186: // apply water friction even if just wading
|
||
|
|
;187: if ( pm->waterlevel ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $99
|
||
|
|
line 188
|
||
|
|
;188: drop += speed*pm_waterfriction*pm->waterlevel*pml.frametime;
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pm_waterfriction
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
MULF4
|
||
|
|
ADDRGP4 pml+36
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 189
|
||
|
|
;189: }
|
||
|
|
LABELV $99
|
||
|
|
line 192
|
||
|
|
;190:
|
||
|
|
;191: // apply flying friction
|
||
|
|
;192: if ( pm->ps->powerups[PW_FLIGHT]) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 336
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $102
|
||
|
|
line 193
|
||
|
|
;193: drop += speed*pm_flightfriction*pml.frametime;
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pm_flightfriction
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRGP4 pml+36
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 194
|
||
|
|
;194: }
|
||
|
|
LABELV $102
|
||
|
|
line 196
|
||
|
|
;195:
|
||
|
|
;196: if ( pm->ps->pm_type == PM_SPECTATOR) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
NEI4 $105
|
||
|
|
line 197
|
||
|
|
;197: drop += speed*pm_spectatorfriction*pml.frametime;
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pm_spectatorfriction
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRGP4 pml+36
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 198
|
||
|
|
;198: }
|
||
|
|
LABELV $105
|
||
|
|
line 201
|
||
|
|
;199:
|
||
|
|
;200: // scale the velocity
|
||
|
|
;201: newspeed = speed - drop;
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRF4
|
||
|
|
SUBF4
|
||
|
|
ASGNF4
|
||
|
|
line 202
|
||
|
|
;202: if (newspeed < 0) {
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 0
|
||
|
|
GEF4 $108
|
||
|
|
line 203
|
||
|
|
;203: newspeed = 0;
|
||
|
|
ADDRLP4 4
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
line 204
|
||
|
|
;204: }
|
||
|
|
LABELV $108
|
||
|
|
line 205
|
||
|
|
;205: newspeed /= speed;
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRF4
|
||
|
|
DIVF4
|
||
|
|
ASGNF4
|
||
|
|
line 207
|
||
|
|
;206:
|
||
|
|
;207: vel[0] = vel[0] * newspeed;
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 208
|
||
|
|
;208: vel[1] = vel[1] * newspeed;
|
||
|
|
ADDRLP4 40
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 209
|
||
|
|
;209: vel[2] = vel[2] * newspeed;
|
||
|
|
ADDRLP4 44
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 8
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 44
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 44
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 210
|
||
|
|
;210:}
|
||
|
|
LABELV $79
|
||
|
|
endproc PM_Friction 48 4
|
||
|
|
proc PM_Accelerate 32 0
|
||
|
|
line 220
|
||
|
|
;211:
|
||
|
|
;212:
|
||
|
|
;213:/*
|
||
|
|
;214:==============
|
||
|
|
;215:PM_Accelerate
|
||
|
|
;216:
|
||
|
|
;217:Handles user intended acceleration
|
||
|
|
;218:==============
|
||
|
|
;219:*/
|
||
|
|
;220:static void PM_Accelerate( vec3_t wishdir, float wishspeed, float accel ) {
|
||
|
|
line 226
|
||
|
|
;221:#if 1
|
||
|
|
;222: // q2 style
|
||
|
|
;223: int i;
|
||
|
|
;224: float addspeed, accelspeed, currentspeed;
|
||
|
|
;225:
|
||
|
|
;226: currentspeed = DotProduct (pm->ps->velocity, wishdir);
|
||
|
|
ADDRLP4 16
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 20
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 36
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 40
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 8
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 227
|
||
|
|
;227: addspeed = wishspeed - currentspeed;
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRFP4 4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRF4
|
||
|
|
SUBF4
|
||
|
|
ASGNF4
|
||
|
|
line 228
|
||
|
|
;228: if (addspeed <= 0) {
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 0
|
||
|
|
GTF4 $111
|
||
|
|
line 229
|
||
|
|
;229: return;
|
||
|
|
ADDRGP4 $110
|
||
|
|
JUMPV
|
||
|
|
LABELV $111
|
||
|
|
line 231
|
||
|
|
;230: }
|
||
|
|
;231: accelspeed = accel*pml.frametime*wishspeed;
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRFP4 8
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pml+36
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRFP4 4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 232
|
||
|
|
;232: if (accelspeed > addspeed) {
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRF4
|
||
|
|
LEF4 $114
|
||
|
|
line 233
|
||
|
|
;233: accelspeed = addspeed;
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 234
|
||
|
|
;234: }
|
||
|
|
LABELV $114
|
||
|
|
line 236
|
||
|
|
;235:
|
||
|
|
;236: for (i=0 ; i<3 ; i++) {
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
LABELV $116
|
||
|
|
line 237
|
||
|
|
;237: pm->ps->velocity[i] += accelspeed*wishdir[i];
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 28
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRI4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRI4
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 238
|
||
|
|
;238: }
|
||
|
|
LABELV $117
|
||
|
|
line 236
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 3
|
||
|
|
LTI4 $116
|
||
|
|
line 257
|
||
|
|
;239:#else
|
||
|
|
;240: // proper way (avoids strafe jump maxspeed bug), but feels bad
|
||
|
|
;241: vec3_t wishVelocity;
|
||
|
|
;242: vec3_t pushDir;
|
||
|
|
;243: float pushLen;
|
||
|
|
;244: float canPush;
|
||
|
|
;245:
|
||
|
|
;246: VectorScale( wishdir, wishspeed, wishVelocity );
|
||
|
|
;247: VectorSubtract( wishVelocity, pm->ps->velocity, pushDir );
|
||
|
|
;248: pushLen = VectorNormalize( pushDir );
|
||
|
|
;249:
|
||
|
|
;250: canPush = accel*pml.frametime*wishspeed;
|
||
|
|
;251: if (canPush > pushLen) {
|
||
|
|
;252: canPush = pushLen;
|
||
|
|
;253: }
|
||
|
|
;254:
|
||
|
|
;255: VectorMA( pm->ps->velocity, canPush, pushDir, pm->ps->velocity );
|
||
|
|
;256:#endif
|
||
|
|
;257:}
|
||
|
|
LABELV $110
|
||
|
|
endproc PM_Accelerate 32 0
|
||
|
|
proc PM_CmdScale 44 4
|
||
|
|
line 270
|
||
|
|
;258:
|
||
|
|
;259:
|
||
|
|
;260:
|
||
|
|
;261:/*
|
||
|
|
;262:============
|
||
|
|
;263:PM_CmdScale
|
||
|
|
;264:
|
||
|
|
;265:Returns the scale factor to apply to cmd movements
|
||
|
|
;266:This allows the clients to use axial -127 to 127 values for all directions
|
||
|
|
;267:without getting a sqrt(2) distortion in speed.
|
||
|
|
;268:============
|
||
|
|
;269:*/
|
||
|
|
;270:static float PM_CmdScale( usercmd_t *cmd ) {
|
||
|
|
line 275
|
||
|
|
;271: int max;
|
||
|
|
;272: float total;
|
||
|
|
;273: float scale;
|
||
|
|
;274:
|
||
|
|
;275: max = abs( cmd->forwardmove );
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 21
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRGP4 abs
|
||
|
|
CALLI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
line 276
|
||
|
|
;276: if ( abs( cmd->rightmove ) > max ) {
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 22
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 16
|
||
|
|
ADDRGP4 abs
|
||
|
|
CALLI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
LEI4 $121
|
||
|
|
line 277
|
||
|
|
;277: max = abs( cmd->rightmove );
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 22
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 20
|
||
|
|
ADDRGP4 abs
|
||
|
|
CALLI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
line 278
|
||
|
|
;278: }
|
||
|
|
LABELV $121
|
||
|
|
line 279
|
||
|
|
;279: if ( abs( cmd->upmove ) > max ) {
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 23
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 20
|
||
|
|
ADDRGP4 abs
|
||
|
|
CALLI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
LEI4 $123
|
||
|
|
line 280
|
||
|
|
;280: max = abs( cmd->upmove );
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 23
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRGP4 abs
|
||
|
|
CALLI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
line 281
|
||
|
|
;281: }
|
||
|
|
LABELV $123
|
||
|
|
line 282
|
||
|
|
;282: if ( !max ) {
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $125
|
||
|
|
line 283
|
||
|
|
;283: return 0;
|
||
|
|
CNSTF4 0
|
||
|
|
RETF4
|
||
|
|
ADDRGP4 $120
|
||
|
|
JUMPV
|
||
|
|
LABELV $125
|
||
|
|
line 286
|
||
|
|
;284: }
|
||
|
|
;285:
|
||
|
|
;286: total = sqrt( cmd->forwardmove * cmd->forwardmove
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 28
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 21
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 32
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 22
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 36
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 23
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRI4
|
||
|
|
MULI4
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRI4
|
||
|
|
MULI4
|
||
|
|
ADDI4
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRI4
|
||
|
|
MULI4
|
||
|
|
ADDI4
|
||
|
|
CVIF4 4
|
||
|
|
ARGF4
|
||
|
|
ADDRLP4 40
|
||
|
|
ADDRGP4 sqrt
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 288
|
||
|
|
;287: + cmd->rightmove * cmd->rightmove + cmd->upmove * cmd->upmove );
|
||
|
|
;288: scale = (float)pm->ps->speed * max / ( 127.0 * total );
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 52
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
MULF4
|
||
|
|
CNSTF4 1123942400
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
DIVF4
|
||
|
|
ASGNF4
|
||
|
|
line 290
|
||
|
|
;289:
|
||
|
|
;290: return scale;
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRF4
|
||
|
|
RETF4
|
||
|
|
LABELV $120
|
||
|
|
endproc PM_CmdScale 44 4
|
||
|
|
proc PM_SetMovementDir 72 0
|
||
|
|
line 302
|
||
|
|
;291:}
|
||
|
|
;292:
|
||
|
|
;293:
|
||
|
|
;294:/*
|
||
|
|
;295:================
|
||
|
|
;296:PM_SetMovementDir
|
||
|
|
;297:
|
||
|
|
;298:Determine the rotation of the legs reletive
|
||
|
|
;299:to the facing dir
|
||
|
|
;300:================
|
||
|
|
;301:*/
|
||
|
|
;302:static void PM_SetMovementDir( void ) {
|
||
|
|
line 303
|
||
|
|
;303: if ( pm->cmd.forwardmove || pm->cmd.rightmove ) {
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $130
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRI4
|
||
|
|
EQI4 $128
|
||
|
|
LABELV $130
|
||
|
|
line 304
|
||
|
|
;304: if ( pm->cmd.rightmove == 0 && pm->cmd.forwardmove > 0 ) {
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 12
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $131
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRI4
|
||
|
|
LEI4 $131
|
||
|
|
line 305
|
||
|
|
;305: pm->ps->movementDir = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 88
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 306
|
||
|
|
;306: } else if ( pm->cmd.rightmove < 0 && pm->cmd.forwardmove > 0 ) {
|
||
|
|
ADDRGP4 $129
|
||
|
|
JUMPV
|
||
|
|
LABELV $131
|
||
|
|
ADDRLP4 16
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 20
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRI4
|
||
|
|
GEI4 $133
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRI4
|
||
|
|
LEI4 $133
|
||
|
|
line 307
|
||
|
|
;307: pm->ps->movementDir = 1;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 88
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 1
|
||
|
|
ASGNI4
|
||
|
|
line 308
|
||
|
|
;308: } else if ( pm->cmd.rightmove < 0 && pm->cmd.forwardmove == 0 ) {
|
||
|
|
ADDRGP4 $129
|
||
|
|
JUMPV
|
||
|
|
LABELV $133
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 28
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRI4
|
||
|
|
GEI4 $135
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $135
|
||
|
|
line 309
|
||
|
|
;309: pm->ps->movementDir = 2;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 88
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 2
|
||
|
|
ASGNI4
|
||
|
|
line 310
|
||
|
|
;310: } else if ( pm->cmd.rightmove < 0 && pm->cmd.forwardmove < 0 ) {
|
||
|
|
ADDRGP4 $129
|
||
|
|
JUMPV
|
||
|
|
LABELV $135
|
||
|
|
ADDRLP4 32
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 36
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRI4
|
||
|
|
GEI4 $137
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRI4
|
||
|
|
GEI4 $137
|
||
|
|
line 311
|
||
|
|
;311: pm->ps->movementDir = 3;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 88
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 3
|
||
|
|
ASGNI4
|
||
|
|
line 312
|
||
|
|
;312: } else if ( pm->cmd.rightmove == 0 && pm->cmd.forwardmove < 0 ) {
|
||
|
|
ADDRGP4 $129
|
||
|
|
JUMPV
|
||
|
|
LABELV $137
|
||
|
|
ADDRLP4 40
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 44
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 44
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $139
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 44
|
||
|
|
INDIRI4
|
||
|
|
GEI4 $139
|
||
|
|
line 313
|
||
|
|
;313: pm->ps->movementDir = 4;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 88
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 4
|
||
|
|
ASGNI4
|
||
|
|
line 314
|
||
|
|
;314: } else if ( pm->cmd.rightmove > 0 && pm->cmd.forwardmove < 0 ) {
|
||
|
|
ADDRGP4 $129
|
||
|
|
JUMPV
|
||
|
|
LABELV $139
|
||
|
|
ADDRLP4 48
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 52
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 48
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 52
|
||
|
|
INDIRI4
|
||
|
|
LEI4 $141
|
||
|
|
ADDRLP4 48
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 52
|
||
|
|
INDIRI4
|
||
|
|
GEI4 $141
|
||
|
|
line 315
|
||
|
|
;315: pm->ps->movementDir = 5;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 88
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 5
|
||
|
|
ASGNI4
|
||
|
|
line 316
|
||
|
|
;316: } else if ( pm->cmd.rightmove > 0 && pm->cmd.forwardmove == 0 ) {
|
||
|
|
ADDRGP4 $129
|
||
|
|
JUMPV
|
||
|
|
LABELV $141
|
||
|
|
ADDRLP4 56
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 60
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 56
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 60
|
||
|
|
INDIRI4
|
||
|
|
LEI4 $143
|
||
|
|
ADDRLP4 56
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 60
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $143
|
||
|
|
line 317
|
||
|
|
;317: pm->ps->movementDir = 6;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 88
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 6
|
||
|
|
ASGNI4
|
||
|
|
line 318
|
||
|
|
;318: } else if ( pm->cmd.rightmove > 0 && pm->cmd.forwardmove > 0 ) {
|
||
|
|
ADDRGP4 $129
|
||
|
|
JUMPV
|
||
|
|
LABELV $143
|
||
|
|
ADDRLP4 64
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 68
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 64
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRI4
|
||
|
|
LEI4 $129
|
||
|
|
ADDRLP4 64
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRI4
|
||
|
|
LEI4 $129
|
||
|
|
line 319
|
||
|
|
;319: pm->ps->movementDir = 7;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 88
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 7
|
||
|
|
ASGNI4
|
||
|
|
line 320
|
||
|
|
;320: }
|
||
|
|
line 321
|
||
|
|
;321: } else {
|
||
|
|
ADDRGP4 $129
|
||
|
|
JUMPV
|
||
|
|
LABELV $128
|
||
|
|
line 325
|
||
|
|
;322: // if they aren't actively going directly sideways,
|
||
|
|
;323: // change the animation to the diagonal so they
|
||
|
|
;324: // don't stop too crooked
|
||
|
|
;325: if ( pm->ps->movementDir == 2 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 88
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
NEI4 $147
|
||
|
|
line 326
|
||
|
|
;326: pm->ps->movementDir = 1;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 88
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 1
|
||
|
|
ASGNI4
|
||
|
|
line 327
|
||
|
|
;327: } else if ( pm->ps->movementDir == 6 ) {
|
||
|
|
ADDRGP4 $148
|
||
|
|
JUMPV
|
||
|
|
LABELV $147
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 88
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 6
|
||
|
|
NEI4 $149
|
||
|
|
line 328
|
||
|
|
;328: pm->ps->movementDir = 7;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 88
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 7
|
||
|
|
ASGNI4
|
||
|
|
line 329
|
||
|
|
;329: }
|
||
|
|
LABELV $149
|
||
|
|
LABELV $148
|
||
|
|
line 330
|
||
|
|
;330: }
|
||
|
|
LABELV $129
|
||
|
|
line 331
|
||
|
|
;331:}
|
||
|
|
LABELV $127
|
||
|
|
endproc PM_SetMovementDir 72 0
|
||
|
|
proc PM_CheckJump 8 4
|
||
|
|
line 339
|
||
|
|
;332:
|
||
|
|
;333:
|
||
|
|
;334:/*
|
||
|
|
;335:=============
|
||
|
|
;336:PM_CheckJump
|
||
|
|
;337:=============
|
||
|
|
;338:*/
|
||
|
|
;339:static qboolean PM_CheckJump( void ) {
|
||
|
|
line 340
|
||
|
|
;340: if ( pm->ps->pm_flags & PMF_RESPAWNED ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 512
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $152
|
||
|
|
line 341
|
||
|
|
;341: return qfalse; // don't allow jump until all buttons are up
|
||
|
|
CNSTI4 0
|
||
|
|
RETI4
|
||
|
|
ADDRGP4 $151
|
||
|
|
JUMPV
|
||
|
|
LABELV $152
|
||
|
|
line 344
|
||
|
|
;342: }
|
||
|
|
;343:
|
||
|
|
;344: if ( pm->cmd.upmove < 10 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 27
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CNSTI4 10
|
||
|
|
GEI4 $154
|
||
|
|
line 346
|
||
|
|
;345: // not holding jump
|
||
|
|
;346: return qfalse;
|
||
|
|
CNSTI4 0
|
||
|
|
RETI4
|
||
|
|
ADDRGP4 $151
|
||
|
|
JUMPV
|
||
|
|
LABELV $154
|
||
|
|
line 350
|
||
|
|
;347: }
|
||
|
|
;348:
|
||
|
|
;349: // must wait for jump to be released
|
||
|
|
;350: if ( pm->ps->pm_flags & PMF_JUMP_HELD ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $156
|
||
|
|
line 352
|
||
|
|
;351: // clear upmove so cmdscale doesn't lower running speed
|
||
|
|
;352: pm->cmd.upmove = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 27
|
||
|
|
ADDP4
|
||
|
|
CNSTI1 0
|
||
|
|
ASGNI1
|
||
|
|
line 353
|
||
|
|
;353: return qfalse;
|
||
|
|
CNSTI4 0
|
||
|
|
RETI4
|
||
|
|
ADDRGP4 $151
|
||
|
|
JUMPV
|
||
|
|
LABELV $156
|
||
|
|
line 356
|
||
|
|
;354: }
|
||
|
|
;355:
|
||
|
|
;356: pml.groundPlane = qfalse; // jumping away
|
||
|
|
ADDRGP4 pml+48
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 357
|
||
|
|
;357: pml.walking = qfalse;
|
||
|
|
ADDRGP4 pml+44
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 358
|
||
|
|
;358: pm->ps->pm_flags |= PMF_JUMP_HELD;
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
BORI4
|
||
|
|
ASGNI4
|
||
|
|
line 360
|
||
|
|
;359:
|
||
|
|
;360: pm->ps->groundEntityNum = ENTITYNUM_NONE;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 68
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 1023
|
||
|
|
ASGNI4
|
||
|
|
line 361
|
||
|
|
;361: pm->ps->velocity[2] = JUMP_VELOCITY;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 40
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 1132920832
|
||
|
|
ASGNF4
|
||
|
|
line 362
|
||
|
|
;362: PM_AddEvent( EV_JUMP );
|
||
|
|
CNSTI4 14
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_AddEvent
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 364
|
||
|
|
;363:
|
||
|
|
;364: if ( pm->cmd.forwardmove >= 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CNSTI4 0
|
||
|
|
LTI4 $160
|
||
|
|
line 365
|
||
|
|
;365: PM_ForceLegsAnim( LEGS_JUMP );
|
||
|
|
CNSTI4 18
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ForceLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 366
|
||
|
|
;366: pm->ps->pm_flags &= ~PMF_BACKWARDS_JUMP;
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -9
|
||
|
|
BANDI4
|
||
|
|
ASGNI4
|
||
|
|
line 367
|
||
|
|
;367: } else {
|
||
|
|
ADDRGP4 $161
|
||
|
|
JUMPV
|
||
|
|
LABELV $160
|
||
|
|
line 368
|
||
|
|
;368: PM_ForceLegsAnim( LEGS_JUMPB );
|
||
|
|
CNSTI4 20
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ForceLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 369
|
||
|
|
;369: pm->ps->pm_flags |= PMF_BACKWARDS_JUMP;
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 8
|
||
|
|
BORI4
|
||
|
|
ASGNI4
|
||
|
|
line 370
|
||
|
|
;370: }
|
||
|
|
LABELV $161
|
||
|
|
line 372
|
||
|
|
;371:
|
||
|
|
;372: return qtrue;
|
||
|
|
CNSTI4 1
|
||
|
|
RETI4
|
||
|
|
LABELV $151
|
||
|
|
endproc PM_CheckJump 8 4
|
||
|
|
proc PM_CheckWaterJump 56 8
|
||
|
|
line 380
|
||
|
|
;373:}
|
||
|
|
;374:
|
||
|
|
;375:/*
|
||
|
|
;376:=============
|
||
|
|
;377:PM_CheckWaterJump
|
||
|
|
;378:=============
|
||
|
|
;379:*/
|
||
|
|
;380:static qboolean PM_CheckWaterJump( void ) {
|
||
|
|
line 385
|
||
|
|
;381: vec3_t spot;
|
||
|
|
;382: int cont;
|
||
|
|
;383: vec3_t flatforward;
|
||
|
|
;384:
|
||
|
|
;385: if (pm->ps->pm_time) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 16
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $163
|
||
|
|
line 386
|
||
|
|
;386: return qfalse;
|
||
|
|
CNSTI4 0
|
||
|
|
RETI4
|
||
|
|
ADDRGP4 $162
|
||
|
|
JUMPV
|
||
|
|
LABELV $163
|
||
|
|
line 390
|
||
|
|
;387: }
|
||
|
|
;388:
|
||
|
|
;389: // check for water jump
|
||
|
|
;390: if ( pm->waterlevel != 2 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
EQI4 $165
|
||
|
|
line 391
|
||
|
|
;391: return qfalse;
|
||
|
|
CNSTI4 0
|
||
|
|
RETI4
|
||
|
|
ADDRGP4 $162
|
||
|
|
JUMPV
|
||
|
|
LABELV $165
|
||
|
|
line 394
|
||
|
|
;392: }
|
||
|
|
;393:
|
||
|
|
;394: flatforward[0] = pml.forward[0];
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRGP4 pml
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 395
|
||
|
|
;395: flatforward[1] = pml.forward[1];
|
||
|
|
ADDRLP4 12+4
|
||
|
|
ADDRGP4 pml+4
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 396
|
||
|
|
;396: flatforward[2] = 0;
|
||
|
|
ADDRLP4 12+8
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
line 397
|
||
|
|
;397: VectorNormalize (flatforward);
|
||
|
|
ADDRLP4 12
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 VectorNormalize
|
||
|
|
CALLF4
|
||
|
|
pop
|
||
|
|
line 399
|
||
|
|
;398:
|
||
|
|
;399: VectorMA (pm->ps->origin, 30, flatforward, spot);
|
||
|
|
ADDRLP4 28
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 32
|
||
|
|
CNSTF4 1106247680
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 0+4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 24
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 12+4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 0+8
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 28
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1106247680
|
||
|
|
ADDRLP4 12+8
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 400
|
||
|
|
;400: spot[2] += 4;
|
||
|
|
ADDRLP4 0+8
|
||
|
|
ADDRLP4 0+8
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1082130432
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 401
|
||
|
|
;401: cont = pm->pointcontents (spot, pm->ps->clientNum );
|
||
|
|
ADDRLP4 0
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 36
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 140
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 40
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 228
|
||
|
|
ADDP4
|
||
|
|
INDIRP4
|
||
|
|
CALLI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
line 402
|
||
|
|
;402: if ( !(cont & CONTENTS_SOLID) ) {
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $175
|
||
|
|
line 403
|
||
|
|
;403: return qfalse;
|
||
|
|
CNSTI4 0
|
||
|
|
RETI4
|
||
|
|
ADDRGP4 $162
|
||
|
|
JUMPV
|
||
|
|
LABELV $175
|
||
|
|
line 406
|
||
|
|
;404: }
|
||
|
|
;405:
|
||
|
|
;406: spot[2] += 16;
|
||
|
|
ADDRLP4 0+8
|
||
|
|
ADDRLP4 0+8
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1098907648
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 407
|
||
|
|
;407: cont = pm->pointcontents (spot, pm->ps->clientNum );
|
||
|
|
ADDRLP4 0
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 44
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 44
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 140
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 48
|
||
|
|
ADDRLP4 44
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 228
|
||
|
|
ADDP4
|
||
|
|
INDIRP4
|
||
|
|
CALLI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRLP4 48
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
line 408
|
||
|
|
;408: if ( cont ) {
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $178
|
||
|
|
line 409
|
||
|
|
;409: return qfalse;
|
||
|
|
CNSTI4 0
|
||
|
|
RETI4
|
||
|
|
ADDRGP4 $162
|
||
|
|
JUMPV
|
||
|
|
LABELV $178
|
||
|
|
line 413
|
||
|
|
;410: }
|
||
|
|
;411:
|
||
|
|
;412: // jump out of water
|
||
|
|
;413: VectorScale (pml.forward, 200, pm->ps->velocity);
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 1128792064
|
||
|
|
ADDRGP4 pml
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 36
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 1128792064
|
||
|
|
ADDRGP4 pml+4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 40
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 1128792064
|
||
|
|
ADDRGP4 pml+8
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 414
|
||
|
|
;414: pm->ps->velocity[2] = 350;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 40
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 1135542272
|
||
|
|
ASGNF4
|
||
|
|
line 416
|
||
|
|
;415:
|
||
|
|
;416: pm->ps->pm_flags |= PMF_TIME_WATERJUMP;
|
||
|
|
ADDRLP4 52
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 52
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 52
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 256
|
||
|
|
BORI4
|
||
|
|
ASGNI4
|
||
|
|
line 417
|
||
|
|
;417: pm->ps->pm_time = 2000;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 16
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 2000
|
||
|
|
ASGNI4
|
||
|
|
line 419
|
||
|
|
;418:
|
||
|
|
;419: return qtrue;
|
||
|
|
CNSTI4 1
|
||
|
|
RETI4
|
||
|
|
LABELV $162
|
||
|
|
endproc PM_CheckWaterJump 56 8
|
||
|
|
proc PM_WaterJumpMove 12 4
|
||
|
|
line 432
|
||
|
|
;420:}
|
||
|
|
;421:
|
||
|
|
;422://============================================================================
|
||
|
|
;423:
|
||
|
|
;424:
|
||
|
|
;425:/*
|
||
|
|
;426:===================
|
||
|
|
;427:PM_WaterJumpMove
|
||
|
|
;428:
|
||
|
|
;429:Flying out of the water
|
||
|
|
;430:===================
|
||
|
|
;431:*/
|
||
|
|
;432:static void PM_WaterJumpMove( void ) {
|
||
|
|
line 435
|
||
|
|
;433: // waterjump has no control, but falls
|
||
|
|
;434:
|
||
|
|
;435: PM_StepSlideMove( qtrue );
|
||
|
|
CNSTI4 1
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StepSlideMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 437
|
||
|
|
;436:
|
||
|
|
;437: pm->ps->velocity[2] -= pm->ps->gravity * pml.frametime;
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 40
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 48
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
ADDRGP4 pml+36
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
SUBF4
|
||
|
|
ASGNF4
|
||
|
|
line 438
|
||
|
|
;438: if (pm->ps->velocity[2] < 0) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 40
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 0
|
||
|
|
GEF4 $184
|
||
|
|
line 440
|
||
|
|
;439: // cancel as soon as we are falling down again
|
||
|
|
;440: pm->ps->pm_flags &= ~PMF_ALL_TIMES;
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -353
|
||
|
|
BANDI4
|
||
|
|
ASGNI4
|
||
|
|
line 441
|
||
|
|
;441: pm->ps->pm_time = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 16
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 442
|
||
|
|
;442: }
|
||
|
|
LABELV $184
|
||
|
|
line 443
|
||
|
|
;443:}
|
||
|
|
LABELV $182
|
||
|
|
endproc PM_WaterJumpMove 12 4
|
||
|
|
proc PM_WaterMove 76 16
|
||
|
|
line 451
|
||
|
|
;444:
|
||
|
|
;445:/*
|
||
|
|
;446:===================
|
||
|
|
;447:PM_WaterMove
|
||
|
|
;448:
|
||
|
|
;449:===================
|
||
|
|
;450:*/
|
||
|
|
;451:static void PM_WaterMove( void ) {
|
||
|
|
line 459
|
||
|
|
;452: int i;
|
||
|
|
;453: vec3_t wishvel;
|
||
|
|
;454: float wishspeed;
|
||
|
|
;455: vec3_t wishdir;
|
||
|
|
;456: float scale;
|
||
|
|
;457: float vel;
|
||
|
|
;458:
|
||
|
|
;459: if ( PM_CheckWaterJump() ) {
|
||
|
|
ADDRLP4 40
|
||
|
|
ADDRGP4 PM_CheckWaterJump
|
||
|
|
CALLI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $187
|
||
|
|
line 460
|
||
|
|
;460: PM_WaterJumpMove();
|
||
|
|
ADDRGP4 PM_WaterJumpMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 461
|
||
|
|
;461: return;
|
||
|
|
ADDRGP4 $186
|
||
|
|
JUMPV
|
||
|
|
LABELV $187
|
||
|
|
line 477
|
||
|
|
;462: }
|
||
|
|
;463:#if 0
|
||
|
|
;464: // jump = head for surface
|
||
|
|
;465: if ( pm->cmd.upmove >= 10 ) {
|
||
|
|
;466: if (pm->ps->velocity[2] > -300) {
|
||
|
|
;467: if ( pm->watertype == CONTENTS_WATER ) {
|
||
|
|
;468: pm->ps->velocity[2] = 100;
|
||
|
|
;469: } else if (pm->watertype == CONTENTS_SLIME) {
|
||
|
|
;470: pm->ps->velocity[2] = 80;
|
||
|
|
;471: } else {
|
||
|
|
;472: pm->ps->velocity[2] = 50;
|
||
|
|
;473: }
|
||
|
|
;474: }
|
||
|
|
;475: }
|
||
|
|
;476:#endif
|
||
|
|
;477: PM_Friction ();
|
||
|
|
ADDRGP4 PM_Friction
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 479
|
||
|
|
;478:
|
||
|
|
;479: scale = PM_CmdScale( &pm->cmd );
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 44
|
||
|
|
ADDRGP4 PM_CmdScale
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRLP4 44
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 483
|
||
|
|
;480: //
|
||
|
|
;481: // user intentions
|
||
|
|
;482: //
|
||
|
|
;483: if ( !scale ) {
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 0
|
||
|
|
NEF4 $189
|
||
|
|
line 484
|
||
|
|
;484: wishvel[0] = 0;
|
||
|
|
ADDRLP4 8
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
line 485
|
||
|
|
;485: wishvel[1] = 0;
|
||
|
|
ADDRLP4 8+4
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
line 486
|
||
|
|
;486: wishvel[2] = -60; // sink towards bottom
|
||
|
|
ADDRLP4 8+8
|
||
|
|
CNSTF4 3262119936
|
||
|
|
ASGNF4
|
||
|
|
line 487
|
||
|
|
;487: } else {
|
||
|
|
ADDRGP4 $190
|
||
|
|
JUMPV
|
||
|
|
LABELV $189
|
||
|
|
line 488
|
||
|
|
;488: for (i=0 ; i<3 ; i++)
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
LABELV $193
|
||
|
|
line 489
|
||
|
|
;489: wishvel[i] = scale * pml.forward[i]*pm->cmd.forwardmove + scale * pml.right[i]*pm->cmd.rightmove;
|
||
|
|
ADDRLP4 48
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 56
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 48
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 48
|
||
|
|
INDIRI4
|
||
|
|
ADDRGP4 pml
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRLP4 56
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CVIF4 4
|
||
|
|
MULF4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 48
|
||
|
|
INDIRI4
|
||
|
|
ADDRGP4 pml+12
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRLP4 56
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CVIF4 4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
LABELV $194
|
||
|
|
line 488
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 3
|
||
|
|
LTI4 $193
|
||
|
|
line 491
|
||
|
|
;490:
|
||
|
|
;491: wishvel[2] += scale * pm->cmd.upmove;
|
||
|
|
ADDRLP4 8+8
|
||
|
|
ADDRLP4 8+8
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 27
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CVIF4 4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 492
|
||
|
|
;492: }
|
||
|
|
LABELV $190
|
||
|
|
line 494
|
||
|
|
;493:
|
||
|
|
;494: VectorCopy (wishvel, wishdir);
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRB
|
||
|
|
ASGNB 12
|
||
|
|
line 495
|
||
|
|
;495: wishspeed = VectorNormalize(wishdir);
|
||
|
|
ADDRLP4 24
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 48
|
||
|
|
ADDRGP4 VectorNormalize
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 20
|
||
|
|
ADDRLP4 48
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 497
|
||
|
|
;496:
|
||
|
|
;497: if ( wishspeed > pm->ps->speed * pm_swimScale ) {
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 52
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
ADDRGP4 pm_swimScale
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
LEF4 $199
|
||
|
|
line 498
|
||
|
|
;498: wishspeed = pm->ps->speed * pm_swimScale;
|
||
|
|
ADDRLP4 20
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 52
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
ADDRGP4 pm_swimScale
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 499
|
||
|
|
;499: }
|
||
|
|
LABELV $199
|
||
|
|
line 501
|
||
|
|
;500:
|
||
|
|
;501: PM_Accelerate (wishdir, wishspeed, pm_wateraccelerate);
|
||
|
|
ADDRLP4 24
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRF4
|
||
|
|
ARGF4
|
||
|
|
ADDRGP4 pm_wateraccelerate
|
||
|
|
INDIRF4
|
||
|
|
ARGF4
|
||
|
|
ADDRGP4 PM_Accelerate
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 504
|
||
|
|
;502:
|
||
|
|
;503: // make sure we can go up slopes easily under water
|
||
|
|
;504: if ( pml.groundPlane && DotProduct( pm->ps->velocity, pml.groundTrace.plane.normal ) < 0 ) {
|
||
|
|
ADDRGP4 pml+48
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $201
|
||
|
|
ADDRLP4 52
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 52
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pml+52+24
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRLP4 52
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 36
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pml+52+24+4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ADDRLP4 52
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 40
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pml+52+24+8
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
CNSTF4 0
|
||
|
|
GEF4 $201
|
||
|
|
line 505
|
||
|
|
;505: vel = VectorLength(pm->ps->velocity);
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 56
|
||
|
|
ADDRGP4 VectorLength
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 36
|
||
|
|
ADDRLP4 56
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 507
|
||
|
|
;506: // slide along the ground plane
|
||
|
|
;507: PM_ClipVelocity (pm->ps->velocity, pml.groundTrace.plane.normal,
|
||
|
|
ADDRLP4 60
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 60
|
||
|
|
INDIRP4
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 pml+52+24
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 60
|
||
|
|
INDIRP4
|
||
|
|
ARGP4
|
||
|
|
CNSTF4 1065361605
|
||
|
|
ARGF4
|
||
|
|
ADDRGP4 PM_ClipVelocity
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 510
|
||
|
|
;508: pm->ps->velocity, OVERCLIP );
|
||
|
|
;509:
|
||
|
|
;510: VectorNormalize(pm->ps->velocity);
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 VectorNormalize
|
||
|
|
CALLF4
|
||
|
|
pop
|
||
|
|
line 511
|
||
|
|
;511: VectorScale(pm->ps->velocity, vel, pm->ps->velocity);
|
||
|
|
ADDRLP4 64
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 64
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 64
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 68
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 36
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 72
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 40
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 72
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 72
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 512
|
||
|
|
;512: }
|
||
|
|
LABELV $201
|
||
|
|
line 514
|
||
|
|
;513:
|
||
|
|
;514: PM_SlideMove( qfalse );
|
||
|
|
CNSTI4 0
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_SlideMove
|
||
|
|
CALLI4
|
||
|
|
pop
|
||
|
|
line 515
|
||
|
|
;515:}
|
||
|
|
LABELV $186
|
||
|
|
endproc PM_WaterMove 76 16
|
||
|
|
proc PM_InvulnerabilityMove 8 0
|
||
|
|
line 525
|
||
|
|
;516:
|
||
|
|
;517:#ifdef MISSIONPACK
|
||
|
|
;518:/*
|
||
|
|
;519:===================
|
||
|
|
;520:PM_InvulnerabilityMove
|
||
|
|
;521:
|
||
|
|
;522:Only with the invulnerability powerup
|
||
|
|
;523:===================
|
||
|
|
;524:*/
|
||
|
|
;525:static void PM_InvulnerabilityMove( void ) {
|
||
|
|
line 526
|
||
|
|
;526: pm->cmd.forwardmove = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
CNSTI1 0
|
||
|
|
ASGNI1
|
||
|
|
line 527
|
||
|
|
;527: pm->cmd.rightmove = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
CNSTI1 0
|
||
|
|
ASGNI1
|
||
|
|
line 528
|
||
|
|
;528: pm->cmd.upmove = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 27
|
||
|
|
ADDP4
|
||
|
|
CNSTI1 0
|
||
|
|
ASGNI1
|
||
|
|
line 529
|
||
|
|
;529: VectorClear(pm->ps->velocity);
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 4
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 40
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 36
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 530
|
||
|
|
;530:}
|
||
|
|
LABELV $214
|
||
|
|
endproc PM_InvulnerabilityMove 8 0
|
||
|
|
proc PM_FlyMove 52 12
|
||
|
|
line 540
|
||
|
|
;531:#endif
|
||
|
|
;532:
|
||
|
|
;533:/*
|
||
|
|
;534:===================
|
||
|
|
;535:PM_FlyMove
|
||
|
|
;536:
|
||
|
|
;537:Only with the flight powerup
|
||
|
|
;538:===================
|
||
|
|
;539:*/
|
||
|
|
;540:static void PM_FlyMove( void ) {
|
||
|
|
line 548
|
||
|
|
;541: int i;
|
||
|
|
;542: vec3_t wishvel;
|
||
|
|
;543: float wishspeed;
|
||
|
|
;544: vec3_t wishdir;
|
||
|
|
;545: float scale;
|
||
|
|
;546:
|
||
|
|
;547: // normal slowdown
|
||
|
|
;548: PM_Friction ();
|
||
|
|
ADDRGP4 PM_Friction
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 550
|
||
|
|
;549:
|
||
|
|
;550: scale = PM_CmdScale( &pm->cmd );
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 36
|
||
|
|
ADDRGP4 PM_CmdScale
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 554
|
||
|
|
;551: //
|
||
|
|
;552: // user intentions
|
||
|
|
;553: //
|
||
|
|
;554: if ( !scale ) {
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 0
|
||
|
|
NEF4 $216
|
||
|
|
line 555
|
||
|
|
;555: wishvel[0] = 0;
|
||
|
|
ADDRLP4 8
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
line 556
|
||
|
|
;556: wishvel[1] = 0;
|
||
|
|
ADDRLP4 8+4
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
line 557
|
||
|
|
;557: wishvel[2] = 0;
|
||
|
|
ADDRLP4 8+8
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
line 558
|
||
|
|
;558: } else {
|
||
|
|
ADDRGP4 $217
|
||
|
|
JUMPV
|
||
|
|
LABELV $216
|
||
|
|
line 559
|
||
|
|
;559: for (i=0 ; i<3 ; i++) {
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
LABELV $220
|
||
|
|
line 560
|
||
|
|
;560: wishvel[i] = scale * pml.forward[i]*pm->cmd.forwardmove + scale * pml.right[i]*pm->cmd.rightmove;
|
||
|
|
ADDRLP4 40
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 48
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRI4
|
||
|
|
ADDRGP4 pml
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRLP4 48
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CVIF4 4
|
||
|
|
MULF4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRI4
|
||
|
|
ADDRGP4 pml+12
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRLP4 48
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CVIF4 4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 561
|
||
|
|
;561: }
|
||
|
|
LABELV $221
|
||
|
|
line 559
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 3
|
||
|
|
LTI4 $220
|
||
|
|
line 563
|
||
|
|
;562:
|
||
|
|
;563: wishvel[2] += scale * pm->cmd.upmove;
|
||
|
|
ADDRLP4 8+8
|
||
|
|
ADDRLP4 8+8
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 27
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CVIF4 4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 564
|
||
|
|
;564: }
|
||
|
|
LABELV $217
|
||
|
|
line 566
|
||
|
|
;565:
|
||
|
|
;566: VectorCopy (wishvel, wishdir);
|
||
|
|
ADDRLP4 20
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRB
|
||
|
|
ASGNB 12
|
||
|
|
line 567
|
||
|
|
;567: wishspeed = VectorNormalize(wishdir);
|
||
|
|
ADDRLP4 20
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 40
|
||
|
|
ADDRGP4 VectorNormalize
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 32
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 569
|
||
|
|
;568:
|
||
|
|
;569: PM_Accelerate (wishdir, wishspeed, pm_flyaccelerate);
|
||
|
|
ADDRLP4 20
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRF4
|
||
|
|
ARGF4
|
||
|
|
ADDRGP4 pm_flyaccelerate
|
||
|
|
INDIRF4
|
||
|
|
ARGF4
|
||
|
|
ADDRGP4 PM_Accelerate
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 571
|
||
|
|
;570:
|
||
|
|
;571: PM_StepSlideMove( qfalse );
|
||
|
|
CNSTI4 0
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StepSlideMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 572
|
||
|
|
;572:}
|
||
|
|
LABELV $215
|
||
|
|
endproc PM_FlyMove 52 12
|
||
|
|
proc PM_AirMove 80 16
|
||
|
|
line 581
|
||
|
|
;573:
|
||
|
|
;574:
|
||
|
|
;575:/*
|
||
|
|
;576:===================
|
||
|
|
;577:PM_AirMove
|
||
|
|
;578:
|
||
|
|
;579:===================
|
||
|
|
;580:*/
|
||
|
|
;581:static void PM_AirMove( void ) {
|
||
|
|
line 590
|
||
|
|
;582: int i;
|
||
|
|
;583: vec3_t wishvel;
|
||
|
|
;584: float fmove, smove;
|
||
|
|
;585: vec3_t wishdir;
|
||
|
|
;586: float wishspeed;
|
||
|
|
;587: float scale;
|
||
|
|
;588: usercmd_t cmd;
|
||
|
|
;589:
|
||
|
|
;590: PM_Friction();
|
||
|
|
ADDRGP4 PM_Friction
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 592
|
||
|
|
;591:
|
||
|
|
;592: fmove = pm->cmd.forwardmove;
|
||
|
|
ADDRLP4 16
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CVIF4 4
|
||
|
|
ASGNF4
|
||
|
|
line 593
|
||
|
|
;593: smove = pm->cmd.rightmove;
|
||
|
|
ADDRLP4 20
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CVIF4 4
|
||
|
|
ASGNF4
|
||
|
|
line 595
|
||
|
|
;594:
|
||
|
|
;595: cmd = pm->cmd;
|
||
|
|
ADDRLP4 44
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
INDIRB
|
||
|
|
ASGNB 24
|
||
|
|
line 596
|
||
|
|
;596: scale = PM_CmdScale( &cmd );
|
||
|
|
ADDRLP4 44
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 68
|
||
|
|
ADDRGP4 PM_CmdScale
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 40
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 599
|
||
|
|
;597:
|
||
|
|
;598: // set the movementDir so clients can rotate the legs for strafing
|
||
|
|
;599: PM_SetMovementDir();
|
||
|
|
ADDRGP4 PM_SetMovementDir
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 602
|
||
|
|
;600:
|
||
|
|
;601: // project moves down to flat plane
|
||
|
|
;602: pml.forward[2] = 0;
|
||
|
|
ADDRGP4 pml+8
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
line 603
|
||
|
|
;603: pml.right[2] = 0;
|
||
|
|
ADDRGP4 pml+12+8
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
line 604
|
||
|
|
;604: VectorNormalize (pml.forward);
|
||
|
|
ADDRGP4 pml
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 VectorNormalize
|
||
|
|
CALLF4
|
||
|
|
pop
|
||
|
|
line 605
|
||
|
|
;605: VectorNormalize (pml.right);
|
||
|
|
ADDRGP4 pml+12
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 VectorNormalize
|
||
|
|
CALLF4
|
||
|
|
pop
|
||
|
|
line 607
|
||
|
|
;606:
|
||
|
|
;607: for ( i = 0 ; i < 2 ; i++ ) {
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
LABELV $231
|
||
|
|
line 608
|
||
|
|
;608: wishvel[i] = pml.forward[i]*fmove + pml.right[i]*smove;
|
||
|
|
ADDRLP4 72
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 72
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 72
|
||
|
|
INDIRI4
|
||
|
|
ADDRGP4 pml
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRLP4 72
|
||
|
|
INDIRI4
|
||
|
|
ADDRGP4 pml+12
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 609
|
||
|
|
;609: }
|
||
|
|
LABELV $232
|
||
|
|
line 607
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LTI4 $231
|
||
|
|
line 610
|
||
|
|
;610: wishvel[2] = 0;
|
||
|
|
ADDRLP4 4+8
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
line 612
|
||
|
|
;611:
|
||
|
|
;612: VectorCopy (wishvel, wishdir);
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRB
|
||
|
|
ASGNB 12
|
||
|
|
line 613
|
||
|
|
;613: wishspeed = VectorNormalize(wishdir);
|
||
|
|
ADDRLP4 24
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 72
|
||
|
|
ADDRGP4 VectorNormalize
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 36
|
||
|
|
ADDRLP4 72
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 614
|
||
|
|
;614: wishspeed *= scale;
|
||
|
|
ADDRLP4 36
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 617
|
||
|
|
;615:
|
||
|
|
;616: // not on ground, so little effect on velocity
|
||
|
|
;617: PM_Accelerate (wishdir, wishspeed, pm_airaccelerate);
|
||
|
|
ADDRLP4 24
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRF4
|
||
|
|
ARGF4
|
||
|
|
ADDRGP4 pm_airaccelerate
|
||
|
|
INDIRF4
|
||
|
|
ARGF4
|
||
|
|
ADDRGP4 PM_Accelerate
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 622
|
||
|
|
;618:
|
||
|
|
;619: // we may have a ground plane that is very steep, even
|
||
|
|
;620: // though we don't have a groundentity
|
||
|
|
;621: // slide along the steep plane
|
||
|
|
;622: if ( pml.groundPlane ) {
|
||
|
|
ADDRGP4 pml+48
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $237
|
||
|
|
line 623
|
||
|
|
;623: PM_ClipVelocity (pm->ps->velocity, pml.groundTrace.plane.normal,
|
||
|
|
ADDRLP4 76
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 76
|
||
|
|
INDIRP4
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 pml+52+24
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 76
|
||
|
|
INDIRP4
|
||
|
|
ARGP4
|
||
|
|
CNSTF4 1065361605
|
||
|
|
ARGF4
|
||
|
|
ADDRGP4 PM_ClipVelocity
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 625
|
||
|
|
;624: pm->ps->velocity, OVERCLIP );
|
||
|
|
;625: }
|
||
|
|
LABELV $237
|
||
|
|
line 637
|
||
|
|
;626:
|
||
|
|
;627:#if 0
|
||
|
|
;628: //ZOID: If we are on the grapple, try stair-stepping
|
||
|
|
;629: //this allows a player to use the grapple to pull himself
|
||
|
|
;630: //over a ledge
|
||
|
|
;631: if (pm->ps->pm_flags & PMF_GRAPPLE_PULL)
|
||
|
|
;632: PM_StepSlideMove ( qtrue );
|
||
|
|
;633: else
|
||
|
|
;634: PM_SlideMove ( qtrue );
|
||
|
|
;635:#endif
|
||
|
|
;636:
|
||
|
|
;637: PM_StepSlideMove ( qtrue );
|
||
|
|
CNSTI4 1
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StepSlideMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 638
|
||
|
|
;638:}
|
||
|
|
LABELV $226
|
||
|
|
endproc PM_AirMove 80 16
|
||
|
|
proc PM_GrappleMove 52 4
|
||
|
|
line 646
|
||
|
|
;639:
|
||
|
|
;640:/*
|
||
|
|
;641:===================
|
||
|
|
;642:PM_GrappleMove
|
||
|
|
;643:
|
||
|
|
;644:===================
|
||
|
|
;645:*/
|
||
|
|
;646:static void PM_GrappleMove( void ) {
|
||
|
|
line 650
|
||
|
|
;647: vec3_t vel, v;
|
||
|
|
;648: float vlen;
|
||
|
|
;649:
|
||
|
|
;650: VectorScale(pml.forward, -16, v);
|
||
|
|
ADDRLP4 28
|
||
|
|
CNSTF4 3246391296
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pml
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 12+4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pml+4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 12+8
|
||
|
|
CNSTF4 3246391296
|
||
|
|
ADDRGP4 pml+8
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 651
|
||
|
|
;651: VectorAdd(pm->ps->grapplePoint, v, v);
|
||
|
|
ADDRLP4 32
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 92
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 12+4
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 96
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 12+4
|
||
|
|
INDIRF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 12+8
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 100
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 12+8
|
||
|
|
INDIRF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 652
|
||
|
|
;652: VectorSubtract(v, pm->ps->origin, vel);
|
||
|
|
ADDRLP4 36
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
SUBF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 0+4
|
||
|
|
ADDRLP4 12+4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 24
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
SUBF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 0+8
|
||
|
|
ADDRLP4 12+8
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 28
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
SUBF4
|
||
|
|
ASGNF4
|
||
|
|
line 653
|
||
|
|
;653: vlen = VectorLength(vel);
|
||
|
|
ADDRLP4 0
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 40
|
||
|
|
ADDRGP4 VectorLength
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 654
|
||
|
|
;654: VectorNormalize( vel );
|
||
|
|
ADDRLP4 0
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 VectorNormalize
|
||
|
|
CALLF4
|
||
|
|
pop
|
||
|
|
line 656
|
||
|
|
;655:
|
||
|
|
;656: if (vlen <= 100)
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1120403456
|
||
|
|
GTF4 $255
|
||
|
|
line 657
|
||
|
|
;657: VectorScale(vel, 10 * vlen, vel);
|
||
|
|
ADDRLP4 44
|
||
|
|
CNSTF4 1092616192
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 44
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 0+4
|
||
|
|
ADDRLP4 0+4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 44
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 0+8
|
||
|
|
ADDRLP4 0+8
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1092616192
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRGP4 $256
|
||
|
|
JUMPV
|
||
|
|
LABELV $255
|
||
|
|
line 659
|
||
|
|
;658: else
|
||
|
|
;659: VectorScale(vel, 800, vel);
|
||
|
|
ADDRLP4 48
|
||
|
|
CNSTF4 1145569280
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 48
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 0+4
|
||
|
|
ADDRLP4 48
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 0+4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 0+8
|
||
|
|
CNSTF4 1145569280
|
||
|
|
ADDRLP4 0+8
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
LABELV $256
|
||
|
|
line 661
|
||
|
|
;660:
|
||
|
|
;661: VectorCopy(vel, pm->ps->velocity);
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRB
|
||
|
|
ASGNB 12
|
||
|
|
line 663
|
||
|
|
;662:
|
||
|
|
;663: pml.groundPlane = qfalse;
|
||
|
|
ADDRGP4 pml+48
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 664
|
||
|
|
;664:}
|
||
|
|
LABELV $242
|
||
|
|
endproc PM_GrappleMove 52 4
|
||
|
|
proc PM_WalkMove 128 16
|
||
|
|
line 672
|
||
|
|
;665:
|
||
|
|
;666:/*
|
||
|
|
;667:===================
|
||
|
|
;668:PM_WalkMove
|
||
|
|
;669:
|
||
|
|
;670:===================
|
||
|
|
;671:*/
|
||
|
|
;672:static void PM_WalkMove( void ) {
|
||
|
|
line 683
|
||
|
|
;673: int i;
|
||
|
|
;674: vec3_t wishvel;
|
||
|
|
;675: float fmove, smove;
|
||
|
|
;676: vec3_t wishdir;
|
||
|
|
;677: float wishspeed;
|
||
|
|
;678: float scale;
|
||
|
|
;679: usercmd_t cmd;
|
||
|
|
;680: float accelerate;
|
||
|
|
;681: float vel;
|
||
|
|
;682:
|
||
|
|
;683: if ( pm->waterlevel > 2 && DotProduct( pml.forward, pml.groundTrace.plane.normal ) > 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LEI4 $267
|
||
|
|
ADDRGP4 pml
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pml+52+24
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRGP4 pml+4
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pml+52+24+4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ADDRGP4 pml+8
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pml+52+24+8
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
CNSTF4 0
|
||
|
|
LEF4 $267
|
||
|
|
line 685
|
||
|
|
;684: // begin swimming
|
||
|
|
;685: PM_WaterMove();
|
||
|
|
ADDRGP4 PM_WaterMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 686
|
||
|
|
;686: return;
|
||
|
|
ADDRGP4 $266
|
||
|
|
JUMPV
|
||
|
|
LABELV $267
|
||
|
|
line 690
|
||
|
|
;687: }
|
||
|
|
;688:
|
||
|
|
;689:
|
||
|
|
;690: if ( PM_CheckJump () ) {
|
||
|
|
ADDRLP4 76
|
||
|
|
ADDRGP4 PM_CheckJump
|
||
|
|
CALLI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 76
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $279
|
||
|
|
line 692
|
||
|
|
;691: // jumped away
|
||
|
|
;692: if ( pm->waterlevel > 1 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
LEI4 $281
|
||
|
|
line 693
|
||
|
|
;693: PM_WaterMove();
|
||
|
|
ADDRGP4 PM_WaterMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 694
|
||
|
|
;694: } else {
|
||
|
|
ADDRGP4 $266
|
||
|
|
JUMPV
|
||
|
|
LABELV $281
|
||
|
|
line 695
|
||
|
|
;695: PM_AirMove();
|
||
|
|
ADDRGP4 PM_AirMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 696
|
||
|
|
;696: }
|
||
|
|
line 697
|
||
|
|
;697: return;
|
||
|
|
ADDRGP4 $266
|
||
|
|
JUMPV
|
||
|
|
LABELV $279
|
||
|
|
line 700
|
||
|
|
;698: }
|
||
|
|
;699:
|
||
|
|
;700: PM_Friction ();
|
||
|
|
ADDRGP4 PM_Friction
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 702
|
||
|
|
;701:
|
||
|
|
;702: fmove = pm->cmd.forwardmove;
|
||
|
|
ADDRLP4 16
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CVIF4 4
|
||
|
|
ASGNF4
|
||
|
|
line 703
|
||
|
|
;703: smove = pm->cmd.rightmove;
|
||
|
|
ADDRLP4 20
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CVIF4 4
|
||
|
|
ASGNF4
|
||
|
|
line 705
|
||
|
|
;704:
|
||
|
|
;705: cmd = pm->cmd;
|
||
|
|
ADDRLP4 48
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
INDIRB
|
||
|
|
ASGNB 24
|
||
|
|
line 706
|
||
|
|
;706: scale = PM_CmdScale( &cmd );
|
||
|
|
ADDRLP4 48
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 80
|
||
|
|
ADDRGP4 PM_CmdScale
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 44
|
||
|
|
ADDRLP4 80
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 709
|
||
|
|
;707:
|
||
|
|
;708: // set the movementDir so clients can rotate the legs for strafing
|
||
|
|
;709: PM_SetMovementDir();
|
||
|
|
ADDRGP4 PM_SetMovementDir
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 712
|
||
|
|
;710:
|
||
|
|
;711: // project moves down to flat plane
|
||
|
|
;712: pml.forward[2] = 0;
|
||
|
|
ADDRGP4 pml+8
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
line 713
|
||
|
|
;713: pml.right[2] = 0;
|
||
|
|
ADDRGP4 pml+12+8
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
line 716
|
||
|
|
;714:
|
||
|
|
;715: // project the forward and right directions onto the ground plane
|
||
|
|
;716: PM_ClipVelocity (pml.forward, pml.groundTrace.plane.normal, pml.forward, OVERCLIP );
|
||
|
|
ADDRLP4 84
|
||
|
|
ADDRGP4 pml
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 84
|
||
|
|
INDIRP4
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 pml+52+24
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 84
|
||
|
|
INDIRP4
|
||
|
|
ARGP4
|
||
|
|
CNSTF4 1065361605
|
||
|
|
ARGF4
|
||
|
|
ADDRGP4 PM_ClipVelocity
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 717
|
||
|
|
;717: PM_ClipVelocity (pml.right, pml.groundTrace.plane.normal, pml.right, OVERCLIP );
|
||
|
|
ADDRGP4 pml+12
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 pml+52+24
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 pml+12
|
||
|
|
ARGP4
|
||
|
|
CNSTF4 1065361605
|
||
|
|
ARGF4
|
||
|
|
ADDRGP4 PM_ClipVelocity
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 719
|
||
|
|
;718: //
|
||
|
|
;719: VectorNormalize (pml.forward);
|
||
|
|
ADDRGP4 pml
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 VectorNormalize
|
||
|
|
CALLF4
|
||
|
|
pop
|
||
|
|
line 720
|
||
|
|
;720: VectorNormalize (pml.right);
|
||
|
|
ADDRGP4 pml+12
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 VectorNormalize
|
||
|
|
CALLF4
|
||
|
|
pop
|
||
|
|
line 722
|
||
|
|
;721:
|
||
|
|
;722: for ( i = 0 ; i < 3 ; i++ ) {
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
LABELV $293
|
||
|
|
line 723
|
||
|
|
;723: wishvel[i] = pml.forward[i]*fmove + pml.right[i]*smove;
|
||
|
|
ADDRLP4 88
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 88
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 88
|
||
|
|
INDIRI4
|
||
|
|
ADDRGP4 pml
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRLP4 88
|
||
|
|
INDIRI4
|
||
|
|
ADDRGP4 pml+12
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 724
|
||
|
|
;724: }
|
||
|
|
LABELV $294
|
||
|
|
line 722
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 3
|
||
|
|
LTI4 $293
|
||
|
|
line 728
|
||
|
|
;725: // when going up or down slopes the wish velocity should Not be zero
|
||
|
|
;726:// wishvel[2] = 0;
|
||
|
|
;727:
|
||
|
|
;728: VectorCopy (wishvel, wishdir);
|
||
|
|
ADDRLP4 32
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRB
|
||
|
|
ASGNB 12
|
||
|
|
line 729
|
||
|
|
;729: wishspeed = VectorNormalize(wishdir);
|
||
|
|
ADDRLP4 32
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 88
|
||
|
|
ADDRGP4 VectorNormalize
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRLP4 88
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 730
|
||
|
|
;730: wishspeed *= scale;
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 44
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 733
|
||
|
|
;731:
|
||
|
|
;732: // clamp the speed lower if ducking
|
||
|
|
;733: if ( pm->ps->pm_flags & PMF_DUCKED ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $298
|
||
|
|
line 734
|
||
|
|
;734: if ( wishspeed > pm->ps->speed * pm_duckScale ) {
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 52
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
ADDRGP4 pm_duckScale
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
LEF4 $300
|
||
|
|
line 735
|
||
|
|
;735: wishspeed = pm->ps->speed * pm_duckScale;
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 52
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
ADDRGP4 pm_duckScale
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 736
|
||
|
|
;736: }
|
||
|
|
LABELV $300
|
||
|
|
line 737
|
||
|
|
;737: }
|
||
|
|
LABELV $298
|
||
|
|
line 740
|
||
|
|
;738:
|
||
|
|
;739: // clamp the speed lower if wading or walking on the bottom
|
||
|
|
;740: if ( pm->waterlevel ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $302
|
||
|
|
line 743
|
||
|
|
;741: float waterScale;
|
||
|
|
;742:
|
||
|
|
;743: waterScale = pm->waterlevel / 3.0;
|
||
|
|
ADDRLP4 92
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
CNSTF4 1077936128
|
||
|
|
DIVF4
|
||
|
|
ASGNF4
|
||
|
|
line 744
|
||
|
|
;744: waterScale = 1.0 - ( 1.0 - pm_swimScale ) * waterScale;
|
||
|
|
ADDRLP4 96
|
||
|
|
CNSTF4 1065353216
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 92
|
||
|
|
ADDRLP4 96
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 96
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pm_swimScale
|
||
|
|
INDIRF4
|
||
|
|
SUBF4
|
||
|
|
ADDRLP4 92
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
SUBF4
|
||
|
|
ASGNF4
|
||
|
|
line 745
|
||
|
|
;745: if ( wishspeed > pm->ps->speed * waterScale ) {
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 52
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
ADDRLP4 92
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
LEF4 $304
|
||
|
|
line 746
|
||
|
|
;746: wishspeed = pm->ps->speed * waterScale;
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 52
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
ADDRLP4 92
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 747
|
||
|
|
;747: }
|
||
|
|
LABELV $304
|
||
|
|
line 748
|
||
|
|
;748: }
|
||
|
|
LABELV $302
|
||
|
|
line 752
|
||
|
|
;749:
|
||
|
|
;750: // when a player gets hit, they temporarily lose
|
||
|
|
;751: // full control, which allows them to be moved a bit
|
||
|
|
;752: if ( ( pml.groundTrace.surfaceFlags & SURF_SLICK ) || pm->ps->pm_flags & PMF_TIME_KNOCKBACK ) {
|
||
|
|
ADDRLP4 92
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRGP4 pml+52+44
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
BANDI4
|
||
|
|
ADDRLP4 92
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $310
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 64
|
||
|
|
BANDI4
|
||
|
|
ADDRLP4 92
|
||
|
|
INDIRI4
|
||
|
|
EQI4 $306
|
||
|
|
LABELV $310
|
||
|
|
line 753
|
||
|
|
;753: accelerate = pm_airaccelerate;
|
||
|
|
ADDRLP4 72
|
||
|
|
ADDRGP4 pm_airaccelerate
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 754
|
||
|
|
;754: } else {
|
||
|
|
ADDRGP4 $307
|
||
|
|
JUMPV
|
||
|
|
LABELV $306
|
||
|
|
line 755
|
||
|
|
;755: accelerate = pm_accelerate;
|
||
|
|
ADDRLP4 72
|
||
|
|
ADDRGP4 pm_accelerate
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 756
|
||
|
|
;756: }
|
||
|
|
LABELV $307
|
||
|
|
line 758
|
||
|
|
;757:
|
||
|
|
;758: PM_Accelerate (wishdir, wishspeed, accelerate);
|
||
|
|
ADDRLP4 32
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRF4
|
||
|
|
ARGF4
|
||
|
|
ADDRLP4 72
|
||
|
|
INDIRF4
|
||
|
|
ARGF4
|
||
|
|
ADDRGP4 PM_Accelerate
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 763
|
||
|
|
;759:
|
||
|
|
;760: //Com_Printf("velocity = %1.1f %1.1f %1.1f\n", pm->ps->velocity[0], pm->ps->velocity[1], pm->ps->velocity[2]);
|
||
|
|
;761: //Com_Printf("velocity1 = %1.1f\n", VectorLength(pm->ps->velocity));
|
||
|
|
;762:
|
||
|
|
;763: if ( ( pml.groundTrace.surfaceFlags & SURF_SLICK ) || pm->ps->pm_flags & PMF_TIME_KNOCKBACK ) {
|
||
|
|
ADDRLP4 96
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRGP4 pml+52+44
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
BANDI4
|
||
|
|
ADDRLP4 96
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $315
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 64
|
||
|
|
BANDI4
|
||
|
|
ADDRLP4 96
|
||
|
|
INDIRI4
|
||
|
|
EQI4 $311
|
||
|
|
LABELV $315
|
||
|
|
line 764
|
||
|
|
;764: pm->ps->velocity[2] -= pm->ps->gravity * pml.frametime;
|
||
|
|
ADDRLP4 100
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 104
|
||
|
|
ADDRLP4 100
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 40
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 104
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 104
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 100
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 48
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
ADDRGP4 pml+36
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
SUBF4
|
||
|
|
ASGNF4
|
||
|
|
line 765
|
||
|
|
;765: } else {
|
||
|
|
LABELV $311
|
||
|
|
line 768
|
||
|
|
;766: // don't reset the z velocity for slopes
|
||
|
|
;767:// pm->ps->velocity[2] = 0;
|
||
|
|
;768: }
|
||
|
|
LABELV $312
|
||
|
|
line 770
|
||
|
|
;769:
|
||
|
|
;770: vel = VectorLength(pm->ps->velocity);
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 100
|
||
|
|
ADDRGP4 VectorLength
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 28
|
||
|
|
ADDRLP4 100
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 773
|
||
|
|
;771:
|
||
|
|
;772: // slide along the ground plane
|
||
|
|
;773: PM_ClipVelocity (pm->ps->velocity, pml.groundTrace.plane.normal,
|
||
|
|
ADDRLP4 104
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 104
|
||
|
|
INDIRP4
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 pml+52+24
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 104
|
||
|
|
INDIRP4
|
||
|
|
ARGP4
|
||
|
|
CNSTF4 1065361605
|
||
|
|
ARGF4
|
||
|
|
ADDRGP4 PM_ClipVelocity
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 777
|
||
|
|
;774: pm->ps->velocity, OVERCLIP );
|
||
|
|
;775:
|
||
|
|
;776: // don't decrease velocity when going up or down a slope
|
||
|
|
;777: VectorNormalize(pm->ps->velocity);
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 VectorNormalize
|
||
|
|
CALLF4
|
||
|
|
pop
|
||
|
|
line 778
|
||
|
|
;778: VectorScale(pm->ps->velocity, vel, pm->ps->velocity);
|
||
|
|
ADDRLP4 108
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 108
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 108
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 112
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 36
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 112
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 112
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 116
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 40
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 116
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 116
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 781
|
||
|
|
;779:
|
||
|
|
;780: // don't do anything if standing still
|
||
|
|
;781: if (!pm->ps->velocity[0] && !pm->ps->velocity[1]) {
|
||
|
|
ADDRLP4 120
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 124
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 120
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 124
|
||
|
|
INDIRF4
|
||
|
|
NEF4 $319
|
||
|
|
ADDRLP4 120
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 36
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 124
|
||
|
|
INDIRF4
|
||
|
|
NEF4 $319
|
||
|
|
line 782
|
||
|
|
;782: return;
|
||
|
|
ADDRGP4 $266
|
||
|
|
JUMPV
|
||
|
|
LABELV $319
|
||
|
|
line 785
|
||
|
|
;783: }
|
||
|
|
;784:
|
||
|
|
;785: PM_StepSlideMove( qfalse );
|
||
|
|
CNSTI4 0
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StepSlideMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 789
|
||
|
|
;786:
|
||
|
|
;787: //Com_Printf("velocity2 = %1.1f\n", VectorLength(pm->ps->velocity));
|
||
|
|
;788:
|
||
|
|
;789:}
|
||
|
|
LABELV $266
|
||
|
|
endproc PM_WalkMove 128 16
|
||
|
|
proc PM_DeadMove 20 4
|
||
|
|
line 797
|
||
|
|
;790:
|
||
|
|
;791:
|
||
|
|
;792:/*
|
||
|
|
;793:==============
|
||
|
|
;794:PM_DeadMove
|
||
|
|
;795:==============
|
||
|
|
;796:*/
|
||
|
|
;797:static void PM_DeadMove( void ) {
|
||
|
|
line 800
|
||
|
|
;798: float forward;
|
||
|
|
;799:
|
||
|
|
;800: if ( !pml.walking ) {
|
||
|
|
ADDRGP4 pml+44
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $322
|
||
|
|
line 801
|
||
|
|
;801: return;
|
||
|
|
ADDRGP4 $321
|
||
|
|
JUMPV
|
||
|
|
LABELV $322
|
||
|
|
line 806
|
||
|
|
;802: }
|
||
|
|
;803:
|
||
|
|
;804: // extra friction
|
||
|
|
;805:
|
||
|
|
;806: forward = VectorLength (pm->ps->velocity);
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRGP4 VectorLength
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 807
|
||
|
|
;807: forward -= 20;
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1101004800
|
||
|
|
SUBF4
|
||
|
|
ASGNF4
|
||
|
|
line 808
|
||
|
|
;808: if ( forward <= 0 ) {
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 0
|
||
|
|
GTF4 $325
|
||
|
|
line 809
|
||
|
|
;809: VectorClear (pm->ps->velocity);
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 12
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 40
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 36
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 810
|
||
|
|
;810: } else {
|
||
|
|
ADDRGP4 $326
|
||
|
|
JUMPV
|
||
|
|
LABELV $325
|
||
|
|
line 811
|
||
|
|
;811: VectorNormalize (pm->ps->velocity);
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 VectorNormalize
|
||
|
|
CALLF4
|
||
|
|
pop
|
||
|
|
line 812
|
||
|
|
;812: VectorScale (pm->ps->velocity, forward, pm->ps->velocity);
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 36
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 16
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 40
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 813
|
||
|
|
;813: }
|
||
|
|
LABELV $326
|
||
|
|
line 814
|
||
|
|
;814:}
|
||
|
|
LABELV $321
|
||
|
|
endproc PM_DeadMove 20 4
|
||
|
|
proc PM_NoclipMove 104 12
|
||
|
|
line 822
|
||
|
|
;815:
|
||
|
|
;816:
|
||
|
|
;817:/*
|
||
|
|
;818:===============
|
||
|
|
;819:PM_NoclipMove
|
||
|
|
;820:===============
|
||
|
|
;821:*/
|
||
|
|
;822:static void PM_NoclipMove( void ) {
|
||
|
|
line 831
|
||
|
|
;823: float speed, drop, friction, control, newspeed;
|
||
|
|
;824: int i;
|
||
|
|
;825: vec3_t wishvel;
|
||
|
|
;826: float fmove, smove;
|
||
|
|
;827: vec3_t wishdir;
|
||
|
|
;828: float wishspeed;
|
||
|
|
;829: float scale;
|
||
|
|
;830:
|
||
|
|
;831: pm->ps->viewheight = DEFAULT_VIEWHEIGHT;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 164
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 26
|
||
|
|
ASGNI4
|
||
|
|
line 835
|
||
|
|
;832:
|
||
|
|
;833: // friction
|
||
|
|
;834:
|
||
|
|
;835: speed = VectorLength (pm->ps->velocity);
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 64
|
||
|
|
ADDRGP4 VectorLength
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRLP4 64
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 836
|
||
|
|
;836: if (speed < 1)
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1065353216
|
||
|
|
GEF4 $328
|
||
|
|
line 837
|
||
|
|
;837: {
|
||
|
|
line 838
|
||
|
|
;838: VectorCopy (vec3_origin, pm->ps->velocity);
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ADDRGP4 vec3_origin
|
||
|
|
INDIRB
|
||
|
|
ASGNB 12
|
||
|
|
line 839
|
||
|
|
;839: }
|
||
|
|
ADDRGP4 $329
|
||
|
|
JUMPV
|
||
|
|
LABELV $328
|
||
|
|
line 841
|
||
|
|
;840: else
|
||
|
|
;841: {
|
||
|
|
line 842
|
||
|
|
;842: drop = 0;
|
||
|
|
ADDRLP4 52
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
line 844
|
||
|
|
;843:
|
||
|
|
;844: friction = pm_friction*1.5; // extra friction
|
||
|
|
ADDRLP4 56
|
||
|
|
CNSTF4 1069547520
|
||
|
|
ADDRGP4 pm_friction
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 845
|
||
|
|
;845: control = speed < pm_stopspeed ? pm_stopspeed : speed;
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pm_stopspeed
|
||
|
|
INDIRF4
|
||
|
|
GEF4 $331
|
||
|
|
ADDRLP4 68
|
||
|
|
ADDRGP4 pm_stopspeed
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRGP4 $332
|
||
|
|
JUMPV
|
||
|
|
LABELV $331
|
||
|
|
ADDRLP4 68
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
LABELV $332
|
||
|
|
ADDRLP4 60
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 846
|
||
|
|
;846: drop += control*friction*pml.frametime;
|
||
|
|
ADDRLP4 52
|
||
|
|
ADDRLP4 52
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 60
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 56
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRGP4 pml+36
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 849
|
||
|
|
;847:
|
||
|
|
;848: // scale the velocity
|
||
|
|
;849: newspeed = speed - drop;
|
||
|
|
ADDRLP4 28
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 52
|
||
|
|
INDIRF4
|
||
|
|
SUBF4
|
||
|
|
ASGNF4
|
||
|
|
line 850
|
||
|
|
;850: if (newspeed < 0)
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 0
|
||
|
|
GEF4 $334
|
||
|
|
line 851
|
||
|
|
;851: newspeed = 0;
|
||
|
|
ADDRLP4 28
|
||
|
|
CNSTF4 0
|
||
|
|
ASGNF4
|
||
|
|
LABELV $334
|
||
|
|
line 852
|
||
|
|
;852: newspeed /= speed;
|
||
|
|
ADDRLP4 28
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRF4
|
||
|
|
DIVF4
|
||
|
|
ASGNF4
|
||
|
|
line 854
|
||
|
|
;853:
|
||
|
|
;854: VectorScale (pm->ps->velocity, newspeed, pm->ps->velocity);
|
||
|
|
ADDRLP4 72
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 72
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 72
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 76
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 36
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 76
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 76
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 80
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 40
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 80
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 80
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 855
|
||
|
|
;855: }
|
||
|
|
LABELV $329
|
||
|
|
line 858
|
||
|
|
;856:
|
||
|
|
;857: // accelerate
|
||
|
|
;858: scale = PM_CmdScale( &pm->cmd );
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 68
|
||
|
|
ADDRGP4 PM_CmdScale
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 48
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 860
|
||
|
|
;859:
|
||
|
|
;860: fmove = pm->cmd.forwardmove;
|
||
|
|
ADDRLP4 16
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CVIF4 4
|
||
|
|
ASGNF4
|
||
|
|
line 861
|
||
|
|
;861: smove = pm->cmd.rightmove;
|
||
|
|
ADDRLP4 20
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CVIF4 4
|
||
|
|
ASGNF4
|
||
|
|
line 863
|
||
|
|
;862:
|
||
|
|
;863: for (i=0 ; i<3 ; i++)
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
LABELV $336
|
||
|
|
line 864
|
||
|
|
;864: wishvel[i] = pml.forward[i]*fmove + pml.right[i]*smove;
|
||
|
|
ADDRLP4 72
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 72
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 72
|
||
|
|
INDIRI4
|
||
|
|
ADDRGP4 pml
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRLP4 72
|
||
|
|
INDIRI4
|
||
|
|
ADDRGP4 pml+12
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
LABELV $337
|
||
|
|
line 863
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 3
|
||
|
|
LTI4 $336
|
||
|
|
line 865
|
||
|
|
;865: wishvel[2] += pm->cmd.upmove;
|
||
|
|
ADDRLP4 4+8
|
||
|
|
ADDRLP4 4+8
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 27
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CVIF4 4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 867
|
||
|
|
;866:
|
||
|
|
;867: VectorCopy (wishvel, wishdir);
|
||
|
|
ADDRLP4 32
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRB
|
||
|
|
ASGNB 12
|
||
|
|
line 868
|
||
|
|
;868: wishspeed = VectorNormalize(wishdir);
|
||
|
|
ADDRLP4 32
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 76
|
||
|
|
ADDRGP4 VectorNormalize
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 44
|
||
|
|
ADDRLP4 76
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 869
|
||
|
|
;869: wishspeed *= scale;
|
||
|
|
ADDRLP4 44
|
||
|
|
ADDRLP4 44
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 48
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 871
|
||
|
|
;870:
|
||
|
|
;871: PM_Accelerate( wishdir, wishspeed, pm_accelerate );
|
||
|
|
ADDRLP4 32
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 44
|
||
|
|
INDIRF4
|
||
|
|
ARGF4
|
||
|
|
ADDRGP4 pm_accelerate
|
||
|
|
INDIRF4
|
||
|
|
ARGF4
|
||
|
|
ADDRGP4 PM_Accelerate
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 874
|
||
|
|
;872:
|
||
|
|
;873: // move
|
||
|
|
;874: VectorMA (pm->ps->origin, pml.frametime, pm->ps->velocity, pm->ps->origin);
|
||
|
|
ADDRLP4 80
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 84
|
||
|
|
ADDRLP4 80
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 84
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 84
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 80
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pml+36
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 88
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 92
|
||
|
|
ADDRLP4 88
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 24
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 92
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 92
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 88
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 36
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pml+36
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 96
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 100
|
||
|
|
ADDRLP4 96
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 28
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 100
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 100
|
||
|
|
INDIRP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 96
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 40
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pml+36
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 875
|
||
|
|
;875:}
|
||
|
|
LABELV $327
|
||
|
|
endproc PM_NoclipMove 104 12
|
||
|
|
proc PM_FootstepForSurface 0 0
|
||
|
|
line 886
|
||
|
|
;876:
|
||
|
|
;877://============================================================================
|
||
|
|
;878:
|
||
|
|
;879:/*
|
||
|
|
;880:================
|
||
|
|
;881:PM_FootstepForSurface
|
||
|
|
;882:
|
||
|
|
;883:Returns an event number apropriate for the groundsurface
|
||
|
|
;884:================
|
||
|
|
;885:*/
|
||
|
|
;886:static int PM_FootstepForSurface( void ) {
|
||
|
|
line 887
|
||
|
|
;887: if ( pml.groundTrace.surfaceFlags & SURF_NOSTEPS ) {
|
||
|
|
ADDRGP4 pml+52+44
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 8192
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $346
|
||
|
|
line 888
|
||
|
|
;888: return 0;
|
||
|
|
CNSTI4 0
|
||
|
|
RETI4
|
||
|
|
ADDRGP4 $345
|
||
|
|
JUMPV
|
||
|
|
LABELV $346
|
||
|
|
line 890
|
||
|
|
;889: }
|
||
|
|
;890: if ( pml.groundTrace.surfaceFlags & SURF_METALSTEPS ) {
|
||
|
|
ADDRGP4 pml+52+44
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 4096
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $350
|
||
|
|
line 891
|
||
|
|
;891: return EV_FOOTSTEP_METAL;
|
||
|
|
CNSTI4 2
|
||
|
|
RETI4
|
||
|
|
ADDRGP4 $345
|
||
|
|
JUMPV
|
||
|
|
LABELV $350
|
||
|
|
line 893
|
||
|
|
;892: }
|
||
|
|
;893: return EV_FOOTSTEP;
|
||
|
|
CNSTI4 1
|
||
|
|
RETI4
|
||
|
|
LABELV $345
|
||
|
|
endproc PM_FootstepForSurface 0 0
|
||
|
|
proc PM_CrashLand 52 4
|
||
|
|
line 904
|
||
|
|
;894:}
|
||
|
|
;895:
|
||
|
|
;896:
|
||
|
|
;897:/*
|
||
|
|
;898:=================
|
||
|
|
;899:PM_CrashLand
|
||
|
|
;900:
|
||
|
|
;901:Check for hard landings that generate sound events
|
||
|
|
;902:=================
|
||
|
|
;903:*/
|
||
|
|
;904:static void PM_CrashLand( void ) {
|
||
|
|
line 912
|
||
|
|
;905: float delta;
|
||
|
|
;906: float dist;
|
||
|
|
;907: float vel, acc;
|
||
|
|
;908: float t;
|
||
|
|
;909: float a, b, c, den;
|
||
|
|
;910:
|
||
|
|
;911: // decide which landing animation to use
|
||
|
|
;912: if ( pm->ps->pm_flags & PMF_BACKWARDS_JUMP ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 8
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $355
|
||
|
|
line 913
|
||
|
|
;913: PM_ForceLegsAnim( LEGS_LANDB );
|
||
|
|
CNSTI4 21
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ForceLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 914
|
||
|
|
;914: } else {
|
||
|
|
ADDRGP4 $356
|
||
|
|
JUMPV
|
||
|
|
LABELV $355
|
||
|
|
line 915
|
||
|
|
;915: PM_ForceLegsAnim( LEGS_LAND );
|
||
|
|
CNSTI4 19
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ForceLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 916
|
||
|
|
;916: }
|
||
|
|
LABELV $356
|
||
|
|
line 918
|
||
|
|
;917:
|
||
|
|
;918: pm->ps->legsTimer = TIMER_LAND;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 72
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 130
|
||
|
|
ASGNI4
|
||
|
|
line 921
|
||
|
|
;919:
|
||
|
|
;920: // calculate the exact velocity on landing
|
||
|
|
;921: dist = pm->ps->origin[2] - pml.previous_origin[2];
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 28
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pml+112+8
|
||
|
|
INDIRF4
|
||
|
|
SUBF4
|
||
|
|
ASGNF4
|
||
|
|
line 922
|
||
|
|
;922: vel = pml.previous_velocity[2];
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRGP4 pml+124+8
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 923
|
||
|
|
;923: acc = -pm->ps->gravity;
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 48
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
NEGI4
|
||
|
|
CVIF4 4
|
||
|
|
ASGNF4
|
||
|
|
line 925
|
||
|
|
;924:
|
||
|
|
;925: a = acc / 2;
|
||
|
|
ADDRLP4 16
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1073741824
|
||
|
|
DIVF4
|
||
|
|
ASGNF4
|
||
|
|
line 926
|
||
|
|
;926: b = vel;
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 927
|
||
|
|
;927: c = -dist;
|
||
|
|
ADDRLP4 32
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRF4
|
||
|
|
NEGF4
|
||
|
|
ASGNF4
|
||
|
|
line 929
|
||
|
|
;928:
|
||
|
|
;929: den = b * b - 4 * a * c;
|
||
|
|
ADDRLP4 20
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
CNSTF4 1082130432
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
SUBF4
|
||
|
|
ASGNF4
|
||
|
|
line 930
|
||
|
|
;930: if ( den < 0 ) {
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 0
|
||
|
|
GEF4 $361
|
||
|
|
line 931
|
||
|
|
;931: return;
|
||
|
|
ADDRGP4 $354
|
||
|
|
JUMPV
|
||
|
|
LABELV $361
|
||
|
|
line 933
|
||
|
|
;932: }
|
||
|
|
;933: t = (-b - sqrt( den ) ) / ( 2 * a );
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRF4
|
||
|
|
ARGF4
|
||
|
|
ADDRLP4 40
|
||
|
|
ADDRGP4 sqrt
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 28
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
NEGF4
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRF4
|
||
|
|
SUBF4
|
||
|
|
CNSTF4 1073741824
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
DIVF4
|
||
|
|
ASGNF4
|
||
|
|
line 935
|
||
|
|
;934:
|
||
|
|
;935: delta = vel + t * acc;
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 936
|
||
|
|
;936: delta = delta*delta * 0.0001;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTF4 953267991
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 939
|
||
|
|
;937:
|
||
|
|
;938: // ducking while falling doubles damage
|
||
|
|
;939: if ( pm->ps->pm_flags & PMF_DUCKED ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $363
|
||
|
|
line 940
|
||
|
|
;940: delta *= 2;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTF4 1073741824
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 941
|
||
|
|
;941: }
|
||
|
|
LABELV $363
|
||
|
|
line 944
|
||
|
|
;942:
|
||
|
|
;943: // never take falling damage if completely underwater
|
||
|
|
;944: if ( pm->waterlevel == 3 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 3
|
||
|
|
NEI4 $365
|
||
|
|
line 945
|
||
|
|
;945: return;
|
||
|
|
ADDRGP4 $354
|
||
|
|
JUMPV
|
||
|
|
LABELV $365
|
||
|
|
line 949
|
||
|
|
;946: }
|
||
|
|
;947:
|
||
|
|
;948: // reduce falling damage if there is standing water
|
||
|
|
;949: if ( pm->waterlevel == 2 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
NEI4 $367
|
||
|
|
line 950
|
||
|
|
;950: delta *= 0.25;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTF4 1048576000
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 951
|
||
|
|
;951: }
|
||
|
|
LABELV $367
|
||
|
|
line 952
|
||
|
|
;952: if ( pm->waterlevel == 1 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
NEI4 $369
|
||
|
|
line 953
|
||
|
|
;953: delta *= 0.5;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTF4 1056964608
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 954
|
||
|
|
;954: }
|
||
|
|
LABELV $369
|
||
|
|
line 956
|
||
|
|
;955:
|
||
|
|
;956: if ( delta < 1 ) {
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1065353216
|
||
|
|
GEF4 $371
|
||
|
|
line 957
|
||
|
|
;957: return;
|
||
|
|
ADDRGP4 $354
|
||
|
|
JUMPV
|
||
|
|
LABELV $371
|
||
|
|
line 964
|
||
|
|
;958: }
|
||
|
|
;959:
|
||
|
|
;960: // create a local entity event to play the sound
|
||
|
|
;961:
|
||
|
|
;962: // SURF_NODAMAGE is used for bounce pads where you don't ever
|
||
|
|
;963: // want to take damage or play a crunch sound
|
||
|
|
;964: if ( !(pml.groundTrace.surfaceFlags & SURF_NODAMAGE) ) {
|
||
|
|
ADDRGP4 pml+52+44
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $373
|
||
|
|
line 965
|
||
|
|
;965: if ( delta > 60 ) {
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1114636288
|
||
|
|
LEF4 $377
|
||
|
|
line 966
|
||
|
|
;966: PM_AddEvent( EV_FALL_FAR );
|
||
|
|
CNSTI4 12
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_AddEvent
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 967
|
||
|
|
;967: } else if ( delta > 40 ) {
|
||
|
|
ADDRGP4 $378
|
||
|
|
JUMPV
|
||
|
|
LABELV $377
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1109393408
|
||
|
|
LEF4 $379
|
||
|
|
line 969
|
||
|
|
;968: // this is a pain grunt, so don't play it if dead
|
||
|
|
;969: if ( pm->ps->stats[STAT_HEALTH] > 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 184
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
LEI4 $380
|
||
|
|
line 970
|
||
|
|
;970: PM_AddEvent( EV_FALL_MEDIUM );
|
||
|
|
CNSTI4 11
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_AddEvent
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 971
|
||
|
|
;971: }
|
||
|
|
line 972
|
||
|
|
;972: } else if ( delta > 7 ) {
|
||
|
|
ADDRGP4 $380
|
||
|
|
JUMPV
|
||
|
|
LABELV $379
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1088421888
|
||
|
|
LEF4 $383
|
||
|
|
line 973
|
||
|
|
;973: PM_AddEvent( EV_FALL_SHORT );
|
||
|
|
CNSTI4 10
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_AddEvent
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 974
|
||
|
|
;974: } else {
|
||
|
|
ADDRGP4 $384
|
||
|
|
JUMPV
|
||
|
|
LABELV $383
|
||
|
|
line 975
|
||
|
|
;975: PM_AddEvent( PM_FootstepForSurface() );
|
||
|
|
ADDRLP4 48
|
||
|
|
ADDRGP4 PM_FootstepForSurface
|
||
|
|
CALLI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 48
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_AddEvent
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 976
|
||
|
|
;976: }
|
||
|
|
LABELV $384
|
||
|
|
LABELV $380
|
||
|
|
LABELV $378
|
||
|
|
line 977
|
||
|
|
;977: }
|
||
|
|
LABELV $373
|
||
|
|
line 980
|
||
|
|
;978:
|
||
|
|
;979: // start footstep cycle over
|
||
|
|
;980: pm->ps->bobCycle = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 8
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 981
|
||
|
|
;981:}
|
||
|
|
LABELV $354
|
||
|
|
endproc PM_CrashLand 52 4
|
||
|
|
proc PM_CorrectAllSolid 36 28
|
||
|
|
line 1004
|
||
|
|
;982:
|
||
|
|
;983:/*
|
||
|
|
;984:=============
|
||
|
|
;985:PM_CheckStuck
|
||
|
|
;986:=============
|
||
|
|
;987:*/
|
||
|
|
;988:/*
|
||
|
|
;989:void PM_CheckStuck(void) {
|
||
|
|
;990: trace_t trace;
|
||
|
|
;991:
|
||
|
|
;992: pm->trace (&trace, pm->ps->origin, pm->mins, pm->maxs, pm->ps->origin, pm->ps->clientNum, pm->tracemask);
|
||
|
|
;993: if (trace.allsolid) {
|
||
|
|
;994: //int shit = qtrue;
|
||
|
|
;995: }
|
||
|
|
;996:}
|
||
|
|
;997:*/
|
||
|
|
;998:
|
||
|
|
;999:/*
|
||
|
|
;1000:=============
|
||
|
|
;1001:PM_CorrectAllSolid
|
||
|
|
;1002:=============
|
||
|
|
;1003:*/
|
||
|
|
;1004:static int PM_CorrectAllSolid( trace_t *trace ) {
|
||
|
|
line 1008
|
||
|
|
;1005: int i, j, k;
|
||
|
|
;1006: vec3_t point;
|
||
|
|
;1007:
|
||
|
|
;1008: if ( pm->debugLevel ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $386
|
||
|
|
line 1009
|
||
|
|
;1009: Com_Printf("%i:allsolid\n", c_pmove);
|
||
|
|
ADDRGP4 $388
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 c_pmove
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 Com_Printf
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1010
|
||
|
|
;1010: }
|
||
|
|
LABELV $386
|
||
|
|
line 1013
|
||
|
|
;1011:
|
||
|
|
;1012: // jitter around
|
||
|
|
;1013: for (i = -1; i <= 1; i++) {
|
||
|
|
ADDRLP4 20
|
||
|
|
CNSTI4 -1
|
||
|
|
ASGNI4
|
||
|
|
LABELV $389
|
||
|
|
line 1014
|
||
|
|
;1014: for (j = -1; j <= 1; j++) {
|
||
|
|
ADDRLP4 16
|
||
|
|
CNSTI4 -1
|
||
|
|
ASGNI4
|
||
|
|
LABELV $393
|
||
|
|
line 1015
|
||
|
|
;1015: for (k = -1; k <= 1; k++) {
|
||
|
|
ADDRLP4 12
|
||
|
|
CNSTI4 -1
|
||
|
|
ASGNI4
|
||
|
|
LABELV $397
|
||
|
|
line 1016
|
||
|
|
;1016: VectorCopy(pm->ps->origin, point);
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRB
|
||
|
|
ASGNB 12
|
||
|
|
line 1017
|
||
|
|
;1017: point[0] += (float) i;
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 1018
|
||
|
|
;1018: point[1] += (float) j;
|
||
|
|
ADDRLP4 0+4
|
||
|
|
ADDRLP4 0+4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 1019
|
||
|
|
;1019: point[2] += (float) k;
|
||
|
|
ADDRLP4 0+8
|
||
|
|
ADDRLP4 0+8
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 1020
|
||
|
|
;1020: pm->trace (trace, point, pm->mins, pm->maxs, point, pm->ps->clientNum, pm->tracemask);
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 0
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 180
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 192
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 0
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 140
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 28
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 224
|
||
|
|
ADDP4
|
||
|
|
INDIRP4
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1021
|
||
|
|
;1021: if ( !trace->allsolid ) {
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $403
|
||
|
|
line 1022
|
||
|
|
;1022: point[0] = pm->ps->origin[0];
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 1023
|
||
|
|
;1023: point[1] = pm->ps->origin[1];
|
||
|
|
ADDRLP4 0+4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 24
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 1024
|
||
|
|
;1024: point[2] = pm->ps->origin[2] - 0.25;
|
||
|
|
ADDRLP4 0+8
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 28
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1048576000
|
||
|
|
SUBF4
|
||
|
|
ASGNF4
|
||
|
|
line 1026
|
||
|
|
;1025:
|
||
|
|
;1026: pm->trace (trace, pm->ps->origin, pm->mins, pm->maxs, point, pm->ps->clientNum, pm->tracemask);
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 28
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 32
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 180
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 192
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 0
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 140
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 28
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 224
|
||
|
|
ADDP4
|
||
|
|
INDIRP4
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1027
|
||
|
|
;1027: pml.groundTrace = *trace;
|
||
|
|
ADDRGP4 pml+52
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRB
|
||
|
|
ASGNB 56
|
||
|
|
line 1028
|
||
|
|
;1028: return qtrue;
|
||
|
|
CNSTI4 1
|
||
|
|
RETI4
|
||
|
|
ADDRGP4 $385
|
||
|
|
JUMPV
|
||
|
|
LABELV $403
|
||
|
|
line 1030
|
||
|
|
;1029: }
|
||
|
|
;1030: }
|
||
|
|
LABELV $398
|
||
|
|
line 1015
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
LEI4 $397
|
||
|
|
line 1031
|
||
|
|
;1031: }
|
||
|
|
LABELV $394
|
||
|
|
line 1014
|
||
|
|
ADDRLP4 16
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
LEI4 $393
|
||
|
|
line 1032
|
||
|
|
;1032: }
|
||
|
|
LABELV $390
|
||
|
|
line 1013
|
||
|
|
ADDRLP4 20
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
LEI4 $389
|
||
|
|
line 1034
|
||
|
|
;1033:
|
||
|
|
;1034: pm->ps->groundEntityNum = ENTITYNUM_NONE;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 68
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 1023
|
||
|
|
ASGNI4
|
||
|
|
line 1035
|
||
|
|
;1035: pml.groundPlane = qfalse;
|
||
|
|
ADDRGP4 pml+48
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1036
|
||
|
|
;1036: pml.walking = qfalse;
|
||
|
|
ADDRGP4 pml+44
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1038
|
||
|
|
;1037:
|
||
|
|
;1038: return qfalse;
|
||
|
|
CNSTI4 0
|
||
|
|
RETI4
|
||
|
|
LABELV $385
|
||
|
|
endproc PM_CorrectAllSolid 36 28
|
||
|
|
proc PM_GroundTraceMissed 80 28
|
||
|
|
line 1049
|
||
|
|
;1039:}
|
||
|
|
;1040:
|
||
|
|
;1041:
|
||
|
|
;1042:/*
|
||
|
|
;1043:=============
|
||
|
|
;1044:PM_GroundTraceMissed
|
||
|
|
;1045:
|
||
|
|
;1046:The ground trace didn't hit a surface, so we are in freefall
|
||
|
|
;1047:=============
|
||
|
|
;1048:*/
|
||
|
|
;1049:static void PM_GroundTraceMissed( void ) {
|
||
|
|
line 1053
|
||
|
|
;1050: trace_t trace;
|
||
|
|
;1051: vec3_t point;
|
||
|
|
;1052:
|
||
|
|
;1053: if ( pm->ps->groundEntityNum != ENTITYNUM_NONE ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 68
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1023
|
||
|
|
EQI4 $411
|
||
|
|
line 1055
|
||
|
|
;1054: // we just transitioned into freefall
|
||
|
|
;1055: if ( pm->debugLevel ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $413
|
||
|
|
line 1056
|
||
|
|
;1056: Com_Printf("%i:lift\n", c_pmove);
|
||
|
|
ADDRGP4 $415
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 c_pmove
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 Com_Printf
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1057
|
||
|
|
;1057: }
|
||
|
|
LABELV $413
|
||
|
|
line 1061
|
||
|
|
;1058:
|
||
|
|
;1059: // if they aren't in a jumping animation and the ground is a ways away, force into it
|
||
|
|
;1060: // if we didn't do the trace, the player would be backflipping down staircases
|
||
|
|
;1061: VectorCopy( pm->ps->origin, point );
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRB
|
||
|
|
ASGNB 12
|
||
|
|
line 1062
|
||
|
|
;1062: point[2] -= 64;
|
||
|
|
ADDRLP4 0+8
|
||
|
|
ADDRLP4 0+8
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1115684864
|
||
|
|
SUBF4
|
||
|
|
ASGNF4
|
||
|
|
line 1064
|
||
|
|
;1063:
|
||
|
|
;1064: pm->trace (&trace, pm->ps->origin, pm->mins, pm->maxs, point, pm->ps->clientNum, pm->tracemask);
|
||
|
|
ADDRLP4 12
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 68
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 72
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 72
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 180
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 192
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 0
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 72
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 140
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 28
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 224
|
||
|
|
ADDP4
|
||
|
|
INDIRP4
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1065
|
||
|
|
;1065: if ( trace.fraction == 1.0 ) {
|
||
|
|
ADDRLP4 12+8
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1065353216
|
||
|
|
NEF4 $417
|
||
|
|
line 1066
|
||
|
|
;1066: if ( pm->cmd.forwardmove >= 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CNSTI4 0
|
||
|
|
LTI4 $420
|
||
|
|
line 1067
|
||
|
|
;1067: PM_ForceLegsAnim( LEGS_JUMP );
|
||
|
|
CNSTI4 18
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ForceLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1068
|
||
|
|
;1068: pm->ps->pm_flags &= ~PMF_BACKWARDS_JUMP;
|
||
|
|
ADDRLP4 76
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 76
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 76
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -9
|
||
|
|
BANDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1069
|
||
|
|
;1069: } else {
|
||
|
|
ADDRGP4 $421
|
||
|
|
JUMPV
|
||
|
|
LABELV $420
|
||
|
|
line 1070
|
||
|
|
;1070: PM_ForceLegsAnim( LEGS_JUMPB );
|
||
|
|
CNSTI4 20
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ForceLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1071
|
||
|
|
;1071: pm->ps->pm_flags |= PMF_BACKWARDS_JUMP;
|
||
|
|
ADDRLP4 76
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 76
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 76
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 8
|
||
|
|
BORI4
|
||
|
|
ASGNI4
|
||
|
|
line 1072
|
||
|
|
;1072: }
|
||
|
|
LABELV $421
|
||
|
|
line 1073
|
||
|
|
;1073: }
|
||
|
|
LABELV $417
|
||
|
|
line 1074
|
||
|
|
;1074: }
|
||
|
|
LABELV $411
|
||
|
|
line 1076
|
||
|
|
;1075:
|
||
|
|
;1076: pm->ps->groundEntityNum = ENTITYNUM_NONE;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 68
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 1023
|
||
|
|
ASGNI4
|
||
|
|
line 1077
|
||
|
|
;1077: pml.groundPlane = qfalse;
|
||
|
|
ADDRGP4 pml+48
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1078
|
||
|
|
;1078: pml.walking = qfalse;
|
||
|
|
ADDRGP4 pml+44
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1079
|
||
|
|
;1079:}
|
||
|
|
LABELV $410
|
||
|
|
endproc PM_GroundTraceMissed 80 28
|
||
|
|
proc PM_GroundTrace 88 28
|
||
|
|
line 1087
|
||
|
|
;1080:
|
||
|
|
;1081:
|
||
|
|
;1082:/*
|
||
|
|
;1083:=============
|
||
|
|
;1084:PM_GroundTrace
|
||
|
|
;1085:=============
|
||
|
|
;1086:*/
|
||
|
|
;1087:static void PM_GroundTrace( void ) {
|
||
|
|
line 1091
|
||
|
|
;1088: vec3_t point;
|
||
|
|
;1089: trace_t trace;
|
||
|
|
;1090:
|
||
|
|
;1091: point[0] = pm->ps->origin[0];
|
||
|
|
ADDRLP4 56
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 1092
|
||
|
|
;1092: point[1] = pm->ps->origin[1];
|
||
|
|
ADDRLP4 56+4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 24
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 1093
|
||
|
|
;1093: point[2] = pm->ps->origin[2] - 0.25;
|
||
|
|
ADDRLP4 56+8
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 28
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1048576000
|
||
|
|
SUBF4
|
||
|
|
ASGNF4
|
||
|
|
line 1095
|
||
|
|
;1094:
|
||
|
|
;1095: pm->trace (&trace, pm->ps->origin, pm->mins, pm->maxs, point, pm->ps->clientNum, pm->tracemask);
|
||
|
|
ADDRLP4 0
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 68
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 72
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 72
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 180
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 192
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 56
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 72
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 140
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 28
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 224
|
||
|
|
ADDP4
|
||
|
|
INDIRP4
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1096
|
||
|
|
;1096: pml.groundTrace = trace;
|
||
|
|
ADDRGP4 pml+52
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRB
|
||
|
|
ASGNB 56
|
||
|
|
line 1099
|
||
|
|
;1097:
|
||
|
|
;1098: // do something corrective if the trace starts in a solid...
|
||
|
|
;1099: if ( trace.allsolid ) {
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $428
|
||
|
|
line 1100
|
||
|
|
;1100: if ( !PM_CorrectAllSolid(&trace) )
|
||
|
|
ADDRLP4 0
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 76
|
||
|
|
ADDRGP4 PM_CorrectAllSolid
|
||
|
|
CALLI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 76
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $430
|
||
|
|
line 1101
|
||
|
|
;1101: return;
|
||
|
|
ADDRGP4 $424
|
||
|
|
JUMPV
|
||
|
|
LABELV $430
|
||
|
|
line 1102
|
||
|
|
;1102: }
|
||
|
|
LABELV $428
|
||
|
|
line 1105
|
||
|
|
;1103:
|
||
|
|
;1104: // if the trace didn't hit anything, we are in free fall
|
||
|
|
;1105: if ( trace.fraction == 1.0 ) {
|
||
|
|
ADDRLP4 0+8
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1065353216
|
||
|
|
NEF4 $432
|
||
|
|
line 1106
|
||
|
|
;1106: PM_GroundTraceMissed();
|
||
|
|
ADDRGP4 PM_GroundTraceMissed
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1107
|
||
|
|
;1107: pml.groundPlane = qfalse;
|
||
|
|
ADDRGP4 pml+48
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1108
|
||
|
|
;1108: pml.walking = qfalse;
|
||
|
|
ADDRGP4 pml+44
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1109
|
||
|
|
;1109: return;
|
||
|
|
ADDRGP4 $424
|
||
|
|
JUMPV
|
||
|
|
LABELV $432
|
||
|
|
line 1113
|
||
|
|
;1110: }
|
||
|
|
;1111:
|
||
|
|
;1112: // check if getting thrown off the ground
|
||
|
|
;1113: if ( pm->ps->velocity[2] > 0 && DotProduct( pm->ps->velocity, trace.plane.normal ) > 10 ) {
|
||
|
|
ADDRLP4 76
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 80
|
||
|
|
ADDRLP4 76
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 40
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 80
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 0
|
||
|
|
LEF4 $437
|
||
|
|
ADDRLP4 76
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 0+24
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRLP4 76
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 36
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 0+24+4
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ADDRLP4 80
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 0+24+8
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
CNSTF4 1092616192
|
||
|
|
LEF4 $437
|
||
|
|
line 1114
|
||
|
|
;1114: if ( pm->debugLevel ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $444
|
||
|
|
line 1115
|
||
|
|
;1115: Com_Printf("%i:kickoff\n", c_pmove);
|
||
|
|
ADDRGP4 $446
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 c_pmove
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 Com_Printf
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1116
|
||
|
|
;1116: }
|
||
|
|
LABELV $444
|
||
|
|
line 1118
|
||
|
|
;1117: // go into jump animation
|
||
|
|
;1118: if ( pm->cmd.forwardmove >= 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CNSTI4 0
|
||
|
|
LTI4 $447
|
||
|
|
line 1119
|
||
|
|
;1119: PM_ForceLegsAnim( LEGS_JUMP );
|
||
|
|
CNSTI4 18
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ForceLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1120
|
||
|
|
;1120: pm->ps->pm_flags &= ~PMF_BACKWARDS_JUMP;
|
||
|
|
ADDRLP4 84
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 84
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 84
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -9
|
||
|
|
BANDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1121
|
||
|
|
;1121: } else {
|
||
|
|
ADDRGP4 $448
|
||
|
|
JUMPV
|
||
|
|
LABELV $447
|
||
|
|
line 1122
|
||
|
|
;1122: PM_ForceLegsAnim( LEGS_JUMPB );
|
||
|
|
CNSTI4 20
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ForceLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1123
|
||
|
|
;1123: pm->ps->pm_flags |= PMF_BACKWARDS_JUMP;
|
||
|
|
ADDRLP4 84
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 84
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 84
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 8
|
||
|
|
BORI4
|
||
|
|
ASGNI4
|
||
|
|
line 1124
|
||
|
|
;1124: }
|
||
|
|
LABELV $448
|
||
|
|
line 1126
|
||
|
|
;1125:
|
||
|
|
;1126: pm->ps->groundEntityNum = ENTITYNUM_NONE;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 68
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 1023
|
||
|
|
ASGNI4
|
||
|
|
line 1127
|
||
|
|
;1127: pml.groundPlane = qfalse;
|
||
|
|
ADDRGP4 pml+48
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1128
|
||
|
|
;1128: pml.walking = qfalse;
|
||
|
|
ADDRGP4 pml+44
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1129
|
||
|
|
;1129: return;
|
||
|
|
ADDRGP4 $424
|
||
|
|
JUMPV
|
||
|
|
LABELV $437
|
||
|
|
line 1133
|
||
|
|
;1130: }
|
||
|
|
;1131:
|
||
|
|
;1132: // slopes that are too steep will not be considered onground
|
||
|
|
;1133: if ( trace.plane.normal[2] < MIN_WALK_NORMAL ) {
|
||
|
|
ADDRLP4 0+24+8
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1060320051
|
||
|
|
GEF4 $451
|
||
|
|
line 1134
|
||
|
|
;1134: if ( pm->debugLevel ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $455
|
||
|
|
line 1135
|
||
|
|
;1135: Com_Printf("%i:steep\n", c_pmove);
|
||
|
|
ADDRGP4 $457
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 c_pmove
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 Com_Printf
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1136
|
||
|
|
;1136: }
|
||
|
|
LABELV $455
|
||
|
|
line 1139
|
||
|
|
;1137: // FIXME: if they can't slide down the slope, let them
|
||
|
|
;1138: // walk (sharp crevices)
|
||
|
|
;1139: pm->ps->groundEntityNum = ENTITYNUM_NONE;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 68
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 1023
|
||
|
|
ASGNI4
|
||
|
|
line 1140
|
||
|
|
;1140: pml.groundPlane = qtrue;
|
||
|
|
ADDRGP4 pml+48
|
||
|
|
CNSTI4 1
|
||
|
|
ASGNI4
|
||
|
|
line 1141
|
||
|
|
;1141: pml.walking = qfalse;
|
||
|
|
ADDRGP4 pml+44
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1142
|
||
|
|
;1142: return;
|
||
|
|
ADDRGP4 $424
|
||
|
|
JUMPV
|
||
|
|
LABELV $451
|
||
|
|
line 1145
|
||
|
|
;1143: }
|
||
|
|
;1144:
|
||
|
|
;1145: pml.groundPlane = qtrue;
|
||
|
|
ADDRGP4 pml+48
|
||
|
|
CNSTI4 1
|
||
|
|
ASGNI4
|
||
|
|
line 1146
|
||
|
|
;1146: pml.walking = qtrue;
|
||
|
|
ADDRGP4 pml+44
|
||
|
|
CNSTI4 1
|
||
|
|
ASGNI4
|
||
|
|
line 1149
|
||
|
|
;1147:
|
||
|
|
;1148: // hitting solid ground will end a waterjump
|
||
|
|
;1149: if (pm->ps->pm_flags & PMF_TIME_WATERJUMP)
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 256
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $462
|
||
|
|
line 1150
|
||
|
|
;1150: {
|
||
|
|
line 1151
|
||
|
|
;1151: pm->ps->pm_flags &= ~(PMF_TIME_WATERJUMP | PMF_TIME_LAND);
|
||
|
|
ADDRLP4 84
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 84
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 84
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -289
|
||
|
|
BANDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1152
|
||
|
|
;1152: pm->ps->pm_time = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 16
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1153
|
||
|
|
;1153: }
|
||
|
|
LABELV $462
|
||
|
|
line 1155
|
||
|
|
;1154:
|
||
|
|
;1155: if ( pm->ps->groundEntityNum == ENTITYNUM_NONE ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 68
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1023
|
||
|
|
NEI4 $464
|
||
|
|
line 1157
|
||
|
|
;1156: // just hit the ground
|
||
|
|
;1157: if ( pm->debugLevel ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $466
|
||
|
|
line 1158
|
||
|
|
;1158: Com_Printf("%i:Land\n", c_pmove);
|
||
|
|
ADDRGP4 $468
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 c_pmove
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 Com_Printf
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1159
|
||
|
|
;1159: }
|
||
|
|
LABELV $466
|
||
|
|
line 1161
|
||
|
|
;1160:
|
||
|
|
;1161: PM_CrashLand();
|
||
|
|
ADDRGP4 PM_CrashLand
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1164
|
||
|
|
;1162:
|
||
|
|
;1163: // don't do landing time if we were just going down a slope
|
||
|
|
;1164: if ( pml.previous_velocity[2] < -200 ) {
|
||
|
|
ADDRGP4 pml+124+8
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 3276275712
|
||
|
|
GEF4 $469
|
||
|
|
line 1166
|
||
|
|
;1165: // don't allow another jump for a little while
|
||
|
|
;1166: pm->ps->pm_flags |= PMF_TIME_LAND;
|
||
|
|
ADDRLP4 84
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 84
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 84
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 32
|
||
|
|
BORI4
|
||
|
|
ASGNI4
|
||
|
|
line 1167
|
||
|
|
;1167: pm->ps->pm_time = 250;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 16
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 250
|
||
|
|
ASGNI4
|
||
|
|
line 1168
|
||
|
|
;1168: }
|
||
|
|
LABELV $469
|
||
|
|
line 1169
|
||
|
|
;1169: }
|
||
|
|
LABELV $464
|
||
|
|
line 1171
|
||
|
|
;1170:
|
||
|
|
;1171: pm->ps->groundEntityNum = trace.entityNum;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 68
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 0+52
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
line 1176
|
||
|
|
;1172:
|
||
|
|
;1173: // don't reset the z velocity for slopes
|
||
|
|
;1174:// pm->ps->velocity[2] = 0;
|
||
|
|
;1175:
|
||
|
|
;1176: PM_AddTouchEnt( trace.entityNum );
|
||
|
|
ADDRLP4 0+52
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_AddTouchEnt
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1177
|
||
|
|
;1177:}
|
||
|
|
LABELV $424
|
||
|
|
endproc PM_GroundTrace 88 28
|
||
|
|
proc PM_SetWaterLevel 48 8
|
||
|
|
line 1185
|
||
|
|
;1178:
|
||
|
|
;1179:
|
||
|
|
;1180:/*
|
||
|
|
;1181:=============
|
||
|
|
;1182:PM_SetWaterLevel FIXME: avoid this twice? certainly if not moving
|
||
|
|
;1183:=============
|
||
|
|
;1184:*/
|
||
|
|
;1185:static void PM_SetWaterLevel( void ) {
|
||
|
|
line 1194
|
||
|
|
;1186: vec3_t point;
|
||
|
|
;1187: int cont;
|
||
|
|
;1188: int sample1;
|
||
|
|
;1189: int sample2;
|
||
|
|
;1190:
|
||
|
|
;1191: //
|
||
|
|
;1192: // get waterlevel, accounting for ducking
|
||
|
|
;1193: //
|
||
|
|
;1194: pm->waterlevel = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1195
|
||
|
|
;1195: pm->watertype = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 204
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1197
|
||
|
|
;1196:
|
||
|
|
;1197: point[0] = pm->ps->origin[0];
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 1198
|
||
|
|
;1198: point[1] = pm->ps->origin[1];
|
||
|
|
ADDRLP4 0+4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 24
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 1199
|
||
|
|
;1199: point[2] = pm->ps->origin[2] + MINS_Z + 1;
|
||
|
|
ADDRLP4 0+8
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 28
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 3250585600
|
||
|
|
ADDF4
|
||
|
|
CNSTF4 1065353216
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 1200
|
||
|
|
;1200: cont = pm->pointcontents( point, pm->ps->clientNum );
|
||
|
|
ADDRLP4 0
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 140
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 28
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 228
|
||
|
|
ADDP4
|
||
|
|
INDIRP4
|
||
|
|
CALLI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
line 1202
|
||
|
|
;1201:
|
||
|
|
;1202: if ( cont & MASK_WATER ) {
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 56
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $478
|
||
|
|
line 1203
|
||
|
|
;1203: sample2 = pm->ps->viewheight - MINS_Z;
|
||
|
|
ADDRLP4 16
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 164
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -24
|
||
|
|
SUBI4
|
||
|
|
ASGNI4
|
||
|
|
line 1204
|
||
|
|
;1204: sample1 = sample2 / 2;
|
||
|
|
ADDRLP4 20
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
DIVI4
|
||
|
|
ASGNI4
|
||
|
|
line 1206
|
||
|
|
;1205:
|
||
|
|
;1206: pm->watertype = cont;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 204
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
line 1207
|
||
|
|
;1207: pm->waterlevel = 1;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 1
|
||
|
|
ASGNI4
|
||
|
|
line 1208
|
||
|
|
;1208: point[2] = pm->ps->origin[2] + MINS_Z + sample1;
|
||
|
|
ADDRLP4 0+8
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 28
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 3250585600
|
||
|
|
ADDF4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 1209
|
||
|
|
;1209: cont = pm->pointcontents (point, pm->ps->clientNum );
|
||
|
|
ADDRLP4 0
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 32
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 140
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 36
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 228
|
||
|
|
ADDP4
|
||
|
|
INDIRP4
|
||
|
|
CALLI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
line 1210
|
||
|
|
;1210: if ( cont & MASK_WATER ) {
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 56
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $481
|
||
|
|
line 1211
|
||
|
|
;1211: pm->waterlevel = 2;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 2
|
||
|
|
ASGNI4
|
||
|
|
line 1212
|
||
|
|
;1212: point[2] = pm->ps->origin[2] + MINS_Z + sample2;
|
||
|
|
ADDRLP4 0+8
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 28
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 3250585600
|
||
|
|
ADDF4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
ADDF4
|
||
|
|
ASGNF4
|
||
|
|
line 1213
|
||
|
|
;1213: cont = pm->pointcontents (point, pm->ps->clientNum );
|
||
|
|
ADDRLP4 0
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 40
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 140
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 44
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 228
|
||
|
|
ADDP4
|
||
|
|
INDIRP4
|
||
|
|
CALLI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRLP4 44
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
line 1214
|
||
|
|
;1214: if ( cont & MASK_WATER ){
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 56
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $484
|
||
|
|
line 1215
|
||
|
|
;1215: pm->waterlevel = 3;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 3
|
||
|
|
ASGNI4
|
||
|
|
line 1216
|
||
|
|
;1216: }
|
||
|
|
LABELV $484
|
||
|
|
line 1217
|
||
|
|
;1217: }
|
||
|
|
LABELV $481
|
||
|
|
line 1218
|
||
|
|
;1218: }
|
||
|
|
LABELV $478
|
||
|
|
line 1220
|
||
|
|
;1219:
|
||
|
|
;1220:}
|
||
|
|
LABELV $475
|
||
|
|
endproc PM_SetWaterLevel 48 8
|
||
|
|
proc PM_CheckDuck 76 28
|
||
|
|
line 1230
|
||
|
|
;1221:
|
||
|
|
;1222:/*
|
||
|
|
;1223:==============
|
||
|
|
;1224:PM_CheckDuck
|
||
|
|
;1225:
|
||
|
|
;1226:Sets mins, maxs, and pm->ps->viewheight
|
||
|
|
;1227:==============
|
||
|
|
;1228:*/
|
||
|
|
;1229:static void PM_CheckDuck (void)
|
||
|
|
;1230:{
|
||
|
|
line 1233
|
||
|
|
;1231: trace_t trace;
|
||
|
|
;1232:
|
||
|
|
;1233: if ( pm->ps->powerups[PW_INVULNERABILITY] ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 368
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $487
|
||
|
|
line 1234
|
||
|
|
;1234: if ( pm->ps->pm_flags & PMF_INVULEXPAND ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 16384
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $489
|
||
|
|
line 1236
|
||
|
|
;1235: // invulnerability sphere has a 42 units radius
|
||
|
|
;1236: VectorSet( pm->mins, -42, -42, -42 );
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 180
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 3257401344
|
||
|
|
ASGNF4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 184
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 3257401344
|
||
|
|
ASGNF4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 188
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 3257401344
|
||
|
|
ASGNF4
|
||
|
|
line 1237
|
||
|
|
;1237: VectorSet( pm->maxs, 42, 42, 42 );
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 192
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 1109917696
|
||
|
|
ASGNF4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 196
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 1109917696
|
||
|
|
ASGNF4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 200
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 1109917696
|
||
|
|
ASGNF4
|
||
|
|
line 1238
|
||
|
|
;1238: }
|
||
|
|
ADDRGP4 $490
|
||
|
|
JUMPV
|
||
|
|
LABELV $489
|
||
|
|
line 1239
|
||
|
|
;1239: else {
|
||
|
|
line 1240
|
||
|
|
;1240: VectorSet( pm->mins, -15, -15, MINS_Z );
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 180
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 3245342720
|
||
|
|
ASGNF4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 184
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 3245342720
|
||
|
|
ASGNF4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 188
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 3250585600
|
||
|
|
ASGNF4
|
||
|
|
line 1241
|
||
|
|
;1241: VectorSet( pm->maxs, 15, 15, 16 );
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 192
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 1097859072
|
||
|
|
ASGNF4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 196
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 1097859072
|
||
|
|
ASGNF4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 200
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 1098907648
|
||
|
|
ASGNF4
|
||
|
|
line 1242
|
||
|
|
;1242: }
|
||
|
|
LABELV $490
|
||
|
|
line 1243
|
||
|
|
;1243: pm->ps->pm_flags |= PMF_DUCKED;
|
||
|
|
ADDRLP4 56
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 56
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 56
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
BORI4
|
||
|
|
ASGNI4
|
||
|
|
line 1244
|
||
|
|
;1244: pm->ps->viewheight = CROUCH_VIEWHEIGHT;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 164
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 12
|
||
|
|
ASGNI4
|
||
|
|
line 1245
|
||
|
|
;1245: return;
|
||
|
|
ADDRGP4 $486
|
||
|
|
JUMPV
|
||
|
|
LABELV $487
|
||
|
|
line 1247
|
||
|
|
;1246: }
|
||
|
|
;1247: pm->ps->pm_flags &= ~PMF_INVULEXPAND;
|
||
|
|
ADDRLP4 56
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 56
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 56
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -16385
|
||
|
|
BANDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1249
|
||
|
|
;1248:
|
||
|
|
;1249: pm->mins[0] = -15;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 180
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 3245342720
|
||
|
|
ASGNF4
|
||
|
|
line 1250
|
||
|
|
;1250: pm->mins[1] = -15;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 184
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 3245342720
|
||
|
|
ASGNF4
|
||
|
|
line 1252
|
||
|
|
;1251:
|
||
|
|
;1252: pm->maxs[0] = 15;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 192
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 1097859072
|
||
|
|
ASGNF4
|
||
|
|
line 1253
|
||
|
|
;1253: pm->maxs[1] = 15;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 196
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 1097859072
|
||
|
|
ASGNF4
|
||
|
|
line 1255
|
||
|
|
;1254:
|
||
|
|
;1255: pm->mins[2] = MINS_Z;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 188
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 3250585600
|
||
|
|
ASGNF4
|
||
|
|
line 1257
|
||
|
|
;1256:
|
||
|
|
;1257: if (pm->ps->pm_type == PM_DEAD)
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 3
|
||
|
|
NEI4 $491
|
||
|
|
line 1258
|
||
|
|
;1258: {
|
||
|
|
line 1259
|
||
|
|
;1259: pm->maxs[2] = -8;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 200
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 3238002688
|
||
|
|
ASGNF4
|
||
|
|
line 1260
|
||
|
|
;1260: pm->ps->viewheight = DEAD_VIEWHEIGHT;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 164
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 -16
|
||
|
|
ASGNI4
|
||
|
|
line 1261
|
||
|
|
;1261: return;
|
||
|
|
ADDRGP4 $486
|
||
|
|
JUMPV
|
||
|
|
LABELV $491
|
||
|
|
line 1264
|
||
|
|
;1262: }
|
||
|
|
;1263:
|
||
|
|
;1264: if (pm->cmd.upmove < 0)
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 27
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CNSTI4 0
|
||
|
|
GEI4 $493
|
||
|
|
line 1265
|
||
|
|
;1265: { // duck
|
||
|
|
line 1266
|
||
|
|
;1266: pm->ps->pm_flags |= PMF_DUCKED;
|
||
|
|
ADDRLP4 60
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 60
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 60
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
BORI4
|
||
|
|
ASGNI4
|
||
|
|
line 1267
|
||
|
|
;1267: }
|
||
|
|
ADDRGP4 $494
|
||
|
|
JUMPV
|
||
|
|
LABELV $493
|
||
|
|
line 1269
|
||
|
|
;1268: else
|
||
|
|
;1269: { // stand up if possible
|
||
|
|
line 1270
|
||
|
|
;1270: if (pm->ps->pm_flags & PMF_DUCKED)
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $495
|
||
|
|
line 1271
|
||
|
|
;1271: {
|
||
|
|
line 1273
|
||
|
|
;1272: // try to stand up
|
||
|
|
;1273: pm->maxs[2] = 32;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 200
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 1107296256
|
||
|
|
ASGNF4
|
||
|
|
line 1274
|
||
|
|
;1274: pm->trace (&trace, pm->ps->origin, pm->mins, pm->maxs, pm->ps->origin, pm->ps->clientNum, pm->tracemask );
|
||
|
|
ADDRLP4 0
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 60
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 64
|
||
|
|
ADDRLP4 60
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 68
|
||
|
|
ADDRLP4 64
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 60
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 180
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 60
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 192
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 68
|
||
|
|
INDIRP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 64
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 140
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 60
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 28
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 60
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 224
|
||
|
|
ADDP4
|
||
|
|
INDIRP4
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1275
|
||
|
|
;1275: if (!trace.allsolid)
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $497
|
||
|
|
line 1276
|
||
|
|
;1276: pm->ps->pm_flags &= ~PMF_DUCKED;
|
||
|
|
ADDRLP4 72
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 72
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 72
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -2
|
||
|
|
BANDI4
|
||
|
|
ASGNI4
|
||
|
|
LABELV $497
|
||
|
|
line 1277
|
||
|
|
;1277: }
|
||
|
|
LABELV $495
|
||
|
|
line 1278
|
||
|
|
;1278: }
|
||
|
|
LABELV $494
|
||
|
|
line 1280
|
||
|
|
;1279:
|
||
|
|
;1280: if (pm->ps->pm_flags & PMF_DUCKED)
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $499
|
||
|
|
line 1281
|
||
|
|
;1281: {
|
||
|
|
line 1282
|
||
|
|
;1282: pm->maxs[2] = 16;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 200
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 1098907648
|
||
|
|
ASGNF4
|
||
|
|
line 1283
|
||
|
|
;1283: pm->ps->viewheight = CROUCH_VIEWHEIGHT;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 164
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 12
|
||
|
|
ASGNI4
|
||
|
|
line 1284
|
||
|
|
;1284: }
|
||
|
|
ADDRGP4 $500
|
||
|
|
JUMPV
|
||
|
|
LABELV $499
|
||
|
|
line 1286
|
||
|
|
;1285: else
|
||
|
|
;1286: {
|
||
|
|
line 1287
|
||
|
|
;1287: pm->maxs[2] = 32;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 200
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 1107296256
|
||
|
|
ASGNF4
|
||
|
|
line 1288
|
||
|
|
;1288: pm->ps->viewheight = DEFAULT_VIEWHEIGHT;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 164
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 26
|
||
|
|
ASGNI4
|
||
|
|
line 1289
|
||
|
|
;1289: }
|
||
|
|
LABELV $500
|
||
|
|
line 1290
|
||
|
|
;1290:}
|
||
|
|
LABELV $486
|
||
|
|
endproc PM_CheckDuck 76 28
|
||
|
|
proc PM_Footsteps 52 4
|
||
|
|
line 1302
|
||
|
|
;1291:
|
||
|
|
;1292:
|
||
|
|
;1293:
|
||
|
|
;1294://===================================================================
|
||
|
|
;1295:
|
||
|
|
;1296:
|
||
|
|
;1297:/*
|
||
|
|
;1298:===============
|
||
|
|
;1299:PM_Footsteps
|
||
|
|
;1300:===============
|
||
|
|
;1301:*/
|
||
|
|
;1302:static void PM_Footsteps( void ) {
|
||
|
|
line 1311
|
||
|
|
;1303: float bobmove;
|
||
|
|
;1304: int old;
|
||
|
|
;1305: qboolean footstep;
|
||
|
|
;1306:
|
||
|
|
;1307: //
|
||
|
|
;1308: // calculate speed and cycle to be used for
|
||
|
|
;1309: // all cyclic walking effects
|
||
|
|
;1310: //
|
||
|
|
;1311: pm->xyspeed = sqrt( pm->ps->velocity[0] * pm->ps->velocity[0]
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 16
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 20
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 36
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRF4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRF4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
ARGF4
|
||
|
|
ADDRLP4 28
|
||
|
|
ADDRGP4 sqrt
|
||
|
|
CALLF4
|
||
|
|
ASGNF4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 212
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRF4
|
||
|
|
ASGNF4
|
||
|
|
line 1314
|
||
|
|
;1312: + pm->ps->velocity[1] * pm->ps->velocity[1] );
|
||
|
|
;1313:
|
||
|
|
;1314: if ( pm->ps->groundEntityNum == ENTITYNUM_NONE ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 68
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1023
|
||
|
|
NEI4 $502
|
||
|
|
line 1316
|
||
|
|
;1315:
|
||
|
|
;1316: if ( pm->ps->powerups[PW_INVULNERABILITY] ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 368
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $504
|
||
|
|
line 1317
|
||
|
|
;1317: PM_ContinueLegsAnim( LEGS_IDLECR );
|
||
|
|
CNSTI4 23
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ContinueLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1318
|
||
|
|
;1318: }
|
||
|
|
LABELV $504
|
||
|
|
line 1320
|
||
|
|
;1319: // airborne leaves position in cycle intact, but doesn't advance
|
||
|
|
;1320: if ( pm->waterlevel > 1 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
LEI4 $501
|
||
|
|
line 1321
|
||
|
|
;1321: PM_ContinueLegsAnim( LEGS_SWIM );
|
||
|
|
CNSTI4 17
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ContinueLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1322
|
||
|
|
;1322: }
|
||
|
|
line 1323
|
||
|
|
;1323: return;
|
||
|
|
ADDRGP4 $501
|
||
|
|
JUMPV
|
||
|
|
LABELV $502
|
||
|
|
line 1327
|
||
|
|
;1324: }
|
||
|
|
;1325:
|
||
|
|
;1326: // if not trying to move
|
||
|
|
;1327: if ( !pm->cmd.forwardmove && !pm->cmd.rightmove ) {
|
||
|
|
ADDRLP4 32
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 36
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $508
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $508
|
||
|
|
line 1328
|
||
|
|
;1328: if ( pm->xyspeed < 5 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 212
|
||
|
|
ADDP4
|
||
|
|
INDIRF4
|
||
|
|
CNSTF4 1084227584
|
||
|
|
GEF4 $501
|
||
|
|
line 1329
|
||
|
|
;1329: pm->ps->bobCycle = 0; // start at beginning of cycle again
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 8
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1330
|
||
|
|
;1330: if ( pm->ps->pm_flags & PMF_DUCKED ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $512
|
||
|
|
line 1331
|
||
|
|
;1331: PM_ContinueLegsAnim( LEGS_IDLECR );
|
||
|
|
CNSTI4 23
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ContinueLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1332
|
||
|
|
;1332: } else {
|
||
|
|
ADDRGP4 $501
|
||
|
|
JUMPV
|
||
|
|
LABELV $512
|
||
|
|
line 1333
|
||
|
|
;1333: PM_ContinueLegsAnim( LEGS_IDLE );
|
||
|
|
CNSTI4 22
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ContinueLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1334
|
||
|
|
;1334: }
|
||
|
|
line 1335
|
||
|
|
;1335: }
|
||
|
|
line 1336
|
||
|
|
;1336: return;
|
||
|
|
ADDRGP4 $501
|
||
|
|
JUMPV
|
||
|
|
LABELV $508
|
||
|
|
line 1340
|
||
|
|
;1337: }
|
||
|
|
;1338:
|
||
|
|
;1339:
|
||
|
|
;1340: footstep = qfalse;
|
||
|
|
ADDRLP4 8
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1342
|
||
|
|
;1341:
|
||
|
|
;1342: if ( pm->ps->pm_flags & PMF_DUCKED ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $514
|
||
|
|
line 1343
|
||
|
|
;1343: bobmove = 0.5; // ducked characters bob much faster
|
||
|
|
ADDRLP4 4
|
||
|
|
CNSTF4 1056964608
|
||
|
|
ASGNF4
|
||
|
|
line 1344
|
||
|
|
;1344: if ( pm->ps->pm_flags & PMF_BACKWARDS_RUN ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 16
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $516
|
||
|
|
line 1345
|
||
|
|
;1345: PM_ContinueLegsAnim( LEGS_BACKCR );
|
||
|
|
CNSTI4 32
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ContinueLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1346
|
||
|
|
;1346: }
|
||
|
|
ADDRGP4 $515
|
||
|
|
JUMPV
|
||
|
|
LABELV $516
|
||
|
|
line 1347
|
||
|
|
;1347: else {
|
||
|
|
line 1348
|
||
|
|
;1348: PM_ContinueLegsAnim( LEGS_WALKCR );
|
||
|
|
CNSTI4 13
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ContinueLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1349
|
||
|
|
;1349: }
|
||
|
|
line 1361
|
||
|
|
;1350: // ducked characters never play footsteps
|
||
|
|
;1351: /*
|
||
|
|
;1352: } else if ( pm->ps->pm_flags & PMF_BACKWARDS_RUN ) {
|
||
|
|
;1353: if ( !( pm->cmd.buttons & BUTTON_WALKING ) ) {
|
||
|
|
;1354: bobmove = 0.4; // faster speeds bob faster
|
||
|
|
;1355: footstep = qtrue;
|
||
|
|
;1356: } else {
|
||
|
|
;1357: bobmove = 0.3;
|
||
|
|
;1358: }
|
||
|
|
;1359: PM_ContinueLegsAnim( LEGS_BACK );
|
||
|
|
;1360: */
|
||
|
|
;1361: } else {
|
||
|
|
ADDRGP4 $515
|
||
|
|
JUMPV
|
||
|
|
LABELV $514
|
||
|
|
line 1362
|
||
|
|
;1362: if ( !( pm->cmd.buttons & BUTTON_WALKING ) ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 16
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $518
|
||
|
|
line 1363
|
||
|
|
;1363: bobmove = 0.4f; // faster speeds bob faster
|
||
|
|
ADDRLP4 4
|
||
|
|
CNSTF4 1053609165
|
||
|
|
ASGNF4
|
||
|
|
line 1364
|
||
|
|
;1364: if ( pm->ps->pm_flags & PMF_BACKWARDS_RUN ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 16
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $520
|
||
|
|
line 1365
|
||
|
|
;1365: PM_ContinueLegsAnim( LEGS_BACK );
|
||
|
|
CNSTI4 16
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ContinueLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1366
|
||
|
|
;1366: }
|
||
|
|
ADDRGP4 $521
|
||
|
|
JUMPV
|
||
|
|
LABELV $520
|
||
|
|
line 1367
|
||
|
|
;1367: else {
|
||
|
|
line 1368
|
||
|
|
;1368: PM_ContinueLegsAnim( LEGS_RUN );
|
||
|
|
CNSTI4 15
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ContinueLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1369
|
||
|
|
;1369: }
|
||
|
|
LABELV $521
|
||
|
|
line 1370
|
||
|
|
;1370: footstep = qtrue;
|
||
|
|
ADDRLP4 8
|
||
|
|
CNSTI4 1
|
||
|
|
ASGNI4
|
||
|
|
line 1371
|
||
|
|
;1371: } else {
|
||
|
|
ADDRGP4 $519
|
||
|
|
JUMPV
|
||
|
|
LABELV $518
|
||
|
|
line 1372
|
||
|
|
;1372: bobmove = 0.3f; // walking bobs slow
|
||
|
|
ADDRLP4 4
|
||
|
|
CNSTF4 1050253722
|
||
|
|
ASGNF4
|
||
|
|
line 1373
|
||
|
|
;1373: if ( pm->ps->pm_flags & PMF_BACKWARDS_RUN ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 16
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $522
|
||
|
|
line 1374
|
||
|
|
;1374: PM_ContinueLegsAnim( LEGS_BACKWALK );
|
||
|
|
CNSTI4 33
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ContinueLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1375
|
||
|
|
;1375: }
|
||
|
|
ADDRGP4 $523
|
||
|
|
JUMPV
|
||
|
|
LABELV $522
|
||
|
|
line 1376
|
||
|
|
;1376: else {
|
||
|
|
line 1377
|
||
|
|
;1377: PM_ContinueLegsAnim( LEGS_WALK );
|
||
|
|
CNSTI4 14
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ContinueLegsAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1378
|
||
|
|
;1378: }
|
||
|
|
LABELV $523
|
||
|
|
line 1379
|
||
|
|
;1379: }
|
||
|
|
LABELV $519
|
||
|
|
line 1380
|
||
|
|
;1380: }
|
||
|
|
LABELV $515
|
||
|
|
line 1383
|
||
|
|
;1381:
|
||
|
|
;1382: // check for footstep / splash sounds
|
||
|
|
;1383: old = pm->ps->bobCycle;
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 8
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
line 1384
|
||
|
|
;1384: pm->ps->bobCycle = (int)( old + bobmove * pml.msec ) & 255;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 8
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRF4
|
||
|
|
ADDRGP4 pml+40
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
MULF4
|
||
|
|
ADDF4
|
||
|
|
CVFI4 4
|
||
|
|
CNSTI4 255
|
||
|
|
BANDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1387
|
||
|
|
;1385:
|
||
|
|
;1386: // if we just crossed a cycle boundary, play an apropriate footstep event
|
||
|
|
;1387: if ( ( ( old + 64 ) ^ ( pm->ps->bobCycle + 64 ) ) & 128 ) {
|
||
|
|
ADDRLP4 40
|
||
|
|
CNSTI4 64
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRI4
|
||
|
|
ADDI4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 8
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRI4
|
||
|
|
ADDI4
|
||
|
|
BXORI4
|
||
|
|
CNSTI4 128
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $525
|
||
|
|
line 1388
|
||
|
|
;1388: if ( pm->waterlevel == 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $527
|
||
|
|
line 1390
|
||
|
|
;1389: // on ground will only play sounds if running
|
||
|
|
;1390: if ( footstep && !pm->noFootsteps ) {
|
||
|
|
ADDRLP4 44
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 44
|
||
|
|
INDIRI4
|
||
|
|
EQI4 $528
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 36
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 44
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $528
|
||
|
|
line 1391
|
||
|
|
;1391: PM_AddEvent( PM_FootstepForSurface() );
|
||
|
|
ADDRLP4 48
|
||
|
|
ADDRGP4 PM_FootstepForSurface
|
||
|
|
CALLI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 48
|
||
|
|
INDIRI4
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_AddEvent
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1392
|
||
|
|
;1392: }
|
||
|
|
line 1393
|
||
|
|
;1393: } else if ( pm->waterlevel == 1 ) {
|
||
|
|
ADDRGP4 $528
|
||
|
|
JUMPV
|
||
|
|
LABELV $527
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
NEI4 $531
|
||
|
|
line 1395
|
||
|
|
;1394: // splashing
|
||
|
|
;1395: PM_AddEvent( EV_FOOTSPLASH );
|
||
|
|
CNSTI4 3
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_AddEvent
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1396
|
||
|
|
;1396: } else if ( pm->waterlevel == 2 ) {
|
||
|
|
ADDRGP4 $532
|
||
|
|
JUMPV
|
||
|
|
LABELV $531
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
NEI4 $533
|
||
|
|
line 1398
|
||
|
|
;1397: // wading / swimming at surface
|
||
|
|
;1398: PM_AddEvent( EV_SWIM );
|
||
|
|
CNSTI4 5
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_AddEvent
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1399
|
||
|
|
;1399: } else if ( pm->waterlevel == 3 ) {
|
||
|
|
ADDRGP4 $534
|
||
|
|
JUMPV
|
||
|
|
LABELV $533
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 3
|
||
|
|
NEI4 $535
|
||
|
|
line 1402
|
||
|
|
;1400: // no sound when completely underwater
|
||
|
|
;1401:
|
||
|
|
;1402: }
|
||
|
|
LABELV $535
|
||
|
|
LABELV $534
|
||
|
|
LABELV $532
|
||
|
|
LABELV $528
|
||
|
|
line 1403
|
||
|
|
;1403: }
|
||
|
|
LABELV $525
|
||
|
|
line 1404
|
||
|
|
;1404:}
|
||
|
|
LABELV $501
|
||
|
|
endproc PM_Footsteps 52 4
|
||
|
|
proc PM_WaterEvents 16 4
|
||
|
|
line 1413
|
||
|
|
;1405:
|
||
|
|
;1406:/*
|
||
|
|
;1407:==============
|
||
|
|
;1408:PM_WaterEvents
|
||
|
|
;1409:
|
||
|
|
;1410:Generate sound events for entering and leaving water
|
||
|
|
;1411:==============
|
||
|
|
;1412:*/
|
||
|
|
;1413:static void PM_WaterEvents( void ) { // FIXME?
|
||
|
|
line 1417
|
||
|
|
;1414: //
|
||
|
|
;1415: // if just entered a water volume, play a sound
|
||
|
|
;1416: //
|
||
|
|
;1417: if (!pml.previous_waterlevel && pm->waterlevel) {
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRGP4 pml+136
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $538
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
EQI4 $538
|
||
|
|
line 1418
|
||
|
|
;1418: PM_AddEvent( EV_WATER_TOUCH );
|
||
|
|
CNSTI4 15
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_AddEvent
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1419
|
||
|
|
;1419: }
|
||
|
|
LABELV $538
|
||
|
|
line 1424
|
||
|
|
;1420:
|
||
|
|
;1421: //
|
||
|
|
;1422: // if just completely exited a water volume, play a sound
|
||
|
|
;1423: //
|
||
|
|
;1424: if (pml.previous_waterlevel && !pm->waterlevel) {
|
||
|
|
ADDRLP4 4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRGP4 pml+136
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRI4
|
||
|
|
EQI4 $541
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $541
|
||
|
|
line 1425
|
||
|
|
;1425: PM_AddEvent( EV_WATER_LEAVE );
|
||
|
|
CNSTI4 16
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_AddEvent
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1426
|
||
|
|
;1426: }
|
||
|
|
LABELV $541
|
||
|
|
line 1431
|
||
|
|
;1427:
|
||
|
|
;1428: //
|
||
|
|
;1429: // check for head just going under water
|
||
|
|
;1430: //
|
||
|
|
;1431: if (pml.previous_waterlevel != 3 && pm->waterlevel == 3) {
|
||
|
|
ADDRLP4 8
|
||
|
|
CNSTI4 3
|
||
|
|
ASGNI4
|
||
|
|
ADDRGP4 pml+136
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRI4
|
||
|
|
EQI4 $544
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $544
|
||
|
|
line 1432
|
||
|
|
;1432: PM_AddEvent( EV_WATER_UNDER );
|
||
|
|
CNSTI4 17
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_AddEvent
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1433
|
||
|
|
;1433: }
|
||
|
|
LABELV $544
|
||
|
|
line 1438
|
||
|
|
;1434:
|
||
|
|
;1435: //
|
||
|
|
;1436: // check for head just coming out of water
|
||
|
|
;1437: //
|
||
|
|
;1438: if (pml.previous_waterlevel == 3 && pm->waterlevel != 3) {
|
||
|
|
ADDRLP4 12
|
||
|
|
CNSTI4 3
|
||
|
|
ASGNI4
|
||
|
|
ADDRGP4 pml+136
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $547
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRI4
|
||
|
|
EQI4 $547
|
||
|
|
line 1439
|
||
|
|
;1439: PM_AddEvent( EV_WATER_CLEAR );
|
||
|
|
CNSTI4 18
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_AddEvent
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1440
|
||
|
|
;1440: }
|
||
|
|
LABELV $547
|
||
|
|
line 1441
|
||
|
|
;1441:}
|
||
|
|
LABELV $537
|
||
|
|
endproc PM_WaterEvents 16 4
|
||
|
|
proc PM_BeginWeaponChange 8 4
|
||
|
|
line 1449
|
||
|
|
;1442:
|
||
|
|
;1443:
|
||
|
|
;1444:/*
|
||
|
|
;1445:===============
|
||
|
|
;1446:PM_BeginWeaponChange
|
||
|
|
;1447:===============
|
||
|
|
;1448:*/
|
||
|
|
;1449:static void PM_BeginWeaponChange( int weapon ) {
|
||
|
|
line 1450
|
||
|
|
;1450: if ( weapon <= WP_NONE || weapon >= WP_NUM_WEAPONS ) {
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
LEI4 $553
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 14
|
||
|
|
LTI4 $551
|
||
|
|
LABELV $553
|
||
|
|
line 1451
|
||
|
|
;1451: return;
|
||
|
|
ADDRGP4 $550
|
||
|
|
JUMPV
|
||
|
|
LABELV $551
|
||
|
|
line 1454
|
||
|
|
;1452: }
|
||
|
|
;1453:
|
||
|
|
;1454: if ( !( pm->ps->stats[STAT_WEAPONS] & ( 1 << weapon ) ) ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 196
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRI4
|
||
|
|
LSHI4
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $554
|
||
|
|
line 1455
|
||
|
|
;1455: return;
|
||
|
|
ADDRGP4 $550
|
||
|
|
JUMPV
|
||
|
|
LABELV $554
|
||
|
|
line 1458
|
||
|
|
;1456: }
|
||
|
|
;1457:
|
||
|
|
;1458: if ( pm->ps->weaponstate == WEAPON_DROPPING ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 148
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
NEI4 $556
|
||
|
|
line 1459
|
||
|
|
;1459: return;
|
||
|
|
ADDRGP4 $550
|
||
|
|
JUMPV
|
||
|
|
LABELV $556
|
||
|
|
line 1462
|
||
|
|
;1460: }
|
||
|
|
;1461:
|
||
|
|
;1462: PM_AddEvent( EV_CHANGE_WEAPON );
|
||
|
|
CNSTI4 22
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_AddEvent
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1463
|
||
|
|
;1463: pm->ps->weaponstate = WEAPON_DROPPING;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 148
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 2
|
||
|
|
ASGNI4
|
||
|
|
line 1464
|
||
|
|
;1464: pm->ps->weaponTime += 200;
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 44
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 200
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1465
|
||
|
|
;1465: PM_StartTorsoAnim( TORSO_DROP );
|
||
|
|
CNSTI4 9
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StartTorsoAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1466
|
||
|
|
;1466:}
|
||
|
|
LABELV $550
|
||
|
|
endproc PM_BeginWeaponChange 8 4
|
||
|
|
proc PM_FinishWeaponChange 12 4
|
||
|
|
line 1474
|
||
|
|
;1467:
|
||
|
|
;1468:
|
||
|
|
;1469:/*
|
||
|
|
;1470:===============
|
||
|
|
;1471:PM_FinishWeaponChange
|
||
|
|
;1472:===============
|
||
|
|
;1473:*/
|
||
|
|
;1474:static void PM_FinishWeaponChange( void ) {
|
||
|
|
line 1477
|
||
|
|
;1475: int weapon;
|
||
|
|
;1476:
|
||
|
|
;1477: weapon = pm->cmd.weapon;
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 24
|
||
|
|
ADDP4
|
||
|
|
INDIRU1
|
||
|
|
CVUI4 1
|
||
|
|
ASGNI4
|
||
|
|
line 1478
|
||
|
|
;1478: if ( weapon < WP_NONE || weapon >= WP_NUM_WEAPONS ) {
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
LTI4 $561
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 14
|
||
|
|
LTI4 $559
|
||
|
|
LABELV $561
|
||
|
|
line 1479
|
||
|
|
;1479: weapon = WP_NONE;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1480
|
||
|
|
;1480: }
|
||
|
|
LABELV $559
|
||
|
|
line 1482
|
||
|
|
;1481:
|
||
|
|
;1482: if ( !( pm->ps->stats[STAT_WEAPONS] & ( 1 << weapon ) ) ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 196
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
LSHI4
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $562
|
||
|
|
line 1483
|
||
|
|
;1483: weapon = WP_NONE;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1484
|
||
|
|
;1484: }
|
||
|
|
LABELV $562
|
||
|
|
line 1486
|
||
|
|
;1485:
|
||
|
|
;1486: pm->ps->weapon = weapon;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 144
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
line 1487
|
||
|
|
;1487: pm->ps->weaponstate = WEAPON_RAISING;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 148
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 1
|
||
|
|
ASGNI4
|
||
|
|
line 1488
|
||
|
|
;1488: pm->ps->weaponTime += 250;
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 44
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 250
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1489
|
||
|
|
;1489: PM_StartTorsoAnim( TORSO_RAISE );
|
||
|
|
CNSTI4 10
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StartTorsoAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1490
|
||
|
|
;1490:}
|
||
|
|
LABELV $558
|
||
|
|
endproc PM_FinishWeaponChange 12 4
|
||
|
|
proc PM_TorsoAnimation 0 4
|
||
|
|
line 1499
|
||
|
|
;1491:
|
||
|
|
;1492:
|
||
|
|
;1493:/*
|
||
|
|
;1494:==============
|
||
|
|
;1495:PM_TorsoAnimation
|
||
|
|
;1496:
|
||
|
|
;1497:==============
|
||
|
|
;1498:*/
|
||
|
|
;1499:static void PM_TorsoAnimation( void ) {
|
||
|
|
line 1500
|
||
|
|
;1500: if ( pm->ps->weaponstate == WEAPON_READY ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 148
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $565
|
||
|
|
line 1501
|
||
|
|
;1501: if ( pm->ps->weapon == WP_GAUNTLET ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 144
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
NEI4 $567
|
||
|
|
line 1502
|
||
|
|
;1502: PM_ContinueTorsoAnim( TORSO_STAND2 );
|
||
|
|
CNSTI4 12
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ContinueTorsoAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1503
|
||
|
|
;1503: } else {
|
||
|
|
ADDRGP4 $564
|
||
|
|
JUMPV
|
||
|
|
LABELV $567
|
||
|
|
line 1504
|
||
|
|
;1504: PM_ContinueTorsoAnim( TORSO_STAND );
|
||
|
|
CNSTI4 11
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_ContinueTorsoAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1505
|
||
|
|
;1505: }
|
||
|
|
line 1506
|
||
|
|
;1506: return;
|
||
|
|
LABELV $565
|
||
|
|
line 1508
|
||
|
|
;1507: }
|
||
|
|
;1508:}
|
||
|
|
LABELV $564
|
||
|
|
endproc PM_TorsoAnimation 0 4
|
||
|
|
proc PM_Weapon 28 4
|
||
|
|
line 1518
|
||
|
|
;1509:
|
||
|
|
;1510:
|
||
|
|
;1511:/*
|
||
|
|
;1512:==============
|
||
|
|
;1513:PM_Weapon
|
||
|
|
;1514:
|
||
|
|
;1515:Generates weapon events and modifes the weapon counter
|
||
|
|
;1516:==============
|
||
|
|
;1517:*/
|
||
|
|
;1518:static void PM_Weapon( void ) {
|
||
|
|
line 1522
|
||
|
|
;1519: int addTime;
|
||
|
|
;1520:
|
||
|
|
;1521: // don't allow attack until all buttons are up
|
||
|
|
;1522: if ( pm->ps->pm_flags & PMF_RESPAWNED ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 512
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $570
|
||
|
|
line 1523
|
||
|
|
;1523: return;
|
||
|
|
ADDRGP4 $569
|
||
|
|
JUMPV
|
||
|
|
LABELV $570
|
||
|
|
line 1527
|
||
|
|
;1524: }
|
||
|
|
;1525:
|
||
|
|
;1526: // ignore if spectator
|
||
|
|
;1527: if ( pm->ps->persistant[PERS_TEAM] == TEAM_SPECTATOR ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 260
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 3
|
||
|
|
NEI4 $572
|
||
|
|
line 1528
|
||
|
|
;1528: return;
|
||
|
|
ADDRGP4 $569
|
||
|
|
JUMPV
|
||
|
|
LABELV $572
|
||
|
|
line 1532
|
||
|
|
;1529: }
|
||
|
|
;1530:
|
||
|
|
;1531: // check for dead player
|
||
|
|
;1532: if ( pm->ps->stats[STAT_HEALTH] <= 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 184
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
GTI4 $574
|
||
|
|
line 1533
|
||
|
|
;1533: pm->ps->weapon = WP_NONE;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 144
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1534
|
||
|
|
;1534: return;
|
||
|
|
ADDRGP4 $569
|
||
|
|
JUMPV
|
||
|
|
LABELV $574
|
||
|
|
line 1538
|
||
|
|
;1535: }
|
||
|
|
;1536:
|
||
|
|
;1537: // check for item using
|
||
|
|
;1538: if ( pm->cmd.buttons & BUTTON_USE_HOLDABLE ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 4
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $576
|
||
|
|
line 1539
|
||
|
|
;1539: if ( ! ( pm->ps->pm_flags & PMF_USE_ITEM_HELD ) ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1024
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $577
|
||
|
|
line 1540
|
||
|
|
;1540: if ( bg_itemlist[pm->ps->stats[STAT_HOLDABLE_ITEM]].giTag == HI_MEDKIT
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
CNSTI4 52
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 188
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
MULI4
|
||
|
|
ADDRGP4 bg_itemlist+40
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
NEI4 $580
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 184
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 212
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDI4
|
||
|
|
LTI4 $580
|
||
|
|
line 1541
|
||
|
|
;1541: && pm->ps->stats[STAT_HEALTH] >= (pm->ps->stats[STAT_MAX_HEALTH] + 25) ) {
|
||
|
|
line 1543
|
||
|
|
;1542: // don't use medkit if at max health
|
||
|
|
;1543: } else {
|
||
|
|
ADDRGP4 $569
|
||
|
|
JUMPV
|
||
|
|
LABELV $580
|
||
|
|
line 1544
|
||
|
|
;1544: pm->ps->pm_flags |= PMF_USE_ITEM_HELD;
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1024
|
||
|
|
BORI4
|
||
|
|
ASGNI4
|
||
|
|
line 1545
|
||
|
|
;1545: PM_AddEvent( EV_USE_ITEM0 + bg_itemlist[pm->ps->stats[STAT_HOLDABLE_ITEM]].giTag );
|
||
|
|
CNSTI4 52
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 188
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
MULI4
|
||
|
|
ADDRGP4 bg_itemlist+40
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 24
|
||
|
|
ADDI4
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_AddEvent
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1546
|
||
|
|
;1546: pm->ps->stats[STAT_HOLDABLE_ITEM] = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 188
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1547
|
||
|
|
;1547: }
|
||
|
|
line 1548
|
||
|
|
;1548: return;
|
||
|
|
ADDRGP4 $569
|
||
|
|
JUMPV
|
||
|
|
line 1550
|
||
|
|
;1549: }
|
||
|
|
;1550: } else {
|
||
|
|
LABELV $576
|
||
|
|
line 1551
|
||
|
|
;1551: pm->ps->pm_flags &= ~PMF_USE_ITEM_HELD;
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -1025
|
||
|
|
BANDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1552
|
||
|
|
;1552: }
|
||
|
|
LABELV $577
|
||
|
|
line 1556
|
||
|
|
;1553:
|
||
|
|
;1554:
|
||
|
|
;1555: // make weapon function
|
||
|
|
;1556: if ( pm->ps->weaponTime > 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 44
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
LEI4 $584
|
||
|
|
line 1557
|
||
|
|
;1557: pm->ps->weaponTime -= pml.msec;
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 44
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRGP4 pml+40
|
||
|
|
INDIRI4
|
||
|
|
SUBI4
|
||
|
|
ASGNI4
|
||
|
|
line 1558
|
||
|
|
;1558: }
|
||
|
|
LABELV $584
|
||
|
|
line 1563
|
||
|
|
;1559:
|
||
|
|
;1560: // check for weapon change
|
||
|
|
;1561: // can't change if weapon is firing, but can change
|
||
|
|
;1562: // again if lowering or raising
|
||
|
|
;1563: if ( pm->ps->weaponTime <= 0 || pm->ps->weaponstate != WEAPON_FIRING ) {
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 44
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
LEI4 $589
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 148
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 3
|
||
|
|
EQI4 $587
|
||
|
|
LABELV $589
|
||
|
|
line 1564
|
||
|
|
;1564: if ( pm->ps->weapon != pm->cmd.weapon ) {
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 144
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 24
|
||
|
|
ADDP4
|
||
|
|
INDIRU1
|
||
|
|
CVUI4 1
|
||
|
|
EQI4 $590
|
||
|
|
line 1565
|
||
|
|
;1565: PM_BeginWeaponChange( pm->cmd.weapon );
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 24
|
||
|
|
ADDP4
|
||
|
|
INDIRU1
|
||
|
|
CVUI4 1
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_BeginWeaponChange
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1566
|
||
|
|
;1566: }
|
||
|
|
LABELV $590
|
||
|
|
line 1567
|
||
|
|
;1567: }
|
||
|
|
LABELV $587
|
||
|
|
line 1569
|
||
|
|
;1568:
|
||
|
|
;1569: if ( pm->ps->weaponTime > 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 44
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
LEI4 $592
|
||
|
|
line 1570
|
||
|
|
;1570: return;
|
||
|
|
ADDRGP4 $569
|
||
|
|
JUMPV
|
||
|
|
LABELV $592
|
||
|
|
line 1574
|
||
|
|
;1571: }
|
||
|
|
;1572:
|
||
|
|
;1573: // change weapon if time
|
||
|
|
;1574: if ( pm->ps->weaponstate == WEAPON_DROPPING ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 148
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
NEI4 $594
|
||
|
|
line 1575
|
||
|
|
;1575: PM_FinishWeaponChange();
|
||
|
|
ADDRGP4 PM_FinishWeaponChange
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1576
|
||
|
|
;1576: return;
|
||
|
|
ADDRGP4 $569
|
||
|
|
JUMPV
|
||
|
|
LABELV $594
|
||
|
|
line 1579
|
||
|
|
;1577: }
|
||
|
|
;1578:
|
||
|
|
;1579: if ( pm->ps->weaponstate == WEAPON_RAISING ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 148
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
NEI4 $596
|
||
|
|
line 1580
|
||
|
|
;1580: pm->ps->weaponstate = WEAPON_READY;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 148
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1581
|
||
|
|
;1581: if ( pm->ps->weapon == WP_GAUNTLET ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 144
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
NEI4 $598
|
||
|
|
line 1582
|
||
|
|
;1582: PM_StartTorsoAnim( TORSO_STAND2 );
|
||
|
|
CNSTI4 12
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StartTorsoAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1583
|
||
|
|
;1583: } else {
|
||
|
|
ADDRGP4 $569
|
||
|
|
JUMPV
|
||
|
|
LABELV $598
|
||
|
|
line 1584
|
||
|
|
;1584: PM_StartTorsoAnim( TORSO_STAND );
|
||
|
|
CNSTI4 11
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StartTorsoAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1585
|
||
|
|
;1585: }
|
||
|
|
line 1586
|
||
|
|
;1586: return;
|
||
|
|
ADDRGP4 $569
|
||
|
|
JUMPV
|
||
|
|
LABELV $596
|
||
|
|
line 1590
|
||
|
|
;1587: }
|
||
|
|
;1588:
|
||
|
|
;1589: // check for fire
|
||
|
|
;1590: if ( ! (pm->cmd.buttons & BUTTON_ATTACK) ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $600
|
||
|
|
line 1591
|
||
|
|
;1591: pm->ps->weaponTime = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 44
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1592
|
||
|
|
;1592: pm->ps->weaponstate = WEAPON_READY;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 148
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1593
|
||
|
|
;1593: return;
|
||
|
|
ADDRGP4 $569
|
||
|
|
JUMPV
|
||
|
|
LABELV $600
|
||
|
|
line 1597
|
||
|
|
;1594: }
|
||
|
|
;1595:
|
||
|
|
;1596: // start the animation even if out of ammo
|
||
|
|
;1597: if ( pm->ps->weapon == WP_GAUNTLET ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 144
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
NEI4 $602
|
||
|
|
line 1599
|
||
|
|
;1598: // the guantlet only "fires" when it actually hits something
|
||
|
|
;1599: if ( !pm->gauntletHit ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 40
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $604
|
||
|
|
line 1600
|
||
|
|
;1600: pm->ps->weaponTime = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 44
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1601
|
||
|
|
;1601: pm->ps->weaponstate = WEAPON_READY;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 148
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1602
|
||
|
|
;1602: return;
|
||
|
|
ADDRGP4 $569
|
||
|
|
JUMPV
|
||
|
|
LABELV $604
|
||
|
|
line 1604
|
||
|
|
;1603: }
|
||
|
|
;1604: PM_StartTorsoAnim( TORSO_ATTACK2 );
|
||
|
|
CNSTI4 8
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StartTorsoAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1605
|
||
|
|
;1605: } else {
|
||
|
|
ADDRGP4 $603
|
||
|
|
JUMPV
|
||
|
|
LABELV $602
|
||
|
|
line 1606
|
||
|
|
;1606: PM_StartTorsoAnim( TORSO_ATTACK );
|
||
|
|
CNSTI4 7
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StartTorsoAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1607
|
||
|
|
;1607: }
|
||
|
|
LABELV $603
|
||
|
|
line 1609
|
||
|
|
;1608:
|
||
|
|
;1609: pm->ps->weaponstate = WEAPON_FIRING;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 148
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 3
|
||
|
|
ASGNI4
|
||
|
|
line 1612
|
||
|
|
;1610:
|
||
|
|
;1611: // check for out of ammo
|
||
|
|
;1612: if ( ! pm->ps->ammo[ pm->ps->weapon ] ) {
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 144
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 376
|
||
|
|
ADDP4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $606
|
||
|
|
line 1613
|
||
|
|
;1613: PM_AddEvent( EV_NOAMMO );
|
||
|
|
CNSTI4 21
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_AddEvent
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1614
|
||
|
|
;1614: pm->ps->weaponTime += 500;
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 44
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 500
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1615
|
||
|
|
;1615: return;
|
||
|
|
ADDRGP4 $569
|
||
|
|
JUMPV
|
||
|
|
LABELV $606
|
||
|
|
line 1619
|
||
|
|
;1616: }
|
||
|
|
;1617:
|
||
|
|
;1618: // take an ammo away if not infinite
|
||
|
|
;1619: if ( pm->ps->ammo[ pm->ps->weapon ] != -1 ) {
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 144
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 376
|
||
|
|
ADDP4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -1
|
||
|
|
EQI4 $608
|
||
|
|
line 1620
|
||
|
|
;1620: pm->ps->ammo[ pm->ps->weapon ]--;
|
||
|
|
ADDRLP4 16
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 20
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 144
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 376
|
||
|
|
ADDP4
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
SUBI4
|
||
|
|
ASGNI4
|
||
|
|
line 1621
|
||
|
|
;1621: }
|
||
|
|
LABELV $608
|
||
|
|
line 1624
|
||
|
|
;1622:
|
||
|
|
;1623: // fire weapon
|
||
|
|
;1624: PM_AddEvent( EV_FIRE_WEAPON );
|
||
|
|
CNSTI4 23
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_AddEvent
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1626
|
||
|
|
;1625:
|
||
|
|
;1626: switch( pm->ps->weapon ) {
|
||
|
|
ADDRLP4 16
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 144
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
LTI4 $610
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 13
|
||
|
|
GTI4 $610
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ADDRGP4 $626-4
|
||
|
|
ADDP4
|
||
|
|
INDIRP4
|
||
|
|
JUMPV
|
||
|
|
lit
|
||
|
|
align 4
|
||
|
|
LABELV $626
|
||
|
|
address $613
|
||
|
|
address $616
|
||
|
|
address $615
|
||
|
|
address $617
|
||
|
|
address $618
|
||
|
|
address $614
|
||
|
|
address $620
|
||
|
|
address $619
|
||
|
|
address $621
|
||
|
|
address $622
|
||
|
|
address $623
|
||
|
|
address $624
|
||
|
|
address $625
|
||
|
|
code
|
||
|
|
LABELV $610
|
||
|
|
LABELV $613
|
||
|
|
line 1629
|
||
|
|
;1627: default:
|
||
|
|
;1628: case WP_GAUNTLET:
|
||
|
|
;1629: addTime = 400;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 400
|
||
|
|
ASGNI4
|
||
|
|
line 1630
|
||
|
|
;1630: break;
|
||
|
|
ADDRGP4 $611
|
||
|
|
JUMPV
|
||
|
|
LABELV $614
|
||
|
|
line 1632
|
||
|
|
;1631: case WP_LIGHTNING:
|
||
|
|
;1632: addTime = 50;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 50
|
||
|
|
ASGNI4
|
||
|
|
line 1633
|
||
|
|
;1633: break;
|
||
|
|
ADDRGP4 $611
|
||
|
|
JUMPV
|
||
|
|
LABELV $615
|
||
|
|
line 1635
|
||
|
|
;1634: case WP_SHOTGUN:
|
||
|
|
;1635: addTime = 1000;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 1000
|
||
|
|
ASGNI4
|
||
|
|
line 1636
|
||
|
|
;1636: break;
|
||
|
|
ADDRGP4 $611
|
||
|
|
JUMPV
|
||
|
|
LABELV $616
|
||
|
|
line 1638
|
||
|
|
;1637: case WP_MACHINEGUN:
|
||
|
|
;1638: addTime = 100;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 100
|
||
|
|
ASGNI4
|
||
|
|
line 1639
|
||
|
|
;1639: break;
|
||
|
|
ADDRGP4 $611
|
||
|
|
JUMPV
|
||
|
|
LABELV $617
|
||
|
|
line 1641
|
||
|
|
;1640: case WP_GRENADE_LAUNCHER:
|
||
|
|
;1641: addTime = 800;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 800
|
||
|
|
ASGNI4
|
||
|
|
line 1642
|
||
|
|
;1642: break;
|
||
|
|
ADDRGP4 $611
|
||
|
|
JUMPV
|
||
|
|
LABELV $618
|
||
|
|
line 1644
|
||
|
|
;1643: case WP_ROCKET_LAUNCHER:
|
||
|
|
;1644: addTime = 800;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 800
|
||
|
|
ASGNI4
|
||
|
|
line 1645
|
||
|
|
;1645: break;
|
||
|
|
ADDRGP4 $611
|
||
|
|
JUMPV
|
||
|
|
LABELV $619
|
||
|
|
line 1647
|
||
|
|
;1646: case WP_PLASMAGUN:
|
||
|
|
;1647: addTime = 100;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 100
|
||
|
|
ASGNI4
|
||
|
|
line 1648
|
||
|
|
;1648: break;
|
||
|
|
ADDRGP4 $611
|
||
|
|
JUMPV
|
||
|
|
LABELV $620
|
||
|
|
line 1650
|
||
|
|
;1649: case WP_RAILGUN:
|
||
|
|
;1650: addTime = 1500;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 1500
|
||
|
|
ASGNI4
|
||
|
|
line 1651
|
||
|
|
;1651: break;
|
||
|
|
ADDRGP4 $611
|
||
|
|
JUMPV
|
||
|
|
LABELV $621
|
||
|
|
line 1653
|
||
|
|
;1652: case WP_BFG:
|
||
|
|
;1653: addTime = 200;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 200
|
||
|
|
ASGNI4
|
||
|
|
line 1654
|
||
|
|
;1654: break;
|
||
|
|
ADDRGP4 $611
|
||
|
|
JUMPV
|
||
|
|
LABELV $622
|
||
|
|
line 1656
|
||
|
|
;1655: case WP_GRAPPLING_HOOK:
|
||
|
|
;1656: addTime = 400;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 400
|
||
|
|
ASGNI4
|
||
|
|
line 1657
|
||
|
|
;1657: break;
|
||
|
|
ADDRGP4 $611
|
||
|
|
JUMPV
|
||
|
|
LABELV $623
|
||
|
|
line 1660
|
||
|
|
;1658:#ifdef MISSIONPACK
|
||
|
|
;1659: case WP_NAILGUN:
|
||
|
|
;1660: addTime = 1000;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 1000
|
||
|
|
ASGNI4
|
||
|
|
line 1661
|
||
|
|
;1661: break;
|
||
|
|
ADDRGP4 $611
|
||
|
|
JUMPV
|
||
|
|
LABELV $624
|
||
|
|
line 1663
|
||
|
|
;1662: case WP_PROX_LAUNCHER:
|
||
|
|
;1663: addTime = 800;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 800
|
||
|
|
ASGNI4
|
||
|
|
line 1664
|
||
|
|
;1664: break;
|
||
|
|
ADDRGP4 $611
|
||
|
|
JUMPV
|
||
|
|
LABELV $625
|
||
|
|
line 1666
|
||
|
|
;1665: case WP_CHAINGUN:
|
||
|
|
;1666: addTime = 30;
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 30
|
||
|
|
ASGNI4
|
||
|
|
line 1667
|
||
|
|
;1667: break;
|
||
|
|
LABELV $611
|
||
|
|
line 1672
|
||
|
|
;1668:#endif
|
||
|
|
;1669: }
|
||
|
|
;1670:
|
||
|
|
;1671:#ifdef MISSIONPACK
|
||
|
|
;1672: if( bg_itemlist[pm->ps->stats[STAT_PERSISTANT_POWERUP]].giTag == PW_SCOUT ) {
|
||
|
|
CNSTI4 52
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 192
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
MULI4
|
||
|
|
ADDRGP4 bg_itemlist+40
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 10
|
||
|
|
NEI4 $628
|
||
|
|
line 1673
|
||
|
|
;1673: addTime /= 1.5;
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
CNSTF4 1069547520
|
||
|
|
DIVF4
|
||
|
|
CVFI4 4
|
||
|
|
ASGNI4
|
||
|
|
line 1674
|
||
|
|
;1674: }
|
||
|
|
ADDRGP4 $629
|
||
|
|
JUMPV
|
||
|
|
LABELV $628
|
||
|
|
line 1676
|
||
|
|
;1675: else
|
||
|
|
;1676: if( bg_itemlist[pm->ps->stats[STAT_PERSISTANT_POWERUP]].giTag == PW_AMMOREGEN ) {
|
||
|
|
CNSTI4 52
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 192
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
MULI4
|
||
|
|
ADDRGP4 bg_itemlist+40
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 13
|
||
|
|
NEI4 $631
|
||
|
|
line 1677
|
||
|
|
;1677: addTime /= 1.3;
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
CNSTF4 1067869798
|
||
|
|
DIVF4
|
||
|
|
CVFI4 4
|
||
|
|
ASGNI4
|
||
|
|
line 1678
|
||
|
|
;1678: }
|
||
|
|
ADDRGP4 $632
|
||
|
|
JUMPV
|
||
|
|
LABELV $631
|
||
|
|
line 1681
|
||
|
|
;1679: else
|
||
|
|
;1680:#endif
|
||
|
|
;1681: if ( pm->ps->powerups[PW_HASTE] ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 324
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $634
|
||
|
|
line 1682
|
||
|
|
;1682: addTime /= 1.3;
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
CNSTF4 1067869798
|
||
|
|
DIVF4
|
||
|
|
CVFI4 4
|
||
|
|
ASGNI4
|
||
|
|
line 1683
|
||
|
|
;1683: }
|
||
|
|
LABELV $634
|
||
|
|
LABELV $632
|
||
|
|
LABELV $629
|
||
|
|
line 1685
|
||
|
|
;1684:
|
||
|
|
;1685: pm->ps->weaponTime += addTime;
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 44
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1686
|
||
|
|
;1686:}
|
||
|
|
LABELV $569
|
||
|
|
endproc PM_Weapon 28 4
|
||
|
|
proc PM_Animate 0 4
|
||
|
|
line 1694
|
||
|
|
;1687:
|
||
|
|
;1688:/*
|
||
|
|
;1689:================
|
||
|
|
;1690:PM_Animate
|
||
|
|
;1691:================
|
||
|
|
;1692:*/
|
||
|
|
;1693:
|
||
|
|
;1694:static void PM_Animate( void ) {
|
||
|
|
line 1695
|
||
|
|
;1695: if ( pm->cmd.buttons & BUTTON_GESTURE ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 8
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $637
|
||
|
|
line 1696
|
||
|
|
;1696: if ( pm->ps->torsoTimer == 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $638
|
||
|
|
line 1697
|
||
|
|
;1697: PM_StartTorsoAnim( TORSO_GESTURE );
|
||
|
|
CNSTI4 6
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StartTorsoAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1698
|
||
|
|
;1698: pm->ps->torsoTimer = TIMER_GESTURE;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 2294
|
||
|
|
ASGNI4
|
||
|
|
line 1699
|
||
|
|
;1699: PM_AddEvent( EV_TAUNT );
|
||
|
|
CNSTI4 76
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_AddEvent
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1700
|
||
|
|
;1700: }
|
||
|
|
line 1702
|
||
|
|
;1701:#ifdef MISSIONPACK
|
||
|
|
;1702: } else if ( pm->cmd.buttons & BUTTON_GETFLAG ) {
|
||
|
|
ADDRGP4 $638
|
||
|
|
JUMPV
|
||
|
|
LABELV $637
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 128
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $641
|
||
|
|
line 1703
|
||
|
|
;1703: if ( pm->ps->torsoTimer == 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $642
|
||
|
|
line 1704
|
||
|
|
;1704: PM_StartTorsoAnim( TORSO_GETFLAG );
|
||
|
|
CNSTI4 25
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StartTorsoAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1705
|
||
|
|
;1705: pm->ps->torsoTimer = 600; //TIMER_GESTURE;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 600
|
||
|
|
ASGNI4
|
||
|
|
line 1706
|
||
|
|
;1706: }
|
||
|
|
line 1707
|
||
|
|
;1707: } else if ( pm->cmd.buttons & BUTTON_GUARDBASE ) {
|
||
|
|
ADDRGP4 $642
|
||
|
|
JUMPV
|
||
|
|
LABELV $641
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 256
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $645
|
||
|
|
line 1708
|
||
|
|
;1708: if ( pm->ps->torsoTimer == 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $646
|
||
|
|
line 1709
|
||
|
|
;1709: PM_StartTorsoAnim( TORSO_GUARDBASE );
|
||
|
|
CNSTI4 26
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StartTorsoAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1710
|
||
|
|
;1710: pm->ps->torsoTimer = 600; //TIMER_GESTURE;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 600
|
||
|
|
ASGNI4
|
||
|
|
line 1711
|
||
|
|
;1711: }
|
||
|
|
line 1712
|
||
|
|
;1712: } else if ( pm->cmd.buttons & BUTTON_PATROL ) {
|
||
|
|
ADDRGP4 $646
|
||
|
|
JUMPV
|
||
|
|
LABELV $645
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 512
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $649
|
||
|
|
line 1713
|
||
|
|
;1713: if ( pm->ps->torsoTimer == 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $650
|
||
|
|
line 1714
|
||
|
|
;1714: PM_StartTorsoAnim( TORSO_PATROL );
|
||
|
|
CNSTI4 27
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StartTorsoAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1715
|
||
|
|
;1715: pm->ps->torsoTimer = 600; //TIMER_GESTURE;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 600
|
||
|
|
ASGNI4
|
||
|
|
line 1716
|
||
|
|
;1716: }
|
||
|
|
line 1717
|
||
|
|
;1717: } else if ( pm->cmd.buttons & BUTTON_FOLLOWME ) {
|
||
|
|
ADDRGP4 $650
|
||
|
|
JUMPV
|
||
|
|
LABELV $649
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1024
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $653
|
||
|
|
line 1718
|
||
|
|
;1718: if ( pm->ps->torsoTimer == 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $654
|
||
|
|
line 1719
|
||
|
|
;1719: PM_StartTorsoAnim( TORSO_FOLLOWME );
|
||
|
|
CNSTI4 28
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StartTorsoAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1720
|
||
|
|
;1720: pm->ps->torsoTimer = 600; //TIMER_GESTURE;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 600
|
||
|
|
ASGNI4
|
||
|
|
line 1721
|
||
|
|
;1721: }
|
||
|
|
line 1722
|
||
|
|
;1722: } else if ( pm->cmd.buttons & BUTTON_AFFIRMATIVE ) {
|
||
|
|
ADDRGP4 $654
|
||
|
|
JUMPV
|
||
|
|
LABELV $653
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 32
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $657
|
||
|
|
line 1723
|
||
|
|
;1723: if ( pm->ps->torsoTimer == 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $658
|
||
|
|
line 1724
|
||
|
|
;1724: PM_StartTorsoAnim( TORSO_AFFIRMATIVE);
|
||
|
|
CNSTI4 29
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StartTorsoAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1725
|
||
|
|
;1725: pm->ps->torsoTimer = 600; //TIMER_GESTURE;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 600
|
||
|
|
ASGNI4
|
||
|
|
line 1726
|
||
|
|
;1726: }
|
||
|
|
line 1727
|
||
|
|
;1727: } else if ( pm->cmd.buttons & BUTTON_NEGATIVE ) {
|
||
|
|
ADDRGP4 $658
|
||
|
|
JUMPV
|
||
|
|
LABELV $657
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 64
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $661
|
||
|
|
line 1728
|
||
|
|
;1728: if ( pm->ps->torsoTimer == 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $663
|
||
|
|
line 1729
|
||
|
|
;1729: PM_StartTorsoAnim( TORSO_NEGATIVE );
|
||
|
|
CNSTI4 30
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 PM_StartTorsoAnim
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1730
|
||
|
|
;1730: pm->ps->torsoTimer = 600; //TIMER_GESTURE;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 600
|
||
|
|
ASGNI4
|
||
|
|
line 1731
|
||
|
|
;1731: }
|
||
|
|
LABELV $663
|
||
|
|
line 1733
|
||
|
|
;1732:#endif
|
||
|
|
;1733: }
|
||
|
|
LABELV $661
|
||
|
|
LABELV $658
|
||
|
|
LABELV $654
|
||
|
|
LABELV $650
|
||
|
|
LABELV $646
|
||
|
|
LABELV $642
|
||
|
|
LABELV $638
|
||
|
|
line 1734
|
||
|
|
;1734:}
|
||
|
|
LABELV $636
|
||
|
|
endproc PM_Animate 0 4
|
||
|
|
proc PM_DropTimers 4 0
|
||
|
|
line 1742
|
||
|
|
;1735:
|
||
|
|
;1736:
|
||
|
|
;1737:/*
|
||
|
|
;1738:================
|
||
|
|
;1739:PM_DropTimers
|
||
|
|
;1740:================
|
||
|
|
;1741:*/
|
||
|
|
;1742:static void PM_DropTimers( void ) {
|
||
|
|
line 1744
|
||
|
|
;1743: // drop misc timing counter
|
||
|
|
;1744: if ( pm->ps->pm_time ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 16
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $666
|
||
|
|
line 1745
|
||
|
|
;1745: if ( pml.msec >= pm->ps->pm_time ) {
|
||
|
|
ADDRGP4 pml+40
|
||
|
|
INDIRI4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 16
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
LTI4 $668
|
||
|
|
line 1746
|
||
|
|
;1746: pm->ps->pm_flags &= ~PMF_ALL_TIMES;
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -353
|
||
|
|
BANDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1747
|
||
|
|
;1747: pm->ps->pm_time = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 16
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1748
|
||
|
|
;1748: } else {
|
||
|
|
ADDRGP4 $669
|
||
|
|
JUMPV
|
||
|
|
LABELV $668
|
||
|
|
line 1749
|
||
|
|
;1749: pm->ps->pm_time -= pml.msec;
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 16
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRGP4 pml+40
|
||
|
|
INDIRI4
|
||
|
|
SUBI4
|
||
|
|
ASGNI4
|
||
|
|
line 1750
|
||
|
|
;1750: }
|
||
|
|
LABELV $669
|
||
|
|
line 1751
|
||
|
|
;1751: }
|
||
|
|
LABELV $666
|
||
|
|
line 1754
|
||
|
|
;1752:
|
||
|
|
;1753: // drop animation counter
|
||
|
|
;1754: if ( pm->ps->legsTimer > 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 72
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
LEI4 $672
|
||
|
|
line 1755
|
||
|
|
;1755: pm->ps->legsTimer -= pml.msec;
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 72
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRGP4 pml+40
|
||
|
|
INDIRI4
|
||
|
|
SUBI4
|
||
|
|
ASGNI4
|
||
|
|
line 1756
|
||
|
|
;1756: if ( pm->ps->legsTimer < 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 72
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
GEI4 $675
|
||
|
|
line 1757
|
||
|
|
;1757: pm->ps->legsTimer = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 72
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1758
|
||
|
|
;1758: }
|
||
|
|
LABELV $675
|
||
|
|
line 1759
|
||
|
|
;1759: }
|
||
|
|
LABELV $672
|
||
|
|
line 1761
|
||
|
|
;1760:
|
||
|
|
;1761: if ( pm->ps->torsoTimer > 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
LEI4 $677
|
||
|
|
line 1762
|
||
|
|
;1762: pm->ps->torsoTimer -= pml.msec;
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRGP4 pml+40
|
||
|
|
INDIRI4
|
||
|
|
SUBI4
|
||
|
|
ASGNI4
|
||
|
|
line 1763
|
||
|
|
;1763: if ( pm->ps->torsoTimer < 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
GEI4 $680
|
||
|
|
line 1764
|
||
|
|
;1764: pm->ps->torsoTimer = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 80
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1765
|
||
|
|
;1765: }
|
||
|
|
LABELV $680
|
||
|
|
line 1766
|
||
|
|
;1766: }
|
||
|
|
LABELV $677
|
||
|
|
line 1767
|
||
|
|
;1767:}
|
||
|
|
LABELV $665
|
||
|
|
endproc PM_DropTimers 4 0
|
||
|
|
export PM_UpdateViewAngles
|
||
|
|
proc PM_UpdateViewAngles 24 0
|
||
|
|
line 1777
|
||
|
|
;1768:
|
||
|
|
;1769:/*
|
||
|
|
;1770:================
|
||
|
|
;1771:PM_UpdateViewAngles
|
||
|
|
;1772:
|
||
|
|
;1773:This can be used as another entry point when only the viewangles
|
||
|
|
;1774:are being updated isntead of a full move
|
||
|
|
;1775:================
|
||
|
|
;1776:*/
|
||
|
|
;1777:void PM_UpdateViewAngles( playerState_t *ps, const usercmd_t *cmd ) {
|
||
|
|
line 1781
|
||
|
|
;1778: short temp;
|
||
|
|
;1779: int i;
|
||
|
|
;1780:
|
||
|
|
;1781: if ( ps->pm_type == PM_INTERMISSION || ps->pm_type == PM_SPINTERMISSION) {
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 5
|
||
|
|
EQI4 $685
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 6
|
||
|
|
NEI4 $683
|
||
|
|
LABELV $685
|
||
|
|
line 1782
|
||
|
|
;1782: return; // no view changes at all
|
||
|
|
ADDRGP4 $682
|
||
|
|
JUMPV
|
||
|
|
LABELV $683
|
||
|
|
line 1785
|
||
|
|
;1783: }
|
||
|
|
;1784:
|
||
|
|
;1785: if ( ps->pm_type != PM_SPECTATOR && ps->stats[STAT_HEALTH] <= 0 ) {
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
EQI4 $686
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 184
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
GTI4 $686
|
||
|
|
line 1786
|
||
|
|
;1786: return; // no view changes at all
|
||
|
|
ADDRGP4 $682
|
||
|
|
JUMPV
|
||
|
|
LABELV $686
|
||
|
|
line 1790
|
||
|
|
;1787: }
|
||
|
|
;1788:
|
||
|
|
;1789: // circularly clamp the angles with deltas
|
||
|
|
;1790: for (i=0 ; i<3 ; i++) {
|
||
|
|
ADDRLP4 0
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
LABELV $688
|
||
|
|
line 1791
|
||
|
|
;1791: temp = cmd->angles[i] + ps->delta_angles[i];
|
||
|
|
ADDRLP4 16
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRI4
|
||
|
|
ADDRFP4 4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRI4
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 56
|
||
|
|
ADDP4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ADDI4
|
||
|
|
CVII2 4
|
||
|
|
ASGNI2
|
||
|
|
line 1792
|
||
|
|
;1792: if ( i == PITCH ) {
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
NEI4 $692
|
||
|
|
line 1794
|
||
|
|
;1793: // don't let the player look up or down more than 90 degrees
|
||
|
|
;1794: if ( temp > 16000 ) {
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRI2
|
||
|
|
CVII4 2
|
||
|
|
CNSTI4 16000
|
||
|
|
LEI4 $694
|
||
|
|
line 1795
|
||
|
|
;1795: ps->delta_angles[i] = 16000 - cmd->angles[i];
|
||
|
|
ADDRLP4 20
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRI4
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 56
|
||
|
|
ADDP4
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 16000
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRI4
|
||
|
|
ADDRFP4 4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
SUBI4
|
||
|
|
ASGNI4
|
||
|
|
line 1796
|
||
|
|
;1796: temp = 16000;
|
||
|
|
ADDRLP4 4
|
||
|
|
CNSTI2 16000
|
||
|
|
ASGNI2
|
||
|
|
line 1797
|
||
|
|
;1797: } else if ( temp < -16000 ) {
|
||
|
|
ADDRGP4 $695
|
||
|
|
JUMPV
|
||
|
|
LABELV $694
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRI2
|
||
|
|
CVII4 2
|
||
|
|
CNSTI4 -16000
|
||
|
|
GEI4 $696
|
||
|
|
line 1798
|
||
|
|
;1798: ps->delta_angles[i] = -16000 - cmd->angles[i];
|
||
|
|
ADDRLP4 20
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRI4
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 56
|
||
|
|
ADDP4
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 -16000
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRI4
|
||
|
|
ADDRFP4 4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
SUBI4
|
||
|
|
ASGNI4
|
||
|
|
line 1799
|
||
|
|
;1799: temp = -16000;
|
||
|
|
ADDRLP4 4
|
||
|
|
CNSTI2 -16000
|
||
|
|
ASGNI2
|
||
|
|
line 1800
|
||
|
|
;1800: }
|
||
|
|
LABELV $696
|
||
|
|
LABELV $695
|
||
|
|
line 1801
|
||
|
|
;1801: }
|
||
|
|
LABELV $692
|
||
|
|
line 1802
|
||
|
|
;1802: ps->viewangles[i] = SHORT2ANGLE(temp);
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 152
|
||
|
|
ADDP4
|
||
|
|
ADDP4
|
||
|
|
CNSTF4 1001652224
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRI2
|
||
|
|
CVII4 2
|
||
|
|
CVIF4 4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 1803
|
||
|
|
;1803: }
|
||
|
|
LABELV $689
|
||
|
|
line 1790
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 3
|
||
|
|
LTI4 $688
|
||
|
|
line 1805
|
||
|
|
;1804:
|
||
|
|
;1805:}
|
||
|
|
LABELV $682
|
||
|
|
endproc PM_UpdateViewAngles 24 0
|
||
|
|
export PmoveSingle
|
||
|
|
proc PmoveSingle 56 16
|
||
|
|
line 1816
|
||
|
|
;1806:
|
||
|
|
;1807:
|
||
|
|
;1808:/*
|
||
|
|
;1809:================
|
||
|
|
;1810:PmoveSingle
|
||
|
|
;1811:
|
||
|
|
;1812:================
|
||
|
|
;1813:*/
|
||
|
|
;1814:void trap_SnapVector( float *v );
|
||
|
|
;1815:
|
||
|
|
;1816:void PmoveSingle (pmove_t *pmove) {
|
||
|
|
line 1817
|
||
|
|
;1817: pm = pmove;
|
||
|
|
ADDRGP4 pm
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
line 1821
|
||
|
|
;1818:
|
||
|
|
;1819: // this counter lets us debug movement problems with a journal
|
||
|
|
;1820: // by setting a conditional breakpoint fot the previous frame
|
||
|
|
;1821: c_pmove++;
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRGP4 c_pmove
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1824
|
||
|
|
;1822:
|
||
|
|
;1823: // clear results
|
||
|
|
;1824: pm->numtouch = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 48
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1825
|
||
|
|
;1825: pm->watertype = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 204
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1826
|
||
|
|
;1826: pm->waterlevel = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
line 1828
|
||
|
|
;1827:
|
||
|
|
;1828: if ( pm->ps->stats[STAT_HEALTH] <= 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 184
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
GTI4 $699
|
||
|
|
line 1829
|
||
|
|
;1829: pm->tracemask &= ~CONTENTS_BODY; // corpses can fly through bodies
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 28
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -33554433
|
||
|
|
BANDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1830
|
||
|
|
;1830: }
|
||
|
|
LABELV $699
|
||
|
|
line 1834
|
||
|
|
;1831:
|
||
|
|
;1832: // make sure walking button is clear if they are running, to avoid
|
||
|
|
;1833: // proxy no-footsteps cheats
|
||
|
|
;1834: if ( abs( pm->cmd.forwardmove ) > 64 || abs( pm->cmd.rightmove ) > 64 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRGP4 abs
|
||
|
|
CALLI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 64
|
||
|
|
GTI4 $703
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ARGI4
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRGP4 abs
|
||
|
|
CALLI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 64
|
||
|
|
LEI4 $701
|
||
|
|
LABELV $703
|
||
|
|
line 1835
|
||
|
|
;1835: pm->cmd.buttons &= ~BUTTON_WALKING;
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -17
|
||
|
|
BANDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1836
|
||
|
|
;1836: }
|
||
|
|
LABELV $701
|
||
|
|
line 1839
|
||
|
|
;1837:
|
||
|
|
;1838: // set the talk balloon flag
|
||
|
|
;1839: if ( pm->cmd.buttons & BUTTON_TALK ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $704
|
||
|
|
line 1840
|
||
|
|
;1840: pm->ps->eFlags |= EF_TALK;
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 104
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 4096
|
||
|
|
BORI4
|
||
|
|
ASGNI4
|
||
|
|
line 1841
|
||
|
|
;1841: } else {
|
||
|
|
ADDRGP4 $705
|
||
|
|
JUMPV
|
||
|
|
LABELV $704
|
||
|
|
line 1842
|
||
|
|
;1842: pm->ps->eFlags &= ~EF_TALK;
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 104
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -4097
|
||
|
|
BANDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1843
|
||
|
|
;1843: }
|
||
|
|
LABELV $705
|
||
|
|
line 1846
|
||
|
|
;1844:
|
||
|
|
;1845: // set the firing flag for continuous beam weapons
|
||
|
|
;1846: if ( !(pm->ps->pm_flags & PMF_RESPAWNED) && pm->ps->pm_type != PM_INTERMISSION
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 16
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 20
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 512
|
||
|
|
BANDI4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $706
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 5
|
||
|
|
EQI4 $706
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
BANDI4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRI4
|
||
|
|
EQI4 $706
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 144
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
LSHI4
|
||
|
|
ADDRLP4 16
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 376
|
||
|
|
ADDP4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 20
|
||
|
|
INDIRI4
|
||
|
|
EQI4 $706
|
||
|
|
line 1847
|
||
|
|
;1847: && ( pm->cmd.buttons & BUTTON_ATTACK ) && pm->ps->ammo[ pm->ps->weapon ] ) {
|
||
|
|
line 1848
|
||
|
|
;1848: pm->ps->eFlags |= EF_FIRING;
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 104
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 256
|
||
|
|
BORI4
|
||
|
|
ASGNI4
|
||
|
|
line 1849
|
||
|
|
;1849: } else {
|
||
|
|
ADDRGP4 $707
|
||
|
|
JUMPV
|
||
|
|
LABELV $706
|
||
|
|
line 1850
|
||
|
|
;1850: pm->ps->eFlags &= ~EF_FIRING;
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 104
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -257
|
||
|
|
BANDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1851
|
||
|
|
;1851: }
|
||
|
|
LABELV $707
|
||
|
|
line 1854
|
||
|
|
;1852:
|
||
|
|
;1853: // clear the respawned flag if attack and use are cleared
|
||
|
|
;1854: if ( pm->ps->stats[STAT_HEALTH] > 0 &&
|
||
|
|
ADDRLP4 24
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 28
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 184
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRI4
|
||
|
|
LEI4 $708
|
||
|
|
ADDRLP4 24
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 5
|
||
|
|
BANDI4
|
||
|
|
ADDRLP4 28
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $708
|
||
|
|
line 1855
|
||
|
|
;1855: !( pm->cmd.buttons & (BUTTON_ATTACK | BUTTON_USE_HOLDABLE) ) ) {
|
||
|
|
line 1856
|
||
|
|
;1856: pm->ps->pm_flags &= ~PMF_RESPAWNED;
|
||
|
|
ADDRLP4 32
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -513
|
||
|
|
BANDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1857
|
||
|
|
;1857: }
|
||
|
|
LABELV $708
|
||
|
|
line 1862
|
||
|
|
;1858:
|
||
|
|
;1859: // if talk button is down, dissallow all other input
|
||
|
|
;1860: // this is to prevent any possible intercept proxy from
|
||
|
|
;1861: // adding fake talk balloons
|
||
|
|
;1862: if ( pmove->cmd.buttons & BUTTON_TALK ) {
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $710
|
||
|
|
line 1865
|
||
|
|
;1863: // keep the talk button set tho for when the cmd.serverTime > 66 msec
|
||
|
|
;1864: // and the same cmd is used multiple times in Pmove
|
||
|
|
;1865: pmove->cmd.buttons = BUTTON_TALK;
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
CNSTI4 2
|
||
|
|
ASGNI4
|
||
|
|
line 1866
|
||
|
|
;1866: pmove->cmd.forwardmove = 0;
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
CNSTI1 0
|
||
|
|
ASGNI1
|
||
|
|
line 1867
|
||
|
|
;1867: pmove->cmd.rightmove = 0;
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
CNSTI1 0
|
||
|
|
ASGNI1
|
||
|
|
line 1868
|
||
|
|
;1868: pmove->cmd.upmove = 0;
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 27
|
||
|
|
ADDP4
|
||
|
|
CNSTI1 0
|
||
|
|
ASGNI1
|
||
|
|
line 1869
|
||
|
|
;1869: }
|
||
|
|
LABELV $710
|
||
|
|
line 1872
|
||
|
|
;1870:
|
||
|
|
;1871: // clear all pmove local vars
|
||
|
|
;1872: memset (&pml, 0, sizeof(pml));
|
||
|
|
ADDRGP4 pml
|
||
|
|
ARGP4
|
||
|
|
CNSTI4 0
|
||
|
|
ARGI4
|
||
|
|
CNSTI4 140
|
||
|
|
ARGI4
|
||
|
|
ADDRGP4 memset
|
||
|
|
CALLP4
|
||
|
|
pop
|
||
|
|
line 1875
|
||
|
|
;1873:
|
||
|
|
;1874: // determine the time
|
||
|
|
;1875: pml.msec = pmove->cmd.serverTime - pm->ps->commandTime;
|
||
|
|
ADDRGP4 pml+40
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
SUBI4
|
||
|
|
ASGNI4
|
||
|
|
line 1876
|
||
|
|
;1876: if ( pml.msec < 1 ) {
|
||
|
|
ADDRGP4 pml+40
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
GEI4 $713
|
||
|
|
line 1877
|
||
|
|
;1877: pml.msec = 1;
|
||
|
|
ADDRGP4 pml+40
|
||
|
|
CNSTI4 1
|
||
|
|
ASGNI4
|
||
|
|
line 1878
|
||
|
|
;1878: } else if ( pml.msec > 200 ) {
|
||
|
|
ADDRGP4 $714
|
||
|
|
JUMPV
|
||
|
|
LABELV $713
|
||
|
|
ADDRGP4 pml+40
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 200
|
||
|
|
LEI4 $717
|
||
|
|
line 1879
|
||
|
|
;1879: pml.msec = 200;
|
||
|
|
ADDRGP4 pml+40
|
||
|
|
CNSTI4 200
|
||
|
|
ASGNI4
|
||
|
|
line 1880
|
||
|
|
;1880: }
|
||
|
|
LABELV $717
|
||
|
|
LABELV $714
|
||
|
|
line 1881
|
||
|
|
;1881: pm->ps->commandTime = pmove->cmd.serverTime;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
line 1884
|
||
|
|
;1882:
|
||
|
|
;1883: // save old org in case we get stuck
|
||
|
|
;1884: VectorCopy (pm->ps->origin, pml.previous_origin);
|
||
|
|
ADDRGP4 pml+112
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 20
|
||
|
|
ADDP4
|
||
|
|
INDIRB
|
||
|
|
ASGNB 12
|
||
|
|
line 1887
|
||
|
|
;1885:
|
||
|
|
;1886: // save old velocity for crashlanding
|
||
|
|
;1887: VectorCopy (pm->ps->velocity, pml.previous_velocity);
|
||
|
|
ADDRGP4 pml+124
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
INDIRB
|
||
|
|
ASGNB 12
|
||
|
|
line 1889
|
||
|
|
;1888:
|
||
|
|
;1889: pml.frametime = pml.msec * 0.001;
|
||
|
|
ADDRGP4 pml+36
|
||
|
|
CNSTF4 981668463
|
||
|
|
ADDRGP4 pml+40
|
||
|
|
INDIRI4
|
||
|
|
CVIF4 4
|
||
|
|
MULF4
|
||
|
|
ASGNF4
|
||
|
|
line 1892
|
||
|
|
;1890:
|
||
|
|
;1891: // update the viewangles
|
||
|
|
;1892: PM_UpdateViewAngles( pm->ps, &pm->cmd );
|
||
|
|
ADDRLP4 32
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ARGP4
|
||
|
|
ADDRLP4 32
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 PM_UpdateViewAngles
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1894
|
||
|
|
;1893:
|
||
|
|
;1894: AngleVectors (pm->ps->viewangles, pml.forward, pml.right, pml.up);
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 152
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 pml
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 pml+12
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 pml+24
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 AngleVectors
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1896
|
||
|
|
;1895:
|
||
|
|
;1896: if ( pm->cmd.upmove < 10 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 27
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CNSTI4 10
|
||
|
|
GEI4 $727
|
||
|
|
line 1898
|
||
|
|
;1897: // not holding jump
|
||
|
|
;1898: pm->ps->pm_flags &= ~PMF_JUMP_HELD;
|
||
|
|
ADDRLP4 36
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -3
|
||
|
|
BANDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1899
|
||
|
|
;1899: }
|
||
|
|
LABELV $727
|
||
|
|
line 1902
|
||
|
|
;1900:
|
||
|
|
;1901: // decide if backpedaling animations should be used
|
||
|
|
;1902: if ( pm->cmd.forwardmove < 0 ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
CNSTI4 0
|
||
|
|
GEI4 $729
|
||
|
|
line 1903
|
||
|
|
;1903: pm->ps->pm_flags |= PMF_BACKWARDS_RUN;
|
||
|
|
ADDRLP4 36
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 16
|
||
|
|
BORI4
|
||
|
|
ASGNI4
|
||
|
|
line 1904
|
||
|
|
;1904: } else if ( pm->cmd.forwardmove > 0 || ( pm->cmd.forwardmove == 0 && pm->cmd.rightmove ) ) {
|
||
|
|
ADDRGP4 $730
|
||
|
|
JUMPV
|
||
|
|
LABELV $729
|
||
|
|
ADDRLP4 36
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 40
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 44
|
||
|
|
CNSTI4 0
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 44
|
||
|
|
INDIRI4
|
||
|
|
GTI4 $733
|
||
|
|
ADDRLP4 40
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 44
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $731
|
||
|
|
ADDRLP4 36
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
INDIRI1
|
||
|
|
CVII4 1
|
||
|
|
ADDRLP4 44
|
||
|
|
INDIRI4
|
||
|
|
EQI4 $731
|
||
|
|
LABELV $733
|
||
|
|
line 1905
|
||
|
|
;1905: pm->ps->pm_flags &= ~PMF_BACKWARDS_RUN;
|
||
|
|
ADDRLP4 48
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 48
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 48
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 -17
|
||
|
|
BANDI4
|
||
|
|
ASGNI4
|
||
|
|
line 1906
|
||
|
|
;1906: }
|
||
|
|
LABELV $731
|
||
|
|
LABELV $730
|
||
|
|
line 1908
|
||
|
|
;1907:
|
||
|
|
;1908: if ( pm->ps->pm_type >= PM_DEAD ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 3
|
||
|
|
LTI4 $734
|
||
|
|
line 1909
|
||
|
|
;1909: pm->cmd.forwardmove = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 25
|
||
|
|
ADDP4
|
||
|
|
CNSTI1 0
|
||
|
|
ASGNI1
|
||
|
|
line 1910
|
||
|
|
;1910: pm->cmd.rightmove = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 26
|
||
|
|
ADDP4
|
||
|
|
CNSTI1 0
|
||
|
|
ASGNI1
|
||
|
|
line 1911
|
||
|
|
;1911: pm->cmd.upmove = 0;
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 27
|
||
|
|
ADDP4
|
||
|
|
CNSTI1 0
|
||
|
|
ASGNI1
|
||
|
|
line 1912
|
||
|
|
;1912: }
|
||
|
|
LABELV $734
|
||
|
|
line 1914
|
||
|
|
;1913:
|
||
|
|
;1914: if ( pm->ps->pm_type == PM_SPECTATOR ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
NEI4 $736
|
||
|
|
line 1915
|
||
|
|
;1915: PM_CheckDuck ();
|
||
|
|
ADDRGP4 PM_CheckDuck
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1916
|
||
|
|
;1916: PM_FlyMove ();
|
||
|
|
ADDRGP4 PM_FlyMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1917
|
||
|
|
;1917: PM_DropTimers ();
|
||
|
|
ADDRGP4 PM_DropTimers
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1918
|
||
|
|
;1918: return;
|
||
|
|
ADDRGP4 $698
|
||
|
|
JUMPV
|
||
|
|
LABELV $736
|
||
|
|
line 1921
|
||
|
|
;1919: }
|
||
|
|
;1920:
|
||
|
|
;1921: if ( pm->ps->pm_type == PM_NOCLIP ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
NEI4 $738
|
||
|
|
line 1922
|
||
|
|
;1922: PM_NoclipMove ();
|
||
|
|
ADDRGP4 PM_NoclipMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1923
|
||
|
|
;1923: PM_DropTimers ();
|
||
|
|
ADDRGP4 PM_DropTimers
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1924
|
||
|
|
;1924: return;
|
||
|
|
ADDRGP4 $698
|
||
|
|
JUMPV
|
||
|
|
LABELV $738
|
||
|
|
line 1927
|
||
|
|
;1925: }
|
||
|
|
;1926:
|
||
|
|
;1927: if (pm->ps->pm_type == PM_FREEZE) {
|
||
|
|
ADDRLP4 48
|
||
|
|
CNSTI4 4
|
||
|
|
ASGNI4
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 48
|
||
|
|
INDIRI4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 48
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $740
|
||
|
|
line 1928
|
||
|
|
;1928: return; // no movement at all
|
||
|
|
ADDRGP4 $698
|
||
|
|
JUMPV
|
||
|
|
LABELV $740
|
||
|
|
line 1931
|
||
|
|
;1929: }
|
||
|
|
;1930:
|
||
|
|
;1931: if ( pm->ps->pm_type == PM_INTERMISSION || pm->ps->pm_type == PM_SPINTERMISSION) {
|
||
|
|
ADDRLP4 52
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRLP4 52
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 5
|
||
|
|
EQI4 $744
|
||
|
|
ADDRLP4 52
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 6
|
||
|
|
NEI4 $742
|
||
|
|
LABELV $744
|
||
|
|
line 1932
|
||
|
|
;1932: return; // no movement at all
|
||
|
|
ADDRGP4 $698
|
||
|
|
JUMPV
|
||
|
|
LABELV $742
|
||
|
|
line 1936
|
||
|
|
;1933: }
|
||
|
|
;1934:
|
||
|
|
;1935: // set watertype, and waterlevel
|
||
|
|
;1936: PM_SetWaterLevel();
|
||
|
|
ADDRGP4 PM_SetWaterLevel
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1937
|
||
|
|
;1937: pml.previous_waterlevel = pmove->waterlevel;
|
||
|
|
ADDRGP4 pml+136
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
line 1940
|
||
|
|
;1938:
|
||
|
|
;1939: // set mins, maxs, and viewheight
|
||
|
|
;1940: PM_CheckDuck ();
|
||
|
|
ADDRGP4 PM_CheckDuck
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1943
|
||
|
|
;1941:
|
||
|
|
;1942: // set groundentity
|
||
|
|
;1943: PM_GroundTrace();
|
||
|
|
ADDRGP4 PM_GroundTrace
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1945
|
||
|
|
;1944:
|
||
|
|
;1945: if ( pm->ps->pm_type == PM_DEAD ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 3
|
||
|
|
NEI4 $746
|
||
|
|
line 1946
|
||
|
|
;1946: PM_DeadMove ();
|
||
|
|
ADDRGP4 PM_DeadMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1947
|
||
|
|
;1947: }
|
||
|
|
LABELV $746
|
||
|
|
line 1949
|
||
|
|
;1948:
|
||
|
|
;1949: PM_DropTimers();
|
||
|
|
ADDRGP4 PM_DropTimers
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1952
|
||
|
|
;1950:
|
||
|
|
;1951:#ifdef MISSIONPACK
|
||
|
|
;1952: if ( pm->ps->powerups[PW_INVULNERABILITY] ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 368
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $748
|
||
|
|
line 1953
|
||
|
|
;1953: PM_InvulnerabilityMove();
|
||
|
|
ADDRGP4 PM_InvulnerabilityMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1954
|
||
|
|
;1954: } else
|
||
|
|
ADDRGP4 $749
|
||
|
|
JUMPV
|
||
|
|
LABELV $748
|
||
|
|
line 1956
|
||
|
|
;1955:#endif
|
||
|
|
;1956: if ( pm->ps->powerups[PW_FLIGHT] ) {
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 336
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $750
|
||
|
|
line 1958
|
||
|
|
;1957: // flight powerup doesn't allow jump and has different friction
|
||
|
|
;1958: PM_FlyMove();
|
||
|
|
ADDRGP4 PM_FlyMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1959
|
||
|
|
;1959: } else if (pm->ps->pm_flags & PMF_GRAPPLE_PULL) {
|
||
|
|
ADDRGP4 $751
|
||
|
|
JUMPV
|
||
|
|
LABELV $750
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2048
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $752
|
||
|
|
line 1960
|
||
|
|
;1960: PM_GrappleMove();
|
||
|
|
ADDRGP4 PM_GrappleMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1962
|
||
|
|
;1961: // We can wiggle a bit
|
||
|
|
;1962: PM_AirMove();
|
||
|
|
ADDRGP4 PM_AirMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1963
|
||
|
|
;1963: } else if (pm->ps->pm_flags & PMF_TIME_WATERJUMP) {
|
||
|
|
ADDRGP4 $753
|
||
|
|
JUMPV
|
||
|
|
LABELV $752
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 256
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $754
|
||
|
|
line 1964
|
||
|
|
;1964: PM_WaterJumpMove();
|
||
|
|
ADDRGP4 PM_WaterJumpMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1965
|
||
|
|
;1965: } else if ( pm->waterlevel > 1 ) {
|
||
|
|
ADDRGP4 $755
|
||
|
|
JUMPV
|
||
|
|
LABELV $754
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 208
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
LEI4 $756
|
||
|
|
line 1967
|
||
|
|
;1966: // swimming
|
||
|
|
;1967: PM_WaterMove();
|
||
|
|
ADDRGP4 PM_WaterMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1968
|
||
|
|
;1968: } else if ( pml.walking ) {
|
||
|
|
ADDRGP4 $757
|
||
|
|
JUMPV
|
||
|
|
LABELV $756
|
||
|
|
ADDRGP4 pml+44
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $758
|
||
|
|
line 1970
|
||
|
|
;1969: // walking on ground
|
||
|
|
;1970: PM_WalkMove();
|
||
|
|
ADDRGP4 PM_WalkMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1971
|
||
|
|
;1971: } else {
|
||
|
|
ADDRGP4 $759
|
||
|
|
JUMPV
|
||
|
|
LABELV $758
|
||
|
|
line 1973
|
||
|
|
;1972: // airborne
|
||
|
|
;1973: PM_AirMove();
|
||
|
|
ADDRGP4 PM_AirMove
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1974
|
||
|
|
;1974: }
|
||
|
|
LABELV $759
|
||
|
|
LABELV $757
|
||
|
|
LABELV $755
|
||
|
|
LABELV $753
|
||
|
|
LABELV $751
|
||
|
|
LABELV $749
|
||
|
|
line 1976
|
||
|
|
;1975:
|
||
|
|
;1976: PM_Animate();
|
||
|
|
ADDRGP4 PM_Animate
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1979
|
||
|
|
;1977:
|
||
|
|
;1978: // set groundentity, watertype, and waterlevel
|
||
|
|
;1979: PM_GroundTrace();
|
||
|
|
ADDRGP4 PM_GroundTrace
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1980
|
||
|
|
;1980: PM_SetWaterLevel();
|
||
|
|
ADDRGP4 PM_SetWaterLevel
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1983
|
||
|
|
;1981:
|
||
|
|
;1982: // weapons
|
||
|
|
;1983: PM_Weapon();
|
||
|
|
ADDRGP4 PM_Weapon
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1986
|
||
|
|
;1984:
|
||
|
|
;1985: // torso animation
|
||
|
|
;1986: PM_TorsoAnimation();
|
||
|
|
ADDRGP4 PM_TorsoAnimation
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1989
|
||
|
|
;1987:
|
||
|
|
;1988: // footstep events / legs animations
|
||
|
|
;1989: PM_Footsteps();
|
||
|
|
ADDRGP4 PM_Footsteps
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1992
|
||
|
|
;1990:
|
||
|
|
;1991: // entering / leaving water splashes
|
||
|
|
;1992: PM_WaterEvents();
|
||
|
|
ADDRGP4 PM_WaterEvents
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1995
|
||
|
|
;1993:
|
||
|
|
;1994: // snap some parts of playerstate to save network bandwidth
|
||
|
|
;1995: trap_SnapVector( pm->ps->velocity );
|
||
|
|
ADDRGP4 pm
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 32
|
||
|
|
ADDP4
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 trap_SnapVector
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 1996
|
||
|
|
;1996:}
|
||
|
|
LABELV $698
|
||
|
|
endproc PmoveSingle 56 16
|
||
|
|
export Pmove
|
||
|
|
proc Pmove 16 4
|
||
|
|
line 2006
|
||
|
|
;1997:
|
||
|
|
;1998:
|
||
|
|
;1999:/*
|
||
|
|
;2000:================
|
||
|
|
;2001:Pmove
|
||
|
|
;2002:
|
||
|
|
;2003:Can be called by either the server or the client
|
||
|
|
;2004:================
|
||
|
|
;2005:*/
|
||
|
|
;2006:void Pmove (pmove_t *pmove) {
|
||
|
|
line 2009
|
||
|
|
;2007: int finalTime;
|
||
|
|
;2008:
|
||
|
|
;2009: finalTime = pmove->cmd.serverTime;
|
||
|
|
ADDRLP4 0
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
line 2011
|
||
|
|
;2010:
|
||
|
|
;2011: if ( finalTime < pmove->ps->commandTime ) {
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
GEI4 $762
|
||
|
|
line 2012
|
||
|
|
;2012: return; // should not happen
|
||
|
|
ADDRGP4 $761
|
||
|
|
JUMPV
|
||
|
|
LABELV $762
|
||
|
|
line 2015
|
||
|
|
;2013: }
|
||
|
|
;2014:
|
||
|
|
;2015: if ( finalTime > pmove->ps->commandTime + 1000 ) {
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1000
|
||
|
|
ADDI4
|
||
|
|
LEI4 $764
|
||
|
|
line 2016
|
||
|
|
;2016: pmove->ps->commandTime = finalTime - 1000;
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1000
|
||
|
|
SUBI4
|
||
|
|
ASGNI4
|
||
|
|
line 2017
|
||
|
|
;2017: }
|
||
|
|
LABELV $764
|
||
|
|
line 2019
|
||
|
|
;2018:
|
||
|
|
;2019: pmove->ps->pmove_framecount = (pmove->ps->pmove_framecount+1) & ((1<<PS_PMOVEFRAMECOUNTBITS)-1);
|
||
|
|
ADDRLP4 4
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 456
|
||
|
|
ADDP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
ADDRLP4 4
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 1
|
||
|
|
ADDI4
|
||
|
|
CNSTI4 63
|
||
|
|
BANDI4
|
||
|
|
ASGNI4
|
||
|
|
ADDRGP4 $767
|
||
|
|
JUMPV
|
||
|
|
LABELV $766
|
||
|
|
line 2023
|
||
|
|
;2020:
|
||
|
|
;2021: // chop the move up if it is too long, to prevent framerate
|
||
|
|
;2022: // dependent behavior
|
||
|
|
;2023: while ( pmove->ps->commandTime != finalTime ) {
|
||
|
|
line 2026
|
||
|
|
;2024: int msec;
|
||
|
|
;2025:
|
||
|
|
;2026: msec = finalTime - pmove->ps->commandTime;
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
SUBI4
|
||
|
|
ASGNI4
|
||
|
|
line 2028
|
||
|
|
;2027:
|
||
|
|
;2028: if ( pmove->pmove_fixed ) {
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 216
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $769
|
||
|
|
line 2029
|
||
|
|
;2029: if ( msec > pmove->pmove_msec ) {
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRI4
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 220
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
LEI4 $770
|
||
|
|
line 2030
|
||
|
|
;2030: msec = pmove->pmove_msec;
|
||
|
|
ADDRLP4 8
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 220
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
ASGNI4
|
||
|
|
line 2031
|
||
|
|
;2031: }
|
||
|
|
line 2032
|
||
|
|
;2032: }
|
||
|
|
ADDRGP4 $770
|
||
|
|
JUMPV
|
||
|
|
LABELV $769
|
||
|
|
line 2033
|
||
|
|
;2033: else {
|
||
|
|
line 2034
|
||
|
|
;2034: if ( msec > 66 ) {
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 66
|
||
|
|
LEI4 $773
|
||
|
|
line 2035
|
||
|
|
;2035: msec = 66;
|
||
|
|
ADDRLP4 8
|
||
|
|
CNSTI4 66
|
||
|
|
ASGNI4
|
||
|
|
line 2036
|
||
|
|
;2036: }
|
||
|
|
LABELV $773
|
||
|
|
line 2037
|
||
|
|
;2037: }
|
||
|
|
LABELV $770
|
||
|
|
line 2038
|
||
|
|
;2038: pmove->cmd.serverTime = pmove->ps->commandTime + msec;
|
||
|
|
ADDRLP4 12
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
ASGNP4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 4
|
||
|
|
ADDP4
|
||
|
|
ADDRLP4 12
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 8
|
||
|
|
INDIRI4
|
||
|
|
ADDI4
|
||
|
|
ASGNI4
|
||
|
|
line 2039
|
||
|
|
;2039: PmoveSingle( pmove );
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
ARGP4
|
||
|
|
ADDRGP4 PmoveSingle
|
||
|
|
CALLV
|
||
|
|
pop
|
||
|
|
line 2041
|
||
|
|
;2040:
|
||
|
|
;2041: if ( pmove->ps->pm_flags & PMF_JUMP_HELD ) {
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 12
|
||
|
|
ADDP4
|
||
|
|
INDIRI4
|
||
|
|
CNSTI4 2
|
||
|
|
BANDI4
|
||
|
|
CNSTI4 0
|
||
|
|
EQI4 $775
|
||
|
|
line 2042
|
||
|
|
;2042: pmove->cmd.upmove = 20;
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
CNSTI4 27
|
||
|
|
ADDP4
|
||
|
|
CNSTI1 20
|
||
|
|
ASGNI1
|
||
|
|
line 2043
|
||
|
|
;2043: }
|
||
|
|
LABELV $775
|
||
|
|
line 2044
|
||
|
|
;2044: }
|
||
|
|
LABELV $767
|
||
|
|
line 2023
|
||
|
|
ADDRFP4 0
|
||
|
|
INDIRP4
|
||
|
|
INDIRP4
|
||
|
|
INDIRI4
|
||
|
|
ADDRLP4 0
|
||
|
|
INDIRI4
|
||
|
|
NEI4 $766
|
||
|
|
line 2048
|
||
|
|
;2045:
|
||
|
|
;2046: //PM_CheckStuck();
|
||
|
|
;2047:
|
||
|
|
;2048:}
|
||
|
|
LABELV $761
|
||
|
|
endproc Pmove 16 4
|
||
|
|
import trap_SnapVector
|
||
|
|
import PM_StepSlideMove
|
||
|
|
import PM_SlideMove
|
||
|
|
bss
|
||
|
|
export pml
|
||
|
|
align 4
|
||
|
|
LABELV pml
|
||
|
|
skip 140
|
||
|
|
export pm
|
||
|
|
align 4
|
||
|
|
LABELV pm
|
||
|
|
skip 4
|
||
|
|
import BG_PlayerTouchesItem
|
||
|
|
import BG_PlayerStateToEntityStateExtraPolate
|
||
|
|
import BG_PlayerStateToEntityState
|
||
|
|
import BG_TouchJumpPad
|
||
|
|
import BG_AddPredictableEventToPlayerstate
|
||
|
|
import BG_EvaluateTrajectoryDelta
|
||
|
|
import BG_EvaluateTrajectory
|
||
|
|
import BG_CanItemBeGrabbed
|
||
|
|
import BG_FindItemForHoldable
|
||
|
|
import BG_FindItemForPowerup
|
||
|
|
import BG_FindItemForWeapon
|
||
|
|
import BG_FindItem
|
||
|
|
import bg_numItems
|
||
|
|
import bg_itemlist
|
||
|
|
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 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 ClampShort
|
||
|
|
import ClampChar
|
||
|
|
import Q_rsqrt
|
||
|
|
import Q_fabs
|
||
|
|
import axisDefault
|
||
|
|
import vec3_origin
|
||
|
|
import g_color_table
|
||
|
|
import colorDkGrey
|
||
|
|
import colorMdGrey
|
||
|
|
import colorLtGrey
|
||
|
|
import colorWhite
|
||
|
|
import colorCyan
|
||
|
|
import colorMagenta
|
||
|
|
import colorYellow
|
||
|
|
import colorBlue
|
||
|
|
import colorGreen
|
||
|
|
import colorRed
|
||
|
|
import colorBlack
|
||
|
|
import bytedirs
|
||
|
|
import Com_Memcpy
|
||
|
|
import Com_Memset
|
||
|
|
import Hunk_Alloc
|
||
|
|
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 $468
|
||
|
|
byte 1 37
|
||
|
|
byte 1 105
|
||
|
|
byte 1 58
|
||
|
|
byte 1 76
|
||
|
|
byte 1 97
|
||
|
|
byte 1 110
|
||
|
|
byte 1 100
|
||
|
|
byte 1 10
|
||
|
|
byte 1 0
|
||
|
|
align 1
|
||
|
|
LABELV $457
|
||
|
|
byte 1 37
|
||
|
|
byte 1 105
|
||
|
|
byte 1 58
|
||
|
|
byte 1 115
|
||
|
|
byte 1 116
|
||
|
|
byte 1 101
|
||
|
|
byte 1 101
|
||
|
|
byte 1 112
|
||
|
|
byte 1 10
|
||
|
|
byte 1 0
|
||
|
|
align 1
|
||
|
|
LABELV $446
|
||
|
|
byte 1 37
|
||
|
|
byte 1 105
|
||
|
|
byte 1 58
|
||
|
|
byte 1 107
|
||
|
|
byte 1 105
|
||
|
|
byte 1 99
|
||
|
|
byte 1 107
|
||
|
|
byte 1 111
|
||
|
|
byte 1 102
|
||
|
|
byte 1 102
|
||
|
|
byte 1 10
|
||
|
|
byte 1 0
|
||
|
|
align 1
|
||
|
|
LABELV $415
|
||
|
|
byte 1 37
|
||
|
|
byte 1 105
|
||
|
|
byte 1 58
|
||
|
|
byte 1 108
|
||
|
|
byte 1 105
|
||
|
|
byte 1 102
|
||
|
|
byte 1 116
|
||
|
|
byte 1 10
|
||
|
|
byte 1 0
|
||
|
|
align 1
|
||
|
|
LABELV $388
|
||
|
|
byte 1 37
|
||
|
|
byte 1 105
|
||
|
|
byte 1 58
|
||
|
|
byte 1 97
|
||
|
|
byte 1 108
|
||
|
|
byte 1 108
|
||
|
|
byte 1 115
|
||
|
|
byte 1 111
|
||
|
|
byte 1 108
|
||
|
|
byte 1 105
|
||
|
|
byte 1 100
|
||
|
|
byte 1 10
|
||
|
|
byte 1 0
|