482 lines
8.9 KiB
NASM
482 lines
8.9 KiB
NASM
|
**************************************************************
|
|||
|
*
|
|||
|
* Software: Jamie Rivett
|
|||
|
* Initiated: 8/8/94
|
|||
|
*
|
|||
|
* COPYRIGHT (C) 1992 WILLIAMS ELECTRONICS GAMES, INC.
|
|||
|
*
|
|||
|
**************************************************************
|
|||
|
|
|||
|
.file "react2.asm"
|
|||
|
.title "wrester reactions to hits"
|
|||
|
.width 132
|
|||
|
.option b,d,l,t
|
|||
|
.mnolist
|
|||
|
|
|||
|
|
|||
|
.include "macros.h"
|
|||
|
.include "mproc.equ" ;Mproc equates
|
|||
|
.include "display.equ" ;Display proc equates
|
|||
|
.include "gsp.equ" ;Gsp asm equates
|
|||
|
.include "sys.equ"
|
|||
|
.include "game.equ"
|
|||
|
.include "plyr.equ"
|
|||
|
.include "anim.equ"
|
|||
|
.include "audit.equ"
|
|||
|
.include "sound.h"
|
|||
|
.include "ring.equ"
|
|||
|
.include "lifebar.h"
|
|||
|
|
|||
|
|
|||
|
******************************************************************************
|
|||
|
* EXTERNAL REFERENCES
|
|||
|
|
|||
|
.ref change_anim1a
|
|||
|
.ref wres_collis_off
|
|||
|
; .ref inc_burnout
|
|||
|
.ref block_hit
|
|||
|
.ref face_each_other
|
|||
|
.ref set_getup_time
|
|||
|
.ref fall_back_tbl
|
|||
|
.ref triple_sound,CALL_AVERAGE_MOVE
|
|||
|
.ref CALL_NASTY_MOVE
|
|||
|
.ref block_hit_flail
|
|||
|
|
|||
|
******************************************************************************
|
|||
|
* EXTERNAL ANIM SEQUENCES
|
|||
|
|
|||
|
|
|||
|
;BAM BAM
|
|||
|
.ref bam_heldoh_anim
|
|||
|
; .ref bam_ocrun_anim
|
|||
|
.ref bam_4_losebal_anim
|
|||
|
|
|||
|
;DOINK
|
|||
|
.ref dnk_heldoh_anim
|
|||
|
; .ref dnk_ocrun_anim
|
|||
|
.ref dnk_fall_back_anim
|
|||
|
.ref dnk_4_losebal_anim
|
|||
|
.ref dnk_knockdwn_anim
|
|||
|
|
|||
|
;BRET
|
|||
|
.ref hrt_4_losebal_anim,hrt_fall_back_anim
|
|||
|
|
|||
|
;LEX
|
|||
|
.ref lex_4_losebal_anim
|
|||
|
.ref lex_heldoh_anim
|
|||
|
; .ref lex_ocrun_anim
|
|||
|
|
|||
|
;RAZOR
|
|||
|
.ref rzr_4_losebal_anim
|
|||
|
; .ref rzr_ocrun_anim
|
|||
|
.ref rzr_heldoh_anim
|
|||
|
.ref rzr_fall_back_anim
|
|||
|
|
|||
|
;SHAWN
|
|||
|
.ref shn_4_losebal_anim
|
|||
|
.ref shn_heldoh_anim
|
|||
|
; .ref shn_ocrun_anim
|
|||
|
|
|||
|
;TAKER
|
|||
|
.ref und_heldoh_anim
|
|||
|
; .ref und_ocrun_anim
|
|||
|
.ref und_4_losebal_anim
|
|||
|
|
|||
|
;YOKO
|
|||
|
.ref yok_4_losebal_anim
|
|||
|
|
|||
|
;MISC
|
|||
|
.ref hit_damage_pending,hitonground_tbl
|
|||
|
.ref ck_live_teammates
|
|||
|
|
|||
|
|
|||
|
******************************************************************************
|
|||
|
* SYMBOLS DEFINED IN THIS FILE
|
|||
|
|
|||
|
******************************************************************************
|
|||
|
* EQUATES FOR THIS FILE
|
|||
|
|
|||
|
#*****************************************************************************
|
|||
|
|
|||
|
#*****************************************************************************
|
|||
|
;AMODE_UPRCUT 5
|
|||
|
SUBR hit_uprcut
|
|||
|
|
|||
|
|
|||
|
move *a13(PLYRMODE),a1
|
|||
|
cmpi MODE_BLOCK,a1
|
|||
|
jrnz #noblock
|
|||
|
|
|||
|
calla block_hit_flail
|
|||
|
rets
|
|||
|
|
|||
|
#noblock
|
|||
|
|
|||
|
GETLIFE
|
|||
|
jrz #skip
|
|||
|
|
|||
|
;Any hit mode which does a fall back sequence onto the ground
|
|||
|
;will not check dizzy at the start.
|
|||
|
;The check dizzy happens in the sequence.
|
|||
|
|
|||
|
|
|||
|
SETMODE NORMAL
|
|||
|
|
|||
|
#skip
|
|||
|
; calla inc_burnout
|
|||
|
|
|||
|
WRSNDX UPRCUT_L1,UPRCUT_L2
|
|||
|
|
|||
|
FACETBL fall_back_tbl
|
|||
|
calla change_anim1a
|
|||
|
|
|||
|
.ref flash_white
|
|||
|
calla flash_white
|
|||
|
|
|||
|
clr a0
|
|||
|
move a0,*a13(ROLL_POS)
|
|||
|
calla set_getup_time
|
|||
|
|
|||
|
|
|||
|
;silly temp
|
|||
|
movi [15,0],a0
|
|||
|
move *a10(WRESTLERNUM),a14
|
|||
|
cmpi 3,a14
|
|||
|
jrz #norm
|
|||
|
movi [13,0],a0
|
|||
|
cmpi 2,a14
|
|||
|
jrnz #norm
|
|||
|
|
|||
|
move a13,a0
|
|||
|
calla ck_live_teammates
|
|||
|
movi [11,0],a0
|
|||
|
jrc #norm
|
|||
|
|
|||
|
;no live teammates -- send them up into the air
|
|||
|
; .ref reduce_bog
|
|||
|
; move @reduce_bog,a14
|
|||
|
; jrnz #norm
|
|||
|
|
|||
|
movi [18,0],a0
|
|||
|
#norm
|
|||
|
move a0,*a13(OBJ_YVEL),L
|
|||
|
|
|||
|
movi [2,0],a2
|
|||
|
move *a10(OBJ_XPOSINT),a0
|
|||
|
move *a13(OBJ_XPOSINT),a1
|
|||
|
cmp a0,a1 ;offx - defx
|
|||
|
jrgt #fall_right ;attacker on left
|
|||
|
movi [-2,0],a2
|
|||
|
#fall_right
|
|||
|
move a2,*a13(OBJ_XVEL),L
|
|||
|
|
|||
|
#isdead
|
|||
|
calla wres_collis_off
|
|||
|
rets
|
|||
|
|
|||
|
|
|||
|
#*****************************************************************************
|
|||
|
;AMODE_UPRCUT2 39
|
|||
|
SUBR hit_combo_uprcut
|
|||
|
|
|||
|
move *a13(PLYRMODE),a1
|
|||
|
cmpi MODE_BLOCK,a1
|
|||
|
jrnz #noblock
|
|||
|
|
|||
|
calla block_hit
|
|||
|
rets
|
|||
|
|
|||
|
#noblock
|
|||
|
|
|||
|
GETLIFE
|
|||
|
jrz #skip
|
|||
|
|
|||
|
;Any hit mode which does a fall back sequence onto the ground
|
|||
|
;will not check dizzy at the start.
|
|||
|
;The check dizzy happens in the sequence.
|
|||
|
|
|||
|
|
|||
|
SETMODE NORMAL
|
|||
|
|
|||
|
#skip
|
|||
|
; calla inc_burnout
|
|||
|
|
|||
|
WRSNDX UPRCUT_L1,UPRCUT_L2
|
|||
|
|
|||
|
FACETBL fall_back_tbl
|
|||
|
calla change_anim1a
|
|||
|
|
|||
|
.ref flash_white
|
|||
|
calla flash_white
|
|||
|
|
|||
|
clr a0
|
|||
|
move a0,*a13(ROLL_POS)
|
|||
|
calla set_getup_time
|
|||
|
|
|||
|
MOVI MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP,A0
|
|||
|
MOVE A0,*A13(ANIMODE)
|
|||
|
|
|||
|
|
|||
|
move *a13(WHOHITME),A1,L
|
|||
|
movi [7,0],a0
|
|||
|
MOVE *A1(RPT_COUNT),A2
|
|||
|
DEC A2
|
|||
|
JRZ SET_YVEL
|
|||
|
movi [3,0],a0
|
|||
|
SET_YVEL
|
|||
|
move a0,*a13(OBJ_YVEL),L
|
|||
|
|
|||
|
movi [1,8000H],a2
|
|||
|
move *a10(OBJ_XPOSINT),a0
|
|||
|
move *a13(OBJ_XPOSINT),a1
|
|||
|
cmp a0,a1 ;offx - defx
|
|||
|
jrgt #fall_right ;attacker on left
|
|||
|
NEG A2
|
|||
|
#fall_right
|
|||
|
move a2,*a13(OBJ_XVEL),L
|
|||
|
|
|||
|
#isdead
|
|||
|
calla wres_collis_off
|
|||
|
rets
|
|||
|
|
|||
|
|
|||
|
#*****************************************************************************
|
|||
|
;AMODE_LBOWDROP 6
|
|||
|
|
|||
|
SUBR hit_lbowdrop
|
|||
|
|
|||
|
;if we're standing, ignore this
|
|||
|
move *a13(PLYRMODE),a0
|
|||
|
cmpi MODE_NORMAL,a0
|
|||
|
jrz #ignore
|
|||
|
cmpi MODE_BLOCK,a0
|
|||
|
jrz #ignore
|
|||
|
|
|||
|
WRSNDX LBOWDROP_L1,LBOWDROP_L2
|
|||
|
movi 33h,a0
|
|||
|
calla triple_sound
|
|||
|
|
|||
|
calla wres_collis_off
|
|||
|
|
|||
|
FACETBL hitonground_tbl
|
|||
|
calla change_anim1a
|
|||
|
calla wres_collis_off
|
|||
|
rets
|
|||
|
|
|||
|
#ignore clr a14
|
|||
|
move a14,@hit_damage_pending
|
|||
|
calla wres_collis_off
|
|||
|
rets
|
|||
|
|
|||
|
|
|||
|
#*****************************************************************************
|
|||
|
;AMODE_BLBOWDROP 25
|
|||
|
SUBR hit_blbowdrop
|
|||
|
|
|||
|
.ref DO_SCREAM
|
|||
|
calla DO_SCREAM
|
|||
|
|
|||
|
WRSNDX FLYKICK_L1,FLYKICK_L2
|
|||
|
WRSNDX LBOWDROP_L1,LBOWDROP_L2
|
|||
|
|
|||
|
; movi 500,a0
|
|||
|
; .ref RNDPER
|
|||
|
; calla RNDPER
|
|||
|
; jrls #isdead
|
|||
|
; calla inc_burnout
|
|||
|
|
|||
|
calla wres_collis_off
|
|||
|
|
|||
|
move *a13(PLYRMODE),a0
|
|||
|
cmpi MODE_ONGROUND,a0
|
|||
|
jrz #on_grnd
|
|||
|
cmpi MODE_DEAD,a0
|
|||
|
jrz #on_grnd
|
|||
|
;Knock standing opponent onto ground
|
|||
|
|
|||
|
SETMODE NORMAL
|
|||
|
move *a13(OBJ_YPOSINT),a14
|
|||
|
move *a13(GROUND_Y),a0
|
|||
|
sub a0,a14
|
|||
|
cmpi 20,a14
|
|||
|
jrge #fall_back
|
|||
|
|
|||
|
calla set_getup_time
|
|||
|
|
|||
|
FACETBL #knockdwn
|
|||
|
calla change_anim1a
|
|||
|
calla wres_collis_off
|
|||
|
rets
|
|||
|
|
|||
|
#fall_back
|
|||
|
movi 43h,a0
|
|||
|
calla triple_sound
|
|||
|
FACETBL fall_back_tbl
|
|||
|
|
|||
|
calla change_anim1a
|
|||
|
calla wres_collis_off
|
|||
|
|
|||
|
movi [3,0],a2
|
|||
|
move *a10(OBJ_XPOSINT),a0
|
|||
|
move *a13(OBJ_XPOSINT),a1
|
|||
|
cmp a0,a1 ;offx - defx
|
|||
|
jrgt #fall_right ;attacker on left
|
|||
|
neg a2
|
|||
|
#fall_right
|
|||
|
move a2,*a13(OBJ_XVEL),L
|
|||
|
|
|||
|
movi -30000h,a0
|
|||
|
move a0,*a13(OBJ_YVEL),L
|
|||
|
rets
|
|||
|
|
|||
|
#on_grnd
|
|||
|
FACETBL hitonground_tbl
|
|||
|
calla change_anim1a
|
|||
|
#isdead
|
|||
|
calla wres_collis_off
|
|||
|
rets
|
|||
|
|
|||
|
#knockdwn
|
|||
|
.ref hrt_knockdwn_anim
|
|||
|
.ref rzr_knockdwn_anim
|
|||
|
.ref und_knockdwn_anim
|
|||
|
.ref yok_knockdwn_anim
|
|||
|
.ref shn_knockdwn_anim
|
|||
|
.ref bam_knockdwn_anim
|
|||
|
.ref dnk_knockdwn_anim
|
|||
|
.ref lex_knockdwn_anim
|
|||
|
|
|||
|
.long hrt_knockdwn_anim ;0 Bret Hart
|
|||
|
.long rzr_knockdwn_anim ;1 Razor Ramon
|
|||
|
.long und_knockdwn_anim ;2 Undertaker
|
|||
|
.long yok_knockdwn_anim ;3 Yokozuna
|
|||
|
.long shn_knockdwn_anim ;4 Shawn Michaels
|
|||
|
.long bam_knockdwn_anim ;5 Bam Bam
|
|||
|
.long dnk_knockdwn_anim ;6 Doink
|
|||
|
.long 0 ;7 spare
|
|||
|
.long lex_knockdwn_anim ;8 Lex Luger
|
|||
|
.long 0 ;9 Referee
|
|||
|
|
|||
|
|
|||
|
#*****************************************************************************
|
|||
|
;AMODE_GRABHOLD 7
|
|||
|
SUBR hit_grabhold
|
|||
|
;
|
|||
|
; GETLIFE
|
|||
|
; jrz #isdead
|
|||
|
;
|
|||
|
; WRSNDX GRABHOLD_L1,GRABHOLD_L2
|
|||
|
;
|
|||
|
; SETMODE ATTACHED
|
|||
|
;
|
|||
|
; move a10,*a13(ATTACH_PROC),L ;proc attached to
|
|||
|
; move a13,*a10(ATTACH_PROC),L
|
|||
|
;
|
|||
|
; FACETBL #heldoh
|
|||
|
; calla change_anim1a
|
|||
|
;
|
|||
|
;#isdead
|
|||
|
; calla wres_collis_off
|
|||
|
; rets
|
|||
|
;
|
|||
|
;#heldoh
|
|||
|
; .long dnk_heldoh_anim ;0 Bret Hart
|
|||
|
; .long rzr_heldoh_anim ;1 Razor Ramon
|
|||
|
; .long und_heldoh_anim ;2 Undertaker
|
|||
|
; .long dnk_heldoh_anim ;3 Yokozuna
|
|||
|
; .long shn_heldoh_anim ;4 Shawn Michaels
|
|||
|
; .long bam_heldoh_anim ;5 Bam Bam
|
|||
|
; .long dnk_heldoh_anim ;6 Doink
|
|||
|
; .long dnk_heldoh_anim ;7 spare
|
|||
|
; .long lex_heldoh_anim ;8 Lex Luger
|
|||
|
; .long dnk_heldoh_anim ;9 Referee
|
|||
|
;
|
|||
|
|
|||
|
;Blank amode here....
|
|||
|
SUBR hit_grabfling
|
|||
|
rets
|
|||
|
|
|||
|
#*****************************************************************************
|
|||
|
;AMODE_GUTPUSH 47
|
|||
|
SUBR hit_gutpush
|
|||
|
|
|||
|
move *a13(PLYRMODE),a1
|
|||
|
cmpi MODE_BLOCK,a1
|
|||
|
jrnz #hit_push2
|
|||
|
|
|||
|
clr a0
|
|||
|
move a0,*a13(OBJ_XVEL),L
|
|||
|
|
|||
|
calla block_hit_flail
|
|||
|
rets
|
|||
|
|
|||
|
#hit_push2
|
|||
|
|
|||
|
SETMODE NORMAL
|
|||
|
|
|||
|
clr a0
|
|||
|
move a0,*a10(OBJ_XVEL),L ;clr attacker's x-vel
|
|||
|
|
|||
|
FACETBL #losebal
|
|||
|
calla change_anim1a
|
|||
|
|
|||
|
movi [8,0],a2
|
|||
|
jruc #tag
|
|||
|
|
|||
|
;AMODE_PUSH 9
|
|||
|
SUBR hit_push
|
|||
|
|
|||
|
;Lessen power of a push
|
|||
|
; move *a10(PLYRMODE),a0
|
|||
|
; cmpi MODE_INAIR,a0
|
|||
|
; jrz #norm
|
|||
|
|
|||
|
|
|||
|
SETMODE NORMAL
|
|||
|
|
|||
|
clr a0
|
|||
|
move a0,*a10(OBJ_XVEL),L ;clr attacker's x-vel
|
|||
|
|
|||
|
FACETBL #losebal
|
|||
|
calla change_anim1a
|
|||
|
|
|||
|
movi [8,0],a2
|
|||
|
|
|||
|
#tag
|
|||
|
move *a10(OBJ_XPOSINT),a0
|
|||
|
move *a13(OBJ_XPOSINT),a1
|
|||
|
cmp a0,a1 ;offx - defx
|
|||
|
jrgt #fall_right ;attacker on left
|
|||
|
neg a2
|
|||
|
#fall_right
|
|||
|
move a2,*a13(OBJ_XVEL),L
|
|||
|
|
|||
|
WRSNDX PUSH_L1,PUSH_L2
|
|||
|
|
|||
|
move *a13(PLYRNUM),a1
|
|||
|
.ref get_health
|
|||
|
calla get_health
|
|||
|
subk 1,a0
|
|||
|
jrnz #norm
|
|||
|
clr a0
|
|||
|
move a0,@hit_damage_pending
|
|||
|
#norm
|
|||
|
calla wres_collis_off
|
|||
|
rets
|
|||
|
|
|||
|
#losebal
|
|||
|
.long hrt_4_losebal_anim ;0 Bret Hart
|
|||
|
.long rzr_4_losebal_anim ;1 Razor Ramon
|
|||
|
.long und_4_losebal_anim ;2 Undertaker
|
|||
|
.long yok_4_losebal_anim ;3 Yokozuna
|
|||
|
.long shn_4_losebal_anim ;4 Shawn Michaels
|
|||
|
.long bam_4_losebal_anim ;5 Bam Bam
|
|||
|
.long dnk_4_losebal_anim ;6 Doink
|
|||
|
.long dnk_4_losebal_anim ;7 spare
|
|||
|
.long lex_4_losebal_anim ;8 Lex Luger
|
|||
|
.long dnk_4_losebal_anim ;9 Referee
|
|||
|
|
|||
|
******************************************************************************
|
|||
|
|
|||
|
.end
|
|||
|
|