1740 lines
32 KiB
NASM
Executable File
1740 lines
32 KiB
NASM
Executable File
**************************************************************
|
||
*
|
||
* Software: Jamie Rivett
|
||
* Initiated: 9/3/93
|
||
*
|
||
* COPYRIGHT (C) 1992 WILLIAMS ELECTRONICS GAMES, INC.
|
||
*
|
||
**************************************************************
|
||
|
||
.file "adam.asm"
|
||
.title "adam bomb specific game code"
|
||
.width 132
|
||
.option b,d,l,t
|
||
.mnolist
|
||
|
||
|
||
.include "macros.h"
|
||
.include "mproc.equ" ;Mproc equates
|
||
.include "display.equ" ;Display proc equates
|
||
.include "gsp.equ" ;Gsp asm equates
|
||
.include "sys.equ"
|
||
.include "game.equ"
|
||
.include "plyr.equ"
|
||
.include "anim.equ"
|
||
.include "audit.equ"
|
||
.include "sound.h"
|
||
.include "ring.equ"
|
||
.include "lifebar.h"
|
||
|
||
|
||
******************************************************************************
|
||
* EXTERNAL REFERENCES
|
||
|
||
.ref wres_get_but_val_down,wres_get_but_val_cur
|
||
.ref wres_get_stick_val_cur
|
||
|
||
.ref change_anim1,change_anim1a
|
||
.ref change_anim2
|
||
.ref process_ptrs
|
||
.ref keep_attached
|
||
.ref get_opp_plyrmode
|
||
.ref wres_collis_off
|
||
.ref convert_facing
|
||
.ref check_secret_moves
|
||
.ref change_walk_anim
|
||
.ref set_rotate_anim
|
||
.ref execute_walk
|
||
.ref start_run,bounce_off_ropes
|
||
.ref face_each_other
|
||
.ref lineup_grapple
|
||
.ref break_lockup
|
||
.ref climb_turnbuckle
|
||
|
||
;from DCSSOUND.ASM
|
||
.ref triple_sound
|
||
|
||
;from PAL.ASM
|
||
.ref pal_find,pal_set
|
||
|
||
;animation sequence
|
||
|
||
.ref wres_slave_anim
|
||
.ref adm_zip_anim
|
||
|
||
.ref adm_stand2_anim,adm_stand8_anim
|
||
.ref adm_stand4_anim,adm_stand6_anim
|
||
.ref adm_torso2_anim,adm_torso8_anim
|
||
.ref adm_torso4_anim,adm_torso6_anim
|
||
|
||
.ref adm_2_to_4_turn_anim,adm_8_to_6_turn_anim ;stand
|
||
.ref adm_4_to_2_turn_anim,adm_6_to_8_turn_anim
|
||
.ref adm_4_to_6_turn_anim,adm_6_to_4_turn_anim
|
||
.ref adm_2_to_8_turn_anim,adm_8_to_2_turn_anim
|
||
.ref adm_4_to_8_turn_anim,adm_6_to_2_turn_anim
|
||
.ref adm_2_to_6_turn_anim,adm_8_to_4_turn_anim
|
||
|
||
.ref adm_2_to_4_turn2_anim,adm_8_to_6_turn2_anim ;torso
|
||
.ref adm_4_to_2_turn2_anim,adm_6_to_8_turn2_anim
|
||
.ref adm_4_to_6_turn2_anim,adm_6_to_4_turn2_anim
|
||
.ref adm_2_to_8_turn2_anim,adm_8_to_2_turn2_anim
|
||
.ref adm_4_to_8_turn2_anim,adm_6_to_2_turn2_anim
|
||
.ref adm_2_to_6_turn2_anim,adm_8_to_4_turn2_anim
|
||
|
||
.ref adm_roll_frames
|
||
|
||
.ref adm_walk1_f2_anim,adm_walk2_f2_anim,adm_walk4_f2_anim
|
||
.ref adm_walk5_f2_anim,adm_walk6_f2_anim,adm_walk8_f2_anim
|
||
|
||
.ref adm_walk1_f4_anim,adm_walk2_f4_anim,adm_walk4_f4_anim
|
||
.ref adm_walk5_f4_anim,adm_walk6_f4_anim,adm_walk8_f4_anim
|
||
|
||
.ref adm_2_punch_anim,adm_4_punch_anim
|
||
|
||
.ref adm_2_butt_anim,adm_4_butt_anim
|
||
|
||
.ref adm_2_kick_anim,adm_4_kick_anim
|
||
|
||
.ref adm_2_uprcut_anim,adm_4_uprcut_anim
|
||
|
||
.ref adm_run_anim,adm_run2_anim,adm_ocrun_anim,adm_run_anim,adm_bounce_anim
|
||
|
||
.ref adm_2_lbowdrop_anim,adm_4_lbowdrop_anim
|
||
|
||
.ref adm_grab_throw_anim
|
||
.ref adm_2_grabfling_anim
|
||
.ref adm_4_grabfling_anim
|
||
|
||
.ref adm_2_graboh_anim,adm_heldoh_anim
|
||
.ref adm_4_graboh_anim
|
||
|
||
.ref adm_2_fly_cline_anim,adm_4_fly_cline_anim
|
||
.ref adm_flying_kick_anim
|
||
|
||
.ref adm_4_head_hit_anim
|
||
.ref adm_2_face_hit_anim,adm_4_face_hit_anim
|
||
.ref adm_2_head_hit_anim
|
||
.ref adm_2_body_hit_anim,adm_4_body_hit_anim
|
||
.ref adm_fall_back_anim
|
||
.ref adm_faceup_getup_anim
|
||
.ref adm_hitonground_anim
|
||
.ref adm_4_stomp_anim,adm_2_stomp_anim
|
||
.ref adm_2ndwind_anim
|
||
.ref adm_climb_up_anim,adm_climb_down_anim
|
||
.ref adm_2_hitblock_anim,adm_4_hitblock_anim
|
||
.ref adm_hiptoss_anim,adm_hiptossfall_anim
|
||
.ref adm_4_push_anim,adm_2_push_anim
|
||
.ref adm_4_bigboot_anim,adm_2_bigboot_anim
|
||
.ref adm_4_block_anim,adm_2_block_anim
|
||
.ref adm_4_losebal_anim,adm_2_losebal_anim
|
||
.ref adm_dizzy_anim
|
||
.ref adm_raisearm_anim
|
||
.ref adm_ohthrow1_anim
|
||
|
||
.ref adm_2_lockup_anim,adm_4_lockup_anim
|
||
|
||
|
||
******************************************************************************
|
||
* SYMBOLS DEFINED IN THIS FILE
|
||
|
||
******************************************************************************
|
||
* EQUATES FOR THIS FILE
|
||
|
||
#*****************************************************************************
|
||
|
||
adam_secret_moves
|
||
.long #button_hold ;must have this one
|
||
|
||
.long #grab_fling
|
||
;; .long #turbo_run
|
||
.long #2nd_wind1
|
||
.long #2nd_wind2
|
||
.long 0
|
||
|
||
#button_hold
|
||
rets
|
||
|
||
; BITS MASK
|
||
|
||
#grab_fling
|
||
.word B_GRAB | J_AWAY, J_UP | J_DOWN
|
||
.word 8000h | 10 ;max
|
||
.long scrt_grabfling
|
||
|
||
#turbo_run
|
||
.word B_TURBO, J_ALL
|
||
.word B_TURBO, J_ALL
|
||
.word 8000h | 16 ;max
|
||
.long scrt_run
|
||
|
||
#2nd_wind1
|
||
.word J_UP, 0
|
||
.word J_UP_AWAY, 0
|
||
.word J_AWAY, 0
|
||
.word J_DOWN_AWAY, 0
|
||
.word J_DOWN, 0
|
||
.word J_DOWN_TOWARD, 0
|
||
.word J_TOWARD, 0
|
||
.word J_UP_TOWARD, 0
|
||
.word J_UP, 0
|
||
.word 8000h | 50 ;max
|
||
.long scrt_2ndwind
|
||
|
||
#2nd_wind2
|
||
.word J_UP, 0
|
||
.word J_UP_TOWARD, 0
|
||
.word J_TOWARD, 0
|
||
.word J_DOWN_TOWARD, 0
|
||
.word J_DOWN, 0
|
||
.word J_DOWN_AWAY, 0
|
||
.word J_AWAY, 0
|
||
.word J_UP_AWAY, 0
|
||
.word J_UP, 0
|
||
.word 8000h | 50 ;max
|
||
.long scrt_2ndwind
|
||
|
||
|
||
.if 0
|
||
J_UP
|
||
J_UP_TOWARD
|
||
J_TOWARD
|
||
J_DOWN_TOWARD
|
||
J_DOWN
|
||
J_DOWN_AWAY
|
||
J_AWAY
|
||
J_UP_AWAY
|
||
|
||
B_PUNCH
|
||
B_KICK
|
||
B_BLOCK
|
||
B_GRAB
|
||
B_TURBO
|
||
B_RUN
|
||
|
||
.endif
|
||
|
||
|
||
scrt_grabfling
|
||
|
||
;Make this miss, rotate to missed opponent,
|
||
;and stay rotated to flung opponent, also make
|
||
;this work from both angles!
|
||
|
||
|
||
movi adm_2_grabfling_anim,a0
|
||
|
||
move *a13(FACING_DIR),a1
|
||
btst MOVE_UP_BIT,a1
|
||
jrnz #2_grb
|
||
movi adm_4_grabfling_anim,a0
|
||
#2_grb
|
||
calla change_anim1a
|
||
|
||
WRSND W_ADAM,GRABFLING_T1,GRABFLING_T2
|
||
|
||
rets
|
||
|
||
scrt_run
|
||
|
||
move *a13(ANIMODE),a0
|
||
btst MODE_UNINT_BIT,a0
|
||
jrnz #no_scrt_run
|
||
move *a13(PLYRMODE),a0
|
||
|
||
move *a13(PLYRMODE),a0
|
||
cmpi MODE_RUNNING,a0
|
||
jreq #no_scrt_run
|
||
cmpi MODE_BOUNCING,a0
|
||
jreq #no_scrt_run
|
||
calla start_run
|
||
|
||
#no_scrt_run
|
||
rets
|
||
|
||
scrt_2ndwind
|
||
movi adm_2ndwind_anim,a0
|
||
calla change_anim1a
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
|
||
SUBR adam_ani_init
|
||
|
||
movi adm_stand2_anim,a0
|
||
calla change_anim1
|
||
|
||
movi adm_torso2_anim,a0
|
||
calla change_anim2
|
||
|
||
rets
|
||
|
||
|
||
#*****************************************************************************
|
||
*
|
||
* ADAMS CONTROL CODE
|
||
*
|
||
* a13 = * adam process
|
||
|
||
SUBR move_adam
|
||
|
||
movi 100h,a0 ;temp fix!
|
||
move a0,*a13(ANI_SPEED)
|
||
|
||
movi adam_secret_moves,a11
|
||
calla check_secret_moves
|
||
|
||
move *a13(PLYRMODE),a0
|
||
sll 5,a0 ;x 32
|
||
addi #mode_table,a0
|
||
move *a0,a0,L
|
||
call a0
|
||
rets
|
||
|
||
#mode_table
|
||
.long mode_normal ;0
|
||
.long mode_running ;1
|
||
.long mode_inair ;2
|
||
.long mode_attached ;3
|
||
.long mode_onground ;4
|
||
.long mode_bouncing ;5
|
||
.long mode_onturnbkl ;6
|
||
.long mode_block ;7
|
||
.long mode_dizzy ;8
|
||
.long mode_dead ;9
|
||
.long mode_oppoverhead ;10
|
||
.long mode_climbturnbkl ;11
|
||
.long mode_waitanim ;12
|
||
.long mode_grapple ;13
|
||
.long mode_master ;14
|
||
.long mode_slave ;15
|
||
.long mode_headhold ;16
|
||
|
||
#*****************************************************************************
|
||
|
||
mode_normal
|
||
|
||
|
||
move *a13(ANIMODE),a0
|
||
btst MODE_UNINT_BIT,a0
|
||
jrnz #no_interrupt
|
||
|
||
.if 1
|
||
calla get_opp_plyrmode
|
||
cmpi MODE_DEAD,a0
|
||
jrne #opp_not_dead
|
||
|
||
movi adm_raisearm_anim,a0
|
||
calla change_anim1a
|
||
rets
|
||
|
||
#opp_not_dead
|
||
|
||
GETLIFE
|
||
jruc #not_dizzy
|
||
jrnz #not_dizzy
|
||
|
||
SETMODE DIZZY
|
||
movi adm_dizzy_anim,a0
|
||
calla change_anim1a
|
||
rets
|
||
|
||
.endif
|
||
#not_dizzy
|
||
|
||
|
||
move a13,a0
|
||
calla wres_get_but_val_cur
|
||
btst PLAYER_BLOCK_BIT,a0 ;maybe have to action tables?
|
||
jrz #nblk ;1 for down transitions
|
||
callr #block ;& 1 for current buttons
|
||
#nblk
|
||
move a13,a0
|
||
calla wres_get_but_val_down
|
||
andi 011111b,a0
|
||
X32 a0
|
||
addi #action_table,a0
|
||
move *a0,a0,L
|
||
call a0
|
||
|
||
move *a13(ANIMODE),a0
|
||
btst MODE_UNINT_BIT,a0
|
||
jrnz #no_interrupt
|
||
|
||
move a13,a0
|
||
calla wres_get_stick_val_cur
|
||
move a0,*a13(MOVE_DIR)
|
||
calla climb_turnbuckle
|
||
jrnc #no_climb
|
||
rets
|
||
#no_climb
|
||
|
||
calla execute_walk
|
||
|
||
#no_interrupt
|
||
rets
|
||
|
||
#action_table
|
||
.long #z ;0
|
||
.long #punch ;1
|
||
.long #block ;2
|
||
.long #z ;3
|
||
.long #super_punch ;4
|
||
.long #z,#z,#z ;5-7
|
||
.long #kick ;8
|
||
.long #z,#z,#z,#z,#z,#z,#z ;9-15
|
||
.long #super_kick ;16
|
||
.long #z,#z,#z,#z,#z,#z,#z ;17-23
|
||
.long #z,#z,#z,#z,#z,#z,#z,#z ;24-31
|
||
|
||
************
|
||
#z
|
||
rets
|
||
|
||
************
|
||
#punch ;1
|
||
*
|
||
* MODE DX DZ ACTION
|
||
* ----------------------------------------------------
|
||
* normal < 60 92 headbutt
|
||
* dizzy " "
|
||
* normal > normal punch
|
||
* dizzy " "
|
||
*
|
||
* onground < 96 112 elbow drop
|
||
* onground > normal punch
|
||
*
|
||
* running | < 100 60 hip toss
|
||
* bouncing > normal punch
|
||
*
|
||
* onturnbkl normal punch
|
||
* climbturnbkl normal punch
|
||
*
|
||
|
||
JJXM_INIT
|
||
JJXM NORMAL, 60, 92,#punch_hdbutt,#punch_punch
|
||
JJXM DIZZY, 60, 92,#punch_hdbutt,#punch_punch
|
||
JJXM ONGROUND, 96,112,#punch_lbdrop,#punch_punch
|
||
JJXM RUNNING, 100, 60,#punch_hiptoss,#punch_punch
|
||
JJXM BOUNCING, 100, 60,#punch_hiptoss,#punch_punch
|
||
JJXM ONTURNBKL, #punch_punch
|
||
JJXM CLIMBTURNBKL, #punch_punch
|
||
|
||
.if DEBUG
|
||
LOCKUP
|
||
rets
|
||
.endif
|
||
|
||
*****
|
||
#punch_rets
|
||
rets
|
||
|
||
*****
|
||
#punch_punch
|
||
|
||
FACE24 adm,punch_anim
|
||
calla change_anim1a
|
||
|
||
WRSND W_ADAM,PUNCH_T1,PUNCH_T2
|
||
|
||
rets
|
||
|
||
*****
|
||
#punch_hdbutt
|
||
|
||
FACE24 adm,butt_anim
|
||
calla change_anim1a
|
||
|
||
WRSND W_ADAM,PUNCH_T1,PUNCH_T2
|
||
|
||
rets
|
||
|
||
*****
|
||
#punch_lbdrop
|
||
|
||
FACE24 adm,lbowdrop_anim
|
||
calla change_anim1a
|
||
|
||
WRSND W_ADAM,PUNCH_T1,PUNCH_T2
|
||
|
||
rets
|
||
|
||
*****
|
||
#punch_hiptoss
|
||
|
||
movi adm_hiptoss_anim,a0
|
||
calla change_anim1a
|
||
|
||
WRSND W_ADAM,PUNCH_T1,PUNCH_T2
|
||
|
||
rets
|
||
|
||
************
|
||
#block ;2
|
||
*
|
||
* MODE DX DZ ACTION
|
||
* ----------------------------------------------------
|
||
* all nothing. Ha.
|
||
*
|
||
|
||
rets
|
||
|
||
************
|
||
#super_punch ;4
|
||
*
|
||
* MODE DX DZ ACTION
|
||
* ----------------------------------------------------
|
||
* all uppercut
|
||
*
|
||
|
||
FACE24 adm,uprcut_anim
|
||
calla change_anim1a
|
||
|
||
WRSND W_ADAM,PUNCH_T1,PUNCH_T2
|
||
|
||
rets
|
||
|
||
************
|
||
#kick ;8
|
||
*
|
||
* MODE DX DZ ACTION
|
||
* ----------------------------------------------------
|
||
* normal normal kick
|
||
*
|
||
* onground < 96 112 stomp
|
||
* onground > normal kick
|
||
*
|
||
* running |
|
||
* bouncing big boot
|
||
*
|
||
* onturnbkl knee
|
||
*
|
||
|
||
JJXM_INIT
|
||
JJXM NORMAL, #kick_kick
|
||
JJXM DIZZY, #kick_kick
|
||
JJXM ONGROUND, 96,112,#kick_stomp,#kick_kick
|
||
JJXM RUNNING, #kick_bigboot
|
||
JJXM BOUNCING, #kick_bigboot
|
||
JJXM ONTURNBKL, #kick_kick
|
||
JJXM CLIMBTURNBKL, #kick_kick
|
||
|
||
.if DEBUG
|
||
LOCKUP
|
||
rets
|
||
.endif
|
||
|
||
*****
|
||
#kick_kick
|
||
|
||
FACE24 adm,kick_anim
|
||
calla change_anim1
|
||
|
||
WRSND W_ADAM,KICK_T1,KICK_T2
|
||
rets
|
||
|
||
*****
|
||
#kick_stomp
|
||
FACE24 adm,stomp_anim
|
||
calla change_anim1
|
||
|
||
WRSND W_ADAM,KICK_T1,KICK_T2
|
||
rets
|
||
|
||
*****
|
||
#kick_bigboot
|
||
FACE24 adm,bigboot_anim
|
||
calla change_anim1
|
||
|
||
WRSND W_ADAM,KICK_T1,KICK_T2
|
||
rets
|
||
|
||
************
|
||
#super_kick ;16
|
||
*
|
||
* MODE DX DZ ACTION
|
||
* ----------------------------------------------------
|
||
* normal normal kick
|
||
*
|
||
* onground < 96 112 stomp
|
||
* onground > normal kick
|
||
*
|
||
* running |
|
||
* bouncing big boot
|
||
*
|
||
* onturnbkl normal kick
|
||
*
|
||
|
||
JJXM_INIT
|
||
JJXM NORMAL, #skick_kick
|
||
JJXM DIZZY, #skick_kick
|
||
JJXM ONGROUND, 96,112,#skick_stomp,#skick_kick
|
||
JJXM RUNNING, #skick_bigboot
|
||
JJXM BOUNCING, #skick_bigboot
|
||
JJXM ONTURNBKL, #skick_kick
|
||
JJXM CLIMBTURNBKL, #skick_kick
|
||
|
||
.if DEBUG
|
||
LOCKUP
|
||
rets
|
||
.endif
|
||
|
||
*****
|
||
#skick_kick
|
||
|
||
FACE24 adm,kick_anim
|
||
calla change_anim1
|
||
|
||
WRSND W_ADAM,KICK_T1,KICK_T2
|
||
rets
|
||
|
||
*****
|
||
#skick_stomp
|
||
FACE24 adm,stomp_anim
|
||
calla change_anim1
|
||
|
||
WRSND W_ADAM,KICK_T1,KICK_T2
|
||
rets
|
||
|
||
*****
|
||
#skick_bigboot
|
||
FACE24 adm,bigboot_anim
|
||
calla change_anim1
|
||
|
||
WRSND W_ADAM,KICK_T1,KICK_T2
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
*
|
||
* RUNNING (if GETUP_TIME > 0 then player is out of control)
|
||
*
|
||
|
||
#XRUN_VAL equ 60000h ;50000h
|
||
#ZDRIFT_VAL equ 20000h ;18000h
|
||
|
||
mode_running
|
||
|
||
move *a13(GETUP_TIME),a0 ;delay b4 gaining control
|
||
jrz #not_octrl
|
||
|
||
calla keep_attached ;if still being flung
|
||
jrnz #out_of_control ;(Z=0 - still attached)
|
||
|
||
;not_attached
|
||
|
||
#not_octrl
|
||
|
||
calla bounce_off_ropes
|
||
|
||
move *a13(MOVE_DIR),a0
|
||
|
||
movi #XRUN_VAL,a1
|
||
btst PLAYER_RIGHT_BIT,a0
|
||
jrnz #setxvel
|
||
|
||
movi -#XRUN_VAL,a1
|
||
#setxvel
|
||
move a1,*a13(OBJ_XVEL),L
|
||
|
||
|
||
move *a13(GETUP_TIME),a0 ;delay b4 gaining control
|
||
jrnz #out_of_control
|
||
|
||
move *a13(ANIMODE),a0
|
||
btst MODE_UNINT_BIT,a0
|
||
jrnz #no_interrupt
|
||
|
||
move a13,a0
|
||
calla wres_get_but_val_cur
|
||
btst PLAYER_TURBO_BIT,a0 ;turbo down?
|
||
jrnz #run_down
|
||
|
||
;has released turbo - go back to walk mode
|
||
|
||
SETMODE NORMAL
|
||
|
||
#run_down
|
||
#no_interrupt
|
||
|
||
move a13,a0
|
||
calla wres_get_stick_val_cur
|
||
clr a1
|
||
|
||
movi -#ZDRIFT_VAL,a1
|
||
btst PLAYER_UP_BIT,a0
|
||
jrnz #setvel
|
||
|
||
movi #ZDRIFT_VAL,a1
|
||
btst PLAYER_DOWN_BIT,a0
|
||
jrnz #setvel
|
||
|
||
clr a1
|
||
#setvel
|
||
move a1,*a13(OBJ_ZVEL),L
|
||
|
||
|
||
move a13,a0
|
||
calla wres_get_but_val_down
|
||
andi 011111b,a0
|
||
X32 a0
|
||
addi #action_table,a0
|
||
move *a0,a0,L
|
||
call a0
|
||
#out_of_control
|
||
rets
|
||
|
||
#action_table
|
||
.long #z ;0
|
||
.long #punch ;1 (punch)
|
||
.long #z ;2 (block)
|
||
.long #z ;3
|
||
.long #z ;4 (super punch)
|
||
.long #z,#z,#z ;5-7
|
||
.long #kick ;8 kick
|
||
.long #z,#z,#z,#z,#z,#z,#z ;9-15
|
||
.long #z ;16 (super kick)
|
||
.long #z,#z,#z,#z,#z,#z,#z ;17-23
|
||
.long #z,#z,#z,#z,#z,#z,#z,#z ;24-31
|
||
|
||
************
|
||
#z
|
||
rets
|
||
|
||
************
|
||
#punch ;1
|
||
*
|
||
* MODE DX DZ ACTION
|
||
* ----------------------------------------------------
|
||
* all flying clothesline
|
||
*
|
||
|
||
FACE24 adm,fly_cline_anim
|
||
calla change_anim1
|
||
|
||
;halve his velocity
|
||
move *a13(OBJ_XVEL),a0,L
|
||
sra 1,a0
|
||
move a0,*a13(OBJ_XVEL),L
|
||
|
||
WRSND W_ADAM,FLYKICK_T1,FLYKICK_T2
|
||
rets
|
||
|
||
************
|
||
#kick ;#4
|
||
*
|
||
* MODE DX DZ ACTION
|
||
* ----------------------------------------------------
|
||
* all flying kick
|
||
*
|
||
|
||
|
||
*****
|
||
movi adm_flying_kick_anim,a0
|
||
calla change_anim1
|
||
|
||
SETMODE INAIR
|
||
|
||
move *a13(OBJ_XVEL),a0,L
|
||
sra 1,a0
|
||
move a0,*a13(OBJ_XVEL),L
|
||
|
||
WRSND W_ADAM,FLYKICK_T1,FLYKICK_T2
|
||
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
*
|
||
|
||
mode_inair ;2
|
||
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
*
|
||
|
||
mode_attached ;3
|
||
|
||
|
||
calla keep_attached
|
||
jrnz #still_attached
|
||
|
||
clr a0
|
||
move a0,*a13(ATTACH_PROC),L
|
||
|
||
SETMODE NORMAL
|
||
|
||
movi MODE_NORMAL,a0
|
||
move a0,*a13(ANIMODE)
|
||
|
||
#still_attached
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
#ZROLL_VAL equ 20000h
|
||
#ROLL_SPEED equ 50h
|
||
#ROLL_FRAMES equ 9
|
||
|
||
mode_onground ;4
|
||
|
||
; move a13,a0
|
||
; calla wres_get_but_val_cur
|
||
; btst PLAYER_TURBO_BIT,a0
|
||
; jrz #no_cheat
|
||
;
|
||
; clr a0
|
||
; move a0,*a13(GETUP_TIME)
|
||
;#no_cheat
|
||
|
||
move *a13(GETUP_TIME),a0
|
||
jrnz #nomove
|
||
|
||
move a13,a0
|
||
calla wres_get_stick_val_cur
|
||
|
||
movi -#ROLL_SPEED,a2
|
||
movi -#ZROLL_VAL,a1
|
||
btst PLAYER_UP_BIT,a0
|
||
jrnz #setvel
|
||
|
||
movi #ROLL_SPEED,a2
|
||
movi #ZROLL_VAL,a1
|
||
btst PLAYER_DOWN_BIT,a0
|
||
jrnz #setvel
|
||
|
||
clr a1
|
||
clr a2
|
||
|
||
movi adm_faceup_getup_anim,a0
|
||
calla change_anim1
|
||
|
||
SETMODE NORMAL
|
||
|
||
rets
|
||
|
||
#setvel
|
||
move a1,*a13(OBJ_ZVEL),L
|
||
|
||
move *a13(ROLL_POS),a0
|
||
add a2,a0
|
||
jrp #ok1
|
||
addi #ROLL_FRAMES<<8,a0
|
||
#ok1
|
||
cmpi #ROLL_FRAMES<<8,a0
|
||
jrlt #ok2
|
||
|
||
; subi #ROLL_FRAMES,a0
|
||
subi #ROLL_FRAMES<<8,a0
|
||
#ok2
|
||
|
||
move a0,*a13(ROLL_POS)
|
||
|
||
move *a13(ROLL_POS),a0
|
||
srl 8,a0
|
||
sll 5,a0
|
||
addi adm_roll_frames,a0
|
||
move *a0,a0,L
|
||
move a0,*a13(CUR_FRAME),L
|
||
|
||
#nomove
|
||
rets
|
||
|
||
|
||
#*****************************************************************************
|
||
*
|
||
* bouncing off ropes while running
|
||
|
||
mode_bouncing ;5
|
||
|
||
clr a0
|
||
move a0,*a13(OBJ_XVEL),L
|
||
move a0,*a13(OBJ_ZVEL),L
|
||
|
||
move *a13(ANIMODE),a0
|
||
btst MODE_END_BIT,a0
|
||
jrz #not_ended
|
||
|
||
move *a13(MOVE_DIR),a0
|
||
xori MOVE_LEFT+MOVE_RIGHT,a0 ;flip LEFT/RIGHT
|
||
move a0,*a13(MOVE_DIR)
|
||
|
||
move *a13(NEW_FACING_DIR),a1
|
||
andi MOVE_UP+MOVE_DOWN,a1
|
||
or a0,a1 ;LEFT or RIGHT
|
||
move a1,*a13(FACING_DIR) ;face same dir as run
|
||
|
||
movi adm_run2_anim,a0
|
||
calla change_anim1a
|
||
|
||
SETMODE RUNNING
|
||
|
||
; clr a0
|
||
; move a0,*a13(GETUP_TIME) ;in control
|
||
|
||
#not_ended
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
*
|
||
* STANDING ON TOP OF TURNBUCKLE
|
||
|
||
mode_onturnbkl ;6
|
||
|
||
move a13,a0
|
||
calla wres_get_stick_val_cur
|
||
btst PLAYER_DOWN_BIT,a0
|
||
jrz #no_climbdown
|
||
|
||
movi adm_climb_down_anim,a0
|
||
calla change_anim1
|
||
|
||
SETMODE CLIMBTURNBKL
|
||
|
||
rets
|
||
|
||
|
||
#no_climbdown
|
||
move a13,a0
|
||
calla wres_get_but_val_down
|
||
andi 01111b,a0 ;mask out turbo button
|
||
jrz #no_exit
|
||
|
||
SETMODE INAIR
|
||
|
||
.ref adm_diveofftb_anim
|
||
movi adm_diveofftb_anim,a0
|
||
calla change_anim1
|
||
|
||
rets
|
||
|
||
#no_exit
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
* blocking
|
||
|
||
mode_block ;7
|
||
|
||
move a13,a0
|
||
calla wres_get_but_val_cur
|
||
btst PLAYER_BLOCK_BIT,a0
|
||
jrnz #still_blocking
|
||
|
||
SETMODE NORMAL
|
||
|
||
#still_blocking
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
* adam with zero health
|
||
|
||
mode_dizzy ;8
|
||
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
mode_dead ;9
|
||
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
* opponent held overhead
|
||
|
||
mode_oppoverhead ;10
|
||
|
||
move *a13(ATTACH_PROC),a2,L ;proc attached to
|
||
jrz #not_attached
|
||
move *a2(ATTACH_PROC),a0,L
|
||
jrnz #still_attached
|
||
|
||
#not_attached
|
||
|
||
move *a13(ANIMODE),a0
|
||
btst MODE_UNINT_BIT,a0
|
||
jrnz #no_interrupt
|
||
|
||
clr a0
|
||
move a0,*a13(ATTACH_PROC),L
|
||
|
||
SETMODE NORMAL
|
||
|
||
movi MODE_NORMAL,a0
|
||
move a0,*a13(ANIMODE)
|
||
|
||
#no_interrupt
|
||
rets
|
||
|
||
#still_attached
|
||
|
||
move a13,a0
|
||
calla wres_get_but_val_down
|
||
andi 011111b,a0
|
||
X32 a0
|
||
addi #action_table,a0
|
||
move *a0,a0,L
|
||
call a0
|
||
rets
|
||
|
||
#action_table
|
||
.long #z ;0
|
||
.long #punch ;1
|
||
.long #block ;2
|
||
.long #z ;3
|
||
.long #super_punch ;4
|
||
.long #z,#z,#z ;5-7
|
||
.long #kick ;8
|
||
.long #z,#z,#z,#z,#z,#z,#z ;9-15
|
||
.long #super_kick ;16
|
||
.long #z,#z,#z,#z,#z,#z,#z ;17-23
|
||
.long #z,#z,#z,#z,#z,#z,#z,#z ;24-31
|
||
|
||
************
|
||
#z
|
||
rets
|
||
|
||
************
|
||
#punch ;1
|
||
#block ;2
|
||
#super_punch ;4
|
||
#kick ;8
|
||
#super_kick ;16
|
||
*
|
||
* MODE DX DZ ACTION
|
||
* ----------------------------------------------------
|
||
* all overhead throw
|
||
*
|
||
movi adm_ohthrow1_anim,a0
|
||
calla change_anim1
|
||
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
*
|
||
* CLIMBING UP OR DOWN THE TURNBUCKLE
|
||
|
||
mode_climbturnbkl ;11
|
||
|
||
rets
|
||
|
||
|
||
#*****************************************************************************
|
||
|
||
mode_waitanim ;12
|
||
|
||
move *a13(ANIMODE),a0
|
||
btst MODE_END_BIT,a0
|
||
jrz #not_ended
|
||
|
||
move *a13(CODE_ADDR),a0,L
|
||
call a0
|
||
|
||
#not_ended
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
|
||
mode_grapple ;13
|
||
|
||
move *a13(GETUP_TIME),a0
|
||
jrnz #still_going
|
||
|
||
;now get move off
|
||
;if opponents meter almost zero then break apart
|
||
|
||
calla break_lockup
|
||
rets
|
||
|
||
|
||
|
||
; .ref dnk_3_pile_driver_anim
|
||
; movi dnk_3_pile_driver_anim,a0
|
||
|
||
; .ref dnk_3_head_hold_anim
|
||
; movi dnk_3_head_hold_anim,a0
|
||
|
||
; calla change_anim1a
|
||
|
||
; SETMODE MASTER
|
||
SETMODE HEADHOLD
|
||
|
||
SETMODE NORMAL ;<---- temp!
|
||
|
||
PUSH a13
|
||
move *a13(ATTACH_PROC),a13,L
|
||
movi MODE_SLAVE,a0
|
||
move a0,*a13(PLYRMODE)
|
||
; movi wres_slave_anim,a0
|
||
|
||
; .ref dnk_3_head_held_anim
|
||
; movi dnk_3_head_held_anim,a0
|
||
; calla change_anim1a
|
||
PULL a13
|
||
|
||
rets
|
||
|
||
|
||
#still_going
|
||
|
||
calla lineup_grapple
|
||
|
||
rets
|
||
|
||
|
||
#*****************************************************************************
|
||
|
||
mode_master ;14
|
||
|
||
.ref master_keep_attached
|
||
calla master_keep_attached ;keep slave attached to me
|
||
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
|
||
mode_slave ;15
|
||
rets
|
||
|
||
#*****************************************************************************
|
||
|
||
mode_headhold ;16
|
||
|
||
move *a13(ANIMODE),a0
|
||
btst MODE_END_BIT,a0
|
||
jrz #not_ended
|
||
|
||
clr a0
|
||
movi MODE_NORMAL,a1
|
||
move a1,*a13(PLYRMODE)
|
||
|
||
move *a13(ATTACH_PROC),a10,L
|
||
jrz #skp
|
||
move a1,*a10(PLYRMODE)
|
||
move a0,*a10(ATTACH_PROC),L
|
||
#skp
|
||
move a0,*a13(ATTACH_PROC),L
|
||
|
||
#not_ended
|
||
rets
|
||
|
||
|
||
#*****************************************************************************
|
||
|
||
#VEL equ 30000h
|
||
#DVEL equ 21f0eh
|
||
|
||
|
||
SUBR adm_velocity_table
|
||
|
||
; X, Z
|
||
|
||
.long 0, -#VEL ;0 UP
|
||
|
||
.long #DVEL, -#DVEL ;1 UP-RIGHT
|
||
|
||
.long #VEL, 0 ;2 RIGHT
|
||
|
||
.long #DVEL, #DVEL ;3 DOWN-RIGHT
|
||
|
||
.long 0, #VEL ;4 DOWN
|
||
|
||
.long -#DVEL, #DVEL ;5 DOWN-LEFT
|
||
|
||
.long -#VEL, 0 ;6 LEFT
|
||
|
||
.long -#DVEL, -#DVEL ;7 UP-LEFT
|
||
|
||
|
||
#*****************************************************************************
|
||
|
||
SUBR adm_rotate_anims_table
|
||
; old = up right
|
||
.long adm_stand2_anim ;new = up right
|
||
.long adm_2_to_4_turn_anim ; = down right
|
||
.long adm_2_to_6_turn_anim ; = down left ***
|
||
.long adm_2_to_8_turn_anim ; = up left
|
||
|
||
; old = down right
|
||
.long adm_4_to_2_turn_anim ;new = up right
|
||
.long adm_stand4_anim ; = down right
|
||
.long adm_4_to_6_turn_anim ; = down left
|
||
.long adm_4_to_8_turn_anim ; = up left ***
|
||
|
||
; old = down left
|
||
.long adm_6_to_2_turn_anim ;new = up right ***
|
||
.long adm_6_to_4_turn_anim ; = down right
|
||
.long adm_stand6_anim ; = down left
|
||
.long adm_6_to_8_turn_anim ; = up left
|
||
|
||
; old = up left
|
||
.long adm_8_to_2_turn_anim ;new = up right
|
||
.long adm_8_to_4_turn_anim ; = down right ***
|
||
.long adm_8_to_6_turn_anim ; = down left
|
||
.long adm_stand8_anim ; = up left
|
||
|
||
|
||
SUBR adm_leg_anims_table
|
||
; MOVE
|
||
;(#1 - UP) FACING
|
||
.long adm_walk1_f2_anim ;1 (UP)
|
||
.long adm_walk1_f2_anim ;2 (UP_RIGHT)
|
||
.long adm_walk1_f4_anim ;3 (RIGHT)
|
||
.long adm_walk1_f4_anim ;4 (DOWN_RIGHT)
|
||
.long adm_walk1_f4_anim ;5 (DOWN)
|
||
.long adm_walk1_f4_anim ;6 (DOWN_LEFT)
|
||
.long adm_walk1_f2_anim ;7 (LEFT)
|
||
.long adm_walk1_f2_anim ;8 (UP-LEFT)
|
||
|
||
;(#2 - UP-RIGHT)
|
||
.long adm_walk2_f2_anim ;1 (UP)
|
||
.long adm_walk2_f2_anim ;2 (UP_RIGHT)
|
||
.long adm_walk2_f2_anim ;3 (RIGHT)
|
||
.long adm_walk2_f4_anim ;4 (DOWN_RIGHT)
|
||
.long adm_walk8_f4_anim ;5 (DOWN)
|
||
.long adm_walk8_f4_anim ;6 (DOWN_LEFT)
|
||
.long adm_walk4_f2_anim ;7 (LEFT)
|
||
.long adm_walk4_f2_anim ;8 (UP-LEFT)
|
||
|
||
;(#3 - RIGHT)
|
||
.long adm_walk2_f2_anim ;1 (UP)
|
||
.long adm_walk2_f2_anim ;2 (UP_RIGHT)
|
||
.long adm_walk2_f2_anim ;3 (RIGHT)
|
||
.long adm_walk4_f4_anim ;4 (DOWN_RIGHT)
|
||
.long adm_walk4_f4_anim ;5 (DOWN)
|
||
.long adm_walk8_f4_anim ;6 (DOWN_LEFT)
|
||
.long adm_walk6_f2_anim ;7 (LEFT)
|
||
.long adm_walk6_f2_anim ;8 (UP-LEFT)
|
||
|
||
|
||
;(#4 - DOWN-RIGHT)
|
||
.long adm_walk2_f2_anim ;1 (UP)
|
||
.long adm_walk8_f2_anim ;2 (UP_RIGHT)
|
||
.long adm_walk4_f4_anim ;3 (RIGHT)
|
||
.long adm_walk4_f4_anim ;4 (DOWN_RIGHT)
|
||
.long adm_walk2_f4_anim ;5 (DOWN)
|
||
.long adm_walk6_f4_anim ;6 (DOWN_LEFT)
|
||
.long adm_walk2_f2_anim ;7 (LEFT)
|
||
.long adm_walk6_f2_anim ;8 (UP-LEFT)
|
||
|
||
;(#5 - DOWN)
|
||
.long adm_walk5_f2_anim ;1 (UP)
|
||
.long adm_walk5_f2_anim ;2 (UP_RIGHT)
|
||
.long adm_walk5_f4_anim ;3 (RIGHT)
|
||
.long adm_walk5_f4_anim ;4 (DOWN_RIGHT)
|
||
.long adm_walk5_f4_anim ;5 (DOWN)
|
||
.long adm_walk5_f4_anim ;6 (DOWN_LEFT)
|
||
.long adm_walk5_f2_anim ;7 (LEFT)
|
||
.long adm_walk5_f2_anim ;8 (UP-LEFT)
|
||
|
||
;(#6 - DOWN-LEFT)
|
||
.long adm_walk2_f2_anim ;1 (UP)
|
||
.long adm_walk6_f2_anim ;2 (UP_RIGHT)
|
||
.long adm_walk2_f2_anim ;3 (RIGHT)
|
||
.long adm_walk6_f4_anim ;4 (DOWN_RIGHT)
|
||
.long adm_walk2_f4_anim ;5 (DOWN)
|
||
.long adm_walk4_f4_anim ;6 (DOWN_LEFT)
|
||
.long adm_walk2_f2_anim ;7 (LEFT)
|
||
.long adm_walk8_f2_anim ;8 (UP-LEFT)
|
||
|
||
;(#7 - LEFT)
|
||
.long adm_walk2_f2_anim ;1 (UP)
|
||
.long adm_walk6_f2_anim ;2 (UP_RIGHT)
|
||
.long adm_walk6_f2_anim ;3 (RIGHT)
|
||
.long adm_walk8_f4_anim ;4 (DOWN_RIGHT)
|
||
.long adm_walk4_f4_anim ;5 (DOWN)
|
||
.long adm_walk4_f4_anim ;6 (DOWN_LEFT)
|
||
.long adm_walk2_f2_anim ;7 (LEFT)
|
||
.long adm_walk2_f2_anim ;8 (UP-LEFT)
|
||
|
||
;(#8 - UP-LEFT)
|
||
.long adm_walk2_f2_anim ;1 (UP)
|
||
.long adm_walk4_f2_anim ;2 (UP_RIGHT)
|
||
.long adm_walk6_f2_anim ;3 (RIGHT)
|
||
.long adm_walk8_f4_anim ;4 (DOWN_RIGHT)
|
||
.long adm_walk6_f4_anim ;5 (DOWN)
|
||
.long adm_walk2_f4_anim ;6 (DOWN_LEFT)
|
||
.long adm_walk2_f2_anim ;7 (LEFT)
|
||
.long adm_walk2_f2_anim ;8 (UP-LEFT)
|
||
|
||
|
||
SUBR adm_torso_anims_table
|
||
; old = up right
|
||
.long adm_torso2_anim ;new = up right
|
||
.long adm_2_to_4_turn2_anim ; = down right
|
||
.long adm_2_to_6_turn2_anim ; = down left ***
|
||
.long adm_2_to_8_turn2_anim ; = up left
|
||
|
||
; old = down right
|
||
.long adm_4_to_2_turn2_anim ;new = up right
|
||
.long adm_torso4_anim ; = down right
|
||
.long adm_4_to_6_turn2_anim ; = down left
|
||
.long adm_4_to_8_turn2_anim ; = up left ***
|
||
|
||
; old = down left
|
||
.long adm_6_to_2_turn2_anim ;new = up right ***
|
||
.long adm_6_to_4_turn2_anim ; = down right
|
||
.long adm_torso6_anim ; = down left
|
||
.long adm_6_to_8_turn2_anim ; = up left
|
||
|
||
; old = up left
|
||
.long adm_8_to_2_turn2_anim ;new = up right
|
||
.long adm_8_to_4_turn2_anim ; = down right ***
|
||
.long adm_8_to_6_turn2_anim ; = down left
|
||
.long adm_torso8_anim ; = up left
|
||
|
||
|
||
#*****************************************************************************
|
||
* adam HAS JUST BEEN HIT
|
||
* a10 = * offensive process
|
||
* a13 = * defensive process (adam)
|
||
|
||
SUBR adam_hit
|
||
|
||
move *a10(ATTACK_MODE),a0 ;type of attack that hit adam
|
||
move a0,a1
|
||
sll 5,a1 ;x 32
|
||
addi #hit_table,a1
|
||
move *a1,a1,L ;appropriate routine
|
||
call a1
|
||
|
||
rets
|
||
|
||
#hit_table
|
||
.long _punch ;0
|
||
.long _hdbutt ;1
|
||
.long _kick ;2
|
||
.long _flykick ;3
|
||
.long _grabthrow ;4
|
||
.long _uprcut ;5
|
||
.long _lbowdrop ;6
|
||
.long _grabhold ;7
|
||
.long _grabfling ;8
|
||
.long _push ;9
|
||
.long _hiptoss ;10
|
||
.long _bigboot ;11
|
||
.long _knee ;12
|
||
.long _grapple ;13
|
||
.long _boxpunch ;14
|
||
.long _stomp ;15
|
||
.long _spinkick ;16
|
||
.long _cline ;17
|
||
.long _headhold ;18
|
||
.long _jumpkick ;19
|
||
.long _run ;20
|
||
.long _puppet ;21
|
||
.long _backhand ;22
|
||
.long _buzz ;23
|
||
|
||
|
||
#************************
|
||
;AMODE_PUNCH 0
|
||
_punch
|
||
|
||
|
||
;; cmpi 6,a1 ;a1 = consecutive hits
|
||
;; jrlt #ok
|
||
;; LOCKUP
|
||
;;#ok
|
||
|
||
|
||
WRSND W_ADAM,PUNCH_L1,PUNCH_L2
|
||
|
||
GETLIFE
|
||
jrnz #not_dizzy
|
||
|
||
movi adm_fall_back_anim,a0
|
||
calla change_anim1
|
||
|
||
SETMODE DEAD
|
||
rets
|
||
|
||
#not_dizzy
|
||
|
||
move *a13(PLYRMODE),a1
|
||
cmpi MODE_BLOCK,a1
|
||
jreq #block
|
||
|
||
DAMAGE 1
|
||
|
||
SETMODE NORMAL ;don't change if blocking
|
||
|
||
movi adm_2_head_hit_anim,a0
|
||
move *a13(FACING_DIR),a1
|
||
btst MOVE_UP_BIT,a1
|
||
jrnz #2_hit
|
||
movi adm_4_head_hit_anim,a0
|
||
#2_hit
|
||
calla change_anim1a
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
#block
|
||
DAMAGE 1
|
||
|
||
movi adm_2_hitblock_anim,a0
|
||
move *a13(FACING_DIR),a1
|
||
btst MOVE_UP_BIT,a1
|
||
jrnz #2_blk
|
||
movi adm_4_hitblock_anim,a0
|
||
#2_blk
|
||
calla change_anim1a
|
||
|
||
movi [2,0],a2
|
||
move *a10(OBJ_XPOSINT),a0
|
||
move *a13(OBJ_XPOSINT),a1
|
||
cmp a0,a1 ;offx - defx
|
||
jrgt #slide_right ;attacker on left
|
||
neg a2
|
||
#slide_right
|
||
move a2,*a13(OBJ_XVEL),L
|
||
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
|
||
#************************
|
||
;AMODE_HDBUTT 1
|
||
_hdbutt
|
||
|
||
DAMAGE 10
|
||
|
||
WRSND W_ADAM,HDBUTT_L1,HDBUTT_L2
|
||
|
||
movi adm_2_hitblock_anim,a0
|
||
move *a13(FACING_DIR),a1
|
||
btst MOVE_UP_BIT,a1
|
||
jrnz #2_blk
|
||
movi adm_4_hitblock_anim,a0
|
||
#2_blk
|
||
|
||
move *a13(PLYRMODE),a1
|
||
cmpi MODE_BLOCK,a1
|
||
jreq #block1
|
||
|
||
SETMODE NORMAL
|
||
|
||
movi adm_2_face_hit_anim,a0
|
||
move *a13(FACING_DIR),a1
|
||
btst MOVE_UP_BIT,a1
|
||
jrnz #2_noblk
|
||
movi adm_4_face_hit_anim,a0
|
||
#2_noblk
|
||
calla change_anim1a
|
||
|
||
movi [1,0],a2
|
||
move *a10(OBJ_XPOSINT),a0
|
||
move *a13(OBJ_XPOSINT),a1
|
||
cmp a0,a1 ;offx - defx
|
||
jrgt #go_rgt ;attacker on left
|
||
neg a2
|
||
#go_rgt
|
||
move a2,*a13(OBJ_XVEL),L
|
||
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
#block1
|
||
calla change_anim1a
|
||
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
#************************
|
||
;AMODE_KICK 2
|
||
_kick
|
||
|
||
DAMAGE 10
|
||
|
||
WRSND W_ADAM,KICK_L1,KICK_L2
|
||
|
||
movi adm_2_hitblock_anim,a0
|
||
move *a13(FACING_DIR),a1
|
||
btst MOVE_UP_BIT,a1
|
||
jrnz #2_blk
|
||
movi adm_4_hitblock_anim,a0
|
||
#2_blk
|
||
move *a13(PLYRMODE),a1
|
||
cmpi MODE_BLOCK,a1
|
||
jreq #anim
|
||
|
||
SETMODE NORMAL
|
||
|
||
movi adm_2_body_hit_anim,a0
|
||
move *a13(FACING_DIR),a1
|
||
btst MOVE_UP_BIT,a1
|
||
jrnz #anim
|
||
movi adm_4_body_hit_anim,a0
|
||
|
||
#anim
|
||
calla change_anim1a
|
||
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
#************************
|
||
;AMODE_FLYKICK 3
|
||
_flykick
|
||
|
||
DAMAGE 10
|
||
|
||
WRSND W_ADAM,FLYKICK_L1,FLYKICK_L2
|
||
*
|
||
clr a0
|
||
move a0,*a13(ROLL_POS)
|
||
movi TSEC*2,a0
|
||
move a0,*a13(GETUP_TIME)
|
||
|
||
movi adm_fall_back_anim,a0
|
||
calla change_anim1
|
||
movi [4,0],a2
|
||
move *a10(OBJ_XPOSINT),a0
|
||
move *a13(OBJ_XPOSINT),a1
|
||
cmp a0,a1 ;offx - defx
|
||
jrgt #fall_right ;attacker on left
|
||
movi [-4,0],a2
|
||
#fall_right
|
||
move a2,*a13(OBJ_XVEL),L
|
||
|
||
SETMODE NORMAL
|
||
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
#************************
|
||
;AMODE_GRABTHROW 4
|
||
_grabthrow
|
||
|
||
DAMAGE 10
|
||
|
||
SETMODE ATTACHED
|
||
|
||
move a10,*a13(ATTACH_PROC),L ;proc attached to
|
||
move a13,*a10(ATTACH_PROC),L
|
||
|
||
movi adm_heldoh_anim,a0
|
||
calla change_anim1
|
||
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
#************************
|
||
;AMODE_UPRCUT 5
|
||
_uprcut
|
||
|
||
DAMAGE 10
|
||
|
||
WRSND W_ADAM,UPRCUT_L1,UPRCUT_L2
|
||
|
||
movi adm_fall_back_anim,a0
|
||
calla change_anim1
|
||
|
||
clr a0
|
||
move a0,*a13(ROLL_POS)
|
||
movi TSEC*2,a0
|
||
move a0,*a13(GETUP_TIME)
|
||
|
||
|
||
movi [10,0],a0
|
||
move a0,*a13(OBJ_YVEL),L
|
||
|
||
movi [2,0],a2
|
||
move *a10(OBJ_XPOSINT),a0
|
||
move *a13(OBJ_XPOSINT),a1
|
||
cmp a0,a1 ;offx - defx
|
||
jrgt #fall_right2 ;attacker on left
|
||
movi [-2,0],a2
|
||
#fall_right2
|
||
move a2,*a13(OBJ_XVEL),L
|
||
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
#************************
|
||
;AMODE_LBOWDROP 6
|
||
_lbowdrop
|
||
|
||
DAMAGE 10
|
||
|
||
WRSND W_ADAM,LBOWDROP_L1,LBOWDROP_L2
|
||
|
||
movi adm_hitonground_anim,a0
|
||
calla change_anim1a
|
||
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
#************************
|
||
;AMODE_GRABHOLD 7
|
||
_grabhold
|
||
|
||
DAMAGE 10
|
||
|
||
WRSND W_ADAM,GRABHOLD_L1,GRABHOLD_L2
|
||
|
||
SETMODE ATTACHED
|
||
|
||
move a10,*a13(ATTACH_PROC),L ;proc attached to
|
||
move a13,*a10(ATTACH_PROC),L
|
||
|
||
movi adm_heldoh_anim,a0
|
||
calla change_anim1
|
||
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
#************************
|
||
;AMODE_GRABFLING 8
|
||
_grabfling
|
||
|
||
DAMAGE 10
|
||
|
||
SETMODE RUNNING
|
||
|
||
movi TSEC*2,a0
|
||
move a0,*a13(GETUP_TIME) ;delay b4 gaining control
|
||
|
||
move *a13(FACING_DIR),a0 ;use facing
|
||
andi PLAYER_LEFT_VAL|PLAYER_RIGHT_VAL,a0
|
||
move a0,*a13(MOVE_DIR)
|
||
|
||
move a10,*a13(ATTACH_PROC),L ;proc attached to
|
||
move a13,*a10(ATTACH_PROC),L
|
||
|
||
movi adm_ocrun_anim,a0
|
||
calla change_anim1
|
||
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
#************************
|
||
;AMODE_PUSH 9
|
||
_push
|
||
|
||
DAMAGE 10
|
||
|
||
WRSND W_ADAM,LBOWDROP_L1,LBOWDROP_L2
|
||
|
||
SETMODE NORMAL
|
||
|
||
movi adm_2_losebal_anim,a0
|
||
move *a13(FACING_DIR),a1
|
||
btst MOVE_UP_BIT,a1
|
||
jrnz #2_loseb
|
||
movi adm_4_losebal_anim,a0
|
||
#2_loseb
|
||
calla change_anim1
|
||
|
||
movi [5,0],a2
|
||
move *a10(OBJ_XPOSINT),a0
|
||
move *a13(OBJ_XPOSINT),a1
|
||
cmp a0,a1 ;offx - defx
|
||
jrgt #fall_rightlb ;attacker on left
|
||
neg a2
|
||
#fall_rightlb
|
||
move a2,*a13(OBJ_XVEL),L
|
||
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
#************************
|
||
;AMODE_HIPTOSS 10
|
||
_hiptoss
|
||
|
||
DAMAGE 10
|
||
|
||
WRSND W_ADAM,HIPTOSS_L1,HIPTOSS_L2
|
||
|
||
clr a0
|
||
move a0,*a13(ROLL_POS)
|
||
movi TSEC*2,a0
|
||
move a0,*a13(GETUP_TIME)
|
||
|
||
movi adm_hiptossfall_anim,a0
|
||
calla change_anim1
|
||
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
#************************
|
||
;AMODE_BIGBOOT 11
|
||
_bigboot
|
||
|
||
DAMAGE 10
|
||
|
||
WRSND W_ADAM,LBOWDROP_L1,LBOWDROP_L2
|
||
|
||
clr a0
|
||
move a0,*a13(ROLL_POS)
|
||
movi TSEC*2,a0
|
||
move a0,*a13(GETUP_TIME)
|
||
|
||
movi adm_fall_back_anim,a0
|
||
calla change_anim1
|
||
movi [4,0],a2
|
||
move *a10(OBJ_XPOSINT),a0
|
||
move *a13(OBJ_XPOSINT),a1
|
||
cmp a0,a1 ;offx - defx
|
||
jrgt #fall_rightz ;attacker on left
|
||
movi [-4,0],a2
|
||
#fall_rightz
|
||
move a2,*a13(OBJ_XVEL),L
|
||
|
||
SETMODE NORMAL
|
||
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
#************************
|
||
;AMODE_KNEE 12
|
||
_knee
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
#************************
|
||
|
||
_grapple ;13
|
||
|
||
|
||
calla face_each_other
|
||
|
||
move a10,*a13(ATTACH_PROC),L ;proc attached to
|
||
move a13,*a10(ATTACH_PROC),L
|
||
|
||
move *a13(OBJ_ZPOSINT),a0
|
||
move *a10(OBJ_ZPOSINT),a1
|
||
add a1,a0
|
||
srl 1,a0
|
||
sll 16,a0
|
||
move a0,*a13(OBJ_ZPOS),L
|
||
move a0,*a10(OBJ_ZPOS),L
|
||
|
||
|
||
movi MODE_GRAPPLE,a0
|
||
move a0,*a13(PLYRMODE) ;slave
|
||
move a0,*a10(PLYRMODE) ;master
|
||
|
||
movi 20*3,a0 ;20 button presses
|
||
movi 1*3,a0 ;1 button press !!! temp !!!
|
||
move a0,*a13(GETUP_TIME)
|
||
move a0,*a10(GETUP_TIME)
|
||
|
||
movi wres_slave_anim,a0
|
||
calla change_anim1a
|
||
|
||
calla wres_collis_off
|
||
rets
|
||
|
||
#************************
|
||
|
||
_boxpunch ;14
|
||
_stomp ;15
|
||
_spinkick ;16
|
||
_cline ;17
|
||
_headhold ;18
|
||
_jumpkick ;19
|
||
_run ;20
|
||
_puppet ;21
|
||
_backhand ;22
|
||
_buzz ;23
|
||
rets
|
||
|
||
******************************************************************************
|
||
.end
|
||
|