279 lines
5.0 KiB
NASM
279 lines
5.0 KiB
NASM
|
**************************************************************
|
|||
|
*
|
|||
|
* 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
|
|||
|
|