wwf-wrestlemania/BACKUP/DNKSEQ2.ASM

5221 lines
108 KiB
NASM
Raw 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.

*************************
*
* WE NEED TO INSERT THIS AT THE BEGINNING
*
* OF EACH 'ATTACK' SEQUENCE
*
* EQUATES ARE DEFINED IN DAMAGE.EQU
*
*
* .word ANI_STARTATTACK,AT_PUNCH,8 ;type, #ticks 'til attack on
*
*
*
*************************
**************************************************************
*
* 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"
******************************************************************************
* EXTERNAL REFERENCES
.REF DO_CROWD_CHEER
.REF DO_SNAP_MESS
.def SET_DIR_FACE
.REF HIT_THE_MAT,SMALL_BOUNCE
.REF CALL_MISSES,CALL_SETUP,CALL_SPECIAL_MOVE
.ref wres_get_but_val_cur
.ref am_I_dizzy
.ref am_I_dead
.ref start_run_anim
.ref wres_get_stick_val_cur
.ref set_target_offsets
.ref get_opp_process
.ref get_leap
.ref shake_all_ropes
.ref rope_command
.ref react_debris
.ref get_but_val_cur
.ref RNDPER
.ref clear_damage_log
.ref check_dizzy
.ref tally_damage
.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
.ref DO_COMBO_MESS
******************************************************************************
* 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
WL 3,D2PU3A+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_PUNCH,5 ;type, #ticks 'til attack on
WL 2,D2PU3A+FR2
WL 2,D2PU3A+FR3
WL 1,D2PU3A+FR4
.ref doink_pie
; 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,-30000h,#no_hit
WL ANI_SET_YVEL,30000h
WL 3,D2PU3A+FR5
#no_hit
WL 1,D2PU3A+FR5
WL 3,D2PU3A+FR6
WL 4,D2PU3A+FR7
WL 4,D2PU3A+FR8
.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
WL 3,D4PU3C+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_PUNCH,5 ;type, #ticks 'til attack on
WL 2,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,-30000h,#no_hit2
WL ANI_SET_YVEL,30000h
WL 3,D4PU3C+FR5
#no_hit2
WL 1,D4PU3C+FR5
WL 3,D4PU3C+FR6
WL 4,D4PU3C+FR7
WL 4,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_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
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
WWL ANI_SLIDE_BACK,30h,-40000h,#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 15,D2RG3B+FR11
#missed
WL 5,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_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,#missed
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
WWL ANI_SLIDE_BACK,30h,-40000h,#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 15,D4RG3A+FR12
#missed
WL 5,D4RG3A+FR12
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
WL 2,D2BC3A+FR1
WL 1,D2BC3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_HDBUTT,3
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
WWL ANI_SLIDE_BACK,30h,-48000h,#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
WL 2,D4BC3A+FR1
WL 1,D4BC3A+FR2
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_HDBUTT,3
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
WWL ANI_SLIDE_BACK,30h,-48000h,#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
#*****************************************************************************
* #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_CLR_BUTCOUNT
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_HDBUTT,21,79,27,24 ;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_STATUS
.word ANI_ATTACK_ON, AMODE_HDBUTT,21,79,27,24 ;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_STATUS
.word ANI_ATTACK_ON, AMODE_HDBUTT,31,79,27,24 ;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,KICKB_COUNT,1,#NEXT_CHECK
.WORD ANI_INC_COMBO
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL ANI_CHANGEANIM,dnk_4_box_anim
#NEXT_CHECK
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,1,#NEXT_CHECK_2
WL ANI_CHANGEANIM,dnk_4_combo_hiptoss_anim
#NEXT_CHECK_2
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#NEXT_CHECK_3
WL ANI_CHANGEANIM,dnk_4_combo_earslap_anim
#NEXT_CHECK_3
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#miss
.WORD ANI_INC_COMBO
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL ANI_CHANGEANIM,dnk_4_knee_fall_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
WL 2,D2KM3B+FR1 ;4
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,-40000h,#no_hit
WL ANI_SET_YVEL,30000h
WL 2,D2KM3B+FR4
#no_hit
WL ANI_IFNOTSTATUS,#nopause
WL 2,D2KM3B+FR4
#nopause
WL 3,D2KM3B+FR4
WL 3,D2KM3B+FR5
WL 3,D2KM3B+FR6
WL 3,D2KM3B+FR7
WL 3,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
WL 2,D4KM3A+FR2
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,-40000h,#no_hit2
WL ANI_SET_YVEL,30000h
WL 2,D4KM3A+FR5
#no_hit2
WL ANI_IFNOTSTATUS,#nopause2
WL 2,D4KM3A+FR5
#nopause2
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
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_INC_COMBO
; .word ANI_STARTATTACK,AT_KICK,7
WL 2,D4KM3A+FR2
WL 1,D4KM3A+FR3
WL 2,D4KM3A+FR4
WL 2,D4KM3A+FR5
.word ANI_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_KICK,20,62,68,16 ;mode,x,y,w,h
WL 1,D4KM3A+FR5
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#miss
.word ANI_SET_ATTACH
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_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_KICK,20,62,68,16 ;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_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_KICK,20,62,68,16 ;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,KICKB_COUNT,1,#NEXT_CHECK
WL ANI_CHANGEANIM,dnk_4_combo_spin_kick_anim
#NEXT_CHECK
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,1,#NEXT_CHECK_2
.WORD ANI_INC_COMBO
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL ANI_CHANGEANIM,dnk_4_box_anim
#NEXT_CHECK_2
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#miss
.WORD ANI_INC_COMBO
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL ANI_CHANGEANIM,dnk_4_knee_fall_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_STARTATTACK,AT_SPINKIK,15
WL 3,D2KB3A+FR9
WL 1,D2KB3A+FR9
; 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
WL 4,D2KB3A+FR4
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-58000h,#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 4,D2KB3A+FR3
WL 4,D2KB3A+FR2
.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_STARTATTACK,AT_SPINKIK,15
WL 3,D4KB3A+FR9
WL 1,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
WL 4,D4KB3A+FR5
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,30h,-58000h,#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 4,D4KB3A+FR4
WL 4,D4KB3A+FR3
WL 4,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_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_SPINKICK,59,87,21,20 ;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_ABS
.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_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_SPINKICK,59,82,26,13 ;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
; 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_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_SPINKICK,59,87,21,20 ;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_CLR_STATUS
.word ANI_ATTACK_ON, AMODE_SPINKICK,59,82,26,13 ;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,KICKB_COUNT,1,#NEXT_CHECK
.WORD ANI_INC_COMBO
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL ANI_CHANGEANIM,dnk_4_box_anim
#NEXT_CHECK
WWWL ANI_IF_BUTCOUNT_LT,SKICKB_COUNT,1,#NEXT_CHECK_2
WL ANI_CHANGEANIM,dnk_4_combo_hiptoss_anim
#NEXT_CHECK_2
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#NEXT_CHECK_3
WL ANI_CHANGEANIM,dnk_4_combo_earslap_anim
#NEXT_CHECK_3
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#miss_combo_spin4
.WORD ANI_INC_COMBO
WL ANI_CODE,DO_COMBO_MESS
.WORD ANI_CLEAR_COMBO
WL ANI_CHANGEANIM,dnk_4_knee_fall_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
WL 3,D2KM3D+FR1 ;D2NM3A+FR3
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_KNEE,22
WL 1,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
WWL ANI_SLIDE_BACK,30h,-50000h,#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 12h,D2NM3A+FR4
.word ANI_ZERO_XZVELS
; WL 14,D2NM3A+FR4 ;8
; WL 1,D2NM3A+FR4 ;8
#cont
WL 4,D2NM3A+FR5
WL 4,D2NM3A+FR6
WL 4,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_STARTATTACK,AT_BIGKNEE,19
WL 4,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!
.word ANI_ATTACK_ON, AMODE_BIGKNEE,-5,41,70,36 ;mode,x,y,w,h
WL 3,D4NM3B+FR4
.word ANI_ATTACK_OFF
WLW ANI_SET_ZVEL,-20000h,AM_ABS
WWL ANI_SLIDE_BACK,30h,-50000h,#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 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_STARTATTACK,AT_KNEE,25
WL 3,D4NM3B+FR3
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL 1,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
WWL ANI_SLIDE_BACK,30h,-50000h,#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 12h,D4NM3B+FR4
.word ANI_ZERO_XZVELS
WL 14,D4NM3B+FR4 ;8
.word ANI_WAITHITGND
.word ANI_ZEROVELS
#cont2
WL 4,D4NM3B+FR5
WL 4,D4NM3B+FR6
WL 4,D4NM3B+FR7
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#*****************************************************************************
*
* #3 FLYING KICK
#yoff1 equ 40
SUBR dnk_flying_kick_anim
.word ANI_SETMODE,MODE_UNINT+MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETSPEED,100h
WL 3,D3DC3C+FR1
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
WL ANI_CODE,get_leap
WL ANI_IFSTATUS,#no_xvel
;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,150,65,90000h,TGT_HEAD,30,100,0
.word ANI_STARTATTACK,AT_LEAPING,21
WL ANI_GOTO,#cont
#no_xvel
.word ANI_ZERO_XZVELS
WL ANI_SET_YVEL,64000h
#cont
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
.WORD ANI_ADD_MOVE,MOVE_C_3,3,2
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 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 6,D2GD2A+FR4
WL 6,D2GD2A+FR6
WL 4,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 4,D2GD2A+FR10
.word ANI_SAFE_TIME,15
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#get_leap
move *a13(ANIMODE),a1
andni MODE_STATUS,a1
move a1,*a13(ANIMODE)
;Is wrestler backing away from opponent?
move *a13(MOVE_DIR),a1
move *a13(NEW_FACING_DIR),a0 ;Current facing dir (9,10,6,5 only)
sll 5,a0
addi #mv_tbl,a0
move *a0,a0,L
btst a0,a1
jrnz #novel
calla get_opp_process ;closest opponent process
move *a0(MOVE_DIR),a1
move *a0(NEW_FACING_DIR),a0 ;Current facing dir (9,10,6,5 only)
sll 5,a0
addi #mv_tbl,a0
move *a0,a0,L
btst a0,a1
jrnz #novel
;Will lunge toward opponent
rets
#mv_tbl .long 0,0,0,0,0,MOVE_RIGHT_BIT,MOVE_RIGHT_BIT
.long 0,0,MOVE_LEFT_BIT,MOVE_LEFT_BIT
#novel
move *a13(ANIMODE),a0
ori MODE_STATUS,a0
move a0,*a13(ANIMODE)
rets
#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
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
WL 1,D4ST4E+FR3
.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
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,-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
.word ANI_END
;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
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
WL 1,D4ST4E+FR3
.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,400,0,6,72,0 ;%chance, tbl index, x,y,z off
WL 4,D3AM3A+FR1
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
.word ANI_END
;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
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
.word ANI_END
#nodead
.ref dnk_3_head_held_anim
WL ANI_CHANGEANIM,dnk_3_head_held_anim
.word ANI_END
#*****************************************************************************
*
* FALL BACK
SUBR dnk_fall_back_anim
.word ANI_SETMODE,MODE_UNINT+MODE_NOAUTOFLIP+MODE_OVERLAP|MODE_NOCOLLIS
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
WL ANI_SET_YVEL,70000h
WL ANI_CODE,ckzpos
WWL ANI_SETLONG,DEBRIS_X,[96,-09] ;Y,X of head
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
.word ANI_END
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
WL ANI_CODE,ckzpos
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,200,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
.word ANI_END
#*****************************************************************************
*
* FALL FROM TURNBUCKLE
SUBR dnk_fall_back_tbukl_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCONFINE
.word ANI_SETSPEED,100h
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,300,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
WL 2,D3UC3A+FR8
; .word ANI_BOUNCE,5
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
.word ANI_END
#*****************************************************************************
;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 3,D3GU4A+FR2
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
.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 6,D2GD2A+FR4
WL 6,D2GD2A+FR6
WL 4,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 4,D2GD2A+FR10
.word ANI_SAFE_TIME,30
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#*
.IF 0
;Check for push back on all face hits!
;If against ropes, do a push sequence from proper angle 2/4
trypush
rets
;We need to do something similar when wrestler is trapped up against
;the outside gates!
move *a13(INRING),a0
jrnz #nopush
move *a13(CLOSEST_XDIST),a0
cmpi 95,a0
jrgt #nopush
movi 3*TSEC,a0
calla tally_damage
cmpi 5,a0
jrlt #nopush
;Check to see if I'm against ropes
move *a13(OBJ_XPOSINT),a14
cmpi RING_X_CENTER,a14
jrlt #onlft
;On right side
movi vln_right_rope,a6
calla calc_line_x
move *a13(OBJ_XPOSINT),a1
sub a1,a0
abs a0
cmpi 90,a0
jrgt #nopush
move *a13(FACING_DIR),a1
btst MOVE_LEFT,a1
jrz #nopush
jruc #push
#onlft
movi vln_left_rope,a6
calla calc_line_x
move *a13(OBJ_XPOSINT),a1
sub a1,a0
abs a0
cmpi 90,a0
jrgt #nopush
move *a13(FACING_DIR),a1
btst MOVE_RIGHT,a1
jrz #nopush
#push
;Cause wrestler to jump into proper push sequence
move *a13(ANIMODE),a1
ori MODE_STATUS,a1
move a1,*a13(ANIMODE)
movi 800,a0
calla RNDPER
jrhi #out
calla clear_damage_log
#out
rets
.ENDIF
SUBR set_move_dir
move *a13(FACING_DIR),a1
btst MOVE_UP_BIT,a1
jrz #nopush
move *a13(ANIMODE),a1
ori MODE_STATUS,a1
move a1,*a13(ANIMODE)
rets
#nopush
move *a13(ANIMODE),a1
andni MODE_STATUS,a1
move a1,*a13(ANIMODE)
rets
#*****************************************************************************
*
* #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_DEBRIS,150,3,-21,100,0 ;%chance, tbl index, x,y,z off
; WL ANI_CODE,#tryblood
WL 3,D3AH3B+FR1
WL 3,D3AH3B+FR2
WL 3,D3AH3B+FR3
WL 2,D3AH3B+FR5
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
;#tryblood
; move a13,a11
; CREATE0 react_bloodnguts_gen
; .ref 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_DEBRIS,150,3,-21,100,0 ;%chance, tbl index, x,y,z off
WL 3,D2AH2A+FR1
WL 4,D2AH2A+FR2
WL 4,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
WLW ANI_SET_XVEL,-28000h,AM_HIT_REL
WLW ANI_SET_ZVEL,-20000h,AM_ABS
WL ANI_SET_YVEL,40000h
WL 3,D3AH3B+FR1
.word ANI_DEBRIS,400,2,-23,102,0 ;%chance, tbl index, x,y,z off
WL 3,D3AH3B+FR2
.word ANI_WAITHITGND
WL 4,D3AH3B+FR3
.word ANI_ZEROVELS
WL 4,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
WL ANI_SET_YVEL,50000h
WL 4,D3AH3B+FR2
WL 4,D3AH3B+FR3
WL 6,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
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,300,2,-23,102,0 ;%chance, tbl index, x,y,z off
WL 4,D2AH2A+FR2
.word ANI_WAITHITGND
.word ANI_ZEROVELS
WL 4,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_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_FACEDOWN
.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
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 4,D3AE3B+FR6
WL 4,D3AE3B+FR7
WL 4,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
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
.word ANI_END
* 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_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
.word ANI_END
#*****************************************************************************
*
* #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,9
WL 3,D3RC3A+FR1
.word ANI_OFFSET,5,0,0 ;x,y,z
WL 3,D3RC3A+FR2
WL ANI_SET_YVEL,64000h
WLW ANI_SET_XVEL,60000h,AM_FACE_REL
.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
.WORD ANI_ADD_MOVE,MOVE_C_4,3,2
WL 3,D3RC3A+FR5
WL 3,D3RC3A+FR6
WL 3,D3RC3A+FR7
WL 6,D3RC3A+FR8
.word ANI_ATTACK_OFF
WL 3,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
; .word ANI_ZEROVELS
WL 15,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
.word ANI_END
#gothim
WL 3,D3RL1B+FR7
; WL 3,D3RL1B+FR8
WL 3,D3RL1B+FR9
; WL 3,D3RL1B+FR10
WL 3,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 3,D3GU4A+FR2
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,10
.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
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_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,0
.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
WL 3,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,72,48h,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
.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
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_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
; SUBR dnk_2_tlbowdrop_anim
;
;;Jump in air and land on opponent with fist. Always goes to chest.
;
; .word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
; .word ANI_ZEROVELS
; .word ANI_SETSPEED,100h
; WL 3,D2PJ2C+FR1
; WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
;
; ; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
; LEAPATOPP 26,999,72,48h,90000h,TGT_CHEST,-35,-22,-2
;
; WL 3,D2PJ2C+FR2
; .word ANI_OFFSET,0,20,0 ;x,y,z
; WL 18h,D2PJ2C+FR4
; .word ANI_WAITHITGND
; .word ANI_ZERO_XZVELS
; WL 3,D2PJ2C+FR6
; WL 1,D2PJ2C+FR10
;
; .word ANI_ATTACK_ON_Z, AMODE_LBOWDROP,18,1,10,21,34,40 ;mode,x,y,z,w,h,d
; WL 3,D2PJ2C+FR10
; .word ANI_ATTACK_OFF
;
; WL ANI_IFSTATUS,#gothimt2
; WL ANI_GOTO,#miss
;
;#gothimt2
;
;;Do SHAKER for Yokozuna only?
; .word ANI_SHAKER,18
;
; WL 4,D2PJ2C+FR10
; WL ANI_CODE,#get_off
; WL 4,D2PJ2C+FR12
;#miss
; WL 4,D2PJ2C+FR12
; WL 1,D2GD2A+FR9
; .word ANI_WAITHITGND
; .word ANI_ZERO_XZVELS
; WL 3,D2GD2A+FR9
;
; .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
WL 3,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,72,48h,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_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_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,0
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
; SUBR dnk_4_tlbowdrop_anim
;
; .word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
; .word ANI_SETSPEED,100h
;
; WL 3,D4PJ4A+FR2
; WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
; WL 3,D4PJ4A+FR3
;
; .word ANI_OFFSET,0,31h,0 ;x,y,z
;
; WL ANI_CODE,#set_target
;
; ; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
; LEAPATOPP 28,999,72,48h,90000h,TGT_USER,-3,-23,30
;
; WL ANI_CODE,#zero_x
;
; WL 3,D4PJ4A+FR4
; WL 3,D4PJ4A+FR6
; WL 10+12,D4PJ4A+FR7
; WL ANI_GOTO,#land
;
;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_NOCOLLIS|MODE_NOGRAVITY
.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_GRAVITY_ON
.word ANI_SETPLYRMODE,MODE_INAIR2
.word ANI_OFFSET,0,31h,0 ;x,y,z
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 31,190,190,190,90000h,TGT_CHEST,-3,-3,50
.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
WL 3,D4PJ4A+FR4
WL 3,D4PJ4A+FR6
;Start confining wrestler
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCOLLIS|MODE_OVERLAP
WL 10,D4PJ4A+FR7
.word ANI_ATTACK_ON_Z, AMODE_BLBOWDROP,-6,22,16,25,27,30 ;mode,x,y,z,w,h,d
WL 20,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 1,D4PJ4A+FR10
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_9,3,1
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,CALL_MISSES
WL 25,D4PJ4A+FR10
.word ANI_WAITHITGND
WL ANI_CODE,HIT_THE_MAT
WL ANI_GOTO,#tag
#gothimb
.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,0
.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_CLR_BUTCOUNT
WL 3,D4HM4A+FR1
;This assumes this is triggered by punch button!
WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
.word ANI_STARTATTACK,AT_HAMMER1,10
WL 3,D4HM4A+FR2
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 7,190,90,50,90000h,TGT_GROIN,95,82,13h ;13
; LEAPATOPP 9,190,90,50,90000h,TGT_GROIN,50h,30h,23h ;13
.word ANI_SET_RPTCOUNT,4 ;5 times
; .word ANI_CLR_BUTCOUNT
WL 7,D4HM4A+FR3 ;16
.word ANI_WAITHITGND
.word ANI_ZEROVELS
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
.WORD ANI_ADD_MOVE,MOVE_C_2,3,1
WL ANI_IFNOTSTATUS,#tagmiss
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
;He got him, shake screen
.word ANI_DAMAGEOPP,D_HAMMER1 ;First hammer hit (+ table)
;Immobilize player for 30 ticks without meter on!
.word ANI_IMMOBILIZE,30
.word ANI_SHAKER,25
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
; .WORD ANI_ADD_MOVE,MOVE_C_2,3,1
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
#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_CLR_STATUS
.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_CLR_STATUS
.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,KICKB_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
WL 3,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 15,999,40h,50,90000h,TGT_USER,20,0,-30
WL 3,D3MP3A+FR2
WL 3,D3MP3A+FR3
WL 3,D3MP3A+FR4
;#cont
WL 3,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_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 5,D3MP3A+FR8
.word ANI_WAITHITGND
.word ANI_FACEUP
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
;;Turbo #2 stomp
; SUBR dnk_2_tstomp_anim
;
; .word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
; .word ANI_ZEROVELS
; .word ANI_SETSPEED,100h
;
; WL 3,D3MP3A+FR1
;
; WL ANI_CODE,#set_target
; ; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
; LEAPATOPP 1ah,999,60h,50h,90000h,TGT_USER,20,13,-30
;
; WL 3,D3MP3A+FR2
; WL 3,D3MP3A+FR3
; WL 10h,D3MP3A+FR4
; WL ANI_GOTO,#cont
* #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
WL 3,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 15,999,40h,50h,90000h,TGT_USER,32,0,30
WL 3,D4MP4D+FR2
WL 3,D4MP4D+FR3
WL 9,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_IFSTATUS,#gothim4
WL 4,D4MP4D+FR7
.word ANI_WAITHITGND
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#gothim4
WL ANI_CODE,#get_off4
WL 5,D4MP4D+FR7
.word ANI_WAITHITGND
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
;Turbo #4 stomp
; SUBR dnk_4_tstomp_anim
;
; .word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
; .word ANI_ZEROVELS
; .word ANI_SETSPEED,100h
;
; WL 3,D4MP4D+FR1
; WWL ANI_IFBUTTONS,PLAYER_PUNCH_VAL|PLAYER_KICK_VAL,start_run_anim
;
; WL ANI_CODE,#set_target
; ; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
; LEAPATOPP 30,999,40h,50h,90000h,TGT_USER,32,10,30
;
; WL 3,D4MP4D+FR2
; WL 3,D4MP4D+FR3
; WL 18h,D4MP4D+FR4
; WL ANI_GOTO,#cont4
;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_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_XFLIP ;make an ANI_FACEOUT and ANI_FACEIN
WL 4,D4JD4A+FR1
WL 4,D4JD4A+FR2
.word ANI_GRAVITY_ON
.word ANI_SETPLYRMODE,MODE_INAIR2
; 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_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 15,D4MP4D+FR4
;Start confining wrestler
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCOLLIS|MODE_OVERLAP
WL 1eh-15,D4MP4D+FR4
.word ANI_ATTACK_ON_Z, AMODE_BSTOMP,29,7,0,20,16,30 ;mode,x,y,z,w,h,d
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,3,1
WL ANI_IFSTATUS,#gothimb4
WL 3,D4MP4D+FR7
.word ANI_WAITHITGND
WL ANI_CODE,SMALL_BOUNCE
.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
; SUBR dnk_4_run_stomp_anim
;;Stomp fallen opponent from running mode
;
; .word ANI_SETPLYRMODE,MODE_NORMAL
; .word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
;; .word ANI_ZEROVELS
; .word ANI_SETSPEED,100h
;
; WL 3,D4MP4D+FR1
;
; WL ANI_CODE,get_leap
; WL ANI_IFSTATUS,#no_xvel3
;
;; WL ANI_CODE,#set_target
; ; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
; LEAPATOPP 30,999,0c0h,50h,90000h,TGT_GROIN,32,10,30
; WL ANI_GOTO,#cont3
;
;#no_xvel3
; .word ANI_ZEROVELS
; WL ANI_SET_YVEL,44000h
;#cont3
;
; WL 3,D4MP4D+FR2
; WL 3,D4MP4D+FR3
; WL 20,D4MP4D+FR4
; .word ANI_ATTACK_ON_Z, AMODE_STOMP,22,8,40,35,22,30 ;mode,x,y,z,w,h,d
;
; WL 7,D4MP4D+FR6
; .word ANI_WAITHITGND
; .word ANI_ZEROVELS
; .word ANI_ATTACK_OFF
;
; WL ANI_IFSTATUS,#ahit4
; WL 4,D4MP4D+FR7
; .word ANI_FACEDOWN
; .word ANI_SETMODE,MODE_NORMAL
; .word ANI_SETPLYRMODE,MODE_NORMAL
; .word ANI_END
;#ahit4
; WL ANI_CODE,#get_off4
; WL 5,D4MP4D+FR7
;
; .word ANI_FACEDOWN
; .word ANI_SETMODE,MODE_NORMAL
; .word ANI_SETPLYRMODE,MODE_NORMAL
; .word ANI_END
;
;
; SUBR dnk_2_run_stomp_anim
;;Stomp fallen opponent from running mode
;
; .word ANI_SETPLYRMODE,MODE_NORMAL
; .word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
;; .word ANI_ZEROVELS
; .word ANI_SETSPEED,100h
;
; WL 3,D3MP3A+FR1
;
; WL ANI_CODE,get_leap
; WL ANI_IFSTATUS,#no_xvel2
;
; ; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
; LEAPATOPP 30,999,0c0h,50h,90000h,TGT_GROIN,20,13,-30
;
; WL ANI_GOTO,#cont2
;
;#no_xvel2
; .word ANI_ZEROVELS
; WL ANI_SET_YVEL,44000h
;#cont2
;
;
; WL 3,D3MP3A+FR2
; WL 3,D3MP3A+FR3
; WL 20,D3MP3A+FR4
; WL 3,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
;
; WL 3+4,D3MP3A+FR7
; .word ANI_WAITHITGND
; .word ANI_ZEROVELS
; .word ANI_ATTACK_OFF
;
; WL ANI_IFSTATUS,#ahit
; WL 3,D3MP3A+FR8
; .word ANI_FACEUP
; .word ANI_SETMODE,MODE_NORMAL
; .word ANI_SETPLYRMODE,MODE_NORMAL
; .word ANI_END
;#ahit
; WL ANI_CODE,#get_off
; WL 5,D3MP3A+FR8
; .word ANI_FACEUP
; .word ANI_SETMODE,MODE_NORMAL
; .word ANI_SETPLYRMODE,MODE_NORMAL
; .word ANI_END
#set_target
calla get_opp_process
move a0,a11
move a13,a0
calla wres_get_stick_val_cur
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,400,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
.word ANI_END
#*****************************************************************************
*
* 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
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 3,D3SA3A+FR9
.word ANI_WAITROLL
WL ANI_CHANGEANIM,dnk_faceup_getup_anim
.word ANI_END
#*****************************************************************************
*
* 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
WL ANI_SET_YVEL,4000h ;27000
.word ANI_OFFSET,-8+13,-3+4,-16 ;x,y,z
WL 5,D2CT2A+FR2
.word ANI_OFFSET,0,15h,0 ;x,y,z
WL 5,D2CT2A+FR7
.word ANI_SHAKEROPES,1
.word ANI_OFFSET,4,4,0 ;x,y,z
WL 5,D2CT2A+FR9
.word ANI_OFFSET,6,14,0 ;x,y,z
WL 5,D2CT2A+FR12
.word ANI_ZEROVELS
.word ANI_OFFSET,0,6,0 ;x,y,z
WL 5,D2CT2B+FR2
.word ANI_OFFSET,10,18h,0 ;x,y,z
WL 5,D2CT2B+FR4
.word ANI_OFFSET,-2,0dh,0 ;x,y,z
WL 5,D2CT2B+FR6
.word ANI_SETPLYRMODE,MODE_ONTURNBKL
.word ANI_SETMODE,MODE_NOAUTOFLIP | MODE_NOCONFINE | MODE_NOGRAVITY
.word ANI_OFFSET,2,0,0 ;x,y,z
WL ANI_CODE,#flip
#repeat
WL 5,D2CT2C+FR1
WL ANI_CODE,#flip
WL 5,D2CT2C+FR3
WL ANI_CODE,#flip
WL 5,D2CT2C+FR5
WL ANI_CODE,#flip
WL 5,D2CT2C+FR7
WL ANI_CODE,#flip
WL 5,D2CT2C+FR9
WL ANI_CODE,#flip
WL 5,D2CT2C+FR11
WL ANI_CODE,#flip
WL 5,D2CT2C+FR13
WL ANI_CODE,#flip
WL 5,D2CT2C+FR15
WL ANI_CODE,#flip
WL 5,D2CT2C+FR17
WL ANI_CODE,#flip
WL 5,D2CT2C+FR19
WL ANI_CODE,#flip
WL 5,D2CT2C+FR21
WL ANI_CODE,#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
.word ANI_OFFSET,0,2,0 ;x,y,z
WL 5,D2CT2B+FR6
.word ANI_OFFSET,0,-13,0 ;x,y,z
WL 5,D2CT2B+FR4
WL ANI_SET_YVEL,-4000h
.word ANI_OFFSET,-8,-26,0 ;x,y,z
WL 5,D2CT2B+FR2
.word ANI_OFFSET,0,-5,0 ;x,y,z
.word ANI_SHAKEROPES,1
WL 5,D2CT2A+FR12
.word ANI_OFFSET,0,-10,0 ;x,y,z
WL 5,D2CT2A+FR9
.word ANI_OFFSET,0,-10,0 ;x,y,z
WL 5,D2CT2A+FR7
.word ANI_OFFSET,-9,-9,0 ;x,y,z
WL 5,D2CT2A+FR2
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#flip
;Check to see if opponent is getting in/out of ring, and turn accordingly!
calla get_opp_process ;closest opponent process
move *a0(INRING),a0 ;0 = in ring, 1 = outside
move *a13(OBJ_XPOSINT),a14
cmpi RING_X_CENTER,a14
jrlt #onlft
;On right turnbuckle
move a0,a0
jrz #noflip
#yesflip
move *a13(OBJ_CONTROL),a14
ori M_FLIPH,a14
move a14,*a13(OBJ_CONTROL)
rets
#noflip
move *a13(OBJ_CONTROL),a14
andni M_FLIPH,a14
move a14,*a13(OBJ_CONTROL)
rets
#onlft
;On left turnbuckle
move a0,a0
jrz #yesflip
jruc #noflip
#*****************************************************************************
*
* 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
.word ANI_END
#*****************************************************************************
*
* 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_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_SETPLYRMODE,MODE_INAIR2
.word ANI_STARTATTACK,AT_LEAPING,43
WL 4,D4JD4A+FR1
WL 4,D4JD4A+FR2 ;D4FM4A+FR1
; .word ANI_SHAKEALL,1
.word ANI_GRAVITY_ON
.word ANI_SETPLYRMODE,MODE_INAIR2
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 35,190,190,190,90000h,TGT_KNEES,-15,0,-10
.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
WL 3,D4JD4A+FR4
.word ANI_OFFSET,0,45,0 ;x,y,z
WL 3,D4FM4A+FR5
WL 3,D4FM4A+FR6
;Start confining wrestler
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_NOCOLLIS|MODE_OVERLAP
.word ANI_ATTACK_ON_Z, AMODE_BSTOMP,-18,-3,0,50,23,30 ;mode,x,y,z,w,h,d
; .word ANI_ATTACK_ON, AMODE_STOMP,-18,4,50,23 ;mode,x,y,w,h
WL 1,D4FM4A+FR6
.word ANI_WAITHITGND
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_ZEROVELS
.word ANI_ATTACK_OFF
.WORD ANI_ADD_MOVE,MOVE_C_9,3,1
WL ANI_CODE,shake_all_ropes
.word ANI_BOUNCE,5
WL ANI_CODE,HIT_THE_MAT
.word ANI_SHAKER,18
WL 5,D4FM4A+FR7
.word ANI_ATTACK_ON_Z, AMODE_BSTOMP,-18,-3,0,50,23,30 ;mode,x,y,z,w,h,d
WL 1,D4FM4A+FR6
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_ATTACK_OFF
; .word ANI_BOUNCE,5
; WL ANI_CODE,SMALL_BOUNCE
; .word ANI_SHAKER,8
; WL 5,D4FM4A+FR7
;
;
; WL 12,D4FM4A+FR6
; .word ANI_ATTACK_ON_Z, AMODE_BSTOMP,-18,-3,0,50,23,30 ;mode,x,y,z,w,h,d
; WL 1,D4FM4A+FR6
; .word ANI_WAITHITGND
; .word ANI_ZEROVELS
; .word ANI_ATTACK_OFF
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,0
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
;Jump straight down from turnbuckle without causing any harm!
SUBR dnk_4_bjump_anim
.word ANI_SETMODE,MODE_UNINT | MODE_NOAUTOFLIP | MODE_NOCONFINE | MODE_NOCOLLIS | MODE_NOGRAVITY
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
WL ANI_CODE,#get_stick ;Maybe jump where he isn't facing!
.word ANI_SETPLYRMODE,MODE_INAIR2
WL 4,D4JD4A+FR1
WL 4,D4JD4A+FR2
; .word ANI_SHAKEROPES,1
.word ANI_GRAVITY_ON
; .word ANI_SETPLYRMODE,MODE_INAIR
;Now jump off...
WL ANI_SET_YVEL,60000h
.word ANI_SHAKECORNER ;Shake corner ropes
WL ANI_CODE,#set_xvel
WL 3,D4JD4A+FR4
.word ANI_WAITHITGND
.word ANI_ZEROVELS
.word ANI_SETPLYRMODE,MODE_NORMAL
WL 3,D4JD4A+FR6
WL 3,D4JD4A+FR7
WL 6,D4JD4A+FR8
WL 3,D4JD4A+FR10
WL 3,D4JD4A+FR11
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
; .word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#get_stick
move *a13(OBJ_XPOSINT),a14
cmpi RING_X_CENTER,a14
jrlt #onlft
;On right turnbuckle
move a13,a0
calla wres_get_stick_val_cur
btst MOVE_LEFT_BIT,a0
jrnz #lft ;Override jumping outside
;Don't allow jumping out of ring if opponent not out there...
; btst MOVE_RIGHT_BIT,a0
; jrnz #rgt
;No stick
;Jump toward opponent (Could be out of ring)
calla get_opp_process ;closest opponent process
move *a0(INRING),a0 ;0 = in ring, 1 = outside
jrnz #rgt
#lft
;If on right side turnbuckle, and stick is to left, do the flip
move *a13(OBJ_CONTROL),a0
ori M_FLIPH,a0
move a0,*a13(OBJ_CONTROL)
rets
#rgt
move *a13(OBJ_CONTROL),a0
andni M_FLIPH,a0
move a0,*a13(OBJ_CONTROL)
rets
#onlft
move a13,a0
calla wres_get_stick_val_cur
;Don't allow jumping out of ring if opponent not out there...
; btst MOVE_LEFT_BIT,a0
; jrnz #lft
btst MOVE_RIGHT_BIT,a0
jrnz #rgt ;Override jumping outside
;No stick
;Jump toward opponent (Could be out of ring)
calla get_opp_process ;closest opponent process
move *a0(INRING),a0 ;0 = in ring, 1 = outside
jrnz #lft
jruc #rgt
rets
#set_xvel
; movk 1,a2
; movi ROPE_BOUNCEUD,a1
; movi ROPE_BACK,a0
; calla rope_command
movi -20000h,a1
movi -30000h,a4
; movi ROPE_RIGHT,a3
move *a13(OBJ_CONTROL),a0
btst B_FLIPH,a0
jrnz #right
; move *a13(OBJ_XPOSINT),a14
; cmpi RING_X_CENTER,a14
; jrgt #right
movi 20000h,a1
movi 30000h,a4
; movi ROPE_LEFT,a3
#right
;If jumping out of ring, jump a little further!
move *a13(OBJ_XPOSINT),a14
cmpi RING_X_CENTER,a14
jrlt #lft1
move a1,a1
jrn #reg
move a4,a1
jruc #reg
#lft1 move a1,a1
jrp #reg
move a4,a1
#reg
move a1,*a13(OBJ_XVEL),L
movi 20000h,a1
move a1,*a13(OBJ_ZVEL),L
; move a3,a0
; movi ROPE_BOUNCEUD,a1
; calla rope_command
rets
#*****************************************************************************
*
* 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_STARTATTACK,AT_PUPPET,10
WL 3,D1TT5Z+FR2
WL 3,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
#cont
.word ANI_STARTATTACK,AT_PUPPET,4
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 8,40,40,40,90000h,TGT_CHEST,40,0,25
WL ANI_SET_YVEL,0000h
WL 4,D4GF3A+FR1
.word ANI_ATTACK_ON, AMODE_PUPPET,33,56,44,18 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,4,D4GF3A+FR2
; WL 4,D4GF3A+FR2
.word ANI_ZERO_XZVELS
WWL ANI_WAITHITOPP,4,D4GF3A+FR3
; WL 4,D4GF3A+FR3
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
;got him
; WL ANI_SET_YVEL,40000h
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,7,D4GF3A+FR4,#puppet_tbl,1
WWLLW ANI_SUPERSLAVE2,5,D4GF3A+FR5,#puppet_tbl,2
WWLLW ANI_SUPERSLAVE2,5,D4GF3A+FR6,#puppet_tbl,3
WWLLW ANI_SUPERSLAVE2,5,D4GF3A+FR7,#puppet_tbl,4
WWLLW ANI_SUPERSLAVE2,5,D4GF3A+FR8,#puppet_tbl,5
WL ANI_SLAVEANIM,#strt_run_tbl
.word ANI_CLROPPMODE,MODE_GHOST
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_DETACH
WL 10,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 25,D4GF3A+FR3
#missed
WL ANI_CODE,CALL_MISSES
WL 12,D4GF3A+FR3
WL 4,D4GF3A+FR2
WL 4,D4GF3A+FR1
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#puppet_tbl
.long #Bret
.long #Razor
.long #Taker
.long #Yokozuna
.long #Shawn
.long #BamBam
.long #Doink
.long #Adam
.long #Lex
.ref H4YR3A,H3RN3A
.ref R4YR3A,R3RN3D
.ref 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
.ref 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
.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
#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_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+MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETMODE,MODE_UNINT ;uninterruptable
.word ANI_ZERO_XZVELS
.word ANI_SETSPEED,100h
.word ANI_SETPLYRMODE,MODE_BLOCK
.word ANI_SETFACING ;ANI_XFLIP <- not primary anim
.word ANI_SET_WRESTLER_XFLIP
;Rotate toward opponent if needed!
; WL ANI_CODE,wrong_face
;wrong_face
; move *a13(ANIMODE),a1
; andni MODE_STATUS,a1
;
; move *a13(FACING_DIR),a0
; move *a13(NEW_FACING_DIR),a14
;
;
;#breakout
; move *a13(ANIMODE),a1
; ori MODE_STATUS,a1
; move a1,*a13(ANIMODE)
; rets
WL 2,D2BK3C+FR1
WL 2,D2BK3C+FR2
; .word ANI_SETPLYRMODE,MODE_BLOCK
#blk2 WL 2,D2BK3C+FR3
.word ANI_SETMODE,MODE_NOAUTOFLIP|MODE_UNINT
.word ANI_WAITRELEASE,PLAYER_BLOCK_BIT
WL 2,D2BK3C+FR2
WL 2,D2BK3C+FR1
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR dnk_2_hitblock_anim
; .word ANI_SETMODE,MODE_UNINT+MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETMODE,MODE_UNINT ;uninterruptable
.word ANI_FRICTION,4000h
.word ANI_SETSPEED,100h
WL 4,D2BK3C+FR7
WL 4,D2BK3C+FR5
WL ANI_GOTO,#blk2
* #4 BLOCK
SUBR dnk_4_block_anim
; .word ANI_SETMODE,MODE_UNINT+MODE_NOAUTOFLIP ;uninterruptable
.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 2,D4BK3A+FR1
WL 2,D4BK3A+FR2
; .word ANI_SETPLYRMODE,MODE_BLOCK
#blk4 WL 2,D4BK3A+FR3
.word ANI_SETMODE,MODE_NOAUTOFLIP|MODE_UNINT
.word ANI_WAITRELEASE,PLAYER_BLOCK_BIT
WL 2,D4BK3A+FR2
WL 2,D4BK3A+FR1
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
SUBR dnk_4_hitblock_anim
; .word ANI_SETMODE,MODE_UNINT+MODE_NOAUTOFLIP ;uninterruptable
.word ANI_SETMODE,MODE_UNINT ;uninterruptable
.word ANI_FRICTION,3000h
.word ANI_SETSPEED,100h
WL 4,D4BK3A+FR7
WL 4,D4BK3A+FR6
WL ANI_GOTO,#blk4
#*****************************************************************************
*
* HIP TOSS RUNNING OPPONENT
SUBR dnk_2_hiptoss2_anim
; .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_STARTATTACK,AT_PUPPET,6
WL 2,D1TT5Z+FR2
WL 2,D1TT5Z+FR3
SUBR dnk_4_hiptoss2_anim
; .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_STARTATTACK,AT_PUPPET,2
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 8,60,55,40,90000h,TGT_CHEST,40,0,0
WL ANI_SET_YVEL,0000h
WL 2,D3HT3Q+FR1
.word ANI_ATTACK_ON, AMODE_PUPPET,33,36,44,48 ;mode,x,y,w,h
WWL ANI_WAITHITOPP,8,D3HT3Q+FR1
.word ANI_ZERO_XZVELS
; WWL ANI_WAITHITOPP,15,D3HT3Q+FR1
.word ANI_ATTACK_OFF
WL ANI_GOTO,#cont
SUBR dnk_2_hiptoss_anim
.word ANI_SETMODE,MODE_UNINT+MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_STARTATTACK,AT_PUPPET,8
WL 3,D1TT5Z+FR2
WL 3,D1TT5Z+FR3
SUBR dnk_4_hiptoss_anim
.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,36,44,48 ;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
#cont
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
;got him
; WL ANI_SET_YVEL,30000h
.word ANI_SOUND,82h ;Effort grunt
WL ANI_CODE,DO_SNAP_MESS
WL ANI_CODE,CALL_SPECIAL_MOVE
.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,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
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
.word ANI_SOUND,0C1h ;plywood crash #3
.word ANI_SHAKEALL,2
.word ANI_SHAKER,30
.word ANI_DAMAGEOPP,D_HIPTOSS
.WORD ANI_ADD_MOVE,MOVE_C_1,2,1
WL ANI_SLAVEANIM,#rollout_tbl
.word ANI_CLROPPMODE,MODE_GHOST
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_DETACH
WL 15,D3HT3Q+FR8
WL 4,D3HT3Q+FR7
WL 4,D3HT3Q+FR6
.word ANI_FACEDOWN
.word ANI_SETFACING
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
#missedb
; WL 10,D3HT3Q+FR1
#missed
.word ANI_SETMODE,MODE_UNINT+MODE_NOAUTOFLIP ;uninterruptable
; WL 20,D3HT3Q+FR1
WL 10,D3HT3Q+FR1
.word ANI_FACEDOWN
.word ANI_SETFACING
.word ANI_SETMODE,MODE_NORMAL
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_END
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_CLR_STATUS
.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
WL ANI_CODE,CALL_SPECIAL_MOVE
.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
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
.word ANI_SOUND,0C1h ;plywood crash #3
.word ANI_SHAKEALL,2
.word ANI_SHAKER,30
.word ANI_DAMAGEOPP,D_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
WWWL ANI_IF_BUTCOUNT_LT,KICKB_COUNT,1,#NEXT_CHECK
.word ANI_DEC_RPTCOUNT
WL ANI_IF_RPTCOUNT,yes_do_combo_again
WWWL ANI_IF_BUTCOUNT_LT,SPUNCHB_COUNT,1,#NEXT_CHECK2A
.WORD ANI_XFLIP
WL ANI_CHANGEANIM,dnk_combo_hammer_anim
#NEXT_CHECK2A
WWWL ANI_IF_BUTCOUNT_LT,PUNCHB_COUNT,1,#NEXT_CHECK
.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_2ndwind_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
#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
.ref hrt_tossed_anim
.ref shn_tossed_anim
.ref bam_tossed_anim
.ref und_tossed_anim
.ref lex_tossed_anim
.ref rzr_tossed_anim
.ref yok_tossed_anim
#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
;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,300
WL ANI_CODE,HIT_THE_MAT
WLW ANI_SET_XVEL,20000h,AM_HIT_REL
WL ANI_SET_YVEL,50000h
WL 4,D3SA3A+FR3
WL 4,D3SA3A+FR4
WL 4,D3SA3A+FR5
WL 4,D3SA3A+FR7
WL 4,D3SA3A+FR8
WL 4,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
.word ANI_END
;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_SOUND,0C1h ;plywood crash #3
.word ANI_SHAKEALL,2
.word ANI_SHAKER,30
.word ANI_GETUP,300
.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
.word ANI_END
#*****************************************************************************
*
* #2 PUSH
SUBR dnk_2_push2_anim ;From head held
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_UNINT|MODE_NOCOLLIS+MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_STARTATTACK,AT_PUSH,9
WL 3,D3AK3A+FR2
WLW ANI_SET_ZVEL,10000h,AM_ABS
WL ANI_GOTO,#tag
SUBR dnk_2_push_anim
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_UNINT|MODE_NOCOLLIS+MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_STARTATTACK,AT_PUSH,6
#tag WL 3,D2PS3A+FR1
WL 3,D2PS3A+FR2
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
WL 3,D2PS3A+FR3
.word ANI_ATTACK_ON, AMODE_PUSH,30,83,54,14 ;mode,x,y,w,h
WL 3,D2PS3A+FR4
WL 3,D2PS3A+FR5
.word ANI_ATTACK_OFF
WWL ANI_SLIDE_BACK,40h,-50000h,#no_hit ;range,vel,addr
WL 15,D2PS3A+FR5
#no_hit
WL 15,D2PS3A+FR5
WL 4,D2PS3A+FR6
WL 4,D2PS3A+FR7
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#* #4 PUSH
SUBR dnk_4_push_anim
.word ANI_SETPLYRMODE,MODE_NORMAL
.word ANI_SETMODE,MODE_UNINT|MODE_NOCOLLIS+MODE_NOAUTOFLIP ;uninterruptable
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
.word ANI_STARTATTACK,AT_PUSH,9
WL 3,D4PS3A+FR1
WL 3,D4PS3A+FR2
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP ;uninterruptable
WL 3,D4PS3A+FR3
.word ANI_ATTACK_ON, AMODE_PUSH,47,88,53,9 ;mode,x,y,w,h
WL 3,D4PS3A+FR4
.word ANI_ATTACK_OFF
WL ANI_IFNOTSTATUS,#missed
WL ANI_IFBLOCKED,#missedb ;Yes, I hit blocker
WWL ANI_SLIDE_BACK,40h,-60000h,#no_hit ;range,vel,addr
WL 15,D4PS3A+FR4
#no_hit
WL 15,D4PS3A+FR4
WL 4,D4PS3A+FR5
WL 4,D4PS3A+FR6
WL 4,D4PS3A+FR7
.word ANI_SETMODE,MODE_NORMAL
.word ANI_END
#missedb
#missed
WL 15,D4PS3A+FR4
WL 4,D4PS3A+FR5
WL 4,D4PS3A+FR6
WL 4,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
.word ANI_END
******************************************************************************
*
* #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,-50000h,AM_HIT_REL
WL 4,D4LB4A+FR2
WL 4,D4LB4A+FR3
WL 4,D4LB4A+FR4
WL 4,D4LB4A+FR5
WL 4,D4LB4B+FR1
WL 4,D4LB4B+FR2
WL 4,D4LB4B+FR3
.word ANI_FACEDOWN
.word ANI_SETMODE,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 4,D4LB4A+FR2
WL 4,D4LB4A+FR3
WL 4,D4LB4A+FR4
WL 4,D4LB4A+FR5
WL 4,D4LB4B+FR1
WL 4,D4LB4B+FR2
WL 4,D4LB4B+FR3
; .word ANI_SETPLYRMODE,MODE_DIZZY
WL ANI_CHANGEANIM,dnk_dizzy_anim
.word ANI_END
#*****************************************************************************
*
* #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_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
WL 2,D3SK3X+FR4
#lp0
WL 2,D3SK3X+FR4
WL ANI_CODE,#holdup
WL ANI_IFSTATUS,#lp0
.word ANI_ATTACK_OFF
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_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
WL 2,D3SK3X+FR4
#lp
WL 2,D3SK3X+FR4
WL ANI_CODE,#holdup
WL ANI_IFSTATUS,#lp
; .word ANI_WAITRELEASE,PLAYER_KICK_BIT
.word ANI_ATTACK_OFF
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(PLYRNUM),a0
calla get_but_val_cur
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
WL ANI_GOTO,#cont
SUBR dnk_4_pin_anim
.word ANI_SETMODE,MODE_UNINT|MODE_NOAUTOFLIP|MODE_OVERLAP
.word ANI_ZEROVELS
.word ANI_SETSPEED,100h
#cont
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
LEAPATOPP 25,999,80h,50h,90000h,TGT_CHEST,0,57,-15
WL 3,D4PN5A+FR1
WL 3,D4PN5A+FR2
.word ANI_OFFSET,0,57,0 ;x,y,z
WL 19,D4PN5A+FR3
; .word ANI_WAITHITGND
.word ANI_ATTACK_ON_Z, AMODE_STOMP,-40,-8,0,76,20,30 ;mode,x,y,z,w,h,d
.word ANI_ZEROVELS
WLW ANI_ATTCHIMAGE,D4PN5L+FR4,10 ;image, zoff (priority)
WL 3,D4PN5A+FR4
.word ANI_ATTACK_OFF
WL ANI_CODE,HIT_THE_MAT
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
;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,D5WN5Z+FR4
WL ANI_GOTO,#loop
SUBR win_announce
PUSH a10
move a13,a10
.ref announce_rnd_winner
CREATE ANNC_PID,announce_rnd_winner
PULL a10
rets
SUBR grnd_hit
PUSH a13
move *a13(WHOIHIT),a13,L
move *a13(WRESTLERNUM),a0
move a0,a1
sll 5,a0
addi #hit_t,a0
move *a0,a0,L
.ref change_anim1a
calla change_anim1a
PULL a13
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
.long 0 ;9 Referee
#*****************************************************************************
*
* #3 CLIMB THROUGH ROPES
SUBR dnk_climbthru_side_anim
.word ANI_SETMODE,MODE_UNINT+MODE_NOAUTOFLIP+MODE_NOCONFINE
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
WLW ANI_SET_XVEL,2000h,AM_FACE_REL
.word ANI_OFFSET,13,0,0
WL 4,D3CR3D+FR1
.word ANI_BENDROPE,0
WL 4,D3CR3D+FR2
WL 4,D3CR3D+FR3
WL 4,D3CR3D+FR4
WL 4,D3CR3D+FR5
.word ANI_BENDROPE,2
.word ANI_ROPE_Z,R_TOP,RZ_HIGH
.word ANI_ROPE_Z,R_MIDDLE,RZ_HIGH
WL 4,D3CR3D+FR6
.word ANI_BENDROPE,2
WL 4,D3CR3D+FR7
WL 4,D3CR3D+FR8
.word ANI_BENDROPE,3
.word ANI_ROPE_Z,R_BOTTOM,RZ_HIGH
WL 4,D3CR3D+FR9
WL 4,D3CR3D+FR10
.word ANI_ZEROVELS
.word ANI_BENDROPE,-1
.word ANI_OFFSET,43,-3,0
WL 4,D3CR3D+FR11
;now jump off...
WL 4,D4JD4A+FR1 ;D4FM4A+FR1
WL 4,D4JD4A+FR2
WL ANI_SET_YVEL,60000h
; WL ANI_CODE,#set_xvel
WLW ANI_SET_XVEL,30000h,AM_FACE_REL
WL 3,D4JD4A+FR4
.word ANI_WAITHITGND
.word ANI_ROPE_Z,R_TOP,RZ_NORM
.word ANI_ROPE_Z,R_MIDDLE,RZ_NORM
.word ANI_ROPE_Z,R_BOTTOM,RZ_NORM
.word ANI_ZEROVELS
WL 3,D4JD4A+FR6
WL 3,D4JD4A+FR7
WL 6,D4JD4A+FR8
WL 3,D4JD4A+FR10
WL 3,D4JD4A+FR11
.word ANI_FACEDOWN
.word ANI_SETMODE,MODE_NOCONFINE
.word ANI_END
#*****************************************************************************
SUBR dnk_climbin_side_anim
.word ANI_SETMODE,MODE_UNINT+MODE_NOAUTOFLIP+MODE_NOCONFINE+MODE_OVERLAP
.word ANI_SETSPEED,100h
.word ANI_ZEROVELS
;jump in
WL 4,D4JD4A+FR1
WL 4,D4JD4A+FR2
WL ANI_CODE,#set_trgt
; ticks,range max,hiX,hiZ,hiYvel,tgt,Xoff,Yoff,Zoff
.word ANI_LEAPATPOS,1ch,200,0,0,0 ;#ticks,dist,xoff,yoff,zoff
WL 4,D4JD4A+FR4
.word ANI_WAITHITGND
.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 4,D4JD4A+FR6
WL 3,D4JD4A+FR7
WL 3,D4JD4A+FR11
WL ANI_CODE,#set_z
WLW ANI_SET_XVEL,2000h,AM_FACE_REL
;climb through
WL 3,D3CR3D+FR1
.word ANI_BENDROPE,0
WL 3,D3CR3D+FR2
WL 3,D3CR3D+FR3
.word ANI_ROPE_Z,R_MIDDLE,RZ_NORM
.word ANI_ROPE_Z,R_BOTTOM,RZ_NORM
WL 3,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 3,D3CR3D+FR6
.word ANI_BENDROPE,2
WL 3,D3CR3D+FR7
WL 3,D3CR3D+FR8
.word ANI_BENDROPE,3
.word ANI_ROPE_Z,R_BOTTOM,RZ_HIGH
WL 3,D3CR3D+FR9
WL 3,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
;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_z
clr_climb
clr a0
move a0,*a13(CLIMBING_THRU) ;1=Climbing thru ropes flag
rets
#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
SET_DIR_FACE
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
#*****************************************************************************
SUBR dnk_climbthru_bot_anim
.word ANI_SETMODE,MODE_UNINT+MODE_NOAUTOFLIP+MODE_NOCONFINE+MODE_OVERLAP
.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
;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_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
.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_OFFSET,0,0,0
.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
.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
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_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
#*****************************************************************************
SUBR dnk_climbin_top_anim
.word ANI_SETMODE,MODE_UNINT+MODE_NOAUTOFLIP+MODE_NOCONFINE+MODE_OVERLAP
.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_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