wwf-wrestlemania/REACT2.ASM

482 lines
8.9 KiB
NASM
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

**************************************************************
*
* 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