wwf-wrestlemania/SHNSEQ3.ASM

4235 lines
96 KiB
NASM
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters!

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

**************************************************************
*
* Software: Jamie Rivett
* Initiated: 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 "bretimg.h"
.include "razorimg.h"
.include "takerimg.h"
.include "yokoimg.h"
.include "shawnimg.h"
.include "bamimg.h"
.include "doinkimg.h"
.include "leximg.h"
.include "damage.equ"
******************************************************************************
* EXTERNAL REFERENCES
.REF BROKEN_ARM_BLOOD
.ref MOVE_NAME_ANNC
;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,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,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
.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 SMALL_BOUNCE
.ref HIT_THE_MAT,CALL_SPECIAL_MOVE,CALL_MISSES,CALL_SETUP
.ref CALL_MISS_YOKO,choose_2or4,CALL_THROWN_OUT,CALL_NASTY_MOVE
.ref CALL_ANI_AVERAGE_MOVE,clear_opp_counts
.ref DO_COMBO_MESS,shn_combo_knee_anim,DO_GRUNT
.ref shn_combo_flying_kick_anim,CALL_OTHER_AVERAGE,DO_NONO
.ref MAKE_HIM_SCREAM
******************************************************************************
* SYMBOLS DEFINED IN THIS FILE
******************************************************************************
* EQUATES FOR THIS FILE
#*****************************************************************************
*
* GERMAN SUPLEX (combo version)
SUBR shn_combo_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_grabxc
WWL ANI_IFOPPMODE,MODE_HEADHOLD,#front_grabxc
WWL ANI_IFOPPMODE,MODE_ONGROUND,#front_grabxc
WWL ANI_IFOPPMODE,MODE_DEAD,#front_grabxc
WWWL ANI_IFNOTROPE,RC_FRONT,200,#back_grabxc
#front_grabxc
.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,#commonxc
#back_grabxc
;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_grabxc
.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
#commonxc
.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,#missedxc
WL ANI_IFBLOCKED,#missedxc
;got him
.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_SHAKEALL,2
.word ANI_SHAKER,40
.word ANI_DAMAGEOPP,D_GSUPLEX,RD_GSUPLEX
.WORD ANI_INC_COMBO
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL 2,S3SG3A+FR6
WWLLW ANI_SUPERSLAVE2,3,S3SG3A+FR7,puppet_tbl,5
.word ANI_SOUND,9bh ;neck break (5-7 ticks late)
WWLLW ANI_SUPERSLAVE2,3,S3SG3A+FR8,puppet_tbl,6
WL ANI_SLAVEANIM,rollout_tbl1
.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
#missedxc
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL ANI_CODE,CALL_MISSES
WL 9,S3BH3A+FR7
WL 4,S3BH3A+FR8
.word ANI_XFLIP
WL ANI_CODE,choose_2or4
WL ANI_IFSTATUS,#4xc
WL 1,S2ST2C+FR1
.word ANI_FACEUP
WL ANI_GOTO,#2xc
#4xc
WL 1,S4ST4C+FR1
.word ANI_FACEDOWN
#2xc
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
#*****************************************************************************
*
* 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
.word ANI_STARTATTACK,AT_LEAPING,6
.word ANI_PAUSE,2
WWL ANI_IFOPPMODE,MODE_HEADHELD,#front_grab0
WWL ANI_IFOPPMODE,MODE_HEADHOLD,#front_grab0
WWL ANI_IFOPPMODE,MODE_ONGROUND,#front_grab0
WWL ANI_IFOPPMODE,MODE_DEAD,#front_grab0
WWWL ANI_IFNOTROPE,RC_FRONT,200,#back_grab0
#front_grab0
.word ANI_XFLIP
#normal
; 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_CODE,#no_bk_xvel
WL ANI_GOTO,#common
#back_grab0
;check for a likely hit. If not, abort and do a front grab instead.
.word ANI_ATTACK_ON,AMODE_HITCHECK,12,47,49+8,23
.word ANI_PAUSE,1
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_4,2,2
WL ANI_IFNOTSTATUS,#front_grab0
WL ANI_IFBLOCKED,#front_grab0
;We need to pause opponent here!
WL ANI_CODE,#pause_opp
LEAPATOPP 15,140,140,40,90000h,TGT_CHEST,-40,0,0
WL ANI_SET_YVEL,0000h
WL 3,S3BH3A+FR1
WL 2,S3BH3A+FR2
WL 3,S3BH3A+FR3
WL 2,S3BH3A+FR4
WL 3,S3BH3A+FR5
WL 2,S3BH3A+FR6
.word ANI_ZERO_XZVELS
.word ANI_FACE,MOVE_DOWN|MOVE_LEFT
;Spin around move always works
.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,#missedb
WL ANI_GOTO,#slam
#no_bk_xvel
;zeros the wrestler's x-velocity if he's flying backwards. Useful just
;after a LEAPAT.
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
move a14,*a13(OBJ_ZVEL),L
#ok
rets
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
.word ANI_STARTATTACK,AT_LEAPING,6
.word ANI_PAUSE,2
WWL ANI_IFOPPMODE,MODE_HEADHELD,#front_grab
WWL ANI_IFOPPMODE,MODE_HEADHOLD,#front_grab
WWL ANI_IFOPPMODE,MODE_ONGROUND,#front_grab
WWL ANI_IFOPPMODE,MODE_DEAD,#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_ATTACK_ON,AMODE_HITCHECK,12,47,49+8,23
.word ANI_PAUSE,1
.word ANI_ATTACK_OFF
; .WORD ANI_ADD_MOVE,MOVE_C_4,2,2
WL ANI_IFNOTSTATUS,#front_grab
WL ANI_IFBLOCKED,#front_grab
;We need to pause opponent here!
WL ANI_CODE,#pause_opp
LEAPATOPP 15,140,140,40,90000h,TGT_CHEST,-40,0,0
WL ANI_SET_YVEL,0000h
WL 3,S3BH3A+FR1
WL 2,S3BH3A+FR2
WL 3,S3BH3A+FR3
WL 2,S3BH3A+FR4
WL 3,S3BH3A+FR5
WL 2,S3BH3A+FR6
.word ANI_ZERO_XZVELS
.word ANI_FACE,MOVE_DOWN|MOVE_LEFT
;Spin around move always works
.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,#missedb
WL ANI_GOTO,#slam
#common
.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,#missedb
#slam ;got him
.WORD ANI_ADD_MOVE,MOVE_C_4,2,2
WL ANI_CODE,MAKE_HIM_SCREAM
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
.word ANI_DRAW_NAME,12
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_SHAKEALL,2
.word ANI_SHAKER,40
.word ANI_DAMAGEOPP,D_GSUPLEX,RD_GSUPLEX
WL 2,S3SG3A+FR6
WWLLW ANI_SUPERSLAVE2,3,S3SG3A+FR7,puppet_tbl,5
.word ANI_SOUND,9bh ;neck break (5-7 ticks late)
WWLLW ANI_SUPERSLAVE2,3,S3SG3A+FR8,puppet_tbl,6
WL ANI_SLAVEANIM,rollout_tbl1
.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
#missedb
WL 10,S3BH3A+FR7
#missed
WL ANI_CODE,CALL_MISSES
WL 10,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
OANIMODE equ 0 ;word
OANIBASE equ OANIMODE+10h ;long
OANIPC equ OANIBASE+20h ;long
OANICNT equ OANIPC+20h ;word
OCUR_FRAME equ OANICNT+10h ;long
#pause_opp
;Cause opponent to pause on whatever frame he is on - no rotating allowed!
move *a13(WHOIHIT),a0,L
movk 25,a14
addi ANIMODE,a0
move a14,*a0(OANICNT)
;Turn unint on for opponent
move *a0(OANIMODE),a14
ori MODE_UNINT,a14
move a14,*a0(OANIMODE)
rets
#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_tbl1
.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_SETPLYRMODE,MODE_INAIR
.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
LEAPATOPP 10,999,120,55,90000h,TGT_HEAD,17-20,35,0
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_combo_fstein_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETSPEED,100h
.word ANI_CLR_BUTCOUNT
WL 4,S3FL3X+FR1
WL 4,S3FL3X+FR2
.word ANI_OFFSET,0,45,0
WL 1,S3ZI3A+FR1
LEAPATOPP 35,999,120,55,90000h,TGT_HEAD,17-20,35,0
WL 4,S3ZI3A+FR1
.word ANI_ATTACK_ON,AMODE_PUPPET,10-36,0,76,53 ;mode,x,y,w,h
WL ANI_CODE,#store_opp_xvel
WWL ANI_WAITHITOPP,10,S3ZI3A+FR2
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed_c
WL ANI_IFBLOCKED,#missedb_c
.word ANI_CLR_STATUS
;hit
WL ANI_CODE,#merge_xvels
.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
.WORD ANI_INC_COMBO
WWWL ANI_IFROPE,RC_BACK,160,#throw_him_out_c
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_SHAKEALL,2
.word ANI_SHAKER,40
.word ANI_DAMAGEOPP,D_FSTEIN,RD_FSTEIN
.word ANI_OPP_GETUP,-300
WWLLW ANI_SUPERSLAVE2,4,S3ZI3A+FR11,#puppet_tbl,9
WL ANI_OPPOFFSET,#release_offsets
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
WWWL ANI_IF_BUTCOUNT_LT,BLOCKB_COUNT,1,#NO_STOMPING1
WL ANI_CHANGEANIM,shn_combo_run_stomp_anim
#NO_STOMPING1
.word ANI_OPP_GETUP,5
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#missedb_c
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL ANI_GOTO,#missedb
#missed_c
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL ANI_GOTO,#missed
#throw_him_out_c
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL ANI_GOTO,#throw_him_out
SUBR shn_fstein_anim
.word ANI_SETPLYRMODE,MODE_INAIR
.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_HEADHOLD,#hdrel
WWL ANI_IFOPPMODE,~MODE_HEADHELD,#no_hdrel
#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
LEAPATOPP 10,999,120,55,90000h,TGT_HEAD,17-20,35,0
WL ANI_CODE,no_bk_xvel
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
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
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
.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
.word ANI_DRAW_NAME,4
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_ZEROVELS ;in case we picked up some Xvel from ropes
.word ANI_SHAKEALL,2
.word ANI_SHAKER,40
.word ANI_DAMAGEOPP,D_FSTEIN,RD_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,-0A0000h,90000h,0h ;x,y,z
WL ANI_SLAVEANIM,#flyout_tbl
WL ANI_OPPOFFSET,release_table2
WL ANI_CODE,CALL_THROWN_OUT
.word ANI_DETACH
WL 3,S3ZI3A+FR8
WL 4,S3ZI3A+FR9
WL 4,S3ZI3A+FR10
WL 4,S3ZI3A+FR11
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
release_table2
; X Y
.word 8,8 ;Bret
.word 8,8 ;Razor
.word 0,8 ;Taker
.word 0,8 ;Yokozuna
.word 8,12 ;Shawn
.word 0,0 ;BamBam
.word 0,8 ;Doink
.word 0,0 ;Adam
.word 0,0 ;Lex
;#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,70000h,40000h,0 ;x,y,z vels
; WLLL ANI_SETOPPVELS,20000h,20000h,0 ;x,y,z vels
WL ANI_CODE,CALL_MISSES
.word ANI_SOUND,018h ;Hard hit
.word ANI_ZERO_XZVELS
WL ANI_SET_YVEL,48000h
WLW ANI_SET_XVEL,-30000h,AM_FACE_REL
WL 5,S3UC3X+FR4 ;12
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
WL ANI_CODE,HIT_THE_MAT
; WL 3,S3UC3X+FR4
; WL 3,S3UC3X+FR5
; WL 3,S3UC3X+FR6
.word ANI_XFLIP
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
.word ANI_SETPLYRMODE,MODE_ONGROUND
.word ANI_SETSPEED,100h
WL 1,S3CP3B+FR1
WL ANI_SET_YVEL,40000h
WL ANI_CODE,ckzpos
WL 2,S3CP3B+FR1
WL 3,S3CP3B+FR2
WL 3,S3CP3B+FR3
WL 3,S3CP3B+FR4
WL 3,S3CP3B+FR5
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
.word ANI_ZEROVELS
WL 3,S3CP3B+FR6
; WL 30,S3CP3B+FR7
WL 3,S3CP3B+FR7
.word ANI_WAITROLL
WL ANI_CHANGEANIM,shn_faceup_getup_anim
#missed
;uh, for now just abort.
WL ANI_CODE,CALL_MISSES
.word ANI_WAITHITGND
.word ANI_SHAKEALL,2
.word ANI_SHAKER,35
WL ANI_CODE,HIT_THE_MAT
; WL 3,S3UC3X+FR4
; WL 3,S3UC3X+FR5
; WL 3,S3UC3X+FR6
.word ANI_XFLIP
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
.word ANI_SETPLYRMODE,MODE_ONGROUND
.word ANI_SETSPEED,100h
WL 1,S3CP3B+FR1
WL ANI_SET_YVEL,40000h
WL ANI_CODE,ckzpos
WL 2,S3CP3B+FR1
WL 3,S3CP3B+FR2
WL 3,S3CP3B+FR3
WL 3,S3CP3B+FR4
WL 3,S3CP3B+FR5
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
.word ANI_ZEROVELS
WL 3,S3CP3B+FR6
WL 3,S3CP3B+FR7
.word ANI_WAITROLL
WL ANI_CHANGEANIM,shn_faceup_getup_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 (combo version)
SUBR shn_combo_spinkick_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SET_RPTCOUNT,4 ;5 times
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 11,999,30,50,90000h,TGT_HEAD,5,78,0
;jump
WL 2,S4SK3Y+FR3
WL 3,S4SK3Y+FR4
#spin_loop
.word ANI_CLR_BUTCOUNT
WL 3,S4SK3Y+FR5
WL 3,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
WL ANI_IFNOTSTATUS,#missed_c
.WORD ANI_INC_COMBO
WL ANI_CODE,CALL_ANI_AVERAGE_MOVE
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,20000H,18000h,0h ;x,y,z vels
WLW ANI_SET_XVEL,10000h,AM_FACE_REL
WL ANI_SET_YVEL,30000h
WLW ANI_SET_ZVEL,0h,AM_ABS
WL 2,S4SK3Y+FR7
WL 1,S4SK3Y+FR6
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#spin_loop
WLW ANI_SET_XVEL,28000h,AM_FACE_REL
WL 3,S4SK3Y+FR9
WL 4,S4SK3Y+FR10
WL 3,S4SK3Y+FR11
WL 4,S3GU2A+FR9
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#NO_SLAM
WL ANI_CHANGEANIM,shn_combo_hiptoss_anim
#NO_SLAM
WWWL ANI_IF_BUTCOUNT_LT,KICKB_COUNT,1,#NO_KNEE
WL ANI_CHANGEANIM,shn_combo_flying_kick_anim
#NO_KNEE
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#NO_SUPLEX
WL ANI_CHANGEANIM,shn_combo_gsuplex_anim
#NO_SUPLEX
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,1,#EXIT_MOVE
WL ANI_CHANGEANIM,shn_combo_knee_anim
#EXIT_MOVE
.word ANI_DETACH
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL ANI_CODE,CALL_MISSES
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#missed_c
.word ANI_DETACH
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL ANI_CODE,CALL_MISSES
#cont_c
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 3,S4SK3Y+FR9
WL 3,S4SK3Y+FR10
WL 3,S4SK3Y+FR11
WL 3,S3GU2A+FR9
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* SPIN KICK
SUBR shn_spinkick_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.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
.WORD ANI_ADD_MOVE,MOVE_C_5,1,1
WWL ANI_SLIDE_BACK,30h,-70000h,#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
#*****************************************************************************
*
* SPIN KICK - Against TB attacks
SUBR shn_spinkick_TB_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.word ANI_SETPLYRMODE,MODE_INAIR2
.word ANI_STARTATTACK,AT_LEAPING,12
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
WL 3,S4SK3Y+FR3
WL ANI_SET_YVEL,70000h
WLW ANI_SET_XVEL,-20000h,AM_FACE_REL
WL 3,S4SK3Y+FR4
WL 3,S4SK3Y+FR5
WL 3,S4SK3Y+FR6
.word ANI_ATTACK_ON,AMODE_SPINKICK,12,91-34,57,39
WL 3,S4SK3Y+FR7
WL 8,S4SK3Y+FR8
.word ANI_ATTACK_OFF
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_SETPLYRMODE,MODE_NORMAL
WL 3,S4SK3Y+FR9
WL 3,S4SK3Y+FR10
WL 3,S4SK3Y+FR11
WL 3,S3GU2A+FR9
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* 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_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.word ANI_SET_RPTCOUNT,3 ;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_CODE,no_bk_xvel
WL ANI_SET_YVEL,30000h
WL 2,S4KI3Q+FR2
WL 2,S4KI3Q+FR3
WL 2,S4KI3Q+FR4
WL 2,S4KI3Q+FR5
.word ANI_ATTACK_ON,AMODE_SHNSPDKIK,40,76,49,30
WL 4,S4KI3Q+FR6
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_6,2,2
; WL ANI_IFBLOCKED,#missedb
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
;#missedb
;;miss
; .word ANI_ZERO_XZVELS
; .word ANI_WAITHITGND
; .word ANI_ZEROVELS
; WL 15,S4KI3Q+FR6
; 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_ATTACK_ON,AMODE_SHNSPDKIK,40,76,49,30
WL 4,S4KI3Q+FR6
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_6,2,2
WL ANI_IFBLOCKED,#missedb2
WL ANI_IFSTATUS,#gothim
#missedb2
;miss
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 15,S4KI3Q+FR6
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 ANI_CODE,CALL_ANI_AVERAGE_MOVE
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
; 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_ATTACK_ON,AMODE_SHNSPDKIK2,40,76,49,30
WL 4,S4KI3Q+FR6
.word ANI_ATTACK_OFF
WL ANI_IFSTATUS,#gothim2
;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
#gothim2
.word ANI_ZERO_XZVELS
WL ANI_CODE,#set_opp_xy
WL ANI_CODE,CALL_ANI_AVERAGE_MOVE
.word ANI_DRAW_NAME,37
WL 2,S4KI3Q+FR7
WL 2,S4KI3Q+FR8
WL 2,S4KI3Q+FR9
#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
SUBRP #set_opp_xy
move *a13(WHOIHIT),a0,L
move *a0(PLYRMODE),a14
cmpi MODE_BLOCK,a14
jreq #noz
movi -[2,0],a14
move a14,*a0(OBJ_ZVEL),L
#noz 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
#*****************************************************************************
*
* HIPTOSS (combo version)
*
SUBR shn_combo_hiptoss_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
; 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
.word ANI_SET_RPTCOUNT,4 ;5 times
.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_c
WL ANI_IFBLOCKED,#missed_c
WL ANI_CODE,CALL_OTHER_AVERAGE
WL ANI_CODE,DO_GRUNT
.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_c
WWLLW ANI_SUPERSLAVE2,2,S4GS3C+FR2,#puppet_tbl,0
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
.word ANI_CLR_BUTCOUNT
#bslam_loop
WWLLW ANI_SUPERSLAVE2,4,S4GS3C+FR8,#puppet_tbl,5
WWLLW ANI_SUPERSLAVE2,4,S4GS3C+FR9,#puppet_tbl,6
;impact
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKEALL,2
.word ANI_SHAKER,30
.word ANI_DAMAGEOPP,D_HIPTOSS,RD_HIPTOSS
.word ANI_OPP_GETUP,300
.WORD ANI_INC_COMBO
WWLLW ANI_SUPERSLAVE2,4,S4GS3C+FR10,#puppet_tbl,7
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#EXIT_BSLAM
.word ANI_DEC_RPTCOUNT
WL ANI_IFNOT_RPTCOUNT,#exit
.word ANI_CLR_BUTCOUNT
WWLLW ANI_SUPERSLAVE2,5,S4GS3C+FR9,#puppet_tbl,6
WWLLW ANI_SUPERSLAVE2,5,S4GS3C+FR8,#puppet_tbl,5
.WORD ANI_XFLIP
.word ANI_FACE,MOVE_RIGHT|MOVE_DOWN
WWLLW ANI_SUPERSLAVE2,4,S4GS3C+FR7,#puppet_tbl,4
WL ANI_GOTO,#bslam_loop
#exit
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_OPP_GETUP,-300
WWWL ANI_IF_BUTCOUNT_LT,BLOCKB_COUNT,1,#EXIT_BSLAM
.WORD ANI_XFLIP
WL ANI_CHANGEANIM,shn_combo_run_stomp_anim
#EXIT_BSLAM
.word ANI_OPP_GETUP,5
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
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
#missed_c
WL 10,S4GS3C+FR2
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL ANI_CODE,CALL_MISSES
.word ANI_WAITHITGND
.word ANI_SETFACING
.word ANI_ZEROVELS
WL 5,S4GS3C+FR2
WL 5,S4GS3C+FR1
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#throw_him_out_c
.WORD ANI_INC_COMBO
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL ANI_GOTO,#throw_him_out
SUBR shn_4combo_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
WL ANI_IFNOTSTATUS,#missedxc
WL ANI_IFBLOCKED,#missedxc
.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
.WORD ANI_INC_COMBO
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WWWL ANI_IFROPE,RC_BACK,100,#throw_him_outxc
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
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKEALL,2
.word ANI_SHAKER,30
.word ANI_DAMAGEOPP,D_HIPTOSS,RD_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
#missedbxc
WL 5,S4GS3C+FR2
#missedxc
WL ANI_CODE,CALL_MISSES
WL 10,S4GS3C+FR2
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_WAITHITGND
.word ANI_SETFACING
.word ANI_ZEROVELS
WL 5,S4GS3C+FR2
WL 5,S4GS3C+FR1
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#throw_him_outxc
WL ANI_CODE,CALL_THROWN_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,-0A0000h,80000h,0h ;x,y,z
WL ANI_SLAVEANIM,#flyout_tbl
WL ANI_OPPOFFSET,release_table
.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
******************************************************************************
*
* HIPTOSS
*
* 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_hiptoss2_anim
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.word ANI_STARTATTACK,AT_PUPPET,6
; WL 2,S1TT5Z+FR2 ;2.5
; WL 2,S1TT5Z+FR3 ;3.5
SUBR shn_4_hiptoss2_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.word ANI_STARTATTACK,AT_PUPPET,2
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 8,60,55,40,90000h,TGT_CHEST,40,0,0
WL ANI_SET_YVEL,0000h
WL 2,S4GS3C+FR1
.word ANI_ATTACK_ON, AMODE_PUPPET_TOSS,33,36,44,48 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,8,S4GS3C+FR2
.word ANI_ZERO_XZVELS
.word ANI_ATTACK_OFF
WL ANI_GOTO,#cont
SUBR shn_2_hiptoss_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.word ANI_STARTATTACK,AT_PUPPET,10
; WL 2,S1TT5Z+FR2 ;2.5
; WL 2,S1TT5Z+FR3 ;3.5
SUBR shn_4_hiptoss_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.word ANI_STARTATTACK,AT_PUPPET,10
; 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 4,S4GS3C+FR1
.word ANI_ATTACK_ON,AMODE_PUPPET_TOSS,22,49,61,39 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,4,S4GS3C+FR2
.word ANI_ZERO_XZVELS
.word ANI_ATTACK_OFF
WL 4,S4GS3C+FR2
#cont
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb
#got_him
.WORD ANI_ADD_MOVE,MOVE_C_7,2,2
.word ANI_DRAW_NAME,6
WL ANI_CODE,DO_GRUNT
.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,3,S4GS3C+FR2,#puppet_tbl,0
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WWWL ANI_IFROPE,RC_BACK,100,#throw_him_out
WWLLW ANI_SUPERSLAVE2,3,S4GS3C+FR4,#puppet_tbl,1
WWLLW ANI_SUPERSLAVE2,3,S4GS3C+FR5,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,3,S4GS3C+FR6,#puppet_tbl,3
WWLLW ANI_SUPERSLAVE2,3,S4GS3C+FR7,#puppet_tbl,4
WWLLW ANI_SUPERSLAVE2,3,S4GS3C+FR8,#puppet_tbl,5
WWLLW ANI_SUPERSLAVE2,3,S4GS3C+FR9,#puppet_tbl,6
;impact
WL ANI_CODE,HIT_THE_MAT
WL ANI_CODE,CALL_OTHER_AVERAGE
.word ANI_SHAKEALL,2
.word ANI_SHAKER,30
.word ANI_DAMAGEOPP,D_HIPTOSS,RD_HIPTOSS
.word ANI_OPP_GETUP,300
WWLLW ANI_SUPERSLAVE2,3,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 7,S4GS3C+FR11
WL 3,S4GS3C+FR12
.word ANI_XFLIP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#missedb
; .ref ck_hiptoss
; WL ANI_CODE,ck_hiptoss
; WL ANI_IFNOTSTATUS,#got_him
WL 10,S4GS3C+FR2
;Delay longer if 2nd hiptoss in quick succession!
.ref hiptoss_delay
WL ANI_CODE,hiptoss_delay
WL ANI_IFNOTSTATUS,#missed
WL 24,S4GS3C+FR2
#missed
WL ANI_CODE,CALL_MISSES
WL 4,S4GS3C+FR2
.word ANI_WAITHITGND
.word ANI_SETFACING
.word ANI_ZEROVELS
WL 4,S4GS3C+FR1
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#throw_him_out
WL ANI_CODE,CALL_THROWN_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,-0A0000h,80000h,0h ;x,y,z
WL ANI_OPPOFFSET,release_table
WL ANI_SLAVEANIM,#flyout_tbl
.word ANI_DETACH
WL 3,S4GS3C+FR7
WL 3,S4GS3C+FR8
WL 3,S4GS3C+FR9
.word ANI_SHAKEALL,2
.word ANI_SHAKER,15
WL 3,S4GS3C+FR10
WL 4,S4GS3C+FR11
WL 3,S4GS3C+FR12
.word ANI_FACE,MOVE_LEFT|MOVE_DOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
release_table
; X Y
.word 0,0 ;Bret
.word 0,0 ;Razor
.word 0,0 ;Taker
.word 0,0 ;Yokozuna
.word 8,0 ;Shawn
.word 8,0 ;BamBam
.word 0,0 ;Doink
.word 0,0 ;Adam
.word 0,0 ;Lex
********
* #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_PUPPET2,21,1,31,18 ;mode,x,y,w,h
WL 4,S4GH3A+FR4
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
;got him
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
.word ANI_CLR_BUTCOUNT
WL ANI_CODE,clear_opp_counts
WL ANI_CODE,CALL_SETUP
.word ANI_ATTACHZ,0,0,-4 ;x & y don't matter.
WL ANI_CODE,DO_NONO
.word ANI_SETOPPMODE,MODE_GHOST
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_KEEPATTACHED
.word ANI_SOUND,98h ;neck break (5-7 ticks late)
WWLLW ANI_SUPERSLAVE2,3,S4GH3A+FR6,#puppet_tbl,0
WWLLW ANI_SUPERSLAVE2,3,S4GH3A+FR7,#puppet_tbl,1
WWLLW ANI_SUPERSLAVE2,3,S4GH3A+FR8,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,3,S4GH3A+FR9,#puppet_tbl,3
WWLLW ANI_SUPERSLAVE2,3,S4GH3C+FR8,#puppet_tbl,4
WWLLW ANI_SUPERSLAVE2,3,S4GH3C+FR8,#puppet_tbl,5
.word ANI_SETPLYRMODE,MODE_HEADHOLD
WL ANI_SLAVEANIM,#headheld_tbl
WL 1,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,33,-33,0
LWWW H3GU4A+FR3,40,-41,0
LWWW H3DU3A+FR3,38,-43,1
LWWW H3DU3A+FR4,48,-31,1
LWWW H3DU3A+FR5,49,-34,1
LWWW H3BF3A+FR1,55,-30,0
.long 0
#Razor
LWWW R3GU2A+FR3,35,-24,0
LWWW R3GU4A+FR4,30,-35,0
LWWW R3GU4A+FR6,38,-40,0
LWWW R3DU3B+FR2,40,-45,1
LWWW R3DU3B+FR4,52,-33,1
LWWW R3BF3A+FR1,56,-32,0
.long 0
#Taker
LWWW U3DU3B+FR2,38,-25,1
LWWW U3DU3B+FR5,40,-31,1
LWWW U3DU3B+FR6,45,-42,1
LWWW U3DU3B+FR8,47,-35,1
LWWW U3DU3B+FR10,50,-26,1
LWWW U4BF3Z+FR5,58,-11,0
.long 0
#Yokozuna
LWWW Y3GU2A+FR1,31,-19,0
LWWW Y3GU2A+FR3,43,-22,0
LWWW Y3GU2A+FR4,18,-38,0
LWWW Y3GU2A+FR7,25,-46,0
LWWW Y3GU2A+FR11,52,-37,0
LWWW Y3BF3A+FR1,53,-20,0
.long 0
#Shawn
LWWW S3GU2A+FR1,40,-27,0
LWWW S3GU4A+FR2,35,-33,0
LWWW S3GU4A+FR4,48,-49,0
LWWW S3GU4A+FR6,52,-33,0
LWWW S3GU4A+FR7,56,-40,0
LWWW S3BF3A+FR1,41,-31,0 ;Fixed!
.long 0
#BamBam
LWWW B3GU4A+FR3,33,-23,0
LWWW B3GU4A+FR5,35,-32,0
LWWW B3GU4A+FR7,40,-41,0
LWWW B3GU4A+FR8,42,-35,0
LWWW B3GU4A+FR10,51,-33,0
LWWW B3BF3C+FR5,56,-24,0
.long 0
#Doink
LWWW D3GU4A+FR2,36,-30,0
LWWW D3GU4A+FR3,32,-39,0
LWWW D3GU4A+FR4,36,-56,0
LWWW D3GU4A+FR5,34,-44,0
LWWW D3GU4A+FR7,57,-43,0
LWWW D3BF3A+FR2,50,-30,0
.long 0
#Adam
.long 0
#Lex
LWWW L3GU4A+FR1,38,-27,0
LWWW L3DU3A+FR4,18,-30,1
LWWW L3DU3A+FR6,25,-44,1
LWWW L3DU3A+FR7,34,-37,1
LWWW L3DU3A+FR9,51,-35,1
LWWW L3BF3B+FR5,49,-28,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_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.word ANI_SET_RPTCOUNT,4 ;2 times
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
#rpt_loop
.word ANI_CLR_BUTCOUNT
WL 2,S4KI3Q+FR1
WL 1,S4KI3Q+FR2
WL 2,S4KI3Q+FR3
WL 1,S4KI3Q+FR4
WL 2,S4KI3Q+FR5
.word ANI_ATTACK_ON,AMODE_HEADKNEES,50,56,49,50
WL 2,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
;Completed multiple uppercuts, allow flings, etc.
.word ANI_SET_ATTACH
.word ANI_SETOPP_PLYRMODE,MODE_NORMAL
.word ANI_DETACH
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
WL ANI_CODE,CALL_ANI_AVERAGE_MOVE
.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_SET_RPTCOUNT,4 ;3 times
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
#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
;Completed multiple uppercuts, allow flings, etc.
.word ANI_SET_ATTACH
.word ANI_SETOPP_PLYRMODE,MODE_NORMAL
.word ANI_DETACH
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_4combo_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_SETPLYRMODE,MODE_NORMAL
.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 3,S4CO4A+FR5
WL 3,S4CO4A+FR4
WL 3,S4CO4A+FR3
WL 3,S4CO4A+FR2
WL 3,S4CO4A+FR3
WL 3,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 2,S4CO4A+FR3
WL 2,S4CO4A+FR2
WL 2,S4CO4A+FR1
; .ref set_taunt_bit
; WL ANI_CODE,set_taunt_bit
.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_combo_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 14,999,100,60,90000h,TGT_GROIN,19,9,0
WL 4,S4MP4D+FR2
WL 4,S4MP4D+FR3
WL 4,S4MP4D+FR4
WL ANI_SET_YVEL,-20000h
WL ANI_GOTO,#attack_c
#attack_loop_c
.word ANI_CLR_BUTCOUNT
WWL ANI_SETLONG,OBJ_GRAVITY,0a000h
WL ANI_SET_YVEL,60000h
WL 2,S4MP4D+FR6
WL 1,S4MP4D+FR7
WL 2,S4MP4D+FR8
WL 1,S4MP4D+FR1
.word ANI_OFFSET,0,#yoff,0
WL 2,S4MP4D+FR2
WL 1,S4MP4D+FR2
WL 3,S4MP4D+FR3
WL 2,S4MP4D+FR4
#attack_c
.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_c
.word ANI_ATTACK_OFF
;check for a good hit
WL ANI_IFNOTSTATUS,#missed_c
WWL ANI_IFOPPMODE,MODE_DEAD,#gothim
WWL ANI_IFOPPMODE,~MODE_ONGROUND,#missed_c
#gothim .word ANI_INC_COMBO
WL ANI_CODE,MAKE_HIM_SCREAM
WL ANI_CODE,HIT_THE_MAT
;hit. shake ring & ropes
.word ANI_SHAKEALL,2
.word ANI_SHAKER,30
.word ANI_DEC_RPTCOUNT
WL ANI_IFNOT_RPTCOUNT,#done_c
;any button will do
WWWL ANI_IF_BUTCOUNT_GE,BLOCKB_COUNT,1,#attack_loop_c
#done_c
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL ANI_GOTO,#done
#missed_c
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL ANI_GOTO,#missed
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 3,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
LEAPATOPP 20,999,160,140,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
WL ANI_CODE,#reduce_dmg
.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,#hit
WWL ANI_IFOPPMODE,MODE_DEAD,#hit
#hit
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
WL ANI_CODE,HIT_THE_MAT
WL ANI_CODE,MAKE_HIM_SCREAM
;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
#reduce_dmg
;Neck breaker may take awhile
.ref PCNT
SPCDMG D_STOMP2,40
rets
#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 1,S3CF3Z+FR1
.word ANI_DEBRIS,100,1,-8,12,0 ;%chance, tbl index, x,y,z off
WL ANI_SET_YVEL,80000h
WL 1,S3CF3Z+FR1
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_SETPLYRMODE,MODE_ONGROUND ;So we can stomp him!
.word ANI_WAITROLL
WL 3,S3CF3Z+FR1
WL ANI_CHANGEANIM,shn_faceup_getup_anim
SUBR shn_break_face3_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
.word ANI_DEBRIS,100,1,-8,12,0 ;%chance, tbl index, x,y,z off
WL 3,S3MS3Z+FR3
WL ANI_SET_YVEL,078000h
WL 100,S3MS3Z+FR3
.word ANI_WAITHITGND
.word ANI_SETPLYRMODE,MODE_ONGROUND ;So we can stomp him!
.word ANI_WAITROLL
WL ANI_CHANGEANIM,shn_faceup_getup_anim
* Head slams into mat
;From head slam
SUBR shn_break_face_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
WL 1,S3CF3Z+FR1
.word ANI_DEBRIS,100,1,-8,12,0 ;%chance, tbl index, x,y,z off
WL ANI_SET_YVEL,40000h
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_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
#*****************************************************************************
*
* SLIDING KICKTOSS
*
SUBR shn_combo_sliding_kicktoss_anim
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
WL 3,S3SK3A+FR1
WL 3,S3SK3A+FR2
.word ANI_CLR_BUTCOUNT
LEAPATOPP 10,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_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_c
WL ANI_IFBLOCKED,#blocked_c
;hit. toss him over.
.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
.WORD ANI_INC_COMBO
;let go
.word ANI_CLROPPMODE,MODE_GHOST
.word ANI_XFLIP_OPP ;106
WL ANI_SLAVEANIM,#SPECIAL_RELEASE_TBL
.word ANI_SHAKEALL,2
.word ANI_SHAKER,35
.word ANI_DAMAGEOPP,D_KICKTOSS,RD_KICKTOSS
WL ANI_CODE,HIT_THE_MAT
WL 4,S3KT3A+FR4
WLLL ANI_SETOPPVELS,0,0a0000h,0h ;x,y,z vels
.word ANI_DETACH
WL 2,S3KT3A+FR5
WL 2,S3KT3A+FR6
WL 2,S3KT3A+FR7
;and immediately get up
WL 2,S3KT3A+FR8
.word ANI_OFFSET,-9,2,0
WL 1,S3FD3X+FR1
WL 2,S3UC3X+FR6
WL 1,S3KF3C+FR1
WL 2,S3KF3C+FR2
WL 1,S3KF3C+FR3
.word ANI_WAITHITGND
WL 2,S3KF3C+FR4
WL 1,S3KF3C+FR5
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#NO_FLIPING
WL ANI_CHANGEANIM,shn_combo_flipslam_anim
#NO_FLIPING
WWWL ANI_IF_BUTCOUNT_LT,KICKB_COUNT,1,#NO_FRANK
WL ANI_CHANGEANIM,shn_combo_fstein_anim
#NO_FRANK
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_DETACH
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#blocked_c
.word ANI_SETPLYRMODE,MODE_ONGROUND ;So we can stomp him!
WL 10,S3SK3A+FR6
.word ANI_ZEROVELS
WL 5,S3SK3A+FR6
#missed_c
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_DETACH
.word ANI_SETPLYRMODE,MODE_ONGROUND ;So we can stomp him!
WL 10,S3SK3A+FR6
.word ANI_ZEROVELS
WL 3,S3SK3A+FR6 ;30
.word ANI_WAITROLL
WL ANI_CHANGEANIM,shn_faceup_getup_anim
; .word ANI_END
#release_offsets2
; X Y
.word 40,30 ;Bret
.word 10,30 ;Razor
.word 40,30 ;Taker
.word 20,30 ;Yokozuna
.word 40,30 ;Shawn
.word 40,30 ;BamBam
.word 40,30 ;Doink
.word 40,30 ;Adam
.word 20,30 ;Lex
#SPECIAL_RELEASE_TBL
.ref hrt_up_anim
.ref rzr_up_anim
.ref und_up_anim
.ref yok_up_anim
.ref shn_up_anim
.ref bam_up_anim
.ref dnk_up_anim
.ref lex_up_anim
.long hrt_up_anim
.long rzr_up_anim
.long und_up_anim
.long yok_up_anim
.long shn_up_anim
.long bam_up_anim
.long dnk_up_anim
.long 0
.long lex_up_anim
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
WL ANI_CODE,no_bk_xvel
.word ANI_FRICTION,4000h
WL 3,S3SK3A+FR3
WL 3,S3SK3A+FR4
WL 3,S3SK3A+FR5
.word ANI_ATTACK_ON,AMODE_PUPPET,-72,0,72,15
.word ANI_XFLIP
WWL ANI_WAITHITOPP,10,S3SK3A+FR6
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_8,2,2
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
.word ANI_DRAW_NAME,36
;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,RD_KICKTOSS
WL ANI_CODE,HIT_THE_MAT
.word ANI_DETACH
;and immediately get up
WL 3,S3KT3A+FR8
.word ANI_OFFSET,-9,2,0
WL 3,S3FD3X+FR1
WL 3,S3UC3X+FR6
WL 3,S3KF3C+FR1
WL 3,S3KF3C+FR2
WL 3,S3KF3C+FR3
.word ANI_WAITHITGND
WL 3,S3KF3C+FR4
WL 3,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 25,S3SK3A+FR6
#missed
WL ANI_CODE,CALL_MISSES
.word ANI_SETPLYRMODE,MODE_ONGROUND ;So we can stomp him!
WL 10,S3SK3A+FR6
.word ANI_ZEROVELS
WL 3,S3SK3A+FR6
.word ANI_WAITROLL
WL ANI_CHANGEANIM,shn_faceup_getup_anim
; .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
;First, if we're holding his head, let him go.
; WWL ANI_IFOPPMODE,~MODE_HEADHELD,#no_hdrel2
; .word ANI_DETACH
;#no_hdrel2
; 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_PUPPET,31,59,42,32
WWL ANI_WAITHITOPP,4,S4FG3A+FR1
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
; WWL ANI_IFOPPMODE,~MODE_PUPPET,#missed
;got him
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
.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
;This frame may come out
WWLLW ANI_SUPERSLAVE2,3,S3GA3A+FR3,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,3,S3GA3A+FR4,#puppet_tbl,3
WWLLW ANI_SUPERSLAVE2,20,S3GA3A+FR5,#puppet_tbl,4
.word ANI_DRAW_NAME,9
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
WL ANI_CODE,BROKEN_ARM_BLOOD
;snap!
.word ANI_SOUND,9Bh ;neck break (5-7 ticks late)
WL ANI_CODE,CALL_NASTY_MOVE
.word ANI_DAMAGEOPP,D_ARMBRK,RD_ARMBRK
WWLLW ANI_SUPERSLAVE2,1,S3GA3A+FR9,#puppet_tbl,8
WL ANI_SLAVEANIM,#react_tbl
.word ANI_DETACH
WL 15,S3GA3A+FR9
.word ANI_FACEUP
.word ANI_SETPLYRMODE,MODE_NORMAL
.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
LWWW H4AM3A+FR6,42,-30,0
LWWW H4AM3A+FR8,47,-7,0
LWWW H3AB3A+FR1,41,-12,0
LWWW H3AB3A+FR3,50,10,0
LWWW H3AB3A+FR3,53,11,0
LWWW H3AB3A+FR3,53,12,0
LWWW H3AB3A+FR3,47,8,0
LWWW H3AB3A+FR3,47,9,0
LWWW H3AB3A+FR4,29,7,0
.long 0
#Razor
LWWW R3HB3A+FR2,50,-20,0
LWWW R3HB3A+FR3,53,-6,0
LWWW R3AB3A+FR1,49,-4,0
LWWW R3AB3A+FR3,33,-2,0
LWWW R3AB3A+FR3,36,-1,0
LWWW R3AB3A+FR3,36,0,0
LWWW R3AB3A+FR3,30,-4,0
LWWW R3AB3A+FR3,30,-3,0
LWWW R3AB3A+FR4,35,8,0
.long 0
#Taker
LWWW U4BF3A+FR3,20,-8,0
LWWW U4BF3A+FR2,48,5,0
LWWW U3AB3A+FR1,39,0,0
LWWW U3AB3A+FR3,34,-1,0
LWWW U3AB3A+FR3,37,0,0
LWWW U3AB3A+FR3,37,1,0
LWWW U3AB3A+FR3,31,-3,0
LWWW U3AB3A+FR3,31,-2,0
LWWW U3AB3A+FR4,28,7,0
.long 0
#Yokozuna
LWWW Y4AM4A+FR3,50,-21,0
LWWW Y4AM4A+FR8,59,-9,0
LWWW Y3AB3A+FR1,34,-8,0
LWWW Y3AB3A+FR3,49,2,0
LWWW Y3AB3A+FR3,52,3,0
LWWW Y3AB3A+FR3,52,4,0
LWWW Y3AB3A+FR3,46,0,0
LWWW Y3AB3A+FR3,46,1,0
LWWW Y3AB3A+FR4,30,0,0
.long 0
#Shawn
LWWW S4AM3A+FR7,40,-37,0
LWWW S4AM3A+FR2,52,-9,0
LWWW S3AB3A+FR1,43,-6,0
LWWW S3AB3A+FR3,41,-4,0
LWWW S3AB3A+FR3,44,-3,0
LWWW S3AB3A+FR3,44,-2,0
LWWW S3AB3A+FR3,38,-6,0
LWWW S3AB3A+FR3,38,-5,0
LWWW S3AB3A+FR4,30,1,0
.long 0
#BamBam
LWWW B4BF3A+FR3,36,-9,0
LWWW B4BF3A+FR1,51,5,0
LWWW B3AB3X+FR2,48,3,0
LWWW B3AB3X+FR3,45,4,0
LWWW B3AB3X+FR3,48,5,0
LWWW B3AB3X+FR3,48,6,0
LWWW B3AB3X+FR3,42,2,0
LWWW B3AB3X+FR3,42,3,0
LWWW B3AB3X+FR4,40,5,0
.long 0
#Doink
LWWW D3AM3A+FR6,43,-24,0
LWWW D3AM3A+FR8,55,-8,0
LWWW D3AB3A+FR1,50,-12,0
LWWW D3AB3A+FR3,50,-2,0
LWWW D3AB3A+FR3,53,-1,0
LWWW D3AB3A+FR3,53,0,0
LWWW D3AB3A+FR3,47,-4,0
LWWW D3AB3A+FR3,47,-3,0
LWWW D3AB3A+FR4,40,-1,0
.long 0
#Adam
.long 0
#Lex
LWWW L3BF3A+FR2,42,-13,1
LWWW L3BF3A+FR1,51,2,1
LWWW L3AB3A+FR2,25,-5,0
LWWW L3AB3A+FR3,43,2,0
LWWW L3AB3A+FR3,46,3,0
LWWW L3AB3A+FR3,46,4,0
LWWW L3AB3A+FR3,40,0,0
LWWW L3AB3A+FR3,40,1,0
LWWW L3AB3A+FR4,37,4,0
.long 0
.ref hrt_arm_broken_anim
.ref rzr_arm_broken_anim
.ref und_arm_broken_anim
.ref yok_arm_broken_anim
.ref shn_arm_broken_anim
.ref bam_arm_broken_anim
.ref dnk_arm_broken_anim
.ref lex_arm_broken_anim
#react_tbl
.long hrt_arm_broken_anim
.long rzr_arm_broken_anim
.long und_arm_broken_anim
.long yok_arm_broken_anim
.long shn_arm_broken_anim
.long bam_arm_broken_anim
.long dnk_arm_broken_anim
.long 0
.long lex_arm_broken_anim
#*********
;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_fake_hold_anim
;Head hold when standing next to player
;No collisions possible
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
;#4 grab to head hold
.word ANI_STARTATTACK,AT_PUPPET,6
WL 2,S4GH3C+FR1
WL 2,S4GH3C+FR2
WL 2,S4GH3C+FR3
WL 7,S4GH3C+FR3
WL ANI_GOTO,#missed
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_SETPLYRMODE,MODE_NORMAL
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
;#4 grab to head hold
.word ANI_STARTATTACK,AT_PUPPET,6
WL 2,S4GH3C+FR1
WL 2,S4GH3C+FR2
WL 2,S4GH3C+FR3
.word ANI_ATTACK_ON, AMODE_PUPPET_HDGRAB,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_IFBLOCKED,#missedb
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 6,999,65,45,90000h,TGT_HEAD,56,100,0
LEAPATOPP 9,999,40,45,90000h,TGT_HEAD,56,100,0
WL 3,S4GH3C+FR2
.word ANI_ATTACK_ON, AMODE_PUPPET,26,80,49,23 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,6,S4GH3C+FR3
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb
#gothim
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
.word ANI_CLR_BUTCOUNT
.ref head_grab_time
WL ANI_CODE,head_grab_time
.word ANI_ATTACHZ,0,0,-4 ;x & y don't matter.
WL ANI_CODE,DO_NONO
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_KEEPATTACHED
WWLLW ANI_SUPERSLAVE2,1,S4GH3C+FR3,#puppet_tbl,0
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WWLLW ANI_SUPERSLAVE2,4,S4GH3C+FR3,#puppet_tbl,0
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 1,S4GH3C+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#missed
WL ANI_CODE,CALL_MISSES
WL 3,S4GH3C+FR3
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 2,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
#missedb
.word ANI_ZEROVELS
WL ANI_SET_YVEL,30000h
WL 3,S4GH3C+FR3
.word ANI_WAITHITGND
.word ANI_ZEROVELS
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 H4AH3A+FR1,56,12,0
LWWW H3HB3A+FR3,66,1,0
LWWW H3HB3A+FR2,64,-5,0
LWWW H3BF3A+FR1,51,-30,0
.long 0
#Razor
LWWW R4AH4C+FR3,57,11,0
LWWW R3HB3A+FR3,72,0,0
LWWW R3HB3A+FR2,75,-15,0
LWWW R3BF3A+FR1,56,-32,0
.long 0
#Taker
LWWW U4AH3A+FR2,50,21,0
LWWW U4BF3A+FR2,57,14,0
LWWW U4BF3A+FR3,43,-2,0
LWWW U4BF3Z+FR5,53,-11,0
.long 0
#Yokozuna
LWWW Y4AE4A+FR2,69,2,0
LWWW Y4AM4A+FR1,82,3,0
LWWW Y4AM4A+FR2,78,-4,0
LWWW Y3BF3A+FR1,56,-20,0
.long 0
#Shawn
LWWW S4AH3D+FR5,55,4,0
LWWW S4AH3D+FR1,54,9,0
LWWW S4BF3A+FR2,63,-5,0
LWWW S3BF3A+FR1,39,-31,0
.long 0
#BamBam
LWWW B4AH4A+FR1,49,6,0
LWWW B4BF3A+FR1,74,12,0
LWWW B3HB3A+FR2,66,-18,0
LWWW B3BF3C+FR5,52,-24,0
.long 0
#Doink
LWWW D3AH3B+FR1,51,8,0
LWWW D3AK3A+FR3,49,14,0
LWWW D3AK3A+FR2,64,-4,0
LWWW D3BF3A+FR2,47,-30,0
.long 0
#Adam
.long 0
#Lex
LWWW L4AH4B+FR3,48,4,0
LWWW L3BF3A+FR1,65,8,1
LWWW L3BF3A+FR2,71,-8,1
LWWW L3BF3B+FR5,52,-28,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_combo_flipslam_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETSPEED,100h
.word ANI_CLR_BUTCOUNT
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,32,68,79 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,8,S4TD3F+FR4
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed_c
WL ANI_IFBLOCKED,#missedb_c
.WORD ANI_INC_COMBO
WL ANI_CODE,CALL_SPECIAL_MOVE
;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,RD_FLIPSLAM
.word ANI_SHAKER,40
.word ANI_SHAKEALL,2
WWLLW ANI_SUPERSLAVE2,4,S3OS3Z+FR10,#puppet_tbl,7
WLLL ANI_SETOPPVELS,0,0h,0h ;x,y,z vels
WL ANI_SLAVEANIM,recover_tbl
.word ANI_OPP_GETUP,-300
WL ANI_CODE,#set_opp_facing
.word ANI_DETACH
.word ANI_XFLIP
WWWL ANI_IF_BUTCOUNT_LT,BLOCKB_COUNT,1,#NO_STOMPING
WL 2,S3GU2A+FR5
WL 2,S3GU2A+FR6
WL 2,S3GU2A+FR7
WL 2,S3GU2A+FR8
WL 2,S3GU2A+FR9
WL ANI_CHANGEANIM,shn_combo_run_stomp_anim
#NO_STOMPING
.word ANI_OPP_GETUP,5
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL ANI_CHANGEANIM,shn_hitonground_anim
#missedb_c
;blocked. bounce off.
WL ANI_CODE,#reverse_xvel
#missed_c
.word ANI_DETACH
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
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
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,0 ;-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
.WORD ANI_ADD_MOVE,MOVE_C_9,2,2
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb
WL ANI_CODE,CALL_SPECIAL_MOVE
;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_DRAW_NAME,39
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WWL ANI_SETLONG,OBJ_GRAVITY,GRAVITY
WL ANI_CODE,HIT_THE_MAT
.word ANI_DAMAGEOPP,D_FLIPSLAM,RD_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
;#*****************************************************************************
;*
;* CHAIR STUFF
;
; .ref CHAIR_SWING
;
; SUBR shn_pkup_chair_anim
;
; .word ANI_SETMODE,MODE_UNINT | MODE_NOAUTOFLIP
; .word ANI_ZEROVELS
; .word ANI_SETSPEED,100h
;
;#lp
; WL 4,S4WA4B+FR1
; WL 4,S4WA4B+FR2
; WL 4,S4WA4B+FR3
;
; WLWWW ANI_ATTCHIMAGE2,CHAIR_SWING+FR1,39,-11,1 ;image, x,y,zoff
; WL 4,S4WA4B+FR4
;
; WLWWW ANI_ATTCHIMAGE2,CHAIR_SWING+FR1,37,14,1 ;image, x,y,zoff
; WL 4,S4WA4B+FR5
;
; WLWWW ANI_ATTCHIMAGE2,CHAIR_SWING+FR2,41,53,1 ;image, x,y,zoff
; WL 4,S4WA4B+FR6
;
; WLWWW ANI_ATTCHIMAGE2,CHAIR_SWING+FR3,37,104,1 ;image, x,y,zoff
; WL 4,S4WA4B+FR7
;
; WLWWW ANI_ATTCHIMAGE2,CHAIR_SWING+FR3,27,134,1 ;image, x,y,zoff
; WL 4,S4WA4B+FR8
;
; WLWWW ANI_ATTCHIMAGE2,CHAIR_SWING+FR4,-9,140,1 ;image, x,y,zoff
; WL 4,S4WA4B+FR9
;
;; .word ANI_SINGLESTEP
;
; WLWWW ANI_ATTCHIMAGE2,CHAIR_SWING+FR4,-13,139,1 ;image, x,y,zoff
; WL 4,S4WB4B+FR2
; WLWWW ANI_ATTCHIMAGE2,CHAIR_SWING+FR5,-40,103,1 ;image, x,y,zoff
; WL 4,S4WB4B+FR3
; WLWWW ANI_ATTCHIMAGE2,CHAIR_SWING+FR6,-11,115,1 ;image, x,y,zoff
; WL 4,S4WB4B+FR4
; WLWWW ANI_ATTCHIMAGE2,CHAIR_SWING+FR8,64,86,1 ;image, x,y,zoff
; WL 4,S4WB4B+FR5
; WLWWW ANI_ATTCHIMAGE2,CHAIR_SWING+FR9,60,38,1 ;image, x,y,zoff
; WL 4,S4WB4B+FR6
; WLWWW ANI_ATTCHIMAGE2,CHAIR_SWING+FR10,38,13,1 ;image, x,y,zoff
; WL 4,S4WB4B+FR7
; WLWWW ANI_ATTCHIMAGE2,CHAIR_SWING+FR10,53,32,1 ;image, x,y,zoff
; WL 4,S4WB4B+FR8
; WLWWW ANI_ATTCHIMAGE2,CHAIR_SWING+FR8,55,118,1 ;image, x,y,zoff
; WL 4,S4WB4B+FR9
;
;; .word ANI_SINGLESTEP
; WLW ANI_ATTCHIMAGE,0,0
;
; WL ANI_GOTO,#lp
;
#*****************************************************************************
*
* Repeated head butts from head hold
SUBR shn_rpt_hdbutts2_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SET_RPTCOUNT,4 ;rpt 2 times
.word ANI_ATTACK_ON,AMODE_PUPPET,31,59,42,32
WWL ANI_WAITHITOPP,4,S4GH3C+FR5
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
;got him
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
.word ANI_ATTACHZ,0,0,-4
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_KEEPATTACHED
.word ANI_CLR_BUTCOUNT
WWLLW ANI_SUPERSLAVE2,2,S4GH3C+FR5,#puppet_tbl,0
WWLLW ANI_SUPERSLAVE2,2,S4GH3C+FR4,#puppet_tbl,1
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR1,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR2,#puppet_tbl,3
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR3,#puppet_tbl,4
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR4,#puppet_tbl,5
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR5,#puppet_tbl,6
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR6,#puppet_tbl,7
WWLLW ANI_SUPERSLAVE2,1,S4CD3A+FR7,#puppet_tbl,8
WL ANI_CODE,CALL_NASTY_MOVE
.word ANI_DEBRISAT,350,2,0,100,0 ;%chance, tbl index, x,y,z off
.ref impact_sound
WL ANI_CODE,impact_sound
.word ANI_SHAKEALL,2
.word ANI_SHAKER,25
.word ANI_DAMAGEOPP,D_HDBUTT2,RD_HDBUTT2
WWLLW ANI_SUPERSLAVE2,1,S4CD3A+FR7,#puppet_tbl,8
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR8,#puppet_tbl,9
WL ANI_GOTO,last_hitx
*****************************************************************************
*
* Repeated head butts from head hold
SUBR shn_rpt_hdbutts_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SET_RPTCOUNT,4 ;rpt 2 times
.word ANI_ATTACK_ON,AMODE_PUPPET,31,59,42,32
WWL ANI_WAITHITOPP,4,S4GH3C+FR5
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
;got him
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
.word ANI_ATTACHZ,0,0,-4
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_KEEPATTACHED
.word ANI_CLR_BUTCOUNT
WWLLW ANI_SUPERSLAVE2,2,S4GH3C+FR5,#puppet_tbl,0
WWLLW ANI_SUPERSLAVE2,2,S4GH3C+FR4,#puppet_tbl,1
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR1,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR2,#puppet_tbl,3
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR3,#puppet_tbl,4
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR4,#puppet_tbl,5
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR5,#puppet_tbl,6
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR6,#puppet_tbl,7
WWLLW ANI_SUPERSLAVE2,1,S4CD3A+FR7,#puppet_tbl,8
WL ANI_CODE,CALL_NASTY_MOVE
.word ANI_DEBRISAT,350,2,0,100,0 ;%chance, tbl index, x,y,z off
.ref impact_sound
WL ANI_CODE,impact_sound
.word ANI_SHAKEALL,2
.word ANI_SHAKER,25
.word ANI_DAMAGEOPP,D_HDBUTT2,RD_HDBUTT2
WWLLW ANI_SUPERSLAVE2,1,S4CD3A+FR7,#puppet_tbl,8
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR8,#puppet_tbl,9
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,2,#last_hit
.word ANI_DEC_RPTCOUNT
WL ANI_IFNOT_RPTCOUNT,#last_hit
.word ANI_CLR_BUTCOUNT
#rpt
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR2,#puppet_tbl,10
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR3,#puppet_tbl,11
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR4,#puppet_tbl,12
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR5,#puppet_tbl,13
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR6,#puppet_tbl,14
WWLLW ANI_SUPERSLAVE2,1,S4CD3A+FR7,#puppet_tbl,15
WL ANI_CODE,CALL_NASTY_MOVE
.word ANI_DEBRISAT,350,2,0,100,0 ;%chance, tbl index, x,y,z off
.ref impact_sound
WL ANI_CODE,impact_sound
.word ANI_SHAKEALL,2
.word ANI_SHAKER,25
.word ANI_DAMAGEOPP,D_HDBUTT2,RD_HDBUTT2
WWLLW ANI_SUPERSLAVE2,2,S4CD3A+FR8,#puppet_tbl,16
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,2,#last_hit
.word ANI_DEC_RPTCOUNT
WL ANI_IFNOT_RPTCOUNT,#last_hit
.word ANI_CLR_BUTCOUNT
WL ANI_GOTO,#rpt
WLW ANI_SET_XVEL,-30000h,AM_FACE_REL
WL ANI_SET_YVEL,40000h
WL 3,S4CD3A+FR7
WL 3,S4CD3A+FR6
WL 3,S4CD3A+FR5
WL 3,S4CD3A+FR4
WL 3,S4CD3A+FR3
WL 3,S4CD3A+FR2
WL 3,S4CD3A+FR1
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 3,S4GH3C+FR1
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
last_hitx
#last_hit
.word ANI_SETOPP_PLYRMODE,MODE_NORMAL
WWL ANI_IFOPPMODE,~MODE_DEAD,#cont
.ref fall_back_tbl
WL ANI_SLAVEANIM,fall_back_tbl
WL ANI_GOTO,#cont2
#cont
WL ANI_SLAVEANIM,#react_tbl
#cont2 WLLL ANI_SETOPPVELS,40000h,20000h,10000h ;x,y,z vels
.word ANI_DETACH
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
WLW ANI_SET_XVEL,-30000h,AM_FACE_REL
WL ANI_SET_YVEL,40000h
WL 3,S4CD3A+FR7
WL 3,S4CD3A+FR6
WL 3,S4CD3A+FR5
WL 3,S4CD3A+FR4
WL 3,S4CD3A+FR3
WL 3,S4CD3A+FR2
WL 3,S4CD3A+FR1
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 3,S4GH3C+FR1
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#missedb
#missed
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.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 H4AM3A+FR6,57,-23,0
LWWW H4AM3A+FR7,57,-4,0
LWWW H4AH3A+FR6,37,-6,0
LWWW H4AH3A+FR6,42,-16,0
LWWW H4AH3A+FR6,48,-22,0
LWWW H4AH3A+FR6,49,-26,0
LWWW H4AH3A+FR6,44,-28,0
LWWW H4AH3A+FR6,24,-26,0
LWWW H4ST4A+FR1,12,-27,0
LWWW H4AH3A+FR2,19,-15,0
LWWW H4AH3A+FR3,46,-12,0
LWWW H4AH3A+FR4,49,-24,0
LWWW H4AH3A+FR5,48,-23,0
LWWW H4AH3A+FR6,44,-28,0
LWWW H4AH3A+FR6,24,-26,0
LWWW H4ST4A+FR1,12,-27,0
LWWW H4AH3A+FR2,19,-15,0
.long 0
#Razor
LWWW R4AM3X+FR3,59,-5,0
LWWW R4AM3X+FR1,56,12,0
LWWW R4AH4C+FR8,37,1,0
LWWW R4AH4C+FR8,42,-9,0
LWWW R4AH4C+FR8,48,-15,0
LWWW R4AH4C+FR8,49,-19,0
LWWW R4AH4C+FR8,44,-21,0
LWWW R4AH4C+FR8,24,-18,0
LWWW R4ST4G+FR1,15,-26,0
LWWW R4AH4C+FR4,15,-17,0
LWWW R4AH4C+FR5,43,-13,0
LWWW R4AH4C+FR6,49,-18,0
LWWW R4AH4C+FR7,50,-19,0
LWWW R4AH4C+FR8,45,-21,0
LWWW R4AH4C+FR8,25,-18,0
LWWW R4ST4G+FR1,16,-26,0
LWWW R4AH4C+FR4,15,-17,0
.long 0
#Taker
LWWW U4BF3A+FR3,28,-2,0
LWWW U4BF3A+FR2,48,13,0
LWWW U4ST4D+FR3,27,4,0
LWWW U4ST4D+FR3,32,-6,0
LWWW U4ST4D+FR3,38,-12,0
LWWW U4ST4D+FR3,39,-16,0
LWWW U4ST4D+FR3,34,-18,0
LWWW U4ST4D+FR3,14,-15,0
LWWW U3AE4A+FR5,28,-17,0
LWWW U3AE4A+FR2,24,-15,0
LWWW U3AE4A+FR3,56,-8,0
LWWW U3AE4A+FR4,62,-9,0
LWWW U3AE4A+FR5,63,-15,0
LWWW U4ST4D+FR3,34,-18,0
LWWW U4ST4D+FR3,14,-15,0
LWWW U3AE4A+FR5,28,-17,0
LWWW U3AE4A+FR2,24,-15,0
.long 0
#Yokozuna
LWWW Y4AM4A+FR4,64,-17,0
LWWW Y4AM4A+FR2,60,-5,0
LWWW Y4AM4A+FR1,50,-11,0
LWWW Y4AH4A+FR1,48,-14,0
LWWW Y4AH4A+FR1,54,-20,0
LWWW Y4AH4A+FR1,55,-24,0
LWWW Y4AH4A+FR1,50,-26,0
LWWW Y4AH4A+FR1,30,-23,0
LWWW Y4AE4A+FR1,23,-24,0
LWWW Y4AE4A+FR3,17,-15,0
LWWW Y4AE4A+FR4,46,-10,0
LWWW Y4AE4A+FR5,54,-15,0
LWWW Y4AE4A+FR6,53,-24,0
LWWW Y4AE4A+FR7,49,-25,0
LWWW Y4AE4A+FR8,21,-21,0
LWWW Y4AE4A+FR1,23,-24,0
LWWW Y4AE4A+FR3,17,-15,0
.long 0
#Shawn
LWWW S4AM3A+FR3,62,2,0
LWWW S4AM3A+FR2,57,0,0
LWWW S4BK3A+FR1,33,-9,0
LWWW S4LB3A+FR1,30,-14,0
LWWW S4LB3A+FR1,36,-20,0
LWWW S4LB3A+FR1,37,-24,0
LWWW S4LB3A+FR1,32,-26,0
LWWW S4LB3A+FR1,12,-23,0
LWWW S4ST4C+FR1,6,-31,0
LWWW S4AH3D+FR2,16,-23,0
LWWW S4AH3D+FR3,45,-22,0
LWWW S4AH3D+FR4,51,-28,0
LWWW S4AH3D+FR5,54,-25,0
LWWW S4AH3D+FR6,48,-24,0
LWWW S4LB3A+FR1,12,-23,0
LWWW S4ST4C+FR1,6,-31,0
LWWW S4AH3D+FR2,16,-23,0
.long 0
#BamBam
LWWW B4AM4A+FR2,68,-6,0
LWWW B4AM4A+FR1,59,5,0
LWWW B4BK3D+FR2,39,-3,0
LWWW B4AH4A+FR6,34,-16,0
LWWW B4AH4A+FR6,40,-22,0
LWWW B4AH4A+FR6,41,-26,0
LWWW B4AH4A+FR6,36,-28,0
LWWW B4AH4A+FR6,16,-25,0
LWWW B4BK3D+FR2,14,-25,0
LWWW B4AH4A+FR1,10,-17,0
LWWW B4AH4A+FR2,36,-21,0
LWWW B4AH4A+FR3,42,-27,0
LWWW B4AH4A+FR4,44,-30,0
LWWW B4AH4A+FR5,40,-29,0
LWWW B4AH4A+FR6,16,-25,0
LWWW B4BK3D+FR2,14,-25,0
LWWW B4AH4A+FR1,10,-17,0
.long 0
#Doink
LWWW D3AM3A+FR4,58,-10,0
LWWW D3AM3A+FR2,61,2,0
LWWW D3AH3B+FR5,34,-4,0
LWWW D3AH3B+FR1,29,-8,0
LWWW D3AH3B+FR1,35,-14,0
LWWW D3AH3B+FR1,36,-18,0
LWWW D3AH3B+FR1,31,-20,0
LWWW D3AH3B+FR1,11,-17,0
LWWW D4ST4E+FR3,10,-30,0
LWWW D3AH3B+FR2,5,-24,0
LWWW D3AH3B+FR3,38,-20,0
LWWW D3AH3B+FR2,40,-26,0
LWWW D3AH3B+FR1,36,-18,0
LWWW D3AH3B+FR1,31,-20,0
LWWW D3AH3B+FR1,11,-18,0
LWWW D4ST4E+FR3,10,-30,0
LWWW D3AH3B+FR2,5,-24,0
.long 0
#Adam
.long 0
#Lex
LWWW L4AM4B+FR3,57,-12,0
LWWW L4AM4B+FR2,61,8,0
LWWW L4AH4A+FR7,39,0,0
LWWW L4AH4A+FR7,44,-10,0
LWWW L4AH4A+FR7,50,-16,0
LWWW L4AH4A+FR7,51,-20,0
LWWW L4AH4A+FR7,46,-22,0
LWWW L4AH4A+FR7,26,-19,0
LWWW L4ST4C+FR3,16,-25,0
LWWW L4AH4A+FR2,12,-21,0
LWWW L4AH4A+FR3,43,-17,0
LWWW L4AH4A+FR4,50,-21,0
LWWW L4AH4A+FR5,51,-22,0
LWWW L4AH4A+FR6,46,-23,0
LWWW L4AH4A+FR7,26,-19,0
LWWW L4ST4C+FR3,16,-25,0
LWWW L4AH4A+FR2,12,-21,0
.long 0
#react_tbl
.ref hrt_4_head_hit2_anim
.ref rzr_4_head_hit2_anim
.ref und_head_hit2_anim
.ref yok_4_head_hit2_anim
.ref shn_4_head_hit2_anim
.ref bam_head_hit2_anim
.ref dnk_head_hit2_anim
.ref lex_4_head_hit2_anim
.long hrt_4_head_hit2_anim ;0 Bret Hart
.long rzr_4_head_hit2_anim ;1 Razor Ramon
.long und_head_hit2_anim ;2 Undertaker
.long yok_4_head_hit2_anim ;3 Yokozuna
.long shn_4_head_hit2_anim ;4 Shawn Michaels
.long bam_head_hit2_anim ;5 Bam Bam
.long dnk_head_hit2_anim ;6 Doink
.long 0 ;7 spare
.long lex_4_head_hit2_anim ;8 Lex Luger
******************************************************************************
.end