wwf-wrestlemania/SHNSEQ2.ASM

2788 lines
61 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 "shnseq2.asm"
.title "routine punches and kicks"
.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 "shawnimg.h"
.include "display.equ"
.include "ring.equ"
.include "damage.equ"
******************************************************************************
* EXTERNAL REFERENCES
;BAM BAM
.ref B4YR3A,B3RN3A
;DOINK
.ref D4YR3B,D3RN3B
;BRET
.ref H4YR3A,H3RN3A
;LEX
.ref L4YR3B,L3RN3B
;RAZOR
.ref R4YR3A,R3RN3D
;SHAWN
.ref shn_faceup_getup_anim,shn_faceup_getup2_anim
.ref S4YR3A,S3RN3A
;TAKER
.ref U4YR3B,U3RN3A
;YOKO
.ref Y4YR3A,Y3RN3C
;MISC
.ref HIT_THE_MAT,CALL_MISSES,get_opp_process,get_leap
.ref set_target_offsets,start_run_anim,SMALL_BOUNCE
.ref start_run_flung,ckzpos,choose_2or4
.ref no_bk_xvel,win_announce,grnd_hit,SET_DIR_FACE
.ref DO_CROWD_CHEER,check_xvel,tgt_ground,set_tbukl_confine
.ref free_toss_check,setup_freetoss
.ref hit_nearest,set_tbukl_airmode,shn_2_hiptoss_anim
.ref check_raisearm_bit
.ref shn_combo_sliding_kicktoss_anim,DO_COMBO_MESS
.ref shn_combo_spinkick_anim,shn_4combo_bslam_anim
.ref CALL_ANI_AVERAGE_MOVE
.REF MOVE_NAME_ANNC
******************************************************************************
* SYMBOLS DEFINED IN THIS FILE
******************************************************************************
* EQUATES FOR THIS FILE
#*****************************************************************************
*
* #2 NORMAL PUNCH
SUBR shn_2_punch_anim
.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
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S2PU3C+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S2PU3C+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S2PU3C+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_PUNCH,3
WL 1,S2PU3C+FR2
.word ANI_ATTACK_ON, AMODE_PUNCH,52,91,28,8
WL 3,S2PU3C+FR3
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit
WL ANI_SET_YVEL,30000h
WL 3,S2PU3C+FR3
#no_hit
WL 1,S2PU3C+FR3
;one more tick if blocked, three more if hit, none if missed.
.word ANI_HMBWAIT,3,0,1
WL 2,S2PU3C+FR4
WL 2,S2PU3C+FR5
WL 2,S2PU3C+FR7
WL 2,S2PU3C+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#************
*
* #4 NORMAL PUNCH
SUBR shn_4_punch_anim
.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
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S4PU3D+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S4PU3D+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S4PU3D+FR3
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_PUNCH,3
WL 1,S4PU3D+FR3
.word ANI_ATTACK_ON, AMODE_PUNCH,49,85,26,10
WL 3,S4PU3D+FR4
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit
WL ANI_SET_YVEL,30000h
WL 3,S4PU3D+FR4
#no_hit
WL 1,S4PU3D+FR4
.word ANI_HMBWAIT,3,0,1
WL 2,S4PU3D+FR5
WL 2,S4PU3D+FR6
WL 2,S4PU3D+FR7
WL 2,S4PU3D+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
*************
*
* COMBO PUNCH
SUBR shn_combo_punch_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.WORD ANI_CLEAR_COMBO
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.word ANI_STARTATTACK,AT_LEAPING,15
.word ANI_SET_RPTCOUNT,3 ;rpt 2 times
WLW ANI_SET_XVEL,50000h,AM_FACE_REL
WL 2,S4PU3D+FR2
.word ANI_INC_COMBO
#rpt
.word ANI_CLR_BUTCOUNT
.word ANI_ATTACK_ON, AMODE_PUNCH2,21,40,62,34 ;mode,x,y,w,h
WL 1,S4MK3A+FR1
WLW ANI_SET_XVEL,0000h,AM_FACE_REL
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missedc
.word ANI_INC_COMBO
WLLL ANI_SETOPPVELS,0,8000h,0h ;x,y,z vels
WL 1,S4MK3A+FR1
WL 2,S4MK3A+FR2
WL 2,S4MK3A+FR3
.word ANI_ATTACK_ON, AMODE_PUNCH2,21,40,62,34 ;mode,x,y,w,h
WL 1,S4MK3A+FR4
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missedc
.word ANI_INC_COMBO
WLLL ANI_SETOPPVELS,0,8000h,0h ;x,y,z vels
WL 1,S4MK3A+FR4
WL 2,S4MK3A+FR5
WL ANI_IFNOTSTATUS,#missedc
WL ANI_IFBLOCKED,#missedbc ;Yes, I hit blocker
WL 2,S4MK3A+FR7
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#rpt
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#NO_FLYING
WL ANI_CHANGEANIM,shn_combo_flying_kick_anim
#NO_FLYING
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#NO_SPIN
WL ANI_CHANGEANIM,shn_combo_knee_anim
#NO_SPIN
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,1,#EXIT_PUNCH
WL ANI_CHANGEANIM,shn_combo_spinkick_anim
#EXIT_PUNCH
.word ANI_DETACH
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#missedc
WL 3,S4MK3A+FR6
WL 3,S4MK3A+FR6
#missedbc
WL 3,S4MK3A+FR7
.word ANI_DETACH
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL 3,S4MK3A+FR7
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#************
*
* #4 PUSH
SUBR shn_4_push_anim
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
WL ANI_SETFLAG,M_PUSH
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.word ANI_STARTATTACK,AT_PUSH,9
WL 3,S4PS3A+FR1
WL 3,S4PS3A+FR2
WL 3,S4PS3A+FR3
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ATTACK_ON, AMODE_PUSH,33,85,44,17 ;mode,x,y,w,h
WL 3,S4PS3A+FR4
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,40h,-70000h,#no_hit ;range,vel,addr
WL 15,S4PS3A+FR4
#no_hit
WL 3,S4PS3A+FR4
WL ANI_IFSTATUS,#hit
;If missed on push, hold a little longer
WL 5,S4PS3A+FR4
#hit
WL 4,S4PS3A+FR2
WL 4,S4PS3A+FR1
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #2 HEADBUTT
SUBR shn_2_butt_anim
.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
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S2BC3B+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S2BC3B+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S2BC3B+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_HDBUTT,6
WL 3,S2BC3B+FR4
WL 3,S2BC3B+FR5
.word ANI_ATTACK_ON, AMODE_HDBUTT,40,81,10,12 ;mode,x,y,w,h
WL 3,S2BC3B+FR6
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit
WL ANI_SET_YVEL,38000h
WL 6,S2BC3B+FR6
#no_hit
.word ANI_HMBWAIT,3,0,1
WL 3,S2BC3B+FR7
WL 3,S2BC3B+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#************
*
* #4 HEADBUTT
SUBR shn_4_butt_anim
.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
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S4BC3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S4BC3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S4BC3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_HDBUTT,6
WL 3,S4BC3A+FR4
WL 3,S4BC3A+FR5
.word ANI_ATTACK_ON, AMODE_HDBUTT,32,91,12,15 ;mode,x,y,w,h
WL 3,S4BC3A+FR6
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit
WL ANI_SET_YVEL,38000h
WL 6,S4BC3A+FR6
#no_hit
.word ANI_HMBWAIT,3,0,1
WL 3,S4BC3A+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#************
*
* COMBO HEADBUTT
SUBR shn_combo_butt_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SET_RPTCOUNT,4 ;5 times
WLW ANI_SET_XVEL,28000h,AM_FACE_REL
#butt_loop
.word ANI_CLR_BUTCOUNT
WL 2,S4BC3A+FR2
.word ANI_STARTATTACK,AT_HDBUTT,6
WL 2,S4BC3A+FR4
WL 2,S4BC3A+FR5
.word ANI_ATTACK_ON, AMODE_HDBUTT,32,71,42,35 ;mode,x,y,w,h
WL 1,S4BC3A+FR6
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_hit_c
.word ANI_INC_COMBO
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,0,18000h,0h ;x,y,z vels
WL ANI_SET_YVEL,18000h
WL 2,S4BC3A+FR6
WLW ANI_SET_XVEL,09000h,AM_FACE_REL
WL 3,S4BC3A+FR6
WL 2,S4BC3A+FR8
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#butt_loop
.word ANI_DETACH
WWWL ANI_IF_BUTCOUNT_LT,KICKB_COUNT,1,#NO_BODYSLAM
WL ANI_CHANGEANIM,shn_4combo_bslam_anim
#NO_BODYSLAM
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#NO_SLIDING
WL ANI_CHANGEANIM,shn_combo_flying_kick_anim
#NO_SLIDING
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,1,#MISSED_IT
WL ANI_CHANGEANIM,shn_combo_sliding_kicktoss_anim
#MISSED_IT
.word ANI_DETACH
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#no_hit_c
.word ANI_DETACH
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL 3,S4BC3A+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #2 KICK
SUBR shn_2_kick_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S2KM3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S2KM3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S2KM3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_KICK,5
WL 1,S2KM3A+FR2
WL 2,S2KM3A+FR3
WL 1,S2KM3A+FR4
WL ANI_SET_YVEL,20000h
.word ANI_ATTACK_ON, AMODE_KICK,27,59,68,20 ;mode,x,y,w,h
WL 3,S2KM3A+FR5
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_slide
WL ANI_SET_YVEL,30000h
#no_slide
.word ANI_HMBWAIT,4,0,2
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 2,S2KM3A+FR5
WL 3,S2KM3A+FR6
WL 2,S2KM3A+FR7
WL 3,S2KM3A+FR8
WL 2,S2KM3A+FR9
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#************
*
* #4 KICK
SUBR shn_4_kick_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S4KM3C+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S4KM3C+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S4KM3C+FR3
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_KICK,4
WL 1,S4KM3C+FR3
WL 2,S4KM3C+FR4
WL ANI_SET_YVEL,20000h
.word ANI_ATTACK_ON, AMODE_KICK,27,59,68,20 ;mode,x,y,w,h
WL 3,S4KM3C+FR5
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_slide
WL ANI_SET_YVEL,30000h
#no_slide
.word ANI_HMBWAIT,4,0,2
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 2,S4KM3C+FR6
WL 3,S4KM3C+FR7
WL 2,S4KM3C+FR8
WL 3,S4KM3C+FR9
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#************
*
* #4 Jump kick
SUBR shn_4_jump_kick_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.word ANI_STARTATTACK,AT_LEAPING,12
WL 3,S4KI3I+FR1
WL 3,S4KI3I+FR2
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 10,999,95,50,90000h,TGT_HEAD,70,100,10
WL 4,S4KI3I+FR3
WL 3,S4KI3I+FR4
WL 3,S4KI3I+FR5
.word ANI_ATTACK_ON, AMODE_FLYKICK,20,69,46,53 ;mode,x,y,w,h
WL 3,S4KI3I+FR6
.word ANI_ATTACK_OFF
.word ANI_ZERO_XZVELS
WWL ANI_SLIDE_BACK,30h,-70000h,#no_slide
WL ANI_SET_YVEL,30000h
#no_slide
WL ANI_IFNOTSTATUS,#missed
.WORD ANI_ADD_MOVE,MOVE_C_2,2,2
WL ANI_IFBLOCKED,#missedb
.word ANI_SHAKER,35
WL 3,S4KI3I+FR7
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_IFBLOCKED,#missedb
WL ANI_IFNOTSTATUS,#missed
.word ANI_DRAW_NAME,17
WL ANI_GOTO,#hit
#missedb
; WL 3,S4KI3I+FR7
;fall through
#missed
WL 3,S4KI3I+FR7
;fall through
#hit
WL 3,S4KI3I+FR8
WL 3,S4KI3I+FR9
.word ANI_OFFSET,-10,3,0
WL 3,S4KM3C+FR8
WL 3,S4KM3C+FR9
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
**************
*
* COMBO KICK
SUBR shn_combo_kick_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.WORD ANI_CLEAR_COMBO
WL 4,S4KM3C+FR2
.word ANI_STARTATTACK,AT_KICK,4
WL 3,S4KM3C+FR3
WL 3,S4KM3C+FR4
WL ANI_SET_YVEL,20000h
.word ANI_CLR_STATUS
.WORD ANI_INC_COMBO
.word ANI_ATTACK_ON, AMODE_KICK,27,59,68,20 ;mode,x,y,w,h
WL 3,S4KM3C+FR5
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed_c
WLLL ANI_SETOPPVELS,0,10000h,0h ;x,y,z vels
.WORD ANI_INC_COMBO
WL 3,S4KM3C+FR5
.word ANI_SET_RPTCOUNT,3 ;5 times
#kick_loop
.word ANI_CLR_BUTCOUNT
WL 2,S4KM3C+FR2
.word ANI_STARTATTACK,AT_KICK,4
WL 1,S4KM3C+FR3
WL 2,S4KM3C+FR4
WL ANI_SET_YVEL,20000h
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_KICK,27,59,68,20 ;mode,x,y,w,h
WL 1,S4KM3C+FR5
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed_c
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,0,10000h,0h ;x,y,z vels
.WORD ANI_INC_COMBO
WL 2,S4KM3C+FR5
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#kick_loop
WLW ANI_SET_XVEL,18000h,AM_FACE_REL
.word ANI_CLR_BUTCOUNT
WL 2,S4KM3C+FR2
.word ANI_STARTATTACK,AT_KICK,4
WL 1,S4KM3C+FR3
WL 2,S4KM3C+FR4
WL ANI_SET_YVEL,20000h
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_KICK,27,59,68,20 ;mode,x,y,w,h
WL 1,S4KM3C+FR5
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed_c
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,0,10000h,0h ;x,y,z vels
.WORD ANI_INC_COMBO
WL 2,S4KM3C+FR5
WWWL ANI_IF_BUTCOUNT_LT,KICKB_COUNT,1,#NO_SLAMS
WL ANI_CHANGEANIM,shn_4combo_bslam_anim
#NO_SLAMS
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,1,#NO_BUTTS
WL ANI_CHANGEANIM,shn_combo_flying_kick_anim
#NO_BUTTS
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#missed_c
WL ANI_CHANGEANIM,shn_combo_butt_anim
#missed_c
.word ANI_DETACH
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL 4-1,S4KM3C+FR6
WL 4-1,S4KM3C+FR7
WL 4-1,S4KM3C+FR8
WL 3,S4KM3C+FR9
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
;#************
;*
;* #3 BACKFLIP KICK
;
;;FIX!!! MAKE THIS A COOL MOVE 1/12/95
;
; SUBR shn_backflip_kick_anim
;
; .word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
; .word ANI_ZEROVELS
; .word ANI_SETSPEED,100h
;
; .word ANI_STARTATTACK,AT_KICK,12
; WL 3,S3KF3B+FR1
; WL 3,S3KF3B+FR2
; WL 1,S3KF3B+FR3
; WLW ANI_SET_XVEL,-20000h,AM_FACE_REL
; WL ANI_SET_YVEL,5c000h
; WL 2,S3KF3B+FR3
; .word ANI_OFFSET,-24,4,0
; WL 3,S3KF3B+FR4
; .word ANI_ATTACK_ON,AMODE_SHNBFKIK,17,40,47,62
; WL 3,S3KF3B+FR5
; .word ANI_ATTACK_OFF
; WL 3,S3KF3B+FR6
; WL 3,S3KF3B+FR7
; WL 3,S3KF3B+FR8
; WL 3,S3KF3B+FR9
; WL 3,S3KF3B+FR10
; .word ANI_WAITHITGND
; .WORD ANI_ADD_MOVE,MOVE_C_3,2,2
; .word ANI_ZEROVELS
; WL 3,S3KF3B+FR11
; WL 3,S3KF3B+FR12
; .word ANI_FACEDOWN
;
; .word ANI_SETMODE,MODE_NORMAL
; .word ANI_END
#*****************************************************************************
*
* #2 STOMP ON FALLEN OPPONENT
SUBR shn_2_stomp_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S2MP2A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S2MP2A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S2MP2A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_STOMP,10
;if we're not going to hit, do a LEAPAT
.word ANI_ATTACK_ON_Z,AMODE_HITCHECK,0,0,-30,5,5,40
WL 1,S2MP2A+FR3
.word ANI_ATTACK_OFF
WL ANI_SET_YVEL,30000h
WL ANI_IFSTATUS,#no_leapat
.word ANI_TARGET,TGT_CHEST,TGT_GROIN,ATM_CLOSEST
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 12,999,160,140,90000h,TGT_USER,28,0,-50
.word ANI_STARTATTACK,AT_STOMP,12
WL ANI_CODE,no_bk_xvel
#no_leapat
WL 3,S2MP2A+FR3
WL 3,S2MP2A+FR4
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_SHAKEALL,1
.word ANI_SHAKER,26
.word ANI_ATTACK_ON_Z,AMODE_STOMP,16,-8,-50,27,33,60
WL 3,S2MP2A+FR5
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_2,2,2
WL ANI_IFSTATUS,#no_miss
WL ANI_CODE,CALL_MISSES
#no_miss
WL 4,S2MP2A+FR6
WL 4,S2MP2A+FR7
WL 4,S2MP2A+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #4 STOMP ON FALLEN OPPONENT
SUBR shn_4_stomp_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S4MP4C+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S4MP4C+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S4MP4C+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
;if we're not going to hit, do a LEAPAT
.word ANI_ATTACK_ON_Z,AMODE_HITCHECK,0,0,-10,5,5,60
WL 1,S4MP4C+FR3
.word ANI_ATTACK_OFF
WL ANI_IFSTATUS,#no_leapat
.word ANI_TARGET,TGT_CHEST,TGT_GROIN,ATM_CLOSEST
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
; LEAPATOPP 12,999,112,96,90000h,TGT_USER,12,0,45
LEAPATOPP 12,999,160,140,90000h,TGT_USER,12,0,45
.word ANI_STARTATTACK,AT_STOMP,12
WL ANI_CODE,no_bk_xvel
#no_leapat
.word ANI_STARTATTACK,AT_STOMP,6
WL 3,S4MP4C+FR3
WL 3,S4MP4C+FR4
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_SHAKEALL,1
.word ANI_SHAKER,26
.word ANI_ATTACK_ON_Z, AMODE_STOMP,-3,-13,-10,44,35,60
WL 3,S4MP4C+FR5
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_2,2,2
WL ANI_IFSTATUS,#no_miss
WL ANI_CODE,CALL_MISSES
#no_miss
WL 4,S4MP4C+FR6
WL 4,S4MP4C+FR7
WL 4,S4MP4C+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* TURNBUCKLE STOMP
SUBR shn_bstomp_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_NOCONFINE|MODE_NOGRAVITY
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING
.word ANI_SET_WRESTLER_XFLIP
.word ANI_SCROLL_CTRL,SC_RESTORE
WL 4,S4MP4C+FR2
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 35,190,190,190,90000h,TGT_CHEST,30,6,40
.word ANI_STARTATTACK,AT_LEAPING,35
; .word ANI_SETPLYRMODE,MODE_INAIR2
WL ANI_CODE,set_tbukl_airmode
.word ANI_GRAVITY_ON
.word ANI_SHAKECORNER
WL ANI_CODE,check_xvel
WL 4,S4MP4C+FR3
;attack box dimensions depends on opp mode
.word ANI_ATTACK_ON_Z,AMODE_BSTOMP,-26,0,-10,82,40,70
WWL ANI_IFOPPMODE,MODE_ONGROUND,#opp_onground
WWL ANI_IFOPPMODE,MODE_DEAD,#opp_onground
.word ANI_ATTACK_ON_Z,AMODE_BSTOMP,-26,50,-10,82,40,70
#opp_onground
WL 12,S4MP4C+FR4
WL ANI_CODE,set_tbukl_confine
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_ATTACK_OFF
.word ANI_SHAKER,30
.word ANI_SHAKEALL,1
WL ANI_CODE,HIT_THE_MAT
.WORD ANI_ADD_MOVE,MOVE_C_2,2,2
WL ANI_IFSTATUS,#hit
;missed
WL ANI_CODE,CALL_MISSES
; WL ANI_CODE,tbukl_miss_damage
.word ANI_BOUNCE,4
WL ANI_GOTO,#common
#hit
;hit. bounce off.
WL ANI_SET_YVEL,40000h
WLW ANI_SET_ZVEL,-20000h,AM_ABS
WLW ANI_SET_XVEL,20000h,AM_FACE_REL
#common
WL 2,S4MP4C+FR5
WL 3,S4MP4C+FR6
WL 4,S4MP4C+FR7
.word ANI_SETPLYRMODE,MODE_INAIR
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,SMALL_BOUNCE
WL 4,S4MP4C+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* TURNBUCKLE ELBOW DROP
#yoff equ 33
SUBR shn_belbow_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_NOCONFINE|MODE_NOGRAVITY
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING
.word ANI_SET_WRESTLER_XFLIP
.word ANI_SCROLL_CTRL,SC_RESTORE
WL 3,S4PJ3E+FR4
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 31,190,190,190,90000h,TGT_CHEST,22,11+#yoff,50
.word ANI_STARTATTACK,AT_LEAPING,31
; .word ANI_SETPLYRMODE,MODE_INAIR2
WL ANI_CODE,set_tbukl_airmode
.word ANI_GRAVITY_ON
.word ANI_SHAKECORNER
;Check x vel to make sure we aren't going to land on ropes!
WL ANI_CODE,check_xvel
.word ANI_OFFSET,0,#yoff,0
WL 3,S4PJ3E+FR5
WL 3,S4PJ3E+FR6
.word ANI_ATTACK_ON_Z,AMODE_BSTOMP,-26,0,-10,82,40,70
WWL ANI_IFOPPMODE,MODE_ONGROUND,#opp_onground
WWL ANI_IFOPPMODE,MODE_DEAD,#opp_onground
.word ANI_ATTACK_ON_Z,AMODE_BSTOMP,-26,40,-10,82,40,70
#opp_onground
WL 6,S4PJ3E+FR7
WL ANI_CODE,set_tbukl_confine
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_ATTACK_OFF
.word ANI_SHAKER,30
.word ANI_SHAKEALL,1
WL ANI_CODE,HIT_THE_MAT
.word ANI_SETPLYRMODE,MODE_ONGROUND
.WORD ANI_ADD_MOVE,MOVE_C_2,2,2
WL ANI_IFSTATUS,#hit
;missed
WL ANI_CODE,CALL_MISSES
; WL ANI_CODE,tbukl_miss_damage
WL ANI_GOTO,#AVOID_HIT_CALL
#hit
.word ANI_DRAW_NAME,18
WL ANI_CODE,CALL_ANI_AVERAGE_MOVE
#AVOID_HIT_CALL
.word ANI_BOUNCE,5
.word ANI_SETPLYRMODE,MODE_INAIR
WL 2,S4PJ3E+FR8
WL 4,S4PJ3E+FR9
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,SMALL_BOUNCE
WL ANI_CHANGEANIM,shn_faceup_getup2_anim
#*****************************************************************************
*
* #2 FALLING PUNCH
SUBR shn_2_falling_punch_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S2PJ3D+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S2PJ3D+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S2PJ3D+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 3,S2PJ3D+FR2
WL 3,S2PJ3D+FR3
.word ANI_OFFSET,0,64,0
WL ANI_CODE,elbow_tgt2
WL ANI_CODE,tgt_ground
; LEAPATOPP 20,999,112,96,90000h,TGT_USER,-10,0,-50
LEAPATOPP 20,999,160,140,90000h,TGT_USER,-10,0,-50
.word ANI_STARTATTACK,AT_LBDROP,10
WL 3,S2PJ3D+FR4
WL 3,S2PJ3D+FR5
.word ANI_ATTACK_ON_Z,AMODE_LBOWDROP,-24,0,-40,26,56,50
WL 1,S2PJ3D+FR6
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_ATTACK_OFF
.word ANI_SHAKEALL,1
.word ANI_SHAKER,25
.WORD ANI_ADD_MOVE,MOVE_C_2,2,2
WL ANI_IFSTATUS,#hit2
;missed
WL ANI_CODE,SMALL_BOUNCE
WL ANI_CODE,CALL_MISSES
WL ANI_GOTO,#cont2
#hit2
WL ANI_CODE,CALL_ANI_AVERAGE_MOVE
WL ANI_CODE,HIT_THE_MAT
#cont2
.word ANI_BOUNCE,4
WL 4,S2PJ3D+FR7
WL 4,S2PJ3D+FR8
.word ANI_XFLIP
WL 1,S3RL3A+FR6
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,SMALL_BOUNCE
WL 4,S3RL3A+FR6
WL ANI_CHANGEANIM,shn_faceup_getup_anim
#*************************
*
* #4 FALLING PUNCH
SUBR shn_4_falling_punch_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S4PJ3F+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S4PJ3F+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S4PJ3F+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 3,S4PJ3F+FR2
.word ANI_OFFSET,0,71,0
WL ANI_CODE,#set_target
WL ANI_CODE,tgt_ground
; LEAPATOPP 20,999,72,48h,90000h,TGT_USER,19,0,30
LEAPATOPP 20,999,160,140,90000h,TGT_USER,19,0,30
WL ANI_CODE,#zero_x_4
WL 3,S4PJ3F+FR3
WL 3,S4PJ3F+FR4
WL 3,S4PJ3F+FR5
.word ANI_ATTACK_ON_Z,AMODE_LBOWDROP,8,2,-10,23,56,50
WL 1,S4PJ3F+FR6
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_ATTACK_OFF
.word ANI_SHAKEALL,1
.word ANI_SHAKER,25
.WORD ANI_ADD_MOVE,MOVE_C_2,2,2
WL ANI_IFSTATUS,#hit4
;missed
WL ANI_CODE,SMALL_BOUNCE
WL ANI_CODE,CALL_MISSES
WL ANI_GOTO,#cont4
#hit4
WL ANI_CODE,CALL_ANI_AVERAGE_MOVE
WL ANI_CODE,HIT_THE_MAT
#cont4
.word ANI_BOUNCE,4
WL 4,S4PJ3F+FR7
WL 1,S4PJ3F+FR8
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,SMALL_BOUNCE
WL 4,S4PJ3F+FR8
WL ANI_CHANGEANIM,shn_faceup_getup_anim
#set_target
calla get_opp_process
move a0,a11
move *a13(CLOSEST_XDIST),a0
cmpi >40,a0
jrlt #drop
;We are to side of fallen opponent, we must float toward
;his head or his knees
;Take into account my flip as well as my opponents flip!
move *a13(OBJ_CONTROL),a14
andi M_FLIPH,a14
move *a11(OBJ_CONTROL),a0
andi M_FLIPH,a0
cmp a0,a14
jrnz #head
movi TGT_KNEES,a0
calla set_target_offsets
rets
#head
movi TGT_HEAD,a0
calla set_target_offsets
rets
#drop
;Just drop straight down
movi TGT_CHEST,a0
calla set_target_offsets
rets
;#zero_x_2
; move *a13(CLOSEST_XDIST),a0
; cmpi 32,a0
; jrgt #ok2 ;Is he to the side?
;
;;Don't float if dropping straight down
; clr a0
; move a0,*a13(OBJ_XVEL),L
;#ok2 rets
;other scripts in this file use this one, thus the file-scope label
zero_x
#zero_x_4
move *a13(CLOSEST_XDIST),a0
cmpi 64,a0
jrgt #ok4 ;Is he to the side?
;Don't float if dropping straight down
clr a0
move a0,*a13(OBJ_XVEL),L
#ok4 rets
#*****************************************************************************
*
* #2 KNEE
SUBR shn_2_knee_anim
.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
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S2NM3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S2NM3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S2NM3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_KNEE,6
WL 3,S2NM3A+FR2
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
; LEAPATOPP 21,999,32,20,90000h,TGT_CHEST,50,80,0
WL 3,S2NM3A+FR3
.word ANI_ATTACK_ON,AMODE_KNEE,36,28,38,49 ;mode,x,y,w,h
WL 3,S2NM3A+FR4
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_2,2,2
WWL ANI_SLIDE_BACK,28h,-70000h,#no_hit
#no_hit
WL 13,S2NM3A+FR5
.word ANI_ZERO_XZVELS
WL 3,S2NM3A+FR6
WL 3,S2NM3A+FR7
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#************
*
* #4 KNEE
SUBR shn_4_knee_anim
.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
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S4NM3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S4NM3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,S4NM3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_KNEE,6
WL 3,S4NM3A+FR3
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
; LEAPATOPP 21,999,32,20,90000h,TGT_CHEST,45,80,0
.word ANI_ATTACK_ON,AMODE_KNEE,11,22,58,60 ;mode,x,y,w,h
WL 3,S4NM3A+FR4
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_2,2,2
WWL ANI_SLIDE_BACK,28h,-70000h,#no_hit
#no_hit
WL 13,S4NM3A+FR4
WL 3,S4NM3A+FR5
WL 3,S4NM3A+FR6
WL 3,S4NM3A+FR7
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR shn_combo_knee_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WL 3,S4NM3A+FR2
WL 3,S4NM3A+FR3
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 21,999,32,20,90000h,TGT_CHEST,45,78,0
.word ANI_ATTACK_ON,AMODE_BIGKNEE,11,22,58,60 ;mode,x,y,w,h
WL 3,S4NM3A+FR4
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,28h,-70000h,#no_hit_c
.WORD ANI_INC_COMBO
#no_hit_c
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL 13,S4NM3A+FR4
WL 3,S4NM3A+FR5
WL 3,S4NM3A+FR6
WL 3,S4NM3A+FR7
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* GRAB & FLING OPPONENT (INTO A RUN)
SUBR shn_2_grabfling_anim
.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,10
WL 2,S1TT5Z+FR2
WL 2,S1TT5Z+FR3
WL ANI_GOTO,#cont
SUBR shn_4_grabfling_anim
.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,8
#cont
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 8,50,20,40,90000h,TGT_CHEST,40,0,25
WL ANI_SET_YVEL,0000h
WL 5,S4GF3B+FR1
.word ANI_ATTACK_ON, AMODE_PUPPET_NOFLAIL,33,56,44,18 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,6,S4GF3B+FR2
.word ANI_ZERO_XZVELS
WWL ANI_WAITHITOPP,2,S4GF3B+FR2
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missedb
WL ANI_IFBLOCKED,#missedb
;got him
.WORD ANI_ADD_MOVE,MOVE_C_2,2,2
WL ANI_CODE,DO_GRUNT
.ref CALL_SETUP
WL ANI_CODE,CALL_SETUP
.word ANI_ATTACHZ,0,0,10 ;x & y don't matter.
.word ANI_SETOPPMODE,MODE_GHOST
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_KEEPATTACHED
; attacker sequence
WWLLW ANI_SUPERSLAVE2,10,S4GF3B+FR2,#puppet_tbl,0
WWLLW ANI_SUPERSLAVE2,6,S4GF3B+FR3,#puppet_tbl,1
WWLLW ANI_SUPERSLAVE2,4,S4GF3B+FR4,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,4,S4GF3B+FR5,#puppet_tbl,3
WWLLW ANI_SUPERSLAVE2,4,S4GF3B+FR6,#puppet_tbl,4
WWLLW ANI_SUPERSLAVE2,4,S4GF3B+FR7,#puppet_tbl,5
WL ANI_SLAVEANIM,#strt_run_tbl
.word ANI_CLROPPMODE,MODE_GHOST
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_DETACH
WL 6,S4GF3B+FR8
WL 4,S4GF3B+FR10
.word ANI_OFFSET,-4,0,0 ;x,y,z
.word ANI_SETFACING
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#missedb
.ref fling_delay
WL ANI_CODE,fling_delay
WL ANI_IFNOTSTATUS,#missed
WL 25,S4GF3B+FR3
#missed
WL ANI_CODE,CALL_MISSES
WL 6,S4GF3B+FR3
WL 3,S4GF3B+FR2
WL 3,S4GF3B+FR1
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR DO_GRUNT
WRSNDX 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
LWWW H4YR3A+FR1,53,7,1
LWWW H4YR3A+FR2,49,9,1
LWWW H4YR3A+FR3,48,9,1
LWWW H4YR3A+FR5,43,11,1
LWWW H3RN3A+FR1,8,5,0
LWWW H3RN3A+FR2,-25,8,0
#Razor
LWWW R4YR3A+FR1,32,17,0
LWWW R4YR3A+FR2,21,20,0
LWWW R4YR3A+FR3,1,11,0
LWWW R4YR3A+FR4,4,15,0
LWWW R3RN3D+FR10,1,16,0
LWWW R3RN3D+FR11,-20,16,0
#Taker
LWWW U4YR3B+FR2,34,18,0
LWWW U4YR3B+FR3,37,16,0
LWWW U4YR3B+FR4,29,24,0
LWWW U4YR3B+FR5,27,24,0
LWWW U3RN3A+FR2,-11,15,0
LWWW U3RN3A+FR2,-25,14,0
#Yokozuna
LWWW Y4YR3A+FR1,59,11,1
LWWW Y4YR3A+FR4,37,13,1
LWWW Y4YR3A+FR5,32,11,1
LWWW Y4YR3A+FR7,5,3,1
LWWW Y3RN3C+FR7,10,13,0
LWWW Y3RN3C+FR8,-10,12,0
#Shawn
LWWW S4YR3A+FR2,38,5,1
LWWW S4YR3A+FR3,52,-3,1
LWWW S4YR3A+FR5,21,11,1
LWWW S4YR3A+FR6,19,10,1
LWWW S3RN3A+FR2,8,11,0
LWWW S3RN3A+FR3,-20,11,0
#BamBam
LWWW B4YR3A+FR3,37,10,0
LWWW B4YR3A+FR4,39,8,0
LWWW B4YR3A+FR5,42,7,0
LWWW B4YR3A+FR7,-1,6,0
LWWW B3RN3A+FR1,-14,22,0
LWWW B3RN3A+FR2,-36,22,0
#Doink
LWWW D4YR3B+FR1,64,16,1
LWWW D4YR3B+FR2,60,20,1
LWWW D4YR3B+FR3,47,19,1
LWWW D4YR3B+FR4,38,20,1
LWWW D3RN3B+FR3,16,20,0
LWWW D3RN3B+FR4,-15,18,0
#Adam
.long 0
#Lex
LWWW L4YR3B+FR1,66,16,1
LWWW L4YR3B+FR2,54,10,1
LWWW L4YR3B+FR3,38,13,1
LWWW L4YR3B+FR4,13,11,1
LWWW L3RN3B+FR2,-5,19,0
LWWW L3RN3B+FR3,0,13,0
#strt_run_tbl
.long start_run_flung,start_run_flung,start_run_flung
.long start_run_flung,start_run_flung,start_run_flung
.long start_run_flung,start_run_flung,start_run_flung
.long start_run_flung,start_run_flung,start_run_flung
#*****************************************************************************
*
* CLIMB UP TURNBUCKLES
SUBR shn_climb_up_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SCROLL_CTRL,SHN_TBUKLY
WL 3,S2CT2A+FR4
WL ANI_CODE,tgt_tbukl
.word ANI_LEAPATPOS,24,200,-12,12,0 ;#ticks,dist,xoff,yoff,zoff
.word ANI_SETPLYRMODE,MODE_INAIR
WL 6,S2CT2A+FR5
WL 5,S2CT2A+FR6
WL 5,S2CT2A+FR7
WL 4,S2CT2A+FR8
WL 4,S2CT2A+FR9
.word ANI_ZEROVELS
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_NOGRAVITY
.word ANI_SETPLYRMODE,MODE_ONTURNBKL
.word ANI_SETFACING
.word ANI_SHAKECORNER
.word ANI_OFFSET,2,0,0 ;x,y,z
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_NOGRAVITY
.word ANI_SCROLL_CTRL,SC_RESTORE
WL ANI_CODE,tbukl_flip
#repeat
WL 5,S4SB4B+FR1
WL ANI_CODE,tbukl_flip
WL 5,S4SB4B+FR2
WL ANI_CODE,tbukl_flip
WL 5,S4SB4B+FR3
WL ANI_CODE,tbukl_flip
WL 5,S4SB4B+FR4
WL ANI_CODE,tbukl_flip
WL 5,S4SB4B+FR5
WL ANI_CODE,tbukl_flip
WL 5,S4SB4B+FR6
WL ANI_CODE,tbukl_flip
WL 5,S4SB4B+FR7
WL ANI_CODE,tbukl_flip
WL 5,S4SB4B+FR8
WL ANI_CODE,tbukl_flip
WL ANI_GOTO,#repeat
#*****************************************************************************
*
* CLIMB DOWN TURNBUCKLES
SUBR shn_climb_down_anim
.word ANI_SETMODE,MODE_UNINT | MODE_NOAUTOFLIP | MODE_NOCONFINE | MODE_NOGRAVITY
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SCROLL_CTRL,SC_RESTORE
WL ANI_CODE,face_inside
.word ANI_SHAKECORNER
WL 3,S4MP4D+FR1
.word ANI_OFFSET,0,15,0
WL 3,S4MP4D+FR2
WLW ANI_SET_XVEL,10000h,AM_FACE_REL
WLW ANI_SET_ZVEL,10000h,AM_ABS
WL ANI_SET_YVEL,20000h
.word ANI_GRAVITY_ON
WL 8,S4MP4D+FR3
WL 1,S4MP4D+FR5
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 3,S4MP4D+FR6
WL 3,S4MP4D+FR7
WL 3,S4MP4D+FR8
.word ANI_FACEDOWN
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
******************************************************************************
* Check to see if opponent is getting in/out of ring, and turn accordingly!
*
* Rules: If your opponent is inside, always face inside. If he's outside,
* face in 4 or 6, depending on opp position.
SUBR tbukl_flip
calla get_opp_process ;closest opponent process
move *a0(INRING),a0 ;0 = in ring, 1 = outside
jruc #cont
**********
* Always face inside
SUBR face_inside
clr a0
#cont move *a13(OBJ_XPOSINT),a14
cmpi RING_X_CENTER,a14
jrge #onrt
#onlft ;On left turnbuckle
move a0,a0
jrz #no
jruc #out
#onrt ;On right turnbuckle
move a0,a0
jrz #yes
#out ;opponent is outside
move *a13(NEW_FACING_DIR),a14
btst MOVE_LEFT_BIT,a14
jrnz #yes
;fall #no
#no ;doink is the opposite...
move *a13(WRESTLERNUM),a14
cmpi W_DOINK,a14
jreq #yfx
;so is yoko.
cmpi W_YOKO,a14
jreq #yfx
#nfx move *a13(OBJ_CONTROL),a14
andni M_FLIPH,a14
move a14,*a13(OBJ_CONTROL)
rets
#yes ;doink is the opposite...
move *a13(WRESTLERNUM),a14
cmpi W_DOINK,a14
jreq #nfx
;so is yoko.
cmpi W_YOKO,a14
jreq #nfx
#yfx move *a13(OBJ_CONTROL),a14
ori M_FLIPH,a14
move a14,*a13(OBJ_CONTROL)
rets
#*****************************************************************************
*
* #3 FLYING KICK (combo version)
SUBR shn_combo_flying_kick_anim
.word ANI_ZERO_XZVELS
WL ANI_SET_YVEL,44000h
WL 2,S3DC3A+FR4
.word ANI_OFFSET,0,47h,0
WL 3,S3DC3A+FR5
WL 7,S3DC3A+FR6
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_FLYKICK,23,-42,59,60
WL 3,S3DC3A+FR7
.word ANI_ATTACK_OFF
.WORD ANI_INC_COMBO
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL 3,S3DC3A+FR8
WL 3,S3DC3A+FR9
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKER,20
WL 5,S3DC3A+FR10
.word ANI_XFLIP
;and now get up
;Getting up, set no_collis
.word ANI_SETMODE,MODE_UNINT|MODE_NOCOLLIS|MODE_NOAUTOFLIP ;uninterruptable
WL ANI_CODE,choose_2or4
WL ANI_IFSTATUS,getup_in_4
WL ANI_GOTO,getup_in_2
#*****************************************************************************
*
* #3 FLYING KICK
SUBR shn_flying_kick_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 3,S3DC3A+FR3
;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,19
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 18,999,160,65,90000h,TGT_HEAD,30,100,0
WL ANI_CODE,no_bk_xvel
WL 2,S3DC3A+FR4
.word ANI_OFFSET,0,47h,0
WL 3,S3DC3A+FR5
WL 6,S3DC3A+FR6
.word ANI_ATTACK_ON, AMODE_FLYKICK,23,-22,49,40
WL 5,S3DC3A+FR7
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_1,2,2
WL 3,S3DC3A+FR8
WL 3,S3DC3A+FR9
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKER,20
WL 5,S3DC3A+FR10
.word ANI_XFLIP
;and now get up
;Getting up, set no_collis
.word ANI_SETMODE,MODE_UNINT|MODE_NOCOLLIS|MODE_NOAUTOFLIP ;uninterruptable
WL ANI_CODE,choose_2or4
WL ANI_IFSTATUS,getup_in_4
getup_in_2
WL 3,S3RL3A+FR6
WL 3,S3RL3A+FR7
WL 3,S3RL3A+FR8
WL 3,S3GU2A+FR2
WL 3,S3GU2A+FR3
WL 3,S3GU2A+FR4
WL 3,S3GU2A+FR5
WL 3,S3GU2A+FR6
WL 3,S3GU2A+FR7
WL 2,S3GU2A+FR8
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 2,S3GU2A+FR8
WL 4,S3GU2A+FR9
.word ANI_SAFE_TIME,20
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss
.word ANI_ATTACK_ON,AMODE_HITCHECK,33,85,44,17
WL 1,S3GU2A+FR9
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,shn_4_push_anim
#no_freetoss
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
getup_in_4
WL 3,S3RL3A+FR4
WL 3,S3RL3A+FR3
WL 3,S3RL3A+FR2
WL 3,S3GU4A+FR2
WL 3,S3GU4A+FR3
WL 3,S3GU4A+FR4
WL 3,S3GU4A+FR5
WL 3,S3GU4A+FR6
WL 3,S3GU4A+FR7
WL 2,S3GU4A+FR8
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 2,S3GU4A+FR8
WL 4,S3GU4A+FR9
.word ANI_SAFE_TIME,20
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss2
.word ANI_ATTACK_ON,AMODE_HITCHECK,33,85,44,17
WL 1,S3GU4A+FR9
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss2
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,shn_4_push_anim
#no_freetoss2
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#ckongrnd
move *a13(ANIMODE),a1
andni MODE_STATUS,a1
move a1,*a13(ANIMODE)
calla get_opp_process ;closest opponent process
move *a0(PLYRMODE),a0
cmpi MODE_ONGROUND,a0
jrz #inplace
rets
#inplace
move *a13(ANIMODE),a1
ori MODE_STATUS,a1
move a1,*a13(ANIMODE)
rets
******************************************************************************
*
* SPECIAL FUNCTIONS
#**********
* If our facings match, go for the knees. If they differ, go for the chest.
* (jump across the centerline)
elbow_tgt1
calla get_opp_process
move a0,a11
move *a13(FACING_DIR),a0
move *a11(FACING_DIR),a1
andi MOVE_RIGHT|MOVE_LEFT,a0
andi MOVE_RIGHT|MOVE_LEFT,a1
cmp a0,a1
jrne #head
movi TGT_KNEES,a0
calla set_target_offsets
rets
#head
movi TGT_CHEST,a0
calla set_target_offsets
rets
#**********
* just like elbow_tgt1, only backwards (stay on one side of the centerline)
*
elbow_tgt2
calla get_opp_process
move a0,a11
move *a13(FACING_DIR),a0
move *a11(FACING_DIR),a1
andi MOVE_RIGHT|MOVE_LEFT,a0
andi MOVE_RIGHT|MOVE_LEFT,a1
cmp a0,a1
jreq #head
movi TGT_GROIN,a0
calla set_target_offsets
rets
#head
movi TGT_CHEST,a0
calla set_target_offsets
rets
#*****************************************************************************
SUBR shn_roll_frames
.word 7 ;speed
.long 50000h ;z velocity
.long 10000h*9/255 ;inv multiply (0-255 -> 0-11)
.long S3RL3A+FR10 ;0
.long S3RL3A+FR1 ;1
.long S3RL3A+FR2 ;2
.long S3RL3A+FR3 ;3
.long S3RL3A+FR4 ;4
.long S3RL3A+FR5 ;5
.long S3RL3A+FR6 ;6
.long S3RL3A+FR7 ;7
.long S3RL3A+FR8 ;8
.long S3RL3A+FR9 ;9
.long 0,0,0,0,0,0,0
;FIX!! Make throw out of ring if close to ropes
#*****************************************************************************
*
* FLIP/FALL FROM HIPTOSS
SUBR shn_tossed_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_SETSPEED,100h
WL ANI_CODE,ckzpos
.word ANI_SETPLYRMODE,MODE_ONGROUND
.word ANI_GETUP,STAY_TIME
WL ANI_CODE,HIT_THE_MAT
WLW ANI_SET_XVEL,20000h,AM_HIT_REL
WL ANI_SET_YVEL,50000h
.word ANI_OFFSET,15,0,0 ;x,y,z
WL 4,S3CP3B+FR1
WL 4,S3CP3B+FR2
WL 4,S3CP3B+FR3
WL 4,S3CP3B+FR4
WL 4,S3CP3B+FR5
WL 4,S3CP3B+FR6
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
.word ANI_ZEROVELS
WL 4,S3CP3B+FR7
.word ANI_WAITROLL
WL ANI_CHANGEANIM,shn_faceup_getup_anim
; .word ANI_END
;FIX!! Make throw out of ring if close to ropes
#*****************************************************************************
*
* FLIP/FALL FROM BAM BAM DUCK TOSS
SUBR shn_tossed2_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_SETSPEED,100h
WL ANI_CODE,ckzpos
WLW ANI_SET_XVEL,60000h,AM_HIT_REL
WL ANI_SET_YVEL,30000h
.word ANI_OFFSET,20,20,0 ;x,y,z
WL 4,S3OS3X+FR8
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKEALL,2
.word ANI_SHAKER,30
.word ANI_GETUP,STAY_TIME
.word ANI_DAMAGE,D_HIPTOSS
WL 4,S3OS3X+FR9
WL 4,S3OS3X+FR10
WLW ANI_SET_XVEL,20000h,AM_HIT_REL
WL ANI_SET_YVEL,50000h
.word ANI_OFFSET,15,0,0 ;x,y,z
WL 4,S3CP3B+FR1
WL 4,S3CP3B+FR2
WL 4,S3CP3B+FR3
WL 4,S3CP3B+FR4
WL 4,S3CP3B+FR5
WL 4,S3CP3B+FR6
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
.word ANI_ZEROVELS
WL 4,S3CP3B+FR7
.word ANI_WAITROLL
WL ANI_CHANGEANIM,shn_faceup_getup_anim
; .word ANI_END
#*****************************************************************************
*
SUBR shn_knockdwn_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETPLYRMODE,MODE_ONGROUND
.word ANI_SETSPEED,100h
.word ANI_XFLIP
WL 2,S3GU4A+FR9
WL 2,S3GU4A+FR6
WL 2,S3GU4A+FR4
WL ANI_SET_YVEL,39000h
WL 3,S3CP3B+FR2
.word ANI_DEBRIS,100,1,0,8,0 ;%chance, tbl index, x,y,z off
WL 3,S3CP3B+FR3
WL 3,S3CP3B+FR4
WL 3,S3CP3B+FR5
WL 3,S3CP3B+FR6
WL 6,S3CP3B+FR7
.ref am_I_dead
WL ANI_CODE,am_I_dead
;If I'm dead, goto fall back
WL ANI_IFNOTSTATUS,#nodead
.word ANI_SETPLYRMODE,MODE_DEAD
.word ANI_END
#nodead
.word ANI_WAITROLL
WL ANI_CHANGEANIM,shn_faceup_getup_anim
*
SUBR shn_climbthru_side_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE | MODE_NOGRAVITY|MODE_NOCOLLIS
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
WL ANI_CODE,SET_DIR_FACE
.word ANI_SETFACING
.WORD ANI_SET_WRESTLER_XFLIP
WL 3,S3CR3A+FR1
.word ANI_OFFSET,0,10,0 ;*****
WL 3,S3CR3A+FR2
.word ANI_OFFSET,5,16,0 ;*****
WL 3,S3CR3A+FR3
.word ANI_OFFSET,5,16,0 ;*****
.word ANI_SET_IDIOT
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_NOCOLLIS
;now jump off...
WL ANI_SET_YVEL,40000h
WWL ANI_SETLONG,OBJ_GRAVITY,0E000h
WLW ANI_SET_XVEL,54000h,AM_FACE_REL
.word ANI_ROPE_Z,R_TOP,RZ_HIGH
.word ANI_ROPE_Z,R_MIDDLE,RZ_HIGH
.word ANI_ROPE_Z,R_BOTTOM,RZ_HIGH
.word ANI_BENDROPE,2
.word ANI_BENDROPE,-1
WL 3,S3CR3A+FR4
.word ANI_WAITHITGND
WWL ANI_SETLONG,OBJ_GRAVITY,GRAVITY
.word ANI_ROPE_Z,R_TOP,RZ_NORM
.word ANI_ROPE_Z,R_MIDDLE,RZ_NORM
.word ANI_ROPE_Z,R_BOTTOM,RZ_NORM
; .WORD ANI_XFLIP
.word ANI_ZEROVELS
.word ANI_OFFSET,5,0,0 ;*****
WL 3,S4MP4D+FR6
WL 3,S4MP4D+FR8
; WL 3,S2CT2A+FR8
; .WORD ANI_XFLIP
; WL 3,S2CT2A+FR9
; WL 3,S2CT2A+FR10
; WL 3,S2CT2A+FR11
; WL 3,S2CT2A+FR12
.word ANI_FACEDOWN
.word ANI_CLEAR_CLIMB
.word ANI_SETMODE,MODE_NOCONFINE
.word ANI_END
#*****************************************************************************
SUBR shn_climbin_side_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_OVERLAP|MODE_NOCOLLIS
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
WL ANI_CODE,SET_DIR_FACE
.word ANI_SETFACING
.WORD ANI_SET_WRESTLER_XFLIP
;jump in
WL 1,S4MP4D+FR1
WWL ANI_SETLONG,OBJ_GRAVITY,0E000h
WL ANI_CODE,#set_trgt
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
.word ANI_LEAPATPOS,14h,200,0,0,0 ;#ticks,dist,xoff,yoff,zoff
WL 20,S4MP4D+FR1
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WWL ANI_SETLONG,OBJ_GRAVITY,GRAVITY
; WL 2,S4MP4D+FR2
; WL 2,S4MP4D+FR3
; WL 2,S4MP4D+FR4
; WL 2,S4MP4D+FR5
WL 3,S4MP4D+FR6
; WL 2,S4MP4D+FR7
WL 3,S4MP4D+FR8
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE | MODE_NOGRAVITY|MODE_NOCOLLIS
WL 2,S3CR3A+FR1
.word ANI_OFFSET,0,10,0 ;*****
WL 2,S3CR3A+FR2
.word ANI_OFFSET,5,16,0 ;*****
WL 2,S3CR3A+FR3
.word ANI_OFFSET,5,16,0 ;*****
WL 2,S3CR3A+FR4
.word ANI_BENDROPE,2
.word ANI_BENDROPE,-1
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_NOCOLLIS
WLW ANI_SET_XVEL,50000h,AM_FACE_REL
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.WORD ANI_XFLIP
WL 3,S2CT2A+FR8
; WL 3,S2CT2A+FR9
; WL 3,S2CT2A+FR10
; WL 3,S2CT2A+FR11
; WL 3,S2CT2A+FR12
.WORD ANI_XFLIP
; WL ANI_CODE,clr_climb
.word ANI_CLEAR_CLIMB
;done
.word ANI_ROPE_Z,R_TOP,RZ_NORM
.word ANI_ROPE_Z,R_MIDDLE,RZ_NORM
.word ANI_ROPE_Z,R_BOTTOM,RZ_NORM
.word ANI_SETMODE,MODE_NOCONFINE
.word ANI_END
#set_trgt
movi RING_X_CENTER-0f8h-60,a0 ;Jump onto left side apron
move *a13(OBJ_XPOSINT),a14
cmpi RING_X_CENTER,a14
jrlt #onlft
;On right side
movi RING_X_CENTER+0f8h+60,a0 ;Jump onto right side apron
#onlft
move a0,*a13(TGT_XOFF)
movi RING_Z_CENTER,a0
move a0,*a13(TGT_ZOFF)
movi MAT_Y,a0
move a0,*a13(TGT_YOFF)
rets
#*****************************************************************************
SUBR shn_climbthru_bot_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_OVERLAP|MODE_NOCOLLIS
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
;Must rotate toward ropes!
;Do a different sequence
;lie down
WL ANI_CODE,#ckspin
WL 3,S3GU2A+FR9
WL 3,S3GU2A+FR8
WL 3,S3GU2A+FR7
WL 3,S3GU2A+FR6
WL 3,S3GU2A+FR5
WL 3,S3GU2A+FR4
WL 3,S3GU2A+FR2
;roll over once
WLW ANI_SET_ZVEL,0A8000h,AM_ABS
WL 3,S3RL3A+FR1
WL 3,S3RL3A+FR2
WL 3,S3RL3A+FR3
WL 3,S3RL3A+FR4
WL 3,S3RL3A+FR5
WL 3,S3RL3A+FR6
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_OVERLAP|MODE_NOSHADOW|MODE_NOCOLLIS
.word ANI_SET_IDIOT
;climb through
.WORD ANI_XFLIP
WL ANI_CODE,NOT_IN_RING
.word ANI_OFFSET,20,-37h,0 ;x,y,z
WL 3,S4KI3Q+FR5
WL 3,S4KI3Q+FR4
WL 3,S4KI3Q+FR3
.WORD ANI_XFLIP
.word ANI_FACEUP
.word ANI_CLEAR_CLIMB
.word ANI_SETMODE,MODE_NOCONFINE
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#ckspin
move *a13(FACING_DIR),a14
btst 0,a14
jrnz #faceup
move *a13(ANIMODE),a0
ori MODE_STATUS,a0
move a0,*a13(ANIMODE)
RETS
#faceup
move *a13(ANIMODE),a0
ANDI 0FFFFH-MODE_STATUS,a0
move a0,*a13(ANIMODE)
rets
NOT_IN_RING
MOVK 1,A0
MOVE A0,*A13(INRING)
RETS
#*****************************************************************************
SUBR shn_climbin_bot_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_OVERLAP|MODE_NOCOLLIS
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
;climb in
.word ANI_GRAVITY_OFF
.WORD ANI_XFLIP
WL 3,S4KI3Q+FR3
WL 3,S4KI3Q+FR4
WL 3,S4KI3Q+FR5
.word ANI_OFFSET,-20,37h,-60
;roll
.word ANI_XFLIP
WLW ANI_SET_ZVEL,-70000h,AM_ABS
.word ANI_FRICTION,3000h
WL 3,S3RL3A+FR6
WL 3,S3RL3A+FR5
WL 3,S3RL3A+FR4
WL 3,S3RL3A+FR3
WL 3,S3RL3A+FR2
WL 3,S3RL3A+FR1
.word ANI_ZEROVELS
.word ANI_GRAVITY_ON
;get up
WL 3,S3GU2A+FR2
WL 3,S3GU2A+FR3
WL 3,S3GU2A+FR4
WL 3,S3GU2A+FR5
WL 3,S3GU2A+FR6
WL 3,S3GU2A+FR7
WL 3,S3GU2A+FR8
WL 3,S3GU2A+FR9
; WL ANI_CODE,clr_climb
.word ANI_CLEAR_CLIMB
.WORD ANI_FACEDOWN
.word ANI_ZEROVELS
.word ANI_SETMODE,MODE_NOCONFINE
.word ANI_END
#*****************************************************************************
SUBR shn_climbthru_top_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_OVERLAP|MODE_NOCOLLIS
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
;lie down
WL ANI_CODE,#set_zvel1
WL ANI_IFSTATUS,#dir4
;Facing #2
WL 3,S1TT5Z+FR2
WL 3,S1TT5Z+FR3
#dir4
WL 3,S3GU4A+FR9
WL 3,S3GU4A+FR8
WL 3,S3GU4A+FR7
WL 3,S3GU4A+FR6
WL 3,S3GU4A+FR5
WL 3,S3GU4A+FR4
WL 3,S3GU4A+FR3
WL 3,S3GU4A+FR2
;roll over once
WL ANI_CODE,#set_zvel2
WL 3,S3RL3A+FR10
WL 3,S3RL3A+FR9
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_OVERLAP|MODE_NOSHADOW|MODE_NOCOLLIS
WL 3,S3RL3A+FR8
WL 3,S3RL3A+FR7
WL 3,S3RL3A+FR6
.word ANI_SET_IDIOT
;climb through
.word ANI_ZEROVELS
.WORD ANI_XFLIP
WL 3,S3DC3A+FR7
WL 3,S3DC3A+FR6
WL 3,S3DC3A+FR5
.word ANI_OFFSET,0,-61,0
.WORD ANI_XFLIP
.word ANI_ZERO_XZVELS
.WORD ANI_FACEDOWN
.word ANI_CLEAR_CLIMB
.word ANI_SETMODE,MODE_NOCONFINE
.word ANI_END
#set_zvel1
move *a13(FACING_DIR),a14
btst 0,a14
jrz #facedwn
move *a13(ANIMODE),a0
ANDI 0FFFFH-MODE_STATUS,a0
move a0,*a13(ANIMODE)
rets
#facedwn
move *a13(ANIMODE),a0
ori MODE_STATUS,a0
move a0,*a13(ANIMODE)
rets
#set_zvel2
movi -50000h,a0
move a0,*a13(OBJ_ZVEL),L
rets
#*****************************************************************************
;Zombies use this to roll through the top without standing back up.
SUBR shn_rollthru_top_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_OVERLAP|MODE_NOSHADOW|MODE_NOCOLLIS
;roll over once
WLW ANI_SET_ZVEL,-50000h,AM_ABS
WL 3,S3RL3A+FR10
WL 3,S3RL3A+FR9
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_OVERLAP|MODE_NOSHADOW|MODE_NOCOLLIS
WL 3,S3RL3A+FR8
WL 3,S3RL3A+FR7
WL 3,S3RL3A+FR6
;climb through
.word ANI_ZEROVELS
.WORD ANI_XFLIP
WL 3,S3DC3A+FR7
WL 3,S3DC3A+FR6
WL 3,S3DC3A+FR5
.word ANI_OFFSET,0,-61,0
.WORD ANI_XFLIP
.word ANI_ZERO_XZVELS
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
SUBR shn_climbin_top_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_OVERLAP|MODE_NOCOLLIS
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
;climb in
.word ANI_OFFSET,0,61,0
WL 3,S3DC3A+FR5
WL 3,S3DC3A+FR6
WL 3,S3DC3A+FR7
.WORD ANI_XFLIP
;roll over
WL ANI_CODE,#set_zvel2
WL 3,S3RL3A+FR7
WL 3,S3RL3A+FR8
WL 3,S3RL3A+FR9
WL 3,S3RL3A+FR10
.word ANI_ZEROVELS
;get up
WL 3,S3GU4A+FR2
WL 3,S3GU4A+FR3
WL 3,S3GU4A+FR4
WL 3,S3GU4A+FR5
WL 3,S3GU4A+FR6
WL 3,S3GU4A+FR7
WL 3,S3GU4A+FR8
WL 3,S3GU4A+FR9
; WL ANI_CODE,clr_climb
.word ANI_CLEAR_CLIMB
.WORD ANI_FACEDOWN
.word ANI_SETMODE,MODE_NOCONFINE
.word ANI_END
#set_zvel2
movi 50000h,a0
move a0,*a13(OBJ_ZVEL),L
rets
#****************************************************************************
*
* PIN OPPONENT AND RAISE ARM IN VICTORY
;Need to have this guy walk toward fallen opponent so he
;can get closer!
;This pin must be started only when opponent is on the ground!
SUBR shn_2_pin_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
;Rotate!
WL 3,S1TT5Z+FR2 ;2.5
WL 3,S1TT5Z+FR3 ;3.5
SUBR shn_4_pin_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 25,999,80h,50h,90000h,TGT_CHEST|TGT_GROUND,0,57,-15
WL ANI_CODE,hit_nearest
WL 3,S3PN5C+FR1
.word ANI_OFFSET,0,31,0 ;x,y,z
WL 18,S3PN5C+FR2
WL 4,S3PN5C+FR3
; .word ANI_WAITHITGND
; .word ANI_ATTACK_ON_Z, AMODE_STOMP,-40,-8,0,76,20,30 ;mode,x,y,z,w,h,d
.word ANI_ZEROVELS
WL 3,S3PN5C+FR7
WL ANI_CODE,DO_CROWD_CHEER
; .word ANI_ATTACK_OFF
WL ANI_CODE,grnd_hit
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKEALL,2
.word ANI_BOUNCE,4
WL 3,S3PN5C+FR7
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
WL 4,S3PN5C+FR7
WL ANI_CODE,win_announce
; .word ANI_SET_ATTACH
; .word ANI_ATTACHZ,0,0,10 ;x & y don't matter.
WL 40,S3PN5C+FR7
.word ANI_LOOP
;Do another ground hit on opponent
WL ANI_CODE,grnd_hit
WL ANI_SET_YVEL,42000h
WLW ANI_SET_ZVEL,22000h,AM_ABS
WL 4,S3GU4A+FR4
WL 4,S3GU4A+FR5
WL 4,S3GU4A+FR6
WL 4,S3GU4A+FR7
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 4,S3GU4A+FR8
WL 4,S3GU4A+FR9
#raise
WL 5,S4SW4A+FR1
WL 5,S4SW4A+FR2
WL 5,S4SW4A+FR3
WL 5,S4SW4A+FR4
WL 5,S4SW4A+FR5
WL 5,S4SW4A+FR6
WL 5,S4SW4A+FR7
WL 5,S4SW4A+FR8
WL 5,S4SW4A+FR9
#floop WL 1000,S4SW4A+FR10
WL ANI_GOTO,#floop
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
******************************************************************************
* RAISE ARM IN VICTORY FROM A STANCE
SUBR shn_2_raise_arm_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WL ANI_CODE,DO_CROWD_CHEER
WL ANI_CODE,win_announce
WL 3,S1TT5Z+FR2 ;2.5
WL 3,S1TT5Z+FR3 ;3.5
WL ANI_GOTO,#cont
SUBR shn_4_raise_arm_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WL ANI_CODE,DO_CROWD_CHEER
WL ANI_CODE,win_announce
#cont WL 5,S4SW4A+FR1
WL 5,S4SW4A+FR2
WL 5,S4SW4A+FR3
WL 5,S4SW4A+FR4
WL 5,S4SW4A+FR5
WL 5,S4SW4A+FR6
WL 5,S4SW4A+FR7
WL 5,S4SW4A+FR8
WL 5,S4SW4A+FR9
.word ANI_SET_RPTCOUNT,-4 ;set count to rnd from 0 to 4
#lp0 WL 55,S4SW4A+FR10
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#lp0
WL ANI_CODE,check_raisearm_bit
WL ANI_IFSTATUS,#wakeup
;don't wake up.
.word ANI_SET_RPTCOUNT,1000
WL ANI_GOTO,#lp0
;5,4,2,1 leaves the sequence.
#wakeup WL 4,S4SW4A+FR5
WL 4,S4SW4A+FR4
WL 4,S4SW4A+FR2
WL 4,S4SW4A+FR1
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_FACEDOWN
.word ANI_END
#*****************************************************************************
;Leap up onto nearest turnbuckle. Call with ANI_CODE to set offsets
; before doing the ANI_LEAPATPOS.
SUBR tgt_tbukl
;figure out which one to climb.
movi vln_right_rope,a0
move *a13(OBJ_XPOSINT),a14
cmpi RING_X_CENTER,a14
jrgt #right
movi vln_left_rope,a0
#right
move *a0+,a1,W ;X
move *a0+,a2,W ;Z
subi 16,a2
movi MAT_Y+80,a3 ;Y
move a1,*a13(TGT_XOFF)
move a2,*a13(TGT_ZOFF)
move a3,*a13(TGT_YOFF)
rets
#*****************************************************************************
*
* #4 SLAP
SUBR shn_2_slap_anim
.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_LEAPING,17
WL 2,S1TT5Z+FR2 ;2.5
WL 2,S1TT5Z+FR3 ;3.5
SUBR shn_4_slap_anim
.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_LEAPING,15
WL 3,S4PT3B+FR1
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 0eh,999,4ah,50,90000h,TGT_HEAD,76,110,30
WL 4,S4PT3B+FR2
WL 4,S4PT3B+FR3
WL 3,S4PT3B+FR4
WL 3,S4PT3B+FR5
.word ANI_ATTACK_ON, AMODE_BACKHAND,31,44,55,47 ;mode,x,y,w,h
WL 3,S4PT3B+FR6
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_2,2,2
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit2
WL ANI_SET_YVEL,40000h
WL 10,S4PT3B+FR6
#no_hit2
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 8,S4PT3B+FR6
WL 3,S4PT3B+FR7
WL 3,S4PT3B+FR8
WL 3,S4PT3B+FR9
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #4 pummel - MK style
SUBR shn_2_pummel_anim
.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_PUNCH,5
WL 1,S1TT5Z+FR2
WL 1,S1TT5Z+FR3
SUBR shn_4_pummel_anim
.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_PUNCH,3
.word ANI_SET_RPTCOUNT,3 ;rpt 2 times
; ; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
; LEAPATOPP 05h,999,4ah,50,90000h,TGT_HEAD,65,90,10
; WL ANI_SET_YVEL,0h
WL 3,S4PU3D+FR2
.WORD ANI_ADD_MOVE,MOVE_C_2,2,2
#rpt
.word ANI_CLR_BUTCOUNT
.word ANI_ATTACK_ON, AMODE_PUNCH2,21,80,42,14 ;mode,x,y,w,h
WL 3,S4MK3A+FR1
.word ANI_ATTACK_OFF
WL 3,S4MK3A+FR2
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#ex
WL 3,S4MK3A+FR3
.word ANI_CLR_BUTCOUNT
.word ANI_ATTACK_ON, AMODE_PUNCH2,21,80,42,14 ;mode,x,y,w,h
WL 3,S4MK3A+FR4
.word ANI_ATTACK_OFF
WL 3,S4MK3A+FR5
WL 3,S4MK3A+FR6
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit2
WL ANI_SET_YVEL,40000h
WL 3,S4MK3A+FR6
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_GOTO,#missed
#no_hit2
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
; .word ANI_SET_ATTACH
; WLLL ANI_SETOPPVELS,18000h,18000h,0h ;x,y,z vels
WL 3,S4MK3A+FR7
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,2,#ex
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#rpt
.word ANI_DRAW_NAME,32
.ref shn_4_hiptoss_anim
WL ANI_CHANGEANIM,shn_4_hiptoss_anim
#ex
.word ANI_OFFSET,15,0,0
WL ANI_CHANGEANIM,shn_4_butt_anim
.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
WLLL ANI_SETOPPVELS,50000h,18000h,0h ;x,y,z vels
WL 2,S4MK3A+FR7
#missed
WL 2,S4MK3A+FR7
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* GET BUCKED OFF A PINNED OPPONENT
SUBR shn_buckoff_anim
.ref set_buckoff_vels
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_NOCOLLIS
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
WL 4,S3PN5C+FR7
WL 1,S3PN5C+FR3
WL ANI_CODE,set_buckoff_vels
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 4,S3PN5C+FR7
;now stand up
WL ANI_SET_YVEL,42000h
WLW ANI_SET_ZVEL,22000h,AM_ABS
WL 4,S3GU4A+FR4
WL 4,S3GU4A+FR5
WL 4,S3GU4A+FR6
WL 4,S3GU4A+FR7
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 4,S3GU4A+FR8
WL 4,S3GU4A+FR9
.word ANI_FACEDOWN
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
******************************************************************************
.end