nba-jam-tournament-edition/PLYR.EQU

321 lines
10 KiB
Plaintext
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters!

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

********************************
* Player/game constants and structures
*.Last mod - 2/5/93 14:49
STRUCTPD ;70 Words max
WORD plyr_num ;P# (0-3)
APTR plyr_tmproc_p ;*Teammates process
APTR plyr_PDATA_p ;*PxDATA
APTR plyr_attrib_p ;*Players attribute table
WORD plyr_seq ;Current ani sequence #
WORD plyr_seqflgs ;^ flags
WORD plyr_seqdir ;^ dir 0-7
APTR plyr_seqcode_p ;*Code to run when seq at end
APTR plyr_ani1st_p ;*1st ani_l pos
APTR plyr_ani_p ;*Current ani_l pos
WORD plyr_anirevff ;Xored into aniflags to reverse FLIPH
WORD plyr_dribmode ;-=Can't dribble, 0=Can drib, +=Dribbling
WORD plyr_passbtime ;0=Pass off, +=# ticks since pass pressed
WORD plyr_rcvpass ;+=# ticks till you rcv pass
WORD plyr_bvel ;Base velocity/16
WORD plyr_turbon ;!0=Turbo on
WORD plyr_ownball ;-=Teammate, 0=Neither, +=I have ball
LONG plyr_ballxo ;Ball X offset (16:16)
WORD plyr_ballyo ;Ball Y offset
WORD plyr_ballzo ;Z^
WORD plyr_shtdly ;After shot delay for coll
WORD plyr_myhoopx ;Plyrs hoop X
WORD plyr_ohoopx ;Opponents hoop X
WORD plyr_tmdir ;Teammates dir
WORD plyr_tmdist ;^ distance
WORD plyr_o1dir ;Opponent 1 dir
WORD plyr_o1dist ;^ dist
WORD plyr_o2dir ;Opponent 1 dir
WORD plyr_o2dist ;^ dist
WORD plyr_balldir ;Balls dir
WORD plyr_balldist ;^ dist
WORD plyr_hpdir ;Plyrs hoop dir
WORD plyr_hpdist ;^ dist
WORD plyr_ohpdir ;Opponents hoop dir
WORD plyr_ohpdist ;^ dist
WORD plyr_indef ;!0=In defensive posture
WORD plyr_nojoy ;0=Use joystick, +=Ignore joy, -=Use this instead
WORD plyr_autoctrl ;!0=Plyr under temp computer control
WORD plyr_dir ;Current dir 0-127 (3:4)
WORD plyr_newdir ;New dir or -1
WORD plyr_dirtime ;# ticks stick pushed and facing current dir
WORD plyr_jmpcnt ;0=No jmp, +=# ticks since jump
WORD plyr_hangcnt ;0=No hang, +=Hang cnt down
WORD plyr_aniy ;Current frames y anipt
WORD plyr_stagcnt ;+x each innerbox collision
WORD plyr_ptsdown ;# pts losing by (neg # if winning)
WORD plyr_d_mode ;-=Defense, 0=Get ball, +=Offense
WORD plyr_d_skill ;0=Average, -=Poorer, +=Better
WORD plyr_d_cflgs ;Drone command flags
WORD plyr_d_seekcnt ;!0=Cntdn to continue seek
WORD plyr_d_seekx ;X to seek
WORD plyr_d_seeky ;Y ^
APTR plyr_headobj_p ;*Head obj
APTR plyr_shadobj_p ;*Shadow obj
; APTR plyr_aligndot_p ;*Alignment obj
WORD plyr_offscrn ;!0=Plyr is on defense & off trailing scrn edge
WORD plyr_offtime ;Amount of time off scrn for idiot box
WORD plyr_tbutn ;Ticks sice last turbo button press
WORD plyr_turndelay ;Ticks before turning toward action (stands)
WORD plyr_idiotbit ;Bit 0=drn pass,1=drn shoot,2=dunk,3=shoot
WORD plyr_shtbutn ;Ticks sice last shoot button press
WORD plyr_keeppal ;Keep pal for reuse upon finish of flames
WORD plyr_hdkeeppal ;Keep head pal for reuse upon finish of flames
LONG plyr_kpzvel ;Keep ZVEL for flyback skids on butt
LONG plyr_kpxvel ;Keep XVEL for flyback skids on butt
STRUCT 0 ;Plyr secondary data
WORD pld_d_nastycnt ;0=Normal, +=Nasty cntdn
; WORD pld_d_tobskcnt ;Drone take out ball seek cnt
; WORD pld_d_tobskx ;X ^ to seek
; WORD pld_d_tobsky ;Y ^
LABEL PLDSZ ;Struc size
STRUCT 0 ;Plyr attribute table
;Size,speed,shot%,dunk ability,defensive ability,steal skill,drone skill
APTR PAT_SCL_p ;*Scale table (keep 1st)
WORD PAT_BVEL ;Base velocity/16
WORD PAT_SHOTSKILL ;Base shooting %
WORD PAT_DUNKSKILL ;Dunk tables this guy can do
WORD PAT_DEFSKILL ;Defensive skill (Blocks)
WORD PAT_STLSKILL ;Defensive steal skill
WORD PAT_SKILL ;Drone base skill
APTR PAT_PALF_p ;*Body flesh palette
APTR PAT_PALU_p ;*Body uniform ^
APTR PAT_PALU2_p ;*Body 2nd uniform ^
APTR PAT_PALT_p ;*Body trim ^
APTR PAT_PALT2_p ;*Body 2nd trim ^
APTR PAT_HEADT_p ;*Head_t
WORD PAT_PASS ;Player passing skill
WORD PAT_POWER ;Player power/intimidation factor
WORD PAT_CLUTCH ;Player clutch performer stat
APTR PAT_SIZE
GRAV .equ 2600h ;2500
GRAVB .equ 2600h ;2500
WRLDMID .equ 2000h
GZBASE .equ 894
;GZMID .equ 1190
GZMAX .equ 1379+10
CZMIN .equ 1000
CZMID .equ 1170
HOOPLX .equ 2000h-320
HOOPRX .equ 2000h+320
HOOPY .equ -120
SEQ .macro n,d
:n: .equ SOFF
.eval SOFF+1,SOFF
.if SEQT
.long :d:
.endif
.endm
SEQG .macro n,d
.global :d:
:n: .equ SOFF
.eval SOFF+1,SOFF
.if SEQT
.long :d:
.endif
.endm
.global pseq_t
.if SEQT
pseq_t
.endif
.asg 0,SOFF
SEQ NULL_SEQ ,0
SEQG STND_SEQ ,stnd_t ;Stand
SEQ STND2_SEQ ,stnd2_t ;Stand straight up
SEQ STNDDEF_SEQ ,stnddef_t
SEQ STNDWB_SEQ ,stndwb_t ;^ with ball
SEQG STNDWB2_SEQ ,stndwb2_t
SEQ STNDDRIB_SEQ ,stnddrib_t
SEQ STNDDRIB2_SEQ ,stnddrib2_t
SEQ STNDDRIBDEF_SEQ ,stnddribdef_t
SEQ WALKFDEF_SEQ ,walkfdef_t
SEQ WALKBDEF_SEQ ,walkbdef_t
SEQ WALKLDEF_SEQ ,walkldef_t
SEQ WALKRDEF_SEQ ,walkrdef_t
SEQ RUN_SEQ ,run_t
SEQ RUNTURB_SEQ ,runturb_t ;Must follow run!
SEQ RUNDRIB_SEQ ,rundrib_t
SEQ RUNDRIBTURB_SEQ ,rundribturb_t ;Must follow rundrib!
SEQ BLOCK_SEQ ,block_t
SEQ BLOCKREJ_SEQ ,blockrej_t ;Reject block
SEQ FASTBLOCKREJ_SEQ ,fastblockrej_t ;Fast reject block
SEQ REBOUND_SEQ ,rebound_t ;Rebound
SEQ REBOUNDA_SEQ ,rebounda_t ;Auto rebound
SEQ NOSPEAR_SEQ ,nospear_t ;Turn a spear into a grab
SEQ SHOOT_SEQ ,shoot_t ;Shoot ball
SEQ QSHOOT_SEQ ,qshoot_t ;Shoot ball quickly
SEQG HOOK_SEQ ,hook_t ;Hook shot
SEQG HOOK2_SEQ ,hook2_t ;Hook shot lower arc
SEQG LAYUP_SEQ ,layup_t ;Layups
SEQG LAYUPREB_SEQ ,layupreb_t ;Layup from rebound
SEQ SHOOTDESP_SEQ ,shootdesp_t ;Desperation (keep in order!)
SEQ SHOOTDESP2_SEQ ,shootdesp2_t
SEQ SHOOTDESP3_SEQ ,shootdesp3_t
SEQ PASSS_SEQ ,passs_t ;Short pass
SEQ PASSC_SEQ ,passc_t ;Long chest pass
SEQ FASTPASSC_SEQ ,fastpassc_t ;Fast long chest pass
; SEQ PASSOH_SEQ ,passoh_t ;Overhead pass
SEQ PASSNEWOH_SEQ ,passnewoh_t ;New overhead pass
SEQ FASTPASSNEWOH_SEQ ,fastpassnewoh_t ;Fast new overhead pass
SEQ PASSDO_SEQ ,passdo_t ;Dish off
SEQ PASSDO2_SEQ ,passdo2_t ;Dish off no big arm extend
SEQ PASSBH_SEQ ,passbh_t ;Behind back pass
SEQG PASSNL_SEQ ,passnl_t ;No look pass
SEQG PASSNL2_SEQ ,passnl2_t ;
SEQG PASSNL3_SEQ ,passnl3_t ;
SEQ STEAL_SEQ ,steal_t ;Swipe at ball
SEQG PUSH_SEQ ,push_t ;Push opponent
SEQG STAGGER_SEQ ,stagger_t ;Staggered
SEQG FALL_SEQ ,fall_t ;Fall down
SEQG FLYBACK_SEQ ,flyback_t ;Pushed
SEQG FLYBACK2_SEQ ,flyback2_t ;Pushed - nofall
SEQG FLYBACKWB_SEQ ,flybackwb_t ;Pushed (have ball)
SEQG FLYBACKWB2_SEQ ,flybackwb2_t ;Pushed (have ball) - no fall
SEQG FFALL_SEQ ,ffall_t ;Fall down - Catch fire!
SEQG FFLYBACK_SEQ ,fflyback_t ;Pushed - Catch fire!
SEQG FFLYBACK2_SEQ ,fflyback2_t ;Pushed - nofall - Catch fire!
SEQG FFLYBACKWB_SEQ ,fflybackwb_t ;Pushed (have ball)
SEQG FFLYBACKWB2_SEQ ,fflybackwb2_t ;Pushed (have ball) - no fall
SEQG PICKUP_SEQ ,pickup_t ;Pickup ball
SEQG ELBO_SEQ ,elbo_t ;Throw elbows
SEQG ELBO2_SEQ ,elbo2_t ;Throw elbows slower
SEQG TIP_SEQ ,tip_t ;Tip stand
SEQG TIPJ_SEQ ,tipj_t ;Tip jump
SEQG DUNKA_SEQ ,dunka_t
SEQG DUNKA2_SEQ ,dunka2_t
SEQG DUNKB_SEQ ,dunkb_t
SEQG DUNKB2_SEQ ,dunkb2_t ;Under hoop dunk
SEQG DUNKB3_SEQ ,dunkb3_t ;Under hoop dunk - quick
SEQG DUNKC_SEQ ,dunkc_t
SEQG DUNKD_SEQ ,dunkd_t
SEQG DUNKD2_SEQ ,dunkd2_t ;Dunkd option
SEQG DUNKE_SEQ ,dunke_t
SEQG DUNKE2_SEQ ,dunke2_t ;Dunke option
SEQG DUNKF_SEQ ,dunkf_t
; SEQG DUNKF2_SEQ ,dunkf2_t ;Under hoop dunk
SEQG DUNKG_SEQ ,dunkg_t
SEQG DUNKG2_SEQ ,dunkg2_t ;Under hoop dunk
SEQG DUNKJ_SEQ ,dunkj_t
SEQG DUNKJ2_SEQ ,dunkj2_t ;Dunkj option
SEQG DUNKJ3_SEQ ,dunkj3_t ;Dunkj option
SEQG DUNKJ4_SEQ ,dunkj4_t ;Dunkj option
SEQG DUNKK_SEQ ,dunkk_t
SEQG DUNKK2_SEQ ,dunkk2_t
SEQG DUNKL_SEQ ,dunkl_t
SEQG DUNKL2_SEQ ,dunkl2_t
SEQG DUNKL3_SEQ ,dunkl3_t
SEQG DUNKL4_SEQ ,dunkl4_t
SEQG DUNKN_SEQ ,dunkn_t
SEQG DUNKN2_SEQ ,dunkn2_t ;Under hoop dunk
SEQG DUNKO_SEQ ,dunko_t
SEQG DUNKO2_SEQ ,dunko2_t
SEQG DUNKP_SEQ ,dunkp_t
SEQG DUNKP2_SEQ ,dunkp2_t
SEQG DUNKP3_SEQ ,dunkp3_t
SEQG DUNKQ_SEQ ,dunkq_t
SEQG DUNKQ2_SEQ ,dunkq2_t
SEQG DUNKQ3_SEQ ,dunkq3_t
SEQG DUNKQ4_SEQ ,dunkq4_t
SEQG DUNKR_SEQ ,dunkr_t
SEQG DUNKR2_SEQ ,dunkr2_t
SEQG DUNKS_SEQ ,dunks_t
SEQG DUNKS2_SEQ ,dunks2_t
SEQG DUNKT_SEQ ,dunkt_t
SEQG DUNKT2_SEQ ,dunkt2_t
SEQG DUNKT3_SEQ ,dunkt3_t
SEQG DUNKT4_SEQ ,dunkt4_t
SEQG DUNKT5_SEQ ,dunkt5_t
; SEQG DUNKT6_SEQ ,dunkt6_t ;Under hoop
SEQG DUNKV_SEQ ,dunkv_t
SEQG DUNKV2_SEQ ,dunkv2_t
SEQG DUNKW_SEQ ,dunkw_t
SEQG DUNKW2_SEQ ,dunkw2_t
SEQG DUNKW3_SEQ ,dunkw3_t
SEQG DUNKY_SEQ ,dunky_t
SEQG DUNKY2_SEQ ,dunky2_t ;Cool
SEQG DUNKZ_SEQ ,dunkz_t
SEQG DUNKZ2_SEQ ,dunkz2_t
SEQG DUNKZ3_SEQ ,dunkz3_t
SEQG DUNKZ5_SEQ ,dunkz5_t
SEQG DUNKZ6_SEQ ,dunkz6_t
SEQG DUNKZ7_SEQ ,dunkz7_t
SEQG DUNKLAY7_SEQ ,dunklay7_t
SEQG DUNKLAY3A_SEQ ,dunklay3a_t
;Dunks below here require scroller to pan up higher (Already works)
SEQG DUNKU_SEQ ,dunku_t
SEQG DUNKU2_SEQ ,dunku2_t
SEQG DUNKU3_SEQ ,dunku3_t
SEQG DUNKU4_SEQ ,dunku4_t
SEQG DUNKU5_SEQ ,dunku5_t
SEQG DUNKU6_SEQ ,dunku6_t
SEQG DUNKX_SEQ ,dunkx_t
SEQG DUNKX2_SEQ ,dunkx2_t
SEQG DUNKX3_SEQ ,dunkx3_t
SEQG DUNKLAY_SEQ ,dunklay_t
SEQG DUNKLAY2_SEQ ,dunklay2_t
SEQG DUNKLAY3_SEQ ,dunklay3_t
SEQG DUNKLAY4_SEQ ,dunklay4_t
SEQG DUNKLAY5_SEQ ,dunklay5_t
SEQG DUNKLAY6_SEQ ,dunklay6_t
SEQG DUNKZ4_SEQ ,dunkz4_t
SEQG DUNKZ8_SEQ ,dunkz8_t ;86h 6c
SEQG DUNKZ9_SEQ ,dunkz9_t
SEQG DUNKZ10_SEQ ,dunkz10_t
SEQG DUNKZ11_SEQ ,dunkz11_t
.if IMGVIEW
SEQG debug_SEQ1 ,debug_t1
SEQG debug_SEQ4 ,debug_t4
.endif
;Seq flags
.asg 0,SOFF
FLAG WALK ;In a defensive walk
FLAG DUNK ;Dunk sequence
FLAG NOJUMP ;Can't jump
FLAG NOMV ;No XZ movement
FLAG EASYSTAG ;Easier to stagger
FLAG NOBALL ;Can't hold ball
FLAG BLOCKREB ;Blocking/rebounding
FLAG DRIFT ;In air drifting
FLAG DRIBBLE ;Doing dribble
FLAG SHOOT ;Shooting the ball
FLAG PASS ;Passer
FLAG NOSTEAL ;Ball can't be stolen
FLAG NOCOLLP ;No collisions with other plyrs
FLAG NOJOY ;Ignore plyrs joystick
FLAG SAMEDIR ;Don't change dir if rcving pass
FLAG LAYUP ;A layup sequence from a dunk
;Drone command flags
.asg 0,SOFF
FLAG DRN_PASS ;Tell drone to pass
FLAG DRN_SHOOT ;^ shoot
;PxCTRL flags
.asg 0,SOFF
FLAG JOYU
FLAG JOYD
FLAG JOYL
FLAG JOYR
FLAG BUT1
FLAG BUT2
FLAG BUT3