wwf-wrestlemania/BACKUP/SHNSEQ3.ASM

2478 lines
54 KiB
NASM
Raw Permalink Blame History

This file contains invisible Unicode characters!

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

*************************
*
* WE NEED TO INSERT THIS AT THE BEGINNING
*
* OF EACH 'ATTACK' SEQUENCE
*
* EQUATES ARE DEFINED IN DAMAGE.EQU
*
*
* .word ANI_STARTATTACK,AT_PUNCH,8 ;type, #ticks 'til attack on
*
*
*
*************************
**************************************************************
*
* Software: Jamie Rivett
* Initiated: 5/26/94
*
* COPYRIGHT (C) 1992 WILLIAMS ELECTRONICS GAMES, INC.
*
**************************************************************
.file "shnseq3.asm"
.title "lockup stuff and special attacks"
.width 132
.option b,d,l,t
.mnolist
.include "macros.h"
.include "mproc.equ" ;Mproc equates
.include "sys.equ"
.include "game.equ"
.include "plyr.equ"
.include "anim.equ"
.include "sound.h"
.include "display.equ"
.include "ring.equ"
.include "shawnimg.h"
.include "damage.equ"
******************************************************************************
* EXTERNAL REFERENCES
;BRET
.ref hrt_hitonground_anim,hrt_break_neck_anim
.ref hrt_flyout_anim,hrt_3_head_held_anim
.ref H2AH3A,H2AM3A,H2CP3A,H3BF3A,H3DU3A,H3FR3A,H3GU4A,H3UC3X
.ref H3UC3Z,H3HB3A
;BAM BAM
.ref bam_hitonground_xflip_anim,bam_3_head_held_anim
.ref bam_flyout_anim,bam_break_neck_anim
.ref bam_break_neck4_anim
.ref B3BF3C,B3DU3A,B3FD3C,B3GU4A,B4AH4A,B4TD3B,B4UC3B
.ref B4BF3A,B3HB3A,B3DR3B
;DOINK
.ref dnk_hitonground_anim,dnk_hitonground_xflip_anim
.ref dnk_break_neck_anim,dnk_flyout_anim,dnk_3_head_held_anim
.ref D3AE3B,D3BF3A,D3DU3A,D3FD3E,D3HT3Z,D3OS3A,D3PM4C,D3SA3A
.ref D3UC3A,D3AK3A
;LEX
.ref lex_hitonground_anim,lex_flyout_anim
.ref lex_break_neck_anim,lex_3_head_held_anim
.ref lex_break_neck4_anim
.ref L3BF3B,L3CP3B,L3DU3A,L3FD3B,L3FH3A,L3UC3X,L4AM4B,L3BF3A
.ref L2AH2A,L3CP3X,L4GH3B
;RAZOR
.ref rzr_hitonground_anim,rzr_flyout_anim
.ref rzr_break_neck_anim,rzr_3_head_held_anim
.ref rzr_break_neck4_anim
.ref R3BF3A,R3DU3B,R3FD3B,R3GU2A,R3GU4A,R3HG3B,R3TD3A,R4AH4C
.ref R3HB3A
;SHAWN
.ref shn_break_neck_anim,shn_stand4_anim,shn_3_head_held_anim
.ref shn_hitonground_anim,shn_flyout_anim
.ref shn_faceup_getup_anim,shn_arm_broken_anim
.ref shn_fall_back3_anim
.ref S4TD3F
;TAKER
.ref und_hitonground_anim,und_flyout_anim
.ref und_break_neck_anim,und_3_head_held_anim
.ref und_break_neck_anim
.ref U3AE4A,U3CP3B,U3DU3B,U3FD3X,U3FH3A,U3GP3X,U4AH3A,U4AM4C
.ref U4BF3Z,U4BF3A,U3TBSM
;YOKO
.ref yok_hitonground_anim,yok_frnk_backfire_anim
.ref yok_3_head_held_anim,yok_break_neck_anim
.ref yok_hitonground_xflip_anim
.ref Y3BF3A,Y3GU2A,Y3FD3A,Y3FD3N,Y3LB3A,Y4AM4A
.ref ckzpos
;from WRESTLE.ASM
.ref process_ptrs
;MISC
.ref store_opp_xvel,merge_xvels,announce_rnd_winner,SMALL_BOUNCE
.ref HIT_THE_MAT,CALL_SPECIAL_MOVE,CALL_MISSES,CALL_SETUP
.ref CALL_MISS_YOKO,choose_2or4
.REF CALL_THROWN_OUT
.REF CALL_ANI_AVERAGE_MOVE
.REF DO_FRANK_MESS
.REF DO_GERM_MESS
.REF DO_BODY_MESS
.REF CALL_OTHER_AVERAGE
******************************************************************************
* SYMBOLS DEFINED IN THIS FILE
******************************************************************************
* EQUATES FOR THIS FILE
#*****************************************************************************
*
* GERMAN SUPLEX
SUBR shn_gsuplex_run_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WWL ANI_IFOPPMODE,MODE_HEADHELD,#front_grab0
WWL ANI_IFOPPMODE,MODE_HEADHOLD,#front_grab0
WWL ANI_IFOPPMODE,MODE_ONGROUND,#front_grab0
WWWL ANI_IFNOTROPE,RC_FRONT,200,#back_grab0
#front_grab0
.word ANI_STARTATTACK,AT_LEAPING,6
.word ANI_XFLIP
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 8,70,70,40,90000h,TGT_CHEST,40,0,0
WL ANI_SET_YVEL,0000h
WL ANI_GOTO,#common
#back_grab0
;check for a likely hit. If not, abort and do a front grab instead.
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON,AMODE_HITCHECK,12,47,49+8,23
.word ANI_PAUSE,1
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#front_grab0
.word ANI_OFFSET,5,0,0
WL 3,S3BH3A+FR1
.word ANI_OFFSET,7+10,0,0
WL 3,S3BH3A+FR2
.word ANI_OFFSET,3+10,0,0
WL 3,S3BH3A+FR3
.word ANI_OFFSET,6+10,0,0
WL 3,S3BH3A+FR4
.word ANI_OFFSET,2+10,0,0
WL 3,S3BH3A+FR5
.word ANI_OFFSET,1+10,0,0
WL 3,S3BH3A+FR6
.word ANI_OFFSET,3+10,0,0
.word ANI_FACE,MOVE_DOWN|MOVE_LEFT
WL ANI_GOTO,#common
SUBR shn_gsuplex_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WWL ANI_IFOPPMODE,MODE_HEADHELD,#front_grab
WWL ANI_IFOPPMODE,MODE_HEADHOLD,#front_grab
WWL ANI_IFOPPMODE,MODE_ONGROUND,#front_grab
WWWL ANI_IFNOTROPE,RC_FRONT,200,#back_grab
#front_grab
.word ANI_XFLIP
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 8,40,40,40,90000h,TGT_CHEST,40,0,0
WL ANI_SET_YVEL,0000h
WL ANI_GOTO,#common
#back_grab
;check for a likely hit. If not, abort and do a front grab instead.
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON,AMODE_HITCHECK,12,47,49+8,23
.word ANI_PAUSE,1
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#front_grab
.word ANI_OFFSET,5,0,0
WL 3,S3BH3A+FR1
.word ANI_OFFSET,7+10,0,0
WL 3,S3BH3A+FR2
.word ANI_OFFSET,3+10,0,0
WL 3,S3BH3A+FR3
.word ANI_OFFSET,6+10,0,0
WL 3,S3BH3A+FR4
.word ANI_OFFSET,2+10,0,0
WL 3,S3BH3A+FR5
.word ANI_OFFSET,1+10,0,0
WL 3,S3BH3A+FR6
.word ANI_OFFSET,3+10,0,0
.word ANI_FACE,MOVE_DOWN|MOVE_LEFT
#common
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_PUPPET,-68,47,49,23
WWL ANI_WAITHITOPP,12,S3BH3A+FR7
.word ANI_ZERO_XZVELS
WL 5,S3BH3A+FR7
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missed
;got him
WL ANI_CODE,DO_GERM_MESS
WL ANI_CODE,CALL_SPECIAL_MOVE
.word ANI_ATTACHZ,0,0,-4 ;x & y don't matter.
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_KEEPATTACHED
WWLLW ANI_SUPERSLAVE2,5,S3SG3A+FR2,#puppet_tbl,0
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WWLLW ANI_SUPERSLAVE2,4,S3SG3A+FR3,#puppet_tbl,1
WWLLW ANI_SUPERSLAVE2,3,S3SG3A+FR4,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,3,S3SG3A+FR5,#puppet_tbl,3
WWLLW ANI_SUPERSLAVE2,3,S3SG3A+FR6,#puppet_tbl,4
;impact
WL ANI_CODE,HIT_THE_MAT
.word ANI_SOUND,0C1h ;plywood crash #3
.word ANI_SHAKEALL,2
.word ANI_SHAKER,40
.word ANI_DAMAGEOPP,D_GSUPLEX
WL 2,S3SG3A+FR6
WWLLW ANI_SUPERSLAVE2,3,S3SG3A+FR7,#puppet_tbl,5
.word ANI_SOUND,33h ;neck break (5-7 ticks late)
WWLLW ANI_SUPERSLAVE2,3,S3SG3A+FR8,#puppet_tbl,6
WL ANI_SLAVEANIM,#rollout_tbl
.word ANI_DETACH
.word ANI_OFFSET,-34,0,0
WL 6,S3CP3B+FR7
WL ANI_CODE,#zero_butn
WL ANI_CHANGEANIM,shn_faceup_getup_anim
;#tgt_yoko
; WL ANI_CODE,CALL_MISS_YOKO
; WL 8,S3BH3A+FR7
; WL 4,S3BH3A+FR8
; .word ANI_SETMODE,MODE_NORMAL
; .word ANI_END
#missed
WL ANI_CODE,CALL_MISSES
WL 9,S3BH3A+FR7
WL 4,S3BH3A+FR8
.word ANI_XFLIP
WL ANI_CODE,choose_2or4
WL ANI_IFSTATUS,#4
WL 1,S2ST2C+FR1
.word ANI_FACEUP
WL ANI_GOTO,#2
#4
WL 1,S4ST4C+FR1
.word ANI_FACEDOWN
#2
WL ANI_CODE,#zero_butn
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#zero_butn
;Force player to start holding his button down starting at the end
;of the current buzz sequence.
move *a13(PLYRNUM),a0
X16 a0
.ref punch_dtime1
addi punch_dtime1,a0
clr a14
move a14,*a0
rets
********
* #include "s_gsup.seq"
*
* NOTE: Because of some funny flipping in the attack sequence, all X offsets
* in victim sequences must be sign-reversed.
#puppet_tbl
.long #Bret
.long #Razor
.long #Taker
.long #Yokozuna
.long #Shawn
.long #BamBam
.long #Doink
.long #Adam
.long #Lex
#Bret
LWWW H3UC3X+FR1,-18,14,1
LWWW H3UC3X+FR2,-39,30,1
LWWW H3UC3X+FR4,-13,32,1
LWWW H3UC3X+FR5,37,57,1
LWWW H3UC3X+FR6,90,17,1
LWWW H3UC3Z+FR1,116,21,1
LWWW H3UC3Z+FR2,152,25,1
#Razor
LWWW R3FD3B+FR1,-20,12,1
LWWW R3FD3B+FR2,-42,29,1
LWWW R3FD3B+FR4,-23,37,1
LWWW R3FD3B+FR5,24,43,1
LWWW R3FD3B+FR6,89,5,1
LWWW R3HG3B+FR1,118,23,1
LWWW R3HG3B+FR2,146,31,1
#Taker
LWWW U3FD3X+FR1,-25,24,0
LWWW U3FD3X+FR3,-27,34,0
LWWW U3FD3X+FR5,27,54,0
LWWW U3FD3X+FR6,72,60,0
LWWW U3GP3X+FR1,89,16,0
LWWW U3GP3X+FR2,118,-12,0
LWWW U3GP3X+FR3,149,6,0
#Yokozuna
LWWW Y3FD3A+FR1,-26,4,1
LWWW Y3FD3A+FR2,-58,40,1
LWWW Y3FD3A+FR4,-29,41,1
LWWW Y3FD3A+FR5,17,58,1
LWWW Y3FD3N+FR1,64,36,1
LWWW Y3FD3N+FR3,89,18,1
LWWW Y3FD3N+FR4,118,35,1
#Shawn
LWWW S3UC3X+FR1,-16,16,1
LWWW S3UC3X+FR3,-40,25,1
LWWW S3UC3X+FR5,2,34,1
LWWW S3UC3X+FR6,62,55,1
LWWW S3FD3X+FR1,76,16,1
LWWW S3FD3X+FR2,107,35,1
LWWW S3FD3X+FR3,140,60,1
#BamBam
LWWW B4UC3B+FR1,-24,28,1
LWWW B4UC3B+FR3,-48,27,1
LWWW B4UC3B+FR5,0,51,1
LWWW B4UC3B+FR6,69,61,1
LWWW B3FD3C+FR1,88,2,1
LWWW B3FD3C+FR2,115,31,1
LWWW B3FD3C+FR3,139,51,1
#Doink
LWWW D3UC3A+FR2,-21,22,1
LWWW D3UC3A+FR3,-25,34,1
LWWW D3UC3A+FR5,-15,32,1
LWWW D3UC3A+FR7,45,58,1
LWWW D3FD3E+FR2,98,10,1
LWWW D3FD3E+FR3,133,1,1
LWWW D3FD3E+FR4,162,25,1
#Adam
.long 0
#Lex
LWWW L3UC3X+FR2,-21,10,1
LWWW L3UC3X+FR3,-44,20,1
LWWW L3UC3X+FR4,-15,34,1
LWWW L3UC3X+FR5,71,63,1
LWWW L3UC3X+FR6,94,3,1
LWWW L3FD3B+FR1,131,-3,1
LWWW L3FD3B+FR2,159,6,1
#rollout_tbl
.long hrt_break_neck_anim,rzr_break_neck_anim
.long und_break_neck_anim,yok_break_neck_anim
.long shn_break_neck_anim,bam_break_neck_anim
.long dnk_break_neck_anim,0,lex_break_neck_anim
*
********
#*****************************************************************************
*
* FRANKENSTEINER
.bss #opp_xvel,32
SUBR shn_fstein2_anim
;From head hold combo move
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETSPEED,100h
;first, if we're holding his head, let him go.
WWL ANI_IFOPPMODE,~MODE_HEADHELD,#no_hdrel2
.word ANI_DETACH
#no_hdrel2
.word ANI_STARTATTACK,AT_LEAPING,12
WL 4,S3FL3X+FR1
WL 4,S3FL3X+FR2
.word ANI_OFFSET,0,45,0
WL 1,S3ZI3A+FR1
LEAPATOPP 10,999,120,55,90000h,TGT_HEAD,17-20,35,-20
WL 4,S3ZI3A+FR1
.word ANI_ATTACK_ON,AMODE_PUPPET,10-36,-20,56,33 ;mode,x,y,w,h
WL ANI_GOTO,#cont
SUBR shn_fstein_anim
SUBR shn_standing_fstein_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETSPEED,100h
;first, if we're holding his head, let him go.
WWL ANI_IFOPPMODE,~MODE_HEADHELD,#no_hdrel
.word ANI_DETACH
#no_hdrel
.word ANI_STARTATTACK,AT_LEAPING,12
WL 4,S3FL3X+FR1
WL 4,S3FL3X+FR2
.word ANI_OFFSET,0,45,0
WL 1,S3ZI3A+FR1
LEAPATOPP 10,999,120,55,90000h,TGT_HEAD,17-20,35,-20
WL 4,S3ZI3A+FR1
.word ANI_ATTACK_ON,AMODE_PUPPET,10-36,0,36,33 ;mode,x,y,w,h
#cont
WL ANI_CODE,#store_opp_xvel
WWL ANI_WAITHITOPP,10,S3ZI3A+FR2
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb
; .word ANI_IFOPP,W_YOKO,-1
; WL ANI_IFSTATUS,#tgt_yoko
.word ANI_CLR_STATUS
;hit
WL ANI_CODE,#merge_xvels
WL ANI_CODE,DO_FRANK_MESS
.word ANI_ATTACHZ,0,0,-10 ;x & y don't matter.
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_KEEPATTACHED
WWLLW ANI_SUPERSLAVE2,4,S3ZI3A+FR3,#puppet_tbl,0
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,SMALL_BOUNCE
.word ANI_OFFSET,0,-65,0
WWLLW ANI_SUPERSLAVE2,4,S3ZI3A+FR4,#puppet_tbl,1
WWLLW ANI_SUPERSLAVE2,4,S3ZI3A+FR5,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,4,S3ZI3A+FR6,#puppet_tbl,3
WWLLW ANI_SUPERSLAVE2,4,S3ZI3A+FR7,#puppet_tbl,4
WWLLW ANI_SUPERSLAVE2,4,S3ZI3A+FR8,#puppet_tbl,5
WWWL ANI_IFROPE,RC_BACK,160,#throw_him_out
WWLLW ANI_SUPERSLAVE2,4,S3ZI3A+FR9,#puppet_tbl,6
WWLLW ANI_SUPERSLAVE2,4,S3ZI3A+FR10,#puppet_tbl,7
WWLLW ANI_SUPERSLAVE2,4,S3ZI3A+FR11,#puppet_tbl,8
;impact
WL ANI_CODE,HIT_THE_MAT
.word ANI_SOUND,0C1h ;plywood crash #3
.word ANI_SHAKEALL,2
.word ANI_SHAKER,40
.word ANI_DAMAGEOPP,D_FSTEIN
.word ANI_OPP_GETUP,300
WWLLW ANI_SUPERSLAVE2,4,S3ZI3A+FR11,#puppet_tbl,9
WL ANI_OPPOFFSET,#release_offsets
WL ANI_CODE,CALL_SPECIAL_MOVE
WL ANI_SLAVEANIM,#recover_tbl
.word ANI_DETACH
.word ANI_OFFSET,-41,0,0
WL 4,S2PJ3C+FR9
.word ANI_OFFSET,41,0,0
WL 4,S3GU2A+FR5
WL 4,S3GU2A+FR6
WL 4,S3GU2A+FR7
WL 4,S3GU2A+FR8
WL 4,S3GU2A+FR9
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#throw_him_out
WLLL ANI_ATTACHVEL,-70000h,70000h,0h ;x,y,z
WL ANI_SLAVEANIM,#flyout_tbl
.word ANI_DETACH
WL 3,S3ZI3A+FR8
WL 4,S3ZI3A+FR9
WL 4,S3ZI3A+FR10
WL 4,S3ZI3A+FR11
;impact
; .word ANI_OPP_GETUP,30
WL 4,S3ZI3A+FR11
.word ANI_OFFSET,-41,0,0
WL 4,S2PJ3C+FR9
.word ANI_OFFSET,41,0,0
WL 4,S3GU2A+FR5
WL 4,S3GU2A+FR6
WL 4,S3GU2A+FR7
WL 4,S3GU2A+FR8
WL 4,S3GU2A+FR9
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#tgt_yoko
;we've hit yoko. mistake.
;this will turn yoko into the attacker, so it doesn't much matter
; what we do from here, as he'll be calling the shots.
.word ANI_ZERO_XZVELS
WL ANI_CODE,#set_attach
WL ANI_CODE,CALL_MISS_YOKO
WL ANI_SLAVEANIM,#backfire_tbl
WL 999,S3ZI3A+FR3
.word ANI_END
#set_attach
move *a13(WHOIHIT),a0,L
move a0,*a13(ATTACH_PROC),L
move a13,*a0(ATTACH_PROC),L
rets
#missedb
.word ANI_IFOPP,W_YOKO,-1
WL ANI_IFSTATUS,#tgt_yoko
;we've hit a blocker. mistake.
;uh, for now just abort.
WL ANI_CODE,#set_attach
WLLL ANI_SETOPPVELS,60000h,40000h,0 ;x,y,z vels
; WLW ANI_SET_OPP_XVEL,-20000h,AM_FACE_REL
; .word ANI_DETACH
WL ANI_CODE,CALL_MISSES
.word ANI_SOUND,018h ;Hard hit
.word ANI_ZERO_XZVELS
WL 3,S3UC3X+FR4
WL 3,S3UC3X+FR5
WL 3,S3UC3X+FR6
.word ANI_WAITHITGND
WLLL ANI_SETOPPVELS,0000h,0000h,0 ;x,y,z vels
.word ANI_DETACH
.word ANI_SHAKEALL,2
.word ANI_SHAKER,35
.word ANI_SOUND,0BFh
.word ANI_SOUND,0C1h ;plywood crash #3
.word ANI_XFLIP
WL ANI_CHANGEANIM,shn_hitonground_anim
#missed
;uh, for now just abort.
WL ANI_CODE,CALL_MISSES
.word ANI_WAITHITGND
.word ANI_SHAKEALL,2
.word ANI_SHAKER,35
.word ANI_SOUND,0BFh
.word ANI_SOUND,0C1h ;plywood crash #3
; WL 3,S3UC3X+FR4
; WL 3,S3UC3X+FR5
; WL 3,S3UC3X+FR6
.word ANI_XFLIP
; .word ANI_GETUP,30
WL ANI_CHANGEANIM,shn_hitonground_anim
;new xvel is (attacker xvel + defender xvel)/4
#merge_xvels
move @#opp_xvel,a0,L
move *a13(OBJ_XVEL),a1,L
add a1,a0
sra 2,a0
move a0,*a13(OBJ_XVEL),L
#rets
rets
;save opponent's x-velocity
#store_opp_xvel
move *a13(CLOSEST_NUM),a0
X32 a0
addi process_ptrs,a0
move *a0,a0,L
move *a0(OBJ_XVEL),a0,L
move a0,@#opp_xvel,L
rets
********
* #include "s_frnk.seq"
#puppet_tbl
.long #Bret
.long #Razor
.long #Taker
.long #Yokozuna
.long #Shawn
.long #BamBam
.long #Doink
.long #Adam
.long #Lex
#Bret
LWWW H2AH3A+FR5,6,-31,0
LWWW H2AH3A+FR6,11,-30,0
LWWW H2AM3A+FR1,57,-17,0
LWWW H2AM3A+FR7,77,-25,0
LWWW H3FR3A+FR2,77,21,0
LWWW H3FR3A+FR3,49,57,0
LWWW H3FR3A+FR4,-7,59,0
LWWW H3FR3A+FR5,-46,41,0
LWWW H3FR3A+FR6,-43,52,0
LWWW H2CP3A+FR8,-115,-14,1
#Razor
LWWW R4AH4C+FR3,9,-27,0
LWWW R4AH4C+FR8,6,-27,0
LWWW R3TD3A+FR1,41,-21,0
LWWW R3TD3A+FR2,69,-27,0
LWWW R3TD3A+FR4,72,29,0
LWWW R3TD3A+FR5,46,44,0
LWWW R3TD3A+FR6,-8,50,0
LWWW R3TD3A+FR7,-43,52,0
LWWW R3TD3A+FR8,-33,72,0
LWWW R3GU2A+FR1,-142,-11,1
#Taker
LWWW U4AH3A+FR2,-5,-19,0
LWWW U3AE4A+FR1,3,-22,0
LWWW U4AM4C+FR4,44,-16,0
LWWW U3FH3A+FR1,65,-11,1
LWWW U3FH3A+FR2,60,35,1
LWWW U3FH3A+FR3,35,41,1
LWWW U3FH3A+FR4,-21,47,1
LWWW U3FH3A+FR5,-51,56,1
LWWW U3FH3A+FR5,-30,81,1
LWWW U3CP3B+FR1,-136,-7,1
#Yokozuna
LWWW Y4AE4A+FR1,11,-33,0
.ref Y2AM2C
LWWW Y2AM2C+FR1,18,-41,0
LWWW Y3FL3W+FR1,53,-13,0
LWWW Y3FL3W+FR2,61,-17,0
LWWW Y3FL3W+FR3,67,23,0
LWWW Y3FL3W+FR4,54,47,0
LWWW Y3FL3W+FR5,8,56,0
LWWW Y3FL3W+FR6,-39,58,0
LWWW Y3FL3W+FR7,-42,56,0
LWWW Y3FD3A+FR7,-89,13,0
.long 0
#Shawn
LWWW S3OS3X+FR1,8,-28,1
LWWW S3OS3X+FR2,-12,-31,1
LWWW S3OS3X+FR3,33,-12,1
LWWW S3OS3X+FR4,38,-17,1
LWWW S3OS3X+FR5,57,5,1
LWWW S3OS3X+FR6,47,50,1
LWWW S3OS3X+FR7,22,65,1
LWWW S3OS3X+FR8,4,68,1
LWWW S3OS3X+FR9,-61,71,1
LWWW S3OS3X+FR10,-124,-6,1
#BamBam
LWWW B4AH4A+FR1,-4,-33,0
LWWW B4TD3B+FR1,-9,-35,0
LWWW B4TD3B+FR2,33,-25,0
LWWW B4TD3B+FR3,56,-30,0
LWWW B4TD3B+FR4,79,7,0
LWWW B4TD3B+FR5,57,45,0
LWWW B4TD3B+FR6,14,75,0
LWWW B4TD3B+FR7,-29,71,0
LWWW B4TD3B+FR8,-40,81,0
LWWW B4TD3B+FR9,-98,5,0
#Doink
LWWW D3AE3B+FR7,1,-25,0
LWWW D3AE3B+FR8,2,-28,0
LWWW D3PM4C+FR2,26,-18,0
LWWW D3OS3A+FR1,73,-27,0
LWWW D3OS3A+FR2,82,2,0
LWWW D3OS3A+FR3,57,12,0
LWWW D3OS3A+FR5,31,41,0
LWWW D3OS3A+FR6,-17,49,0
LWWW D3FD3E+FR2,-47,57,0
LWWW D3SA3A+FR8,-133,-6,1
#Adam
.long 0
#Lex
LWWW L4AM4B+FR2,4,-31,0
LWWW L4AM4B+FR3,-6,-34,0
LWWW L3FH3A+FR1,43,-21,0
LWWW L3FH3A+FR2,74,-16,0
LWWW L3FH3A+FR3,79,39,0
LWWW L3FH3A+FR4,50,43,0
LWWW L3FH3A+FR5,5,42,0
LWWW L3FH3A+FR6,-35,50,0
LWWW L3FH3A+FR6,-24,68,0
LWWW L3CP3B+FR1,-130,-7,1
*
********
#recover_tbl
.long hrt_hitonground_anim
.long rzr_hitonground_anim
.long und_hitonground_anim
; .long yok_frnk_backfire_anim
.long yok_hitonground_xflip_anim
.long shn_hitonground_anim
.long bam_hitonground_xflip_anim
.long dnk_hitonground_anim
.long 0
.long lex_hitonground_anim
#backfire_tbl
.long yok_frnk_backfire_anim
.long yok_frnk_backfire_anim
.long yok_frnk_backfire_anim
.long yok_frnk_backfire_anim
.long yok_frnk_backfire_anim
.long yok_frnk_backfire_anim
.long yok_frnk_backfire_anim
.long yok_frnk_backfire_anim
.long yok_frnk_backfire_anim
#flyout_tbl
.ref yok_flyout_anim
.long hrt_flyout_anim
.long rzr_flyout_anim
.long und_flyout_anim
.long yok_flyout_anim
.long shn_flyout_anim
.long bam_flyout_anim
.long dnk_flyout_anim
.long 0
.long lex_flyout_anim
#release_offsets
; X Y
.word 0,0 ;Bret
.word 0,0 ;Razor
.word 0,0 ;Taker
.word 0,0 ;Yokozuna
.word 0,0 ;Shawn
.word 20,0 ;BamBam
.word 0,0 ;Doink
.word 0,0 ;Adam
.word 0,0 ;Lex
#*****************************************************************************
*
* SPIN KICK
;TODO(JS) - deal with the CALL_MISSES thing
SUBR shn_spinkick_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_STARTATTACK,AT_LEAPING,12
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 11,999,50,50,90000h,TGT_HEAD,10,78,0
;jump
WL 2,S4SK3Y+FR3
WL 2,S4SK3Y+FR4
WL 2,S4SK3Y+FR5
WL 2,S4SK3Y+FR6
WL 3,S4SK3Y+FR7
.word ANI_ATTACK_ON,AMODE_SPINKICK,22,91-24,47,19
WWL ANI_WAITHITOPP,6,S4SK3Y+FR8
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-58000h,#no_slide
;-hit, slide
WL ANI_SET_YVEL,50000h
WL ANI_CODE,CALL_ANI_AVERAGE_MOVE
WL ANI_GOTO,#cont
#no_slide
WL ANI_IFNOTSTATUS,#missed
WL ANI_CODE,CALL_ANI_AVERAGE_MOVE
;-hit, no slide
WL ANI_SET_YVEL,30000h
WL ANI_CODE,#reverse_xvel
WL ANI_GOTO,#cont
#missed
;-missed
WL ANI_CODE,CALL_MISSES
#cont
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 3,S4SK3Y+FR9
WL 3,S4SK3Y+FR10
WL 3,S4SK3Y+FR11
; WL 3,S4SK3Y+FR12
WL 3,S3GU2A+FR9
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#reverse_xvel
move *a13(OBJ_XVEL),a14,L
neg a14
sra 2,a14
move a14,*a13(OBJ_XVEL),L
rets
#*****************************************************************************
*
* SPEED KICK
SUBR shn_super_speedkick_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SET_RPTCOUNT,4 ;3 times
.word ANI_STARTATTACK,AT_KICK,9
WL 2,S4KI3Q+FR1
.word ANI_CLR_BUTCOUNT
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 08h,999,30,40,90000h,TGT_HEAD,75,90,-10
WL ANI_SET_YVEL,30000h
WL 2,S4KI3Q+FR2
WL 2,S4KI3Q+FR3
WL 2,S4KI3Q+FR4
WL 2,S4KI3Q+FR5
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON,AMODE_SHNSPDKIK,40,76,49,30
WL 4,S4KI3Q+FR6
.word ANI_ATTACK_OFF
WL ANI_IFSTATUS,#gothim
;miss
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 3,S4KI3Q+FR7
WL 3,S4KI3Q+FR8
WL 3,S4KI3Q+FR9
WL 3,S4KI3Q+FR4
WL 3,S4KI3Q+FR3
WL 3,S4KI3Q+FR2
WL 3,S4KI3Q+FR1
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#loop
.word ANI_CLR_BUTCOUNT
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 05h,999,30,40,90000h,TGT_HEAD,75,105,-10
WL ANI_SET_YVEL,30000h
WL 2,S4KI3Q+FR4
WL 2,S4KI3Q+FR5
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON,AMODE_SHNSPDKIK,40,76,49,30
WL 4,S4KI3Q+FR6
.word ANI_ATTACK_OFF
WL ANI_IFSTATUS,#gothim
;miss
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 3,S4KI3Q+FR7
WL 3,S4KI3Q+FR8
WL 3,S4KI3Q+FR9
WL 3,S4KI3Q+FR4
WL 3,S4KI3Q+FR3
WL 3,S4KI3Q+FR2
WL 3,S4KI3Q+FR1
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#gothim
.word ANI_ZERO_XZVELS
WL ANI_CODE,#set_opp_xy
WL 2,S4KI3Q+FR7
WL 2,S4KI3Q+FR8
WL 2,S4KI3Q+FR9
WWWL ANI_IF_BUTCOUNT_LT,KICKB_COUNT,1,#fail
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#loop
#fail
WL 3,S4KI3Q+FR4
WL 3,S4KI3Q+FR3
WL 3,S4KI3Q+FR2
WL 3,S4KI3Q+FR1
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#miss
WL 3,S4KI3Q+FR7
WL 3,S4KI3Q+FR8
WL 3,S4KI3Q+FR9
WL 3,S4KI3Q+FR4
WL 3,S4KI3Q+FR3
WL 3,S4KI3Q+FR2
WL 3,S4KI3Q+FR1
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#set_opp_xy
move *a13(WHOIHIT),a0,L
movi -[2,0],a14
move a14,*a0(OBJ_ZVEL),L
movi [3,0],a14
move a14,*a0(OBJ_YVEL),L
move *a13(INRING),a1
jrnz #ok
move *a13(OBJ_XPOSINT),a14
subi RING_X_MID,a14
abs a14
cmpi 0a0h,a14
jrlt #ok
; rets
#ok
movi -[3,0],a1
move *a0(NEW_FACING_DIR),a14
btst MOVE_RIGHT_BIT,a14
jrnz #abs ;right
neg a1 ;left
#abs
move a1,*a0(OBJ_XVEL),L
rets
#*****************************************************************************
*
* BODY SLAM
*
* only difference between standing and normal bodyslam is that the attack
* frame on the standing slam isn't held as long. Use the normal if opponent
* is running, or the standing otherwise.
*
SUBR shn_2_bslam_anim
.word ANI_SETMODE,MODE_UNINT+MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_STARTATTACK,AT_PUPPET,7
WL 2,S1TT5Z+FR2 ;2.5
WL 2,S1TT5Z+FR3 ;3.5
SUBR shn_4_bslam_anim
.word ANI_SETMODE,MODE_UNINT+MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_STARTATTACK,AT_PUPPET,4
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 8,40,40,40,90000h,TGT_CHEST,50,0,0
WL ANI_SET_YVEL,0000h
WL 3,S4GS3C+FR1
;temp!
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_PUPPET,62,49,21,39 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,6,S4GS3C+FR2
.word ANI_ZERO_XZVELS
WWL ANI_WAITHITOPP,4,S4GS3C+FR2
.word ANI_ATTACK_OFF
;#common
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missed
WL ANI_CODE,DO_BODY_MESS
WL ANI_CODE,CALL_OTHER_AVERAGE
WL ANI_CODE,CALL_THROWN_OUT
.word ANI_ATTACHZ,0,0,10 ;x & y don't matter.
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_KEEPATTACHED
WWLLW ANI_SUPERSLAVE2,4,S4GS3C+FR2,#puppet_tbl,0
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WWWL ANI_IFROPE,RC_BACK,100,#throw_him_out
WWLLW ANI_SUPERSLAVE2,4,S4GS3C+FR4,#puppet_tbl,1
WWLLW ANI_SUPERSLAVE2,4,S4GS3C+FR5,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,4,S4GS3C+FR6,#puppet_tbl,3
WWLLW ANI_SUPERSLAVE2,4,S4GS3C+FR7,#puppet_tbl,4
WWLLW ANI_SUPERSLAVE2,4,S4GS3C+FR8,#puppet_tbl,5
WWLLW ANI_SUPERSLAVE2,4,S4GS3C+FR9,#puppet_tbl,6
;impact
.word ANI_SOUND,0C1h ;plywood crash #3
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKEALL,2
.word ANI_SHAKER,30
.word ANI_DAMAGEOPP,D_HIPTOSS
.word ANI_OPP_GETUP,300
WWLLW ANI_SUPERSLAVE2,4,S4GS3C+FR10,#puppet_tbl,7
WL ANI_OPPOFFSET,#release_offsets
WL ANI_SLAVEANIM,#recover_tbl
.word ANI_DETACH
.word ANI_FACE,MOVE_LEFT|MOVE_DOWN
WL 8,S4GS3C+FR11
WL 4,S4GS3C+FR12
.word ANI_XFLIP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#missedb
WL 5,S4GS3C+FR2
#missed
WL 10,S4GS3C+FR2
.word ANI_WAITHITGND
.word ANI_SETFACING
.word ANI_ZEROVELS
WL 5,S4GS3C+FR2
WL 5,S4GS3C+FR1
#abort
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#throw_him_out
;since we're gonna throw him out anyhow, turn off confine.
.word ANI_SETOPPMODE,MODE_NOCONFINE
WWLLW ANI_SUPERSLAVE2,4,S4GS3C+FR4,#puppet_tbl,1
WWLLW ANI_SUPERSLAVE2,4,S4GS3C+FR5,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,4,S4GS3C+FR6,#puppet_tbl,3
WWLLW ANI_SUPERSLAVE2,1,S4GS3C+FR7,#puppet_tbl,4
WLLL ANI_ATTACHVEL,-70000h,70000h,0h ;x,y,z
WL ANI_SLAVEANIM,#flyout_tbl
.word ANI_DETACH
WL 3,S4GS3C+FR7
WL 3,S4GS3C+FR8
WL 4,S4GS3C+FR9
WL 4,S4GS3C+FR10
WL 8,S4GS3C+FR11
WL 4,S4GS3C+FR12
.word ANI_FACE,MOVE_LEFT|MOVE_DOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
********
* #include "s_bslm.img"
#puppet_tbl
.long #Bret
.long #Razor
.long #Taker
.long #Yokozuna
.long #Shawn
.long #BamBam
.long #Doink
.long #Adam
.long #Lex
#Bret
LWWW H2AH3A+FR5,49,27,0
LWWW H2AM3A+FR1,39,30,0
LWWW H2AM3A+FR7,37,6,0
LWWW H3FR3A+FR2,16,21,0
LWWW H3FR3A+FR3,0,49,0
LWWW H3FR3A+FR4,-14,57,0
LWWW H3FR3A+FR5,-35,38,0
LWWW H2CP3A+FR8,-150,-69,1
#Razor
LWWW R4AH4C+FR3,54,31,0
LWWW R3TD3A+FR1,25,31,0
LWWW R3TD3A+FR2,36,8,0
LWWW R3TD3A+FR4,2,22,0
LWWW R3TD3A+FR5,2,36,0
LWWW R3TD3A+FR6,-6,47,0
LWWW R3TD3A+FR7,-32,41,0
LWWW R3GU2A+FR1,-160,-64,1
#Taker
LWWW U3AE4A+FR1,50,37,0
LWWW U4AM4C+FR4,23,35,0
LWWW U3FH3A+FR1,33,17,1
LWWW U3FH3A+FR2,5,35,1
LWWW U3FH3A+FR3,-5,43,1
LWWW U3FH3A+FR4,-22,54,1
LWWW U3FH3A+FR5,-46,55,1
LWWW U3CP3B+FR1,-163,-60,1
#Yokozuna
.ref Y4AE4A
LWWW Y4AE4A+FR1,64,25,0
LWWW Y3FL3W+FR1,34,32,0
LWWW Y3FL3W+FR2,28,16,0
LWWW Y3FL3W+FR3,-1,26,0
LWWW Y3FL3W+FR4,-10,39,0
LWWW Y3FL3W+FR5,-24,37,0
LWWW Y3FL3W+FR6,-38,36,0
LWWW Y3FD3A+FR7,-131,-42,0
.long 0
#Shawn
LWWW S3OS3X+FR2,39,23,1
LWWW S3OS3X+FR3,19,20,1
LWWW S3OS3X+FR4,3,11,1
LWWW S3OS3X+FR5,-21,20,1
LWWW S3OS3X+FR6,-24,51,1
LWWW S3OS3X+FR7,-22,47,1
LWWW S3OS3X+FR9,-50,41,1
LWWW S3OS3X+FR10,-137,-61,1
#BamBam
LWWW B4AH4A+FR1,44,26,0
LWWW B4TD3B+FR2,15,23,0
LWWW B4TD3B+FR3,13,10,0
LWWW B4TD3B+FR4,12,17,0
LWWW B4TD3B+FR5,-5,55,0
LWWW B4TD3B+FR6,-9,66,0
LWWW B4TD3B+FR7,-21,61,0
LWWW B4TD3B+FR9,-136,-47,0
#Doink
LWWW D3AE3B+FR8,47,26,0
LWWW D3PM4C+FR2,8,25,0
LWWW D3OS3A+FR1,25,10,0
LWWW D3OS3A+FR2,-10,17,0
LWWW D3OS3A+FR3,-23,22,0
LWWW D3OS3A+FR4,-21,29,0
LWWW D3OS3A+FR6,-26,34,0
LWWW D3FD3E+FR2,-83,-26,0
#Adam
.long 0
#Lex
LWWW L4AM4B+FR2,51,28,0
LWWW L3FH3A+FR1,24,18,0
LWWW L3FH3A+FR2,27,2,0
LWWW L3FH3A+FR3,10,28,0
LWWW L3FH3A+FR4,6,37,0
LWWW L3FH3A+FR5,-5,39,0
LWWW L3FH3A+FR6,-23,48,0
LWWW L3CP3B+FR1,-143,-59,1
*
********
#recover_tbl
.long hrt_hitonground_anim,rzr_hitonground_anim
.long und_hitonground_anim,yok_hitonground_xflip_anim
.long shn_hitonground_anim,bam_hitonground_xflip_anim
.long dnk_hitonground_xflip_anim,0,lex_hitonground_anim
#flyout_tbl
.long hrt_flyout_anim,rzr_flyout_anim,und_flyout_anim
.long yok_flyout_anim
.long shn_flyout_anim,bam_flyout_anim,dnk_flyout_anim
.long 0,lex_flyout_anim
#release_offsets
; X Y
.word 0,0 ;Bret
.word 0,0 ;Razor
.word 0,0 ;Taker
.word 0,0 ;Yokozuna
.word 0,0 ;Shawn
.word 20,0 ;BamBam
.word 30,0 ;Doink
.word 0,0 ;Adam
.word 0,0 ;Lex
#******************************************************************************
SUBR shn_2_hair_pickup_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETPLYRMODE,MODE_NORMAL
WL 2,S1TT5Z+FR2 ;2.5
WL 2,S1TT5Z+FR3 ;3.5
SUBR shn_4_hair_pickup_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETPLYRMODE,MODE_NORMAL
;Put cool cheers here
; .word ANI_RAWSOUND,2055 ;big cheer #1
; .word ANI_CHEER,3
WL 3,S4GH3A+FR1
LEAPATOPP 8,999,80,80,30000h,TGT_HEAD,46-10,6,-2
WL 4,S4GH3A+FR2
WL 4,S4GH3A+FR3
.word ANI_ZERO_XZVELS
.word ANI_ATTACK_ON, AMODE_PUPPET,21,1,31,18 ;mode,x,y,w,h
WL 5,S4GH3A+FR4
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
;got him
WL ANI_CODE,CALL_SETUP
.word ANI_ATTACHZ,0,0,-4 ;x & y don't matter.
.word ANI_SETOPPMODE,MODE_GHOST
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_KEEPATTACHED
.word ANI_SOUND,33h ;neck break (5-7 ticks late)
.word ANI_DAMAGEOPP,D_HAIR_PICKUP
WWLLW ANI_SUPERSLAVE2,4,S4GH3A+FR6,#puppet_tbl,0
WWLLW ANI_SUPERSLAVE2,4,S4GH3A+FR7,#puppet_tbl,1
WWLLW ANI_SUPERSLAVE2,4,S4GH3A+FR8,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,4,S4GH3A+FR9,#puppet_tbl,3
WWLLW ANI_SUPERSLAVE2,4,S4GH3C+FR8,#puppet_tbl,4
WWLLW ANI_SUPERSLAVE2,4,S4GH3C+FR8,#puppet_tbl,5
.word ANI_SETPLYRMODE,MODE_HEADHOLD
WL ANI_SLAVEANIM,#headheld_tbl
WL 4,S4GH3C+FR8
.word ANI_CLROPPMODE,MODE_GHOST
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#missed
WL ANI_CODE,CALL_MISSES
WL 20,S4GH3A+FR4
WL 3,S4GH3A+FR3
WL 3,S4GH3A+FR2
WL 3,S4GH3A+FR1
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#headheld_tbl
.long hrt_3_head_held_anim
.long rzr_3_head_held_anim
.long und_3_head_held_anim
.long yok_3_head_held_anim
.long shn_3_head_held_anim
.long bam_3_head_held_anim
.long dnk_3_head_held_anim
.long 0
.long lex_3_head_held_anim
#puppet_tbl
.long #Bret
.long #Razor
.long #Taker
.long #Yokozuna
.long #Shawn
.long #BamBam
.long #Doink
.long #Adam
.long #Lex
#Bret
LWWW H3GU4A+FR1,25,-34,0
LWWW H3GU4A+FR3,26,-41,0
LWWW H3DU3A+FR3,33,-43,1
LWWW H3DU3A+FR4,50,-33,1
LWWW H3DU3A+FR5,55,-30,1
LWWW H3BF3A+FR1,52,-35,0
.long 0
#Razor
LWWW R3GU4A+FR2,35,-34,1
LWWW R3GU4A+FR3,29,-37,0
LWWW R3GU4A+FR5,41,-48,0
LWWW R3DU3B+FR2,49,-44,1
LWWW R3DU3B+FR4,55,-28,1
LWWW R3BF3A+FR4,56,-34,0
.long 0
#Taker
LWWW U3DU3B+FR2,27,-26,1
LWWW U3DU3B+FR5,16,-34,1
LWWW U3DU3B+FR6,20,-44,1
LWWW U3DU3B+FR8,33,-37,1
LWWW U3DU3B+FR10,49,-23,1
LWWW U4BF3Z+FR5,53,-14,0
.long 0
#Yokozuna
LWWW Y3GU2A+FR1,29,-22,0
LWWW Y3GU2A+FR3,36,-26,0
LWWW Y3GU2A+FR6,16,-42,0
LWWW Y3GU2A+FR9,53,-36,0
LWWW Y3GU2A+FR12,60,-20,0
LWWW Y3BF3A+FR1,50,-23,0
.long 0
#Shawn
LWWW S3GU4A+FR1,30,-33,1
LWWW S3GU4A+FR2,26,-34,0
LWWW S3GU4A+FR4,42,-45,0
LWWW S3GU4A+FR5,43,-39,0
LWWW S3DU3A+FR2,65,-36,1
LWWW S3BF3A+FR1,49,-33,0
.long 0
#BamBam
LWWW B3GU4A+FR3,33,-22,0
LWWW B3GU4A+FR4,25,-33,0
LWWW B3GU4A+FR6,32,-40,0
LWWW B3GU4A+FR7,32,-42,0
LWWW B3DU3A+FR2,56,-27,1
LWWW B3BF3C+FR5,58,-26,0
.long 0
#Doink
LWWW D3DU3A+FR2,29,-26,1
LWWW D3DU3A+FR3,31,-35,1
LWWW D3DU3A+FR5,28,-39,1
LWWW D3DU3A+FR8,35,-44,1
LWWW D3HT3Z+FR1,45,-26,1
LWWW D3BF3A+FR2,38h,-32,0
.long 0
#Adam
.long 0
#Lex
LWWW L3DU3A+FR2,38,-36,1
LWWW L3DU3A+FR4,9,-31,1
LWWW L3DU3A+FR6,24,-45,1
LWWW L3DU3A+FR7,33,-35,1
LWWW L3DU3A+FR9,51,-29,1
LWWW L3BF3B+FR2,60,-35,0
.long 0
#*****************************************************************************
SUBR shn_speed_spinkick_anim
;From head hold
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SET_RPTCOUNT,3 ;2 times
#rpt_loop
.word ANI_CLR_BUTCOUNT
WL 2,S4KI3Q+FR1
WL 2,S4KI3Q+FR2
WL 2,S4KI3Q+FR3
WL 2,S4KI3Q+FR4
WL 2,S4KI3Q+FR5
.word ANI_ATTACK_ON,AMODE_HEADKNEES,50,56,49,50
WL 4,S4KI3Q+FR6
.word ANI_ATTACK_OFF
WWWL ANI_IF_BUTCOUNT_LT,KICKB_COUNT,1,#missed2
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#rpt_loop
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#missed2
;do a spin kick
.word ANI_DETACH
WL ANI_SET_YVEL,60000h
;jump
WL 2,S4SK3Y+FR3
WL 2,S4SK3Y+FR4
WL 2,S4SK3Y+FR5
WL 2,S4SK3Y+FR6
WL 2,S4SK3Y+FR7
.word ANI_ATTACK_ON,AMODE_SPINKICK,22,91-24-20,47,19+20
WL 6,S4SK3Y+FR8
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missed
.word ANI_ZERO_XZVELS
WLW ANI_SET_ZVEL,20000h,AM_ABS
#missed
WL 4,S4SK3Y+FR9
WL 4,S4SK3Y+FR10
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 4,S4SK3Y+FR11
WL 4,S3GU2A+FR9
.word ANI_FACEUP
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#missed2
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,1,#missed3
.ref shn_flying_kick_anim
WL ANI_CHANGEANIM,shn_flying_kick_anim
.word ANI_END
#missed3
WL 3,S4KI3Q+FR8
WL 3,S4KI3Q+FR9
WL 3,S4KI3Q+FR4
WL 3,S4KI3Q+FR3
WL 3,S4KI3Q+FR2
WL 3,S4KI3Q+FR1
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#exit
.word ANI_DETACH
WL 4,S4KI3Q+FR7
WL 4,S4KI3Q+FR8
WL 4,S4KI3Q+FR9
WL 4,S4KI3Q+FR4
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
SUBR shn_knee_fstein_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SET_RPTCOUNT,4 ;3 times
#rpt_loop
.word ANI_CLR_BUTCOUNT
;kick
WL 2,S4KM3C+FR2
WL 2,S4KM3C+FR3
WL 2,S4KM3C+FR4
WL ANI_SET_YVEL,20000h
.word ANI_ATTACK_ON, AMODE_HEADKNEES,27,59,68,20 ;mode,x,y,w,h
WL 2,S4KM3C+FR5
.word ANI_ATTACK_OFF
WL 2,S4KM3C+FR6
WL 2,S4KM3C+FR7
WL 2,S4KM3C+FR8
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,1,#exit
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#rpt_loop
WWWL ANI_IF_BUTCOUNT_LT,KICKB_COUNT,1,#exit
;fstein
WLW ANI_SET_XVEL,68000h,AM_FACE_REL
WL ANI_SET_YVEL,50000h
WL ANI_CHANGEANIM,shn_fstein2_anim
#exit
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#exit2
.word ANI_DETACH
WL ANI_CHANGEANIM,shn_4_bslam_anim
.word ANI_END
#exit2
.word ANI_DETACH
WL 3,S4NM3A+FR5
WL 3,S4NM3A+FR6
WL 3,S4NM3A+FR7
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#******************************************************************************
SUBR shn_4_taunt_anim
.word ANI_SETMODE,MODE_UNINT
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WL 4,S4CO4A+FR1
WL 4,S4CO4A+FR2
WL 4,S4CO4A+FR3
WL 4,S4CO4A+FR4
WL 4,S4CO4A+FR5
WL 4,S4CO4A+FR6
WL 4,S4CO4A+FR7
WL 4,S4CO4A+FR8
WL 4,S4CO4A+FR7
WL 4,S4CO4A+FR6
WL 4,S4CO4A+FR5
WL 4,S4CO4A+FR4
WL 4,S4CO4A+FR3
WL 4,S4CO4A+FR2
WL 4,S4CO4A+FR3
WL 4,S4CO4A+FR4
WL 4,S4CO4A+FR5
WL 4,S4CO4A+FR6
WL 4,S4CO4A+FR7
WL 4,S4CO4A+FR8
WL 4,S4CO4A+FR7
WL 4,S4CO4A+FR6
WL 4,S4CO4A+FR5
WL 4,S4CO4A+FR4
WL 4,S4CO4A+FR3
WL 4,S4CO4A+FR2
WL 4,S4CO4A+FR1
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
WL ANI_CHANGEANIM,shn_stand4_anim
.word ANI_END
#*****************************************************************************
*
* REALLY BITCHIN' #3 TWO-FOOTED RUNNING STOMP
*
#yoff equ 15
SUBR shn_run_stomp_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETSPEED,100h
.word ANI_CLR_BUTCOUNT
.word ANI_SET_RPTCOUNT,4
WL 4,S4MP4D+FR1
.word ANI_OFFSET,0,#yoff,0
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 20,999,100,60,90000h,TGT_GROIN,19,9,0
WL ANI_CODE,no_bk_xvel
WL 4,S4MP4D+FR2
WL 4,S4MP4D+FR3
WL 4,S4MP4D+FR4
WL ANI_SET_YVEL,-20000h
WL ANI_GOTO,#attack
#attack_loop
.word ANI_CLR_BUTCOUNT
WWL ANI_SETLONG,OBJ_GRAVITY,0a000h
WL ANI_SET_YVEL,60000h
WL 2,S4MP4D+FR6
WL 2,S4MP4D+FR7
WL 2,S4MP4D+FR8
WL 2,S4MP4D+FR1
.word ANI_OFFSET,0,#yoff,0
WL 2,S4MP4D+FR2
WL 2,S4MP4D+FR2
WL 4,S4MP4D+FR3
WL 4,S4MP4D+FR4
#attack
.word ANI_ATTACK_ON,AMODE_STOMP,-18,3-12,56,43+12
WWL ANI_WAITHITOPP,12,S4MP4D+FR5
.word ANI_ZEROVELS
WWL ANI_SETLONG,OBJ_GRAVITY,GRAVITY
#atk_on
.word ANI_ATTACK_OFF
;check for a good hit
WL ANI_IFNOTSTATUS,#missed
WWL ANI_IFOPPMODE,~MODE_ONGROUND,#missed
;hit. shake ring & ropes
.word ANI_SHAKEALL,2
.word ANI_SHAKER,30
.word ANI_DEC_RPTCOUNT
WL ANI_IFNOT_RPTCOUNT,#done
;any button will do
WWWL ANI_IF_BUTCOUNT_GE,KICKB_COUNT,2,#attack_loop
WWWL ANI_IF_BUTCOUNT_GE,SKICKB_COUNT,2,#attack_loop
WWWL ANI_IF_BUTCOUNT_GE,PUNCHB_COUNT,2,#attack_loop
WWWL ANI_IF_BUTCOUNT_GE,SPUNCHB_COUNT,2,#attack_loop
;no presses. bounce off.
#done
WL ANI_SET_YVEL,48000h
WLW ANI_SET_XVEL,28000h,AM_FACE_REL
WLW ANI_SET_ZVEL,18000h,AM_ABS
WL 4,S4MP4D+FR2
WL 1,S4MP4D+FR3
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#missed
WL 2,S4MP4D+FR6
WL 2,S4MP4D+FR7
WL 2,S4MP4D+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* Head slams into mat
;From head slam - repeated head slam
SUBR shn_break_face2_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
WL 2,S3CF3Z+FR1
WL ANI_SET_YVEL,80000h
WL 3,S3CF3Z+FR2
WL 3,S3CF3Z+FR3
WL 3,S3CF3Z+FR4
WL 3,S3CF3Z+FR5
WL 3,S3CF3Z+FR6
.word ANI_WAITHITGND
.word ANI_END
* Head slams into mat
;From head slam
SUBR shn_break_face_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
WL 3,S3CF3Z+FR1
WL ANI_SET_YVEL,40000h
WL 3,S3CF3Z+FR2
WL 3,S3CF3Z+FR3
WL 3,S3CF3Z+FR4
WL 3,S3CF3Z+FR5
WL 3,S3CF3Z+FR6
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
.word ANI_ZEROVELS
WL 3,S3CF3Z+FR1
WL 3,S3CF3Z+FR2
WL 3,S3CF3Z+FR3
WL 3,S3CF3Z+FR4
WL 3,S3CF3Z+FR5
WL 3,S3CF3Z+FR6
.word ANI_SETPLYRMODE,MODE_ONGROUND ;So we can stomp him!
WL 3,S3CF3Z+FR1
.word ANI_WAITROLL
WL ANI_CHANGEANIM,shn_faceup_getup_anim
.word ANI_END
#*****************************************************************************
*
* SLIDING KICKTOSS
*
SUBR shn_sliding_kicktoss_anim
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
; .word ANI_IFOPP,W_SHAWN,-1
; WL ANI_IFNOTSTATUS,#missed
.word ANI_STARTATTACK,AT_PUPPET,15
WL 3,S3SK3A+FR1
WL 3,S3SK3A+FR2
LEAPATOPP 16,999,180,100,90000h,TGT_FEET,0,0,0
WL ANI_SET_YVEL,0
.word ANI_FRICTION,4000h
WL 3,S3SK3A+FR3
WL 3,S3SK3A+FR4
WL 3,S3SK3A+FR5
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON,AMODE_PUPPET,-72,0,72,15
.word ANI_XFLIP
WWL ANI_WAITHITOPP,10,S3SK3A+FR6
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#blocked
;hit. toss him over.
WL ANI_CODE,CALL_ANI_AVERAGE_MOVE
.word ANI_SETOPPMODE,MODE_GHOST
.word ANI_ATTACHZ,0,0,-4
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_KEEPATTACHED
.word ANI_FRICTION,05000h
WWLLW ANI_SUPERSLAVE2,10,S3SK3A+FR6,#puppet_tbl,0
WL ANI_CODE,#grunt
.word ANI_XFLIP
WWLLW ANI_SUPERSLAVE2,4,S3KT3A+FR2,#puppet_tbl,1
.word ANI_ZEROVELS
WWLLW ANI_SUPERSLAVE2,4,S3KT3A+FR3,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,3,S3KT3A+FR4,#puppet_tbl,3
WWLLW ANI_SUPERSLAVE2,3,S3KT3A+FR5,#puppet_tbl,4
WWLLW ANI_SUPERSLAVE2,2,S3KT3A+FR6,#puppet_tbl,5
WWLLW ANI_SUPERSLAVE2,2,S3KT3A+FR7,#puppet_tbl,6
;let go
.word ANI_CLROPPMODE,MODE_GHOST
.word ANI_XFLIP_OPP ;106
WL ANI_SLAVEANIM,#release_tbl
WL ANI_OPPOFFSET,#release_offsets
WLW ANI_SET_OPP_XVEL,-20000h,AM_FACE_REL
.word ANI_SHAKEALL,2
.word ANI_SHAKER,35
.word ANI_DAMAGEOPP,D_KICKTOSS
.word ANI_SOUND,0BFh
.word ANI_SOUND,0C1h ;plywood crash #3
.word ANI_DETACH
;and immediately get up
WL 4,S3KT3A+FR8
.word ANI_OFFSET,-9,2,0
WL 4,S3FD3X+FR1
WL 4,S3UC3X+FR6
WL 4,S3KF3C+FR1
WL 4,S3KF3C+FR2
WL 4,S3KF3C+FR3
.word ANI_WAITHITGND
WL 4,S3KF3C+FR4
WL 4,S3KF3C+FR5
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#blocked
.word ANI_SETPLYRMODE,MODE_ONGROUND ;So we can stomp him!
WL 10,S3SK3A+FR6
.word ANI_ZEROVELS
WL 50,S3SK3A+FR6
#missed
.word ANI_SETPLYRMODE,MODE_ONGROUND ;So we can stomp him!
WL 10,S3SK3A+FR6
.word ANI_ZEROVELS
WL 50,S3SK3A+FR6
.word ANI_WAITROLL
WL ANI_CHANGEANIM,shn_faceup_getup_anim
.word ANI_END
#abort
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#grunt WRSND W_SHAWN,GRABFLING_T1,GRABFLING_T2
rets
#puppet_tbl
.long #Bret
.long #Razor
.long #Taker
.long #Yokozuna
.long #Shawn
.long #BamBam
.long #Doink
.long #Adam
.long #Lex
#Bret
.ref H2AM3A,H3FR3A
LWWW H2AM3A+FR1,-20,58,0
LWWW H2AM3A+FR7,58,40,0
LWWW H3FR3A+FR2,40,38,0
LWWW H3FR3A+FR3,26,45,0
LWWW H3FR3A+FR4,14,59,0
LWWW H3FR3A+FR4,-30,55,0
LWWW H3FR3A+FR6,-70,7,0
.long 0
#Razor
.ref R3TD3A
LWWW R3TD3A+FR1,-20,65,0
LWWW R3TD3A+FR2,51,35,0
LWWW R3TD3A+FR4,28,32,0
LWWW R3TD3A+FR5,25,31,0
LWWW R3TD3A+FR6,9,43,0
LWWW R3TD3A+FR7,-25,59,0
LWWW R3TD3A+FR8,-63,29,0
.long 0
#Taker
.ref U4AM4C,U3FH3A
LWWW U4AM4C+FR4,-30,61,0
LWWW U3FH3A+FR1,51,37,1
LWWW U3FH3A+FR2,39,42,1
LWWW U3FH3A+FR3,29,37,1
LWWW U3FH3A+FR4,3,55,1
LWWW U3FH3A+FR5,-32,72,1
LWWW U3FH3A+FR5,-69,36,1
.long 0
#Yokozuna
.ref Y3FL3W
LWWW Y3FL3W+FR1,-20,64,0
LWWW Y3FL3W+FR2,29,60,0
LWWW Y3FL3W+FR3,17,41,0
LWWW Y3FL3W+FR4,17,32,0
LWWW Y3FL3W+FR5,13,38,0
LWWW Y3FL3W+FR6,-23,57,0
LWWW Y3FL3W+FR7,-62,26,0
.long 0
#Shawn
LWWW S3OS3X+FR3,-52,68,1
LWWW S3OS3X+FR4,8,63,1
LWWW S3OS3X+FR5,-8,42,1
LWWW S3OS3X+FR6,1,48,1
LWWW S3OS3X+FR7,2,60,1
LWWW S3OS3X+FR8,-16,66,1
LWWW S3OS3X+FR9,-68,41,1
.long 0
#BamBam
.ref B4TD3B
LWWW B4TD3B+FR2,-23,52,0
LWWW B4TD3B+FR3,28,52,0
LWWW B4TD3B+FR4,34,43,0
LWWW B4TD3B+FR5,24,51,0
LWWW B4TD3B+FR6,15,64,0
LWWW B4TD3B+FR7,-21,65,0
LWWW B4TD3B+FR8,-53,36,0
.long 0
#Doink
.ref D3OS3A,D3FD3E
LWWW D3OS3A+FR1,-13,41,0
LWWW D3OS3A+FR2,14,41,0
LWWW D3OS3A+FR3,7,38,0
LWWW D3OS3A+FR4,3,31,0
LWWW D3OS3A+FR5,4,37,0
LWWW D3OS3A+FR6,-26,44,0
LWWW D3FD3E+FR2,-64,5,0
.long 0
#Adam
.long 0
#Lex
.ref L4AM4B,L3FH3A
; LWWW L4AM4B+FR3,-34,66,0
LWWW L3FH3A+FR1,-10,49,0
LWWW L3FH3A+FR1,36,49,0
LWWW L3FH3A+FR2,45,25,0
LWWW L3FH3A+FR3,28,32,0
LWWW L3FH3A+FR4,17,39,0
LWWW L3FH3A+FR5,-17,39,0
LWWW L3FH3A+FR6,-56,22,0
.long 0
#release_tbl
.ref hrt_hitonground_anim,rzr_hitonground_anim
.ref und_hitonground_xflip_anim
.ref shn_hitonground_xflip_anim
.ref bam_hitonground_anim,dnk_hitonground_anim
.ref lex_hitonground_anim
.long hrt_hitonground_anim,rzr_hitonground_anim
.long und_hitonground_xflip_anim
.long yok_hitonground_anim
.long shn_hitonground_xflip_anim
.long bam_hitonground_anim,dnk_hitonground_anim
.long 0,lex_hitonground_anim
#release_offsets
; X Y
.word 40,0 ;Bret
.word 10,0 ;Razor
.word 40,0 ;Taker
.word 20,0 ;Yokozuna
.word 40,0 ;Shawn
.word 40,0 ;BamBam
.word 40,0 ;Doink
.word 40,0 ;Adam
.word 20,0 ;Lex
#*****************************************************************************
*
* GRAB OPPONENT'S ARM AND BREAK IT (ouch)
*
SUBR shn_break_arm_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
WL 4,S4FG3A+FR1
WL 4,S4FG3A+FR2
;temp! Don't throw the attack if we don't know the guy.
.word ANI_IFOPP,W_SHAWN,-1
WL ANI_IFNOTSTATUS,#missed
.word ANI_ATTACK_ON,AMODE_ARMBREAK,31,69,42,32
WL 4,S4FG3A+FR3
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
WWL ANI_IFOPPMODE,~MODE_PUPPET,#missed
;got him
.word ANI_RAWSOUND,2055 ;big cheer #1
.word ANI_ATTACHZ,0,0,-4
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_KEEPATTACHED
WWLLW ANI_SUPERSLAVE2,3,S3GA3A+FR1,#puppet_tbl,0
WWLLW ANI_SUPERSLAVE2,3,S3GA3A+FR2,#puppet_tbl,1
; WWLLW ANI_SUPERSLAVE2,3,S3GA3A+FR3,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,3,S3GA3A+FR4,#puppet_tbl,3
WWLLW ANI_SUPERSLAVE2,16,S3GA3A+FR5,#puppet_tbl,4
WWLLW ANI_SUPERSLAVE2,2,S3GA3A+FR6,#puppet_tbl,5
WWLLW ANI_SUPERSLAVE2,2,S3GA3A+FR7,#puppet_tbl,6
WWLLW ANI_SUPERSLAVE2,2,S3GA3A+FR8,#puppet_tbl,7
;snap!
; .word ANI_SOUND,1Bh ;smak
.word ANI_SOUND,33h ;bone crunch #0
WL ANI_CODE,CALL_SPECIAL_MOVE
WWLLW ANI_SUPERSLAVE2,1,S3GA3A+FR9,#puppet_tbl,8
WL ANI_SLAVEANIM,#react_tbl
.word ANI_DETACH
WL 9,S3GA3A+FR9
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#missed
WL 4,S4FG3A+FR2
WL 4,S4FG3A+FR1
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#puppet_tbl
.long #Bret
.long #Razor
.long #Taker
.long #Yokozuna
.long #Shawn
.long #BamBam
.long #Doink
.long #Adam
.long #Lex
#Bret
.long 0
#Razor
.long 0
#Taker
.long 0
#Yokozuna
.long 0
#Shawn
LWWW S2PU3C+FR3,33,-5,0
LWWW S3AB3A+FR1,47,4,0
LWWW S3AB3A+FR2,36,-2,0
LWWW S3AB3A+FR3,42,-4,0
LWWW S3AB3A+FR3,45,-3,0
LWWW S3AB3A+FR3,45,-2,0
LWWW S3AB3A+FR3,39,-6,0
LWWW S3AB3A+FR3,39,-5,0
LWWW S3AB3A+FR4,33,5,0
#BamBam
.long 0
#Doink
.long 0
#Adam
.long 0
#Lex
.long 0
#react_tbl
.long 0,0
.long 0,0
.long shn_arm_broken_anim,0
.long 0,0,0
#*****************************************************************************
*
* Special functions
*
#*********
;zeros the wrestler's x-velocity if he's flying backwards. Useful just
; after a LEAPAT.
SUBR no_bk_xvel
move *a13(OBJ_XVEL),a0,L
move *a13(FACING_DIR),a14
btst MOVE_RIGHT_BIT,a14
jrnz #abs
neg a0
#abs
move a0,a0
jrnn #ok
#clrvel
clr a14
move a14,*a13(OBJ_XVEL),L
#ok
rets
#*****************************************************************************
.bss #opp_xvel,32
SUBR shn_3_head_hold2_anim
;Head hold when standing next to player
;No collisions possible
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
;#4 grab to head hold
WL 2,S4GH3C+FR1
WL 2,S4GH3C+FR2
WL 2,S4GH3C+FR3
.word ANI_ATTACK_ON, AMODE_PUPPET3,32,60,62,45 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,7,S4GH3C+FR3
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
WL ANI_GOTO,#gothim
SUBR shn_3_head_hold_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
;#4 grab to head hold
.word ANI_STARTATTACK,AT_LEAPING,6
WL 3,S4GH3C+FR1
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 9,999,60,40,90000h,TGT_HEAD,56,93,8
WL 3,S4GH3C+FR2
.word ANI_ATTACK_ON, AMODE_PUPPET,26,80,49,23 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,3,S4GH3C+FR3
WWL ANI_WAITHITOPP,6,S4GH3C+FR3
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missed
#gothim
WL ANI_CODE,CALL_SETUP
.word ANI_ATTACHZ,0,0,-4 ;x & y don't matter.
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_KEEPATTACHED
WWLLW ANI_SUPERSLAVE2,4,S4GH3C+FR3,#puppet_tbl,0
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WWLLW ANI_SUPERSLAVE2,4,S4GH3C+FR4,#puppet_tbl,1
WWLLW ANI_SUPERSLAVE2,4,S4GH3C+FR5,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,4,S4GH3C+FR8,#puppet_tbl,3
.word ANI_SETPLYRMODE,MODE_HEADHOLD
WL ANI_SLAVEANIM,#headheld_tbl
WL 4,S4GH3C+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#missed
WL ANI_CODE,CALL_MISSES
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 15,S4GH3C+FR3
WL 3,S4GH3C+FR2
WL 3,S4GH3C+FR1
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#puppet_tbl
.long #Bret
.long #Razor
.long #Taker
.long #Yokozuna
.long #Shawn
.long #BamBam
.long #Doink
.long #Adam
.long #Lex
#Bret
LWWW H2AH3A+FR1,37,18,0
LWWW H3HB3A+FR3,37,5,0
LWWW H3HB3A+FR2,30,-3,0
LWWW H3HB3A+FR1,47,-31,0
.long 0
#Razor
LWWW R3HB3A+FR3,48,-1,0
LWWW R3HB3A+FR3,48,3,0
LWWW R3HB3A+FR2,47,-14,0
LWWW R3BF3A+FR1,60,-32,0
.long 0
#Taker
LWWW U4AM4C+FR2,38,7,0
LWWW U4BF3A+FR2,36,15,0
LWWW U4BF3A+FR3,6,0,0
LWWW U4BF3Z+FR3,54,-19,0
.long 0
#Yokozuna
LWWW Y3LB3A+FR2,42,9,0
LWWW Y3LB3A+FR2,42,13,0
LWWW Y3LB3A+FR9,34,-12,0
LWWW Y3BF3A+FR1,58,-20,0
.long 0
#Shawn
LWWW S4AH3D+FR5,51,5,0
LWWW S4BF3A+FR2,40,-5,0
LWWW S4BF3A+FR3,18,-19,0
LWWW S3BF3A+FR1,40,-34,0
.long 0
#BamBam
LWWW B4BF3A+FR1,44,12,0
LWWW B4BF3A+FR1,44,16,0
LWWW B3HB3A+FR2,39,-20,0
LWWW B3BF3C+FR5,63,-24,0
.long 0
#Doink
LWWW D3AK3A+FR3,27,10,0
LWWW D3AK3A+FR3,27,14,0
LWWW D3AK3A+FR2,45,-3,0
LWWW D3BF3A+FR1,56,-30,0
.long 0
#Adam
.long 0
#Lex
LWWW L2AH2A+FR3,27,3,0
LWWW L3BF3A+FR1,46,6,1
LWWW L3BF3A+FR2,41,-11,1
LWWW L3BF3B+FR2,49,-36,0
.long 0
#headheld_tbl
.long hrt_3_head_held_anim
.long rzr_3_head_held_anim
.long und_3_head_held_anim
.long yok_3_head_held_anim
.long shn_3_head_held_anim
.long bam_3_head_held_anim
.long dnk_3_head_held_anim
.long 0
.long lex_3_head_held_anim
#*****************************************************************************
*
* FLIP-SLAM
SUBR shn_flipslam_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETSPEED,100h
;first, if we're holding his head, let him go.
WWL ANI_IFOPPMODE,~MODE_HEADHELD,#no_hdrel
.word ANI_DETACH
#no_hdrel
.word ANI_STARTATTACK,AT_LEAPING,11
WL 3,S4TD3F+FR1
LEAPATOPP 10,999,90,60,90000h,TGT_CHEST,8,68,-10
WL ANI_CODE,#check_xvel
.word ANI_SETPLYRMODE,MODE_INAIR
WL 4,S4TD3F+FR2
WL 4,S4TD3F+FR3
.word ANI_ATTACK_ON,AMODE_PUPPET,-13,56,28,39 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,4,S4TD3F+FR4
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb
;got him.
WLW ANI_SET_XVEL,40000h,AM_FACE_REL
WL ANI_SET_YVEL,58000h ;Y
WL ANI_CODE,ckzpos ;Z
WWL ANI_SETLONG,OBJ_GRAVITY,0B000h
.word ANI_ATTACHZ,0,0,-10 ;x & y don't matter.
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_KEEPATTACHED
WWLLW ANI_SUPERSLAVE2,6,S4TD3F+FR4,#puppet_tbl,1
WWLLW ANI_SUPERSLAVE2,4,S4TD3F+FR5,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,4,S4TD3F+FR6,#puppet_tbl,3
WWLLW ANI_SUPERSLAVE2,3,S4TD3F+FR7,#puppet_tbl,4
WWLLW ANI_SUPERSLAVE2,2,S4TD3F+FR8,#puppet_tbl,5
WWLLW ANI_SUPERSLAVE2,2,S4TD3F+FR9,#puppet_tbl,6
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WWL ANI_SETLONG,OBJ_GRAVITY,GRAVITY
WL ANI_CODE,HIT_THE_MAT
.word ANI_DAMAGEOPP,D_FLIPSLAM
.word ANI_SHAKER,40
.word ANI_SHAKEALL,2
WWLLW ANI_SUPERSLAVE2,4,S3OS3Z+FR10,#puppet_tbl,7
WL ANI_SLAVEANIM,#release_tbl
WL ANI_CODE,#set_opp_facing
.word ANI_DETACH
.word ANI_XFLIP
WL ANI_CHANGEANIM,shn_hitonground_anim
#missedb
;blocked. bounce off.
WL ANI_CODE,#reverse_xvel
#missed
WL ANI_CODE,CALL_MISSES
WL 3,S4TD3F+FR5
WL 3,S4TD3F+FR6
WL 3,S4TD3F+FR7
WL 3,S4TD3F+FR8
WL 3,S4TD3F+FR9
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,SMALL_BOUNCE
.word ANI_SHAKER,35
.word ANI_SHAKEALL,1
.word ANI_XFLIP
WL ANI_CHANGEANIM,shn_hitonground_anim
**********
;halve and reverse xvel
SUBRP #reverse_xvel
move *a13(OBJ_XVEL),a14,L
neg a14
sra 1,a14
move a14,*a13(OBJ_XVEL),L
rets
**********
;Don't leap backwards. If the player tries it, give him a small
; forward velocity instead. Sucker. (and clear his Z too)
SUBRP #check_xvel
move *a13(FACING_DIR),a14
btst MOVE_RIGHT_BIT,a14
jrnz #facing_right
;facing_left
move *a13(OBJ_XVEL),a0,L
jrn #done0
movi [-2,0],a0
jruc #set
#facing_right
move *a13(OBJ_XVEL),a0,L
jrp #done0
movi [2,0],a0
#set
move a0,*a13(OBJ_XVEL),L
clr a0
move a0,*a13(OBJ_ZVEL),L
#done0
rets
**********
;for whatever reason, we need to reverse the victim's X-facing before
; we let him go or else the roll-over won't work properly. Voodoo...
SUBRP #set_opp_facing
move *a13(ATTACH_PROC),a10,L
jrz #done1
move *a10(FACING_DIR),a4
xori MOVE_LEFT|MOVE_RIGHT,a4
move a4,*a10(FACING_DIR)
#done1
rets
#puppet_tbl
.long #Bret
.long #Razor
.long #Taker
.long #Yokozuna
.long #Shawn
.long #BamBam
.long #Doink
.long #Adam
.long #Lex
#Bret
LWWW H3HB3A+FR2,5,9,0
LWWW H3HB3A+FR3,10,9,0
LWWW H3UC3X+FR1,-3,15,0
LWWW H3UC3X+FR2,-29,3,0
LWWW H3UC3X+FR3,-48,-5,0
LWWW H3UC3X+FR4,-38,4,0
LWWW H3UC3X+FR5,1,42,0
LWWW H3UC3X+FR6,59,38,0
#Razor
LWWW R3HB3A+FR2,7,0,0
LWWW R3HB3A+FR3,2,7,0
LWWW R3FD3B+FR1,-3,25,0
LWWW R3FD3B+FR2,-25,8,0
LWWW R3FD3B+FR3,-42,3,0
LWWW R3FD3B+FR4,-48,10,0
LWWW R3FD3B+FR5,-23,35,0
LWWW R3HG3B+FR1,54,42,0
#Taker
LWWW U3TBSM+FR9,-3,11,1
LWWW U3FD3X+FR1,-4,17,1
LWWW U3FD3X+FR2,-10,15,1
LWWW U3FD3X+FR3,-11,9,1
LWWW U3FD3X+FR4,-18,-5,1
LWWW U3FD3X+FR5,6,24,1
LWWW U3FD3X+FR6,28,50,1
LWWW U3GP3X+FR1,65,40,1
#Yokozuna
LWWW Y4AM4A+FR3,1,-1,0
LWWW Y4AM4A+FR1,8,10,0
LWWW Y3FD3A+FR1,-1,13,0
LWWW Y3FD3A+FR2,-35,25,0
LWWW Y3FD3A+FR3,-42,14,0
LWWW Y3FD3A+FR4,-41,19,0
LWWW Y3FD3A+FR5,-17,44,0
LWWW Y3FD3N+FR1,46,57,0
#Shawn
LWWW S4BF3A+FR2,8,12,0
LWWW S2AH3A+FR1,6,14,0
LWWW S3UC3X+FR1,4,20,0
LWWW S3UC3X+FR2,-17,3,0
LWWW S3UC3X+FR4,-34,-14,0
LWWW S3UC3X+FR5,-21,4,0
LWWW S3UC3X+FR6,21,42,0
LWWW S3FD3X+FR1,51,38,0
#BamBam
LWWW B3DR3B+FR5,15,8,0
LWWW B4AH4A+FR6,-3,15,0
LWWW B4UC3B+FR1,-3,27,0
LWWW B4UC3B+FR2,-10,3,0
LWWW B4UC3B+FR3,-35,-16,0
LWWW B4UC3B+FR4,-34,-15,0
LWWW B4UC3B+FR5,-11,38,0
LWWW B4UC3B+FR6,54,45,0
#Doink
LWWW D3AK3A+FR2,8,8,0
LWWW D3UC3A+FR1,1,10,0
LWWW D3UC3A+FR2,-1,21,0
LWWW D3UC3A+FR3,-11,11,0
LWWW D3UC3A+FR5,-37,-5,0
LWWW D3UC3A+FR6,-24,-1,0
LWWW D3UC3A+FR7,13,40,0
LWWW D3UC3A+FR9,63,38,0
#Adam
.long 0
#Lex
LWWW L4GH3B+FR4,-19,6,0
LWWW L3UC3X+FR1,-4,12,0
LWWW L3UC3X+FR2,-6,7,0
LWWW L3UC3X+FR3,-27,-8,0
LWWW L3CP3X+FR2,-48,-19,1
LWWW L3CP3X+FR3,-42,9,1
LWWW L3CP3X+FR4,-13,42,1
LWWW L3UC3X+FR8,62,48,0
#release_offsets
; X Y
.word 0,0 ;Bret
.word 0,0 ;Razor
.word 0,0 ;Taker
.word 0,0 ;Yokozuna
.word 0,0 ;Shawn
.word 0,0 ;BamBam
.word 25,0 ;Doink
.word 0,0 ;Adam
.word 0,0 ;Lex
#release_tbl
.long hrt_break_neck_anim,rzr_break_neck4_anim
.long und_break_neck_anim,yok_break_neck_anim
.long shn_fall_back3_anim,bam_break_neck4_anim
.long dnk_break_neck_anim,0,lex_break_neck4_anim
******************************************************************************
.end