1941 lines
43 KiB
NASM
Executable File
1941 lines
43 KiB
NASM
Executable File
**************************************************************
|
||
*
|
||
* Software: Jamie Rivett
|
||
* Initiated: 8/8/94
|
||
*
|
||
* COPYRIGHT (C) 1992 WILLIAMS ELECTRONICS GAMES, INC.
|
||
*
|
||
**************************************************************
|
||
|
||
.file "react1.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"
|
||
.include "damage.equ"
|
||
.include "special.equ"
|
||
.include "jjxm.h"
|
||
|
||
|
||
******************************************************************************
|
||
* EXTERNAL REFERENCES
|
||
|
||
.ref change_anim1a,PCNT,flash_white,round_award,any_hits
|
||
.ref wres_collis_off,slide_offscr
|
||
.ref set_getup_time
|
||
.ref good_run_hit,MOVE_NAME_ANNC
|
||
.ref CALL_FACE_HIT,CALL_MID_HIT,DO_BLOCK_SND,DO_SCREAM
|
||
.ref CALL_DROP_KICK,ADD_IF_SILENT,BONUS_MESS,DAM_MULT
|
||
.ref FIRSTATT_MESS
|
||
.ref delete_special_objlist
|
||
.ref sp_change_anim
|
||
|
||
|
||
******************************************************************************
|
||
* EXTERNAL ANIM SEQUENCES
|
||
|
||
;BAM BAM
|
||
.ref bam_2_head_hit_anim,bam_4_head_hit_anim
|
||
.ref bam_2_body_hit_anim,bam_4_body_hit_anim
|
||
.ref bam_head_hit2_anim,bam_4_body_hit_dizzy_anim
|
||
.ref bam_head_hit_dizzy_anim,bam_hitonground_anim
|
||
.ref bam_fall_back_anim,bam_fall_back_tbukl_anim
|
||
.ref bam_4_hitblock_anim
|
||
|
||
;DOINK
|
||
.ref dnk_2_head_hit_anim,dnk_4_head_hit_anim
|
||
.ref dnk_head_hit2_anim,dnk_hitonground_anim
|
||
.ref dnk_head_hit_dizzy_anim
|
||
.ref dnk_4_hitblock_anim
|
||
.ref dnk_fall_back_anim,dnk_fall_back_tbukl_anim
|
||
.ref dnk_4_body_hit_anim
|
||
.ref dnk_4_body_hit_dizzy_anim
|
||
|
||
;BRET
|
||
.ref hrt_4_hitblock_anim,hrt_hitonground_anim
|
||
.ref hrt_2_head_hit_anim,hrt_4_head_hit_anim
|
||
.ref hrt_4_head_hit_dizzy_anim
|
||
.ref hrt_2_head_hit2_anim,hrt_4_head_hit2_anim
|
||
.ref hrt_2_body_hit_anim,hrt_4_body_hit_anim
|
||
.ref hrt_4_body_hit_dizzy_anim
|
||
.ref hrt_fall_back_anim,hrt_fall_back_tbukl_anim
|
||
|
||
;LEX
|
||
.ref lex_2_head_hit_anim,lex_4_head_hit_anim
|
||
.ref lex_2_body_hit_anim,lex_4_body_hit_anim
|
||
.ref lex_4_hitblock_anim
|
||
.ref lex_head_hit_dizzy_anim,lex_hitonground_anim
|
||
.ref lex_2_head_hit2_anim,lex_4_head_hit2_anim
|
||
.ref lex_4_body_hit_dizzy_anim
|
||
.ref lex_fall_back_anim,lex_fall_back_tbukl_anim
|
||
.ref lex_flying_kick_anim,lex_super_kick_anim
|
||
|
||
;RAZOR
|
||
.ref rzr_4_head_hit_dizzy_anim
|
||
.ref rzr_2_head_hit_anim,rzr_4_head_hit_anim
|
||
.ref rzr_2_body_hit_anim,rzr_4_body_hit_anim
|
||
.ref rzr_4_hitblock_anim
|
||
.ref rzr_2_head_hit2_anim,rzr_4_head_hit2_anim
|
||
.ref rzr_fall_back_anim,rzr_fall_back_tbukl_anim
|
||
.ref rzr_4_body_hit_dizzy_anim,rzr_hitonground_anim
|
||
|
||
;SHAWN
|
||
.ref shn_4_head_hit_dizzy_anim
|
||
.ref shn_2_head_hit_anim,shn_4_head_hit_anim
|
||
.ref shn_2_head_hit2_anim,shn_4_head_hit2_anim
|
||
.ref shn_2_body_hit_anim,shn_4_body_hit_anim
|
||
.ref shn_4_body_hit_dizzy_anim,shn_hitonground_anim
|
||
.ref shn_fall_back_anim,shn_fall_back_tbukl_anim
|
||
.ref shn_4_hitblock_anim
|
||
|
||
;TAKER
|
||
.ref und_2_head_hit_anim,und_4_head_hit_anim
|
||
.ref und_2_body_hit_anim,und_4_body_hit_anim
|
||
.ref und_head_hit_dizzy_anim
|
||
.ref und_head_hit2_anim,und_hitonground_anim
|
||
.ref und_4_body_hit_dizzy_anim
|
||
.ref und_fall_back_anim,und_fall_back_tbukl_anim
|
||
.ref und_4_hitblock_anim
|
||
|
||
;YOKO
|
||
.ref yok_4_head_hit_dizzy_anim
|
||
.ref yok_2_head_hit_anim,yok_4_head_hit_anim
|
||
.ref yok_2_head_hit2_anim,yok_4_head_hit2_anim
|
||
.ref yok_2_body_hit_anim,yok_4_body_hit_anim
|
||
.ref yok_4_hitblock_anim
|
||
.ref yok_4_body_hit_dizzy_anim
|
||
.ref yok_fall_back_anim,yok_hitonground_anim
|
||
|
||
|
||
******************************************************************************
|
||
* SYMBOLS DEFINED IN THIS FILE
|
||
|
||
.def hit_flykick
|
||
|
||
;when a hit is scored, the damage is computed, then stuck in 'ere. It won't
|
||
; be applied until AFTER the appropriate hit routine is called, so you have
|
||
; a chance to change the value in special mode-dependent cases. (A stomp
|
||
; which shouldn't hurt someone in MODE_NORMAL, for example...)
|
||
|
||
BSSX hit_damage_pending,16
|
||
|
||
;In general, we want to clear a victim's MOVE_DIR when we hit him. This
|
||
; value is set to 0 before the hit routine is called. If, for whatever
|
||
; reason, we don't want a particular attack mode to clear the victim's
|
||
; MOVE_DIR, just stuff it in here. new_victim_movedir is stuffed into
|
||
; victim's MOVE_DIR right after the amode routine returns.
|
||
|
||
BSSX new_victim_movedir,16
|
||
|
||
.if DEBUG
|
||
BSSX instant_death,16 ;debug thing
|
||
.endif
|
||
|
||
******************************************************************************
|
||
* EQUATES FOR THIS FILE
|
||
|
||
#*****************************************************************************
|
||
* A WRESTLER HAS JUST HIT/BEEN HIT (BY A PROJECTILE/SPECIAL OBJECT)
|
||
*
|
||
* a10 = * projectile process
|
||
* a13 = * victim process
|
||
|
||
SUBR wrestler_hit_special
|
||
|
||
;update LAST_HIT_TIME on attacker
|
||
move @PCNT,a14,L ;use 32-bit PCNT!
|
||
move *a10(SP_WRESPROC),a0,L
|
||
move a14,*a0(LAST_HIT_TIME),L
|
||
|
||
callr hit_stuff
|
||
|
||
move *a10(SP_ID),a14
|
||
cmpi 2,a14
|
||
jrnz #not_salt
|
||
|
||
;Salt hits player
|
||
move *a13(PLYRMODE),a14
|
||
cmpi MODE_BLOCK,a14
|
||
jrnz #tag
|
||
move *a10(SP_WRESPROC),a0,L
|
||
movk 1,a14
|
||
move a4,*a0(USR_VAR2) ;Tell Yoko his salt was failed!
|
||
jruc #in_block0
|
||
#tag
|
||
; cmpi MODE_INAIR,a14
|
||
; jrz #in_block0
|
||
|
||
;Salt projectiles do damage
|
||
calla DO_SCREAM
|
||
movi -D_SALT,a0
|
||
move *a13(PLYRNUM),a1
|
||
calla adjust_health
|
||
|
||
#in_block0
|
||
PUSH a13
|
||
move a10,a13
|
||
movi saltsplat_anim,a0
|
||
calla sp_change_anim
|
||
PULL a13
|
||
|
||
move *a13(PLYRMODE),a1
|
||
cmpi MODE_BLOCK,a1
|
||
jrnz #noblock0
|
||
|
||
; 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 #noblock0
|
||
|
||
;Block_hit
|
||
;Slide opponent away from attacker
|
||
movi [3,0],a2
|
||
move *a10(SP_OBJ_XPOSINT),a0
|
||
move *a13(OBJ_XPOSINT),a1
|
||
cmp a0,a1 ;offx - defx
|
||
jrgt #fall_right0 ;attacker on left
|
||
neg a2
|
||
#fall_right0
|
||
move a2,*a13(OBJ_XVEL),L
|
||
|
||
CALLA DO_BLOCK_SND
|
||
|
||
FACETBL hitblock_tbl
|
||
calla change_anim1a
|
||
|
||
rets
|
||
|
||
#noblock0
|
||
|
||
;Salt will pick off in air opponent!
|
||
; move *a13(PLYRMODE),a14
|
||
; cmpi MODE_INAIR,a14
|
||
; jrz #isdead
|
||
|
||
GETLIFE
|
||
jrz #isdead
|
||
|
||
|
||
SETMODE NORMAL
|
||
|
||
move *a10(SP_WRESPROC),a0,L
|
||
|
||
move *a0(OBJ_ZPOS),a0,L
|
||
subi [1,0],a0
|
||
move a0,*a13(OBJ_ZPOS),L
|
||
|
||
;If opponent is in air, do fall back!
|
||
FACETBL head_hit2_sand_tbl
|
||
calla change_anim1a
|
||
|
||
clr a0
|
||
move a0,*a13(USR_VAR1)
|
||
|
||
movi 8*60,a14
|
||
move a14,*a13(DELAY_METER)
|
||
|
||
|
||
movi -[1,0h],a0
|
||
; movi -[3,8000h],a0
|
||
move *a13(FACING_DIR),a14
|
||
btst MOVE_RIGHT_BIT,a14
|
||
jrnz #abs0 ;right
|
||
neg a0 ;left
|
||
#abs0
|
||
move a0,*a13(OBJ_XVEL),L
|
||
; movi [5,0],a0
|
||
movi [3,0],a0
|
||
move a0,*a13(OBJ_YVEL),L
|
||
movi 7000h,a0
|
||
move a0,*a13(OBJ_ZVEL),L
|
||
move a0,*a10(SP_OBJ_ZVEL),L
|
||
|
||
move *a10(SP_OBJ_XVEL),a0,L
|
||
sra 1,a0
|
||
move a0,*a10(SP_OBJ_XVEL),L
|
||
|
||
rets
|
||
|
||
#not_salt
|
||
move *a13(PLYRMODE),a14
|
||
cmpi MODE_BLOCK,a14
|
||
jrz #in_block
|
||
; cmpi MODE_INAIR,a14
|
||
; jrz #in_block
|
||
|
||
move *a10(SP_ID),a14
|
||
jrnz #dmg
|
||
;Pull in spirits do no damage until Taker
|
||
;whacks him at end!
|
||
movi 60,a0
|
||
move a0,*a13(IMMOBILIZE_TIME)
|
||
jruc #in_block
|
||
#dmg
|
||
;Reaper projectiles do 2 damage hits
|
||
movi -3,a0
|
||
move *a13(PLYRNUM),a1
|
||
calla adjust_health
|
||
|
||
#in_block
|
||
|
||
PUSH a13
|
||
move a10,a13
|
||
move a13,a0
|
||
calla delete_special_objlist
|
||
|
||
move *a13(SP_ID),a14
|
||
sll 5,a14
|
||
addi #splat_tbl,a14
|
||
|
||
;range check
|
||
cmpi #splat_tbl_end,a14
|
||
jrlt #stok
|
||
movi #splat_tbl,a14
|
||
.if DEBUG
|
||
LOCKUP
|
||
.endif
|
||
|
||
#stok move *a14,a0,L
|
||
#reg
|
||
calla sp_change_anim
|
||
PULL a13
|
||
|
||
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
|
||
|
||
;Block_hit
|
||
;Slide opponent away from attacker
|
||
movi [2,0],a2
|
||
move *a10(SP_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
|
||
|
||
CALLA DO_BLOCK_SND
|
||
|
||
FACETBL hitblock_tbl
|
||
calla change_anim1a
|
||
|
||
rets
|
||
|
||
#noblock
|
||
move *a13(PLYRMODE),a14
|
||
cmpi MODE_INAIR,a14
|
||
jrz #isdead
|
||
GETLIFE
|
||
jrz #isdead
|
||
|
||
SETMODE NORMAL
|
||
|
||
move *a10(SP_WRESPROC),a0,L
|
||
|
||
move *a0(OBJ_ZPOS),a0,L
|
||
subi [1,0],a0
|
||
move a0,*a13(OBJ_ZPOS),L
|
||
|
||
;If opponent is in air, do fall back!
|
||
FACETBL body_hit2_tbl
|
||
calla change_anim1a
|
||
|
||
clr a0
|
||
move a0,*a13(USR_VAR1)
|
||
|
||
movi -[3,0],a0
|
||
move *a10(SP_ID),a14
|
||
jrnz #push_away
|
||
;Pull toward
|
||
;Send body hit into dizzy state at the end.
|
||
movk 1,a0
|
||
move a0,*a13(USR_VAR1)
|
||
|
||
movi 10*60,a14
|
||
move a14,*a13(DELAY_METER)
|
||
|
||
;Get Taker's xpos
|
||
;Don't allow the wrestler to get real close to Taker
|
||
;Try to set him up for an uppercut!
|
||
move *a10(SP_WRESPROC),a0,L
|
||
move *a0(OBJ_XPOSINT),a14
|
||
move *a13(OBJ_XPOSINT),a0
|
||
sub a0,a14
|
||
abs a14
|
||
clr a0
|
||
cmpi 5ch,a14
|
||
jrlt #abs
|
||
movi [4,0],a0
|
||
#push_away
|
||
|
||
move *a13(FACING_DIR),a14
|
||
btst MOVE_RIGHT_BIT,a14
|
||
jrnz #abs ;right
|
||
neg a0 ;left
|
||
#abs
|
||
move a0,*a13(OBJ_XVEL),L
|
||
movi [3,0],a0
|
||
move a0,*a13(OBJ_YVEL),L
|
||
clr a0
|
||
move a0,*a13(OBJ_ZVEL),L
|
||
|
||
calla DO_SCREAM
|
||
|
||
#isdead
|
||
rets
|
||
|
||
#splat_tbl
|
||
REFLONG spiritsplat_anim
|
||
REFLONG reapersplat_anim
|
||
REFLONG saltsplat_anim
|
||
#splat_tbl_end
|
||
|
||
#*****************************************************************************
|
||
* A WRESTLER HAS JUST BEEN HIT
|
||
* a10 = * attacking wrestler proc
|
||
* a13 = * victim process
|
||
|
||
SUBR wrestler_hit
|
||
|
||
;If the attack is a run, we have to check and see first if it's
|
||
; going to be ignored, in which case we skip ALL this crap.
|
||
|
||
move *a10(ATTACK_MODE),a14
|
||
cmpi AMODE_RUN,a14
|
||
jrne #good_hit
|
||
calla good_run_hit
|
||
jrc #good_hit
|
||
|
||
;crummy hit. forget it.
|
||
rets
|
||
|
||
#good_hit
|
||
;set WHOIHIT and WHOHITME HERE, not in COLLIS, because we don't
|
||
; want bogus run hits to change them. (Otherwise reversals will
|
||
; start hitting innocent bystanders who run by.)
|
||
move a10,*a13(WHOHITME),L
|
||
move a13,*a10(WHOIHIT),L
|
||
|
||
;Need to clear STARS_FLAG to get rid of stars!
|
||
callr hit_stuff
|
||
|
||
;update LAST_HIT_TIME on attacker
|
||
move @PCNT,a14,L
|
||
move a14,*a10(LAST_HIT_TIME),L ;use 32-bit PCNT!
|
||
|
||
;set up the new victim move_dir thingie
|
||
clr a14
|
||
move a14,@new_victim_movedir
|
||
|
||
;get base damage val
|
||
move *a10(ATTACK_MODE),a0
|
||
X32 a0
|
||
addi damage_values,a0
|
||
|
||
;if we've taken damage in the last 50 ticks, use the second value
|
||
; in the damage table.
|
||
move *a13(LAST_DAMAGE),a14
|
||
jrz #dmset
|
||
move @PCNT,a1
|
||
sub a14,a1
|
||
cmpi 50,a1 ;20
|
||
jrgt #dmset
|
||
addk 10h,a0
|
||
#dmset move *a0,a1
|
||
|
||
;ooh, wait. if the attacker has a NEXT_DAMAGE set, use that instead.
|
||
; Exceptions: If this hit does zero damage, don't mess with it,
|
||
; AND leave NEXT_DAMAGE value in place. If this hit does more than
|
||
; zero damage, but LESS THAN NEXT_DAMAGE, leave the value alone,
|
||
; and clear NEXT_DAMAGE.
|
||
TEST a1
|
||
jrz #nnd ;not a damaging hit - don't check.
|
||
move *a10(NEXT_DAMAGE),a14
|
||
jrz #nnd ;no NEXT_DAMAGE set. move on.
|
||
move *a10(SPECIAL_DAMAGE_TIME),a14,L
|
||
move @PCNT,a0,L
|
||
cmp a14,a0
|
||
jrgt #clrnd ;too late. clear NEXT_DAMAGE
|
||
|
||
move *a10(NEXT_DAMAGE),a14
|
||
cmp a1,a14
|
||
jrgt #clrnd ;if NEXT_DAMAGE is more than we were gonna
|
||
; do anyway, use the original damage.
|
||
move a14,a1 ;use NEXT_DAMAGE
|
||
#clrnd clr a14
|
||
move a14,*a10(NEXT_DAMAGE)
|
||
|
||
#nnd ;add attacker mod
|
||
move *a10(WRESTLERNUM),a0
|
||
X16 a0
|
||
addi offense_mods,a0
|
||
move *a0,a0
|
||
addi 100h,a0
|
||
mpyu a0,a1
|
||
|
||
;add defender mod
|
||
move *a13(WRESTLERNUM),a0
|
||
X16 a0
|
||
addi defense_mods,a0
|
||
move *a0,a0
|
||
addi 100h,a0
|
||
mpyu a0,a1
|
||
move a1,a0
|
||
sra 16,a0
|
||
neg a0
|
||
|
||
;block check
|
||
move *a13(PLYRMODE),a14
|
||
cmpi MODE_BLOCK,a14
|
||
jrnz #no_block
|
||
|
||
;Hey! If the attack mode is BSTOMP or BSTOMP2, don't reduce the
|
||
; damage!
|
||
move *a10(ATTACK_MODE),a14
|
||
cmpi AMODE_BSTOMP,a14
|
||
jreq #no_block
|
||
; cmpi AMODE_BSTOMP2,a14 ;bstomp2 is NOT a turnbuckle attack!
|
||
; jreq #no_block
|
||
cmpi AMODE_BLBOWDROP,a14
|
||
jreq #no_block
|
||
|
||
;we're blocking. if damage isn't zero, reduce it to one.
|
||
TEST a0
|
||
jrz #no_mult
|
||
movi -1,a0
|
||
jruc #no_mult
|
||
#no_block
|
||
CLR A1
|
||
MOVE A0,A0
|
||
JRZ JUST_CLEAR_OPP
|
||
|
||
MOVE *A10(RISK),A1
|
||
JRZ #no_mult
|
||
|
||
;Is there a real good reason why this is a CREATE0 instead of a CREATE?
|
||
PUSH a0,a8,a10
|
||
move a10,a8
|
||
clr a10
|
||
btst 15,a1
|
||
jrz #reg
|
||
;Taunt style high risk move - give 3x dmg
|
||
movi -1,a10
|
||
movk 4,a14
|
||
move a14,@DAM_MULT
|
||
#reg
|
||
movk 1,a0
|
||
move a0,@any_hits
|
||
CREATE0 BONUS_MESS
|
||
PULL a0,a8,a10
|
||
#no_mult
|
||
CLR A1
|
||
MOVE A1,*A10(RISK)
|
||
JUST_CLEAR_OPP
|
||
MOVE A1,*A13(RISK)
|
||
|
||
;store the damage value where hit functions can get at it
|
||
move a0,@hit_damage_pending
|
||
|
||
;if victim is on the turnbuckle, go to the special tbukl reaction
|
||
move *a13(PLYRMODE),a14
|
||
cmpi MODE_ONTURNBKL,a14
|
||
jrne #not_onbukl
|
||
|
||
;if the attack mode is some kind of puppet, don't do this
|
||
move *a10(ATTACK_MODE),a14
|
||
|
||
cmpi AMODE_PUPPET,a14
|
||
jreq #not_onbukl
|
||
cmpi AMODE_PUPPET2,a14
|
||
jreq #not_onbukl
|
||
cmpi AMODE_PUPPET_HDGRAB,a14
|
||
jreq #not_onbukl
|
||
cmpi AMODE_HITCHECK,a14
|
||
jreq #not_onbukl
|
||
|
||
movi hit_ontbukl,a1
|
||
jruc #continue
|
||
|
||
#not_onbukl
|
||
|
||
move *a10(ATTACK_MODE),a0 ;type of attack that hit doink
|
||
move a0,a1
|
||
sll 5,a1 ;x 32
|
||
addi #hit_table,a1
|
||
move *a1,a1,L ;appropriate routine
|
||
#continue
|
||
call a1
|
||
|
||
;now apply the damage, unless it's zero.
|
||
move @hit_damage_pending,a0
|
||
|
||
.if DEBUG
|
||
move @instant_death,a14
|
||
jrz #nid
|
||
movi -200,a0
|
||
#nid TEST a0
|
||
.endif
|
||
|
||
jrz #skip_adjust
|
||
|
||
;If this is the first unblocked hit this round and it did at least
|
||
; 2 pixels of damage, give an award
|
||
|
||
PUSH a0
|
||
|
||
cmpi -2,a0
|
||
jrgt #n1uh
|
||
|
||
move @any_hits,a14
|
||
jrnz #n1uh ;skip if there's already been one
|
||
|
||
move *a13(PLYRMODE),a14
|
||
cmpi MODE_BLOCK,a14
|
||
jreq #n1uh ;skip if it was blocked
|
||
|
||
RND_AWARD a10,FIRST_HIT_AWD
|
||
|
||
PUSH a10
|
||
CREATE MESSAGE_PID,FIRSTATT_MESS
|
||
PULL a10
|
||
|
||
movk 2,a14
|
||
move a14,@DAM_MULT
|
||
|
||
movk 1,a14
|
||
move a14,@any_hits
|
||
#n1uh PULL a0
|
||
|
||
move *a13(PLYRNUM),a1
|
||
calla adjust_health
|
||
#skip_adjust
|
||
move @new_victim_movedir,a0
|
||
move a0,*a13(MOVE_DIR)
|
||
|
||
|
||
rets
|
||
|
||
**********
|
||
* Stuff to do to the wrestler who got hit by another wrestler or by a
|
||
* projectile.
|
||
|
||
SUBRP hit_stuff
|
||
|
||
;don't do ANY of this stuff if the attack mode is AMODE_HITCHECK
|
||
move *a10(ATTACK_MODE),a14
|
||
cmpi AMODE_HITCHECK,a14
|
||
jreq #rets
|
||
|
||
;if our victim is KO'd, wake him up and set his NO_KO bit.
|
||
move *a13(STATUS_FLAGS),a14
|
||
btst B_KOD,a14
|
||
jrz #nko
|
||
|
||
ori M_NO_KO,a14
|
||
andni M_KOD,a14
|
||
move a14,*a13(STATUS_FLAGS)
|
||
|
||
movk 1,a14
|
||
move a14,*a13(PTIME)
|
||
#nko
|
||
|
||
;routine cleanup
|
||
clr a0
|
||
move a0,*a13(STARS_FLAG) ;Gets rid of them...
|
||
move a0,*a13(DEBRIS_X),L ;Gets rid of them...
|
||
MOVE A0,*A13(COMBO_COUNT)
|
||
|
||
move a0,*a13(SHADTRAIL_PROC),L ;proc is toast
|
||
move a0,*a13(ATTIMG_CUR_FRAME),L
|
||
move *a13(MY_PAL),*a13(OBJ_PAL)
|
||
move *a13(OBJ_CONTROL),a14
|
||
andni 01111b,a14
|
||
ori DMAWNZ,a14
|
||
move a14,*a13(OBJ_CONTROL)
|
||
|
||
;attach cleanup
|
||
move *a13(ATTACH_PROC),a1,L
|
||
jrz #done_attch
|
||
|
||
clr a0
|
||
move a0,*a13(ATTACH_PROC),L ;not attached to anything
|
||
|
||
move *a1(ATTACH_PROC),a2,L
|
||
cmp a2,a13
|
||
jrne #mismatch
|
||
|
||
cmp a1,a10
|
||
jreq #done_attch ;ignore if victim is attached to attacker
|
||
|
||
move a0,*a1(ATTACH_PROC),L
|
||
move a0,*a1(SHADTRAIL_PROC),L ;proc is toast
|
||
move a0,*a1(ATTIMG_CUR_FRAME),L
|
||
move a0,*a1(STARS_FLAG) ;Gets rid of them...
|
||
move a0,*a1(DEBRIS_X),L ;Gets rid of them...
|
||
move *a1(MY_PAL),*a1(OBJ_PAL)
|
||
move *a1(OBJ_CONTROL),a14
|
||
andni 01111b,a14
|
||
ori DMAWNZ,a14
|
||
move a14,*a1(OBJ_CONTROL)
|
||
|
||
;victim was attached to someone. Depending on their mode, break
|
||
; 'em out of it.
|
||
move *a1(PLYRMODE),a14
|
||
cmpi MODE_PUPPET,a14
|
||
jreq #goto_stand_anim
|
||
cmpi MODE_ONGROUND,a14
|
||
jreq #abort_att_anim
|
||
cmpi MODE_ATTACHED,a14
|
||
jreq #abort_att_anim
|
||
cmpi MODE_INAIR,a14
|
||
jreq #abort_att_anim
|
||
cmpi MODE_INAIR2,a14
|
||
jreq #abort_att_anim
|
||
cmpi MODE_DEAD,a14
|
||
jreq #abort_att_anim
|
||
cmpi MODE_PUPPET2,a14
|
||
jreq #goto_stand_anim
|
||
cmpi MODE_NORMAL,a14
|
||
jreq #goto_stand_anim
|
||
cmpi MODE_RUNNING,a14
|
||
jreq #goto_stand_anim
|
||
cmpi MODE_HEADHELD,a14
|
||
jreq #goto_stand_anim
|
||
cmpi MODE_HEADHOLD,a14
|
||
jreq #goto_stand_anim
|
||
cmpi MODE_CHOKEHOLD,a14
|
||
jreq #goto_stand_anim
|
||
cmpi MODE_OPPOVERHEAD,a14
|
||
jreq #goto_stand_anim
|
||
|
||
.if DEBUG
|
||
LOCKUP ;bizarre mode - don't know how to fix it.
|
||
.endif
|
||
jruc #done_attch
|
||
|
||
#mismatch
|
||
.if DEBUG
|
||
LOCKUP ;I've been hit, but the guy I'm attached to isn't attached
|
||
; to me, so I don't know if I should break him out of what
|
||
; he's doing or not...
|
||
.endif
|
||
jruc #done_attch
|
||
|
||
#goto_stand_anim
|
||
PUSH a13
|
||
move a1,a13
|
||
movi xxx_goto_stand_anim,a0
|
||
calla change_anim1a
|
||
PULL a13
|
||
jruc #done_attch
|
||
|
||
#abort_att_anim
|
||
PUSH a13
|
||
move a1,a13
|
||
movi xxx_aborted_attach_anim,a0
|
||
calla change_anim1a
|
||
PULL a13
|
||
|
||
#done_attch
|
||
|
||
; ;If our TEMP_PAL bit is set, restore the original, since we'll be
|
||
; ; aborting the sequence that would otherwise have restored it.
|
||
;Do this above, whether or not the bit is set, and for anyone
|
||
; we're attached to too.
|
||
; move *a13(STATUS_FLAGS),a0
|
||
; btst B_TEMP_PAL,a0
|
||
; jrz #done_pal
|
||
;
|
||
; ;clear the bit
|
||
; andni M_TEMP_PAL,a0
|
||
; move a0,*a13(STATUS_FLAGS)
|
||
;
|
||
; ;restore the pal
|
||
; move *a13(MY_PAL),*a13(OBJ_PAL)
|
||
;
|
||
;#done_pal
|
||
|
||
;if we're in SMART_ATTACK mode, clear it.
|
||
clr a14
|
||
move a14,*a13(SMART_TARGET),L
|
||
move *a13(STATUS_FLAGS),a14
|
||
andni M_SMART_ATTACK,a14
|
||
move a14,*a13(STATUS_FLAGS)
|
||
|
||
;If a wrestler is running out of control, and gets hit, we need to make the
|
||
;GETUP meter go away.
|
||
|
||
move *a13(PLYRMODE),a0
|
||
cmpi MODE_BOUNCING,a0
|
||
jrz #yes
|
||
cmpi MODE_RUNNING,a0
|
||
jrnz #cont
|
||
|
||
#yes
|
||
.ref ditch_getup_meter
|
||
calla ditch_getup_meter
|
||
|
||
#cont
|
||
clr a0
|
||
move a0,*a13(RUN_TIME)
|
||
|
||
;If he's attached to someone, detach both of them. (Note that we're not
|
||
; checking the blocking case here. you've no business being in mode_block
|
||
; if you're attached. Pbltltlt.)
|
||
|
||
.if DEBUG
|
||
move *a13(PLYRMODE),a14
|
||
cmpi MODE_BLOCK,a14
|
||
jrne #x0
|
||
move *a13(ATTACH_PROC),a14,L
|
||
jrz #x0
|
||
|
||
LOCKUP ;HEY! No blocking when attached. Bogus.
|
||
#x0
|
||
.endif
|
||
|
||
move *a13(ATTACH_PROC),a0,L
|
||
jrnz #attach_check_done
|
||
|
||
;attached. zero attach_procs both ways, and set other guy to NORMAL.
|
||
clr a14
|
||
move a14,*a13(ATTACH_PROC),L
|
||
move a14,*a0(ATTACH_PROC),L
|
||
movi MODE_NORMAL,a14
|
||
move a14,*a0(PLYRMODE)
|
||
|
||
#attach_check_done
|
||
#rets rets
|
||
|
||
|
||
#hit_table
|
||
.long hit_punch ;0 (this file)
|
||
.long hit_hdbutt ;1
|
||
.long hit_kick ;2
|
||
.long hit_flykick ;3
|
||
.long hit_grabthrow ;4
|
||
|
||
REFLONG hit_uprcut ;5 (react2.asm)
|
||
REFLONG hit_lbowdrop ;6
|
||
REFLONG hit_grabhold ;7
|
||
REFLONG hit_grabfling ;8
|
||
REFLONG hit_push ;9
|
||
|
||
.long hit_urn ;10 (This file)
|
||
REFLONG hit_bigboot ;11 (react3.asm)
|
||
REFLONG hit_knee ;12
|
||
.long hit_hdbutt2 ;13
|
||
REFLONG hit_boxpunch ;14
|
||
|
||
REFLONG hit_stomp ;15 (react4.asm)
|
||
REFLONG hit_spinkick ;16
|
||
REFLONG hit_cline ;17
|
||
REFLONG hit_headhold ;18
|
||
REFLONG hit_jumpkick ;19
|
||
|
||
REFLONG hit_run ;20 (react5.asm)
|
||
REFLONG hit_puppet ;21
|
||
REFLONG hit_backhand ;22
|
||
REFLONG hit_buzz ;23
|
||
REFLONG hit_haymaker ;24
|
||
|
||
REFLONG hit_blbowdrop ;25 (react2.asm)
|
||
REFLONG hit_bstomp ;26 (react4.asm)
|
||
REFLONG hit_headknees ;27 (react3.asm)
|
||
|
||
REFLONG hit_earslap ;28 (react5.asm) - MARK
|
||
REFLONG hit_hammer ;29 (react4.asm)
|
||
|
||
REFLONG hit_buttstomp ;30 (react4.asm)
|
||
REFLONG hit_puppet2 ;31 (react5.asm) - MARK
|
||
REFLONG hit_puppet_hdgrab ;32
|
||
.long hit_tomb ;33 (This file)
|
||
.long hit_bigknee ;34
|
||
|
||
REFLONG hit_shnbfkik ;35 (react8.asm) - JASON
|
||
REFLONG hit_shnspdkik ;36
|
||
REFLONG hit_shnspdkik2 ;37
|
||
REFLONG hit_hitcheck ;38
|
||
REFLONG hit_combo_uprcut ;39 (react2.asm) - why was this taken out ????
|
||
|
||
REFLONG hit_rslash ;40 (react9.asm) - JASON
|
||
REFLONG hit_headdslash ;41
|
||
REFLONG hit_headuslash ;42
|
||
REFLONG hit_rslash ;43 (same rxn, diff damage)
|
||
.long hit_hdbutt_stay ;44 (This file)
|
||
|
||
.long hit_fire_punch ;45
|
||
REFLONG hit_bstomp2 ;46 (react4.asm)
|
||
REFLONG hit_gutpush ;47 (react2.asm)
|
||
.long hit_super_kick ;48
|
||
.long hit_punch ;49 (AMODE_PUNCH2)
|
||
.long hit_urn ;50 (AMODE_HDBUTT3)
|
||
REFLONG hit_lbowdrop ;51 (AMODE_LBOWDROP2)
|
||
REFLONG hit_stomp ;52 (AMODE_STOMP2 - react4.asm)
|
||
|
||
REFLONG hit_puppet_noflail ;53 (react5.asm)
|
||
REFLONG hit_puppet_toss ;54 (react5.asm)
|
||
REFLONG hit_napalm ;55 (react9.asm)
|
||
|
||
#*****************************************************************************
|
||
;All hit routine use this block code
|
||
;Perhaps the DAMAGE amount should be table driven
|
||
;Perhaps we push him away after x blocks?
|
||
|
||
|
||
SUBR block_hit
|
||
|
||
;Slide opponent away from attacker
|
||
movi [4,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
|
||
|
||
;FIX!!
|
||
;We need to put in grunts or something... This doesn't work!
|
||
CALLA DO_BLOCK_SND
|
||
|
||
FACETBL hitblock_tbl
|
||
calla change_anim1a
|
||
|
||
#isdead
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
;All hit routine use this block code
|
||
;Perhaps the DAMAGE amount should be table driven
|
||
;Perhaps we push him away after x blocks?
|
||
|
||
|
||
SUBR block_hit_flail
|
||
|
||
;Slide opponent away from attacker
|
||
movi [6,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
|
||
|
||
;FIX!!
|
||
;We need to put in grunts or something... This doesn't work!
|
||
CALLA DO_BLOCK_SND
|
||
|
||
; FACETBL hitblock_tbl
|
||
FACETBL hitblock_flail_tbl
|
||
calla change_anim1a
|
||
|
||
#isdead
|
||
calla wres_collis_off
|
||
rets
|
||
;
|
||
;
|
||
;
|
||
;
|
||
;
|
||
; CALLA DO_BLOCK_SND
|
||
;
|
||
; FACETBL hitblock_flail_tbl
|
||
; calla change_anim1a
|
||
;
|
||
;#isdead
|
||
; calla wres_collis_off
|
||
; rets
|
||
|
||
#*****************************************************************************
|
||
;AMODE_PUNCH 0
|
||
hit_unused ;13
|
||
hit_punch
|
||
hit_fire_punch
|
||
|
||
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
|
||
|
||
callr block_hit
|
||
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 PUNCH_L1,PUNCH_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
|
||
;
|
||
;#isdead
|
||
; calla wres_collis_off
|
||
;
|
||
; rets
|
||
;
|
||
;#not_dizzy
|
||
;
|
||
;; calla inc_burnout
|
||
;
|
||
;;Test code
|
||
;; cmpi 6,a1 ;a1 = consecutive hits
|
||
;; jrlt #ok
|
||
;; LOCKUP
|
||
;;#ok
|
||
;
|
||
SETMODE NORMAL
|
||
|
||
;#do_hit
|
||
move *a13(OBJ_YPOSINT),a14
|
||
move *a13(GROUND_Y),a0
|
||
sub a0,a14
|
||
cmpi 20,a14
|
||
jrge #fall_back
|
||
|
||
move *a13(CONSECUTIVE_HITS),a0
|
||
inc a0
|
||
move a0,*a13(CONSECUTIVE_HITS)
|
||
subk 6,a0
|
||
jrnz #ok
|
||
|
||
clr a0
|
||
move a0,*a13(CONSECUTIVE_HITS)
|
||
;Consecutive hits without blocking/walking
|
||
;Do push away
|
||
|
||
;go to #ok if opp is in combo mode
|
||
move *a13(WHOHITME),a14,L
|
||
move *a14(COMBO_COUNT),a14
|
||
jrnz #ok
|
||
|
||
FACETBL #losebal
|
||
calla change_anim1a
|
||
|
||
; movi [5,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
|
||
|
||
jruc #isdead
|
||
|
||
#ok
|
||
|
||
;normal punch
|
||
FACE24TBL head_hit_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_right1 ;attacker on left
|
||
neg a2
|
||
#fall_right1
|
||
move a2,*a13(OBJ_XVEL),L
|
||
|
||
rets
|
||
|
||
#losebal
|
||
REFLONG hrt_4_losebal_anim ;0 Bret Hart
|
||
REFLONG rzr_4_losebal_anim ;1 Razor Ramon
|
||
REFLONG und_4_losebal_anim ;2 Undertaker
|
||
REFLONG yok_4_losebal_anim ;3 Yokozuna
|
||
REFLONG shn_4_losebal_anim ;4 Shawn Michaels
|
||
REFLONG bam_4_losebal_anim ;5 Bam Bam
|
||
REFLONG dnk_4_losebal_anim ;6 Doink
|
||
REFLONG dnk_4_losebal_anim ;7 spare
|
||
REFLONG lex_4_losebal_anim ;8 Lex Luger
|
||
|
||
#*****************************************************************************
|
||
;AMODE_HDBUTT 1
|
||
hit_hdbutt
|
||
|
||
move *a13(PLYRMODE),a1
|
||
cmpi MODE_BLOCK,a1
|
||
jrnz #noblock
|
||
|
||
callr block_hit
|
||
rets
|
||
|
||
#noblock
|
||
|
||
CALLA CALL_FACE_HIT
|
||
|
||
GETLIFE
|
||
jrz #isdead
|
||
|
||
WRSNDX HDBUTT_L1,HDBUTT_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
|
||
|
||
FACE24TBL head_hit2_tbl
|
||
calla change_anim1a
|
||
|
||
#isdead
|
||
calla wres_collis_off
|
||
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
;AMODE_HDBUTT2 13
|
||
hit_hdbutt2
|
||
;From head hold attacks
|
||
|
||
CALLA CALL_FACE_HIT
|
||
|
||
WRSNDX HDBUTT_L1,HDBUTT_L2
|
||
|
||
FACE24TBL head_hit2_tbl
|
||
calla change_anim1a
|
||
|
||
movi 3C000h,a0
|
||
move a0,*a13(OBJ_YVEL),L
|
||
|
||
clr a0
|
||
move a0,*a13(OBJ_XVEL),L
|
||
|
||
calla wres_collis_off
|
||
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
;AMODE_URN 10
|
||
hit_urn
|
||
|
||
;From slap type attacks that want a face hit reaction!
|
||
|
||
move *a13(PLYRMODE),a1
|
||
cmpi MODE_BLOCK,a1
|
||
jrnz #noblock
|
||
|
||
callr block_hit_flail
|
||
rets
|
||
|
||
#noblock
|
||
|
||
CALLA CALL_FACE_HIT
|
||
|
||
GETLIFE
|
||
jrz #isdead
|
||
|
||
WRSNDX HDBUTT_L1,HDBUTT_L2
|
||
|
||
SETMODE NORMAL
|
||
move *a13(OBJ_YPOSINT),a14
|
||
move *a13(GROUND_Y),a0
|
||
sub a0,a14
|
||
cmpi 20,a14
|
||
jrge #fall_back
|
||
|
||
|
||
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_HDBUTT_STAY 44
|
||
;No xvel will happen
|
||
hit_hdbutt_stay
|
||
move *a13(PLYRMODE),a1
|
||
cmpi MODE_BLOCK,a1
|
||
jrnz #noblock
|
||
|
||
callr block_hit_flail
|
||
rets
|
||
|
||
#noblock
|
||
|
||
CALLA CALL_FACE_HIT
|
||
|
||
; calla inc_burnout
|
||
|
||
SETMODE NORMAL
|
||
|
||
WRSNDX HDBUTT_L1,HDBUTT_L2
|
||
|
||
FACE24TBL head_hit2_tbl
|
||
calla change_anim1a
|
||
|
||
calla wres_collis_off
|
||
|
||
movi 6*60,a14
|
||
move a14,*a13(DELAY_METER)
|
||
|
||
clr a0
|
||
move a0,*a13(OBJ_XVEL),L
|
||
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
;AMODE_TOMB 33
|
||
hit_tomb
|
||
|
||
move *a13(PLYRMODE),a1
|
||
cmpi MODE_BLOCK,a1
|
||
jrnz #noblock
|
||
|
||
callr block_hit_flail
|
||
rets
|
||
|
||
#noblock
|
||
|
||
CALLA CALL_FACE_HIT
|
||
|
||
GETLIFE
|
||
jrz #isdead
|
||
|
||
calla DO_SCREAM
|
||
|
||
|
||
; 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
|
||
;
|
||
;#isdead
|
||
; calla wres_collis_off
|
||
; rets
|
||
;
|
||
;#not_dizzy
|
||
|
||
move *a13(PLYRMODE),a14
|
||
cmpi MODE_ONGROUND,a14
|
||
jreq #ongnd
|
||
cmpi MODE_DEAD,a14
|
||
jreq #ongnd
|
||
|
||
|
||
|
||
SETMODE NORMAL
|
||
move *a13(OBJ_YPOSINT),a14
|
||
move *a13(GROUND_Y),a0
|
||
sub a0,a14
|
||
cmpi 20,a14
|
||
jrge #fall_back
|
||
|
||
FACE24TBL head_hit2_tbl
|
||
jruc #anim
|
||
|
||
#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
|
||
|
||
|
||
#ongnd FACETBL hitonground_tbl
|
||
#anim calla change_anim1a
|
||
|
||
#isdead
|
||
calla wres_collis_off
|
||
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
;AMODE_SUPER_KICK 48
|
||
hit_super_kick
|
||
|
||
move *a13(PLYRMODE),a1
|
||
cmpi MODE_BLOCK,a1
|
||
jrnz #noblock
|
||
|
||
callr block_hit_flail
|
||
rets
|
||
|
||
;AMODE_KICK 2
|
||
hit_kick
|
||
|
||
|
||
move *a13(PLYRMODE),a1
|
||
cmpi MODE_BLOCK,a1
|
||
jrnz #noblock
|
||
|
||
callr block_hit
|
||
rets
|
||
|
||
#noblock
|
||
|
||
CALLA CALL_MID_HIT
|
||
|
||
GETLIFE
|
||
jrz #isdead
|
||
|
||
WRSNDX KICK_L1,KICK_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 body_hit_dizzy_tbl
|
||
; calla change_anim1a
|
||
;
|
||
;#isdead
|
||
; calla wres_collis_off
|
||
; rets
|
||
;
|
||
;#not_dizzy
|
||
;
|
||
; calla inc_burnout
|
||
|
||
SETMODE NORMAL
|
||
|
||
clr a0
|
||
move a0,*a13(USR_VAR1)
|
||
|
||
FACE24TBL body_hit_tbl
|
||
calla change_anim1a
|
||
#isdead
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
|
||
#*****************************************************************************
|
||
;AMODE_FLYKICK 3
|
||
SUBR hit_flykick
|
||
|
||
|
||
;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.
|
||
|
||
move *a10(OBJ_XVEL),a0,L ;slow down doink's
|
||
sra 1,a0 ;x_vel after collis
|
||
abs a0
|
||
cmpi 20000h,a0
|
||
jrlt #okv
|
||
movi 40000h,a0
|
||
#okv
|
||
move *a10(OBJ_XVEL),a14,L
|
||
jrn #okv2
|
||
neg a0
|
||
#okv2
|
||
move a0,*a10(OBJ_XVEL),L
|
||
movi 40000h,a0
|
||
move a0,*a10(OBJ_YVEL),L
|
||
|
||
move *a13(PLYRMODE),a1
|
||
cmpi MODE_BLOCK,a1
|
||
jrnz #noblock
|
||
|
||
callr block_hit_flail
|
||
setc ;return aborted
|
||
rets
|
||
|
||
#noblock
|
||
;HACK! - Lex's flying kicks don't knock you down. Use CALL_MID_HIT.
|
||
move *a10(ANIBASE),a14,L
|
||
cmpi lex_flying_kick_anim,a14
|
||
jreq #midhit
|
||
cmpi lex_super_kick_anim,a14
|
||
jreq #midhit
|
||
|
||
calla CALL_DROP_KICK
|
||
jruc #snd_done
|
||
#midhit calla CALL_MID_HIT
|
||
|
||
#snd_done
|
||
WRSNDX FLYKICK_L1,FLYKICK_L2
|
||
|
||
GETLIFE
|
||
jrz #skip
|
||
|
||
|
||
; calla inc_burnout
|
||
|
||
SETMODE NORMAL
|
||
|
||
#skip
|
||
|
||
; move *a10(OBJ_XVEL),a0,L ;slow down doink's
|
||
; sra 1,a0 ;x_vel after collis
|
||
; abs a0
|
||
; cmpi 28000h,a0
|
||
; jrlt #okv
|
||
; movi 28000h,a0
|
||
;#okv
|
||
; move *a10(OBJ_XVEL),a14,L
|
||
; jrn #okv2
|
||
; neg a0
|
||
;#okv2
|
||
; move a0,*a10(OBJ_XVEL),L
|
||
; movi 40000h,a0
|
||
; move a0,*a10(OBJ_YVEL),L
|
||
|
||
clr a0
|
||
move a0,*a13(ROLL_POS)
|
||
|
||
; move *a13(PLYR_DIZZY),a0
|
||
; jrnz #diz
|
||
|
||
calla set_getup_time
|
||
|
||
|
||
;#diz
|
||
FACETBL fall_back_tbl
|
||
calla change_anim1a
|
||
|
||
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
|
||
clrc ;return okay
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
;AMODE_BIGKNEE 34
|
||
hit_bigknee
|
||
|
||
;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.
|
||
|
||
move *a13(PLYRMODE),a1
|
||
cmpi MODE_BLOCK,a1
|
||
jrnz #noblock
|
||
|
||
callr block_hit_flail
|
||
rets
|
||
|
||
#noblock
|
||
calla CALL_DROP_KICK
|
||
WRSNDX FLYKICK_L1,FLYKICK_L2
|
||
|
||
GETLIFE
|
||
jrz #skip
|
||
|
||
|
||
; calla inc_burnout
|
||
|
||
SETMODE NORMAL
|
||
|
||
#skip
|
||
; move *a10(OBJ_XVEL),a0,L ;slow down doink's
|
||
; sra 1,a0 ;x_vel after collis
|
||
; neg a0
|
||
; move a0,*a10(OBJ_XVEL),L
|
||
; movi 40000h,a0
|
||
; move a0,*a10(OBJ_YVEL),L
|
||
|
||
clr a0
|
||
move a0,*a13(ROLL_POS)
|
||
|
||
; move *a13(PLYR_DIZZY),a0
|
||
; jrnz #diz
|
||
|
||
calla set_getup_time
|
||
|
||
;#diz
|
||
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 #fall_right ;attacker on left
|
||
movi -[4,0],a2
|
||
#fall_right
|
||
move a2,*a13(OBJ_XVEL),L
|
||
|
||
#isdead
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
|
||
|
||
#*****************************************************************************
|
||
;AMODE_GRABTHROW 4
|
||
hit_grabthrow
|
||
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
; HIT WHILE STANDING ON TURNBUCKLE -- DOESN'T MATTER WHAT THE AMODE WAS
|
||
hit_ontbukl
|
||
|
||
|
||
WRSNDX FLYKICK_L1,FLYKICK_L2
|
||
|
||
FACETBL fall_back_tbukl_tbl
|
||
calla change_anim1a
|
||
|
||
SETMODE INAIR
|
||
|
||
;set the DEAD_ANIM bit so that if this hit killed us, we won't
|
||
; get the normal fall_back_anim instead.
|
||
move *a13(STATUS_FLAGS),a14
|
||
ori M_DEAD_ANIM,a14
|
||
move a14,*a13(STATUS_FLAGS)
|
||
|
||
movi [4,0],a2
|
||
move *a10(OBJ_XPOSINT),a0
|
||
move *a13(OBJ_XPOSINT),a1
|
||
cmp a0,a1 ;offx - defx
|
||
jrgt #fall_right ;attacker on left
|
||
movi [-4,0],a2
|
||
#fall_right
|
||
move a2,*a13(OBJ_XVEL),L
|
||
movi [6,0],a2
|
||
move a2,*a13(OBJ_YVEL),L
|
||
|
||
#isdead
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
|
||
******************************************************************************
|
||
*
|
||
* DAMAGE SECTION
|
||
*
|
||
|
||
;Base damage values and getup times
|
||
damage_values
|
||
.word D_PUNCH, RD_PUNCH ;AMODE_PUNCH
|
||
.word D_HDBUTT, RD_HDBUTT ;AMODE_HDBUTT
|
||
.word D_KICK, RD_KICK ;AMODE_KICK
|
||
.word D_FLYKICK, RD_FLYKICK ;AMODE_FLYKICK
|
||
.word D_GRABTHROW, RD_GRABTHROW ;AMODE_GRABTHROW
|
||
|
||
.word D_UPRCUT, RD_UPRCUT ;AMODE_UPRCUT
|
||
.word D_LBDROP, RD_LBDROP ;AMODE_LBOWDROP
|
||
.word D_GRBHOLD, RD_GRBHOLD ;AMODE_GRABHOLD
|
||
.word D_GRBFLNG, RD_GRBFLNG ;AMODE_GRABFLING
|
||
.word D_PUSH, RD_PUSH ;AMODE_PUSH
|
||
|
||
.word D_BCKHAND, RD_BCKHAND ;AMODE_URN
|
||
.word D_BIGBOOT, RD_BIGBOOT ;AMODE_BIGBOOT
|
||
.word D_KNEE, RD_KNEE ;AMODE_KNEE
|
||
.word D_HDKNEES, RD_HDKNEES ;AMODE_HDBUTT2
|
||
.word D_BOXPUNCH, RD_BOXPUNCH ;AMODE_BOXPUNCH
|
||
|
||
.word D_STOMP, RD_STOMP ;AMODE_STOMP
|
||
.word D_SPINKIK, RD_SPINKIK ;AMODE_SPINKICK
|
||
.word D_CLINE, RD_CLINE ;AMODE_CLINE
|
||
.word D_HEDHOLD, RD_HEDHOLD ;AMODE_HEADHOLD
|
||
.word D_JUMPKICK, RD_JUMPKICK ;AMODE_JUMPKICK
|
||
|
||
.word D_RUN, RD_RUN ;AMODE_RUN
|
||
.word D_PUPPET, RD_PUPPET ;AMODE_PUPPET
|
||
.word D_BCKHAND, RD_BCKHAND ;AMODE_BACKHAND
|
||
.word D_BUZZ, RD_BUZZ ;AMODE_BUZZ
|
||
.word D_HAYMAKER, RD_HAYMAKER ;AMODE_HAYMAKER
|
||
|
||
.word D_BLBDROP, RD_BLBDROP ;AMODE_BLBOWDROP
|
||
.word D_BSTOMP, RD_BSTOMP ;AMODE_BSTOMP
|
||
.word D_HDKNEES, RD_HDKNEES ;AMODE_HEADKNEES
|
||
.word D_EARSLAP2, RD_EARSLAP2 ;AMODE_EARSLAP
|
||
.word D_HAMMER2, RD_HAMMER2 ;AMODE_HAMMER
|
||
|
||
.word D_BUTTSTOMP, RD_BUTTSTOMP ;AMODE_BUTTSTOMP
|
||
.word D_ATT31, RD_ATT31 ;AMODE_PUPPET2
|
||
.word D_ATT32, RD_ATT32 ;AMODE_HDGRAB
|
||
.word D_TOMB, RD_TOMB ;AMODE_TOMB
|
||
.word D_BIGKNEE, RD_BIGKNEE ;AMODE_BIGKNEE
|
||
|
||
.word D_FLPKIK, RD_FLPKIK ;AMODE_SHNBFKIK
|
||
.word D_SPDKIK, RD_SPDKIK ;AMODE_SHNSPDKIK
|
||
.word D_SPDKIK2, RD_SPDKIK2 ;AMODE_SHNSPDKIK2
|
||
.word D_HITCK, RD_HITCK ;AMODE_HITCHECK
|
||
.word D_ARMBRK, RD_ARMBRK ;AMODE_ARMBREAK
|
||
|
||
.word D_RSLASH, RD_RSLASH ;AMODE_RSLASH
|
||
.word D_HEADDSLASH, RD_HEADDSLASH ;AMODE_HEADDSLASH
|
||
.word D_HEADUSLASH, RD_HEADUSLASH ;AMODE_HEADUSLASH
|
||
.word D_RSLASH2, RD_RSLASH2 ;AMODE_RSLASH2
|
||
.word D_HDBUTT_STAY, RD_HDBUTT_STAY ;AMODE_HDBUTT_STAY
|
||
|
||
.word D_FIRE_PUNCH, RD_FIRE_PUNCH ;AMODE_FIRE_PUNCH
|
||
.word D_BSTOMP2, RD_BSTOMP2 ;AMODE_BSTOMP2
|
||
.word D_GUTPUSH, RD_GUTPUSH ;AMODE_GUTPUSH
|
||
.word D_SPINKIK, RD_SPINKIK ;AMODE_SUPER_KICK
|
||
.word D_PUNCH2, RD_PUNCH2 ;AMODE_PUNCH2
|
||
|
||
.word D_BCKHAND, RD_BCKHAND ;AMODE_HDBUTT3
|
||
.word D_LBDROP2, RD_LBDROP2 ;AMODE_LBOWDROP2
|
||
.word D_STOMP2, RD_STOMP2 ;AMODE_STOMP2
|
||
.word 0, 0 ;AMODE_NOFLAIL
|
||
.word 0, 0 ;AMODE_TOSS
|
||
.word D_NAPALM, RD_NAPALM ;AMODE_NAPALM
|
||
|
||
;Wrestler offensive multipliers
|
||
offense_mods
|
||
.word _35PCT ;Bret
|
||
.word _35PCT ;Razor
|
||
.word _35PCT ;Taker
|
||
.word _35PCT ;Yoko
|
||
.word _35PCT ;Shawn
|
||
.word _35PCT ;Bam Bam
|
||
.word _35PCT ;Doink
|
||
.word _35PCT ;
|
||
.word _35PCT ;Lex
|
||
|
||
;Wrestler defensive multipliers
|
||
defense_mods
|
||
.word 0 ;Bret
|
||
.word 0 ;Razor
|
||
.word 0 ;Taker
|
||
.word 0 ;Yoko
|
||
.word 0 ;Shawn
|
||
.word 0 ;Bam Bam
|
||
.word 0 ;Doink
|
||
.word 0 ;
|
||
.word 0 ;Lex
|
||
|
||
******************************************************************************
|
||
*
|
||
* STANDARD REACTION TABLES
|
||
*
|
||
|
||
SUBR head_hit_tbl
|
||
.long hrt_2_head_hit_anim,hrt_4_head_hit_anim ;0 Bret Hart
|
||
.long rzr_2_head_hit_anim,rzr_4_head_hit_anim ;1 Razor Ramon
|
||
.long und_2_head_hit_anim,und_4_head_hit_anim ;2 Undertaker
|
||
.long yok_2_head_hit_anim,yok_4_head_hit_anim ;3 Yokozuna
|
||
.long shn_2_head_hit_anim,shn_4_head_hit_anim ;4 Shawn Michaels
|
||
.long bam_2_head_hit_anim,bam_4_head_hit_anim ;5 Bam Bam
|
||
.long dnk_2_head_hit_anim,dnk_4_head_hit_anim ;6 Doink
|
||
.long 0,0 ;7 spare
|
||
.long lex_2_head_hit_anim,lex_4_head_hit_anim ;8 Lex Luger
|
||
|
||
|
||
SUBR head_hit2_tbl
|
||
.long hrt_2_head_hit2_anim,hrt_4_head_hit2_anim ;0 Bret Hart
|
||
.long rzr_2_head_hit2_anim,rzr_4_head_hit2_anim ;1 Razor Ramon
|
||
.long und_head_hit2_anim,und_head_hit2_anim ;2 Undertaker
|
||
.long yok_2_head_hit2_anim,yok_4_head_hit2_anim ;3 Yokozuna
|
||
.long shn_2_head_hit2_anim,shn_4_head_hit2_anim ;4 Shawn Michaels
|
||
.long bam_head_hit2_anim,bam_head_hit2_anim ;5 Bam Bam
|
||
.long dnk_head_hit2_anim,dnk_head_hit2_anim ;6 Doink
|
||
.long 0,0 ;7 spare
|
||
.long lex_2_head_hit2_anim,lex_4_head_hit2_anim ;8 Lex Luger
|
||
|
||
SUBR head_hit2_sand_tbl
|
||
REFLONG hrt_4_head_hit2s_anim
|
||
REFLONG rzr_4_head_hit2s_anim
|
||
REFLONG und_head_hit2s_anim
|
||
REFLONG yok_4_head_hit2s_anim
|
||
REFLONG shn_4_head_hit2s_anim
|
||
REFLONG bam_head_hit2s_anim
|
||
REFLONG dnk_head_hit2s_anim
|
||
.long 0
|
||
REFLONG lex_4_head_hit2s_anim
|
||
|
||
SUBR head_hit_dizzy_tbl
|
||
.long hrt_4_head_hit_dizzy_anim,hrt_4_head_hit_dizzy_anim ;0 Bret Hart
|
||
.long rzr_4_head_hit_dizzy_anim,rzr_4_head_hit_dizzy_anim ;1 Razor Ramon
|
||
.long und_head_hit_dizzy_anim,und_head_hit_dizzy_anim ;2 Undertaker
|
||
.long yok_4_head_hit_dizzy_anim,yok_4_head_hit_dizzy_anim ;3 Yokozuna
|
||
.long shn_4_head_hit_dizzy_anim,shn_4_head_hit_dizzy_anim ;4 Shawn Michaels
|
||
.long bam_head_hit_dizzy_anim,bam_head_hit_dizzy_anim ;5 Bam Bam
|
||
.long dnk_head_hit_dizzy_anim,dnk_head_hit_dizzy_anim ;6 Doink
|
||
.long 0,0 ;7 spare
|
||
.long lex_head_hit_dizzy_anim,lex_head_hit_dizzy_anim ;8 Lex Luger
|
||
|
||
SUBR body_hit_tbl
|
||
.long hrt_2_body_hit_anim,hrt_4_body_hit_anim ;0 Bret Hart
|
||
.long rzr_2_body_hit_anim,rzr_4_body_hit_anim ;1 Razor Ramon
|
||
.long und_2_body_hit_anim,und_4_body_hit_anim ;2 Undertaker
|
||
.long yok_2_body_hit_anim,yok_4_body_hit_anim ;3 Yokozuna
|
||
.long shn_2_body_hit_anim,shn_4_body_hit_anim ;4 Shawn Michaels
|
||
.long bam_2_body_hit_anim,bam_4_body_hit_anim ;5 Bam Bam
|
||
.long dnk_4_body_hit_anim,dnk_4_body_hit_anim ;6 Doink
|
||
.long 0,0 ;7 spare
|
||
.long lex_2_body_hit_anim,lex_4_body_hit_anim ;8 Lex Luger
|
||
|
||
SUBR body_hit2_tbl
|
||
.long hrt_4_body_hit_anim ;0 Bret Hart
|
||
.long rzr_4_body_hit_anim ;1 Razor Ramon
|
||
.long und_4_body_hit_anim ;2 Undertaker
|
||
.long yok_4_body_hit_anim ;3 Yokozuna
|
||
.long shn_4_body_hit_anim ;4 Shawn Michaels
|
||
.long bam_4_body_hit_anim ;5 Bam Bam
|
||
.long dnk_4_body_hit_anim ;6 Doink
|
||
.long 0 ;7 spare
|
||
.long lex_4_body_hit_anim ;8 Lex Luger
|
||
|
||
SUBR body_hit_dizzy_tbl
|
||
.long hrt_4_body_hit_dizzy_anim,hrt_4_body_hit_dizzy_anim ;0 Bret Hart
|
||
.long rzr_4_body_hit_dizzy_anim,rzr_4_body_hit_dizzy_anim ;1 Razor Ramon
|
||
.long und_4_body_hit_dizzy_anim,und_4_body_hit_dizzy_anim ;2 Undertaker
|
||
.long yok_4_body_hit_dizzy_anim,yok_4_body_hit_dizzy_anim ;3 Yokozuna
|
||
.long shn_4_body_hit_dizzy_anim,shn_4_body_hit_dizzy_anim ;4 Shawn Michaels
|
||
.long bam_4_body_hit_dizzy_anim,bam_4_body_hit_dizzy_anim ;5 Bam Bam
|
||
.long dnk_4_body_hit_dizzy_anim,dnk_4_body_hit_dizzy_anim ;6 Doink
|
||
.long 0,0 ;7 spare
|
||
.long lex_4_body_hit_dizzy_anim,lex_4_body_hit_dizzy_anim ;8 Lex Luger
|
||
|
||
SUBR fall_back_tbl
|
||
.long hrt_fall_back_anim ;0 Bret Hart
|
||
.long rzr_fall_back_anim ;1 Razor Ramon
|
||
.long und_fall_back_anim ;2 Undertaker
|
||
.long yok_fall_back_anim ;3 Yokozuna
|
||
.long shn_fall_back_anim ;4 Shawn Michaels
|
||
.long bam_fall_back_anim ;5 Bam Bam
|
||
.long dnk_fall_back_anim ;6 Doink
|
||
.long 0 ;7 spare
|
||
.long lex_fall_back_anim ;8 Lex Luger
|
||
|
||
SUBR fall_back_tbukl_tbl
|
||
.long hrt_fall_back_tbukl_anim ;0 Bret Hart
|
||
.long rzr_fall_back_tbukl_anim ;1 Razor Ramon
|
||
.long und_fall_back_tbukl_anim ;2 Undertaker
|
||
.long yok_fall_back_anim ;3 Yokozuna
|
||
.long shn_fall_back_tbukl_anim ;4 Shawn Michaels
|
||
.long bam_fall_back_tbukl_anim ;5 Bam Bam
|
||
.long dnk_fall_back_tbukl_anim ;6 Doink
|
||
.long 0 ;7 spare
|
||
.long lex_fall_back_tbukl_anim ;8 Lex Luger
|
||
|
||
hitblock_tbl
|
||
.long hrt_4_hitblock_anim ;0 Bret Hart
|
||
.long rzr_4_hitblock_anim ;1 Razor Ramon
|
||
.long und_4_hitblock_anim ;2 Undertaker
|
||
.long yok_4_hitblock_anim ;3 Yokozuna
|
||
.long shn_4_hitblock_anim ;4 Shawn Michaels
|
||
.long bam_4_hitblock_anim ;5 Bam Bam
|
||
.long dnk_4_hitblock_anim ;6 Doink
|
||
.long 0 ;7 spare
|
||
.long lex_4_hitblock_anim ;8 Lex Luger
|
||
|
||
hitblock_flail_tbl
|
||
REFLONG hrt_4_hitblock2_anim ;0 Bret Hart
|
||
REFLONG rzr_4_hitblock2_anim ;1 Razor Ramon
|
||
REFLONG und_4_hitblock2_anim ;2 Undertaker
|
||
REFLONG yok_4_hitblock2_anim ;3 Yokozuna
|
||
REFLONG shn_4_hitblock2_anim ;4 Shawn Michaels
|
||
REFLONG bam_4_hitblock2_anim ;5 Bam Bam
|
||
REFLONG dnk_4_hitblock2_anim ;6 Doink
|
||
.long 0 ;7 spare
|
||
REFLONG lex_4_hitblock2_anim ;8 Lex Luger
|
||
|
||
; .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
|
||
|
||
SUBR hitonground_tbl
|
||
.long hrt_hitonground_anim ;0 Bret Hart
|
||
.long rzr_hitonground_anim ;1 Razor Ramon
|
||
.long und_hitonground_anim ;2 Undertaker
|
||
.long yok_hitonground_anim ;3 Yokozuna
|
||
.long shn_hitonground_anim ;4 Shawn Michaels
|
||
.long bam_hitonground_anim ;5 Bam Bam
|
||
.long dnk_hitonground_anim ;6 Doink
|
||
.long 0 ;7 spare
|
||
.long lex_hitonground_anim ;8 Lex Luger
|
||
.long 0 ;9 Referee
|
||
|
||
#*****************************************************************************
|
||
*
|
||
* Script for a wrestler who was the victim of a puppet sequence that got
|
||
* interrupted by the attacker being smacked.
|
||
|
||
SUBR xxx_aborted_attach_anim
|
||
|
||
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
|
||
.word ANI_SETPLYRMODE,MODE_INAIR
|
||
.word ANI_SETSPEED,100h
|
||
|
||
.word ANI_WAITHITGND
|
||
.word ANI_SETPLYRMODE,MODE_ONGROUND
|
||
.word ANI_SETMODE,MODE_NORMAL
|
||
|
||
;WAIT! If I'm dead, just do a hitonground instead.
|
||
WL ANI_CODE,#dead_or_dying
|
||
WL ANI_IFSTATUS,#dead
|
||
WL ANI_CHANGEANIM_TBL,#getup_tbl
|
||
#dead WL ANI_CHANGEANIM_TBL,hitonground_tbl
|
||
|
||
#getup_tbl
|
||
REFLONG hrt_faceup_getup_anim
|
||
REFLONG rzr_faceup_getup_anim
|
||
REFLONG und_faceup_getup_anim
|
||
REFLONG yok_faceup_getup_anim
|
||
REFLONG shn_faceup_getup_anim
|
||
REFLONG bam_faceup_getup_anim
|
||
REFLONG dnk_faceup_getup_anim
|
||
.long 0
|
||
REFLONG lex_faceup_getup_anim
|
||
|
||
|
||
SUBRP #dead_or_dying
|
||
|
||
;set status if I'm dead or my I_WILL_DIE flag is set.
|
||
move *a13(ANIMODE),a14
|
||
andni MODE_STATUS,a14
|
||
move a14,*a13(ANIMODE)
|
||
|
||
move *a13(I_WILL_DIE),a14
|
||
jrnz #die
|
||
|
||
move *a13(PLYRNUM),a1
|
||
calla get_health
|
||
jrnz #ok
|
||
|
||
#die move *a13(ANIMODE),a14
|
||
ori MODE_STATUS,a14
|
||
move a14,*a13(ANIMODE)
|
||
|
||
#ok rets
|
||
|
||
#*****************************************************************************
|
||
*
|
||
* Script for a wrestler who was the victim of a puppet sequence that got
|
||
* interrupted by the attacker being smacked. - go to stand instead of
|
||
* falling.
|
||
|
||
SUBR xxx_goto_stand_anim
|
||
|
||
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
|
||
.word ANI_SETPLYRMODE,MODE_INAIR
|
||
.word ANI_SETSPEED,100h
|
||
|
||
.word ANI_WAITHITGND
|
||
.word ANI_SETPLYRMODE,MODE_NORMAL
|
||
.word ANI_SETMODE,MODE_NORMAL
|
||
.word ANI_END
|
||
|
||
******************************************************************************
|
||
|
||
.end
|
||
|