wwf-wrestlemania/DNKSEQ2.ASM

5815 lines
126 KiB
NASM
Raw Normal View History

2021-04-06 15:21:54 -07:00
**************************************************************
*
* Software: Jamie Rivett
* Initiated: 10/12/93
*
* COPYRIGHT (C) 1992 WILLIAMS ELECTRONICS GAMES, INC.
*
**************************************************************
.file "dnkseq2.asm"
.title "Krusty the Clown animation sequences"
.width 132
.option b,d,l,t
.mnolist
.include "macros.h"
.include "mproc.equ" ;Mproc equates
.include "sys.equ"
.include "display.equ"
.include "game.equ"
.include "plyr.equ"
.include "anim.equ"
.include "sound.h"
.include "ring.equ"
.include "doinkimg.h"
.include "miscimg.glo"
.include "damage.equ"
.INCLUDE "SWEAT.EQU"
.include "miscimg.glo"
******************************************************************************
* EXTERNAL REFERENCES
.ref MOVE_NAME_ANNC,face_inside,set_tbukl_airmode
.ref setup_freetoss,free_toss_check
.ref CALL_ANI_AVERAGE_MOVE,CALL_NASTY_MOVE
.ref CALL_THROWN_OUT,DO_BLOCKED
.ref DO_OTHERNONO,FIND_AND_KILL_ENDLESS
.ref DO_CROWD_CHEER,HIT_THE_MAT,SMALL_BOUNCE
.ref CALL_MISSES,CALL_SETUP,CALL_SPECIAL_MOVE
.ref am_I_dead,start_run_anim,PSTATUS,royal_rumble,NUM_OPPS
.ref set_target_offsets,check_raisearm_bit
.ref get_opp_process,set_tbukl_confine
.ref get_leap
.ref shake_all_ropes,tbukl_flip
.ref DO_GRUNT,KILL_PIN_HIM
.ref calc_line_x
.ref choose_2or4
.ref tgt_ground,process_ptrs
.ref hrt_hitonground_anim
.ref rzr_hitonground_anim
.ref und_hitonground_anim
.ref yok_hitonground_anim
.ref shn_hitonground_anim
.ref bam_hitonground_anim
.ref lex_hitonground_anim
.ref dnk_4_combo_earslap_anim,hit_nearest
.ref DO_COMBO_MESS,tbukl_flip,change_anim1a
.ref DO_DOINK_PUSH,announce_rnd_winner
.ref create_impact_salt,PCNT,dnk_3_head_held_anim
.ref no_bk_xvel,lex_tossed_anim,impact_sound
.ref start_run_flung
D4PN5L
.long 0
.long 0
.long 0
.long 0
.long D4PN5L04
.long D4PN5L05
******************************************************************************
* SYMBOLS DEFINED IN THIS FILE
******************************************************************************
* EQUATES FOR THIS FILE
TSEC equ 53
#*****************************************************************************
*
* NORMAL #2 PUNCH
SUBR dnk_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,D2PU3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D2PU3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D2PU3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_PUNCH,5 ;type, #ticks 'til attack on
WL 1,D2PU3A+FR2
WL 2,D2PU3A+FR3
WL 1,D2PU3A+FR4
; WLWWWW ANI_SNOT,doink_pie,0,0,0,0
.word ANI_ATTACK_ON, AMODE_PUNCH,22,86,55,9 ;mode,x,y,w,h
WL 1,D2PU3A+FR4
WL 2,D2PU3A+FR5
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit
WL ANI_SET_YVEL,30000h
WL 3,D2PU3A+FR5
#no_hit
WL 2,D2PU3A+FR6
WL 3,D2PU3A+FR7 ;4
WL 2,D2PU3A+FR8 ;4
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* NORMAL #4 PUNCH
SUBR dnk_4_punch_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D4PU3C+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D4PU3C+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D4PU3C+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_PUNCH,5 ;type, #ticks 'til attack on
WL 1,D4PU3C+FR2
WL 2,D4PU3C+FR3
WL 1,D4PU3C+FR4
; WLWWWW ANI_SNOT,doink_pie,0,0,0,0
.word ANI_ATTACK_ON, AMODE_PUNCH,22,86,55,9 ;mode,x,y,w,h
WL 1,D4PU3C+FR4
WL 2,D4PU3C+FR5
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit2
WL ANI_SET_YVEL,30000h
WL 3,D4PU3C+FR5
#no_hit2
WL 2,D4PU3C+FR6
WL 3,D4PU3C+FR7
WL 2,D4PU3C+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* BOXING GLOVE #2 PUNCH
SUBR dnk_2_box_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_BOXPUNCH,15
WL 3,D2RG3B+FR6
WL 3,D2RG3B+FR7
WL 3,D2RG3B+FR8
WL 3,D2RG3B+FR9
WL 3,D2RG3B+FR10
.word ANI_ATTACK_ON, AMODE_BOXPUNCH,37,84,66,15 ;mode,x,y,w,h
WL 4,D2RG3B+FR11
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_3,2,2
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
WL ANI_CODE,CALL_ANI_AVERAGE_MOVE
; WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit ;range,vel,addr
;#no_hit
WL 10,D2RG3B+FR11
WL 2,D2PU3A+FR6
WL 3,D2PU3A+FR7
WL 2,D2PU3A+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#missedb
WL 8,D2RG3B+FR11
#missed
WL 3,D2RG3B+FR11
WL 2,D2PU3A+FR6
WL 3,D2PU3A+FR7
WL 2,D2PU3A+FR8
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#* BOXING GLOVE #4 PUNCH
SUBR dnk_4_box_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_BOXPUNCH,15
WL 3,D4RG3A+FR6
WL 3,D4RG3A+FR7
WL 3,D4RG3A+FR9
WL 3,D4RG3A+FR10
WL 3,D4RG3A+FR11
.word ANI_ATTACK_ON, AMODE_BOXPUNCH,37,84,66,15 ;mode,x,y,w,h
WL 4,D4RG3A+FR12
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_3,2,2
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
WL ANI_CODE,CALL_ANI_AVERAGE_MOVE
; WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit2 ;range,vel,addr
;#no_hit2
WL 10,D4RG3A+FR12
WL 2,D4PU3C+FR6
WL 3,D4PU3C+FR7
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#missedb
WL 8,D4RG3A+FR12
#missed
WL 3,D4RG3A+FR12
WL 2,D4PU3C+FR6
WL 3,D4PU3C+FR7
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR dnk_combo_box_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_STARTATTACK,AT_BOXPUNCH,15
WL 3,D4RG3A+FR6
WL 3,D4RG3A+FR7
WL 3,D4RG3A+FR9
WL 3,D4RG3A+FR10
WL 3,D4RG3A+FR11
.word ANI_ATTACK_ON, AMODE_BOXPUNCH,37,84,66,15 ;mode,x,y,w,h
WL 4,D4RG3A+FR12
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missedc
WL ANI_IFBLOCKED,#missedbc ;Yes, I hit blocker
.WORD ANI_INC_COMBO
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit3 ;range,vel,addr
#no_hit3
WL 10,D4RG3A+FR12
WL 2,D4PU3C+FR6
WL 3,D4PU3C+FR7
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#missedbc
WL 15,D4RG3A+FR12
#missedc
WL 5,D4RG3A+FR12
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL 2,D4PU3C+FR6
WL 3,D4PU3C+FR7
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #2 HEADBUTT
SUBR dnk_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,D2BC3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_HDBUTT,5
WL 1,D2BC3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D2BC3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D2BC3A+FR2
WL 2,D2BC3A+FR3
.word ANI_ATTACK_ON, AMODE_HDBUTT,21,79,27,24 ;mode,x,y,w,h
WL 3,D2BC3A+FR4
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_3,2,2
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit
WL ANI_SET_YVEL,38000h
WL 6,D2BC3A+FR5
#no_hit
WL 4,D2BC3A+FR5
WL 4,D2BC3A+FR6
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* #4 HEADBUTT
SUBR dnk_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,D4BC3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_HDBUTT,5
WL 1,D4BC3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D4BC3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D4BC3A+FR2
WL 2,D4BC3A+FR3
.word ANI_ATTACK_ON, AMODE_HDBUTT,21,79,27,24 ;mode,x,y,w,h
WL 3,D4BC3A+FR4
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_3,2,2
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit2
WL ANI_SET_YVEL,38000h
WL 6,D4BC3A+FR5
#no_hit2
WL 4,D4BC3A+FR5
WL 4,D4BC3A+FR6
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #2 HEADBUTTS - In close
SUBR dnk_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_3,2,2
#rpt
.word ANI_CLR_BUTCOUNT
.word ANI_STARTATTACK,AT_HDBUTT,6
WL 2,D2BC3A+FR1
WL 2,D2BC3A+FR2
WL 2,D2BC3A+FR3
.word ANI_ATTACK_ON, AMODE_HDBUTT_STAY,21,79,27,24 ;mode,x,y,w,h
WL 2,D2BC3A+FR4
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit
WL ANI_SET_YVEL,38000h
WL 6,D2BC3A+FR5
#no_hit
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
.word ANI_SET_ATTACH
.word ANI_DEBRISAT,200,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 3,D2BC3A+FR5
WL 3,D2BC3A+FR6
WL ANI_IF_RPTCOUNT,#rpt
WL ANI_CHANGEANIM,dnk_2_butt_anim
#ex
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,40000h,38000h,0h ;x,y,z vels
WL 3,D2BC3A+FR5
WL 3,D2BC3A+FR6
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#missedb
WLLL ANI_SETOPPVELS,50000h,18000h,0h ;x,y,z vels
; WL 4,D2BC3A+FR5
#missed
WL 2,D2BC3A+FR5
WL 2,D2BC3A+FR6
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#* #4 HEADBUTT
SUBR dnk_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_3,2,2
#rpt
.word ANI_CLR_BUTCOUNT
.word ANI_STARTATTACK,AT_HDBUTT,6
WL 2,D4BC3A+FR1
WL 2,D4BC3A+FR2
WL 2,D4BC3A+FR3
.word ANI_ATTACK_ON, AMODE_HDBUTT_STAY,21,79,27,24 ;mode,x,y,w,h
WL 2,D4BC3A+FR4
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit2
WL ANI_SET_YVEL,38000h
WL 6,D4BC3A+FR5
#no_hit2
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
.word ANI_SET_ATTACH
.word ANI_DEBRISAT,200,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 3,D4BC3A+FR5
WL 3,D4BC3A+FR6
WL ANI_IF_RPTCOUNT,#rpt
WL ANI_CHANGEANIM,dnk_4_butt_anim
#ex
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,40000h,38000h,0h ;x,y,z vels
WL 3,D4BC3A+FR5
WL 3,D4BC3A+FR6
.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 4,D4BC3A+FR5
#missed
WL 2,D4BC3A+FR5
WL 2,D4BC3A+FR6
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
* #4 COMBO HEADBUTT
SUBR dnk_4_combo_butt_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WL ANI_SET_YVEL,10000h
.word ANI_STARTATTACK,AT_HDBUTT,5
WL 2,D4BC3A+FR1
WL 2,D4BC3A+FR2
WL 1,D4BC3A+FR3
.word ANI_ATTACK_ON, AMODE_HDBUTT,21,39,67,44 ;mode,x,y,w,h
WL 2,D4BC3A+FR4
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#miss
.WORD ANI_INC_COMBO
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,0,28000h,0h ;x,y,z vels
.word ANI_STARTATTACK,AT_HDBUTT,9
WL 2,D4BC3A+FR5
WL 2,D4BC3A+FR6
WL ANI_SET_YVEL,10000h
WL 2,D4BC3A+FR1
WL 2,D4BC3A+FR2
WL 1,D4BC3A+FR3
.word ANI_ATTACK_ON, AMODE_HDBUTT,21,39,67,44 ;mode,x,y,w,h
WL 2,D4BC3A+FR4
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#miss
.WORD ANI_INC_COMBO
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,0,28000h,0h ;x,y,z vels
.word ANI_STARTATTACK,AT_HDBUTT,9
WL 2,D4BC3A+FR5
WL 2,D4BC3A+FR6
WL ANI_SET_YVEL,10000h
WL 2,D4BC3A+FR1
WL 2,D4BC3A+FR2
WL 1,D4BC3A+FR3
.word ANI_CLR_BUTCOUNT
.word ANI_ATTACK_ON, AMODE_HDBUTT,21,39,67,44 ;mode,x,y,w,h
WL 2,D4BC3A+FR4
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#miss
.WORD ANI_INC_COMBO
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,0,28000h,0h ;x,y,z vels
.word ANI_STARTATTACK,AT_HDBUTT,9
WL 2,D4BC3A+FR5
WL 2,D4BC3A+FR6
WL ANI_SET_YVEL,10000h
WL 2,D4BC3A+FR1
WL 2,D4BC3A+FR2
WL 1,D4BC3A+FR3
.word ANI_ATTACK_ON, AMODE_HDBUTT,21,39,67,44 ;mode,x,y,w,h
WL 2,D4BC3A+FR4
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#miss
.WORD ANI_INC_COMBO
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,0,28000h,0h ;x,y,z vels
WL 2,D4BC3A+FR5
WL 2,D4BC3A+FR6
.word ANI_DETACH
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,1,#NEXT_CHECK_3
WL ANI_CHANGEANIM,dnk_combo_box_anim
#NEXT_CHECK_3
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#NEXT_CHECK_2
WL ANI_CHANGEANIM,dnk_combo_knee_fall_anim
#NEXT_CHECK_2
WWWL ANI_IF_BUTCOUNT_LT,KICKB_COUNT,1,#NEXT_CHECK
WL ANI_CHANGEANIM,dnk_4_combo_hiptoss_anim
#NEXT_CHECK
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#miss
WL ANI_CHANGEANIM,dnk_4_combo_earslap_anim
#miss
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL 2,D4BC3A+FR5
WL 2,D4BC3A+FR6
.word ANI_DETACH
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* NORMAL #2 KICK
SUBR dnk_2_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
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D2KM3B+FR1 ;4
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D2KM3B+FR1 ;4
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D2KM3B+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_KICK,5
WL 1,D2KM3B+FR2
WL 2,D2KM3B+FR3
WL 2,D2KM3B+FR4 ;4
.word ANI_ATTACK_ON, AMODE_KICK,20,62,68,16 ;mode,x,y,w,h
WL 1,D2KM3B+FR4
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit
WL ANI_SET_YVEL,30000h
WL 2,D2KM3B+FR4
#no_hit
WL ANI_IFNOTSTATUS,#nopause
WL 2,D2KM3B+FR4
#nopause
WL 2,D2KM3B+FR4
WL 3,D2KM3B+FR5
WL 2,D2KM3B+FR6
WL 3,D2KM3B+FR7
WL 2,D2KM3B+FR8
WL 3,D2KM3B+FR9
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* NORMAL #4 KICK
SUBR dnk_4_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
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D4KM3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D4KM3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D4KM3A+FR3
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_KICK,5
WL 1,D4KM3A+FR3
WL 2,D4KM3A+FR4
WL 2,D4KM3A+FR5
.word ANI_ATTACK_ON, AMODE_KICK,20,62,68,16 ;mode,x,y,w,h
WL 1,D4KM3A+FR5
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit2
WL ANI_SET_YVEL,30000h
WL 2,D4KM3A+FR5
#no_hit2
WL ANI_IFNOTSTATUS,#nopause2
WL 2,D4KM3A+FR5
#nopause2
WL 2,D4KM3A+FR5
WL 3,D4KM3A+FR6
WL 2,D4KM3A+FR7
WL 3,D4KM3A+FR8
WL 2,D4KM3A+FR9
WL 3,D4KM3A+FR10
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR dnk_4_combo_kick_anim
.WORD ANI_CLEAR_COMBO
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_STARTATTACK,AT_KICK,7
WL 2,D4KM3A+FR2
WL 1,D4KM3A+FR3
WL 2,D4KM3A+FR4
WL 2,D4KM3A+FR5
.WORD ANI_INC_COMBO
.word ANI_ATTACK_ON, AMODE_KICK,20,16,68,66 ;mode,x,y,w,h
WL 1,D4KM3A+FR5
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#miss
.WORD ANI_INC_COMBO
WLLL ANI_SETOPPVELS,0,28000h,0h ;x,y,z vels
.word ANI_CLR_BUTCOUNT
WL ANI_SET_YVEL,30000h
.word ANI_STARTATTACK,AT_KICK,13
WL 2,D4KM3A+FR5
WL 1,D4KM3A+FR6
WL 1,D4KM3A+FR8
WL 2,D4KM3A+FR9
WL 1,D4KM3A+FR10
WL 1,D4KM3A+FR2
WL 1,D4KM3A+FR3
WL 2,D4KM3A+FR4
WL 2,D4KM3A+FR5
.word ANI_ATTACK_ON, AMODE_KICK,20,16,68,66 ;mode,x,y,w,h
WL 1,D4KM3A+FR5
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#miss
.WORD ANI_INC_COMBO
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,0,28000h,0h ;x,y,z vels
WL ANI_SET_YVEL,30000h
.word ANI_STARTATTACK,AT_KICK,11
WL 1,D4KM3A+FR5
WL 1,D4KM3A+FR6
WL 1,D4KM3A+FR8
WL 2,D4KM3A+FR9
WL 1,D4KM3A+FR10
WL 1,D4KM3A+FR2
WL 1,D4KM3A+FR3
WL 1,D4KM3A+FR4
WL 2,D4KM3A+FR5
.word ANI_ATTACK_ON, AMODE_KICK,20,16,68,66 ;mode,x,y,w,h
WL 1,D4KM3A+FR5
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#miss
.WORD ANI_INC_COMBO
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,0,28000h,0h ;x,y,z vels
.word ANI_DETACH
WL ANI_SET_YVEL,30000h
.word ANI_STARTATTACK,AT_KICK,11
WL 1,D4KM3A+FR5
WL 1,D4KM3A+FR8
WL 2,D4KM3A+FR9
WL 1,D4KM3A+FR10
WL 1,D4KM3A+FR2
WL 1,D4KM3A+FR3
WL 1,D4KM3A+FR4
WL 2,D4KM3A+FR5
.word ANI_ATTACK_ON, AMODE_KICK,20,16,68,66 ;mode,x,y,w,h
WL 1,D4KM3A+FR5
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#miss
.WORD ANI_INC_COMBO
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,0,28000h,0h ;x,y,z vels
.word ANI_DETACH
WL ANI_SET_YVEL,30000h
WL 1,D4KM3A+FR5
WL 1,D4KM3A+FR8
WL 2,D4KM3A+FR9
WL 1,D4KM3A+FR10
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#NEXT_CHECK_2
WL ANI_CHANGEANIM,dnk_combo_box_anim
#NEXT_CHECK_2
WWWL ANI_IF_BUTCOUNT_LT,KICKB_COUNT,1,#NEXT_CHECK
WL ANI_CHANGEANIM,dnk_combo_knee_fall_anim
#NEXT_CHECK
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#miss
WL ANI_CHANGEANIM,dnk_4_combo_spin_kick_anim
#miss
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_DETACH
WL 3,D4KM3A+FR5
WL 3,D4KM3A+FR6
WL 3,D4KM3A+FR7
WL 3,D4KM3A+FR8
WL 3,D4KM3A+FR9
WL 3,D4KM3A+FR10
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #2 SPIN KICK
SUBR dnk_2_spin_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_SPINKIK,15
WL 3,D2KB3A+FR9
.WORD ANI_ADD_MOVE,MOVE_C_3,2,2
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 11,999,50,50,90000h,TGT_HEAD,79,87,-30
WL 2,D2KB3A+FR8
WL 3,D2KB3A+FR7
WL 3,D2KB3A+FR6
WL 3,D2KB3A+FR5
; .word ANI_ATTACK_ON, AMODE_SPINKICK,59,87,21,20 ;mode,x,y,w,h
.word ANI_ATTACK_ON, AMODE_SPINKICK,46,76,42,42 ;mode,x,y,w,h
WL 4,D2KB3A+FR4
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit
WL ANI_SET_YVEL,50000h
WL ANI_GOTO,#nopause
#no_hit
WL ANI_IFNOTSTATUS,#nopause
.word ANI_ZEROVELS
WL ANI_SET_YVEL,30000h
WLW ANI_SET_XVEL,30000h,AM_HIT_REL
#nopause
WL 1,D2KB3A+FR4
.word ANI_WAITHITGND
.word ANI_ZEROVELS
; WL ANI_CODE,skick_delay
; WL ANI_IFNOTSTATUS,#none
; WL 15,D2KB3A+FR4
;#none
WL 4,D2KB3A+FR3
WL 4,D2KB3A+FR2
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR skick_delay
move @royal_rumble,a0
jrnz #ok
; move @PSTATUS,a0
; subk 3,a0
; jrz #cont
; move @NUM_OPPS,a0
; subk 1,a0
; jrnz #ok
;#cont
move *a13(LAST_SKICK),a14,L
move @PCNT,a0,L ;use 32-bit PCNT!
move a0,*a13(LAST_SKICK),L
sub a14,a0
cmpi 2*60,a0
jrge #ok
;This blocked fling attempt is too close (in terms of time) to most recent grab
move *a13(ANIMODE),a1
ori MODE_STATUS,a1
move a1,*a13(ANIMODE)
rets
#ok move *a13(ANIMODE),a1
andni MODE_STATUS,a1
move a1,*a13(ANIMODE)
rets
#*****************************************************************************
*
* #2 SPIN KICK - Against TB attacks
SUBR dnk_2_spin_kick_TB_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_SETPLYRMODE,MODE_INAIR2
.word ANI_STARTATTACK,AT_LEAPING,15
.WORD ANI_ADD_MOVE,MOVE_C_3,2,2
WL 2,D2KB3A+FR9
WL ANI_SET_YVEL,70000h
WLW ANI_SET_XVEL,-20000h,AM_FACE_REL
WL 2,D2KB3A+FR8
WL 2,D2KB3A+FR7
.word ANI_ATTACK_ON, AMODE_SPINKICK,8,19,68,60 ;mode,x,y,w,h
WL 2,D2KB3A+FR6
WL 2,D2KB3A+FR5
WL 8,D2KB3A+FR4
.word ANI_ATTACK_OFF
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_SETPLYRMODE,MODE_NORMAL
WL 4,D2KB3A+FR3
WL 4,D2KB3A+FR2
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* #4 SPIN KICK
SUBR dnk_4_spin_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_ADD_MOVE,MOVE_C_3,2,2
.word ANI_STARTATTACK,AT_SPINKIK,15
WL 3,D4KB3A+FR9
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 11,999,50,50,90000h,TGT_HEAD,81,90,30
WL 2,D4KB3A+FR8
WL 3,D4KB3A+FR7
WL 3,D4KB3A+FR6
WL 3,D4KB3A+FR5
; .word ANI_ATTACK_ON, AMODE_SPINKICK,59,82,26,13 ;mode,x,y,w,h
.word ANI_ATTACK_ON, AMODE_SPINKICK,50,70,50,28 ;mode,x,y,w,h
WL 4,D4KB3A+FR5
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit2
WL ANI_SET_YVEL,50000h
WL ANI_GOTO,#nopause2
#no_hit2
WL ANI_IFNOTSTATUS,#nopause2
.word ANI_ZEROVELS
WL ANI_SET_YVEL,30000h
WLW ANI_SET_XVEL,30000h,AM_HIT_REL
#nopause2
WL 1,D4KB3A+FR5
.word ANI_WAITHITGND
.word ANI_ZEROVELS
; WL ANI_CODE,skick_delay
; WL ANI_IFNOTSTATUS,#none
; WL 15,D4KB3A+FR5
;#none
WL 4,D4KB3A+FR4
WL 4,D4KB3A+FR3
WL 4,D4KB3A+FR2
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*
* #4 SPIN KICK
SUBR dnk_4_spin_kick_TB_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_ADD_MOVE,MOVE_C_3,2,2
.word ANI_SETPLYRMODE,MODE_INAIR2
.word ANI_STARTATTACK,AT_SPINKIK,15
WL 2,D4KB3A+FR9
WL ANI_SET_YVEL,70000h
WLW ANI_SET_XVEL,-20000h,AM_FACE_REL
WL 2,D4KB3A+FR8
WL 2,D4KB3A+FR7
.word ANI_ATTACK_ON, AMODE_SPINKICK,59,82,26,13 ;mode,x,y,w,h
WL 2,D4KB3A+FR6
WL 2,D4KB3A+FR5
WL 8,D4KB3A+FR5
.word ANI_ATTACK_OFF
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_SETPLYRMODE,MODE_NORMAL
WL 3,D4KB3A+FR4
WL 3,D4KB3A+FR3
WL 3,D4KB3A+FR2
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR dnk_4_combo_spin_kick_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_STARTATTACK,AT_SPINKIK,9
WL 2,D2KB3A+FR9
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 8,999,45,50,90000h,TGT_HEAD,79,87,-30
WL 2,D2KB3A+FR8
WL 2,D2KB3A+FR7
WL 2,D2KB3A+FR6
WL 1,D2KB3A+FR5
.word ANI_ATTACK_ON, AMODE_SPINKICK,59,37,41,70 ;mode,x,y,w,h
WL 2,D2KB3A+FR4
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#miss_combo_spin2
.WORD ANI_INC_COMBO
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,0,28000h,0h ;x,y,z vels
WLW ANI_SET_ZVEL,40000h,AM_FACE_REL
WLW ANI_SET_XVEL,0h,AM_FACE_REL
.word ANI_CLR_BUTCOUNT
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_STARTATTACK,AT_SPINKIK,16
WL 2,D2KB3A+FR3
WL 2,D2KB3A+FR2
WL 2,D4KB3A+FR9
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
WL 2,D4KB3A+FR9
LEAPATOPP 8,999,45,50,90000h,TGT_HEAD,81,90,30
WL 2,D4KB3A+FR8
WL 2,D4KB3A+FR7
WL 1,D4KB3A+FR6
WL 2,D4KB3A+FR5
.word ANI_ATTACK_ON, AMODE_SPINKICK,59,37,41,70 ;mode,x,y,w,h
WL 1,D4KB3A+FR5
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#miss_combo_spin4
.WORD ANI_INC_COMBO
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,0,28000h,0h ;x,y,z vels
WLW ANI_SET_ZVEL,40000h,AM_FACE_REL
WLW ANI_SET_XVEL,0h,AM_ABS
WL 2,D4KB3A+FR5
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_STARTATTACK,AT_SPINKIK,14
WL 2,D4KB3A+FR4
WL 1,D4KB3A+FR3
WL 2,D4KB3A+FR2
;end kick 4
WL 1,D2KB3A+FR9
.word ANI_CLR_BUTCOUNT
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 8,999,45,50,90000h,TGT_HEAD,79,87,-30
WL 1,D2KB3A+FR8
WL 1,D2KB3A+FR7
WL 1,D2KB3A+FR6
WL 1,D2KB3A+FR5
.word ANI_ATTACK_ON, AMODE_SPINKICK,59,37,41,70 ;mode,x,y,w,h
WL 2,D2KB3A+FR4
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#miss_combo_spin2
.WORD ANI_INC_COMBO
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,0,18000h,0h ;x,y,z vels
WLW ANI_SET_ZVEL,10000h,AM_FACE_REL
WLW ANI_SET_XVEL,0h,AM_ABS
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_STARTATTACK,AT_SPINKIK,12
WL 1,D2KB3A+FR3
WL 2,D2KB3A+FR2
WL 1,D4KB3A+FR9
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 8,999,45,50,90000h,TGT_HEAD,81,90,30
WL 1,D4KB3A+FR8
WL 2,D4KB3A+FR7
WL 1,D4KB3A+FR6
WL 1,D4KB3A+FR5
.word ANI_ATTACK_ON, AMODE_SPINKICK,59,37,41,70 ;mode,x,y,w,h
WL 1,D4KB3A+FR5
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#miss_combo_spin4
.WORD ANI_INC_COMBO
; .word ANI_SET_ATTACH
WLLL ANI_SETOPPVELS,0,18000h,0h ;x,y,z vels
WLW ANI_SET_ZVEL,10000h,AM_FACE_REL
WLW ANI_SET_XVEL,0h,AM_ABS
WL 1,D4KB3A+FR5
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 1,D4KB3A+FR4
WL 2,D4KB3A+FR3
WL 1,D4KB3A+FR2
;end kick 4
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,1,#NEXT_CHECK_3
WL ANI_CHANGEANIM,dnk_combo_box_anim
#NEXT_CHECK_3
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#NEXT_CHECK_2
WL ANI_CHANGEANIM,dnk_combo_knee_fall_anim
#NEXT_CHECK_2
WWWL ANI_IF_BUTCOUNT_LT,KICKB_COUNT,1,#NEXT_CHECK
WL ANI_CHANGEANIM,dnk_4_combo_hiptoss_anim
#NEXT_CHECK
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#miss_combo_spin4
WL ANI_CHANGEANIM,dnk_4_combo_earslap_anim
#miss_combo_spin2
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL 2,D2KB3A+FR3
WL 2,D2KB3A+FR2
WL 2,D4KB3A+FR9
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#miss_combo_spin4
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL 2,D4KB3A+FR4
WL 2,D4KB3A+FR3
WL 2,D4KB3A+FR2
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #2 KNEE
SUBR dnk_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_KNEE,6
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D2KM3D+FR1 ;D2NM3A+FR3
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D2KM3D+FR1 ;D2NM3A+FR3
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D2KM3D+FR1 ;D2NM3A+FR3
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 2,D2KM3D+FR1 ;D2NM3A+FR3
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
; LEAPATOPP 21,999,36,30,90000h,TGT_CHEST,46,74,0
.word ANI_ATTACK_ON, AMODE_KNEE,5,41,48,36 ;mode,x,y,w,h
WL 3,D2NM3A+FR4
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_3,2,2
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit
WL ANI_SET_YVEL,60000h
WLW ANI_SET_ZVEL,10000h,AM_ABS
WL 1,D2NM3A+FR4
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_GOTO,#cont
#no_hit
; WL ANI_IFNOTSTATUS,#nodrft
; WLW ANI_SET_ZVEL,0C000h,AM_ABS
;#nodrft
WL 8,D2NM3A+FR4
; .word ANI_ZERO_XZVELS
; WL 14,D2NM3A+FR4 ;8
; WL 1,D2NM3A+FR4 ;8
#cont
WL 3,D2NM3A+FR5
WL 3,D2NM3A+FR6
WL 3,D2NM3A+FR7
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* #4 KNEE
;For when knee knocks you on your butt
SUBR dnk_4_knee_fall_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.WORD ANI_ADD_MOVE,MOVE_C_3,2,2
.word ANI_STARTATTACK,AT_BIGKNEE,6
WL 3,D4NM3B+FR3
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
; LEAPATOPP 21,999,36,20,90000h,TGT_CHEST,46,74,0
; LEAPATOPP 15,999,86,20,90000h,TGT_CHEST,26,74,0
;This knee will knock the guy down!
WL 1,D4NM3B+FR4
.word ANI_ATTACK_ON, AMODE_BIGKNEE,-5,41,70,36 ;mode,x,y,w,h
WL 3,D4NM3B+FR4
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_3,2,2
; WLW ANI_SET_ZVEL,-10000h,AM_ABS
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit3
WL ANI_SET_YVEL,60000h
; WLW ANI_SET_ZVEL,-4000h,AM_ABS
WL 1,D4NM3B+FR4
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_GOTO,#cont2
#no_hit3
WL 8,D4NM3B+FR4
; WL 15h,D4NM3B+FR4
; .word ANI_ZERO_XZVELS
; WL 3,D4NM3B+FR4 ;8
; .word ANI_WAITHITGND
; .word ANI_ZEROVELS
WL ANI_GOTO,#cont2
SUBR dnk_combo_knee_fall_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_STARTATTACK,AT_BIGKNEE,19
WL 4,D4NM3B+FR3
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 15,999,86,20,90000h,TGT_CHEST,26,74,0
;This knee will knock the guy down!
.word ANI_ATTACK_ON, AMODE_BIGKNEE,-5,41,90,36 ;mode,x,y,w,h
WL 3,D4NM3B+FR4
.word ANI_ATTACK_OFF
.WORD ANI_INC_COMBO
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WLW ANI_SET_ZVEL,-20000h,AM_ABS
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit4
WL ANI_SET_YVEL,60000h
WL 1,D4NM3B+FR4
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_GOTO,#cont2
#no_hit4
WL 1ah,D4NM3B+FR4
.word ANI_ZERO_XZVELS
WL 3,D4NM3B+FR4 ;8
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_GOTO,#cont2
SUBR dnk_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_KNEE,6
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D4NM3B+FR3
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D4NM3B+FR3
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D4NM3B+FR3
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 2,D4NM3B+FR3
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
; LEAPATOPP 21,999,36,20,90000h,TGT_CHEST,46,74,0
.word ANI_ATTACK_ON, AMODE_KNEE,5,41,40,36 ;mode,x,y,w,h
WL 3,D4NM3B+FR4
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_3,2,2
WWL ANI_SLIDE_BACK,30h,-70000h,#no_hit2
WL ANI_SET_YVEL,60000h
WLW ANI_SET_ZVEL,-4000h,AM_ABS
WL 1,D4NM3B+FR4
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_GOTO,#cont2
#no_hit2
WL 8,D4NM3B+FR4
; WL 12h,D4NM3B+FR4
; .word ANI_ZERO_XZVELS
; WL 14,D4NM3B+FR4 ;8
; .word ANI_WAITHITGND
; .word ANI_ZEROVELS
#cont2
WL 3,D4NM3B+FR5
WL 3,D4NM3B+FR6
WL 3,D4NM3B+FR7
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #3 FLYING KICK
#yoff1 equ 40
SUBR dnk_combo_flying_kick_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETSPEED,100h
WL 3,D3DC3C+FR1
; WL ANI_CODE,get_leap
; WL ANI_IFSTATUS,#no_xvelc
;#normc
; ; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 19,999,150,65,90000h,TGT_HEAD,30,100,0
.word ANI_STARTATTACK,AT_LEAPING,21
; WL ANI_GOTO,#contc
;
;#no_xvelc
; .word ANI_ZERO_XZVELS
; WL ANI_SET_YVEL,64000h
;#contc
WL 3,D3DC3C+FR2
.word ANI_OFFSET,0,#yoff1,0 ;x,y,z
WL 3,D3DC3C+FR3
WL 6,D3DC3C+FR4
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_FLYKICK,53,23,27,29 ;mode,x,y,w,h
WL 3,D3DC3C+FR5
.word ANI_ATTACK_OFF
WL 4,D3DC3C+FR6
WL 3,D3DC3C+FR7
WL 3,D3DC3C+FR8
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,HIT_THE_MAT
WL ANI_IFSTATUS,#gotc
;Missed him
WL 4,D3DC3C+FR9
.word ANI_BOUNCE,3
WL 4,D3DC3C+FR9
.word ANI_WAITHITGND
WL ANI_CODE,CALL_MISSES
WL ANI_CODE,SMALL_BOUNCE
WL 2,D3DC3C+FR9
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
#gotc
.WORD ANI_INC_COMBO
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL 2,D3DC3C+FR9
WL 2,D3DC3C+FR9
WL 4,D3DC3C+FR9
WL 4,D3DC3C+FR10
.word ANI_XFLIP
.word ANI_OFFSET,5,0,0 ;x,y,z
;Getting up, set no_collis
.word ANI_SETMODE,MODE_UNINT|MODE_NOCOLLIS|MODE_NOAUTOFLIP ;uninterruptable
WL 3,D2GD2A+FR4
WL 3,D2GD2A+FR6
WL 3,D2GD2A+FR7
;Check for a flip here
WL 2,D2GD2A+FR9
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 1,D2GD2A+FR9
WL 3,D2GD2A+FR10
.word ANI_SAFE_TIME,30
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss
.word ANI_ATTACK_ON,AMODE_HITCHECK,37,88,63,9
WL 1,D2GD2A+FR10
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,dnk_4_push_anim
#no_freetoss
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
SUBR dnk_flying_kick_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 3,D3DC3C+FR1
;If opponent is on ground, just jump in place
WL ANI_CODE,#ckongrnd
WL ANI_IFNOTSTATUS,#norm
WL ANI_CHANGEANIM,dnk_belly_anim
#norm
; ; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 19,999,155,65,90000h,TGT_HEAD,30,100,0
.WORD ANI_ADD_MOVE,MOVE_C_3,2,2
.word ANI_STARTATTACK,AT_LEAPING,11
WL ANI_CODE,no_bk_xvel
WL 3,D3DC3C+FR2
.word ANI_OFFSET,0,#yoff1,0 ;x,y,z
WL 3,D3DC3C+FR3
WL 6,D3DC3C+FR4
.word ANI_ATTACK_ON, AMODE_FLYKICK,53,23,27,29 ;mode,x,y,w,h
WL 3,D3DC3C+FR5
.word ANI_ATTACK_OFF
WL 4,D3DC3C+FR6
WL 3,D3DC3C+FR7
WL 3,D3DC3C+FR8
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,HIT_THE_MAT
WL ANI_IFSTATUS,#got
;Missed him
WL 4,D3DC3C+FR9
.word ANI_BOUNCE,3
WL 4,D3DC3C+FR9
.word ANI_WAITHITGND
WL ANI_CODE,CALL_MISSES
WL ANI_CODE,SMALL_BOUNCE
WL 2,D3DC3C+FR9
#got
WL 2,D3DC3C+FR9
#cont2
WL 2,D3DC3C+FR9
WL 3,D3DC3C+FR9
WL 3,D3DC3C+FR10
.word ANI_XFLIP
.word ANI_OFFSET,5,0,0 ;x,y,z
;Getting up, set no_collis
.word ANI_SETMODE,MODE_UNINT|MODE_NOCOLLIS|MODE_NOAUTOFLIP ;uninterruptable
WL 3,D2GD2A+FR4
WL 3,D2GD2A+FR6
WL 3,D2GD2A+FR7
;Check for a flip here
WL 2,D2GD2A+FR9
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 2,D2GD2A+FR9
WL 3,D2GD2A+FR10
.word ANI_SAFE_TIME,30
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss1
.word ANI_ATTACK_ON,AMODE_HITCHECK,37,88,63,9
WL 1,D2GD2A+FR10
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss1
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,dnk_4_push_anim
#no_freetoss1
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#ckongrnd
move *a13(ANIMODE),a1
andni MODE_STATUS,a1
move a1,*a13(ANIMODE)
calla get_opp_process ;closest opponent process
move *a0(PLYRMODE),a0
cmpi MODE_ONGROUND,a0
jrz #inplace
rets
#inplace
move *a13(ANIMODE),a1
ori MODE_STATUS,a1
move a1,*a13(ANIMODE)
rets
#*****************************************************************************
*
* BODY HIT
SUBR dnk_4_body_hit_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_DEBRIS,100,0,6,72,0 ;%chance, tbl index, x,y,z off
WL ANI_SET_YVEL,48000h
WLW ANI_SET_XVEL,-30000h,AM_HIT_REL
WL ANI_CODE,ckzpos
WL 4,D3AM3A+FR1
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,COUGH_SWEAT,SWEAT_PER,0
WL 4,D3AM3A+FR2
WL 4,D3AM3A+FR3
.word ANI_WAITHITGND
.word ANI_ZERO_XZVELS
WL 3,D3AM3A+FR4
WL 3,D3AM3A+FR5
WL 3,D3AM3A+FR6
WL 2,D3AM3A+FR7
WL 2,D3AM3A+FR8
.word ANI_CHECKWORD,USR_VAR1
WL ANI_IFNOTSTATUS,#reg
WL 6,D4SW4C+FR1
WL 6,D4SW4C+FR2
WL 6,D4SW4C+FR3
WL 6,D4SW4C+FR4
WL 6,D4SW4C+FR5
WL 6,D4SW4C+FR6
WL 6,D4SW4C+FR5
WL 6,D4SW4C+FR4
WL 6,D4SW4C+FR3
WL 6,D4SW4C+FR2
#reg
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR dnk_4_body_hit_dizzy_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETPLYRMODE,MODE_DIZZY
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 4,D3AM3A+FR1
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,COUGH_SWEAT,SWEAT_PER,0
WL 4,D3AM3A+FR2
WL 6,D3AM3A+FR3
.word ANI_WAITHITGND
.word ANI_ZERO_XZVELS
WL 4,D3AM3A+FR4
WL 6,D3AM3A+FR5
WL 3,D3AM3A+FR6
WL 3,D3AM3A+FR7
WL 3,D3AM3A+FR8
.word ANI_OFFSET,0,-1,0 ;x,y,z
WL 1,D4SW4C+FR1
WL ANI_CHANGEANIM,dnk_dizzy_anim
;Hit by a knee!
SUBR dnk_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,8000h,AM_ABS
WL ANI_CODE,ckzpos
.word ANI_DEBRIS,100,0,6,72,0 ;%chance, tbl index, x,y,z off
WL 4,D3AM3A+FR1
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,COUGH_SWEAT,SWEAT_PER,0
WL 4,D3AM3A+FR2
WL 4,D3AM3A+FR3
.word ANI_WAITHITGND
.word ANI_ZERO_XZVELS
WL 3,D3AM3A+FR4
WL 3,D3AM3A+FR5
WL 3,D3AM3A+FR6
WL 2,D3AM3A+FR7
WL 2,D3AM3A+FR8
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR dnk_4_knee_hit_dizzy_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETPLYRMODE,MODE_DIZZY
WL ANI_SET_YVEL,78000h
WLW ANI_SET_XVEL,-30000h,AM_HIT_REL
WL ANI_CODE,ckzpos
.word ANI_DEBRIS,100,0,6,72,0 ;%chance, tbl index, x,y,z off
WL 4,D3AM3A+FR1
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,COUGH_SWEAT,SWEAT_PER,0
WL 4,D3AM3A+FR2
WL 14,D3AM3A+FR3
.word ANI_WAITHITGND
.word ANI_ZERO_XZVELS
WL 4,D3AM3A+FR4
WL 6,D3AM3A+FR5
WL 3,D3AM3A+FR6
WL 3,D3AM3A+FR7
WL 3,D3AM3A+FR8
; .word ANI_OFFSET,-9,-1,0 ;x,y,z
.word ANI_OFFSET,0,-1,0 ;x,y,z
WL 1,D4SW4C+FR1
; .word ANI_SETPLYRMODE,MODE_DIZZY
WL ANI_CHANGEANIM,dnk_dizzy_anim
;Being held by head, hit by a quick knee!
SUBR dnk_quick_knee_hit_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETSPEED,100h
.word ANI_OFFSET,0,0,2 ;x,y,z
WL 4,D3HP3A+FR1
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,COUGH_SWEAT,SWEAT_PER,0
WL 4,D3HP3A+FR2
WL 4,D3HP3A+FR3
WL 4,D3HP3A+FR4
WL 4,D3HP3A+FR5
.word ANI_WAITHITGND
WL ANI_CODE,am_I_dead
;If I'm dead, goto fall back
WL ANI_IFNOTSTATUS,#nodead
WL ANI_CHANGEANIM,dnk_fall_back_anim
#nodead
WL ANI_CHANGEANIM,dnk_3_head_held_anim
#*****************************************************************************
*
* FALL BACK
SUBR dnk_fall_back_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_NOCOLLIS
.word ANI_SETSPEED,100h
.word ANI_ZERO_XZVELS
WL ANI_MIN_YVEL,70000h
WLW ANI_SET_ZVEL,10000h,AM_FACE_REL
.word ANI_SCROLL_CTRL,DNK_TBUKLY-60
WL ANI_CODE,ckzpos
WWL ANI_SETLONG,DEBRIS_X,[96,-09] ;Y,X of head
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,SPRAYC_SWEAT,SWEAT_PER,0
WL 3,D3UC3A+FR1
WWL ANI_SETLONG,DEBRIS_X,[95,-32] ;Y,X of head
WL 3,D3UC3A+FR2
WWL ANI_SETLONG,DEBRIS_X,[91,-41] ;Y,X of head
WL 3,D3UC3A+FR3
.word ANI_OFFSET,0,50,0 ;x,y,z
WWL ANI_SETLONG,DEBRIS_X,[36,-45] ;Y,X of head
WL 3,D3UC3A+FR4
WWL ANI_SETLONG,DEBRIS_X,[29,-48] ;Y,X of head
WL 2,D3UC3A+FR5
WWL ANI_SETLONG,DEBRIS_X,[19,-48] ;Y,X of head
WL 2,D3UC3A+FR6
.word ANI_WAITHITGND
.word ANI_DEBRIS,100,1,-8,12,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,[05,-47] ;Y,X of head
WL 2,D3UC3A+FR8
.word ANI_BOUNCE,5
WL 1,D3UC3A+FR8
WWL ANI_SETLONG,DEBRIS_X,[09,-41] ;Y,X of head
WL 5,D3UC3A+FR9
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
.word ANI_ZEROVELS
WWL ANI_SETLONG,DEBRIS_X,[07,-48] ;Y,X of head
WL 3,D3UC3A+FR10
WWL ANI_SETLONG,DEBRIS_X,0 ;Y,X of head
WL 3,D3UC3A+FR11
.word ANI_XFLIP
WL 1,D3SA3A+FR9
.word ANI_SETPLYRMODE,MODE_ONGROUND
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
;Stay on ground for awhile... Maybe this will be table driven
WL 6,D3SA3A+FR9
.word ANI_WAITROLL
WL ANI_CHANGEANIM,dnk_faceup_getup_anim
SUBR ckzpos
;If falling near the front or rear ropes, slide toward middle
;of the ring to allow opponent to walk around him.
move *a13(OBJ_ZPOSINT),a0
cmpi 510h,a0
jrgt #slideup
cmpi 442h,a0
jrgt #ok
;slide down scrn
movi 24000h,a0
move a0,*a13(OBJ_ZVEL),L
rets
#slideup
movi -24000h,a0
move a0,*a13(OBJ_ZVEL),L
#ok
rets
#* FALL BACK
SUBR dnk_fall_back2_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WL ANI_SET_YVEL,20000h
WLW ANI_SET_ZVEL,18000h,AM_ABS
WL ANI_CODE,ckzpos
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,SPRAYC_SWEAT,SWEAT_PER,0
WL 3,D3UC3A+FR1
WL 3,D3UC3A+FR2
WL 3,D3UC3A+FR3
.word ANI_OFFSET,0,50,0 ;x,y,z
WL 3,D3UC3A+FR4
WL 2,D3UC3A+FR5
WL 2,D3UC3A+FR6
; WL 2,D3UC3A+FR7
.word ANI_WAITHITGND
.word ANI_DEBRIS,100,1,-8,12,0 ;%chance, tbl index, x,y,z off
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKEALL,1
.word ANI_SHAKER,25
.word ANI_ZEROVELS
WLW ANI_SET_ZVEL,18000h,AM_ABS
WLW ANI_SET_XVEL,-20000h,AM_FACE_REL
.word ANI_OFFSET,-25,0,0 ;x,y,z
WL 3,D3FD3E+FR2
WL 3,D3FD3E+FR3
WL 3,D3FD3E+FR4
WL 3,D3FD3E+FR5
WL 3,D3FD3E+FR6
WL 3,D3FD3E+FR7
WL 3,D3FD3E+FR8
.word ANI_ZEROVELS
.word ANI_SETPLYRMODE,MODE_ONGROUND ;So we can stomp him!
WL ANI_CODE,HIT_THE_MAT
.word ANI_OFFSET,-22,0,0 ;x,y,z
WL 4,D3GS3X+FR8
WL 4,D3GS3X+FR9
WL 4,D3GS3X+FR10
;Stay on ground for awhile... Maybe this will be table driven
WL 20,D3GS3X+FR8 ;Face down
; WL 3,D3SA3A+FR9
.word ANI_WAITROLL
WL ANI_CHANGEANIM,dnk_faceup_getup_anim
#*****************************************************************************
*
* FALL FROM TURNBUCKLE
SUBR dnk_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,D3UC3A+FR1
WL 3,D3UC3A+FR2
WL 3,D3UC3A+FR3
.word ANI_OFFSET,0,50,0 ;x,y,z
WL 3,D3UC3A+FR4
WL 2,D3UC3A+FR5
WL 2,D3UC3A+FR6
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_DAMAGE,D_HITCONCRETE
.word ANI_DEBRIS,100,1,-8,12,0 ;%chance, tbl index, x,y,z off
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKEALL,1
.word ANI_SHAKER,40
; .word ANI_FRICTION,3000h
WL 2,D3UC3A+FR8
.word ANI_BOUNCE,3
WL 1,D3UC3A+FR8
WL 5,D3UC3A+FR9
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
.word ANI_ZEROVELS
WL 3,D3UC3A+FR10
WL 3,D3UC3A+FR11
.word ANI_XFLIP
WL 1,D3SA3A+FR9
.word ANI_SETPLYRMODE,MODE_ONGROUND
WL 3,D3SA3A+FR9
.word ANI_WAITROLL
WL ANI_CHANGEANIM,dnk_faceup_getup_anim
#*****************************************************************************
;chooses 2 or 4 right away
SUBR dnk_faceup_getup_anim
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
WL ANI_CODE,choose_2or4
WL ANI_IFNOTSTATUS,dnk_2_faceup_getup_anim
WL ANI_CHANGEANIM,dnk_4_faceup_getup_anim
SUBR dnk_4_faceup_getup_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCOLLIS
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
; .word ANI_CLR_STARS
; .word ANI_CLR_DAMAGE
WL 1,D3SA3A+FR9
WL 2,D3GU4A+FR2
WL 3,D3GU4A+FR3
WL 2,D3GU4A+FR4
WL 3,D3GU4A+FR5
WL 2,D3GU4A+FR6
;Check for a flip here
WL 1,D3GU4A+FR7
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 2,D3GU4A+FR7
WL 2,D3GU4A+FR8
WL 3,D3GU4A+FR9
.word ANI_SAFE_TIME,50
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss2
.word ANI_ATTACK_ON,AMODE_HITCHECK,37,88,63,9
WL 1,D3GU4A+FR9
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss2
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,dnk_4_push_anim
#no_freetoss2
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
SUBR dnk_2_faceup_getup_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOCOLLIS|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
; .word ANI_CLR_STARS
; .word ANI_CLR_DAMAGE
; WL 1,D3SA3A+FR9
WL 2,D3RL1B+FR2
WL 2,D3RL1B+FR3
WL 2,D3RL1B+FR4
WL 2,D3RL1B+FR5
WL 2,D3RL1B+FR6
WL 3,D2GD2A+FR4
; .word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
WL 2,D2GD2A+FR6
WL 3,D2GD2A+FR7
;Check for a flip here
WL 2,D2GD2A+FR9
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 1,D2GD2A+FR9
WL 3,D2GD2A+FR10
.word ANI_SAFE_TIME,50
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss3
.word ANI_ATTACK_ON,AMODE_HITCHECK,37,88,63,9
WL 1,D2GD2A+FR10
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss3
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,dnk_4_push_anim
#no_freetoss3
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #4 HEAD HIT
SUBR dnk_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
.word ANI_DEBRIS,150,3,-21,100,0 ;%chance, tbl index, x,y,z off
; WL ANI_CODE,#tryblood
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,SPRAYA_SWEAT,SWEAT_PER,0
WL 3,D3AH3B+FR1
WL 3,D3AH3B+FR2
WL 2,D3AH3B+FR3
WL 2,D3AH3B+FR5
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
;#tryblood
; move a13,a11
; CREATE0 react_bloodnguts_gen
; rets
#* #2 HEAD HIT
SUBR dnk_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
.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,D2AH2A+FR1
WL 3,D2AH2A+FR2
WL 3,D2AH2A+FR3
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#* #4 HEAD HIT - From spin kick & backhand slap
SUBR dnk_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
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,SPRAYA_SWEAT,SWEAT_PER,0
WL 3,D3AH3B+FR1
.word ANI_DEBRIS,200,2,-23,102,0 ;%chance, tbl index, x,y,z off
WL 3,D3AH3B+FR2
.word ANI_WAITHITGND
WL 3,D3AH3B+FR3
.word ANI_ZEROVELS
WL 3,D3AH3B+FR5
.word ANI_FACEDOWN
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR dnk_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,50000h
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,SPRAYA_SWEAT,SWEAT_PER,0
WL 4,D3AH3B+FR2
WL 4,D3AH3B+FR3
WL 4,D3AH3B+FR5
.word ANI_WAITHITGND
.word ANI_FACEDOWN
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#* #2 HEAD HIT - From spin kick & backhand slap
SUBR dnk_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_ABS
WL ANI_SET_YVEL,40000h
WL 3,D2AH2A+FR1
.word ANI_DEBRIS,200,2,-23,102,0 ;%chance, tbl index, x,y,z off
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,SPRAYA_SWEAT,SWEAT_PER,0
WL 4,D2AH2A+FR2
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 3,D2AH2A+FR3
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* HEAD HIT2 (HANDS ON FACE)
SUBR dnk_head_hit2_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WLW ANI_SET_XVEL,-40000h,AM_HIT_REL
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.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
.word ANI_FRICTION,3000h
WL 3,D3AE3B+FR1
WL 3,D3AE3B+FR2
WL 3,D3AE3B+FR3
WL 3,D3AE3B+FR4
WL 2,D3AE3B+FR5
WL 2,D3AE3B+FR6
WL 2,D3AE3B+FR7
WL 2,D3AE3B+FR8
WL ANI_CODE,am_I_dead
;If I'm dead, goto fall back
WL ANI_IFNOTSTATUS,#nodead
WL ANI_CHANGEANIM,dnk_fall_back_anim
#nodead
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR dnk_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 4,D3AE3B+FR1
WL ANI_CODE,create_impact_salt
WL 4,D3AE3B+FR2
WL 4,D3AE3B+FR3
WL 4,D3AE3B+FR4
.word ANI_WAITHITGND
.word ANI_FRICTION,4000h
WL 50,D3AE3B+FR4
.word ANI_ZEROVELS
WL 3,D3AE3B+FR5
WL 3,D3AE3B+FR6
WL 3,D3AE3B+FR7
WL 3,D3AE3B+FR8
.word ANI_FACEDOWN
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*
SUBR dnk_head_hit3_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,-30000h,AM_HIT_REL
WLW ANI_SET_ZVEL,28000h,AM_HIT_REL
WL ANI_SET_YVEL,50000h
.word ANI_FRICTION,3000h
; WL 4,D3AE3B+FR1
WL 4,D3AE3B+FR2
WL 4,D3AE3B+FR3
WL 18,D3AE3B+FR4
WL 2,D3AE3B+FR5
.word ANI_ZEROVELS
WL 2,D3AE3B+FR5
WL 3,D3AE3B+FR6
WL 3,D3AE3B+FR7
WL 3,D3AE3B+FR8
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* HEAD HIT2 (ENDS IN DIZZY)
SUBR dnk_head_dead_dizzy_anim
;This is a head hit dizzy seq which causes the player to fall down after a time
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETPLYRMODE,MODE_DIZZY
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WLW ANI_SET_XVEL,-40000h,AM_HIT_REL
.word ANI_FRICTION,3000h
WL 4,D3AE3B+FR1
WL 4,D3AE3B+FR2
WL 4,D3AE3B+FR3
WL 4,D3AE3B+FR4
WL 4,D3AE3B+FR5
WL 4,D3AE3B+FR6
WL 4,D3AE3B+FR7
WL 4,D3AE3B+FR8
; .word ANI_SETPLYRMODE,MODE_DIZZY
WL ANI_CHANGEANIM,dnk_dizzy_anim
* HEAD HIT2 (ENDS IN DIZZY)
SUBR dnk_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
.word ANI_SETPLYRMODE,MODE_DIZZY
WLW ANI_SET_XVEL,-60000h,AM_HIT_REL
.word ANI_FRICTION,3000h
WL 4,D3AE3B+FR1
WL 4,D3AE3B+FR2
WL 4,D3AE3B+FR3
WL 4,D3AE3B+FR4
WL 4,D3AE3B+FR5
WL 4,D3AE3B+FR6
WL 4,D3AE3B+FR7
WL 4,D3AE3B+FR8
; .word ANI_SETPLYRMODE,MODE_DIZZY
WL ANI_CHANGEANIM,dnk_dizzy_anim
#*****************************************************************************
*
* #2,4 FLYING CLOTHESLINE
SUBR dnk_fly_cline_anim
.word ANI_SETMODE,MODE_UNINT|MODE_OVERLAP|MODE_NOAUTOFLIP
.word ANI_SETSPEED,100h
.word ANI_STARTATTACK,AT_LEAPING,3
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 3,D3RC3A+FR1
.word ANI_OFFSET,5,0,0 ;x,y,z
WL 3,D3RC3A+FR2
.WORD ANI_ADD_MOVE,MOVE_C_3,2,2
WL ANI_SET_YVEL,64000h
WLW ANI_SET_XVEL,5c000h,AM_FACE_REL ;64
.word ANI_OFFSET,9,45,0 ;x,y,z
WL 3,D3RC3A+FR3
.word ANI_ATTACK_ON, AMODE_CLINE,25,6,23,37 ;mode,x,y,w,h ;31
WL 3,D3RC3A+FR4
WL 3,D3RC3A+FR5
WL 3,D3RC3A+FR6
WL 3,D3RC3A+FR7
WL 4,D3RC3A+FR8
.word ANI_ATTACK_OFF
WL 5,D3RC3A+FR8
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WLW ANI_SET_XVEL,50000h,AM_FACE_REL
.word ANI_FRICTION,3000h
.word ANI_BOUNCE,4
WL ANI_CODE,HIT_THE_MAT
WL 3,D3RC3A+FR8
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
WL 10,D3RC3A+FR9
WL ANI_IFSTATUS,#gothim
;He missed, have him stay on ground for awhile!
WL ANI_CODE,CALL_MISSES
.word ANI_SETPLYRMODE,MODE_ONGROUND
;Do a little damage when missing!
; .word ANI_DAMAGE,2 ;Damage myself
; WL 30,D3RC3A+FR9
WL 3,D3RC3A+FR9
;#done
.word ANI_WAITROLL
WL ANI_CHANGEANIM,dnk_faceup_getup_anim
#gothim
.word ANI_DRAW_NAME,24
WL ANI_CODE,CALL_ANI_AVERAGE_MOVE
WL 2,D3RL1B+FR7
WL 2,D3RL1B+FR9
WL 2,D3RL1B+FR11
;Perhaps we should turn off collisions when getting up!?
;Getting up, set no_collis
.word ANI_SETMODE,MODE_UNINT|MODE_OVERLAP|MODE_NOAUTOFLIP|MODE_NOCOLLIS
WL 2,D3GU4A+FR2
WL 2,D3GU4A+FR3
WL 2,D3GU4A+FR4
WL 2,D3GU4A+FR5
WL 2,D3GU4A+FR6
;Check for a flip here
WL 1,D3GU4A+FR7
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 2,D3GU4A+FR7
WL 2,D3GU4A+FR8
WL 3,D3GU4A+FR9
.word ANI_SAFE_TIME,30
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss4
.word ANI_ATTACK_ON,AMODE_HITCHECK,37,88,63,9
WL 1,D3GU4A+FR9
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss4
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,dnk_4_push_anim
#no_freetoss4
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
; SUBR ck_dizzy
;
; calla check_dizzy
; jrz #not_dizzy
; move *a13(ANIMODE),a1
; ori MODE_STATUS,a1
; move a1,*a13(ANIMODE)
; rets
;
;#not_dizzy
; move *a13(ANIMODE),a1
; andni MODE_STATUS,a1
; move a1,*a13(ANIMODE)
; rets
#*****************************************************************************
*
* #2,4 BELLY FLOP FROM RUNNING MODE ONTO FALLEN OPPONENT
SUBR dnk_belly_anim
.word ANI_SETMODE,MODE_UNINT|MODE_OVERLAP|MODE_NOAUTOFLIP
.word ANI_SETSPEED,100h
.WORD ANI_ADD_MOVE,MOVE_C_4,2,2
WL ANI_CODE,get_leap
WL ANI_IFNOTSTATUS,#normal
WL ANI_CODE,#close
WL ANI_IFSTATUS,#no_xvel
#normal
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 30,200,100,90,90000h,TGT_GROIN,0,0,-10
.word ANI_STARTATTACK,AT_LEAPING,30
; .word ANI_STARTATTACK,AT_BUTTSTOMP,30
WL ANI_GOTO,#cont
#no_xvel
.word ANI_ZERO_XZVELS
WL ANI_SET_YVEL,74000h
WL 5,D4JD4A+FR4
.word ANI_OFFSET,0,45,0 ;x,y,z
WL 5,D4FM4A+FR5
.word ANI_ATTACK_ON, AMODE_BUTTSTOMP,-18,4,50,23 ;mode,x,y,w,h
WL 1,D4FM4A+FR6
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_ATTACK_OFF
#miss WL ANI_CODE,shake_all_ropes
.word ANI_BOUNCE,5
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKER,15
WL 5,D4FM4A+FR7
WL 1,D4FM4A+FR6
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,SMALL_BOUNCE
WL ANI_GOTO,#cont4
#cont WL 5,D4JD4A+FR4
.word ANI_OFFSET,0,45,0 ;x,y,z
WL 5,D4FM4A+FR5
.word ANI_ATTACK_ON, AMODE_BUTTSTOMP,-18,4,50,23 ;mode,x,y,w,h
WL 1,D4FM4A+FR6
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#miss
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKER,15
WL 5,D4FM4A+FR7
#cont4 WL 8,D4FM4A+FR9
.word ANI_XFLIP
.word ANI_FACEDOWN
;Getting up, set no_collis
.word ANI_SETMODE,MODE_UNINT|MODE_NOCOLLIS|MODE_NOAUTOFLIP ;uninterruptable
WL 3,D3GU4A+FR3
WL 3,D3GU4A+FR4
WL 3,D3GU4A+FR5
WL 3,D3GU4A+FR6
;Check for a flip here
WL 1,D3GU4A+FR7
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 2,D3GU4A+FR7
WL 3,D3GU4A+FR8
WL 3,D3GU4A+FR9
.word ANI_SAFE_TIME,50
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss5
.word ANI_ATTACK_ON,AMODE_HITCHECK,37,88,63,9
WL 1,D3GU4A+FR9
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss5
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,dnk_4_push_anim
#no_freetoss5
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#close
move *a13(ANIMODE),a1
andni MODE_STATUS,a1
move a1,*a13(ANIMODE)
calla get_opp_process ;closest opponent process
move *a0(OBJ_XPOSINT),a0
MOVE *a13(OBJ_XPOSINT),a14
sub a0,a14
abs a14
cmpi 30h,a14
jrgt #inplace
rets
#inplace
move *a13(ANIMODE),a1
ori MODE_STATUS,a1
move a1,*a13(ANIMODE)
rets
#*****************************************************************************
*
* #2 ELBOW DROP
SUBR dnk_2_lbowdrop_anim
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETSPEED,100h
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D2PJ2A+FR3
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D2PJ2A+FR3
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D2PJ2A+FR3
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_LBDROP,19
WL 3,D2PJ2A+FR4
.word ANI_OFFSET,0,50,0 ;x,y,z
WL ANI_CODE,#set_target
WL ANI_CODE,tgt_ground
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 16,999,160,140,90000h,TGT_USER,-3,0,-30
WL ANI_CODE,#zero_x
WL 3,D2PJ2A+FR6
WL 3,D2PJ2A+FR8
WL 10,D2PJ2A+FR10
.word ANI_WAITHITGND
WL ANI_CODE,HIT_THE_MAT
.word ANI_ZERO_XZVELS
;Perhaps even shake ropes
.word ANI_SHAKEALL,1
.word ANI_SHAKER,18
; .word ANI_ATTACK_ON_Z, AMODE_LBOWDROP,-15,7,10,30,21,40 ;mode,x,y,z,w,h,d
.word ANI_ATTACK_ON, AMODE_LBOWDROP,-15,7,30,21 ;mode,x,y,z,w,h,d
WL 2,D2PJ2A+FR11
WL 2,D2PJ2A+FR12
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_4,2,2
WL ANI_IFSTATUS,#gothim2
.word ANI_BOUNCE,3
WL ANI_CODE,HIT_THE_MAT
; WL ANI_CODE,SMALL_BOUNCE
WL ANI_CODE,CALL_MISSES
;He missed, have him stay on ground for awhile!
WL 40,D2PJ2A+FR12
.word ANI_WAITHITGND
WL ANI_GOTO,#cont
#gothim2
.word ANI_DRAW_NAME,18
.word ANI_BOUNCE,4
WL ANI_CODE,HIT_THE_MAT
WL 15,D2PJ2A+FR12
#cont WL 3,D5GD3A+FR5
WL 3,D5GD3A+FR6
WL 3,D5GD3A+FR7
WL 3,D5GD3A+FR8
WL 3,D5GD3A+FR9
WL 3,D5GD3A+FR10
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
* #4 ELBOW DROP
SUBR dnk_4_lbowdrop_anim
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETSPEED,100h
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D4PJ4A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D4PJ4A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D4PJ4A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_LBDROP,19
WL 3,D4PJ4A+FR3
.word ANI_OFFSET,0,31h,0 ;x,y,z
WL ANI_CODE,#set_target
WL ANI_CODE,tgt_ground
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 16,999,160,140,90000h,TGT_USER,-3,0,30
WL ANI_CODE,#zero_x
WL 3,D4PJ4A+FR4
WL 3,D4PJ4A+FR6
WL 10,D4PJ4A+FR7
.word ANI_WAITHITGND
#land
.WORD ANI_ADD_MOVE,MOVE_C_4,2,2
WL ANI_CODE,HIT_THE_MAT
.word ANI_ZERO_XZVELS
;Perhaps even shake ropes
.word ANI_SHAKEALL,1
.word ANI_SHAKER,18
; .word ANI_ATTACK_ON_Z, AMODE_LBOWDROP,-6,22,16,25,27,30 ;mode,x,y,z,w,h,d
.word ANI_ATTACK_ON, AMODE_LBOWDROP,-6,0,25,27 ;mode,x,y,z,w,h,d
WL 1,D4PJ4A+FR10
.word ANI_WAITHITGND
.word ANI_ATTACK_OFF
WL ANI_IFSTATUS,#gothim4
.word ANI_BOUNCE,3
WL ANI_CODE,HIT_THE_MAT
;He missed, have him stay on ground for awhile!
WL ANI_CODE,CALL_MISSES
WL 40,D4PJ4A+FR10
.word ANI_WAITHITGND
WL ANI_GOTO,#land2
#gothim4
.word ANI_DRAW_NAME,18
.word ANI_BOUNCE,4
WL ANI_CODE,HIT_THE_MAT
WL 15,D4PJ4A+FR10
#land2
.word ANI_WAITHITGND
.word ANI_XFLIP
.word ANI_OFFSET,10,0,0 ;x,y,z
;Getting up, set no_collis
.word ANI_SETMODE,MODE_UNINT|MODE_NOCOLLIS|MODE_NOAUTOFLIP ;uninterruptable
WL 4,D3GU4A+FR3
WL 3,D3GU4A+FR4
WL 3,D3GU4A+FR5
WL 3,D3GU4A+FR6
;Check for a flip here
WL 1,D3GU4A+FR7
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 2,D3GU4A+FR7
WL 3,D3GU4A+FR8
WL 3,D3GU4A+FR9
.word ANI_SAFE_TIME,50
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss6
.word ANI_ATTACK_ON,AMODE_HITCHECK,37,88,63,9
WL 1,D3GU4A+FR9
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss6
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,dnk_4_push_anim
#no_freetoss6
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
;Elbow drop #4 from turnbuckle
SUBR dnk_4_blbowdrop_anim
;If jumping toward an in ring opponent & near the edge of ring, turn on
;the confine bit!
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_NOCONFINE|MODE_NOGRAVITY
.word ANI_SCROLL_CTRL,SC_RESTORE
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_OFFSET,11,4,0 ;x,y,z
WL 2,D4PJ4A+FR2
WL 2,D4PJ4A+FR3
.word ANI_OFFSET,0,31h,0 ;x,y,z
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 38,190,190,190,90000h,TGT_CHEST,-3,-3,50
.word ANI_GRAVITY_ON
; .word ANI_SETPLYRMODE,MODE_INAIR2
WL ANI_CODE,set_tbukl_airmode
.word ANI_STARTATTACK,AT_LEAPING,25
.word ANI_SHAKECORNER ;Shake corner ropes
.WORD ANI_ADD_MOVE,MOVE_C_4,2,2
WL 3,D4PJ4A+FR4
WL 3,D4PJ4A+FR6
WL 6,D4PJ4A+FR7
WL ANI_CODE,set_tbukl_confine
WL 4,D4PJ4A+FR7
.word ANI_ATTACK_ON_Z,AMODE_BLBOWDROP,-46,0,16,92,34,30
WWL ANI_IFOPPMODE,MODE_ONGROUND,#opp_onground
WWL ANI_IFOPPMODE,MODE_DEAD,#opp_onground
.word ANI_ATTACK_ON_Z,AMODE_BLBOWDROP,-46,28,16,92,34,30
#opp_onground
WL 1,D4PJ4A+FR7
.word ANI_WAITHITGND
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_ZERO_XZVELS
;Perhaps even shake ropes
.word ANI_SHAKEALL,1
.word ANI_SHAKER,25
WL ANI_CODE,HIT_THE_MAT
WL 1,D4PJ4A+FR10
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_9,2,2
WL ANI_IFSTATUS,#gothimb
.word ANI_BOUNCE,4 ;Bigger bounce
WL ANI_CODE,HIT_THE_MAT
; WL ANI_CODE,SMALL_BOUNCE
;He missed, have him stay on ground for awhile!
; WL ANI_CODE,tbukl_miss_damage
WL ANI_CODE,CALL_MISSES
WL 25,D4PJ4A+FR10
.word ANI_WAITHITGND
WL ANI_CODE,HIT_THE_MAT
WL ANI_GOTO,#tag
#gothimb
.word ANI_DRAW_NAME,18
.word ANI_BOUNCE,4
WL ANI_CODE,HIT_THE_MAT
WL 15,D4PJ4A+FR10
.word ANI_WAITHITGND
#tag .word ANI_XFLIP
.word ANI_OFFSET,-10,0,0 ;x,y,z
;Getting up, set no_collis
.word ANI_SETMODE,MODE_UNINT|MODE_NOCOLLIS|MODE_NOAUTOFLIP ;uninterruptable
WL 4,D3GU4A+FR3
WL 3,D3GU4A+FR4
WL 3,D3GU4A+FR5
WL 3,D3GU4A+FR6
;Check for a flip here
WL 1,D3GU4A+FR7
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 2,D3GU4A+FR7
WL 3,D3GU4A+FR8
WL 3,D3GU4A+FR9
.word ANI_SAFE_TIME,50
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss7
.word ANI_ATTACK_ON,AMODE_HITCHECK,37,88,63,9
WL 1,D3GU4A+FR9
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss7
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,dnk_4_push_anim
#no_freetoss7
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
; .word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
* #4 HAMMER POUND OF FALLEN OPPONENT
SUBR dnk_4_hammer_anim
;Fix attack boxes! No z
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.word ANI_CLR_BUTCOUNT
.word ANI_STARTATTACK,AT_HAMMER1,12
WL 3,D4HM4A+FR1
WL 3,D4HM4A+FR2
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 6,190,90,50,90000h,TGT_GROIN,95,82,13h ;13
.word ANI_SET_RPTCOUNT,4 ;5 times
WL 6,D4HM4A+FR3 ;16
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 2,D4HM4A+FR4
WL 3,D4HM4A+FR5
WL 2,D4HM4A+FR6
.word ANI_ATTACK_ON, AMODE_HAMMER,31,3,88,73 ;mode,x,y,w,h
WL 3,D4HM4A+FR7
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_2,2,2
WL ANI_IFNOTSTATUS,#tagmiss
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
;He got him, shake screen
.word ANI_DAMAGEOPP,D_HAMMER1,RD_HAMMER1
.word ANI_DRAW_NAME,25
;Immobilize player for 30 ticks without meter on!
.word ANI_IMMOBILIZE,30
.word ANI_SHAKER,25
WL ANI_CODE,CALL_NASTY_MOVE
WWWL ANI_IF_BUTCOUNT_LT,KICKB_COUNT,1,#missedb
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#dnk_quick_hammer
#missedb
#tagmiss
WL 3,D4HM4A+FR8
WL 3,D4HM4A+FR9
WL 3,D4HM4A+FR10
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#dnk_quick_hammer
.word ANI_CLR_BUTCOUNT
.word ANI_STARTATTACK,AT_HAMMER1,27
WL 3,D4HM4A+FR8
WL 3,D4HM4A+FR9
WL 3,D4HM4A+FR10
WL 3,D4HM4A+FR1
WL 3,D4HM4A+FR2
WL 3,D4HM4A+FR3
WL 3,D4HM4A+FR4
WL 3,D4HM4A+FR5
WL 3,D4HM4A+FR6
.word ANI_ATTACK_ON, AMODE_HAMMER,31,3,88,73 ;mode,x,y,w,h
WL 3,D4HM4A+FR7
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#tagmiss
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
;Immobilize player for 30 ticks without meter on!
.word ANI_IMMOBILIZE,30
.word ANI_SHAKER,25
WWWL ANI_IF_BUTCOUNT_LT,KICKB_COUNT,2,#failed
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#dnk_quick_hammer
WL 20,D4HM4A+FR7
#failed
WL 3,D4HM4A+FR8
WL 3,D4HM4A+FR9
WL 3,D4HM4A+FR10
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
dnk_combo_hammer_anim
.word ANI_SET_RPTCOUNT,3 ;5 times
.word ANI_IMMOBILIZE,30
; .word ANI_STARTATTACK,AT_HAMMER1,23
WL 4,D4HM4A+FR1
WL 4,D4HM4A+FR2
WL 4,D4HM4A+FR3 ;16
WL 3,D4HM4A+FR4
WL 4,D4HM4A+FR5
WL 4,D4HM4A+FR6
.word ANI_ATTACK_ON, AMODE_HAMMER,31,3,88,73 ;mode,x,y,w,h
WL 4,D4HM4A+FR7
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed2
.WORD ANI_INC_COMBO
.word ANI_IMMOBILIZE,30
.word ANI_SHAKER,25
dnk_repeat_combo_hammer_anim
.word ANI_CLR_BUTCOUNT
; .word ANI_STARTATTACK,AT_HAMMER1,15
WL 2,D4HM4A+FR8
WL 1,D4HM4A+FR9
WL 2,D4HM4A+FR10
WL 2,D4HM4A+FR1
WL 1,D4HM4A+FR2
WL 2,D4HM4A+FR3
WL 2,D4HM4A+FR4
WL 1,D4HM4A+FR5
WL 2,D4HM4A+FR6
.word ANI_ATTACK_ON, AMODE_HAMMER,31,3,88,73 ;mode,x,y,w,h
WL 2,D4HM4A+FR7
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed2
.WORD ANI_INC_COMBO
;Immobilize player for 30 ticks without meter on!
.word ANI_IMMOBILIZE,30
.word ANI_SHAKER,25
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,2,#missed2
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,dnk_repeat_combo_hammer_anim
#missed2
WL ANI_CODE,DO_COMBO_MESS
WL 3,D4HM4A+FR8
WL 3,D4HM4A+FR9
WL 3,D4HM4A+FR10
.WORD ANI_CLEAR_COMBO
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#set_target
calla get_opp_process
move a0,a11
move *a13(CLOSEST_XDIST),a0
cmpi >40,a0
jrlt #drop
;We are to side of fallen opponent, we must float toward
;his head or his knees
;Take into account my flip as well as my opponents flip!
move *a13(OBJ_CONTROL),a14
andi M_FLIPH,a14
move *a11(OBJ_CONTROL),a0
andi M_FLIPH,a0
cmp a0,a14
jrnz #head
movi TGT_KNEES,a0
calla set_target_offsets
rets
#head
movi TGT_HEAD,a0
calla set_target_offsets
rets
#drop
;Just drop straight down
movi TGT_CHEST,a0
calla set_target_offsets
rets
#zero_x
move *a13(CLOSEST_XDIST),a0
cmpi >40,a0
jrgt #ok ;Is he to the side?
;Don't float if dropping straight down
clr a0
move a0,*a13(OBJ_XVEL),L
#ok rets
#get_off
;Get off from fallen opponent
movi [3,0],a0
move a0,*a13(OBJ_ZVEL),L
movi [2,0],a0
move a0,*a13(OBJ_YVEL),L
rets
#*****************************************************************************
*
* #2 STOMP ON FALLEN OPPONENT
SUBR dnk_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,D3MP3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D3MP3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D3MP3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_STOMP,15
WL ANI_CODE,#set_target
WL ANI_CODE,tgt_ground
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 13,999,160,140,90000h,TGT_USER,20,0,-30
WL 3,D3MP3A+FR2
WL 2,D3MP3A+FR3
WL 3,D3MP3A+FR4
WL 2,D3MP3A+FR5
WL 3,D3MP3A+FR6
.word ANI_ATTACK_ON_Z, AMODE_STOMP,7,7,-20,20,33,30 ;mode,x,y,z,w,h,d
.word ANI_ZERO_XZVELS
WL 3+4,D3MP3A+FR7
.word ANI_ATTACK_OFF
; WL ANI_CODE,SMALL_BOUNCE
.WORD ANI_ADD_MOVE,MOVE_C_4,2,2
WL ANI_IFSTATUS,#gothim
WL 3,D3MP3A+FR8
.word ANI_WAITHITGND
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#gothim
WL ANI_CODE,#get_off
WL 2,D3MP3A+FR8
.word ANI_WAITHITGND
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* #4 STOMP ON FALLEN OPPONENT
SUBR dnk_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,D4MP4D+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D4MP4D+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,D4MP4D+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL ANI_CODE,#set_target
WL ANI_CODE,tgt_ground
.word ANI_STARTATTACK,AT_STOMP,15
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 13,999,160,140,90000h,TGT_USER,32,0,30
WL 3,D4MP4D+FR2
WL 3,D4MP4D+FR3
WL 7,D4MP4D+FR4
;#cont4
; WL 3,D4MP4D+FR5
; .word ANI_ATTACK_ON_Z, AMODE_STOMP,2,1,40,19,27,30 ;mode,x,y,z,w,h,d
.word ANI_ATTACK_ON_Z, AMODE_STOMP,22,8,40,35,22,30 ;mode,x,y,z,w,h,d
.word ANI_ZERO_XZVELS
WL 7,D4MP4D+FR6
.word ANI_ATTACK_OFF
; WL ANI_CODE,SMALL_BOUNCE
.WORD ANI_ADD_MOVE,MOVE_C_4,2,2
WL ANI_IFSTATUS,#gothim4
WL 3,D4MP4D+FR7
.word ANI_WAITHITGND
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#gothim4
WL ANI_CODE,#get_off4
WL 2,D4MP4D+FR7
.word ANI_WAITHITGND
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
;Stomp #4 from top of turnbuckle
SUBR dnk_4_bstomp_anim
; .word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_NOCOLLIS|MODE_NOGRAVITY|MODE_OVERLAP
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_NOGRAVITY|MODE_OVERLAP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_XFLIP ;make an ANI_FACEOUT and ANI_FACEIN
.word ANI_SCROLL_CTRL,SC_RESTORE
WL 3,D4JD4A+FR1
WL 3,D4JD4A+FR2
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 16+20,190,190,190,90000h,TGT_CHEST,39+8,7+4,20
.word ANI_GRAVITY_ON
; .word ANI_SETPLYRMODE,MODE_INAIR2
WL ANI_CODE,set_tbukl_airmode
.word ANI_STARTATTACK,AT_LEAPING,36
.word ANI_SHAKECORNER ;Shake corner ropes
;Check x vel to make sure we aren't going to land on ropes!
; WL ANI_CODE,check_xvel
.word ANI_OFFSET,8,4,0 ;x,y,z
WL ANI_IFNOTSTATUS,#nooff
.word ANI_OFFSET,-16,0,0 ;x,y,z
#nooff
WL 3,D4MP4D+FR2
WL 3,D4MP4D+FR3
WL 6,D4MP4D+FR4
WL ANI_CODE,set_tbukl_confine
WL 9,D4MP4D+FR4
WL 1eh-15,D4MP4D+FR4
.word ANI_ATTACK_ON_Z,AMODE_BSTOMP,-46,0,0,92,34,30
WWL ANI_IFOPPMODE,MODE_ONGROUND,#opp_onground
WWL ANI_IFOPPMODE,MODE_DEAD,#opp_onground
.word ANI_ATTACK_ON_Z,AMODE_BSTOMP,-46,28,0,72,34,30
#opp_onground
WL 3,D4MP4D+FR6
.word ANI_WAITHITGND
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_ZERO_XZVELS
.word ANI_SHAKER,30
.word ANI_SHAKEALL,1
WL ANI_CODE,shake_all_ropes
; WL 1,D4MP4D+FR7
.word ANI_BOUNCE,6
WL ANI_CODE,HIT_THE_MAT
WL 6,D4MP4D+FR6
.word ANI_ATTACK_OFF
WL 9,D4MP4D+FR7
.WORD ANI_ADD_MOVE,MOVE_C_9,2,2
WL ANI_IFSTATUS,#gothimb4
WL 3,D4MP4D+FR7
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
; WL ANI_CODE,tbukl_miss_damage
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
; .word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
SUBR check_xvel
move *a13(ANIMODE),a1
andni MODE_STATUS,a1
move a1,*a13(ANIMODE)
;don't mess with anything if opponent is ouside the ring
move *a13(CLOSEST_NUM),a0
X32 a0
addi process_ptrs,a0
move *a0,a0,L
move *a0(INRING),a0,W
jrnz #ok
move *a13(OBJ_XPOSINT),a0
cmpi RING_X_MID,a0
jrgt #onrgt
;Check to make sure opponent is in ring!
move *a13(OBJ_XVEL),a0,L
jrnn #ok
; cmpi [0,8000h],a0
; jrge #ok
;Will land on ropes
movi [1,8000h],a0
move a0,*a13(OBJ_XVEL),L
move *a13(ANIMODE),a1
ori MODE_STATUS,a1
move a1,*a13(ANIMODE)
rets
#onrgt
;Check to make sure opponent is in ring!
move *a13(OBJ_XVEL),a0,L
jrn #ok
; cmpi -[0,8000h],a0
; jrle #ok
;Will land on ropes
movi -[1,8000h],a0
move a0,*a13(OBJ_XVEL),L
move *a13(ANIMODE),a1
ori MODE_STATUS,a1
move a1,*a13(ANIMODE)
#ok
rets
#gothimb4
WLW ANI_SET_ZVEL,-50000h,AM_ABS
; WL ANI_CODE,#getoff4
WL 5,D4MP4D+FR7
.word ANI_WAITHITGND
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#set_target
calla get_opp_process
move a0,a11
move *a13(STICK_VAL_CUR),a0
btst MOVE_LEFT_BIT,a0
jrnz #lft
btst MOVE_RIGHT_BIT,a0
jrnz #rgt
;No stick
;Randomize between head/chest/groin/knees
; movk 3,a0
; calla RNDRNG0
; X16 a0
; addi #targets,a0
; move *a0,a0
movi TGT_CHEST,a0
calla set_target_offsets
rets
;Go to chest or if opponent is flipped, go to head!
#lft
move *a11(OBJ_CONTROL),a14
btst B_FLIPH,a14
jrz #chest
#head
movi TGT_HEAD,a0
calla set_target_offsets
rets
;Go to head or if opponent is flipped, go to chest!
#rgt
move *a11(OBJ_CONTROL),a14
btst B_FLIPH,a14
jrz #head
#chest
movi TGT_KNEES,a0
calla set_target_offsets
rets
; or set *a13(TGT_XOFF), *a13(TGT_YOFF) & *a13(TGT_ZOFF) manually
#targets
.word TGT_HEAD ;0
.word TGT_CHEST ;1
.word TGT_GROIN ;2
.word TGT_KNEES ;3
#get_off
movi [4,0],a0
move a0,*a13(OBJ_ZVEL),L
movi [2,0],a0
move a0,*a13(OBJ_YVEL),L
rets
#get_off4
movi -[2,0],a0
move a0,*a13(OBJ_ZVEL),L
movi [1,0],a0
move a0,*a13(OBJ_YVEL),L
rets
#*****************************************************************************
*
SUBR dnk_knockdwn_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETPLYRMODE,MODE_ONGROUND
.word ANI_XFLIP
WL 2,D3GU4A+FR9
WL 2,D3GU4A+FR7
WL 2,D3GU4A+FR5
WL ANI_SET_YVEL,39000h
WL 2,D3SA3A+FR2
.word ANI_DEBRIS,200,1,0,8,0 ;%chance, tbl index, x,y,z off
WL 3,D3SA3A+FR3
WL 6,D3SA3A+FR4
WL 3,D3SA3A+FR5
WL 3,D3SA3A+FR7
WL 2,D3SA3A+FR8
WL 6,D3SA3A+FR9
;FIX!!! Add to other wrestlers
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
;#done
.word ANI_WAITROLL
WL ANI_CHANGEANIM,dnk_faceup_getup_anim
#*****************************************************************************
*
* HITS ON GROUND
SUBR dnk_hitonground_xflip_anim
.word ANI_XFLIP
;fall through
SUBR dnk_hitonground_anim
;We need to take stars away on hits...
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETPLYRMODE,MODE_ONGROUND
.word ANI_SETSPEED,100h
WL ANI_SET_YVEL,39000h
.word ANI_DEBRIS,50,1,0,8,0 ;%chance, tbl index, x,y,z off
WL 2,D3SA3A+FR2
WLWWWW ANI_CREATEPROC,CREATE_SWEAT,0,SPITUP_SWEAT,SWEAT_PER,0
WL 3,D3SA3A+FR3
WL 6,D3SA3A+FR4
WL 3,D3SA3A+FR5
WL 3,D3SA3A+FR7
WL 2,D3SA3A+FR8
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
.word ANI_ZEROVELS
WL 1,D3SA3A+FR9
SUBR dnk_liedown_anim
WL 1,D3SA3A+FR9
.word ANI_WAITROLL
WL ANI_CHANGEANIM,dnk_faceup_getup_anim
SUBR dnk_up_anim
;We need to take stars away on hits...
.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,D3OS3A+FR3
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
.word ANI_ZEROVELS
WL 3,D3SA3A+FR9
.word ANI_WAITROLL
WL ANI_CHANGEANIM,dnk_faceup_getup_anim
#*****************************************************************************
*
* CLIMB UP TURNBUCKLES
SUBR dnk_climb_up_anim
.word ANI_SETMODE,MODE_UNINT | MODE_NOAUTOFLIP | MODE_NOCONFINE | MODE_NOGRAVITY
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SCROLL_CTRL,DNK_TBUKLY
WL ANI_SET_YVEL,4000h ;27000
.word ANI_OFFSET,-8+13,-3+4,-16 ;x,y,z
WL 4,D2CT2A+FR2
.word ANI_OFFSET,0,15h,0 ;x,y,z
WL 4,D2CT2A+FR7
.word ANI_SHAKEROPES,1
.word ANI_OFFSET,4,4,0 ;x,y,z
WL 4,D2CT2A+FR9
.word ANI_OFFSET,6,14,0 ;x,y,z
WL 4,D2CT2A+FR12
.word ANI_ZEROVELS
.word ANI_OFFSET,0,6,0 ;x,y,z
WL 4,D2CT2B+FR2
.word ANI_OFFSET,10,18h,0 ;x,y,z
WL 4,D2CT2B+FR4
.word ANI_OFFSET,-2,19,0 ;x,y,z
WL 4,D2CT2B+FR6
.word ANI_SETPLYRMODE,MODE_ONTURNBKL
.word ANI_SETMODE,MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_NOGRAVITY|MODE_UNINT|MODE_OVERLAP
.word ANI_SCROLL_CTRL,SC_RESTORE
.WORD ANI_ADD_MOVE,MOVE_C_4,2,2
.word ANI_OFFSET,2,0,0 ;x,y,z
WL ANI_CODE,tbukl_flip
#repeat WL 5,D2CT2C+FR1
WL ANI_CODE,tbukl_flip
WL 5,D2CT2C+FR3
WL ANI_CODE,tbukl_flip
WL 5,D2CT2C+FR5
WL ANI_CODE,tbukl_flip
WL 5,D2CT2C+FR7
WL ANI_CODE,tbukl_flip
WL 5,D2CT2C+FR9
WL ANI_CODE,tbukl_flip
WL 5,D2CT2C+FR11
WL ANI_CODE,tbukl_flip
WL 5,D2CT2C+FR13
WL ANI_CODE,tbukl_flip
WL 5,D2CT2C+FR15
WL ANI_CODE,tbukl_flip
WL 5,D2CT2C+FR17
WL ANI_CODE,tbukl_flip
WL 5,D2CT2C+FR19
WL ANI_CODE,tbukl_flip
WL 5,D2CT2C+FR21
WL ANI_CODE,tbukl_flip
WL ANI_GOTO,#repeat
* CLIMB DOWN TURNBUCKLES
SUBR dnk_climb_down_anim
.word ANI_SETMODE,MODE_UNINT | MODE_NOAUTOFLIP | MODE_NOCONFINE | MODE_NOGRAVITY
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WL ANI_CODE,face_inside
.word ANI_OFFSET,0,2,0 ;x,y,z
WL 5,D2CT2B+FR6
.word ANI_OFFSET,0,-13-3,0 ;x,y,z
WL 5,D2CT2B+FR4
WL ANI_SET_YVEL,-4000h
.word ANI_OFFSET,-8,-26-3,0 ;x,y,z
WL 4,D2CT2B+FR2
.word ANI_OFFSET,0,-5-3,0 ;x,y,z
.word ANI_SHAKEROPES,1
WL 4,D2CT2A+FR12
.word ANI_OFFSET,0,-10-3,0 ;x,y,z
WL 4,D2CT2A+FR9
.word ANI_OFFSET,0,-10-3,0 ;x,y,z
WL 4,D2CT2A+FR7
.word ANI_OFFSET,-9,-9-3,0 ;x,y,z
WL 4,D2CT2A+FR2
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_WAITHITGND
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
;#*****************************************************************************
;*
;* SECOND WIND
;
; SUBR dnk_2ndwind_anim
;
; .word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
; .word ANI_ZEROVELS
; .word ANI_SETSPEED,100h
; WL 3,D4SW4B+FR1
; WL 3,D4SW4B+FR2
;
; WL 3,D4SW4E+FR1
; WL 3,D4SW4E+FR2
; WL 3,D4SW4E+FR3
; WL 3,D4SW4E+FR4
; WL 3,D4SW4E+FR5
;
; WL 3,D4SW4E+FR1
; WL 3,D4SW4E+FR2
; WL 3,D4SW4E+FR3
; WL 3,D4SW4E+FR4
; WL 3,D4SW4E+FR5
;
; WL 3,D4SW4F+FR1
; WL 3,D4SW4F+FR2
; WL 3,D4SW4F+FR3
; WL 3,D4SW4F+FR4
; WL 3,D4SW4F+FR5
; WL 3,D4SW4F+FR6
; WL 3,D4SW4F+FR7
;
; WL 3,D4SW4F+FR1
; WL 3,D4SW4F+FR2
; WL 3,D4SW4F+FR3
; WL 3,D4SW4F+FR4
; WL 3,D4SW4F+FR5
; WL 3,D4SW4F+FR6
; WL 3,D4SW4F+FR7
;
; .word ANI_SETMODE,MODE_NORMAL
;
#*****************************************************************************
*
* BUTT DROP FROM TOP OF TURNBUCKLE
SUBR dnk_diveofftb_anim
; .word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCOLLIS|MODE_NOGRAVITY|MODE_OVERLAP|MODE_NOCONFINE
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOGRAVITY|MODE_OVERLAP|MODE_NOCONFINE
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.word ANI_SCROLL_CTRL,SC_RESTORE
.word ANI_STARTATTACK,AT_LEAPING,43
WL 4,D4JD4A+FR1
WL 4,D4JD4A+FR2 ;D4FM4A+FR1
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 35,190,190,190,90000h,TGT_CHEST,-15,0,-10
.word ANI_GRAVITY_ON
; .word ANI_SETPLYRMODE,MODE_INAIR2
WL ANI_CODE,set_tbukl_airmode
.word ANI_SHAKECORNER ;Shake corner ropes
WL 3,D4JD4A+FR4
.word ANI_OFFSET,0,45,0 ;x,y,z
WL 3,D4FM4A+FR5
WL 3,D4FM4A+FR6
WL ANI_CODE,set_tbukl_confine
.word ANI_ATTACK_ON_Z,AMODE_BSTOMP,-24,0,-30,86,34,60 ;mode,x,y,z,w,h,d
WWL ANI_IFOPPMODE,MODE_ONGROUND,#opp_onground
WWL ANI_IFOPPMODE,MODE_DEAD,#opp_onground
.word ANI_ATTACK_ON_Z,AMODE_BSTOMP,-24,28,-30,60,34,60
#opp_onground
WL 1,D4FM4A+FR6
.word ANI_WAITHITGND
.word ANI_ATTACK_OFF
.word ANI_ZEROVELS
.word ANI_ADD_MOVE,MOVE_C_9,2,2
WL ANI_IFSTATUS,#hit
#missed
; WL ANI_CODE,tbukl_miss_damage
WL ANI_CODE,CALL_MISSES
WL ANI_CODE,shake_all_ropes
WL ANI_CHANGEANIM,dnk_hitonground_xflip_anim
#hit WLW ANI_SET_ZVEL,20000h,AM_ABS
#cont WL ANI_CODE,shake_all_ropes
.word ANI_SETPLYRMODE,MODE_NORMAL
;bounce
.word ANI_SHAKER,18
.word ANI_BOUNCE,6
WL ANI_CODE,HIT_THE_MAT
WL 5,D4FM4A+FR7
WL 1,D4FM4A+FR6
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL ANI_CODE,SMALL_BOUNCE
WL 5,D4FM4A+FR7
WL 8,D4FM4A+FR9
.word ANI_XFLIP
.word ANI_FACEDOWN
;Getting up, set no_collis
.word ANI_SETMODE,MODE_UNINT|MODE_NOCOLLIS|MODE_NOAUTOFLIP ;uninterruptable
WL 3,D3GU4A+FR3
WL 3,D3GU4A+FR4
WL 3,D3GU4A+FR5
WL 3,D3GU4A+FR6
;Check for a flip here
WL 1,D3GU4A+FR7
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
WL 2,D3GU4A+FR7
WL 3,D3GU4A+FR8
WL 3,D3GU4A+FR9
.word ANI_SAFE_TIME,30
WL ANI_CODE,free_toss_check
WL ANI_IFNOTSTATUS,#no_freetoss8
.word ANI_ATTACK_ON,AMODE_HITCHECK,37,88,63,9
WL 1,D3GU4A+FR9
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#no_freetoss8
;Opponent standing too close -- free toss
WL ANI_CODE,setup_freetoss
WL ANI_CHANGEANIM,dnk_4_push_anim
#no_freetoss8
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* GRAB & FLING OPPONENT (INTO A RUN)
SUBR dnk_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,D1TT5Z+FR2
WL 2,D1TT5Z+FR3
WL ANI_GOTO,#cont
SUBR dnk_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,D4GF3A+FR1
.word ANI_ATTACK_ON, AMODE_PUPPET_NOFLAIL,33,56,44,18 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,6,D4GF3A+FR2
.word ANI_ZERO_XZVELS
WWL ANI_WAITHITOPP,2,D4GF3A+FR3
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missedb
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
;got him
WL ANI_CODE,DO_GRUNT
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
.word ANI_SETOPPFACING
WWLLW ANI_SUPERSLAVE2,10,D4GF3A+FR3,#puppet_tbl,0
.word ANI_WAITHITGND
WWLLW ANI_SUPERSLAVE2,6,D4GF3A+FR4,#puppet_tbl,1
WWLLW ANI_SUPERSLAVE2,4,D4GF3A+FR5,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,4,D4GF3A+FR6,#puppet_tbl,3
WWLLW ANI_SUPERSLAVE2,4,D4GF3A+FR7,#puppet_tbl,4
WWLLW ANI_SUPERSLAVE2,4,D4GF3A+FR8,#puppet_tbl,5
.WORD ANI_ADD_MOVE,MOVE_C_4,2,2
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,D4GF3A+FR9 ;16
.word ANI_OFFSET,-10,0,0 ;x,y,z
.word ANI_SETFACING
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#missedb
WL ANI_CODE,fling_delay
WL ANI_IFNOTSTATUS,#missed
WL 25,D4GF3A+FR3
#missed
WL ANI_CODE,CALL_MISSES
WL 6,D4GF3A+FR3
WL 3,D4GF3A+FR2
WL 3,D4GF3A+FR1
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR fling_delay
move *a13(LAST_FLING),a14,L
move @PCNT,a0,L ;use 32-bit PCNT!
move a0,*a13(LAST_FLING),L
sub a14,a0
cmpi 3*60,a0
jrge #ok
;This blocked fling attempt is too close (in terms of time) to most recent grab
move *a13(ANIMODE),a1
ori MODE_STATUS,a1
move a1,*a13(ANIMODE)
rets
#ok move *a13(ANIMODE),a1
andni MODE_STATUS,a1
move a1,*a13(ANIMODE)
rets
#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 U4YR3B,U3RN3A
.ref Y4YR3A,Y3RN3C
.ref S4YR3A,S3RN3A
.ref B4YR3A,B3RN3A
.ref L4YR3B,L3RN3B
#Bret
LWWW H4YR3A+FR1,53,7,1
LWWW H4YR3A+FR2,49,9,1
LWWW H4YR3A+FR3,48,9,1
LWWW H4YR3A+FR5,43,11,1
LWWW H3RN3A+FR1,15,5,0
LWWW H3RN3A+FR2,-14,8,0
#Razor
LWWW R4YR3A+FR1,32,17,0
LWWW R4YR3A+FR2,21,20,0
LWWW R4YR3A+FR3,1,11,0
LWWW R4YR3A+FR4,4,15,0
LWWW R3RN3D+FR10,9,16,0
LWWW R3RN3D+FR11,-4,16,0
#Taker
LWWW U4YR3B+FR2,34,18,0
LWWW U4YR3B+FR3,37,16,0
LWWW U4YR3B+FR4,29,24,0
LWWW U4YR3B+FR5,27,24,0
LWWW U3RN3A+FR2,-11,15,0
LWWW U3RN3A+FR2,-25,14,0
#Yokozuna
LWWW Y4YR3A+FR1,59,11,1
LWWW Y4YR3A+FR4,37,13,1
LWWW Y4YR3A+FR5,32,11,1
LWWW Y4YR3A+FR7,5,3,1
LWWW Y3RN3C+FR7,18,13,0
LWWW Y3RN3C+FR8,8,12,0
#Shawn
LWWW S4YR3A+FR2,38,5,1
LWWW S4YR3A+FR3,52,-3,1
LWWW S4YR3A+FR5,21,11,1
LWWW S4YR3A+FR6,19,10,1
LWWW S3RN3A+FR2,16,11,0
LWWW S3RN3A+FR3,4,11,0
#BamBam
LWWW B4YR3A+FR3,32,15,0
LWWW B4YR3A+FR4,43,11,0
LWWW B4YR3A+FR5,53,12,0
LWWW B4YR3A+FR7,9,9,0
LWWW B3RN3A+FR1,6,19,0
LWWW B3RN3A+FR2,3,17,0
#Doink
LWWW D4YR3B+FR1,64,16,1
LWWW D4YR3B+FR2,60,20,1
LWWW D4YR3B+FR3,47,19,1
LWWW D4YR3B+FR4,38,20,1
LWWW D3RN3B+FR3,23,20,0
LWWW D3RN3B+FR4,-8,18,0
#Adam
.long 0
#Lex
LWWW L4YR3B+FR1,66,16,1
LWWW L4YR3B+FR2,54,10,1
LWWW L4YR3B+FR3,38,13,1
LWWW L4YR3B+FR4,13,11,1
LWWW L3RN3B+FR2,0,19,0
LWWW L3RN3B+FR3,10,13,0
#strt_run_tbl
.long start_run_flung,start_run_flung,start_run_flung
.long start_run_flung,start_run_flung,start_run_flung
.long start_run_flung,start_run_flung,start_run_flung
.long start_run_flung,start_run_flung,start_run_flung
#*****************************************************************************
*
* HELD OVERHEAD ANIMATION
SUBR dnk_heldoh_anim
.word ANI_SETPLYRMODE,MODE_ATTACHED
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOGRAVITY
.word ANI_SETSPEED,100h
.word ANI_SETWORD,USR_VAR1,0 ;loop count
WL ANI_CODE,DO_OTHERNONO
#loop
WL 3,D4MF4A+FR1
WL 3,D4MF4A+FR2
WL 3,D4MF4A+FR3
WL 3,D4MF4A+FR4
WL 3,D4MF4A+FR5
WL 3,D4MF4A+FR6
WL 3,D4MF4A+FR7
WL 3,D4MF4A+FR8
WL 3,D4MF4A+FR9
WL ANI_CODE,#inc_loop
WL ANI_IFNOTSTATUS,#loop
;Fall out of overhead hold by reversing thru pickup frames
.word ANI_DETACH
.word ANI_SETMODE,MODE_NORMAL|MODE_OVERLAP
.word ANI_SETPLYRMODE,MODE_INAIR
WL ANI_CODE,FIND_AND_KILL_ENDLESS
WL ANI_SET_YVEL,10000h
WLW ANI_SET_XVEL,-40000h,AM_HIT_REL
WLW ANI_SET_ZVEL,10000h,AM_ABS
.word ANI_FRICTION,3000h
WL 2,D4MF4A+FR6
.word ANI_OFFSET,-20,-50,0 ;x,y,z
WL 4,D3GS3X+FR5
WL 4,D3GS3X+FR4
WL 4,D3GS3X+FR3
WL 4,D3GS3X+FR1
.word ANI_WAITHITGND
WL 2,D2ST2B+FR3
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
;Loop 4 times, then break out!
#inc_loop
move *a13(USR_VAR1),a0
inc a0
move a0,*a13(USR_VAR1)
cmpi 3,a0
jrgt #breakout
; move *a13(ATTACH_PROC),a0,L
; jrz #breakout
move *a13(ANIMODE),a1
andni MODE_STATUS,a1
move a1,*a13(ANIMODE)
rets
#breakout
move *a13(ANIMODE),a1
ori MODE_STATUS,a1
move a1,*a13(ANIMODE)
rets
;#*****************************************************************************
;*
;* #2 BLOCK
;
; SUBR dnk_2_block_anim
;
; .word ANI_SETMODE,MODE_UNINT ;uninterruptable
; .word ANI_ZERO_XZVELS
; .word ANI_SETSPEED,100h
; .word ANI_SETFACING ;ANI_XFLIP <- not primary anim
; .word ANI_SET_WRESTLER_XFLIP
;
; WL ANI_CODE,block_if_safe
; WL 2,D2BK3C+FR1
; WL 1,D2BK3C+FR2
; .word ANI_SETPLYRMODE,MODE_BLOCK
;
; WL 1,D2BK3C+FR2
;#blk2 WL 2,D2BK3C+FR3
; .word ANI_SETMODE,MODE_NOAUTOFLIP|MODE_UNINT
; .word ANI_WAITRELEASE,PLAYER_BLOCK_BIT
; .word ANI_SETMODE,MODE_NOAUTOFLIP ;uninterruptable
; .word ANI_SETFACING
; WL 2,D2BK3C+FR2
; WL 2,D2BK3C+FR1
; .word ANI_SETPLYRMODE,MODE_NORMAL
;
; SUBR dnk_2_hitblock_anim
;
; .word ANI_SETMODE,MODE_UNINT ;uninterruptable
; .word ANI_FRICTION,4000h
; .word ANI_SETSPEED,100h
;
; WL ANI_CODE,DO_BLOCKED
; WL 4,D2BK3C+FR7
; WL 4,D2BK3C+FR5
; WL ANI_GOTO,#blk2
* #4 BLOCK
SUBR dnk_4_block_anim
.word ANI_SETMODE,MODE_UNINT ;uninterruptable
.word ANI_ZERO_XZVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.word ANI_SETPLYRMODE,MODE_BLOCK
; WL ANI_CODE,block_if_safe
WL 2,D4BK3A+FR1
WL 1,D4BK3A+FR2
; .word ANI_SETPLYRMODE,MODE_BLOCK
WL 1,D4BK3A+FR2
#blk4 WL 2,D4BK3A+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,D4BK3A+FR2
WL 2,D4BK3A+FR1
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
SUBR dnk_4_hitblock_anim
.word ANI_SETMODE,MODE_UNINT ;uninterruptable
.word ANI_FRICTION,5000h
.word ANI_SETSPEED,100h
WL ANI_CODE,DO_BLOCKED
WL 2,D4BK3A+FR7
WL 2,D4BK3A+FR6
WL ANI_GOTO,#blk4
SUBR dnk_4_hitblock2_anim
.word ANI_SETMODE,MODE_UNINT ;uninterruptable
.word ANI_FRICTION,4000h
.word ANI_SETSPEED,100h
WL ANI_CODE,DO_BLOCKED
WL ANI_SET_YVEL,38000h
WL 3,D4BK3A+FR6
WL 3,D4BK3A+FR7
WL 3,D4BK3A+FR6
WL 3,D4BK3A+FR7
WL 3,D4BK3A+FR6
WL 3,D4BK3A+FR7
WL ANI_GOTO,#blk4
#*****************************************************************************
*
* HIP TOSS RUNNING OPPONENT
SUBR dnk_2_hiptoss2_anim
.word ANI_SETPLYRMODE,MODE_NORMAL
; .word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCOLLIS ;uninterruptable
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.word ANI_STARTATTACK,AT_PUPPET,6
; WL 2,D1TT5Z+FR2
; WL 2,D1TT5Z+FR3
SUBR dnk_4_hiptoss2_anim
.word ANI_SETPLYRMODE,MODE_NORMAL
; .word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCOLLIS ;uninterruptable
.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,2
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 8,60,55,40,90000h,TGT_CHEST,40,0,0
WL ANI_SET_YVEL,0
WL 2,D3HT3Q+FR1
.word ANI_ATTACK_ON, AMODE_PUPPET_TOSS,33,46,44,38 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,8,D3HT3Q+FR1
.word ANI_ZERO_XZVELS
.word ANI_ATTACK_OFF
WL ANI_GOTO,#cont
SUBR dnk_2_hiptoss_anim
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.word ANI_STARTATTACK,AT_PUPPET,10
; WL 2,D1TT5Z+FR2
; WL 2,D1TT5Z+FR3
SUBR dnk_4_hiptoss_anim
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.word ANI_STARTATTACK,AT_PUPPET,10
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 8,40,40,40,90000h,TGT_CHEST,40,0,0
WL ANI_SET_YVEL,0000h
WL 4,D3HT3Q+FR1
.word ANI_ATTACK_ON, AMODE_PUPPET_TOSS,33,46,44,38 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,4,D3HT3Q+FR1
.word ANI_ZERO_XZVELS
.word ANI_ATTACK_OFF
WL 4,D3HT3Q+FR1
#cont
.WORD ANI_ADD_MOVE,MOVE_C_4,2,2
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
#got_him
.ref MAKE_HIM_SCREAM
WL ANI_CODE,MAKE_HIM_SCREAM
WL ANI_CODE,DO_GRUNT
.word ANI_DRAW_NAME,3
WL ANI_CODE,CALL_SPECIAL_MOVE
.word ANI_ATTACHZ,0,0,2 ;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,4,D3HT3Q+FR1,#puppet_tbl,0
WL ANI_CODE,SMALL_BOUNCE
; .word ANI_WAITHITGND
WWLLW ANI_SUPERSLAVE2,4,D3HT3Q+FR2,#puppet_tbl,1
WWLLW ANI_SUPERSLAVE2,4,D3HT3Q+FR3,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,4,D3HT3Q+FR4,#puppet_tbl,3
.WORD ANI_ADD_MOVE,MOVE_C_1,2,2
WWWL ANI_IFROPE,RC_BACK,XTOSSDIST_CLOSE,#throw_him_out
WWLLW ANI_SUPERSLAVE2,4,D3HT3Q+FR5,#puppet_tbl,4
WWLLW ANI_SUPERSLAVE2,4,D3HT3Q+FR6,#puppet_tbl,5
WWLLW ANI_SUPERSLAVE2,4,D3HT3Q+FR7,#puppet_tbl,6
WWLLW ANI_SUPERSLAVE2,1,D3HT3Q+FR8,#puppet_tbl,7
;impact
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKEALL,2
.word ANI_SHAKER,30
.word ANI_DAMAGEOPP,D_HIPTOSS,RD_HIPTOSS
WL ANI_SLAVEANIM,#rollout_tbl
.word ANI_CLROPPMODE,MODE_GHOST
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_DETACH
WL 10,D3HT3Q+FR8
WL 3,D3HT3Q+FR7
WL 3,D3HT3Q+FR6
.word ANI_FACEDOWN
.word ANI_SETFACING
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#missedb
; WL ANI_CODE,ck_hiptoss
; WL ANI_IFNOTSTATUS,#got_him
WL 10,D3HT3Q+FR1
;Delay longer if 2nd hiptoss in quick succession!
WL ANI_CODE,hiptoss_delay
WL ANI_IFNOTSTATUS,#missed
WL 24,D3HT3Q+FR1
#missed
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
WL 8,D3HT3Q+FR1
.word ANI_FACEDOWN
.word ANI_SETFACING
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
; SUBR ck_hiptoss
;;Check to see if guy I just tried to hip toss has safe time
;;or is pulling down & away
;
; move *a13(WHOIHIT),a0,L
; move *a0(SAFE_TIME),a14
; jrnz #ano
;
;;If stick is down & away - skip toss
; move *a0(STICK_VAL_CUR),a14
; andi 0ch,a14
; jrz #ok
; move *a0(NEW_FACING_DIR),a1
; andi 0ch,a1
; cmp a14,a1
; jrz #ok
;
; move *a0(STICK_VAL_CUR),a14
; cmpi 4,a1
; jrz #fclft
; cmpi >6,a14
; jrnz #ok
;;Pulling down & away!
;;Don't allow hiptoss
;#ano move *a13(ANIMODE),a1
; ori MODE_STATUS,a1
; move a1,*a13(ANIMODE)
; rets
;
;#fclft cmpi >a,a14
; jrz #ano
;
;#ok move *a13(ANIMODE),a1
; andni MODE_STATUS,a1
; move a1,*a13(ANIMODE)
; rets
SUBR hiptoss_delay
move *a13(LAST_HIPTOSS),a14,L
move @PCNT,a0,L ;use 32-bit PCNT!
move a0,*a13(LAST_HIPTOSS),L
sub a14,a0
cmpi 3*60,a0
jrge #oka
;This blocked fling attempt is too close (in terms of time) to most recent grab
move *a13(ANIMODE),a1
ori MODE_STATUS,a1
move a1,*a13(ANIMODE)
rets
#oka move *a13(ANIMODE),a1
andni MODE_STATUS,a1
move a1,*a13(ANIMODE)
rets
#throw_him_out
WLLL ANI_ATTACHVEL,-0a0000h,90000h,0h ;x,y,z
WL ANI_CODE,CALL_THROWN_OUT
WL ANI_SLAVEANIM,#flyout_tbl
WL ANI_OPPOFFSET,release_table
.word ANI_DETACH
wl 3,D3HT3Q+FR5
WL 3,D3HT3Q+FR6
WL 3,D3HT3Q+FR7
WL 3,D3HT3Q+FR8
.word ANI_SHAKEALL,2
.word ANI_SHAKER,15
WL 3,D3HT3Q+FR8
WL 3,D3HT3Q+FR7
WL 3,D3HT3Q+FR6
.word ANI_FACEDOWN
.word ANI_SETFACING
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
release_table
; X Y
.word 40,24 ;Bret
.word 32,8 ;Razor
.word 32,20 ;Taker
.word 32,16 ;Yokozuna
.word 28,12 ;Shawn
.word 16,8 ;BamBam
.word 32,16 ;Doink
.word 0,0 ;Adam
.word 32,16 ;Lex
#flyout_tbl
REFLONG hrt_flyout_anim
REFLONG rzr_flyout_anim
REFLONG und_flyout_anim
REFLONG yok_flyout_anim
REFLONG shn_flyout_anim
REFLONG bam_flyout_anim
REFLONG dnk_flyout_anim
.long 0
REFLONG lex_flyout_anim
SUBR dnk_4_combo_hiptoss_anim
.word ANI_SET_RPTCOUNT,4 ;5 times
re_enter_combo_hiptoss
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_STARTATTACK,AT_PUPPET,2
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 8,40,40,40,90000h,TGT_CHEST,40,0,0
WL ANI_SET_YVEL,0000h
WL 2,D3HT3Q+FR1
.word ANI_ATTACK_ON, AMODE_PUPPET,33,0,44,60 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,6,D3HT3Q+FR1
.word ANI_ZERO_XZVELS
WWL ANI_WAITHITOPP,4,D3HT3Q+FR1
.word ANI_ATTACK_OFF
.word ANI_CLR_BUTCOUNT
WL ANI_IFNOTSTATUS,#missedc
WL ANI_IFBLOCKED,#missedbc ;Yes, I hit blocker
;got him
.WORD ANI_INC_COMBO
.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,3,D3HT3Q+FR1,#puppet_tbl,0
.word ANI_WAITHITGND
WWLLW ANI_SUPERSLAVE2,3,D3HT3Q+FR2,#puppet_tbl,1
WWLLW ANI_SUPERSLAVE2,3,D3HT3Q+FR3,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,3,D3HT3Q+FR4,#puppet_tbl,3
WWWL ANI_IFROPE,RC_BACK,XTOSSDIST_CLOSE,#throw_him_out_c
WWLLW ANI_SUPERSLAVE2,3,D3HT3Q+FR5,#puppet_tbl,4
WWLLW ANI_SUPERSLAVE2,3,D3HT3Q+FR6,#puppet_tbl,5
WWLLW ANI_SUPERSLAVE2,3,D3HT3Q+FR7,#puppet_tbl,6
WWLLW ANI_SUPERSLAVE2,1,D3HT3Q+FR8,#puppet_tbl,7
;impact
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKEALL,2
.word ANI_SHAKER,30
.word ANI_DAMAGEOPP,D_HIPTOSS,RD_HIPTOSS
WL ANI_SLAVEANIM,#rollout_tbl
.word ANI_CLROPPMODE,MODE_GHOST
WLLL ANI_SETOPPVELS,0,80000h,0h ;x,y,z vels
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_DETACH
; WL 15,D3HT3Q+FR8
WL 4,D3HT3Q+FR8
WL 4,D3HT3Q+FR7
WL 4,D3HT3Q+FR6
.word ANI_FACEDOWN
.word ANI_SETFACING
.word ANI_DEC_RPTCOUNT
WL ANI_IFNOT_RPTCOUNT,CHECK_FOR_NEXT
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#NEXT_CHECK
WL ANI_GOTO,yes_do_combo_again
CHECK_FOR_NEXT
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#NEXT_CHECK
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,yes_do_combo_again
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,1,#NEXT_CHECK2A
.WORD ANI_INC_COMBO
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_IMMOBILIZE,120
WL 4,D3HT3Q+FR6
.WORD ANI_XFLIP
WL ANI_CHANGEANIM,dnk_2_stomp_anim
#NEXT_CHECK2A
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#NEXT_CHECK
.WORD ANI_XFLIP
WL ANI_CHANGEANIM,dnk_combo_hammer_anim
#NEXT_CHECK
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
yes_do_combo_again
.WORD ANI_XFLIP
WL ANI_CHANGEANIM,re_enter_combo_hiptoss
#missedbc
WL 10,D3HT3Q+FR1
#missedc
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL 20,D3HT3Q+FR1
.word ANI_FACEDOWN
.word ANI_SETFACING
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#throw_him_out_c
WLLL ANI_ATTACHVEL,-090000h,90000h,0h ;x,y,z
WL ANI_CODE,CALL_THROWN_OUT
WL ANI_SLAVEANIM,#flyout_tbl
WL ANI_OPPOFFSET,release_table
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
.word ANI_DETACH
wl 3,D3HT3Q+FR5
WL 4,D3HT3Q+FR6
WL 4,D3HT3Q+FR7
WL 4,D3HT3Q+FR8
; .word ANI_SOUND,0C1h ;plywood crash #3
.word ANI_SHAKEALL,2
.word ANI_SHAKER,10
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#puppet_tbl
.long #Bret
.long #Razor
.long #Taker
.long #Yokozuna
.long #Shawn
.long #BamBam
.long #Doink
.long #Adam
.long #Lex
#Bret
.ref H2AH3A,H3FR3A,H2CP3A,H2AM3A
LWWW H2AH3A+FR5,72,10,0
LWWW H2AM3A+FR1,58,17,0
LWWW H2AM3A+FR7,47,8,0
LWWW H3FR3A+FR2,29,25,0
LWWW H3FR3A+FR3,14,59,0
LWWW H3FR3A+FR4,-26,62,0
LWWW H3FR3A+FR5,-75,-6,0
LWWW H2CP3A+FR8,-149,-47,1
.long 0
#Razor
.ref R3TD3A,R3GU2A
LWWW R3TD3A+FR1,56,6,0
LWWW R3TD3A+FR3,45,6,0
LWWW R3TD3A+FR4,37,19,0
LWWW R3TD3A+FR5,36,47,0
LWWW R3TD3A+FR6,15,62,0
LWWW R3TD3A+FR7,-25,65,0
LWWW R3TD3A+FR8,-73,9,0
LWWW R3GU2A+FR1,-155,-43,1
.long 0
#Taker
.ref U3AE4A,U4AM4C,U3FH3A,U3CP3B
LWWW U3AE4A+FR1,73,22,0
LWWW U4AM4C+FR4,52,18,0 ;15
LWWW U3FH3A+FR1,55,20,1 ;15
LWWW U3FH3A+FR2,32,45,1 ;40
LWWW U3FH3A+FR3,18,60,1 ;54
LWWW U3FH3A+FR4,-30,68,1 ;63
LWWW U3FH3A+FR5,-92,18,1
LWWW U3CP3B+FR1,-175,-40,1
.long 0
#Yokozuna
.ref Y4AE4A,Y3FL3W,Y3FD3A,Y3MS3Z
LWWW Y4AE4A+FR1,81,10,0
LWWW Y3MS3Z+FR2,56,18,0
LWWW Y3FL3W+FR3,36,24,0
LWWW Y3FL3W+FR4,37,55,0
LWWW Y3FL3W+FR5,17,68,0
LWWW Y3FL3W+FR6,-43,68,0
LWWW Y3FL3W+FR7,-90,11,0
LWWW Y3FD3A+FR7,-130,-17,0
.long 0
#Shawn
.ref S3OS3X
LWWW S3OS3X+FR2,58,7,1
LWWW S3OS3X+FR4,27,18,1
LWWW S3OS3X+FR5,22,16,1
LWWW S3OS3X+FR6,26,64,1
LWWW S3OS3X+FR7,20,79,1
LWWW S3OS3X+FR8,-13,78,1
LWWW S3OS3X+FR9,-98,20,1
LWWW S3OS3X+FR10,-144,-38,1
.long 0
#BamBam
.ref B4TD3B
LWWW B4TD3B+FR1,53,2,0
LWWW B4TD3B+FR3,39,4,0
LWWW B4TD3B+FR4,42,16,0
LWWW B4TD3B+FR5,33,59,0
LWWW B4TD3B+FR6,23,88,0
LWWW B4TD3B+FR7,-28,73,0
LWWW B4TD3B+FR8,-68,16,0
LWWW B4TD3B+FR9,-117,-28,0
.long 0
#Doink
LWWW D3AE3B+FR8,69,8,0
LWWW D3PM4C+FR2,37,7,0
LWWW D3OS3A+FR1,56,10,0
LWWW D3OS3A+FR3,37,26,0
LWWW D3OS3A+FR4,23,41,0
LWWW D3OS3A+FR6,-23,52,0
LWWW D3FD3E+FR2,-73,-18,0
LWWW D3SA3A+FR2,-137,-40,1
.long 0
#Adam
.long 0
#Lex
.ref L4AM4B,L3FH3A,L3CP3B
LWWW L4AM4B+FR3,64,-10,0
LWWW L3FH3A+FR1,46,14,0
LWWW L3FH3A+FR2,42,14,0 ;8
LWWW L3FH3A+FR3,31,35,0
LWWW L3FH3A+FR4,24,46,0
LWWW L3FH3A+FR5,-15,49,0
LWWW L3FH3A+FR6,-69,1,0
LWWW L3CP3B+FR1,-152,-39,1
.long 0
#rollout_tbl
.long hrt_tossed_anim,rzr_tossed_anim
.long und_tossed_anim
.long yok_tossed_anim
.long shn_tossed_anim,bam_tossed_anim
.long dnk_tossed_anim,0,lex_tossed_anim
.ref hrt_tossed_anim,rzr_tossed_anim
.ref und_tossed_anim
.ref yok_tossed_anim
.ref shn_tossed_anim,bam_tossed_anim
.ref lex_tossed_anim
;#rollout_tbl
; REFLONG und_tossed_anim
; REFLONG yok_tossed_anim
; REFLONG shn_tossed_anim,bam_tossed_anim
; REFLONG dnk_tossed_anim
; .long 0
; REFLONG lex_tossed_anim
;FIX!! Make throw out of ring if close to ropes
#*****************************************************************************
*
* FLIP/FALL FROM HIPTOSS
SUBR dnk_tossed_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_SETSPEED,100h
WL ANI_CODE,ckzpos
.word ANI_SETPLYRMODE,MODE_ONGROUND
.word ANI_DEBRIS,100,1,0,8,0 ;%chance, tbl index, x,y,z off
.word ANI_GETUP,STAY_TIME
WL ANI_CODE,HIT_THE_MAT
WLW ANI_SET_XVEL,20000h,AM_HIT_REL
WL ANI_SET_YVEL,30000h
WL 4,D3SA3A+FR3
; WL ANI_SET_YVEL,30000h
; WL 3,D3SA3A+FR3
WL 4,D3SA3A+FR4
WL 4,D3SA3A+FR5
WL 4,D3SA3A+FR7
WL 4,D3SA3A+FR8
WL 1,D3SA3A+FR9
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
.word ANI_ZEROVELS
; WL 3,D3SA3A+FR3
; WL 3,D3SA3A+FR4
; WL 3,D3SA3A+FR5
; WL 3,D3SA3A+FR7
; WL 3,D3SA3A+FR8
WL 3,D3SA3A+FR9
.word ANI_WAITROLL
WL ANI_CHANGEANIM,dnk_faceup_getup_anim
;FIX!! Make throw out of ring if close to ropes
#*****************************************************************************
*
* FLIP/FALL FROM BAM BAM DUCK TOSS
SUBR dnk_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,D3OS3A+FR6
.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 3,D3FD3E+FR2
.word ANI_XFLIP
.word ANI_OFFSET,20,0,0 ;x,y,z
WL 3,D3SA3A+FR9
WLW ANI_SET_XVEL,20000h,AM_HIT_REL
WL ANI_SET_YVEL,50000h
WL 3,D3SA3A+FR3
WL 3,D3SA3A+FR4
WL 3,D3SA3A+FR5
WL 3,D3SA3A+FR7
WL 3,D3SA3A+FR8
WL 3,D3SA3A+FR9
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
.word ANI_ZEROVELS
WL 3,D3SA3A+FR9
#done
.word ANI_WAITROLL
WL ANI_CHANGEANIM,dnk_faceup_getup_anim
#************
*
* #4 PUSH
SUBR dnk_4_push_anim
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
WL ANI_SETFLAG,M_PUSH
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
.word ANI_STARTATTACK,AT_PUSH,9
WL 3,D4PS3A+FR1
WL 3,D4PS3A+FR2
WL 3,D4PS3A+FR3
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ATTACK_ON, AMODE_PUSH,37,88,63,9 ;mode,x,y,w,h
WL 3,D4PS3A+FR4
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,40h,-70000h,#no_hit ;range,vel,addr
WL 15,D4PS3A+FR4
#no_hit
WL 3,D4PS3A+FR4
WL ANI_IFSTATUS,#hit
;If missed on push, hold a little longer
WL 5,D4PS3A+FR4
#hit
WL 3,D4PS3A+FR5
WL 3,D4PS3A+FR6
WL 3,D4PS3A+FR7
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
******************************************************************************
*
* #2 RUNNING BOUNCE OFF OF OPPONENT
SUBR dnk_2_bncoff_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETSPEED,100h
.word ANI_FRICTION,3000h
WL 3,D2AH2A+FR1
WL 15,D2AH2A+FR2
WL 4,D2AH2A+FR3
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* #4 RUNNING BOUNCE OFF OF OPPONENT
SUBR dnk_4_bncoff_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETSPEED,100h
.word ANI_FRICTION,3000h
WL 3,D3AH3B+FR1
WL 3,D3AH3B+FR2
WL 14,D3AH3B+FR3
WL 2,D3AH3B+FR5
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* #4 RUNNING BOUNCE OFF OF OPPONENT
;Bounce off but stay dizzy!
SUBR dnk_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 3,D3AH3B+FR1
WL 3,D3AH3B+FR2
WL 14,D3AH3B+FR3
WL 2,D3AH3B+FR5
; .word ANI_SETPLYRMODE,MODE_DIZZY
WL ANI_CHANGEANIM,dnk_dizzy_anim
******************************************************************************
*
* #4 LOSE BALANCE
SUBR dnk_4_losebal_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_FRICTION,3000h
.word ANI_SETSPEED,100h
WLW ANI_SET_XVEL,-60000h,AM_HIT_REL
.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,D4LB4A+FR2
WL 3,D4LB4A+FR3
WL 3,D4LB4A+FR4
WL ANI_CODE,DO_DOINK_PUSH
WL 3,D4LB4A+FR5
WL 3,D4LB4B+FR1
WL 3,D4LB4B+FR2
WL 3,D4LB4B+FR3
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
SUBR dnk_4_losebal_dizzy_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP
.word ANI_FRICTION,3000h
.word ANI_SETSPEED,100h
.word ANI_SETPLYRMODE,MODE_DIZZY
WLW ANI_SET_XVEL,-50000h,AM_HIT_REL
WL 3,D4LB4A+FR2
WL 3,D4LB4A+FR3
WL 3,D4LB4A+FR4
WL 3,D4LB4A+FR5
WL 3,D4LB4B+FR1
WL 3,D4LB4B+FR2
WL 3,D4LB4B+FR3
; .word ANI_SETPLYRMODE,MODE_DIZZY
WL ANI_CHANGEANIM,dnk_dizzy_anim
#*****************************************************************************
*
* #2 BIG BOOT
*
SUBR dnk_2_bigboot_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_BIGBOOT,9
WL 3,D3SK3X+FR1
WL 3,D3SK3X+FR2
WL 3,D3SK3X+FR3
WL ANI_CODE,#clrcnt
.word ANI_ATTACK_ON, AMODE_BIGBOOT,57,66,32,46 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,15,D3SK3X+FR4 ;2
#lp0
.word ANI_STARTATTACK,AT_BIGBOOT,5
WL 2,D3SK3X+FR4
WL ANI_CODE,#holdup
WL ANI_IFSTATUS,#lp0
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_4,2,2
WL ANI_IFNOTSTATUS,#missed1
.word ANI_DRAW_NAME,27
#missed1
WL 3,D3SK3X+FR5
WL 3,D3SK3X+FR6
WL 3,D3SK3X+FR7
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
* #4 BIG BOOT
SUBR dnk_4_bigboot_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_BIGBOOT,9
WL 3,D3SK3X+FR1
WL 3,D3SK3X+FR2
WL 3,D3SK3X+FR3
WL ANI_CODE,#clrcnt
.word ANI_ATTACK_ON, AMODE_BIGBOOT,34,78,46,25 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,15,D3SK3X+FR4 ;2
#lp
WL 2,D3SK3X+FR4
WL ANI_CODE,#holdup
WL ANI_IFSTATUS,#lp
; .word ANI_WAITRELEASE,PLAYER_KICK_BIT
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_4,2,2
WL ANI_IFNOTSTATUS,#missed2
.word ANI_DRAW_NAME,27
#missed2
WL 3,D3SK3X+FR5
WL 3,D3SK3X+FR6
WL 3,D3SK3X+FR7
WL 3,D3SK3X+FR8
.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
#*****************************************************************************
*
* DIZZY
SUBR dnk_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 6,D4SW4C+FR1
WL 6,D4SW4C+FR2
WL 6,D4SW4C+FR3
WL 6,D4SW4C+FR4
WL 6,D4SW4C+FR5
WL 6,D4SW4C+FR6
WL 6,D4SW4C+FR5
WL 6,D4SW4C+FR4
WL 6,D4SW4C+FR3
WL 6,D4SW4C+FR2
WL ANI_GOTO,#loop
#****************************************************************************
*
* PIN OPPONENT AND RAISE ARM IN VICTORY
;Need to have this guy walk toward fallen opponent so he
;can get closer!
;This pin must be started only when opponent is on the ground!
SUBR dnk_2_pin_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
;Rotate!
WL 3,D1TT5Z+FR2
WL 3,D1TT5Z+FR3
SUBR dnk_4_pin_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 25,999,80h,50h,90000h,TGT_CHEST|TGT_GROUND,0,57,-15
WL ANI_CODE,hit_nearest
WL 3,D4PN5A+FR1
WL 3,D4PN5A+FR2
.word ANI_OFFSET,0,57,0 ;x,y,z
WL 21,D4PN5A+FR3 ;19
.word ANI_ZEROVELS
WLW ANI_ATTCHIMAGE,D4PN5L+FR4,10 ;image, zoff (priority)
WL 3,D4PN5A+FR4
WL ANI_CODE,grnd_hit
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKEALL,2
WL ANI_CODE,DO_CROWD_CHEER
.word ANI_BOUNCE,4
WLW ANI_ATTCHIMAGE,D4PN5L+FR5,10 ;image, zoff (priority)
WL 4,D4PN5A+FR5
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
WL 4,D4PN5A+FR5
WL ANI_CODE,win_announce
WLW ANI_ATTCHIMAGE,0,0 ;Turn it off
WL 40,D4PN5A+FR6
.word ANI_LOOP
.word ANI_DETACH
;Do another ground hit on opponent
WL ANI_CODE,grnd_hit
WL ANI_SET_YVEL,42000h
WLW ANI_SET_ZVEL,22000h,AM_ABS
WL 4,D5GD4A+FR1
WL 4,D5GD4A+FR2
.word ANI_OFFSET,-10,0,0 ;x,y,z
WL 6,D3GU4A+FR7
WL 5,D3GU4A+FR8
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 5,D3GU4A+FR9
; WL 8+10,D5WN5B+FR1
WL 8-2,D5WN5B+FR2
WL 8-2,D5WN5B+FR3
WL 8-2,D5WN5B+FR4
WL 8-2,D5WN5B+FR5
#loop WL 6,D5WN5Z+FR1
WL 6,D5WN5Z+FR2
WL 6,D5WN5Z+FR3
WL 6,D5WN5B+FR5
; WL 6,D5WN5Z+FR4
WL ANI_GOTO,#loop
******************************************************************************
* RAISE ARM IN VICTORY FROM A STANCE
SUBR dnk_2_raise_arm_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WL ANI_CODE,DO_CROWD_CHEER
WL ANI_CODE,win_announce
WL 3,D1TT5Z+FR2
WL 3,D1TT5Z+FR3
WL ANI_GOTO,#cont
SUBR dnk_4_raise_arm_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WL ANI_CODE,DO_CROWD_CHEER
WL ANI_CODE,win_announce
#cont WL 6,D5WN5B+FR2
WL 6,D5WN5B+FR3
WL 6,D5WN5B+FR4
WL 6,D5WN5B+FR5
#loop2 WL 6,D5WN5Z+FR1
WL 6,D5WN5Z+FR2
WL 6,D5WN5Z+FR3
WL 6,D5WN5B+FR5
WL ANI_CODE,check_raisearm_bit
WL ANI_IFSTATUS,#wakeup
WL ANI_GOTO,#loop2
#wakeup ;pinned guy did a buckoff - snap out of it.
.word ANI_SET_RPTCOUNT,-10 ;set count to rnd from 0 to 10
#loop3 WL 6,D5WN5Z+FR1
WL 6,D5WN5Z+FR2
WL 6,D5WN5Z+FR3
WL 6,D5WN5B+FR5
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,#loop3
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_FACEDOWN
.word ANI_END
SUBR win_announce
PUSH a10
move a13,a10
CREATE ANNC_PID,announce_rnd_winner
.if DEBUG
move a13,*a0(PDATA),L ;#CREATOR (pdata)
movi $,a14
move a14,*a0(PDATA+20h),L ;#ORIGIN
.endif
CALLA KILL_PIN_HIM
PULL a10
rets
***********************
* FOR USE ONLY IN PINS!
SUBR grnd_hit
;use CLOSEST instead of WHOIHIT, since you don't actually attack
; during the pins.
;Un! DO use WHOIHIT, as this is set in all the pin_anims before this
; function is called.
PUSH a13
move *a13(WHOIHIT),a13,L
; move *a13(CLOSEST_NUM),a13
; X32 a13
; addi process_ptrs,a13
; move *a13,a13,L
move *a13(WRESTLERNUM),a0
move a0,a1
sll 5,a0
addi #hit_t,a0
move *a0,a0,L
calla change_anim1a
PULL a13
;align on target's z, unless we're taker
move *a13(WRESTLERNUM),a0
subk 2,a0
jrz #z
move *a13(WHOIHIT),a0,L
;set pinner Z to victim Z+1, then set victim's Z to
move *a0(OBJ_ZPOS),a14,L
addi [1,0],a14
move a14,*a13(OBJ_ZPOS),L
subi [2,0],a14
move a14,*a0(OBJ_ZPOS),L
#z rets
#hit_t
.long hrt_hitonground_anim ;0 Bret Hart
.long rzr_hitonground_anim ;1 Razor Ramon
.long und_hitonground_anim ;2 Undertaker
.long yok_hitonground_anim ;3 Yokozuna
.long shn_hitonground_anim ;4 Shawn Michaels
.long bam_hitonground_anim ;5 Bam Bam
.long dnk_hitonground_anim ;6 Doink
.long 0 ;7 spare
.long lex_hitonground_anim ;8 Lex Luger
#*****************************************************************************
*
* GET BUCKED OFF A PINNED OPPONENT
SUBR dnk_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,D4PN5A+FR6
WL 1,D4PN5A+FR3
WL ANI_CODE,set_buckoff_vels
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 4,D4PN5A+FR4
WL 10,D4PN5A+FR5
;now stand up
WL 3,D5GD4A+FR1
WL 3,D5GD4A+FR2
WL 3,D3GU4A+FR7
WL 3,D3GU4A+FR8
WL 3,D3GU4A+FR9
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
**********
* Jump toward the center.
SUBR set_buckoff_vels
movi 20000h,a0
move *a13(OBJ_XPOSINT),a14
cmpi RING_X_CENTER,a14
jrle #xok
neg a0
#xok move a0,*a13(OBJ_XVEL),L
movi 40000h,a0
move *a13(OBJ_ZPOSINT),a14
cmpi RING_Z_CENTER,a14
jrle #zok
neg a0
#zok move a0,*a13(OBJ_ZVEL),L
movi 50000h,a0
move a0,*a13(OBJ_YVEL),L
rets
#*****************************************************************************
*
* #3 CLIMB THROUGH ROPES
SUBR dnk_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
WLW ANI_SET_XVEL,3000h,AM_FACE_REL
.word ANI_OFFSET,13,0,0
WL 3,D3CR3D+FR1
.word ANI_BENDROPE,0
WL 2,D3CR3D+FR2
WL 3,D3CR3D+FR3
WL 2,D3CR3D+FR4
WL 3,D3CR3D+FR5
.word ANI_BENDROPE,2
.word ANI_ROPE_Z,R_TOP,RZ_HIGH
.word ANI_ROPE_Z,R_MIDDLE,RZ_HIGH
WL 2,D3CR3D+FR6
.word ANI_BENDROPE,2
WL 3,D3CR3D+FR7
WL 2,D3CR3D+FR8
.word ANI_BENDROPE,3
.word ANI_ROPE_Z,R_BOTTOM,RZ_HIGH
WL 3,D3CR3D+FR9
WL 2,D3CR3D+FR10
.word ANI_ZEROVELS
.word ANI_BENDROPE,-1
.word ANI_OFFSET,43,-3,0
WL 3,D3CR3D+FR11
;now jump off...
WL 3,D4JD4A+FR1 ;D4FM4A+FR1
WL 3,D4JD4A+FR2
.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,D4JD4A+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 2,D4JD4A+FR6
WL 2,D4JD4A+FR7
WL 4,D4JD4A+FR8
WL 2,D4JD4A+FR10
WL 2,D4JD4A+FR11
.word ANI_FACEDOWN
.word ANI_CLEAR_CLIMB
.word ANI_SETMODE,MODE_NOCONFINE
.word ANI_END
#*****************************************************************************
SUBR dnk_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,D4JD4A+FR1
WL 3,D4JD4A+FR2
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 3,D4JD4A+FR4
.word ANI_WAITHITGND
WWL ANI_SETLONG,OBJ_GRAVITY,GRAVITY
.word ANI_ZEROVELS
.word ANI_ROPE_Z,R_TOP,RZ_HIGH
.word ANI_ROPE_Z,R_MIDDLE,RZ_HIGH
.word ANI_ROPE_Z,R_BOTTOM,RZ_HIGH
WL 3,D4JD4A+FR6
WL 2,D4JD4A+FR7
WL 2,D4JD4A+FR11
WLW ANI_SET_XVEL,3000h,AM_FACE_REL
;climb through
WL 3,D3CR3D+FR1
.word ANI_BENDROPE,0
WL 2,D3CR3D+FR2
WL 3,D3CR3D+FR3
.word ANI_ROPE_Z,R_MIDDLE,RZ_NORM
.word ANI_ROPE_Z,R_BOTTOM,RZ_NORM
WL 2,D3CR3D+FR4
WL 3,D3CR3D+FR5
.word ANI_BENDROPE,2
WL 2,D3CR3D+FR6
.word ANI_BENDROPE,2
WL 3,D3CR3D+FR7
WL 2,D3CR3D+FR8
.word ANI_BENDROPE,3
.word ANI_ROPE_Z,R_BOTTOM,RZ_HIGH
WL 3,D3CR3D+FR9
WL 2,D3CR3D+FR10
.word ANI_BENDROPE,-1
.word ANI_OFFSET,43,-3,0
WL 3,D3CR3D+FR11
.word ANI_ZEROVELS
.word ANI_OFFSET,-5,0,0
; 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-50,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+50,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 SET_DIR_FACE
;this is now used for both climbins and climbouts. If we're outside,
; use an identical version, but with the a0's switched.
move *a13(INRING),a14
jrz #method2
MOVI 10,A0
move *a13(OBJ_XPOSINT),a14
cmpi RING_X_CENTER,a14
jrlt #onlft1
MOVI 6,A0
#onlft1
MOVE A0,*A13(NEW_FACING_DIR)
RETS
#method2
MOVI 6,A0
move *a13(OBJ_XPOSINT),a14
cmpi RING_X_CENTER,a14
jrlt #onlft2
MOVI 10,A0
#onlft2
MOVE A0,*A13(NEW_FACING_DIR)
RETS
#*****************************************************************************
SUBR dnk_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 ANI_IFSTATUS,#dir4
;Facing #2, spin first!
WL 3,D1TT5Z+FR2
WL 3,D1TT5Z+FR3
#dir4
WL 3,D3GU4A+FR9
WL 3,D3GU4A+FR8
WL 3,D3GU4A+FR7
WL 3,D3GU4A+FR6
WL 3,D3GU4A+FR5
WL 3,D3GU4A+FR4
WL 3,D3GU4A+FR2
;roll over once
WLW ANI_SET_ZVEL,70000h,AM_ABS
WL 3,D3SA3A+FR9
WL 3,D3RL1B+FR2
WL 3,D3RL1B+FR3
WL 3,D3RL1B+FR4
WL 3,D3RL1B+FR5
WL 3,D3RL1B+FR6
WL 3,D3RL1B+FR7
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_OVERLAP|MODE_NOSHADOW|MODE_NOCOLLIS
.word ANI_SET_IDIOT
;climb through
WL 3,D2CR1A+FR3
WL 3,D2CR1A+FR2
WL 3,D2CR1A+FR1
.word ANI_OFFSET,0,-37h,0 ;x,y,z
WL 1,D2ST2B+FR3
.word ANI_CLEAR_CLIMB
.word ANI_FACEUP
.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 dnk_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_OFFSET,0,37h,-60
WL 3,D2CR1A+FR1
WL 3,D2CR1A+FR2
WL 3,D2CR1A+FR3
;roll
WLW ANI_SET_ZVEL,-70000h,AM_ABS
.word ANI_FRICTION,3000h
WL 3,D3RL1B+FR7
WL 3,D3RL1B+FR6
WL 3,D3RL1B+FR5
WL 3,D3RL1B+FR4
WL 3,D3RL1B+FR3
WL 3,D3RL1B+FR2
.word ANI_ZEROVELS
.word ANI_GRAVITY_ON
;get up
WL 3,D3GU4A+FR2
WL 3,D3GU4A+FR3
WL 3,D3GU4A+FR4
WL 3,D3GU4A+FR5
WL 3,D3GU4A+FR6
WL 3,D3GU4A+FR7
WL 3,D3GU4A+FR8
WL 3,D3GU4A+FR9
; WL ANI_CODE,clr_climb
.word ANI_CLEAR_CLIMB
.word ANI_FACEDOWN
.word ANI_ZEROVELS
.word ANI_SETMODE,MODE_NOCONFINE
.word ANI_END
#*****************************************************************************
SUBR dnk_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,D2GD2A+FR9
WL 3,D2GD2A+FR7
WL 3,D2GD2A+FR6
WL 3,D2GD2A+FR4
WL ANI_CODE,#set_zvel3
WL ANI_GOTO,#cont
#dir4
WL 3,D3GU4A+FR9
WL 3,D3GU4A+FR8
WL 3,D3GU4A+FR7
WL 3,D3GU4A+FR6
WL 3,D3GU4A+FR5
WL 3,D3GU4A+FR4
WL 3,D3GU4A+FR3
WL 3,D3GU4A+FR2
;roll over once
WL ANI_CODE,#set_zvel2
WL 3,D3RL1B+FR11
#cont
WL 3,D3RL1B+FR10
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_OVERLAP|MODE_NOSHADOW|MODE_NOCOLLIS
WL 3,D3RL1B+FR9
WL 3,D3RL1B+FR8
WL 3,D3RL1B+FR7
.word ANI_SET_IDIOT
;climb through
.word ANI_OFFSET,0,-61,0
.word ANI_ZEROVELS
WL 3,D2CR1A+FR8
WL 3,D2CR1A+FR9
WL 3,D2CR1A+FR10
WL 3,D2CR1A+FR11
.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 -6c000h,a0
move a0,*a13(OBJ_ZVEL),L
rets
#set_zvel3
movi -7c000h,a0
move a0,*a13(OBJ_ZVEL),L
rets
#*****************************************************************************
;Zombies use this to roll through the top without standing back up.
SUBR dnk_rollthru_top_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP|MODE_NOSHADOW|MODE_NOCOLLIS
;roll over once
WLW ANI_SET_ZVEL,-6C000h,AM_ABS
WL 3,D3RL1B+FR11
WL 3,D3RL1B+FR10
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE|MODE_OVERLAP|MODE_NOSHADOW|MODE_NOCOLLIS
WL 3,D3RL1B+FR9
WL 3,D3RL1B+FR8
WL 3,D3RL1B+FR7
;climb through
.word ANI_OFFSET,0,-61,0
.word ANI_ZEROVELS
WL 3,D2CR1A+FR8
WL 3,D2CR1A+FR9
WL 3,D2CR1A+FR10
WL 3,D2CR1A+FR11
.word ANI_ZERO_XZVELS
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
SUBR dnk_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,D2CR1A+FR11
WL 3,D2CR1A+FR10
WL 3,D2CR1A+FR9
WL 3,D2CR1A+FR8
.word ANI_OFFSET,0,61,0
;roll over
WL ANI_CODE,#set_zvel2
WL 3,D3RL1B+FR8
WL 3,D3RL1B+FR9
WL 3,D3RL1B+FR10
WL 3,D3RL1B+FR11
WL 3,D3SA3A+FR9
.word ANI_ZEROVELS
;get up
WL 3,D3GU4A+FR2
WL 3,D3GU4A+FR3
WL 3,D3GU4A+FR4
WL 3,D3GU4A+FR5
WL 3,D3GU4A+FR6
WL 3,D3GU4A+FR7
WL 3,D3GU4A+FR8
WL 3,D3GU4A+FR9
; WL ANI_CODE,clr_climb
.word ANI_CLEAR_CLIMB
; .word ANI_OFFSET,0,0,100
.word ANI_SETMODE,MODE_NOCONFINE
.word ANI_END
#set_zvel2
movi 42000h,a0
move a0,*a13(OBJ_ZVEL),L
rets
#*****************************************************************************
SUBR dnk_roll_frames
.word 7 ;speed
.long 50000h ;z velocity
.long 10000h*10/255 ;inv multiply (0-255 -> 0-10)
.long D3SA3A+FR9 ;0
.long D3RL1B+FR2 ;1
.long D3RL1B+FR3 ;2
.long D3RL1B+FR4 ;3
.long D3RL1B+FR5 ;4
.long D3RL1B+FR6 ;5
.long D3RL1B+FR7 ;6
.long D3RL1B+FR8 ;7
.long D3RL1B+FR9 ;8
.long D3RL1B+FR10 ;9
.long D3RL1B+FR11 ;10
.long 0,0,0,0,0,0
******************************************************************************
.end