wwf-wrestlemania/REACT9.ASM

279 lines
5.0 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 "react9.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 fall_back_tbl,head_hit_dizzy_tbl,head_hit_tbl,head_hit2_tbl
.ref block_hit_flail,triple_sound,hit_damage_pending
.ref change_anim1a,wres_collis_off,block_hit
.ref CALL_FACE_HIT,hitonground_tbl
.ref knee_hit_tbl,burn_tbl
******************************************************************************
* EXTERNAL ANIM SEQUENCES
;BAM BAM
;DOINK
;BRET
;LEX
;RAZOR
;SHAWN
;TAKER
;YOKO
******************************************************************************
* SYMBOLS DEFINED IN THIS FILE
******************************************************************************
* EQUATES FOR THIS FILE
#*****************************************************************************
;AMODE_RSLASH 40
SUBR hit_rslash
move *a13(PLYRMODE),a1
cmpi MODE_BLOCK,a1
jrnz #noblock
; move *a13(FACING_DIR),a0 ;check for hit
; move *a13(NEW_FACING_DIR),a1 ;from behind
; and a0,a1
; andi MOVE_LEFT|MOVE_RIGHT,a1
; jrz #noblock
calla block_hit_flail
rets
#noblock
;All of the damage amounts need to be in lookup tables linked to the wrestler
;who actually struck the blow.
CALLA CALL_FACE_HIT
GETLIFE
jrz #isdead
; calla create_damage_points
WRSNDX RSLASH_L1,RSLASH_L2
; move *a13(PLYR_DIZZY),a0
; jrnz #diz
;
; calla check_dizzy
; jrz #not_dizzy
;
; movi 5*TSEC,a0
; move a0,*a13(GETUP_TIME)
;
;#diz
; FACE24TBL head_hit_dizzy_tbl
; calla change_anim1a
;
;
;#not_dizzy
;
; calla inc_burnout
SETMODE NORMAL
#do_hit
move *a13(OBJ_YPOSINT),a14
move *a13(GROUND_Y),a0
sub a0,a14
cmpi 20,a14
jrge #fall_back
;normal punch
FACE24TBL head_hit2_tbl
calla change_anim1a
#isdead
calla wres_collis_off
rets
#fall_back
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
rets
#*****************************************************************************
;AMODE_HEADDSLASH 41
SUBR hit_headdslash
WRSNDX RSLASH_L1,RSLASH_L2
GETLIFE
jrz #isdead
FACE24TBL knee_hit_tbl
calla change_anim1a
movi 2C000h,a0
move a0,*a13(OBJ_YVEL),L
clr a0
move a0,*a13(OBJ_XVEL),L
;move a little bit toward the attacker
movk 5,a2
move *a10(OBJ_XPOSINT),a0
move *a13(OBJ_XPOSINT),a1
cmp a0,a1
jrle #ok
neg a2
#ok
add a2,a1
move a1,*a13(OBJ_XPOSINT)
calla wres_collis_off
rets
#isdead
FACETBL fall_back_tbl
calla change_anim1a
movi [4,0],a2
move *a10(OBJ_XPOSINT),a0
move *a13(OBJ_XPOSINT),a1
cmp a0,a1 ;offx - defx
jrgt #go_rgt ;attacker on left
neg a2
#go_rgt
move a2,*a13(OBJ_XVEL),L
calla wres_collis_off
rets
#*****************************************************************************
;AMODE_HEADUSLASH 42
SUBR hit_headuslash
WRSNDX RSLASH_L1,RSLASH_L2
GETLIFE
jrz #isdead
FACE24TBL knee_hit_tbl
calla change_anim1a
movi 40000h,a0
move a0,*a13(OBJ_YVEL),L
clr a0
move a0,*a13(OBJ_XVEL),L
calla wres_collis_off
rets
#isdead
FACETBL fall_back_tbl
calla change_anim1a
movi [4,0],a2
move *a10(OBJ_XPOSINT),a0
move *a13(OBJ_XPOSINT),a1
cmp a0,a1 ;offx - defx
jrgt #go_rgt ;attacker on left
neg a2
#go_rgt
move a2,*a13(OBJ_XVEL),L
calla wres_collis_off
rets
#*****************************************************************************
;AMODE_NAPALM 55
SUBR hit_napalm
;if we're standing, ignore this
move *a13(PLYRMODE),a0
cmpi MODE_NORMAL,a0
jreq #mode_normal
cmpi MODE_BLOCK,a0
jreq #mode_normal
calla wres_collis_off
move *a13(PLYRMODE),a0
cmpi MODE_ONGROUND,a0
jrz #on_grnd
cmpi MODE_DEAD,a0
jrnz #isdead
#on_grnd
FACETBL burn_tbl
calla change_anim1a
;set the DEAD_ANIM bit - if this hit kills us, we don't want to
; go through a normal convulse.
move *a13(STATUS_FLAGS),a14,L
ori M_DEAD_ANIM,a14
move a14,*a13(STATUS_FLAGS),L
WRSNDX LBOWDROP_L1,LBOWDROP_L2
movi 43h,a0
calla triple_sound
#isdead calla wres_collis_off
rets
#mode_normal
;OOPS! Don't do any damage.
clr a14
move a14,@hit_damage_pending
jruc #isdead
******************************************************************************
.end