******************************** * Player/game constants and structures *.Last mod - 2/5/93 14:49 ; ; Ball data structure ; STRUCTPD WORD ball_anix ;X anipt offset WORD ball_aniy ;Y ^ APTR ball_ani1st_p ;*1st ani_l pos APTR ball_ani_p ;*Current ani_l pos WORD ball_zsznum ;Z size # 0-? WORD ball_collcnt ;# of collisions in a row WORD ball_onfire ;!0=Flaming ;unused WORD ball_xscrllmin ; ;unused WORD ball_xscrllmax ; ; ; Player data structure ; ;DJT Start STRUCTPD ;92 Words max ;DJT End 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_slam_ticks ;ticks until slam ball (minus launch ticks) 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 ;DJT Start WORD plyr_hotspotp ;Plyrs hotspot shot % WORD plyr_hotspotf ;Plyrs hotspot jump flag WORD plyr_hotspotx ;Plyrs hotspot X WORD plyr_hotspotz ;Plyrs hotspot z APTR plyr_hotspot_p ;Plyrs hotspot *proc ;DJT End 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_inair_pass ;-=cant pass to teamate in air, +=can ; 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 LONG plyr_meter_proc ;Jump ball meter WORD plyr_meter_time ;Jump ball meter WORD plyr_old_seqdir ;dir 0-7 - for behind back pass WORD plyr_offset_flag ;0 or 1, Have I already offset this flyback? WORD plyr_hold_block ;Ticks block being held for rejections LONG plyr_lost_ptr ;Player lost arrow process ptr for arw flash WORD plyr_inflsh ;In red flash flag WORD plyr_alley_cnt ;# of alley oops STRUCT 0 ;Plyr secondary data WORD pld_d_nastycnt ;0=Normal, +=Nasty cntdn WORD pld_d_grddist ;% distance to guard opp (0-256) WORD pld_d_lowsecagr ;Low second aggressive time (1-5) 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 ;DJT Start WORD PAT_HOTSPOT ;Player hotspot # ;DJT End APTR PAT_PALSW_p ;*Body swipe palette APTR PAT_PALSW2_p ;*Body 2nd swipe ^ APTR PAT_PALVP_p ;*Body vertical panel ^ APTR PAT_PALVP2_p ;*Body 2nd vertical panel ^ APTR PAT_SIZE ; ; Sequence table define/build macros ; 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 ; ; Sequence table ; .asg 0,SOFF SEQ NULL_SEQ ,0 SEQG STND_SEQ ,stnd_t ;Stand SEQ STND2_SEQ ,stnd2_t ;Stand straight up SEQG STNDDEF_SEQ ,stnddef_t SEQG 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 SEQG WALKFDEF_SEQ ,walkfdef_t SEQG WALKBDEF_SEQ ,walkbdef_t SEQG WALKLDEF_SEQ ,walkldef_t SEQG WALKRDEF_SEQ ,walkrdef_t SEQG RUN_SEQ ,run_t SEQG RUNTURB_SEQ ,runturb_t ;Must follow run! SEQG RUNDRIB_SEQ ,rundrib_t SEQG 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 SEQ UNDR_HOOP_SHT_SEQ,undr_hoop_sht_tbl ;fade sideways and shoot SEQ UNDR_HOOP_SHT_SEQ2,undr_hoop_sht_tbl2 ;fade sideways and shoot 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 SEQ PASSBH2_SEQ ,passbh2_t ;Behind back pass option #2 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 ;FIX!!! Check all references to regular STEAL_SEQ! ; SEQ STEALUP_SEQ ,stealup_t ;Swipe at ball - swat upward 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 TIPSTND_SEQ ,tipstnd_t ;Stand before jump ball SEQG SPIN_MOVE_SEQ ,spinmove_t ;avoid plr by spinning around him ; SEQG LOB_PASS_SEQ ,lobpass_t ;lob the ball to the hoop ; SEQG PUTBACK_SEQ ,putback_t ;put-back slam ; SEQG GOOD_BLOCK_SEQ ,good_block_t ;Jump into this on good block SEQG DUNKA_SEQ ,dunka_t SEQG DUNKA2_SEQ ,dunka2_t SEQG DUNKA3_SEQ ,dunka3_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 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 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 DUNKN_SEQ ,dunkn_t SEQG DUNKO_SEQ ,dunko_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 DUNKR_SEQ ,dunkr_t SEQG DUNKR2_SEQ ,dunkr2_t SEQG DUNKS_SEQ ,dunks_t SEQG DUNKS2_SEQ ,dunks2_t SEQG DUNKU_SEQ ,dunku_t SEQG DUNKU2_SEQ ,dunku2_t ;all seq. from here down, scroller moves slower (height range ?) SEQG DUNKU3_SEQ ,dunku3_t SEQG DUNKU4_SEQ ,dunku4_t SEQG DUNKU5_SEQ ,dunku5_t SEQG DUNKU6_SEQ ,dunku6_t SEQG DUNKU7_SEQ ,dunku7_t SEQG DUNKU8_SEQ ,dunku8_t SEQG DUNKQ3_SEQ ,dunkq3_t SEQG DUNKO2_SEQ ,dunko2_t SEQG DUNKN2_SEQ ,dunkn2_t ;Under hoop dunk SEQG DUNKN3_SEQ ,dunkn3_t ;Under hoop dunk 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 DUNKV_SEQ ,dunkv_t SEQG DUNKV2_SEQ ,dunkv2_t SEQG DUNKV3_SEQ ,dunkv3_t SEQG DUNKV4_SEQ ,dunkv4_t SEQG DUNKW_SEQ ,dunkw_t SEQG DUNKW2_SEQ ,dunkw2_t SEQG DUNKW3_SEQ ,dunkw3_t SEQG DUNKX_SEQ ,dunkx_t SEQG DUNKX2_SEQ ,dunkx2_t SEQG DUNKX3_SEQ ,dunkx3_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 DUNKLAY_SEQ ,dunklay_t SEQG DUNKLAY2_SEQ ,dunklay2_t SEQG DUNKLAY3_SEQ ,dunklay3_t SEQG DUNKLAY3A_SEQ ,dunklay3a_t SEQG DUNKLAY3B_SEQ ,dunklay3b_t SEQG DUNKLAY3C_SEQ ,dunklay3c_t SEQG DUNKLAY4_SEQ ,dunklay4_t SEQG DUNKLAY5_SEQ ,dunklay5_t SEQG DUNKLAY6_SEQ ,dunklay6_t SEQG DUNKLAY7_SEQ ,dunklay7_t SEQG DUNKLAY7A_SEQ ,dunklay7a_t SEQG DUNKLAY8_SEQ ,dunklay8_t SEQG QUICK_LAYUP_SEQ ,quicklay_t SEQG ALLEYOOP_PAS_SEQ,alleyoop_pas_t ; SEQG DDUNK_STRT_SEQ ,ddunk_strt_t SEQG DDUNK_STRT2_SEQ ,ddunk_strt2_t ;dont change order SEQG ALLEYOOP1_SEQ ,alley_oop1_t SEQG ALLEYOOP2_SEQ ,alley_oop2_t SEQG ALLEYOOP3_SEQ ,alley_oop3_t SEQG ALLEYOOP4_SEQ ,alley_oop4_t SEQG ALLEYOOP5_SEQ ,alley_oop5_t SEQG ALLEYOOP6_SEQ ,alley_oop6_t SEQG ALLEYOOP7_SEQ ,alley_oop7_t SEQG ALLEYOOP8_SEQ ,alley_oop8_t SEQG ALLEYOOP9_SEQ ,alley_oop9_t SEQG ALLEYOOP10_SEQ ,alley_oop10_t ;dir 1 - <5 dnk attrib SEQG ALLEYOOP11_SEQ ,alley_oop11_t ;dir 2 - <5 dnk attrib SEQG ALLEYOOP12_SEQ ,alley_oop12_t ;dir 3 - <5 dnk attrib SEQG ALLEYOOP13_SEQ ,alley_oop13_t ;dir 4 - <5 dnk attrib SEQG ALLEYOOP14_SEQ ,alley_oop14_t ;dir 5 - <5 dnk attrib ;dont change order SEQG DDUNK_RECV_SEQ ,ddunk_recv_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