1941 lines
43 KiB
NASM
1941 lines
43 KiB
NASM
|
**************************************************************
|
|||
|
*
|
|||
|
* 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
|
|||
|
|