wwf-wrestlemania/UNDSEQ2.ASM

4699 lines
105 KiB
NASM
Raw Permalink Normal View History

2021-04-06 15:21:54 -07:00
**************************************************************
*
* Software: Jamie Rivett
* Initiated: 5/18/94
*
* COPYRIGHT (C) 1992 WILLIAMS ELECTRONICS GAMES, INC.
*
**************************************************************
.file "undseq2.asm"
.title "Undertaker animation sequences"
.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 "ring.equ"
.include "takerimg.h"
.include "damage.equ"
.include "miscimg.glo"
.INCLUDE "SWEAT.EQU"
.include "miscimg.glo"
******************************************************************************
* EXTERNAL REFERENCES
.ref DO_FLAME_HIT_SND,CREATE_URN2
.ref DO_COMBO_MESS,DO_GRUNT,hit_nearest
.ref und_combo_tombstone_smash_anim
.ref und_combo_neckbreaker_anim
.ref und_combo_snapmirror_anim
.ref UNDNEG_P,set_tbukl_airmode
.ref free_toss_check,setup_freetoss
.ref und_combo_sliding_choke_anim
.ref DO_CROWD_CHEER,SET_DIR_FACE,HIT_THE_MAT,SMALL_BOUNCE
.ref CALL_MISSES,am_I_dizzy,am_I_dead,ckzpos
.ref start_run_anim,no_bk_xvel,check_xvel
.ref CALL_OTHER_AVERAGE,CALL_ANI_AVERAGE_MOVE,DO_WAIL,DO_BLOCKED
.ref set_tbukl_confine,start_run_flung,set_raisearm_bit
.ref check_raisearm_bit
.ref win_announce,create_impact2,create_impact4,create_impact5
.ref create_impact_salt,und_3_head_held_anim,grnd_hit
.ref create_impact,choose_2or4,und_neckbreaker_anim
UARMPN
.long 0
.long 0
.long 0
.long 0
.long 0
.long 0
.long 0
.long 0
.long 0
.long UARMPN09
******************************************************************************
* SYMBOLS DEFINED IN THIS FILE
******************************************************************************
* EQUATES FOR THIS FILE
#*****************************************************************************
*
* #2 NORMAL PUNCH
SUBR und_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,U2PL3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U2PL3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U2PL3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_PUNCH,6
WL 2,U2PL3A+FR3
WL 2,U2PL3A+FR4
.word ANI_ATTACK_ON, AMODE_PUNCH,53,92,48,12 ;mode,x,y,w,h
WL 5,U2PL3A+FR5
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit
WL ANI_SET_YVEL,30000h
WL 5,U2PL3A+FR5
#no_hit
WL 2,U2PL3A+FR6
WL 3,U2PL3A+FR7
WL 2,U2PL3A+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#************
*
* #4 NORMAL PUNCH
SUBR und_4_punch_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,U4PL3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U4PL3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U4PL3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_PUNCH,6
WL 2,U4PL3A+FR3
WL 2,U4PL3A+FR4
.word ANI_ATTACK_ON, AMODE_PUNCH,53,77,48,20 ;mode,x,y,w,h
WL 6,U4PL3A+FR5
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit2
WL ANI_SET_YVEL,30000h
WL 5,U4PL3A+FR5
#no_hit2
WL 2,U4PL3A+FR6
WL 3,U4PL3A+FR7
WL 2,U4PL3A+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR und_combo_punch_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SET_RPTCOUNT,3 ;5 times
.WORD ANI_CLEAR_COMBO
WL 2,U4PL3A+FR2
WL 2,U4PL3A+FR3
WL 2,U4PL3A+FR4
.word ANI_CLR_STATUS
.WORD ANI_INC_COMBO
.word ANI_ATTACK_ON, AMODE_PUNCH,53,32,48,42 ;mode,x,y,w,h
WL 2,U4PL3A+FR5
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_hit4c
.WORD ANI_INC_COMBO
WL ANI_SET_YVEL,18000h
WL 2,U4PL3A+FR5
WL 2,U4PL3A+FR6
WL 2,U4PL3A+FR7
WL 2,U4PL3A+FR8
WL 2,U4PL3A+FR2
WL 2,U4PL3A+FR3
WL 2,U4PL3A+FR4
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_PUNCH,53,32,48,42 ;mode,x,y,w,h
WL 2,U4PL3A+FR5
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_hit4c
.WORD ANI_INC_COMBO
WL ANI_SET_YVEL,18000h
WL 2,U4PL3A+FR5
WL 2,U4PL3A+FR6
WL 2,U4PL3A+FR7
WL 2,U4PL3A+FR8
#punch_loop
.word ANI_CLR_BUTCOUNT
WL 2,U4PL3A+FR2
WL 1,U4PL3A+FR3
WL 2,U4PL3A+FR4
.word ANI_ATTACK_ON, AMODE_PUNCH,53,32,48,42 ;mode,x,y,w,h
WL 3,U4PL3A+FR5
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_hit4c
.WORD ANI_INC_COMBO
WL ANI_SET_YVEL,18000h
WL 2,U4PL3A+FR5
WL 2,U4PL3A+FR6
WL 1,U4PL3A+FR7
WL 2,U4PL3A+FR8
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#punch_loop
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#NEXT_CHECK3
WL ANI_CHANGEANIM,und_combo_flying_kick_anim
#NEXT_CHECK3
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#NEXT_CHECK2
.WORD ANI_INC_COMBO
WL ANI_CHANGEANIM,und_combo_snapmirror_anim
#NEXT_CHECK2
WWWL ANI_IF_BUTCOUNT_LT,KICKB_COUNT,1,#EXIT_MOVE
WL ANI_CHANGEANIM,und_combo_butt_anim
#EXIT_MOVE
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#no_hit4c
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL 3,U2PL3A+FR6
WL 3,U2PL3A+FR7
WL 3,U2PL3A+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #2 UPPERCUT
SUBR und_2_uppercut_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
* #4 UPPERCUT
SUBR und_4_uppercut_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_PUNCH,8
WL 2,U4UP3C+FR1
WL 2,U4UP3C+FR2
WL 2,U4UP3C+FR3
WL 2,U4UP3C+FR4
.word ANI_ATTACK_ON, AMODE_UPRCUT,46,55,29,59 ;mode,x,y,w,h
WL 2,U4UP3C+FR5
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
;Hit, spray some explosions
;Turn on explosion sound effect
WL ANI_CODE,create_impact4
WL ANI_CODE,HIT_THE_MAT
WL ANI_CODE,DO_FLAME_HIT_SND
WL ANI_CODE,CALL_OTHER_AVERAGE
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit2
WL 10,U4UP3C+FR5
#no_hit2
WL 20,U4UP3C+FR5
.word ANI_OFFSET,0,0,-5 ;x,y,z
WL 3,U4UP3C+FR4
WL 3,U4UP3C+FR3
WL 3,U4UP3C+FR2
WL 3,U4UP3C+FR1
; .word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#missedb
WL 20,U4UP3C+FR5
#missed
WL ANI_CODE,CALL_MISSES
WL 5,U4UP3C+FR5
WL 3,U4UP3C+FR4
WL 3,U4UP3C+FR3
WL 3,U4UP3C+FR2
WL 3,U4UP3C+FR1
; .word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR und_combo_uppercut_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
WL 2,U4UP3C+FR1
WL 2,U4UP3C+FR2
WL 2,U4UP3C+FR3
WL 2,U4UP3C+FR4
.word ANI_ATTACK_ON, AMODE_UPRCUT,46,55,59,59 ;mode,x,y,w,h
WL 2,U4UP3C+FR5
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed_c
WL ANI_IFBLOCKED,#missedb_c ;Yes, I hit blocker
.word ANI_SET_ATTACH
WL ANI_CODE,SET_OPP_GRAV_LOW
WLLL ANI_SETOPPVELS,0000H,100000h,0h ;x,y,z vels
.WORD ANI_INC_COMBO
WL ANI_CODE,create_impact4
WL ANI_CODE,DO_FLAME_HIT_SND
WL ANI_CODE,HIT_THE_MAT
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit3
WL 10,U4UP3C+FR5
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_DETACH
WL 40,U4UP3C+FR5
.word ANI_OFFSET,0,0,-5 ;x,y,z
WL 3,U4UP3C+FR4
WL 3,U4UP3C+FR3
WL 3,U4UP3C+FR2
WL 3,U4UP3C+FR1
WL ANI_CODE,SET_OPP_GRAV_NORM
.word ANI_SHADOWTRAIL,0 ;off
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#no_hit3
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL 20,U4UP3C+FR5
.word ANI_OFFSET,0,0,-5 ;x,y,z
WL 3,U4UP3C+FR4
WL 3,U4UP3C+FR3
WL 3,U4UP3C+FR2
WL 3,U4UP3C+FR1
; .word ANI_FACEDOWN
.word ANI_SHADOWTRAIL,0 ;off
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#missedb_c
WL 20,U4UP3C+FR5
#missed_c
WL ANI_CODE,CALL_MISSES
.word ANI_DETACH
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL 5,U4UP3C+FR5
WL 3,U4UP3C+FR4
WL 3,U4UP3C+FR3
WL 3,U4UP3C+FR2
WL 3,U4UP3C+FR1
.word ANI_SHADOWTRAIL,0 ;off
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SET_OPP_GRAV_NORM
MOVE *A13(WHOIHIT),A10,L
MOVI GRAVITY,A0
MOVE A0,*A10(OBJ_GRAVITY),L
RETS
SET_OPP_GRAV_LOW
MOVE *A13(WHOIHIT),A10,L
MOVI GRAVITY-1000H,A0
MOVE A0,*A10(OBJ_GRAVITY),L
RETS
#*****************************************************************************
* #4 SLAP
SUBR und_combo_slap_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WLWW ANI_SHADOWTRAIL,UNDNEG_P,4,7 ;pal,rate,lifespan
.word ANI_CLR_BUTCOUNT
WLW ANI_ATTCHIMAGE,#GLOVE+FR1,1 ;image, zoff (priority)
WL 4,U4WA4H+FR1
.word ANI_CLR_STATUS
WLW ANI_ATTCHIMAGE,#GLOVE+FR2,1 ;image, zoff (priority)
WL 2,U4WA4H+FR2
WLW ANI_ATTCHIMAGE,#GLOVE+FR3,1 ;image, zoff (priority)
WL 2,U4WA4H+FR3
WLW ANI_ATTCHIMAGE,#GLOVE+FR4,1 ;image, zoff (priority)
WL 2,U4WA4H+FR4
.word ANI_ATTACK_ON, AMODE_HDBUTT,31,33,56,48 ;mode,x,y,w,h
WL 2,U4WA4H+FR4
WLW ANI_ATTCHIMAGE,#GLOVE+FR5,1 ;image, zoff (priority)
WL 2,U4WA4H+FR5
.word ANI_ATTACK_OFF
.word ANI_ZERO_XZVELS
WL ANI_IFNOTSTATUS,#missed4_c
WL ANI_IFBLOCKED,#missed4_c
;hit
;Fix!! Make spirits come from head!
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,10000H,28000h,0h ;x,y,z vels
WLW ANI_SET_XVEL,20000h,AM_FACE_REL
WL 1,U4WA4H+FR5
.WORD ANI_INC_COMBO
WL ANI_CODE,create_impact
WL ANI_CODE,DO_FLAME_HIT_SND
WL ANI_CODE,HIT_THE_MAT
WL ANI_SET_YVEL,30000h
WL 2,U4WA4H+FR5
WL ANI_CODE,HIT_THE_MAT
WLW ANI_ATTCHIMAGE,#GLOVE+FR6,1 ;image, zoff (priority)
WL 2,U4WA4H+FR6
WL ANI_CODE,HIT_THE_MAT
WLW ANI_ATTCHIMAGE,#GLOVE+FR7,1 ;image, zoff (priority)
WL 2,U4WA4H+FR7
WLW ANI_ATTCHIMAGE,#GLOVE+FR8,1 ;image, zoff (priority)
WL 2,U4WA4H+FR8
WLW ANI_ATTCHIMAGE,#GLOVE+FR9,1 ;image, zoff (priority)
WL 2,U4WA4H+FR10
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_SET_RPTCOUNT,3 ;5 times
#cslap_loop
.word ANI_CLR_BUTCOUNT
WLW ANI_ATTCHIMAGE,#GLOVE+FR1,1 ;image, zoff (priority)
WL 1,U4WA4H+FR1
.word ANI_CLR_STATUS
WLW ANI_ATTCHIMAGE,#GLOVE+FR2,1 ;image, zoff (priority)
WL 1,U4WA4H+FR2
WLW ANI_ATTCHIMAGE,#GLOVE+FR3,1 ;image, zoff (priority)
WL 1,U4WA4H+FR3
WLW ANI_ATTCHIMAGE,#GLOVE+FR4,1 ;image, zoff (priority)
WL 1,U4WA4H+FR4
.word ANI_ATTACK_ON, AMODE_HDBUTT,31,33,56,48 ;mode,x,y,w,h
WL 1,U4WA4H+FR4
WLW ANI_ATTCHIMAGE,#GLOVE+FR5,1 ;image, zoff (priority)
WL 1,U4WA4H+FR5
.word ANI_ATTACK_OFF
.word ANI_ZERO_XZVELS
WL ANI_IFNOTSTATUS,#missed4_c
WL ANI_IFBLOCKED,#missed4_c
;hit
;Fix!! Make spirits come from head!
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,10000H,28000h,0h ;x,y,z vels
WLW ANI_SET_XVEL,20000h,AM_FACE_REL
WL 1,U4WA4H+FR5
.WORD ANI_INC_COMBO
WL ANI_CODE,create_impact
WL ANI_CODE,DO_FLAME_HIT_SND
WL ANI_CODE,HIT_THE_MAT
WL ANI_SET_YVEL,14000h
WL 1,U4WA4H+FR5
WL ANI_CODE,HIT_THE_MAT
WLW ANI_ATTCHIMAGE,#GLOVE+FR6,1 ;image, zoff (priority)
WL 1,U4WA4H+FR6
WL ANI_CODE,HIT_THE_MAT
WLW ANI_ATTCHIMAGE,#GLOVE+FR7,1 ;image, zoff (priority)
WL 1,U4WA4H+FR7
WLW ANI_ATTCHIMAGE,#GLOVE+FR8,1 ;image, zoff (priority)
WL 1,U4WA4H+FR8
WLW ANI_ATTCHIMAGE,#GLOVE+FR9,1 ;image, zoff (priority)
WL 1,U4WA4H+FR10
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#cslap_loop
WLW ANI_ATTCHIMAGE,0,0
WWWL ANI_IF_BUTCOUNT_LT,KICKB_COUNT,1,#NEXT_CHECK2
WL ANI_CHANGEANIM,und_combo_flying_kick_anim
#NEXT_CHECK2
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,1,#NEXT_CHECKA
WL ANI_CHANGEANIM,und_combo_snapmirror_anim
#NEXT_CHECKA
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#NEXT_CHECK
WLW ANI_SET_XVEL,-20000h,AM_FACE_REL
WL ANI_CHANGEANIM,und_combo_tombstone_smash_anim
#NEXT_CHECK
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#NEXT_CHECK3
WL ANI_CHANGEANIM,und_combo_super_kick_anim
#NEXT_CHECK3
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_SHADOWTRAIL,0 ;off
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#missed4_c
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_SHADOWTRAIL,0 ;off
WL ANI_CODE,CALL_MISSES
WL 2,U4WA4H+FR5
WL ANI_CODE,HIT_THE_MAT
WLW ANI_ATTCHIMAGE,#GLOVE+FR6,1 ;image, zoff (priority)
WL 3,U4WA4H+FR6
WL ANI_CODE,HIT_THE_MAT
WLW ANI_ATTCHIMAGE,#GLOVE+FR7,1 ;image, zoff (priority)
WL 3,U4WA4H+FR7
WLW ANI_ATTCHIMAGE,#GLOVE+FR8,1 ;image, zoff (priority)
WL 3,U4WA4H+FR8
WLW ANI_ATTCHIMAGE,#GLOVE+FR9,1 ;image, zoff (priority)
WL 3,U4WA4H+FR10
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WLW ANI_ATTCHIMAGE,0,0
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
;Leaping urn slam
SUBR und_2_run_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
WL 2,U1TT5A+FR3
WL 2,U1TT5A+FR4
SUBR und_4_run_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,12
WLW ANI_ATTCHIMAGE,#GLOVE+FR1,1 ;image, zoff (priority)
WL 3,U4WA4H+FR1
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 0bh,999,60h,55,90000h,TGT_HEAD,75,101,10
WL ANI_CODE,no_bk_xvel
.word ANI_CLR_STATUS
WLW ANI_ATTCHIMAGE,#GLOVE+FR2,1 ;image, zoff (priority)
WL 6,U4WA4H+FR2
WL ANI_GOTO,#tag
SUBR und_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
WL 2,U1TT5A+FR3
WL 2,U1TT5A+FR4
SUBR und_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,12
WLW ANI_ATTCHIMAGE,#GLOVE+FR1,1 ;image, zoff (priority)
WL 3,U4WA4H+FR1
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 0dh,999,58h,50,90000h,TGT_HEAD,75,101,10
WL ANI_CODE,no_bk_xvel
.word ANI_CLR_STATUS
WLW ANI_ATTCHIMAGE,#GLOVE+FR2,1 ;image, zoff (priority)
WL 8,U4WA4H+FR2
#tag
WLW ANI_ATTCHIMAGE,#GLOVE+FR3,1 ;image, zoff (priority)
WL 3,U4WA4H+FR3
WLW ANI_ATTCHIMAGE,#GLOVE+FR4,1 ;image, zoff (priority)
WL 1,U4WA4H+FR4
.word ANI_ATTACK_ON, AMODE_URN,31,63,56,38 ;mode,x,y,w,h
WL 2,U4WA4H+FR4
WLW ANI_ATTCHIMAGE,#GLOVE+FR5,1 ;image, zoff (priority)
WL 3,U4WA4H+FR5
.word ANI_ATTACK_OFF
.word ANI_ZERO_XZVELS
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
;hit
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
WL ANI_CODE,create_impact
WL ANI_CODE,DO_FLAME_HIT_SND
;Put in URN smash sound!
WL ANI_CODE,HIT_THE_MAT
WL ANI_CODE,CALL_ANI_AVERAGE_MOVE
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit2
WL ANI_SET_YVEL,40000h
#no_hit2
#missed
WL 2,U4WA4H+FR5
WL ANI_CODE,HIT_THE_MAT
WLW ANI_ATTCHIMAGE,#GLOVE+FR6,1 ;image, zoff (priority)
WL 3,U4WA4H+FR6
WL ANI_CODE,HIT_THE_MAT
WLW ANI_ATTCHIMAGE,#GLOVE+FR7,1 ;image, zoff (priority)
WL 3,U4WA4H+FR7
.ref spunch_delay
WL ANI_CODE,spunch_delay
WL ANI_IFNOTSTATUS,#none0
WLW ANI_ATTCHIMAGE,0,0
WL 4,U4WA4H+FR8
.word ANI_WAITHITGND
WL 12,U4WA4H+FR8
WL 3,U4WA4H+FR10
.word ANI_ZEROVELS
WL ANI_GOTO,#hitx
#none0
WLW ANI_ATTCHIMAGE,#GLOVE+FR8,1 ;image, zoff (priority)
WL 3,U4WA4H+FR8
WLW ANI_ATTCHIMAGE,#GLOVE+FR9,1 ;image, zoff (priority)
WL 3,U4WA4H+FR10
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WLW ANI_ATTCHIMAGE,0,0
#hitx
.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
WL 2,U4WA4H+FR5
WL ANI_CODE,HIT_THE_MAT
WLW ANI_ATTCHIMAGE,#GLOVE+FR6,1 ;image, zoff (priority)
WL 3,U4WA4H+FR6
WL ANI_CODE,HIT_THE_MAT
WLW ANI_ATTCHIMAGE,#GLOVE+FR7,1 ;image, zoff (priority)
WL 3,U4WA4H+FR7
WL ANI_CODE,spunch_delay
WL ANI_IFNOTSTATUS,#none1
WLW ANI_ATTCHIMAGE,0,0
WL 4,U4WA4H+FR8
.word ANI_WAITHITGND
WL 15,U4WA4H+FR8
WL 3,U4WA4H+FR10
.word ANI_ZEROVELS
WL ANI_GOTO,#hitx
#none1
WLW ANI_ATTCHIMAGE,#GLOVE+FR8,1 ;image, zoff (priority)
WL 3,U4WA4H+FR8
WLW ANI_ATTCHIMAGE,#GLOVE+FR9,1 ;image, zoff (priority)
WL 3,U4WA4H+FR10
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WLW ANI_ATTCHIMAGE,0,0
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#GLOVE
.long 0
.long GLVHIT01
.long GLVHIT02
.long GLVHIT03
.long GLVHIT04
.long GLVHIT05
.long GLVHIT06
.long GLVHIT07
.long GLVHIT08
.long GLVHIT09
#************
*
* #4 PUSH
SUBR und_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,12
WL 3,U4PS3A+FR1
WL 3,U4PS3A+FR2
WL 3,U4PS3A+FR3
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ATTACK_ON, AMODE_PUSH,33,85,65,17 ;mode,x,y,w,h
WL 6,U4PS3A+FR5
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,40h,-70000h,#no_hit ;range,vel,addr
WL 15,U4PS3A+FR5
#no_hit
WL 3,U4PS3A+FR5
WL ANI_IFSTATUS,#hit
;If missed on push, hold a little longer
WL 5,U4PS3A+FR5
#hit
WL 3,U4PS3A+FR6
WL 3,U4PS3A+FR7
WL 3,U4PS3A+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
******************************************************************************
*
* #2 RUNNING BOUNCE OFF OF OPPONENT
SUBR und_2_bncoff_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETSPEED,100h
.word ANI_FRICTION,3000h
WL 3,U2AH3A+FR3
WL 15,U2AH3A+FR4
WL 4,U2AH3A+FR5
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* #4 RUNNING BOUNCE OFF OF OPPONENT
SUBR und_4_bncoff_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETSPEED,100h
.word ANI_FRICTION,3000h
WL 4,U4AH3A+FR2
WL 14,U4AH3A+FR3
WL 4,U4AH3A+FR4
WL 4,U4AH3A+FR5
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* #4 RUNNING BOUNCE OFF OF OPPONENT
;Bounce off but stay dizzy!
SUBR und_4_bncoff_dizzy_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETSPEED,100h
.word ANI_FRICTION,3000h
.word ANI_SETPLYRMODE,MODE_DIZZY
WL 4,U4AH3A+FR2
WL 14,U4AH3A+FR3
WL 4,U4AH3A+FR4
WL 4,U4AH3A+FR5
; .word ANI_SETPLYRMODE,MODE_DIZZY
WL ANI_CHANGEANIM,und_dizzy_anim
.word ANI_END
******************************************************************************
*
* #4 LOSE BALANCE
SUBR und_4_losebal_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_FRICTION,3000h
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WLW ANI_SET_XVEL,-60000h,AM_HIT_REL
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,SPRAYA_SWEAT,SWEAT_PER,0
.word ANI_DEBRIS,150,3,-21,100,0 ;%chance, tbl index, x,y,z off
WL 3,U4LB4A+FR1
WL 3,U4LB4A+FR2
WL 3,U4LB4A+FR3
WL 3,U4LB4A+FR4
WL 3,U4LB4A+FR5
WL 3,U4LB4A+FR6
WL 3,U4LB4A+FR1
.word ANI_FACEDOWN
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* #4 LOSE BALANCE - Go dizzy
SUBR und_4_losebal_dizzy_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_FRICTION,3000h
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WLW ANI_SET_XVEL,-50000h,AM_HIT_REL
.word ANI_SETPLYRMODE,MODE_DIZZY
WL 3,U4LB4A+FR1
WL 3,U4LB4A+FR2
WL 3,U4LB4A+FR3
WL 3,U4LB4A+FR4
WL 3,U4LB4A+FR5
WL 3,U4LB4A+FR6
WL 3,U4LB4A+FR1
; .word ANI_SETPLYRMODE,MODE_DIZZY
WL ANI_CHANGEANIM,und_dizzy_anim
.word ANI_END
#*****************************************************************************
*
* #2 ELBOW DROP
#yoff equ 40
SUBR und_2_lbowdrop_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U2JP2C+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U2JP2C+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U2JP2C+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 3,U2JP2C+FR2
WL 3,U2JP2C+FR3
;skip the leap if simply falling down will do.
.word ANI_ATTACK_ON_Z,AMODE_HITCHECK,29,-14,-40,25,36,50
WL 1,U2JP2C+FR3
.word ANI_ATTACK_OFF
WL ANI_IFSTATUS,#skip_leapat
.word ANI_TARGET,TGT_CHEST,TGT_CHEST,ATM_CLOSEST
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 20,999,160,140,90000h,TGT_USER,44,#yoff,-30
WL ANI_GOTO,#do_leapat
#skip_leapat
WL ANI_SET_YVEL,10000h ;3
#do_leapat
.word ANI_OFFSET,0,#yoff,0
WL 3,U2JP2C+FR4
WL 3,U2JP2C+FR5
WL 3,U2JP2C+FR6
WL 3,U2JP2C+FR7
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_SETPLYRMODE,MODE_ONGROUND
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKER,40
.word ANI_SHAKEALL,2
.word ANI_ATTACK_ON_Z,AMODE_LBOWDROP,29,-14,-40,25,36,50
WL 4,U2JP2C+FR8
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_9,2,2
WL ANI_IFNOTSTATUS,#hit
WL ANI_CODE,CALL_MISSES
#hit
.word ANI_DRAW_NAME,18
WL 8,U2JP2C+FR9
;getup
.word ANI_OFFSET,13,0,0
.word ANI_SETPLYRMODE,MODE_NORMAL
WL 3,U3GD2A+FR4
WL 3,U3GD2A+FR5
WL 3,U3GD2A+FR6
WL 3,U3GD2A+FR7
;Keep this frame in game...
WL 1,U3GD2A+FR8
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 2,U3GD2A+FR8
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #4 ELBOW DROP
#yoff equ 40
SUBR und_4_lbowdrop_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U4JP4D+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U4JP4D+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U4JP4D+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 3,U4JP4D+FR2
WL 3,U4JP4D+FR3
;skip the leap if simply falling down will do.
.word ANI_ATTACK_ON_Z,AMODE_HITCHECK,3,-16,-10,27,35,50
WL 1,U4JP4D+FR3
.word ANI_ATTACK_OFF
WL ANI_IFSTATUS,#skip_leapat
;#skip_leapat
.word ANI_TARGET,TGT_CHEST,TGT_CHEST,ATM_CLOSEST
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 20,999,160,140,90000h,TGT_USER,19,#yoff,60
WL ANI_GOTO,#do_leapat
#skip_leapat
WL ANI_SET_YVEL,10000h ;3
#do_leapat
.word ANI_OFFSET,0,#yoff,0
WL 3,U4JP4D+FR4
WL 3,U4JP4D+FR5
WL 3,U4JP4D+FR6
WL 3,U4JP4D+FR7
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_SETPLYRMODE,MODE_ONGROUND
.WORD ANI_ADD_MOVE,MOVE_C_9,2,2
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKER,40
.word ANI_SHAKEALL,2
.word ANI_ATTACK_ON_Z,AMODE_LBOWDROP,3,-16,-10,27,35,70
WL 4,U4JP4D+FR8
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#hit
WL ANI_CODE,CALL_MISSES
#hit
.word ANI_DRAW_NAME,18
WL 8,U4JP4D+FR9
;getup
.word ANI_OFFSET,19,0,0
.word ANI_SETPLYRMODE,MODE_NORMAL
WL 3,U3GD4A+FR5
WL 3,U3GD4A+FR6
WL 3,U3GD4A+FR7
WL 1,U3GD4A+FR8
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 2,U3GD4A+FR8
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #2 HEADBUTT
SUBR und_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,U2BC3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U2BC3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U2BC3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_PUNCH,8
WL 2,U2BC3A+FR2
WL 2,U2BC3A+FR3
WL 2,U2BC3A+FR4
WL 2,U2BC3A+FR5
.word ANI_ATTACK_ON, AMODE_HDBUTT,-8,73,73,46 ;mode,x,y,w,h
WL 3,U2BC3A+FR6
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit
WL ANI_SET_YVEL,38000h
WL 6,U2BC3A+FR7
#no_hit
WL 5,U2BC3A+FR7
WL 3,U2BC3A+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* #4 HEADBUTT
SUBR und_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,U4BC3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U4BC3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U4BC3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_PUNCH,8
WL 2,U4BC3A+FR2
WL 2,U4BC3A+FR3
WL 2,U4BC3A+FR4
WL 2,U4BC3A+FR5
.word ANI_ATTACK_ON, AMODE_HDBUTT,-8,73,73,46 ;mode,x,y,w,h
WL 3,U4BC3A+FR6
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit2
WL ANI_SET_YVEL,38000h
WL 6,U4BC3A+FR7
#no_hit2
WL 5,U4BC3A+FR7
WL 3,U4BC3A+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR und_combo_butt_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WLW ANI_SET_XVEL,40000h,AM_FACE_REL
WLWW ANI_SHADOWTRAIL,UNDNEG_P,4,7 ;pal,rate,lifespan
WL 1,U4BC3A+FR1
WL 2,U4BC3A+FR2
WL 1,U4BC3A+FR3
WL 2,U4BC3A+FR4
WL 1,U4BC3A+FR5
WLW ANI_SET_XVEL,0h,AM_FACE_REL
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_HDBUTT,-8,53,73,56 ;mode,x,y,w,h
WL 2,U4BC3A+FR6
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed_bc
.WORD ANI_INC_COMBO
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,000H,28000h,0h ;x,y,z vels
WL 1,U4BC3A+FR6
WL ANI_SET_YVEL,38000h
WL 2,U4BC3A+FR7
WL 2,U4BC3A+FR7
WL 2,U4BC3A+FR8
.word ANI_SET_RPTCOUNT,2 ;5 times
#butt_loop
.word ANI_CLR_BUTCOUNT
WL 1,U4BC3A+FR1
WL 1,U4BC3A+FR2
WL 1,U4BC3A+FR3
WL 1,U4BC3A+FR4
WL 2,U4BC3A+FR5
WLW ANI_SET_XVEL,0h,AM_FACE_REL
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_HDBUTT,-8,53,73,56 ;mode,x,y,w,h
WL 1,U4BC3A+FR6
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed_bc
.WORD ANI_INC_COMBO
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,000H,28000h,0h ;x,y,z vels
WL 1,U4BC3A+FR6
WL ANI_SET_YVEL,18000h
WL 2,U4BC3A+FR7
WL 1,U4BC3A+FR7
WL 2,U4BC3A+FR8
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#butt_loop
WL 2,U4BC3A+FR1
WL 2,U4BC3A+FR2
WL 2,U4BC3A+FR3
WL 2,U4BC3A+FR4
WL 2,U4BC3A+FR5
WLW ANI_SET_XVEL,0h,AM_FACE_REL
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_HDBUTT,-8,53,73,56 ;mode,x,y,w,h
WL 2,U4BC3A+FR6
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed_bc
.WORD ANI_INC_COMBO
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,000H,28000h,0h ;x,y,z vels
WL 2,U4BC3A+FR6
WL ANI_SET_YVEL,38000h
WL 3,U4BC3A+FR7
WL 2,U4BC3A+FR7
WL 3,U4BC3A+FR8
WWWL ANI_IF_BUTCOUNT_LT,KICKB_COUNT,1,#NEXT_CHECK3
WL ANI_CHANGEANIM,und_combo_flying_kick_anim
#NEXT_CHECK3
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,1,#NEXT_CHECK2
WL ANI_CHANGEANIM,und_combo_snapmirror_anim
#NEXT_CHECK2
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#NEXT_CHECK
.word ANI_SHADOWTRAIL,0 ;off
WL ANI_CHANGEANIM,und_combo_super_kick_anim
#NEXT_CHECK
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#EXIT_MOVE
WLW ANI_SET_XVEL,-20000h,AM_FACE_REL
WL ANI_CHANGEANIM,und_combo_tombstone_smash_anim
#EXIT_MOVE
.word ANI_DETACH
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_SHADOWTRAIL,0 ;off
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#missed_bc
.word ANI_DETACH
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_SHADOWTRAIL,0 ;off
WL 5,U4BC3A+FR7
WL 3,U4BC3A+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #2 HEADBUTTS - In close
SUBR und_2_butts_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_SET_RPTCOUNT,3 ;5 times
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
#rpt
.word ANI_CLR_BUTCOUNT
WL 2,U2BC3A+FR1
.word ANI_STARTATTACK,AT_HDBUTT,8
WL 1,U2BC3A+FR2
WL 2,U2BC3A+FR3
WL 1,U2BC3A+FR4
WL 2,U2BC3A+FR5
.word ANI_ATTACK_ON, AMODE_HDBUTT_STAY,-8,73,73,46 ;mode,x,y,w,h
WL 2,U2BC3A+FR6
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit
WL ANI_SET_YVEL,38000h
WL 6,U2BC3A+FR7
#no_hit
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
.word ANI_SET_ATTACH
.word ANI_DEBRISAT,250,2,0,100,0 ;%chance, tbl index, x,y,z off
.ref impact_sound
WL ANI_CODE,impact_sound
.word ANI_SHAKEALL,1
.word ANI_SHAKER,25
.word ANI_DETACH
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#ex
.word ANI_DEC_RPTCOUNT
WL 2,U2BC3A+FR7
WL 2,U2BC3A+FR8
WL ANI_IF_RPTCOUNT,#rpt
WL ANI_CHANGEANIM,und_2_butt_anim
#ex
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,40000h,38000h,0h ;x,y,z vels
WL 3,U2BC3A+FR7
WL 3,U2BC3A+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#missedb
WLLL ANI_SETOPPVELS,50000h,18000h,0h ;x,y,z vels
; WL 6,U2BC3A+FR7
#missed
WL 2,U2BC3A+FR7
WL 2,U2BC3A+FR8
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#*
* #4 HEADBUTT
SUBR und_4_butts_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_SET_RPTCOUNT,3 ;5 times
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
#rpt
.word ANI_CLR_BUTCOUNT
WL 2,U4BC3A+FR1
.word ANI_STARTATTACK,AT_HDBUTT,8
WL 1,U4BC3A+FR2
WL 2,U4BC3A+FR3
WL 1,U4BC3A+FR4
WL 2,U4BC3A+FR5
.word ANI_ATTACK_ON, AMODE_HDBUTT_STAY,-8,73,73,46 ;mode,x,y,w,h
WL 2,U4BC3A+FR6
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit2
WL ANI_SET_YVEL,38000h
WL 6,U4BC3A+FR7
#no_hit2
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
.word ANI_SET_ATTACH
.word ANI_DEBRISAT,250,2,0,100,0 ;%chance, tbl index, x,y,z off
WL ANI_CODE,impact_sound
.word ANI_SHAKEALL,1
.word ANI_SHAKER,25
.word ANI_DETACH
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#ex
.word ANI_DEC_RPTCOUNT
WL 2,U4BC3A+FR7
WL 2,U4BC3A+FR8
WL ANI_IF_RPTCOUNT,#rpt
WL ANI_CHANGEANIM,und_4_butt_anim
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#ex
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,40000h,38000h,0h ;x,y,z vels
WL 3,U4BC3A+FR7
WL 3,U4BC3A+FR8
.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 6,U4BC3A+FR7
#missed
WL 3,U4BC3A+FR7
WL 3,U4BC3A+FR8
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #2 KICK - Against TB attacks
SUBR und_kick_TB_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_SETPLYRMODE,MODE_INAIR2
.word ANI_STARTATTACK,AT_LEAPING,12
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
WL 2,U2KM3B+FR1
WL ANI_SET_YVEL,70000h
WLW ANI_SET_XVEL,-20000h,AM_FACE_REL
WL 3,U2KM3B+FR2
WL 3,U2KM3B+FR3
.word ANI_ATTACK_ON, AMODE_SPINKICK,27,59,68,20 ;mode,x,y,w,h
WL 10,U2KM3B+FR4
.word ANI_ATTACK_OFF
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_SETPLYRMODE,MODE_NORMAL
WL 3,U2KM3B+FR5
WL 2,U2KM3B+FR6
WL 3,U2KM3B+FR7
WL 2,U2KM3B+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #2 KICK
SUBR und_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,U2KM3B+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U2KM3B+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U2KM3B+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_KICK,5
WL 2,U2KM3B+FR2
WL 2,U2KM3B+FR3
WWL ANI_SETLONG,OBJ_GRAVITY,0c000h
WL ANI_SET_YVEL,30000h
.word ANI_ATTACK_ON, AMODE_KICK,27,59,68,20 ;mode,x,y,w,h
WL 6,U2KM3B+FR4
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit
WL ANI_SET_YVEL,30000h
WL 10,U2KM3B+FR4
#no_hit
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WWL ANI_SETLONG,OBJ_GRAVITY,GRAVITY
WL 2,U2KM3B+FR5
WL 2,U2KM3B+FR6
WL 2,U2KM3B+FR7
WL 2,U2KM3B+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#************
*
* #4 KICK
SUBR und_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,U4KM3E+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U4KM3E+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U4KM3E+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_KICK,5
WL 2,U4KM3E+FR2
WL 2,U4KM3E+FR3
WWL ANI_SETLONG,OBJ_GRAVITY,0c000h
WL ANI_SET_YVEL,30000h
.word ANI_ATTACK_ON, AMODE_KICK,27,59,68,20 ;mode,x,y,w,h
WL 6,U4KM3E+FR4
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit2
WL ANI_SET_YVEL,30000h
WL 10,U4KM3E+FR4
#no_hit2
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WWL ANI_SETLONG,OBJ_GRAVITY,GRAVITY
WL 2,U4KM3E+FR5
WL 2,U4KM3E+FR6
WL 2,U4KM3E+FR8
WL 2,U4KM3E+FR9
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
SUBR und_combo_kick_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
WL 2,U4KM3E+FR1
WL 2,U4KM3E+FR2
WL 2,U4KM3E+FR3
WWL ANI_SETLONG,OBJ_GRAVITY,0c000h
WL ANI_SET_YVEL,20000h
.word ANI_CLR_STATUS
.WORD ANI_INC_COMBO
.word ANI_ATTACK_ON, AMODE_KICK,27,39,68,30 ;mode,x,y,w,h
WL 2,U4KM3E+FR4
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed_4c
.WORD ANI_INC_COMBO
WLLL ANI_SETOPPVELS,8000H,28000h,0h ;x,y,z vels
WLW ANI_SET_XVEL,18000h,AM_FACE_REL
WL ANI_SET_YVEL,18000h
WL 2,U4KM3E+FR4
WL 2,U4KM3E+FR5
WL 2,U4KM3E+FR6
WL 2,U4KM3E+FR8
.word ANI_SET_RPTCOUNT,4 ;5 times
.WORD ANI_CLEAR_COMBO
#kick_loop
.word ANI_CLR_BUTCOUNT
WL 1,U4KM3E+FR1
WL 2,U4KM3E+FR2
WL 1,U4KM3E+FR3
WWL ANI_SETLONG,OBJ_GRAVITY,0c000h
WL ANI_SET_YVEL,20000h
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_KICK,27,39,68,30 ;mode,x,y,w,h
WL 2,U4KM3E+FR4
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed_4c
.WORD ANI_INC_COMBO
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,8000H,28000h,0h ;x,y,z vels
WLW ANI_SET_XVEL,18000h,AM_FACE_REL
WL ANI_SET_YVEL,18000h
WL 1,U4KM3E+FR4
WL 2,U4KM3E+FR5
WL 1,U4KM3E+FR6
WL 2,U4KM3E+FR8
.word ANI_ZEROVELS
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#kick_loop
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#NEXT_CHECK2
WL ANI_CHANGEANIM,und_combo_flying_kick_anim
#NEXT_CHECK2
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#NEXT_CHECK
WL ANI_CHANGEANIM,und_combo_snapmirror_anim
#NEXT_CHECK
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,1,#NEXT_CHECK3
WL ANI_CHANGEANIM,und_combo_slap_anim
#NEXT_CHECK3
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_SHADOWTRAIL,0 ;off
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#missed_4c
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_SHADOWTRAIL,0 ;off
WWL ANI_SETLONG,OBJ_GRAVITY,GRAVITY
WL 3,U4KM3E+FR5
WL 3,U4KM3E+FR6
WL 3,U4KM3E+FR8
WL 3,U4KM3E+FR9
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #2 SUPER KICK
SUBR und_2_super_kick_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,U2KB3A+FR1
.word ANI_OFFSET,5,0,0
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 12,999,80,40,90000h,TGT_CHEST,64,0,20
WL ANI_SET_YVEL,48000h
WL 4,U2KB3A+FR2
WL 4,U2KB3A+FR3
WL 4,U2KB3A+FR4
.word ANI_ATTACK_ON, AMODE_SUPER_KICK,19,60,68,27 ;mode,x,y,w,h
WL 2,U2KB3A+FR5
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
;Hit
;Turn on spirits
WL ANI_CODE,create_impact2
WL ANI_CODE,DO_FLAME_HIT_SND
.word ANI_ZERO_XZVELS
WL ANI_CODE,CALL_OTHER_AVERAGE
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit2
WL ANI_SET_YVEL,30000h
WLW ANI_SET_ZVEL,-28000h,AM_ABS
WL 9,U2KB3A+FR5
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 5,U2KB3A+FR6
WL 5,U2KB3A+FR7
.word ANI_FACEDOWN
.word ANI_SETFACING
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#no_hit2
WLW ANI_SET_XVEL,-20000h,AM_FACE_REL
WLW ANI_SET_ZVEL,-28000h,AM_ABS
WL ANI_SET_YVEL,20000h
WL 2,U2KB3A+FR5
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 2,U2KB3A+FR5
WL 5,U2KB3A+FR6
WL 5,U2KB3A+FR7
.word ANI_FACEDOWN
.word ANI_SETFACING
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#missedb
WL ANI_CODE,CALL_MISSES
#missed
WL 3,U2KB3A+FR5
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 2,U2KB3A+FR5
WL 5,U2KB3A+FR6
WL 5,U2KB3A+FR7
.word ANI_FACEDOWN
; .word ANI_SETFACING
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#* #4 SUPER KICK
SUBR und_4_super_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,15
WL 3,U4KB3A+FR2
.word ANI_OFFSET,5,0,0
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 12,999,80,40,90000h,TGT_CHEST,64,0,-20
WL ANI_SET_YVEL,48000h
WL 4,U4KB3A+FR3
WL 4,U4KB3A+FR4
WL 4,U4KB3A+FR5
.word ANI_ATTACK_ON, AMODE_SUPER_KICK,8,48,74,33 ;mode,x,y,w,h
WL 2,U4KB3A+FR7
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
;Hit
;Turn on spirits
WL ANI_CODE,create_impact2
WL ANI_CODE,DO_FLAME_HIT_SND
.word ANI_ZERO_XZVELS
WL ANI_CODE,CALL_OTHER_AVERAGE
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit2
WL ANI_SET_YVEL,30000h
WLW ANI_SET_ZVEL,28000h,AM_ABS
WL 9,U4KB3A+FR7
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 2,U4KB3A+FR7
WL 5,U4KB3A+FR8
; WL 4,U4KB3A+FR9
.word ANI_FACEUP
.word ANI_SETFACING
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#no_hit2
WLW ANI_SET_XVEL,-20000h,AM_FACE_REL
WLW ANI_SET_ZVEL,28000h,AM_ABS
WL ANI_SET_YVEL,20000h
WL 2,U4KB3A+FR7
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 2,U4KB3A+FR7
WL 5,U4KB3A+FR8
; WL 4,U4KB3A+FR9
.word ANI_FACEUP
.word ANI_SETFACING
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#missedb
WL ANI_CODE,CALL_MISSES
#missed
WL 5,U4KB3A+FR7
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 2,U4KB3A+FR7
WL 5,U4KB3A+FR8
; WL 4,U4KB3A+FR9
.word ANI_FACEUP
; .word ANI_SETFACING
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
SUBR und_combo_super_kick_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SET_RPTCOUNT,3 ;5 times
#skick_loop
.word ANI_CLR_BUTCOUNT
WL 2,U2KB3A+FR1
.word ANI_OFFSET,5,0,0
WL ANI_SET_YVEL,18000h
WL 2,U2KB3A+FR2
WL 2,U2KB3A+FR3
WL 2,U2KB3A+FR4
.word ANI_ATTACK_ON, AMODE_KICK,19,46,68,27 ;mode,x,y,w,h
WL 2,U2KB3A+FR5
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed2_ac
WL ANI_IFBLOCKED,#missed2_bc
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,18000H,28000h,48000h ;x,y,z vels
WLW ANI_SET_XVEL,18000h,AM_FACE_REL
.WORD ANI_INC_COMBO
;Hit
WL ANI_CODE,create_impact2
WL ANI_CODE,DO_FLAME_HIT_SND
WL ANI_SET_YVEL,0A000h
WLW ANI_SET_ZVEL,-18000h,AM_ABS
WL 4,U2KB3A+FR5
WLLL ANI_SETOPPVELS,0000H,000h,48000h ;x,y,z vels
.word ANI_ZEROVELS
WL 2,U2KB3A+FR6
WL 2,U2KB3A+FR7
WLLL ANI_SETOPPVELS,0000H,000h,000h ;x,y,z vels
;start of 4 hit
WL 2,U4KB3A+FR2
.word ANI_OFFSET,5,0,0
WL ANI_SET_YVEL,18000h
WL 2,U4KB3A+FR3
WL 2,U4KB3A+FR4
WL 2,U4KB3A+FR5
.word ANI_ATTACK_ON, AMODE_KICK,8,48,74,33 ;mode,x,y,w,h
WL 2,U4KB3A+FR7
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed4_ac
WL ANI_IFBLOCKED,#missed4_bc
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,18000H,28000h,-48000h ;x,y,z vels
WLW ANI_SET_XVEL,18000h,AM_FACE_REL
.WORD ANI_INC_COMBO
;Hit
;Turn on spirits
WL ANI_CODE,create_impact2
WL ANI_CODE,DO_FLAME_HIT_SND
WL ANI_SET_YVEL,0A000h
WLW ANI_SET_ZVEL,18000h,AM_ABS
WL 4,U4KB3A+FR7
WLLL ANI_SETOPPVELS,0000H,000h,-48000h ;x,y,z vels
.word ANI_ZEROVELS
WL 2,U4KB3A+FR8
WL 2,U4KB3A+FR8
WLLL ANI_SETOPPVELS,0000H,000h,0h ;x,y,z vels
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#skick_loop
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,1,#DO_NEXT_CHECK
WL ANI_CHANGEANIM,und_combo_neckbreaker_anim
#DO_NEXT_CHECK
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#DO_NEXT_CHECK2
WL ANI_CHANGEANIM,und_combo_sliding_choke_anim
#DO_NEXT_CHECK2
.word ANI_DETACH
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_SHADOWTRAIL,0 ;off
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#missed4_ac
WL ANI_CODE,CALL_MISSES
#missed4_bc
.word ANI_DETACH
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_SHADOWTRAIL,0 ;off
WL 5,U4KB3A+FR7
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 5,U4KB3A+FR8
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#missed2_ac
WL ANI_CODE,CALL_MISSES
#missed2_bc
.word ANI_DETACH
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_SHADOWTRAIL,0 ;off
WL 3,U2KB3A+FR5
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 5,U2KB3A+FR6
WL 5,U2KB3A+FR7
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #2 STOMP ON FALLEN OPPONENT
SUBR und_2_stomp_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U2MP2A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U2MP2A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U2MP2A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U2MP2A+FR2
.word ANI_ATTACK_ON_Z,AMODE_HITCHECK,9,-1,-40,28,31,50
WL 1,U2MP2A+FR2
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#leapat
WL ANI_SET_YVEL,14000h
WL ANI_GOTO,#common
#leapat
.word ANI_TARGET,TGT_HEAD,TGT_GROIN,ATM_CLOSEST
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 16,999,160,140,40000h,TGT_USER,19,0,-30
WL ANI_CODE,no_bk_xvel
#common
WL 3,U2MP2A+FR3
WL 1,U2MP2A+FR4
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_ATTACK_ON_Z,AMODE_STOMP,9,-1,-40,28,31,50
WL 1,U2MP2A+FR5
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
WL ANI_IFNOTSTATUS,#missed
.word ANI_SHAKER,20
.word ANI_SHAKEALL,1
WL ANI_GOTO,#hit
#missed
WL ANI_CODE,CALL_MISSES
#hit
WL 3,U2MP2A+FR5
WL 2,U2MP2A+FR6
WL 3,U2MP2A+FR7
WL 2,U2MP2A+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #4 STOMP ON FALLEN OPPONENT
SUBR und_4_stomp_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U4MP4A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U4MP4A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U4MP4A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U4MP4A+FR2
.word ANI_ATTACK_ON_Z,AMODE_HITCHECK,-21,-11,-10,42,33,50
WL 1,U4MP4A+FR2
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#leapat
WL ANI_SET_YVEL,14000h
WL ANI_GOTO,#common
#leapat
.word ANI_TARGET,TGT_HEAD,TGT_GROIN,ATM_CLOSEST
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 16,999,160,140,40000h,TGT_USER,-13,0,30
WL ANI_CODE,no_bk_xvel
#common
WL 3,U4MP4A+FR3
;Frame was not loaded...So I took it out...
; WL 1,U4MP4A+FR4
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_ATTACK_ON_Z,AMODE_STOMP,-21,-11,-10,42,33,50
WL 1,U4MP4A+FR5
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
WL ANI_IFNOTSTATUS,#missed
.word ANI_SHAKER,20
.word ANI_SHAKEALL,1
WL ANI_GOTO,#hit
#missed
WL ANI_CODE,CALL_MISSES
#hit
WL 3,U4MP4A+FR5
WL 2,U4MP4A+FR6
WL 3,U4MP4A+FR7
WL 2,U4MP4A+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************]
*
* #3 FLYING BUTT-DROP
#yoff equ 50
SUBR und_combo_flying_butt_drop_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETSPEED,100h
WL 4,U4JK4A+FR3
.word ANI_OFFSET,0,#yoff,0
.word ANI_TARGET,TGT_CHEST,TGT_CHEST,ATM_CLOSEST
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 30,200,150,90,90000h,TGT_USER,0,0,-10
.word ANI_SETPLYRMODE,MODE_INAIR
WL ANI_CODE,no_bk_xvel
WL 4,U4JK4A+FR4
WL 4,U4JK4A+FR5
WL 4,U4JK4A+FR6
WL 4,U4JK4A+FR7
.word ANI_ATTACK_ON,AMODE_BUTTSTOMP,-25,-7+5,55,23
WWL ANI_WAITHITOPP,18,U4JK4A+FR8
.word ANI_ATTACK_OFF
.word ANI_SHAKER,30
.word ANI_SHAKEALL,1
WL ANI_CODE,HIT_THE_MAT
WL ANI_IFNOTSTATUS,#misscx
;bounce is automatic...
.WORD ANI_INC_COMBO
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_SHADOWTRAIL,0 ;off
WL 4,U4JK4A+FR10
WL 4,U4JK4A+FR8
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,SMALL_BOUNCE
.word ANI_SETPLYRMODE,MODE_ONGROUND
.word ANI_SHADOWTRAIL,0 ;off
.word ANI_XFLIP
.word ANI_FACEUP
WL ANI_CHANGEANIM,und_getup2_anim
#misscx ;missed
WL ANI_CODE,CALL_MISSES
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_SHADOWTRAIL,0 ;off
WL 12,U4JK4A+FR10
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_XFLIP
.word ANI_FACEUP
WL ANI_CHANGEANIM,und_getup2_anim
SUBR und_flying_butt_drop_anim
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETSPEED,100h
WL 3,U4JK4A+FR3
.word ANI_OFFSET,0,#yoff,0
.word ANI_TARGET,TGT_CHEST,TGT_CHEST,ATM_CLOSEST
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 30,200,150,90,90000h,TGT_USER,0,0,-10
.word ANI_SETPLYRMODE,MODE_INAIR
WL ANI_CODE,no_bk_xvel
WL 4,U4JK4A+FR4
WL 4,U4JK4A+FR5
WL 4,U4JK4A+FR6
WL 4,U4JK4A+FR7
.word ANI_ATTACK_ON,AMODE_BUTTSTOMP,-25,-7+5,55,23
WWL ANI_WAITHITOPP,18,U4JK4A+FR8
.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_IFNOTSTATUS,#miss
#hit
;bounce is automatic...
WL ANI_CODE,CALL_ANI_AVERAGE_MOVE
WL 4,U4JK4A+FR10
WL 4,U4JK4A+FR8
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,SMALL_BOUNCE
.word ANI_SETPLYRMODE,MODE_ONGROUND
.word ANI_SHADOWTRAIL,0 ;off
.word ANI_XFLIP
.word ANI_FACEUP
WL ANI_CHANGEANIM,und_getup2_anim
#miss ;missed
WL ANI_CODE,CALL_MISSES
.word ANI_SHADOWTRAIL,0 ;off
WL 12,U4JK4A+FR10
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_XFLIP
.word ANI_FACEUP
WL ANI_CHANGEANIM,und_getup2_anim
#*****************************************************************************]
*
* TURNBUCKLE BUTT-DROP
#yoff equ 50
SUBR und_tbukl_butt_drop_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
.word ANI_STARTATTACK,AT_LEAPING,35
; WL 3,U4JK4A+FR1
; WL 3,U4JK4A+FR2
WL 3,U4JK4A+FR3
.word ANI_OFFSET,0,#yoff,0
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
; LEAPATOPP 36,190,190,190,90000h,TGT_GROIN,0,0,-20
LEAPATOPP 36,220,220,220,90000h,TGT_CHEST,0,0,-20
; .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
WL 3,U4JK4A+FR4
WL 3,U4JK4A+FR5
WL 3,U4JK4A+FR6
WL 3,U4JK4A+FR7
WL ANI_CODE,set_tbukl_confine
.word ANI_ATTACK_ON_Z,AMODE_BSTOMP,-36,0,-30,110,38,60
WWL ANI_IFOPPMODE,MODE_DEAD,#opp_onground
WWL ANI_IFOPPMODE,MODE_ONGROUND,#opp_onground
.word ANI_ATTACK_ON_Z,AMODE_BSTOMP,-36,28,-30,110,38,60
#opp_onground
WWL ANI_WAITHITOPP,32,U4JK4A+FR8
.word ANI_ATTACK_OFF
.word ANI_ZERO_XZVELS
.word ANI_SETPLYRMODE,MODE_INAIR
.word ANI_SHAKER,50
.word ANI_SHAKEALL,2
WL ANI_CODE,HIT_THE_MAT
.WORD ANI_ADD_MOVE,MOVE_C_3,2,2
WL ANI_IFNOTSTATUS,#miss
#hit
WL ANI_CODE,CALL_ANI_AVERAGE_MOVE
.word ANI_WAITHITGND
WL ANI_SET_YVEL,50000h
WLW ANI_SET_ZVEL,28000h,AM_ABS
.word ANI_SETPLYRMODE,MODE_INAIR
WL 4,U4JK4A+FR10
WL 4,U4JK4A+FR8
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,HIT_THE_MAT
.word ANI_SETPLYRMODE,MODE_ONGROUND
.word ANI_XFLIP
.word ANI_FACEUP
WL ANI_CHANGEANIM,und_getup2_anim
#miss ;missed
WL ANI_CODE,CALL_MISSES
.word ANI_SHAKER,20
.word ANI_SHAKEALL,1
WL 2,U4JK4A+FR10
WL ANI_CHANGEANIM,und_hitonground_xflip_anim
#*****************************************************************************
*
* #4 BIG BOOT
SUBR und_4_bigboot_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.word ANI_STARTATTACK,AT_BIGBOOT,8
WL 3,U4BG3A+FR2
WL 3,U4BG3A+FR3
WL ANI_CODE,#clrcnt
.word ANI_ATTACK_ON, AMODE_BIGBOOT,30,89,68,20 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,15,U4BG3A+FR4
#lp
.word ANI_STARTATTACK,AT_BIGBOOT,5
WL 2,U4BG3A+FR4
WL ANI_CODE,#holdup
WL ANI_IFSTATUS,#lp
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
.word ANI_DRAW_NAME,27
#missed
WL 3,U4BG3A+FR5
WL 3,U4BG3A+FR6
WL 3,U4BG3A+FR7
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#clrcnt
;We are re-using BUT_COUNT in the player process
clr a0
move a0,*a13(BUT_COUNT)
rets
#holdup
move *a13(BUT_COUNT),a0
inc a0
move a0,*a13(BUT_COUNT)
;Max time to hold up in air (*2 ticks)
cmpi 25,a0
jrgt #button_up
move *a13(BUT_VAL_CUR),a0
btst PLAYER_SKICK_BIT,a0 ;still down?
jrz #button_up
;Still holding...
move *a13(ANIMODE),a1
ori MODE_STATUS,a1
move a1,*a13(ANIMODE)
rets
#button_up
move *a13(ANIMODE),a1
andni MODE_STATUS,a1
move a1,*a13(ANIMODE)
rets
#*****************************************************************************
*
* #2 KNEE
SUBR und_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
.word ANI_STARTATTACK,AT_KICK,6
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U2NM3A+FR3
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U2NM3A+FR3
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U2NM3A+FR3
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
; LEAPATOPP 12h,999,20h,20,90000h,TGT_CHEST,20,50,0
WL 3,U2NM3A+FR4
.word ANI_ATTACK_ON, AMODE_KNEE,8,31,46,32 ;mode,x,y,w,h
WL 3,U2NM3A+FR5
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit
WL ANI_SET_YVEL,50000h
WLW ANI_SET_ZVEL,8000h,AM_ABS
WL 1,U2NM3A+FR5
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_GOTO,#cont
#no_hit
; WL ANI_IFNOTSTATUS,#nodrft
; WLW ANI_SET_ZVEL,10000h,AM_ABS
;#nodrft
WL 0ch,U2NM3A+FR5
; .word ANI_ZERO_XZVELS
; WL 1,U2NM3A+FR5
; .word ANI_WAITHITGND
#cont
WL 3,U2NM3A+FR6
WL 3,U2NM3A+FR7
WL 3,U2NM3A+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* #4 KNEE
SUBR und_4_knee2_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_KICK,6
WL 2,U4NM3A+FR2
WL ANI_GOTO,#cont2a
SUBR und_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
.word ANI_STARTATTACK,AT_KICK,6
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U4NM3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U4NM3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,U4NM3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
#cont2a
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 12h,999,20h,20,90000h,TGT_CHEST,20,50,0
WL 3,U4NM3A+FR3
.word ANI_ATTACK_ON, AMODE_KNEE,8,31,46,32 ;mode,x,y,w,h
#cont0 WL 3,U4NM3A+FR4
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit2
WL ANI_SET_YVEL,40000h
WLW ANI_SET_ZVEL,-10000h,AM_ABS
WL 1,U4NM3A+FR4
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_GOTO,#cont2
#no_hit2
WL ANI_IFNOTSTATUS,#nodrft2
WLW ANI_SET_ZVEL,-10000h,AM_ABS
#nodrft2
WL 0ch,U4NM3A+FR4
.word ANI_ZERO_XZVELS
WL 1,U4NM3A+FR4
.word ANI_WAITHITGND
#cont2
WL 3,U4NM3A+FR5
WL 3,U4NM3A+FR6
WL 3,U4NM3A+FR7
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR und_4_knee_fall_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_KICK,6
WL 3,U4NM3A+FR2
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 12h,999,20h,20,90000h,TGT_CHEST,20,50,0
WL 3,U4NM3A+FR3
.word ANI_ATTACK_ON, AMODE_BIGKNEE,8,31,46,32 ;mode,x,y,w,h
WL ANI_GOTO,#cont0
SUBR und_4_knee_butts_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_CLR_BUTCOUNT
.word ANI_SETWORD,USR_VAR2,0
WL ANI_SET_YVEL,30000h
WLW ANI_SET_XVEL,10000h,AM_FACE_REL
.word ANI_OFFSET,0,0,-10 ;x,y,z
WL 2,U4NM3A+FR2
WL 2,U4NM3A+FR3
.word ANI_ATTACK_ON, AMODE_HEADKNEES,8,31,46,32 ;mode,x,y,w,h
WL 2,U4NM3A+FR4
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
; .word ANI_SET_ATTACH
;Needs to be enough to keep opponent up off of ground to keep him in
;mode headheld!
WLLL ANI_SETOPPVELS,0000H,50000h,0h ;x,y,z vels
WL 3,U4NM3A+FR4
WL 3,U4NM3A+FR5
WL 3,U4NM3A+FR6
WL 3,U4NM3A+FR7
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#exit2
;Now try consecutive head butts
; .word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SET_RPTCOUNT,3 ;rpt 2 times
.WORD ANI_ADD_MOVE,MOVE_C_5,2,2
.word ANI_ZERO_XZVELS
#rpt
.word ANI_CLR_BUTCOUNT
WL 2,U4BC3A+FR1
WL 1,U4BC3A+FR2
WL 2,U4BC3A+FR3
WL 1,U4BC3A+FR4
WL 2,U4BC3A+FR5
.word ANI_SOUND,43H
.word ANI_ATTACK_ON, AMODE_HDBUTT2,-8,53,73,66 ;mode,x,y,w,h
WL 2,U4BC3A+FR6
.word ANI_ATTACK_OFF
.word ANI_ZEROVELS
WL ANI_IFNOTSTATUS,#missed0
.word ANI_DEBRISAT,250,1,10,50,0 ;%chance, tbl index, x,y,z off
WL 1,U4BC3A+FR7
WL 2,U4BC3A+FR8
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#exit
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#rpt
WLLL ANI_SETOPPVELS,0000H,30000h,0h ;x,y,z vels
.word ANI_SETWORD,USR_VAR2,1
;Now, 1 last butt, check skick
.word ANI_CLR_BUTCOUNT
WL 2,U4BC3A+FR1
WL 2,U4BC3A+FR2
WL 2,U4BC3A+FR3
WL 2,U4BC3A+FR4
WL 2,U4BC3A+FR5
.word ANI_SOUND,43H
.word ANI_ATTACK_ON, AMODE_HDBUTT2,-8,53,73,66 ;mode,x,y,w,h
WL 2,U4BC3A+FR6
.word ANI_ATTACK_OFF
.word ANI_ZEROVELS
WL ANI_IFNOTSTATUS,#missed0
WLLL ANI_SETOPPVELS,0000H,50000h,0h ;x,y,z vels
WL 2,U4BC3A+FR7
WL 2,U4BC3A+FR8
;Try reading other buttons here...
WWWL ANI_IF_BUTCOUNT_LT,KICKB_COUNT,1,#next1
WL ANI_CODE,#reduce_dmg
WL ANI_CHANGEANIM,und_flying_kick2_anim
#next1
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#exit0
.word ANI_DETACH
.word ANI_SETMODE,MODE_NORMAL
;Let him drift down a bit
.word ANI_PAUSE,9
WL ANI_CODE,#reduce_dmg
.ref und_4_snapmirror_anim
WL ANI_CHANGEANIM,und_4_snapmirror_anim
#exit0
.word ANI_DETACH
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#missed0
.word ANI_DETACH
WL 2,U4BC3A+FR7
WL 2,U4BC3A+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#exit
#missed
.word ANI_DETACH
WL 3,U4NM3A+FR4
WL 3,U4NM3A+FR5
WL 3,U4NM3A+FR6
WL 3,U4NM3A+FR7
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#exit2
.word ANI_DETACH ;From just a knee!
.word ANI_FACEDOWN
.word ANI_SETFACING
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#reduce_dmg
;Neck breaker may take awhile
.ref PCNT
SPCDMG D_PUNCH,40
rets
#*****************************************************************************
*
* GRAB & FLING OPPONENT (INTO A RUN)
SUBR und_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,U1TT5A+FR2
WL 2,U1TT5A+FR3
WL ANI_GOTO,#cont
SUBR und_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,U4GF3A+FR1
.word ANI_ATTACK_ON, AMODE_PUPPET_NOFLAIL,19,68,80,16 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,6,U4GF3A+FR2
.word ANI_ZERO_XZVELS
WWL ANI_WAITHITOPP,2,U4GF3A+FR3
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missedb
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
;got him
.WORD ANI_ADD_MOVE,MOVE_C_5,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,U4GF3A+FR3,#puppet_tbl,0
WWLLW ANI_SUPERSLAVE2,5,U4GF3A+FR4,#puppet_tbl,1
WWLLW ANI_SUPERSLAVE2,4,U4GF3A+FR5,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,3,U4GF3A+FR6,#puppet_tbl,3
WWLLW ANI_SUPERSLAVE2,3,U4GF3A+FR7,#puppet_tbl,4
WWLLW ANI_SUPERSLAVE2,3,U4GF3A+FR8,#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 10,U4GF3A+FR8
.word ANI_OFFSET,-10,0,0 ;x,y,z
.word ANI_FACEDOWN
.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,U4GF3A+FR4
#missed
WL ANI_CODE,CALL_MISSES
WL 3,U4GF3A+FR4
WL 3,U4GF3A+FR3
WL 3,U4GF3A+FR2
WL 3,U4GF3A+FR1
.word ANI_FACEDOWN
.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
.ref H4YR3A,H3RN3A
.ref R4YR3A,R3RN3D
.ref D4YR3B,D3RN3B
.ref Y4YR3A,Y3RN3C
.ref S4YR3A,S3RN3A
.ref B4YR3A,B3RN3A
.ref L4YR3B,L3RN3B
#Bret
LWWW H4YR3A+FR1,61,-4,1
LWWW H4YR3A+FR2,54,-1,1
LWWW H4YR3A+FR3,63,2,1
LWWW H4YR3A+FR5,49,-1,1
LWWW H3RN3A+FR1,-6,-10,0
LWWW H3RN3A+FR2,4,-7,0
#Razor
LWWW R4YR3A+FR1,48,6,0
LWWW R4YR3A+FR2,37,9,0
LWWW R4YR3A+FR3,33,6,0
LWWW R4YR3A+FR4,9,-1,0
LWWW R3RN3D+FR10,0,1,0
LWWW R3RN3D+FR11,7,4,0
#Taker
LWWW U4YR3B+FR2,40,9,0
LWWW U4YR3B+FR3,51,5,0
LWWW U4YR3B+FR4,32,6,0
LWWW U4YR3B+FR5,-3,4,0
LWWW U3RN3A+FR1,-8,2,0
LWWW U3RN3A+FR2,-42,0,0
#Yokozuna
LWWW Y4YR3A+FR1,63,-3,1
LWWW Y4YR3A+FR4,34,-1,1
LWWW Y4YR3A+FR5,29,6,1
LWWW Y4YR3A+FR7,19,1,1
LWWW Y3RN3C+FR7,29,4,0
LWWW Y3RN3C+FR8,4,-1,0
#Shawn
LWWW S4YR3A+FR2,36,-7,1
LWWW S4YR3A+FR3,45,-13,1
LWWW S4YR3A+FR5,28,2,1
LWWW S4YR3A+FR6,8,-5,1
LWWW S3RN3A+FR2,-3,-4,0
LWWW S3RN3A+FR3,0,0,0
#BamBam
LWWW B4YR3A+FR3,43,1,0
LWWW B4YR3A+FR4,50,-2,0
LWWW B4YR3A+FR5,63,3,0
LWWW B4YR3A+FR7,10,-9,0
LWWW B3RN3A+FR1,10,0,0
LWWW B3RN3A+FR2,0,5,0
#Doink
LWWW D4YR3B+FR1,61,-2,1
LWWW D4YR3B+FR2,50,3,1
LWWW D4YR3B+FR3,53,6,1
LWWW D4YR3B+FR4,36,1,1
LWWW D3RN3B+FR3,6,-1,0
LWWW D3RN3B+FR4,-2,0,0
#Adam
.long 0
#Lex
LWWW L4YR3B+FR1,77,3,1
LWWW L4YR3B+FR2,58,-1,1
LWWW L4YR3B+FR3,47,6,1
LWWW L4YR3B+FR4,5,-3,1
LWWW L3RN3B+FR2,-1,4,0
LWWW L3RN3B+FR3,17,-1,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
#*****************************************************************************
*
* #2 HEAD HIT
SUBR und_2_head_hit_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
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,SPRAYA_SWEAT,SWEAT_PER,0
.word ANI_DEBRIS,150,3,-21,100,0 ;%chance, tbl index, x,y,z off
WL 3,U2AH3A+FR3
WL 3,U2AH3A+FR4
WL 2,U2AH3A+FR5
WL 2,U2AH3A+FR6
WL 2,U2AH3A+FR7
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* #4 HEAD HIT
SUBR und_4_head_hit_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
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,SPRAYA_SWEAT,SWEAT_PER,0
.word ANI_DEBRIS,150,3,-21,100,0 ;%chance, tbl index, x,y,z off
WL 3,U4AH3A+FR2
WL 3,U4AH3A+FR3
WL 2,U4AH3A+FR4
WL 2,U4AH3A+FR5
WL 2,U4AH3A+FR6
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#************
*
* #2 HEAD HIT - From spin kick & backhand slap
SUBR und_2_head_hit2_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
WLW ANI_SET_XVEL,-28000h,AM_HIT_REL
WLW ANI_SET_ZVEL,20000h,AM_HIT_REL
WL ANI_SET_YVEL,40000h
.word ANI_DEBRIS,150,3,-21,100,0 ;%chance, tbl index, x,y,z off
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,SPRAYA_SWEAT,SWEAT_PER,0
WL 3,U2AH3A+FR3
WL 3,U2AH3A+FR4
WL 1,U2AH3A+FR5
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 2,U2AH3A+FR6
WL 2,U2AH3A+FR7
;Try auto push here!
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* #4 HEAD HIT - From spin kick & backhand slap
SUBR und_4_head_hit2_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
WLW ANI_SET_XVEL,-28000h,AM_HIT_REL
WLW ANI_SET_ZVEL,-20000h,AM_ABS
WL ANI_SET_YVEL,40000h
.word ANI_DEBRIS,150,3,-21,100,0 ;%chance, tbl index, x,y,z off
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,SPRAYA_SWEAT,SWEAT_PER,0
WL 3,U4AH3A+FR2
WL 3,U4AH3A+FR3
WL 1,U4AH3A+FR4
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 2,U4AH3A+FR5
WL 2,U4AH3A+FR6
.word ANI_FACEDOWN
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
SUBR und_4_head_hit4_anim
;From earslap
.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
WL ANI_SET_YVEL,40000h
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,SPRAYA_SWEAT,SWEAT_PER,0
WL 4,U4AH3A+FR4
WL 4,U4AH3A+FR5
WL 4,U4AH3A+FR6
.word ANI_WAITHITGND
.word ANI_FACEDOWN
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* HEAD HIT2 (HANDS ON FACE)
SUBR und_head_hit2_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
WL ANI_SET_YVEL,28000h
WLW ANI_SET_XVEL,-40000h,AM_HIT_REL
.word ANI_FRICTION,3000h
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,SPRAYA_SWEAT,SWEAT_PER,0
WL 3,U3AE4A+FR1
WL 8,U3AE4A+FR2
WL 3,U3AE4A+FR3
WL 2,U3AE4A+FR4
WL 3,U3AE4A+FR5
WL 2,U3AE4A+FR6
WL 3,U3AE4A+FR7
WL ANI_CODE,am_I_dead
;If I'm dead, goto fall back
WL ANI_IFNOTSTATUS,#nodead
WL ANI_CHANGEANIM,und_fall_back_anim
.word ANI_END
#nodead
.word ANI_FACE,MOVE_RIGHT|MOVE_DOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR und_head_hit2s_anim
;Salt hits me in face
.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
WL ANI_CODE,create_impact_salt
WL 4,U3AE4A+FR1
WL 10,U3AE4A+FR2
WL 4,U3AE4A+FR3
WL 4,U3AE4A+FR4
WL 4,U3AE4A+FR5
.word ANI_WAITHITGND
.word ANI_FRICTION,4000h
WL 40,U3AE4A+FR5
.word ANI_ZEROVELS
WL 3,U3AE4A+FR6
WL 3,U3AE4A+FR7
.word ANI_FACE,MOVE_RIGHT|MOVE_DOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* HEAD HIT2 (ENDS IN DIZZY)
SUBR und_head_hit_dizzy_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
WL ANI_SET_YVEL,38000h
WLW ANI_SET_XVEL,-50000h,AM_HIT_REL
.word ANI_FRICTION,3000h
.word ANI_SETPLYRMODE,MODE_DIZZY
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,SPRAYA_SWEAT,SWEAT_PER,0
WL 4,U3AE4A+FR1
WL 10,U3AE4A+FR2
WL 4,U3AE4A+FR3
WL 4,U3AE4A+FR4
WL 4,U3AE4A+FR5
WL 4,U3AE4A+FR6
WL 4,U3AE4A+FR7
; .word ANI_SETPLYRMODE,MODE_DIZZY
WL ANI_CHANGEANIM,und_dizzy_anim
.word ANI_END
#*****************************************************************************
*
* #2 BODY HIT
SUBR und_2_body_hit_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WL ANI_SET_YVEL,48000h
WLW ANI_SET_XVEL,-30000h,AM_HIT_REL
.word ANI_DEBRIS,100,0,6,72,0 ;%chance, tbl index, x,y,z off
WL ANI_CODE,ckzpos
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,COUGH_SWEAT,SWEAT_PER,0
WL 1,U2AM2A+FR2
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 3,U2AM2A+FR3
WL 2,U2AM2A+FR4
WL 3,U2AM2A+FR5
WL 2,U2AM2A+FR6
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* #4 BODY HIT
SUBR und_4_body_hit_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WL ANI_SET_YVEL,48000h
WLW ANI_SET_XVEL,-30000h,AM_HIT_REL
WL ANI_CODE,ckzpos
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,COUGH_SWEAT,SWEAT_PER,0
WL 3,U4AM4C+FR2
WL 1,U4AM4C+FR3
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 2,U4AM4C+FR4
WL 3,U4AM4C+FR5
WL 2,U4AM4C+FR6
.word ANI_CHECKWORD,USR_VAR1
WL ANI_IFNOTSTATUS,#reg
;120
WL 10,U4TI4C+FR1
WL 10,U4TI4C+FR3
WL 10,U4TI4C+FR5
WL 10,U4TI4C+FR7
WL 10,U4TI4C+FR5
WL 10,U4TI4C+FR3
#reg
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* #2 BODY HIT BY KNEE
SUBR und_2_knee_hit_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WL ANI_SET_YVEL,78000h
WLW ANI_SET_XVEL,-30000h,AM_HIT_REL
WLW ANI_SET_ZVEL,04000h,AM_ABS
WL ANI_CODE,ckzpos
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,COUGH_SWEAT,SWEAT_PER,0
WL 1,U2AM2A+FR2
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 3,U2AM2A+FR3
WL 2,U2AM2A+FR4
WL 3,U2AM2A+FR5
WL 2,U2AM2A+FR6
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* #4 BODY HIT BY KNEE
SUBR und_4_knee_hit_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WL ANI_SET_YVEL,78000h
WLW ANI_SET_XVEL,-30000h,AM_HIT_REL
WLW ANI_SET_ZVEL,-04000h,AM_ABS
WL ANI_CODE,ckzpos
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,COUGH_SWEAT,SWEAT_PER,0
WL 3,U4AM4C+FR2
WL 1,U4AM4C+FR3
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 2,U4AM4C+FR4
WL 3,U4AM4C+FR5
WL 2,U4AM4C+FR6
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR und_4_knee_hit_dizzy_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WL ANI_SET_YVEL,78000h
WLW ANI_SET_XVEL,-30000h,AM_HIT_REL
.word ANI_SETPLYRMODE,MODE_DIZZY
WL ANI_CODE,ckzpos
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,COUGH_SWEAT,SWEAT_PER,0
WL 3,U4AM4C+FR2
WL 1,U4AM4C+FR3
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 3,U4AM4C+FR4
WL 3,U4AM4C+FR5
WL 3,U4AM4C+FR6
.word ANI_FACEDOWN
; .word ANI_SETPLYRMODE,MODE_DIZZY
WL ANI_CHANGEANIM,und_dizzy_anim
.word ANI_END
SUBR und_quick_knee_hit_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETSPEED,100h
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,COUGH_SWEAT,SWEAT_PER,0
WL 3,U4AM4C+FR2
WL 3,U4AM4C+FR3
WL 3,U4AM4C+FR4
WL 3,U4AM4C+FR5
WL 3,U4AM4C+FR6
.word ANI_FACEDOWN
WL ANI_CODE,am_I_dead
;If I'm dead, goto fall back
WL ANI_IFNOTSTATUS,#nodead
WL ANI_CHANGEANIM,und_fall_back_anim
.word ANI_END
#nodead
WL ANI_CHANGEANIM,und_3_head_held_anim
.word ANI_END
* #4 BODY HIT - While I was dizzy
SUBR und_4_body_hit_dizzy_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WL ANI_SET_YVEL,48000h
WLW ANI_SET_XVEL,-30000h,AM_HIT_REL
.word ANI_SETPLYRMODE,MODE_DIZZY
WL ANI_CODE,ckzpos
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,COUGH_SWEAT,SWEAT_PER,0
WL 3,U4AM4C+FR2
WL 1,U4AM4C+FR3
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 3,U4AM4C+FR4
WL 3,U4AM4C+FR5
WL 3,U4AM4C+FR6
.word ANI_FACEDOWN
; .word ANI_SETPLYRMODE,MODE_DIZZY
WL ANI_CHANGEANIM,und_dizzy_anim
.word ANI_END
#*****************************************************************************
*
* HITS ON GROUND
SUBR und_hitonground_xflip_anim
.word ANI_XFLIP
;fall through
SUBR und_hitonground_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
.word ANI_SETPLYRMODE,MODE_ONGROUND
.word ANI_SETSPEED,100h
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,SPITUP_SWEAT,SWEAT_PER,0
WL 1,U3CP3B+FR2
.word ANI_DEBRIS,50,1,0,8,0 ;%chance, tbl index, x,y,z off
WL ANI_SET_YVEL,39000h
WL 3,U3CP3B+FR2
WL 3,U3CP3B+FR3
WL 3,U3CP3B+FR4
WL 3,U3CP3B+FR5
WL 3,U3CP3B+FR6
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
.word ANI_ZEROVELS
WL 3,U3CP3B+FR7
SUBR und_liedown_anim
WL 1,U3CP3B+FR1
.word ANI_WAITROLL
WL ANI_CHANGEANIM,und_getup_anim
SUBR und_up_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.WORD ANI_XFLIP
.word ANI_ZEROVELS
.word ANI_SETPLYRMODE,MODE_ONGROUND
.word ANI_SETSPEED,100h
WL 10,U3FH3A+FR2
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
.word ANI_ZEROVELS
WL 3,U3CP3B+FR7
WL 1,U3CP3B+FR1
.word ANI_WAITROLL
WL ANI_CHANGEANIM,und_getup_anim
#*****************************************************************************
*
* FALL BACK
SUBR und_fall_back_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_NOCOLLIS
; .word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETSPEED,100h
.word ANI_ZERO_XZVELS
WL ANI_MIN_YVEL,60000h
WLW ANI_SET_ZVEL,10000h,AM_FACE_REL
.word ANI_SCROLL_CTRL,UND_TBUKLY
WL ANI_CODE,ckzpos
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,SPRAYC_SWEAT,SWEAT_PER,0
WWL ANI_SETLONG,DEBRIS_X,[104,2] ;Y,X of head
WL 3,U3FD3B+FR1
WWL ANI_SETLONG,DEBRIS_X,[104,-24] ;Y,X of head
WL 3,U3FD3B+FR2
.word ANI_OFFSET,0,53,0 ;x,y,z
WWL ANI_SETLONG,DEBRIS_X,[50,-20] ;Y,X of head
WL 3,U3FD3B+FR3
WWL ANI_SETLONG,DEBRIS_X,[43,-26] ;Y,X of head
WL 3,U3FD3B+FR4
WWL ANI_SETLONG,DEBRIS_X,[32,-41] ;Y,X of head
WL 2,U3FD3B+FR5
.word ANI_WAITHITGND
.word ANI_DEBRIS,100,1,0,8,0 ;%chance, tbl index, x,y,z off
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKEALL,1
.word ANI_SHAKER,25
.word ANI_FRICTION,3000h
WWL ANI_SETLONG,DEBRIS_X,[8,-51] ;Y,X of head
WL 2,U3FD3B+FR6
.word ANI_BOUNCE,4
WWL ANI_SETLONG,DEBRIS_X,[9,-53] ;Y,X of head
WL 2,U3FD3B+FR7
.word ANI_WAITHITGND
.word ANI_SETPLYRMODE,MODE_ONGROUND
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
WL ANI_CODE,SMALL_BOUNCE
.word ANI_SOUND,bounce_l1
.word ANI_ZEROVELS
WWL ANI_SETLONG,DEBRIS_X,0 ;Y,X of head
.word ANI_XFLIP
WL 3,U3CP3B+FR1 ;1st frame of roll
;Now, also check to see if this made him dizzy
;Stay on ground for awhile... Maybe this will be table driven
WL 3,U3CP3B+FR1 ;1st frame of roll
;#done
.word ANI_WAITROLL
WL ANI_CHANGEANIM,und_getup_anim
#*****************************************************************************
*
* FALL BACK
;From clothesline
SUBR und_fall_back2_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WL ANI_SET_YVEL,10000h
WLW ANI_SET_ZVEL,18000h,AM_ABS
WL ANI_CODE,ckzpos
.word ANI_XFLIP
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,SPRAYC_SWEAT,SWEAT_PER,0
WL 3,U3FD3X+FR1
WL 3,U3FD3X+FR2
.word ANI_OFFSET,0,49,0 ;x,y,z
WL 3,U3FD3X+FR3
WL 3,U3FD3X+FR4
WL 3,U3FD3X+FR5
WL 3,U3FD3X+FR6
.word ANI_WAITHITGND
.word ANI_DEBRIS,300,1,0,8,0 ;%chance, tbl index, x,y,z off
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKEALL,1
.word ANI_SHAKER,35
.word ANI_ZEROVELS
WLW ANI_SET_ZVEL,18000h,AM_ABS
WLW ANI_SET_XVEL,-40000h,AM_FACE_REL
.word ANI_OFFSET,-20,0,0 ;x,y,z
WL 3,U3GP3X+FR1
WL 3,U3GP3X+FR2
WL 3,U3GP3X+FR3
WL 3,U3GP3X+FR4
WL 3,U3GP3X+FR5
WL 3,U3GP3X+FR6
WL ANI_CODE,HIT_THE_MAT
.word ANI_ZEROVELS
.word ANI_SETPLYRMODE,MODE_ONGROUND ;So we can stomp him!
.word ANI_XFLIP
.word ANI_OFFSET,-20,0,0 ;x,y,z
WL 4,U3CF3Q+FR1
WL 4,U3CF3Q+FR2
WL 4,U3CF3Q+FR3
WL 4,U3CF3Q+FR4
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,HIT_THE_MAT
WL 12,U3GD2A+FR1
WL 3,U3GD2A+FR1
WL 3,U3GD2A+FR2
WL 3,U3GD2A+FR3
WL 3,U3GD2A+FR4
WL ANI_CODE,choose_2or4
WL ANI_IFSTATUS,#getup_in_4
WL 3,U3GD2A+FR5
WL 3,U3GD2A+FR6
WL 3,U3GD2A+FR7
WL 2,U3GD2A+FR8
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 1,U3GD2A+FR8
.word ANI_SAFE_TIME,50
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss
.word ANI_ATTACK_ON,AMODE_HITCHECK,33,85,65,17
WL 1,U3SU2B+FR8
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,und_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,U3GD4A+FR5
WL 3,U3GD4A+FR6
WL 3,U3GD4A+FR7
WL 2,U3GD4A+FR8
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 1,U3GD4A+FR8
.word ANI_SAFE_TIME,50
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss2
.word ANI_ATTACK_ON,AMODE_HITCHECK,33,85,65,17
WL 1,U3SU4A+FR8
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss2
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,und_4_push_anim
#no_freetoss2
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* FALL FROM TURNBUCKLE
SUBR und_fall_back_tbukl_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE
.word ANI_SETSPEED,100h
.word ANI_SCROLL_CTRL,SC_RESTORE
WL 3,U3FD3B+FR1
WL 3,U3FD3B+FR2
.word ANI_OFFSET,0,53,0 ;x,y,z
WL 3,U3FD3B+FR3
WL 3,U3FD3B+FR4
WL 2,U3FD3B+FR5
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_DAMAGE,D_HITCONCRETE
.word ANI_DEBRIS,300,1,0,8,0 ;%chance, tbl index, x,y,z off
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKEALL,1
.word ANI_SHAKER,35
; .word ANI_FRICTION,3000h
WL 2,U3FD3B+FR6
; .word ANI_BOUNCE,4
WL 2,U3FD3B+FR7
; .word ANI_WAITHITGND
; WL ANI_CODE,SMALL_BOUNCE
; .word ANI_SOUND,bounce_l1
; .word ANI_ZEROVELS
.word ANI_XFLIP
.word ANI_SETPLYRMODE,MODE_ONGROUND
WL 3,U3CP3B+FR1 ;1st frame of roll
.word ANI_WAITROLL
WL ANI_CHANGEANIM,und_getup_anim
#*****************************************************************************
*
SUBR und_faceup_getup_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCOLLIS
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETSPEED,100h
; .word ANI_CLR_STARS
; .word ANI_CLR_DAMAGE
WL 3,U3SU3A+FR2
WL 2,U3SU3A+FR3
WL 3,U3SU3A+FR4
WL 2,U3SU3A+FR5
WL 3,U3SU3A+FR6
; .word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
WL ANI_CODE,choose_2or4
WL ANI_IFSTATUS,#getup_in_4
WL 2,U3SU2B+FR1
WL 3,U3SU2B+FR2
WL 2,U3SU2B+FR3
WL 3,U3SU2B+FR4
WL 2,U3SU2B+FR5
WL 3,U3SU2B+FR6
WL 1,U3SU2B+FR7
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 1,U3SU2B+FR7
WL 3,U3SU2B+FR8
.word ANI_SAFE_TIME,50
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#getup_in_4
WL 2,U3SU3A+FR7
WL 3,U3SU3A+FR8
WL 2,U3SU4A+FR1
WL 3,U3SU4A+FR2
WL 2,U3SU4A+FR3
WL 3,U3SU4A+FR4
WL 2,U3SU4A+FR5
WL 3,U3SU4A+FR6
WL 2,U3SU4A+FR7
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 1,U3SU4A+FR7
WL 3,U3SU4A+FR8
.word ANI_SAFE_TIME,50
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
SUBR und_getup_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCOLLIS
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETSPEED,100h
; .word ANI_CLR_STARS
; .word ANI_CLR_DAMAGE
WL 3,U3SU3A+FR1
WL 2,U3SU3A+FR2
WL 3,U3SU3A+FR3
WL 2,U3SU3A+FR4
WL 3,U3SU3A+FR5
WL 2,U3SU3A+FR6
WL ANI_GOTO,#common
;getup from seated position
SUBR und_getup2_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCOLLIS
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETSPEED,100h
; .word ANI_CLR_STARS
; .word ANI_CLR_DAMAGE
#common
WL ANI_CODE,choose_2or4
WL ANI_IFSTATUS,#getup_in_4
WL 3,U3SU2B+FR1
WL 2,U3SU2B+FR2
WL 3,U3SU2B+FR3
WL 2,U3SU2B+FR4
WL 3,U3SU2B+FR5
WL 2,U3SU2B+FR6
WL 2,U3SU2B+FR7
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 1,U3SU2B+FR7
WL 2,U3SU2B+FR8
.word ANI_SAFE_TIME,50
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss
.word ANI_ATTACK_ON,AMODE_HITCHECK,33,85,65,17
WL 1,U3SU2B+FR8
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,und_4_push_anim
#no_freetoss
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#getup_in_4
WL 3,U3SU3A+FR7
WL 2,U3SU3A+FR8
WL 3,U3SU4A+FR1
WL 2,U3SU4A+FR2
WL 3,U3SU4A+FR3
WL 2,U3SU4A+FR4
WL 3,U3SU4A+FR5
WL 2,U3SU4A+FR6
WL 2,U3SU4A+FR7
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 1,U3SU4A+FR7
WL 2,U3SU4A+FR8
.word ANI_SAFE_TIME,50
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss2
.word ANI_ATTACK_ON,AMODE_HITCHECK,33,85,65,17
WL 1,U3SU4A+FR8
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss2
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,und_4_push_anim
#no_freetoss2
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* DIZZY
SUBR und_dizzy_anim
.word ANI_SETMODE,MODE_NOAUTOFLIP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_START_DIZZY,0 ;0=Standing dizzy
.word ANI_FACE,MOVE_RIGHT|MOVE_DOWN
#loop
WL 10,U4TI4C+FR1
WL 10,U4TI4C+FR3
WL 10,U4TI4C+FR5
WL 10,U4TI4C+FR7
WL 10,U4TI4C+FR5
WL 10,U4TI4C+FR3
WL ANI_GOTO,#loop
#*****************************************************************************
*
* #4 BLOCK
SUBR und_4_block_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZERO_XZVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING
.word ANI_SET_WRESTLER_XFLIP
;Rotate toward opponent if needed!
.word ANI_SETPLYRMODE,MODE_BLOCK
; WL ANI_CODE,block_if_safe
WL 2,U4BK3C+FR1
WL 1,U4BK3C+FR2
; .word ANI_SETPLYRMODE,MODE_BLOCK
WL 1,U4BK3C+FR2
#blk4 WL 2,U4BK3C+FR3
.word ANI_SETMODE,MODE_NOAUTOFLIP|MODE_UNINT|MODE_FRICTION
; .word ANI_ZERO_XZVELS
.word ANI_WAITRELEASE,PLAYER_BLOCK_BIT
.word ANI_SETMODE,MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETFACING
WL 2,U4BK3C+FR2
WL 2,U4BK3C+FR1
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
SUBR und_4_hitblock_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_FRICTION,5000h
.word ANI_SETSPEED,100h
WL ANI_CODE,DO_BLOCKED
WL 2,U4BK3C+FR5
WL 2,U4BK3C+FR6
WL ANI_GOTO,#blk4
SUBR und_4_hitblock2_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_FRICTION,4000h
.word ANI_SETSPEED,100h
WL ANI_CODE,DO_BLOCKED
WL ANI_SET_YVEL,38000h
WL 3,U4BK3C+FR5
WL 3,U4BK3C+FR6
WL 3,U4BK3C+FR5
WL 3,U4BK3C+FR6
WL 3,U4BK3C+FR5
WL 3,U4BK3C+FR6
WL ANI_GOTO,#blk4
#*****************************************************************************
*
* THROWN FROM RING (shn_bslm, shn_frnk)
SUBR und_flyout_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE
.word ANI_SETPLYRMODE,MODE_INAIR
.word ANI_SETSPEED,100h
WWL ANI_SETLONG,OBJ_GRAVITY,0E000h
.word ANI_SET_IDIOT
WL ANI_CODE,DO_WAIL
WL 8,U3FH3A+FR3
WL 8,U3FH3A+FR4
#cont WL 1,U3FH3A+FR5
.word ANI_WAITHITGND
WWL ANI_SETLONG,OBJ_GRAVITY,GRAVITY
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKEALL,2
.word ANI_SHAKER,60
.word ANI_OFFSET,48,0,0
.word ANI_DAMAGE,D_HIPTOSS
; .word ANI_SETWORD,DELAY_METER,0
; .word ANI_GETUP,500
WL ANI_CHANGEANIM,und_hitonground_anim
SUBR und_flyout2_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE
.word ANI_SETPLYRMODE,MODE_INAIR
.word ANI_SETSPEED,100h
WWL ANI_SETLONG,OBJ_GRAVITY,0E000h
.word ANI_SET_IDIOT
WL ANI_CODE,DO_WAIL
WL ANI_GOTO,#cont
#****************************************************************************
*
* 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!
;Jamie, taker needs to be above fallen opponent. His hand should
;end up laying across opponents chest area. Not below it!
SUBR und_4_pin2_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WL 5,U3PN5A+FR1
WL 5,U3PN5A+FR2
WL 5,U3PN5A+FR3
WL 5,U3PN5A+FR4
WL 5,U3PN5A+FR5
WL 5,U3PN5A+FR6
WL 5,U3PN5A+FR7
WL 5,U3PN5A+FR8
WL ANI_CODE,create_impact5
WL ANI_CODE,DO_FLAME_HIT_SND
;Do a ground hit on opponent
WL ANI_CODE,hit_nearest
WL ANI_CODE,grnd_hit
WLW ANI_ATTCHIMAGE,UARMPN+FR9,1 ;image, zoff (priority)
WL ANI_CODE,DO_CROWD_CHEER
.word ANI_SHAKEALL,2
; .word ANI_SET_ATTACH
; .word ANI_ATTACHZ,0,0,10 ;x & y don't matter.
WL 25,U3PN5A+FR9
.word ANI_DEBRIS,1000,7,0,8,0 ;%chance, tbl index, x,y,z off
WL 5,U3PN5A+FR9
WL ANI_CODE,win_announce
WL 35,U3PN5A+FR9
.word ANI_LOOP
WLW ANI_ATTCHIMAGE,0,0 ;Turn it off
WL 3,U3PN5A+FR11
WL 3,U3PN5A+FR12
#cont2
;Place spirits around Undertaker as he stands up!
WL 3,U5RV5A+FR1
WL 3,U5RV5A+FR2
WL 3,U5RV5A+FR3
WL 3,U5RV5A+FR4
WL 3,U5RV5A+FR5
;Put urn into his hand
WL ANI_CODE,CREATE_URN2
#floop WL 1000,U5RV5A+FR6
WL ANI_GOTO,#floop
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
******************************************************************************
* RAISE ARM IN VICTORY FROM A STANCE
SUBR und_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 2,U1TT5A+FR2
WL 2,U1TT5A+FR3
WL 2,U1TT5A+FR4
WL ANI_GOTO,#cont
SUBR und_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
;Place spirits around Undertaker as he stands up!
#cont WL 4,U5RV5A+FR1
WL 4,U5RV5A+FR2
WL 4,U5RV5A+FR3
WL 4,U5RV5A+FR4
WL 4,U5RV5A+FR5
.word ANI_SET_RPTCOUNT,-4 ;set count to rnd from 0 to 4
#lp0 WL 55,U5RV5A+FR6
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#lp0
WL ANI_CODE,check_raisearm_bit
WL ANI_IFSTATUS,#wakeup
;don't wake up.
#floop1 WL 1000,U5RV5A+FR6
WL ANI_GOTO,#floop1
;5,4,2,1 leaves the sequence.
#wakeup WL 4,U5RV5A+FR5
WL 4,U5RV5A+FR4
WL 4,U5RV5A+FR3
WL 4,U5RV5A+FR2
WL 4,U5RV5A+FR1
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_FACEDOWN
.word ANI_END
#*****************************************************************************
SUBR und_roll_frames
.word 7 ;speed
.long 50000h ;z velocity
.long 10000h*11/255 ;inv multiply (0-255 -> 0-11)
.long U3CP3B+FR1 ;0
.long U3CR3A+FR12 ;1
.long U3CR3A+FR11 ;2
.long U3CR3A+FR10 ;3
.long U3CR3A+FR9 ;4
.long U3CR3A+FR8 ;5
.long U3CR3A+FR7 ;6
.long U3CR3A+FR6 ;7
.long U3CR3A+FR5 ;8
.long U3CR3A+FR4 ;9
.long U3CR3A+FR3 ;10
.long U3CR3A+FR2 ;11
.long 0,0,0,0,0,0
#*****************************************************************************
*
* #3 FLYING KICK
SUBR und_flying_kick2_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 2,U3DC3A+FR1
.word ANI_STARTATTACK,AT_LEAPING,22
WL 2,U3DC3A+FR2
; ; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 14,999,155,65,90000h,TGT_HEAD,30,0,0
.word ANI_STARTATTACK,AT_LEAPING,14
WL ANI_CODE,no_bk_xvel
WL 3,U3DC3A+FR3
WL 3,U3DC3A+FR4
.word ANI_OFFSET,0,38,0 ;x,y,z
WL 6,U3DC3A+FR5
WL ANI_GOTO,#cont
SUBR und_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 2,U3DC3A+FR1
.word ANI_STARTATTACK,AT_LEAPING,22
WL 2,U3DC3A+FR2
; ; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 18,999,155,65,90000h,TGT_HEAD,40,90,0
WL ANI_CODE,no_bk_xvel
.word ANI_SETPLYRMODE,MODE_INAIR
WL 3,U3DC3A+FR3
WL 3,U3DC3A+FR4
.word ANI_OFFSET,0,38,0 ;x,y,z
WL 6,U3DC3A+FR5
#cont
.word ANI_ATTACK_ON, AMODE_FLYKICK,37,21,57,44 ;mode,x,y,w,h
WL 3,U3DC3A+FR6
.word ANI_ATTACK_OFF
WL 4,U3DC3A+FR6
WL 4,U3DC3A+FR7
.WORD ANI_ADD_MOVE,MOVE_C_1,2,2
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,HIT_THE_MAT
WL ANI_CODE,HIT_THE_MAT
WL 4,U3DC3A+FR8
WL ANI_IFSTATUS,#got
;Missed him
WL ANI_CODE,CALL_MISSES
.word ANI_BOUNCE,3
.word ANI_SOUND,bounce_l1
WL 3,U3DC3A+FR8
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
WL 3,U3DC3A+FR8
#got
WL 3,U3DC3A+FR8
#cont2
WL 3,U3DC3A+FR8
.word ANI_XFLIP
.word ANI_OFFSET,5,0,0 ;x,y,z
WL 3,U3GD2A+FR1
WL 3,U3GD2A+FR2
WL 3,U3GD2A+FR3
WL 3,U3GD2A+FR4
WL ANI_CODE,choose_2or4
WL ANI_IFSTATUS,#getup_in_4
WL 3,U3GD2A+FR5
WL 3,U3GD2A+FR6
WL 3,U3GD2A+FR7
WL 1,U3GD2A+FR8
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 2,U3GD2A+FR8
.word ANI_SAFE_TIME,50
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss
.word ANI_ATTACK_ON,AMODE_HITCHECK,33,85,65,17
WL 1,U3GD2A+FR8
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,und_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,U3GD4A+FR5
WL 3,U3GD4A+FR6
WL 3,U3GD4A+FR7
WL 1,U3GD4A+FR8
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 2,U3GD4A+FR8
.word ANI_SAFE_TIME,50
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss2
.word ANI_ATTACK_ON,AMODE_HITCHECK,33,85,65,17
WL 1,U3GD4A+FR8
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss2
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,und_4_push_anim
#no_freetoss2
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
SUBR und_combo_flying_kick_anim
.word ANI_SHADOWTRAIL,0 ;off
WLW ANI_SET_XVEL,8000h,AM_FACE_REL
WL 3,U3DC3A+FR2
WL ANI_SET_YVEL,64000h
WL 3,U3DC3A+FR3
WL 4,U3DC3A+FR4
.word ANI_OFFSET,0,38,0 ;x,y,z
WL 7,U3DC3A+FR5
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_FLYKICK,37,0,57,54 ;mode,x,y,w,h
WL 3,U3DC3A+FR6
.word ANI_ATTACK_OFF
WL 4,U3DC3A+FR6
WL 4,U3DC3A+FR7
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,HIT_THE_MAT
WL ANI_CODE,HIT_THE_MAT
WL 4,U3DC3A+FR8
WL ANI_IFNOTSTATUS,#missc
.WORD ANI_INC_COMBO
WL ANI_GOTO,#gotc
#missc
WL ANI_CODE,CALL_MISSES
.word ANI_BOUNCE,3
.word ANI_SOUND,bounce_l1
WL 3,U3DC3A+FR8
.word ANI_WAITHITGND
WL ANI_CODE,HIT_THE_MAT
WL 3,U3DC3A+FR8
#gotc
WL 3,U3DC3A+FR8
WL 3,U3DC3A+FR8
.word ANI_XFLIP
.word ANI_OFFSET,5,0,0 ;x,y,z
WL 3,U3GD2A+FR1
WL 3,U3GD2A+FR2
WL 3,U3GD2A+FR3
WL 3,U3GD2A+FR4
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL ANI_CODE,choose_2or4
WL ANI_IFSTATUS,#getup_in_4c
WL 3,U3GD2A+FR5
WL 3,U3GD2A+FR6
WL 3,U3GD2A+FR7
WL 1,U3GD2A+FR8
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 2,U3GD2A+FR8
.word ANI_SAFE_TIME,15
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss1
.word ANI_ATTACK_ON,AMODE_HITCHECK,33,85,65,17
WL 1,U3GD2A+FR8
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss1
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,und_4_push_anim
#no_freetoss1
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#getup_in_4c
WL 3,U3GD4A+FR5
WL 3,U3GD4A+FR6
WL 3,U3GD4A+FR7
WL 1,U3GD4A+FR8
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 2,U3GD4A+FR8
.word ANI_SAFE_TIME,15
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss3
.word ANI_ATTACK_ON,AMODE_HITCHECK,33,85,65,17
WL 1,U3GD4A+FR8
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss3
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,und_4_push_anim
#no_freetoss3
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* FLIP/FALL FROM HIPTOSS
SUBR und_tossed_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_SETSPEED,100h
; .word ANI_XFLIP
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
WL 4,U3CP3B+FR2
WL 4,U3CP3B+FR3
WL 4,U3CP3B+FR4
WL 4,U3CP3B+FR5
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
.word ANI_ZEROVELS
WL 3,U3CP3B+FR1 ;1st frame of roll
.word ANI_WAITROLL
WL ANI_CHANGEANIM,und_getup_anim
; .word ANI_END
#*****************************************************************************
*
* FLIP/FALL FROM BAM BAM DUCK TOSS
SUBR und_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,U3FH3A+FR4
.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,U3FH3A+FR4
.word ANI_OFFSET,23h,0,0 ;x,y,z
WL 3,U3CP3B+FR1
WLW ANI_SET_XVEL,20000h,AM_HIT_REL
WL ANI_SET_YVEL,50000h
WL 4,U3CP3B+FR2
WL 4,U3CP3B+FR3
WL 4,U3CP3B+FR4
WL 4,U3CP3B+FR5
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
.word ANI_ZEROVELS
WL 3,U3CP3B+FR1 ;1st frame of roll
.word ANI_WAITROLL
WL ANI_CHANGEANIM,und_getup_anim
; .word ANI_END
#*****************************************************************************
*
SUBR und_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,U3GD2A+FR7
WL 2,U3GD2A+FR5
WL 2,U3GD2A+FR3
WL ANI_SET_YVEL,39000h
.word ANI_DEBRIS,300,1,0,8,0 ;%chance, tbl index, x,y,z off
WL 4,U3CP3B+FR2
WL 4,U3CP3B+FR3
WL 4,U3CP3B+FR4
WL 4,U3CP3B+FR5
WL 4,U3CP3B+FR1
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,und_getup_anim
#*****************************************************************************
SUBR und_climbthru_side_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_NOCOLLIS
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
WL ANI_CODE,SET_DIR_FACE
.word ANI_SETFACING
.WORD ANI_SET_WRESTLER_XFLIP
.word ANI_ROPE_Z,R_TOP,RZ_HIGH
.word ANI_ROPE_Z,R_MIDDLE,RZ_HIGH
WLW ANI_SET_XVEL,5800h,AM_FACE_REL
.word ANI_OFFSET,16,0,0
WL 3,U3CR3B+FR1
.word ANI_BENDROPE,5
.word ANI_OFFSET,7,0,0 ;*****
WL 2,U3CR3B+FR2
.word ANI_OFFSET,7,0,0 ;*****
WL 3,U3CR3B+FR3
.word ANI_OFFSET,7,0,0 ;*****
WL 2,U3CR3B+FR4
.word ANI_OFFSET,7,0,0 ;*****
WL 3,U3CR3B+FR5
.word ANI_ZEROVELS
.word ANI_OFFSET,7,0,0 ;*****
WL 2,U3CR3B+FR6
.word ANI_OFFSET,7,0,0 ;*****
WL 3,U3CR3B+FR7
.word ANI_OFFSET,7,0,0 ;*****
WL 2,U3CR3B+FR8
.word ANI_OFFSET,5,0,0 ;*****
WL 3,U3CR3B+FR9
WL 2,U3CR3B+FR10
.word ANI_BENDROPE,-1
.word ANI_OFFSET,0,-3,0
;now jump off...
; WL 2,U4JD4A+FR1 ;D4FM4A+FR1
WL 3,U4JD4A+FR2
WL 2,U4JD4A+FR3
; WL 3,U4JD4A+FR4
.word ANI_SET_IDIOT
WWL ANI_SETLONG,OBJ_GRAVITY,0E000h
WL ANI_SET_YVEL,60000h
WLW ANI_SET_XVEL,30000h,AM_FACE_REL
WL 3,U4JD4A+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_ZEROVELS
; WL 3,U4JD4A+FR5
WL 2,U4JD4A+FR6
; WL 2,U4JD4A+FR7
WL 4,U4JD4A+FR8
.word ANI_FACEDOWN
.word ANI_CLEAR_CLIMB
.word ANI_SETMODE,MODE_NOCONFINE
.word ANI_END
#*****************************************************************************
SUBR und_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 3,U4JD4A+FR1
WL 2,U4JD4A+FR2
WL 3,U4JD4A+FR3
; WL 2,U4JD4A+FR4
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 2,U4JD4A+FR4
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WWL ANI_SETLONG,OBJ_GRAVITY,GRAVITY
WLW ANI_SET_XVEL,3000h,AM_FACE_REL
.word ANI_ROPE_Z,R_TOP,RZ_HIGH
.word ANI_ROPE_Z,R_MIDDLE,RZ_HIGH
; WL 3,U4JD4A+FR5
WL 2,U4JD4A+FR6
; WL 2,U4JD4A+FR7
WL 3,U4JD4A+FR8
;climb through
.word ANI_OFFSET,7,0,0 ;*****
WL 2,U3CR3B+FR1
.word ANI_OFFSET,7,0,0 ;*****
WL 2,U3CR3B+FR2
.word ANI_BENDROPE,5
.word ANI_OFFSET,7,0,0 ;*****
WL 2,U3CR3B+FR3
.word ANI_OFFSET,7,0,0 ;*****
WL 2,U3CR3B+FR4
.word ANI_OFFSET,7,0,0 ;*****
WL 2,U3CR3B+FR5
.word ANI_OFFSET,7,0,0 ;*****
WL 2,U3CR3B+FR6
.word ANI_OFFSET,7,0,0 ;*****
WL 2,U3CR3B+FR7
.word ANI_OFFSET,7,0,0 ;*****
WL 2,U3CR3B+FR8
.word ANI_OFFSET,7,0,0 ;*****
WL 2,U3CR3B+FR9
.word ANI_ZEROVELS
.word ANI_BENDROPE,-1
.word ANI_OFFSET,7,-3,0
WL 2,U3CR3B+FR10
; 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 und_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 4,U3GD2A+FR7
WL 4,U3GD2A+FR6
WL 4,U3GD2A+FR5
WL 4,U3GD2A+FR4
WL 4,U3GD2A+FR3
WL 4,U3GD2A+FR2
WL 4,U3GD2A+FR1
;roll over once
WLW ANI_SET_ZVEL,0a8000h,AM_ABS
WL 3,U3CR3A+FR6 ;0
WL 3,U3CR3A+FR5 ;1
WL 3,U3CR3A+FR4 ;2
WL 3,U3CR3A+FR3 ;3
WL 3,U3CR3A+FR2 ;4
WL 3,U3CP3B+FR1 ;5
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_OVERLAP|MODE_NOSHADOW|MODE_NOCOLLIS
.word ANI_SET_IDIOT
;climb through
.word ANI_XFLIP
.word ANI_OFFSET,0,-16,0 ;x,y,z
WL 3,U3DC3A+FR5
.word ANI_OFFSET,0,-32,0
WL 3,U3DC3A+FR4
WL 3,U3DC3A+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
#*****************************************************************************
SUBR und_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,U3DC3A+FR3
WL 3,U3DC3A+FR4
.word ANI_OFFSET,0,32,0
WL 3,U3DC3A+FR5
.WORD ANI_XFLIP
.word ANI_OFFSET,0,24,-60
;roll
WLW ANI_SET_ZVEL,-70000h,AM_ABS
.word ANI_FRICTION,3000h
WL 3,U3CP3B+FR1 ;0
WL 3,U3CR3A+FR2 ;1
WL 3,U3CR3A+FR3 ;2
WL 3,U3CR3A+FR4 ;3
WL 3,U3CR3A+FR5 ;4
WL 3,U3CR3A+FR6 ;5
.word ANI_ZEROVELS
.word ANI_GRAVITY_ON
;get up
; WL ANI_CODE,clr_climb
.word ANI_CLEAR_CLIMB
WL ANI_CHANGEANIM,und_getup_anim
#*****************************************************************************
SUBR und_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,U1TT5A+FR2
WL 3,U1TT5A+FR3
#dir4
WL 4,U3GD2A+FR7
WL 4,U3GD2A+FR6
WL 4,U3GD2A+FR5
WL 4,U3GD2A+FR4
WL 4,U3GD2A+FR3
WL 4,U3GD2A+FR2
WL 4,U3GD2A+FR1
;roll over once
WL ANI_CODE,#set_zvel2
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_OVERLAP|MODE_NOSHADOW|MODE_NOCOLLIS
WL 3,U3CR3A+FR8 ;2
WL 3,U3CR3A+FR9 ;3
WL 3,U3CR3A+FR10 ;4
WL 3,U3CR3A+FR11 ;4
WL 3,U3CR3A+FR12 ;4
.word ANI_SET_IDIOT
;climb through
.word ANI_OFFSET,0,-61,0
.word ANI_ZEROVELS
WL 3,U4JP4C+FR3
WL 3,U4JP4C+FR2
WL 3,U4JP4C+FR1
.word ANI_ZERO_XZVELS
.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 -5c000h,a0
move a0,*a13(OBJ_ZVEL),L
rets
#*****************************************************************************
SUBR und_rollthru_top_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_OVERLAP|MODE_NOCOLLIS
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
;roll over once
WLW ANI_SET_ZVEL,-5C000h,AM_ABS
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_OVERLAP|MODE_NOSHADOW|MODE_NOCOLLIS
WL 3,U3CR3A+FR8
WL 3,U3CR3A+FR9
WL 3,U3CR3A+FR10
WL 3,U3CR3A+FR11
WL 3,U3CR3A+FR12
;climb through
.word ANI_OFFSET,0,-61,0
.word ANI_ZEROVELS
WL 3,U4JP4C+FR3
WL 3,U4JP4C+FR2
WL 3,U4JP4C+FR1
.word ANI_ZERO_XZVELS
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NOCONFINE
.word ANI_END
#*****************************************************************************
SUBR und_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
WL 3,U4JP4C+FR1
WL 3,U4JP4C+FR2
WL 3,U4JP4C+FR3
.word ANI_OFFSET,0,61,0
;roll over
WL ANI_CODE,#set_zvel2
WL 3,U3CR3A+FR11 ;0
WL 3,U3CR3A+FR10 ;1
WL 3,U3CR3A+FR9 ;2
WL 3,U3CR3A+FR8 ;3
.word ANI_ZEROVELS
;get up
; WL ANI_CODE,clr_climb
.word ANI_CLEAR_CLIMB
WL ANI_CHANGEANIM,und_getup_anim
#set_zvel2
movi 52000h,a0
move a0,*a13(OBJ_ZVEL),L
rets
#*****************************************************************************
*
* GET BUCKED OFF A PINNED OPPONENT
SUBR und_buckoff_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_NOCOLLIS
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
WLW ANI_ATTCHIMAGE,0,0
WL 4,U3PN5A+FR9
WL 4,U3PN5A+FR11
WL 4,U3PN5A+FR12
WLW ANI_SET_XVEL,-60000h,AM_FACE_REL
WLW ANI_SET_ZVEL,-18000h,AM_ABS
.word ANI_FRICTION,3000h
WL 4,U4LB4A+FR1
WL 4,U4LB4A+FR2
WL 4,U4LB4A+FR3
WL 4,U4LB4A+FR4
WL 4,U4LB4A+FR5
WL 4,U4LB4A+FR6
WL 4,U4LB4A+FR2
WL 4,U4LB4A+FR3
.word ANI_ZEROVELS
WL 4,U4LB4A+FR4
WL 4,U4LB4A+FR5
WL 4,U4LB4A+FR6
.word ANI_FACEDOWN
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
******************************************************************************
.end