wwf-wrestlemania/DNKSEQ2.ASM

5815 lines
126 KiB
NASM
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters!

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

**************************************************************
*
* Software: Jamie Rivett
* Initiated: 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