3058 lines
49 KiB
NASM
3058 lines
49 KiB
NASM
.FILE 'SHOTS.ASM'
|
||
.TITLE 'ROBO-RAMA GAME PROGRAM SHOTS STUFF'
|
||
.WIDTH 132
|
||
.OPTION B,D,L,T
|
||
.MNOLIST
|
||
|
||
;
|
||
; INITIATED: APRIL 13,1989
|
||
; MODIFIED: !
|
||
; SOFTWARE: MARK TURMELL
|
||
;
|
||
; COPYRIGHT (C) 1989 WILLIAMS ELECTRONICS GAMES, INC.
|
||
;
|
||
;
|
||
; GET THE SYSTEM STUFF
|
||
|
||
.INCLUDE "MPROC.EQU" ;MPROC EQUATES
|
||
.INCLUDE "DISP.EQU" ;DISPLAY PROC. EQUATES
|
||
.INCLUDE "\VIDEO\SYS\SYS.INC" ;Z UNIT SYSTEM EQUATES
|
||
.INCLUDE "\VIDEO\SYS\MACROS.HDR" ;MACROS DEFINITIONS
|
||
.INCLUDE "IMGTBL.GLO"
|
||
.INCLUDE "ROBO.EQU"
|
||
;
|
||
;SOUNDS EXTERNAL
|
||
;
|
||
.REF SCASH,GIFT,ICON,SHOT,MISS,EXP3,EXP1,TING,FREESND
|
||
.REF BUBL,RIFL,EXP3HI,FSHOT,PZLSND,GRNSND,ICSND
|
||
.REF WOO1,WOO2,BINGO,EXP3HIB
|
||
;
|
||
;SYMBOLS EXTERNALLY DEFINED
|
||
;
|
||
.REF SMRT_GAL,ZEROCNTS,RINGTIME,MCON,CNTDIG1
|
||
; .REF GAMSTATE
|
||
.REF FACEON,SCRADD2,FFLG,TOID_ON,CIRCUIT,GETFPAL,PCNT
|
||
.REF P1CSH,P2CSH,P1PZ1,P2PZ1,WNTOUT,KILL_OB
|
||
.REF SCORETYP,P2LVS,P1LVS,RFACEP,LFACEP,OBJOFF,OBJON
|
||
.REF METERP1,METERP2,STATUS
|
||
.REF FRANIM,DELPAL,DRINF,BOOM2,WAVEYX
|
||
.REF RANGRAND,RINGS,SHAKER,KILL_H1,KILL_F2
|
||
.REF KEEP_TOPL_GATE,KEEP_TOPR_GATE,KILL_TK,KILL_TS
|
||
.REF RSIDEVW,LSIDEVW,KILL_CBALL,P1DATA,P2DATA
|
||
.REF LASRX,LASRY,FILLUP,METERS,SHK_ON
|
||
.REF KILL,XYSEEK2,KILL_R1,KILL_SK1
|
||
.REF ICNFLG,PZFLG,PZON,PRZ_LIT
|
||
|
||
;
|
||
;SYMBOLS DEFINED IN THIS FILE
|
||
;
|
||
.DEF SPRAYON,PODON,GRENON,KEYON,NSTPON,RINGON,SHOEON
|
||
.DEF FIRE_DIRECTION,BULL_EXP_LIST,SMRTON,KOFFC
|
||
.DEF BLT_CNT,MAXBLT,SMLEXP,BAD0
|
||
.DEF B_DIR,KILL_BULL,BLTDIR,STRT_WPN,REGEXP
|
||
.DEF MV_BULL,KILL_BULLT,TPZ1,TPZ2,TPZ3,TCSH,TITM
|
||
.DEF BOSSON,SENDCRNR
|
||
;
|
||
;UNINITIALIZED RAM DEFINITIONS
|
||
;
|
||
.BSS BOSSON,8
|
||
.BSS NXT_XVEL,32
|
||
.BSS NXT_YVEL,32
|
||
.BSS BLT_CNT,8 ;TOTAL BULLETS ACTIVE
|
||
.BSS B_DIR,16 ;BULLET DIRECTION 1-9 BUT NOT 3!
|
||
;
|
||
;EQUATES FIRST ORIGINATED IN THIS FILE
|
||
;
|
||
;PUT IN ANGLE VELOCITIES!
|
||
BLTYVEL .EQU 072000H ;>164000
|
||
BLTXVEL .EQU 072000H ;>164000
|
||
BLT5YVEL .EQU 038000H ;>164000
|
||
BLT5XVEL .EQU 040000H ;>164000
|
||
GRNYVEL .EQU 000H
|
||
GRNXVEL .EQU 2000H
|
||
;-18000 FOR FLATFACE
|
||
GRNYVEL2 .EQU -018000H
|
||
GRNXVEL2 .EQU -018000H
|
||
|
||
MAXBLT .EQU 45
|
||
|
||
.TEXT
|
||
;
|
||
TITM
|
||
;TOUCH CASH ON FLOOR
|
||
CLR A10
|
||
;CHANGE OID, RAISE ZPOS, SEND TOWARD P1/P2 TV MONITOR, SLEEP 2 SEC, KILL, DIE
|
||
MMTM SP,A1,A2,A3,A4,A5,A6,A7,A9
|
||
MOVI P1DATA,A2
|
||
PUSH A0
|
||
MOVE *A0(OPLINK),A0,L
|
||
MOVB *A0(PNUM),A1
|
||
CMPI 1,A1
|
||
JRZ TR5
|
||
MOVI P2DATA,A2
|
||
TR5
|
||
MOVI PZPT2,A1
|
||
CALLA SCRADD2
|
||
PULL A0
|
||
; MOVE @MCON,A1
|
||
; JRZ NOMC
|
||
; CALLR SEND2
|
||
; JRUC MC
|
||
;NOMC
|
||
CALLR SEND
|
||
;MC
|
||
CREATE FLYPID,KOFFC2
|
||
MMFM SP,A1,A2,A3,A4,A5,A6,A7,A9
|
||
RETS
|
||
TCSH:
|
||
;TOUCH CASH ON FLOOR
|
||
CLR A10
|
||
;CHANGE OID, RAISE ZPOS, SEND TOWARD P1/P2 TV MONITOR, SLEEP 2 SEC, KILL, DIE
|
||
MMTM SP,A1,A2,A3,A4,A5,A6,A7,A9
|
||
CALLR SEND
|
||
CREATE FLYPID,KOFFC
|
||
MMFM SP,A1,A2,A3,A4,A5,A6,A7,A9
|
||
RETS
|
||
;SEND2
|
||
; MOVE *A0(OPLINK),A0,L
|
||
; MOVB *A0(PNUM),A9 ;PLAYER 1 OR 2
|
||
; MOVI WOO1,A0 ;GET CASH PICKUP SND
|
||
; JRUC SEN2A
|
||
SEND
|
||
MOVE *A0(OPLINK),A0,L
|
||
MOVB *A0(PNUM),A9 ;PLAYER 1 OR 2
|
||
MOVI SCASH,A0 ;GET CASH PICKUP SND
|
||
;SEN2A
|
||
CALLA ONESND
|
||
SENDCRNR
|
||
MOVI CLSNEUT|TYPNEUT,A0
|
||
MOVE A0,*A8(OID)
|
||
MOVI DMAWNZ|M_NOCOLL,A0
|
||
MOVE A0,*A8(OFLAGS)
|
||
MOVI 200,A0
|
||
MOVE A0,*A8(OZPOS)
|
||
;
|
||
CLR A5
|
||
CLR A6
|
||
MOVE @WAVEYX,A0,L ;WAVE TL OFFSET
|
||
MOVY A0,A6 ;Y VALUE TO SCROLL TO IN A10
|
||
SRL 16,A6
|
||
ADDI 40,A6
|
||
MOVX A0,A5 ;X VALUE TO SCROLL TO IN A9
|
||
ADDI 30,A5
|
||
CMPI 1,A9
|
||
JREQ UPLC
|
||
;PLYR 2 TV SEEK
|
||
ADDI 340,A5
|
||
MOVE @MCON,A0
|
||
JRNZ UPLC2
|
||
MOVE @P2CSH,A0
|
||
INC A0
|
||
INC A0
|
||
MOVE A0,@P2CSH
|
||
JRUC UPLC2
|
||
UPLC
|
||
MOVE @MCON,A0
|
||
JRNZ UPLC2
|
||
MOVE @P1CSH,A0
|
||
INC A0
|
||
INC A0
|
||
MOVE A0,@P1CSH
|
||
UPLC2 CALLA XYSEEK2
|
||
MOVE A5,*A8(OXVEL),L
|
||
MOVE A6,*A8(OYVEL),L
|
||
RETS
|
||
|
||
;
|
||
KOFFC
|
||
MOVE @WAVEYX,A0,L ;WAVE TL OFFSET
|
||
MOVY A0,A11 ;Y VALUE TO SCROLL TO IN A10
|
||
SRL 16,A11
|
||
ADDI 35,A11
|
||
MOVI 18,A10 ;A10 IS TIMER
|
||
SLPC SLEEP 10
|
||
MOVE *A8(OYPOS),A0
|
||
CMP A0,A11
|
||
JRNC DNSLPC
|
||
DSJS A10,SLPC
|
||
DNSLPC
|
||
;DELETE FLOATING CASH IMAGE
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
KOFFC2
|
||
MOVE A8,A0
|
||
MOVE *A0(OPLINK),A0,L
|
||
CALLA KILL
|
||
|
||
MOVE @WAVEYX,A0,L ;WAVE TL OFFSET
|
||
MOVY A0,A11 ;Y VALUE TO SCROLL TO IN A10
|
||
SRL 16,A11
|
||
ADDI 35,A11
|
||
MOVI 18,A10 ;A10 IS TIMER
|
||
LPC SLEEP 10
|
||
MOVE *A8(OYPOS),A0
|
||
CMP A0,A11
|
||
JRNC NSLPC
|
||
DSJS A10,LPC
|
||
NSLPC
|
||
;HAS REACHED TOP
|
||
;KILL PRIZE, REMOVE FACE, REMOVE LIVES, PLACE GIFT PICTURE, START COLOR CYCLE
|
||
;REMOVE SCORE DIGITS, PLACE TEXT MESSAGE
|
||
;SLEEP, TURN OFF PRIZE & TEXT, REPLACE FACE & LIVES, KILL COLOR CYCLE
|
||
;A10=0,1,2 FOR PRIZE TYPE
|
||
;DELETE FLOATING CASH IMAGE
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
|
||
TPZ1:
|
||
;TOUCHED PRIZE 1
|
||
CLR A10
|
||
INHR
|
||
;CHANGE OID, RAISE ZPOS, SEND TOWARD P1/P2 TV MONITOR, SLEEP 2 SEC, KILL, DIE
|
||
;RESET PZFLG
|
||
MMTM SP,A1,A2,A3,A4,A5,A6,A7,A9
|
||
|
||
MOVE *A0(OPLINK),A0,L
|
||
MOVB *A0(PNUM),A9 ;PLAYER 1 OR 2
|
||
MOVK 1,A0
|
||
MOVB A0,@PZFLG
|
||
MOVE @CIRCUIT,A0
|
||
SLL 5,A0
|
||
ADDI PZLSND,A0
|
||
MOVE *A0,A0,L
|
||
MOVE A10,A1
|
||
SLL 5,A1
|
||
ADD A1,A0
|
||
MOVE *A0,A0,L
|
||
CALLA ONESND
|
||
|
||
MOVI CLSNEUT|TYPNEUT,A0
|
||
MOVE A0,*A8(OID)
|
||
MOVI DMAWNZ|M_NOCOLL,A0
|
||
MOVE A0,*A8(OFLAGS)
|
||
MOVI 200,A0
|
||
MOVE A0,*A8(OZPOS)
|
||
;
|
||
CLR A5
|
||
CLR A6
|
||
MOVE @WAVEYX,A0,L ;WAVE TL OFFSET
|
||
MOVY A0,A6 ;Y VALUE TO SCROLL TO IN A10
|
||
SRL 16,A6
|
||
ADDI 40,A6
|
||
MOVX A0,A5 ;X VALUE TO SCROLL TO IN A9
|
||
ADDI 30,A5
|
||
|
||
CMPI 1,A9
|
||
JREQ UPL
|
||
;PLYR 2 TV SEEK
|
||
;INC P2PZ CNT
|
||
MOVI P2DATA,A2
|
||
MOVI PZPT,A1
|
||
CALLA SCRADD2
|
||
|
||
MOVE A10,A0
|
||
SLL 3,A0
|
||
ADDI P2PZ1,A0
|
||
MOVB *A0,A1
|
||
ADDK 10,A1
|
||
MOVB A1,*A0
|
||
ADDI 340,A5
|
||
JRUC UPL2
|
||
UPL
|
||
;INC P1PZ CNT
|
||
MOVI P1DATA,A2
|
||
MOVI PZPT,A1
|
||
CALLA SCRADD2
|
||
|
||
MOVE A10,A0
|
||
SLL 3,A0
|
||
ADDI P1PZ1,A0
|
||
MOVB *A0,A1
|
||
ADDK 10,A1
|
||
MOVB A1,*A0
|
||
UPL2
|
||
CALLA XYSEEK2
|
||
MOVE A5,*A8(OXVEL),L
|
||
MOVE A6,*A8(OYVEL),L
|
||
CREATE FLYPID,KOFF
|
||
MMFM SP,A1,A2,A3,A4,A5,A6,A7,A9
|
||
RETS
|
||
;
|
||
KOFF
|
||
MOVE @WAVEYX,A0,L ;WAVE TL OFFSET
|
||
MOVY A0,A11 ;Y VALUE TO SCROLL TO IN A10
|
||
SRL 16,A11
|
||
ADDI 35,A11
|
||
SLP SLEEP 4
|
||
|
||
SLP2 MOVE *A8(OYPOS),A0
|
||
CMP A0,A11
|
||
JRC SLP
|
||
MOVE A9,A0
|
||
DEC A0
|
||
SLL 3,A0
|
||
ADDI CNTDIG1,A0
|
||
MOVB *A0,A0
|
||
JRNZ OUT
|
||
|
||
MOVB @WNTOUT,A0
|
||
JRZ SLP2Z
|
||
OUT
|
||
;WANTOUT OF ARENA!
|
||
CLR A0
|
||
MOVB A0,@WNTOUT
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
SLP2Z
|
||
;HAS REACHED TOP
|
||
;KILL PRIZE, REMOVE FACE, REMOVE LIVES, PLACE GIFT PICTURE, START COLOR CYCLE
|
||
;REMOVE SCORE DIGITS, PLACE TEXT MESSAGE
|
||
;SLEEP, TURN OFF PRIZE & TEXT, REPLACE FACE & LIVES, KILL COLOR CYCLE
|
||
;A10=0,1,2 FOR PRIZE TYPE
|
||
; MOVE @GAMSTATE,A0,W
|
||
; CMPI INAMODE,A0
|
||
; JRZ CLEANUP
|
||
|
||
MOVI GIFT,A0
|
||
CALLA ONESND
|
||
|
||
CMPI 1,A9
|
||
JREQ LSD
|
||
;RIGHT SIDE
|
||
MOVE @RFACEP,A0,L
|
||
CALLA OBJOFF
|
||
MOVE @P2LVS,A0,L
|
||
CALLA OBJOFF
|
||
MOVE @METERP2,A0,L
|
||
CALLA OBJOFF
|
||
MOVE @SCORETYP,A0
|
||
ANDI 01,A0
|
||
MOVE A0,@SCORETYP
|
||
;PLACE CORRECT PRIZE AND TEXT IN PLYR 2 AREA
|
||
;CIRCUIT 1
|
||
SLL 5,A10
|
||
MOVE @CIRCUIT,A6
|
||
SLL 5,A6
|
||
ADDI PZL,A6
|
||
MOVE *A6,A6,L
|
||
; MOVI PZPIC,A6
|
||
ADD A10,A6
|
||
MOVE @RFACEP,A0,L
|
||
MOVE *A0(OYPOS),A1
|
||
ADDI 6,A1
|
||
MOVE A1,*A8(OYPOS)
|
||
MOVE *A0(OXPOS),A1
|
||
SUBI 10,A1
|
||
MOVE A1,*A8(OXPOS)
|
||
CLR A0
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVE A0,*A8(OYVEL),L
|
||
MOVI 300,A0
|
||
MOVE A0,*A8(OZPOS)
|
||
|
||
MOVE *A6,A1,L
|
||
MOVE *A8(OFLAGS),A4
|
||
;CHANGE TO PRZ PALETTE!
|
||
MOVI PRZ,A0
|
||
CALLA GETFPAL
|
||
MOVE A0,*A8(OPAL),W
|
||
CALLA ANI
|
||
; NOW PLACE TEXT ON SCORE BOARD
|
||
;CIRCUIT 1
|
||
MOVI [0112H,0],A0
|
||
MOVI [35H,0],A1
|
||
MOVE @CIRCUIT,A2
|
||
SLL 5,A2
|
||
ADDI TLST,A2
|
||
MOVE *A2,A2,L
|
||
ADD A2,A10
|
||
; ADDI TTXT,A10
|
||
MOVE *A10,A2,L
|
||
MOVI 19,A3 ;259
|
||
MOVI DMAWNZ|M_NOCOLL,A4 ;NON-ZERO VALUE
|
||
MOVI CLSNEUT|TYPNEUT,A5
|
||
CLR A6
|
||
CLR A7
|
||
PUSH A8
|
||
CALLA BEGINOBJ
|
||
MOVE A8,A9
|
||
PULL A8
|
||
|
||
MOVB @PZON,A0
|
||
JRNE SP2
|
||
CREATE 0,PRZ_LIT
|
||
|
||
SP2
|
||
MOVB @PZON,A0
|
||
ADDI 250,A0
|
||
MOVB A0,@PZON
|
||
|
||
;NEED TO WAKE UP FROM THIS SLEEP SOONER IF WNTOUT IS SET TO 1!
|
||
MOVK 24,A10
|
||
R4 SLEEP 5
|
||
MOVB @WNTOUT,A0
|
||
JRNZ WNT2
|
||
DSJS A10,R4
|
||
WNT2
|
||
CLR A0
|
||
MOVB A0,@WNTOUT
|
||
MOVK 1,A0
|
||
MOVB A0,@PZON ;COLOR CYCLER WILL TURN IT OFF
|
||
|
||
MOVE @METERP2,A0,L
|
||
CALLA OBJON
|
||
MOVE @RFACEP,A0,L
|
||
CALLA OBJON
|
||
MOVE @P2LVS,A0,L
|
||
CALLA OBJON
|
||
MOVE @SCORETYP,A0
|
||
ORI 2,A0
|
||
MOVE A0,@SCORETYP
|
||
;DELETE FLOATING PRIZE PACKAGE
|
||
MOVE A9,A0
|
||
CALLA DELOBJ
|
||
;CLEANUP
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
LSD
|
||
;LEFT SIDE
|
||
MOVE @LFACEP,A0,L
|
||
CALLA OBJOFF
|
||
MOVE @P1LVS,A0,L
|
||
CALLA OBJOFF
|
||
MOVE @METERP1,A0,L
|
||
CALLA OBJOFF
|
||
MOVE @SCORETYP,A0
|
||
ANDI 02,A0
|
||
MOVE A0,@SCORETYP
|
||
;PLACE CORRECT PRIZE AND TEXT IN PLYR 1 AREA
|
||
;CIRCUIT 1
|
||
SLL 5,A10
|
||
MOVE @CIRCUIT,A6
|
||
SLL 5,A6
|
||
ADDI PZL,A6
|
||
MOVE *A6,A6,L
|
||
; MOVI PZPIC,A6
|
||
ADD A10,A6
|
||
MOVE @LFACEP,A0,L
|
||
MOVE *A0(OYPOS),A1
|
||
ADDI 6,A1
|
||
MOVE A1,*A8(OYPOS)
|
||
MOVE *A0(OXPOS),A1
|
||
SUBI 10,A1
|
||
MOVE A1,*A8(OXPOS)
|
||
CLR A0
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVE A0,*A8(OYVEL),L
|
||
MOVI 300,A0
|
||
MOVE A0,*A8(OZPOS)
|
||
MOVE *A6,A1,L
|
||
MOVE *A8(OFLAGS),A4
|
||
;CHANGE TO PRZ PALETTE!
|
||
MOVI PRZ,A0
|
||
CALLA GETFPAL
|
||
MOVE A0,*A8(OPAL),W
|
||
CALLA ANI
|
||
|
||
MOVI [024H,0],A0
|
||
MOVI [35H,0],A1
|
||
MOVE @CIRCUIT,A2
|
||
SLL 5,A2
|
||
ADDI TLST,A2
|
||
MOVE *A2,A2,L
|
||
ADD A2,A10
|
||
MOVE *A10,A2,L
|
||
MOVI 19,A3 ;259
|
||
MOVI DMAWNZ|M_NOCOLL,A4 ;NON-ZERO VALUE
|
||
MOVI CLSNEUT|TYPNEUT,A5
|
||
CLR A6
|
||
CLR A7
|
||
PUSH A8
|
||
CALLA BEGINOBJ
|
||
MOVE A8,A9
|
||
PULL A8
|
||
|
||
|
||
MOVB @PZON,A0
|
||
JRNE SP1
|
||
CREATE 0,PRZ_LIT
|
||
SP1
|
||
MOVB @PZON,A0
|
||
ADDI 150,A0
|
||
MOVB A0,@PZON
|
||
|
||
MOVK 24,A10
|
||
R5 SLEEP 5
|
||
MOVB @WNTOUT,A0
|
||
JRNZ WNT3
|
||
DSJS A10,R5
|
||
WNT3
|
||
CLR A0
|
||
MOVB A0,@WNTOUT
|
||
MOVK 1,A0
|
||
MOVB A0,@PZON
|
||
|
||
MOVE @METERP1,A0,L
|
||
CALLA OBJON
|
||
MOVE @LFACEP,A0,L
|
||
CALLA OBJON
|
||
MOVE @P1LVS,A0,L
|
||
CALLA OBJON
|
||
MOVE @SCORETYP,A0
|
||
ORI 1,A0
|
||
MOVE A0,@SCORETYP
|
||
;DELETE FLOATING PRIZE PACKAGE
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
MOVE A9,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
TPZ2:
|
||
MOVK 1,A10
|
||
JRUC INHR
|
||
TPZ3:
|
||
MOVK 2,A10
|
||
JRUC INHR
|
||
|
||
TTXT .LONG TTSTR,TCAR,TVCR
|
||
T2TXT .LONG TTV,TLUGG,TTRIP
|
||
T3TXT .LONG THGM,TMWR,TMEAT
|
||
|
||
TLST .LONG TTXT,T2TXT,T3TXT
|
||
|
||
PZPIC .LONG TSTR,CRPRZ,VCR
|
||
PZ2PIC .LONG TVPRZ,LUGG,TRPPRZ
|
||
PZ3PIC .LONG HGMPRZ,MWRPRZ,MTPRZ
|
||
|
||
PZL .LONG PZPIC,PZ2PIC,PZ3PIC
|
||
|
||
RINGON:
|
||
;TURN RING ON AROUND PLAYER ICON PICKUP
|
||
;REDUCE MMTM!!!
|
||
MMTM SP,A1,A7,A9
|
||
MOVE *A0(OPLINK),A0,L
|
||
MOVB *A0(PNUM),A9
|
||
MOVE @RINGTIME,A10
|
||
; MOVI 300,A10 ;TIME RINGS ARE ON
|
||
CREATE RNGPID,RINGS ;PLACE RING AROUND PLAYER X
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
MOVK 1,A0
|
||
MOVB A0,@ICNFLG
|
||
MOVI ICSND,A0
|
||
CALLA ONESND
|
||
MMFM SP,A1,A7,A9
|
||
RETS
|
||
KEYON:
|
||
;PLAYER NOW CARRIES KEY
|
||
;REDUCE MMTM!!!
|
||
MMTM SP,A1,A2,A3,A4,A5,A6,A7
|
||
MOVE *A0(OPLINK),A0,L
|
||
MOVB *A0(PNUM),A9
|
||
MOVI P1DATA,A2
|
||
MOVI KEYPT,A1
|
||
CMPI 1,A9
|
||
JRZ KEY1
|
||
MOVI P2DATA,A2
|
||
KEY1 CALLA SCRADD2
|
||
; MOVE A8,A0
|
||
; CALLA DELOBJ
|
||
MOVK 1,A0
|
||
MOVB A0,@ICNFLG
|
||
MOVI FREESND,A0
|
||
CALLA ONESND
|
||
|
||
CALLA SENDCRNR
|
||
CREATE FLYPID,KOFFC
|
||
|
||
MMFM SP,A1,A2,A3,A4,A5,A6,A7
|
||
RETS
|
||
SHOEON:
|
||
;FAST SHOES
|
||
;REDUCE MMTM!!!
|
||
MMTM SP,A1,A2
|
||
MOVE *A0(OPLINK),A0,L ;A0=PLAYER WHO GOT THIS ICON
|
||
MOVE *A0(LEG_PRC),A0,L
|
||
MOVI 300,A1 ;TIME SHOES ARE ON
|
||
MOVE @CIRCUIT,A2
|
||
CMPI 2,A2
|
||
JRNZ SH1
|
||
MOVI 500,A1 ;TIME SHOES ARE ON
|
||
SH1
|
||
MOVB A1,@ICNFLG
|
||
MOVE A1,*A0(SHOECNT),W
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
MOVI WOO2,A0
|
||
CALLA ONESND
|
||
MMFM SP,A1,A2
|
||
RETS
|
||
SMRTON:
|
||
;SMART BOMB EVERYTHING ON SCREEN
|
||
;REDUCE MMTM!!!
|
||
MMTM SP,A1,A7,A9,A11
|
||
MOVE A0,A9 ;KEEP PLAYER IMAGE WHO PICKED ME UP
|
||
MOVK 1,A1
|
||
MOVB A1,@ICNFLG
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
CREATE 0,SBSND
|
||
|
||
CREATE 0,SBOMB
|
||
|
||
MMFM SP,A1,A7,A9,A11
|
||
RETS
|
||
SBSND
|
||
MOVI EXP3HIB,A0
|
||
CALLA ONESND
|
||
SLEEP 5
|
||
MOVI EXP3HIB,A0
|
||
CALLA ONESND
|
||
SLEEP 5
|
||
MOVI EXP3HIB,A0
|
||
CALLA ONESND
|
||
SLEEP 5
|
||
MOVI EXP3HIB,A0
|
||
CALLA ONESND
|
||
SLEEP 17
|
||
MOVI BINGO,A0
|
||
CALLA ONESND
|
||
DIE
|
||
SBOMB
|
||
;SMART BOMB
|
||
;A9=PLYR IMG PTR WHO GOT ME
|
||
MOVE *A9(OID),A0
|
||
MOVI P1DATA,A9
|
||
CMPI CLSPLYR|TYPPLYR|SUBPL_1,A0
|
||
JREQ NC
|
||
MOVI P2DATA,A9
|
||
;A9=P1 OR P2DATA FOR SCORING SMART BOMB POINTS
|
||
NC MOVB @SHK_ON,A0
|
||
JRNZ BAD0
|
||
MOVI 30,A10
|
||
CALLA SHAKER
|
||
BAD0 MOVI CLSENMY|TYPHULK,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD1
|
||
;FOUND A HULK
|
||
MOVE A0,A8
|
||
CALLA KILL_H1 ;KILL_HULK
|
||
JRUC BAD0
|
||
BAD1
|
||
MOVI CLSENMY|TYPFAT,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD3
|
||
;FOUND A FAT
|
||
MOVE A0,A8
|
||
;NO SCORE FOR THESE FAT GUYS
|
||
CALLA KILL_F2 ;KILL_FAT
|
||
JRUC BAD1
|
||
BAD3
|
||
MOVI CLSNEUT|TYPTANK,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD4A
|
||
;FOUND A TANK BOTTOM
|
||
MOVE A0,A8
|
||
;WHO GETS SCORE HERE?
|
||
CALLA KILL_TK
|
||
JRUC BAD3
|
||
BAD4A
|
||
MOVI CLSENMY|TYPTANK,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD4
|
||
;FOUND A TANK BOTTOM
|
||
MOVE A0,A8
|
||
;WHO GETS SCORE HERE?
|
||
CALLA KILL_TK
|
||
JRUC BAD4A
|
||
BAD4
|
||
MOVI CLSENMY|TYPTORSO,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD5
|
||
;FOUND A TORSO
|
||
MOVE A0,A8
|
||
CALLA KILL_TS
|
||
JRUC BAD4
|
||
BAD5
|
||
MOVI CLSENMY|TYPORB,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD6
|
||
;NO!!
|
||
;FOUND AN ORB
|
||
MOVE A0,A8
|
||
CALLA KILL_OB
|
||
JRUC BAD5
|
||
BAD6
|
||
MOVI CLSENMY|TYPRBTA,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD7
|
||
;NO!!
|
||
;FOUND AN ORB
|
||
MOVE A0,A8
|
||
CALLA KILL_R1
|
||
JRUC BAD6
|
||
BAD7
|
||
MOVI CLSENMY|TYPGAL,A0 ;(OID)
|
||
MOVI 0FFC0H,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD8
|
||
;FOUND GALAGA
|
||
MOVE A0,A8
|
||
CALLA SMRT_GAL
|
||
JRUC BAD7
|
||
BAD8
|
||
MOVI CLSENMY|TYPSNK,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BADCLN
|
||
;NO!!
|
||
;FOUND AN SNAKE
|
||
MOVE A0,A8
|
||
CALLA KILL_SK1
|
||
JRUC BAD8
|
||
|
||
;INSERT OTHERS HERE
|
||
|
||
BADCLN
|
||
|
||
BAD2
|
||
SLEEP 1
|
||
MOVI CLSENMY|TYPCBALL,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD9
|
||
;FOUND A CBALL/SHRAPNEL
|
||
;NO SCORE
|
||
MOVE A0,A8
|
||
CALLA KILL_CBALL
|
||
JRUC BAD2
|
||
|
||
BAD9
|
||
;RESET ALL CNTS!
|
||
CALLA ZEROCNTS
|
||
DIE
|
||
NSTPON:
|
||
;NON STOPPING BULLET
|
||
;REDUCE MMTM!!!
|
||
MMTM SP,A1,A2,A3,A4,A5,A6,A7,A10
|
||
MOVE *A0(OPLINK),A0,L ;A0=PLAYER WHO GOT THIS ICON
|
||
MOVK 4,A1
|
||
MOVB A1,@ICNFLG
|
||
MOVE A1,*A0(WPN_TYP),W
|
||
MOVE A0,A10 ;A10=PLAYER
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
CREATE 0,FILLUP
|
||
MOVI ICON,A0
|
||
CALLA ONESND
|
||
MOVK 1,A0
|
||
MOVB A0,@FFLG ;SOMEONE FILLING UP FLAG
|
||
MMFM SP,A1,A2,A3,A4,A5,A6,A7,A10
|
||
RETS
|
||
GRENON:
|
||
;REDUCE MMTM!!!
|
||
MMTM SP,A1,A2,A3,A4,A5,A6,A7,A10
|
||
MOVE *A0(OPLINK),A0,L
|
||
;TURN ON RINGS IF FLATFACE IS OUT!
|
||
MOVB @FACEON,A1
|
||
JREQ GRENON1
|
||
MMTM SP,A0
|
||
MOVB *A0(PNUM),A9
|
||
MOVI 270,A10 ;TIME RINGS ARE ON ;320
|
||
CREATE RNGPID,RINGS ;PLACE RING AROUND PLAYER X
|
||
MMFM SP,A0
|
||
GRENON1
|
||
MOVK 3,A1
|
||
MOVB A1,@ICNFLG
|
||
MOVE A1,*A0(WPN_TYP),W
|
||
MOVE A0,A10
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
CREATE 0,FILLUP
|
||
MOVI ICON,A0
|
||
CALLA ONESND
|
||
MOVK 1,A0
|
||
MOVB A0,@FFLG ;SOMEONE FILLING UP FLAG
|
||
MMFM SP,A1,A2,A3,A4,A5,A6,A7,A10
|
||
RETS
|
||
;
|
||
SPRAYON:
|
||
MMTM SP,A1,A2,A3,A4,A5,A6,A7,A10
|
||
;A8=ICON IMAGE
|
||
;A0=PLAYER WHO GOT ME
|
||
MOVE *A0(OPLINK),A0,L
|
||
MOVK 1,A1
|
||
MOVB A1,@ICNFLG
|
||
MOVE A1,*A0(WPN_TYP),W
|
||
MOVE A0,A10
|
||
MOVE A8,A0
|
||
CALLA DELOBJ ;KILL ICON IMAGE
|
||
CREATE 0,FILLUP ;FILL METER UP
|
||
MOVI ICON,A0
|
||
CALLA ONESND
|
||
MOVK 1,A0
|
||
MOVB A0,@FFLG ;SOMEONE FILLING UP FLAG
|
||
MMFM SP,A1,A2,A3,A4,A5,A6,A7,A10
|
||
RETS
|
||
;
|
||
PODON:
|
||
MMTM SP,A1,A2,A3,A4,A5,A6,A7,A10
|
||
MOVE *A0(OPLINK),A0,L
|
||
|
||
MOVB @FACEON,A1
|
||
JREQ PODON1
|
||
MMTM SP,A0
|
||
MOVB *A0(PNUM),A9
|
||
MOVI 260,A10 ;TIME RINGS ARE ON ;300
|
||
CREATE RNGPID,RINGS ;PLACE RING AROUND PLAYER X
|
||
MMFM SP,A0
|
||
PODON1
|
||
MOVK 2,A1
|
||
MOVB A1,@ICNFLG
|
||
MOVE A1,*A0(WPN_TYP),W
|
||
MOVE A0,A10
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
CREATE 0,FILLUP
|
||
MOVI ICON,A0
|
||
CALLA ONESND
|
||
MOVK 1,A0
|
||
MOVB A0,@FFLG ;SOMEONE FILLING UP FLAG
|
||
MMFM SP,A1,A2,A3,A4,A5,A6,A7,A10
|
||
RETS
|
||
;
|
||
MV_BULL:
|
||
;DEFLECT BULLET
|
||
MOVE *A8(OID),A0
|
||
ANDI F_SUBT,A0
|
||
;CAN WE JUST NEGATE ALL BULLET TYPES VELOCITIES?
|
||
CMPI SUBLZR,A0
|
||
JRNE KILL_BULL
|
||
; JRNE RT
|
||
|
||
MMTM SP,A1,A6,A7,A2,A3,A4,A13
|
||
;GET NEW X,Y VELS THEN SET BLTDIR (IN PDATA) ACCORDINGLY
|
||
MOVI 1,B0
|
||
MOVI 9,B1
|
||
CALLA RANGRAND
|
||
CMPI 3,A0
|
||
JRNE DX
|
||
DEC A0
|
||
DX
|
||
MOVE A0,@B_DIR
|
||
MOVE *A8(OPLINK),A13,L
|
||
CALLR GET_CNVRT
|
||
CALLR STUFIT
|
||
MOVE A2,A1
|
||
CALLA ANI
|
||
;A6=XVEL,A7=YVEL,A4=FLAGS,A2=OIMG OF NEW BULLET
|
||
MOVE A6,*A8(OXVEL),L
|
||
MOVE A7,*A8(OYVEL),L
|
||
MMFM SP,A1,A6,A7,A2,A3,A4,A13
|
||
RT RETS
|
||
|
||
KILL_BULL:
|
||
; DELETE OBJ, UPDATE BLT_CNT, KILL BULLETS PROC
|
||
MOVE *A8(OID),A0,W
|
||
ANDI 0FFFFH,A0
|
||
CMPI CLSPLYR|TYPPLBL|SUBGRND,A0
|
||
JRNE KB0
|
||
;MUST KILL SHADOW OF GRENADE ALSO!
|
||
MOVE *A8(OPLINK),A0,L
|
||
CALLA GETA9
|
||
CALLA KILL ;KILLS PROCESS IN A0
|
||
MOVE A9,A0
|
||
CALLA DELOBJ
|
||
JRUC KB
|
||
|
||
KB0 MOVE *A8(OPLINK),A0,L
|
||
CALLA KILL ;KILLS PROCESS IN A0
|
||
KB:
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
RETS
|
||
KILL_BULLT:
|
||
; DELETE OBJ, UPDATE BLT_CNT, KILL BULLETS PROC
|
||
MOVE *A0(OPLINK),A0,L
|
||
MOVB *A0(PDATA),A0 ;ADRIVER IN TANKS FILE! CAREFUL!
|
||
JREQ KILL_BULL
|
||
RETS
|
||
|
||
FIRE_DIRECTION:
|
||
CLR A6 ;A6 IS A RUNNING CNT WHICH WILL END
|
||
;UP BEING A DIRECTION CNT (0-9)
|
||
;0 SHOULD NEVER BE RESULT!
|
||
MOVE *A13(STICK),A5,L ;JOYSTICK 2 CONTROL READ
|
||
MOVE *A5,A5,W ;GET ACTUAL VALUE OF STICK
|
||
BTST BMPFUP,A5
|
||
JRZ NXT1
|
||
ADDI 1,A6
|
||
NXT1:
|
||
BTST BMPFDOWN,A5
|
||
JRZ NXT2
|
||
ADDI 2,A6
|
||
NXT2:
|
||
BTST BMPFLEFT,A5
|
||
JRZ NXT3
|
||
ADDI 7,A6
|
||
NXT3:
|
||
BTST BMPFRYTE,A5
|
||
JRZ ALL_DIR
|
||
ADDI 4,A6
|
||
ALL_DIR:
|
||
CMPI 9,A6
|
||
JRLS RETSOUT
|
||
MOVK 9,A6
|
||
RETSOUT
|
||
MOVE A6,@B_DIR
|
||
RETS
|
||
|
||
BULYV: .LONG -BLTYVEL,-BLTYVEL,0,BLTYVEL,BLTYVEL,BLTYVEL,0,-BLTYVEL
|
||
BULXV: .LONG 0,BLTXVEL,BLTXVEL,BLTXVEL,0,-BLTXVEL,-BLTXVEL,-BLTXVEL
|
||
BUL5YV: .LONG -BLT5YVEL,-BLT5YVEL,0,BLT5YVEL,BLT5YVEL,BLT5YVEL,0,-BLT5YVEL
|
||
BUL5XV: .LONG 0,BLT5XVEL,BLT5XVEL,BLT5XVEL,0,-BLT5XVEL,-BLT5XVEL,-BLT5XVEL
|
||
GRNYV: .LONG -GRNYVEL,-GRNYVEL,0,GRNYVEL,GRNYVEL,GRNYVEL,0,-GRNYVEL
|
||
GRNXV: .LONG 0,GRNXVEL,GRNXVEL,GRNXVEL,0,-GRNXVEL,-GRNXVEL,-GRNXVEL
|
||
GRNYV2: .LONG -GRNYVEL2,-GRNYVEL2,0,GRNYVEL2,GRNYVEL2,GRNYVEL2,0,-GRNYVEL2
|
||
GRNXV2: .LONG 0,GRNXVEL2,GRNXVEL2,GRNXVEL2,0,-GRNXVEL2,-GRNXVEL2,-GRNXVEL2
|
||
|
||
BUL2YV: .LONG -BLTYVEL,-BLTYVEL,-(BLTYVEL/2),BLTYVEL/2,BLTYVEL
|
||
.LONG BLTYVEL,BLTYVEL/2,-BLTYVEL
|
||
BUL2XV: .LONG -(BLTXVEL/2),BLTXVEL/2,BLTXVEL,BLTXVEL,BLTXVEL/2
|
||
.LONG -(BLTXVEL/2),-BLTXVEL,-(BLTXVEL/2)
|
||
|
||
BUL3YV: .LONG -BLTYVEL,-(BLTYVEL/2),BLTYVEL/2,BLTYVEL,BLTYVEL
|
||
.LONG BLTYVEL/2,-(BLTYVEL/2),-(BLTYVEL/2)
|
||
BUL3XV: .LONG BLTXVEL/2,BLTXVEL,BLTXVEL,BLTXVEL/2,-(BLTXVEL/2)
|
||
.LONG -BLTXVEL,-BLTXVEL,-BLTXVEL
|
||
|
||
BXL: .LONG -010000H,008000H,0018000H,08000H,-010000H,-28000H,-30000H,-28000H
|
||
BXH: .LONG 0010000H,028000H,030000H,28000H,010000H,-08000H,-018000H,-08000H
|
||
|
||
BYL: .LONG -028000H,-28000H,-010000H,08000H,018000H,008000H,-010000H,-28000H
|
||
BYH: .LONG -018000H,-08000H,0010000H,28000H,28000H,028000H,0010000H,-08000H
|
||
|
||
WHICHYV:
|
||
.LONG BULYV,BUL2YV,BUL3YV
|
||
WHICHXV:
|
||
.LONG BULXV,BUL2XV,BUL3XV
|
||
|
||
STRT_WPN:
|
||
;FROM TORSO PROCESS
|
||
MOVB *A13(PNUM),A11 ;PLAYER WHO FIRED ME PASSED IN A11
|
||
MOVE *A13(WPN_TYP),A0,W
|
||
JRNZ W1
|
||
;WEAPON 1 - NORMAL FIRE POWER
|
||
CREATE BULPID,WPN1
|
||
MOVE *A13(LSRPTR),A0,L ;HELPER ON FLAG 1=YES
|
||
JRZ NOLASER
|
||
CREATE BULPID,WPN1A
|
||
NOLASER:
|
||
MOVI SHOT,A0 ;RIFLE SHOT
|
||
CALLA ONESND
|
||
RETS
|
||
W1
|
||
CMPI 1,A0
|
||
JRNE W2
|
||
;SPRAY WEAPON
|
||
;WEAPON 2
|
||
MOVE *A13(SHOTCNT),A0
|
||
DEC A0
|
||
MOVE A0,*A13(SHOTCNT)
|
||
JRGT S7
|
||
;UPDATE METER
|
||
MOVE A13,A10
|
||
CALLA METERS
|
||
|
||
S7:
|
||
CLR A10
|
||
CREATE BULPID,WPN2
|
||
MOVK 1,A10
|
||
CREATE BULPID,WPN2
|
||
MOVK 2,A10
|
||
CREATE BULPID,WPN2
|
||
MOVE *A13(LSRPTR),A0,L
|
||
JRZ NOLASER2
|
||
|
||
MOVE *A13(SHOTCNT),A0
|
||
DEC A0
|
||
MOVE A0,*A13(SHOTCNT)
|
||
JRGT S7A
|
||
;UPDATE METER
|
||
MOVE A13,A10
|
||
CALLA METERS
|
||
S7A:
|
||
CLR A10
|
||
CREATE BULPID,WPN2A
|
||
MOVK 1,A10
|
||
CREATE BULPID,WPN2A
|
||
MOVK 2,A10
|
||
CREATE BULPID,WPN2A
|
||
|
||
NOLASER2
|
||
MOVI RIFL,A0 ;SPRY
|
||
CALLA ONESND
|
||
RETS
|
||
W2
|
||
CMPI 2,A0
|
||
JRNE GR
|
||
;BUBBLE WEAPON
|
||
;WEAPON 3
|
||
MOVE *A13(SHOTCNT),A0
|
||
DEC A0
|
||
MOVE A0,*A13(SHOTCNT)
|
||
JRGT S8
|
||
;UPDATE METER
|
||
MOVE A13,A10
|
||
CALLA METERS
|
||
S8:
|
||
MOVI FSHOT,A0
|
||
CALLA ONESND
|
||
|
||
CREATE BULPID,WPN3
|
||
|
||
MOVE *A13(LSRPTR),A0,L
|
||
JRZ NZ3
|
||
; MOVE *A13(SHOTCNT),A0
|
||
; DEC A0
|
||
; MOVE A0,*A13(SHOTCNT)
|
||
; JRGT S9
|
||
;UPDATE METER
|
||
; MOVE A13,A10
|
||
; CALLA METERS
|
||
;S9:
|
||
CREATE BULPID,WPN3A
|
||
NZ3:
|
||
RETS
|
||
GR:
|
||
CMPI 3,A0
|
||
JRNE NS
|
||
;GRENADE
|
||
;WEAPON 4
|
||
MOVE *A13(SHOTCNT),A0
|
||
DEC A0
|
||
MOVE A0,*A13(SHOTCNT)
|
||
JRGT SA
|
||
;UPDATE METER
|
||
MOVE A13,A10
|
||
CALLA METERS
|
||
SA:
|
||
MOVI GRNSND,A0 ;WHISTLE UP SND
|
||
CALLA ONESND
|
||
CREATE BULPID,WPN4
|
||
RETS
|
||
NS:
|
||
;NON STOPPING BULLET
|
||
;WEAPON 5 - NORMAL FIRE POWER
|
||
MOVE *A13(SHOTCNT),A0
|
||
DEC A0
|
||
MOVE A0,*A13(SHOTCNT)
|
||
JRGT SA5
|
||
;UPDATE METER
|
||
MOVE A13,A10
|
||
CALLA METERS
|
||
SA5:
|
||
CREATE BULPID,WPN5
|
||
MOVE *A13(LSRPTR),A0,L
|
||
JRZ NO5
|
||
|
||
MOVE *A13(SHOTCNT),A0
|
||
DEC A0
|
||
MOVE A0,*A13(SHOTCNT)
|
||
JRGT SA5A
|
||
;UPDATE METER
|
||
MOVE A13,A10
|
||
CALLA METERS
|
||
SA5A:
|
||
CREATE BULPID,WPN5A
|
||
NO5
|
||
MOVI MISS,A0
|
||
CALLA ONESND
|
||
RETS
|
||
|
||
WPN5A:
|
||
;WEAPON 5 - NON STOPPING BULLET
|
||
;MAKE MORE EFFICIENT!
|
||
;NOW STUFF CORRECT BULLET AND CORRECT FLIP INFO
|
||
CALLR GET_CNVRT
|
||
;
|
||
CALLR STUFIT5
|
||
;ORBS X,Y POSITION HERE
|
||
;X IN A0, Y IN A1
|
||
MOVE @LASRX,A0,L
|
||
MOVE @LASRY,A1,L
|
||
DO_MISS
|
||
MOVI CLSPLYR|TYPPLBL|SUBNOSTP,A5
|
||
;ID IN A5
|
||
MOVI 159,A3
|
||
;ZPOS IN A3
|
||
;XVEL IN A6
|
||
;YVEL IN A7
|
||
CALLA BEGINOBJ2
|
||
|
||
LPZ_TP:
|
||
;REGULAR BULLETS
|
||
MOVI [>21,>20],A2 ;23,21
|
||
MOVI [>FC,>173],A3
|
||
CALLA SCRTSTG
|
||
JRZ ZC1
|
||
;
|
||
;A0=1,2,3 OR 4 WHICH IS RETURNED FROM SCRTSTG!
|
||
;
|
||
MOVE A0,A10 ;KEEP B_DIR 1,2,3,OR 4
|
||
; NOW CHECK TO SEE IF BULLET IS PASSING THROUGH A GATE
|
||
CMPI 4,A0
|
||
JREQ BULLGN
|
||
;
|
||
;CHECK TO SEE IF BULLET IS WITHIN EDGES OF DOOR
|
||
;
|
||
MOVE A0,A1
|
||
SLL 5,A0
|
||
ADDI DRINF,A0
|
||
MOVE *A0,A0,L
|
||
MOVB *A0,A0
|
||
JREQ REGEXPNO
|
||
MOVE A1,A0
|
||
CALLR YESWALL
|
||
JRC REGEXPNO ;PROJECTILE HIT WALL NOT A DOORWAY
|
||
SLEEP 10
|
||
MOVE A8,A0
|
||
; CALLA DELPAL ;NEEDED? NO!!!!
|
||
CALLA DELOBJ
|
||
DIE
|
||
ZC1:
|
||
MOVB @PCNT,A0
|
||
ANDI 01H,A0
|
||
JRZ ZC1A
|
||
SLEEP 1 ;SLEEP 2 MAYBE?
|
||
JRUC LPZ_TP
|
||
ZC1A SLEEP 2 ;SLEEP 2 MAYBE?
|
||
JRUC LPZ_TP
|
||
|
||
WPN5:
|
||
;WEAPON 5 - NON STOPPING BULLET
|
||
;MAKE MORE EFFICIENT!
|
||
;NOW STUFF CORRECT BULLET AND CORRECT FLIP INFO
|
||
CALLR GET_CNVRT
|
||
;
|
||
CALLR STUFIT5
|
||
|
||
;THESE BULLETS ARE PIXEL SCANNED! CHECK FLAGS TABLE
|
||
;FLAGS IN A4
|
||
|
||
;A8=TORSO PTR FOR PLAYER THAT FIRED ME
|
||
MOVE *A8(OXVAL),A0,L
|
||
MOVE *A8(OYVAL),A1,L
|
||
MOVI X5_OFFSET,A8
|
||
MOVE @B_DIR,A3,W ;MOVE BULLET DIRECTION INTO A3
|
||
SLL 5,A3 ;BDIR*32 FOR LONG WORD LOOKUP TABLE
|
||
ADD A3,A8
|
||
MOVE *A8,A8,L
|
||
ADD A8,A0
|
||
;XVAL IN A0
|
||
|
||
MOVI Y5_OFFSET,A8
|
||
ADD A3,A8
|
||
MOVE *A8,A8,L
|
||
ADD A8,A1
|
||
;YVAL IN A1
|
||
JRUC DO_MISS
|
||
|
||
STUFIT5:
|
||
MOVI BUL5XV,A3
|
||
ADD A0,A3
|
||
MOVE *A3,A6,L
|
||
|
||
MOVI BUL5YV,A3
|
||
ADD A0,A3
|
||
MOVE *A3,A7,L ;YV
|
||
|
||
; GET IMG INFO BASED ON B_DIR
|
||
MOVE @B_DIR,A3,W ;MOVE BULLET DIRECTION INTO A3
|
||
SLL 5,A3 ;BDIR*32 FOR LONG WORD LOOKUP TABLE
|
||
ADDI B5_TYP,A3
|
||
MOVE *A3,A2,L ;MOVE TABLE VALUE INTO A4
|
||
;IMG IN A2
|
||
|
||
MOVE @B_DIR,A3,W ;MOVE BULLET DIRECTION INTO A3
|
||
SLL 4,A3 ;(BDIR*32)/2 FOR WORD LOOKUP TABLE
|
||
ADDI B1_INFO,A3 ;CALCULATE OFFSET IN TABLE
|
||
MOVE *A3,A4,W ;MOVE TABLE VALUE INTO A4
|
||
;FLAGS IN A4
|
||
|
||
RETS
|
||
|
||
WPN4:
|
||
;WEAPON 4 - GRENADE
|
||
;MAKE MORE EFFICIENT!
|
||
;NOW STUFF CORRECT BULLET AND CORRECT FLIP INFO
|
||
|
||
;GET RID OF THIS CONVERT!
|
||
CALLR GET_CNVRT
|
||
;
|
||
; WEAPON 4 STUFF
|
||
;
|
||
;GET VELS FOR THIS PROJECTILE
|
||
|
||
MOVI GRNXV,A3
|
||
ADD A0,A3
|
||
MOVE *A3,A6,L
|
||
|
||
MOVI GRNYV,A3
|
||
FYYS ADD A0,A3
|
||
MOVE *A3,A7,L ;YV
|
||
|
||
;IMG IN A2
|
||
MOVI DMAWNZ,A4
|
||
;FLAGS IN A4
|
||
|
||
MOVI GRND1,A2
|
||
|
||
MOVE *A8(OXVAL),A0,L
|
||
MOVE *A8(OYVAL),A1,L
|
||
MOVI X4_OFFSET,A8
|
||
MOVE @B_DIR,A3,W ;MOVE BULLET DIRECTION INTO A3
|
||
SLL 5,A3 ;BDIR*32 FOR LONG WORD LOOKUP TABLE
|
||
ADD A3,A8
|
||
MOVE *A8,A8,L
|
||
ADD A8,A0
|
||
;XVAL IN A0
|
||
|
||
MOVI Y4_OFFSET,A8
|
||
ADD A3,A8
|
||
MOVE *A8,A8,L
|
||
ADD A8,A1
|
||
MOVI TOSSDIR,A11
|
||
ADD A3,A11
|
||
MOVE *A11,A11,L ;LIST OF OFFSET BYTES!
|
||
ADDI TOSS2DIR,A3
|
||
MOVE *A3,A10,L
|
||
;YVAL IN A1
|
||
DOME4:
|
||
MOVI CLSNEUT|TYPNEUT,A5
|
||
;ID IN A5
|
||
MOVI 253,A3
|
||
;ZPOS IN A3
|
||
;XVEL IN A6
|
||
;YVEL IN A7
|
||
PUSH A0
|
||
CALLA BEGINOBJ2
|
||
PULL A0
|
||
PUSH A8
|
||
ADDI 0180000H,A1
|
||
MOVI GSHAD1,A2
|
||
MOVI 58,A3
|
||
CALLA BEGINOBJ2
|
||
MOVE A8,A9
|
||
PULL A8
|
||
|
||
CLR A7
|
||
MOVB A7,*A13(GTMP)
|
||
MOVB A7,*A13(SLIDEY)
|
||
MOVB A7,*A13(SLIDEX)
|
||
W4_TP:
|
||
MOVB *A13(GTMP),A7
|
||
MOVE A7,A1
|
||
SLL 5,A1
|
||
ADDI TOSSG,A1
|
||
MOVE *A1,A1,L
|
||
JRZ BLWUP
|
||
CMPI 15,A7 ;19
|
||
JRNZ V1
|
||
;SET OID
|
||
MOVI CLSPLYR|TYPPLBL|SUBGRND,A5
|
||
MOVE A5,*A8(OID),W
|
||
V1
|
||
MOVI DMAWNZ,A4 ;GET NEW FLAGS (SAME!)
|
||
CALLA ANI
|
||
|
||
MOVB *A11,A0 ;GET X OFFSET
|
||
ADDI 8,A11
|
||
MOVB *A10,A2 ;GET X OFFSET
|
||
ADDI 8,A10
|
||
MOVB *A13(SLIDEX),A1
|
||
JRNE AC0
|
||
MOVE *A8(OXPOS),A1,W
|
||
ADD A0,A1
|
||
MOVE A1,*A8(OXPOS),W
|
||
MOVE *A9(OXPOS),A1,W
|
||
ADD A2,A1
|
||
MOVE A1,*A9(OXPOS),W
|
||
JRUC AC
|
||
AC0
|
||
MOVE *A8(OXPOS),A1,W
|
||
SUB A0,A1
|
||
MOVE A1,*A8(OXPOS),W
|
||
MOVE *A9(OXPOS),A1,W
|
||
SUB A2,A1
|
||
MOVE A1,*A9(OXPOS),W
|
||
|
||
AC MOVB *A11,A0
|
||
ADDI 8,A11
|
||
MOVB *A10,A2
|
||
ADDI 8,A10
|
||
MOVB *A13(SLIDEY),A1
|
||
JRNZ AC2
|
||
MOVE *A8(OYPOS),A1,W
|
||
ADD A0,A1
|
||
MOVE A1,*A8(OYPOS),W
|
||
MOVE *A9(OYPOS),A1,W
|
||
ADD A2,A1
|
||
MOVE A1,*A9(OYPOS),W
|
||
JRUC AC1
|
||
|
||
AC2 MOVE *A8(OYPOS),A1,W
|
||
SUB A0,A1
|
||
MOVE A1,*A8(OYPOS),W
|
||
|
||
AC1 INC A7
|
||
MOVB A7,*A13(GTMP)
|
||
|
||
;GRENADES
|
||
MOVI [>23-5,>21-1],A2
|
||
MOVI [>FC,>171+5],A3
|
||
CALLA SCRTSTG
|
||
JRZ C41 ;BR=NOT INTO WALL
|
||
|
||
CMPI 4,A0
|
||
JREQ BLW2
|
||
|
||
;DO CLEVER SLIDE DOWN WALL HERE!
|
||
CMPI 3,A0
|
||
JRNE Z1
|
||
MOVE *A13(BLTDIR),A1
|
||
CMPI 3,A1
|
||
JREQ C41
|
||
CMPI 7,A1
|
||
JREQ C41
|
||
MOVK 1,A1
|
||
MOVB A1,*A13(SLIDEY)
|
||
JRUC C41
|
||
Z1:
|
||
MOVE *A13(BLTDIR),A1
|
||
CMPI 1,A1
|
||
JREQ C41
|
||
CMPI 5,A1
|
||
JREQ C41
|
||
MOVK 1,A1
|
||
MOVB A1,*A13(SLIDEX)
|
||
C41:
|
||
;IF FLATFACE, SLEEP 1!
|
||
MOVB @FACEON,A0
|
||
JRZ S02
|
||
SLEEP 1
|
||
JRUC W4_TP
|
||
S02
|
||
SLEEP 2
|
||
JRUC W4_TP
|
||
|
||
BLWUP:
|
||
MOVI EXP3,A0 ;AUDIO BOMB EXPLODE
|
||
CALLA ONESND
|
||
BLW2:
|
||
CLR A0
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVE A0,*A8(OYVEL),L
|
||
MOVE A9,A0 ;DELETE SHADOW
|
||
CALLA DELOBJ
|
||
MOVI CLSNEUT|TYPNEUT,A5
|
||
MOVE A5,*A8(OID),W
|
||
MOVI BOOM2,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
|
||
;
|
||
CONVERT:
|
||
.WORD 1,5,6,3,2,4,7,8,6
|
||
GET_CNVRT:
|
||
;TAKE OUT AND MAKE MORE EFFICIENT!
|
||
MOVB A11,*A13(MYPLYR) ;A11=PLAYER 1 OR 2 WHO FIRED ME
|
||
MOVE @B_DIR,A3,W ;MOVE BULLET DIRECTION INTO A3
|
||
DEC A3
|
||
SLL 4,A3
|
||
ADDI CONVERT,A3
|
||
MOVE *A3,A0,W
|
||
MOVE A0,*A13(BLTDIR),W ;CONVERTED TO NORMAL!
|
||
;
|
||
DEC A0
|
||
SLL 5,A0
|
||
RETS
|
||
|
||
NEED3:
|
||
MOVI 5,B0
|
||
MOVI 18,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,*A13(AGE),W
|
||
;GET RID OF THIS CONVERT!
|
||
CALLR GET_CNVRT
|
||
;
|
||
; WEAPON 3 STUFF
|
||
;
|
||
;GET VELS FOR THIS PROJECTILE
|
||
MOVI BXL,A1 ;BUBBLE X LOW VEL
|
||
ADD A0,A1
|
||
MOVE *A1,A1,L
|
||
MOVE A1,B0
|
||
MOVI BXH,A1
|
||
ADD A0,A1
|
||
MOVE *A1,A1,L
|
||
MOVE A1,B1
|
||
PUSH A0
|
||
CALLA RANGRAND
|
||
MOVE A0,A6
|
||
; ADD A9,A6 ;A9=PLAYERX XVEL
|
||
|
||
PULL A0
|
||
MOVI BYL,A1 ;BUBBLE X LOW VEL
|
||
ADD A0,A1
|
||
MOVE *A1,A1,L
|
||
MOVE A1,B0
|
||
MOVI BYH,A1
|
||
ADD A0,A1
|
||
MOVE *A1,A1,L
|
||
MOVE A1,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,A7
|
||
; ADD A10,A7 ;A10=PLAYERS YVEL
|
||
|
||
MOVI PODA,A2
|
||
;IMG IN A2
|
||
MOVI DMAWNZ,A4
|
||
;THESE BULLETS ARE PIXEL SCANNED! CHECK FLAGS TABLE
|
||
;FLAGS IN A4
|
||
;
|
||
RETS
|
||
|
||
WPN3A:
|
||
CALLR NEED3
|
||
;ORBS X,Y POSITION HERE
|
||
;X IN A0, Y IN A1
|
||
MOVE @LASRX,A0,L
|
||
MOVE @LASRY,A1,L
|
||
JRUC DOME
|
||
WPN3:
|
||
;WEAPON 3 - MULTIPLE BUBBLE BULLETS RELEASED
|
||
;MAKE MORE EFFICIENT!
|
||
;NOW STUFF CORRECT BULLET AND CORRECT FLIP INFO
|
||
CALLR NEED3
|
||
|
||
;A8=TORSO PTR OF PLAYER THAT FIRED ME
|
||
MOVE *A8(OXVAL),A0,L
|
||
MOVE *A8(OYVAL),A1,L
|
||
MOVI X3_OFFSET,A8
|
||
MOVE @B_DIR,A3,W ;MOVE BULLET DIRECTION INTO A3
|
||
SLL 5,A3 ;BDIR*32 FOR LONG WORD LOOKUP TABLE
|
||
ADD A3,A8
|
||
MOVE *A8,A8,L
|
||
ADD A8,A0
|
||
;XVAL IN A0
|
||
|
||
MOVI Y3_OFFSET,A8
|
||
ADD A3,A8
|
||
MOVE *A8,A8,L
|
||
ADD A8,A1
|
||
;YVAL IN A1
|
||
DOME:
|
||
MOVI CLSPLYR|TYPPLBL|SUBSPEW,A5
|
||
; MOVB @BOSSON,A3 ;FLAT FACE ON!?
|
||
; JRZ DMY
|
||
; CLR A5
|
||
;ID IN A5
|
||
;DMY
|
||
MOVI 159,A3
|
||
;ZPOS IN A3
|
||
;XVEL IN A6
|
||
;YVEL IN A7
|
||
CALLA BEGINOBJ2
|
||
; UPDATE BULLET COUNT AND RESET RAPID FIRE DELAY
|
||
|
||
MOVI SIZZLE,A9
|
||
W3_TP:
|
||
MOVE *A13(AGE),A0,W
|
||
DEC A0
|
||
MOVE A0,*A13(AGE),W
|
||
JRNE L31
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVE A0,*A8(OYVEL),L
|
||
;AGE TIMED OUT
|
||
MOVI CLSPLYR|TYPPLBL|SUBSPEW2,A5
|
||
MOVE A5,*A8(OID)
|
||
MOVI SMLEXP,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
CALLR KB
|
||
MOVI EXP3HI,A0 ;AUDIO BOMB EXPLODE
|
||
CALLA ONESND
|
||
DIE
|
||
L31:
|
||
;GREEN BOMBS
|
||
MOVI [>23,>21],A2
|
||
MOVI [>FC,>171],A3
|
||
CALLA SCRTSTG
|
||
JRZ C31 ;BR=NOT INTO WALL
|
||
;
|
||
;A0=1,2,3 OR 4 WHICH IS RETURNED FROM SCRTSTG!
|
||
;
|
||
MOVE A0,A10 ;KEEP B_DIR 1,2,3,OR 4
|
||
; NOW CHECK TO SEE IF BULLET IS PASSING THROUGH A GATE
|
||
CMPI 4,A0
|
||
JREQ BULLGN
|
||
;
|
||
MOVE A0,A1
|
||
SLL 5,A0
|
||
ADDI DRINF,A0
|
||
MOVE *A0,A0,L
|
||
MOVB *A0,A0
|
||
JREQ REGEXPNO
|
||
MOVE A1,A0
|
||
|
||
CALLR YESWALL
|
||
JRC REGEXPNO ;PROJECTILE HIT WALL NOT A DOORWAY
|
||
|
||
SLEEP 30
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
|
||
C31:
|
||
CLR A1
|
||
JSRP FRANIM
|
||
JRNC C32
|
||
MOVI SIZZLE,A9
|
||
C32:
|
||
JRUC W3_TP
|
||
NEED:
|
||
CALLR GET_CNVRT
|
||
;
|
||
; WEAPON 2 STUFF
|
||
;
|
||
;GET VELS FOR THIS PROJECTILE
|
||
MOVI 60,A1 ;AGE
|
||
MOVE A1,*A13(AGE),W
|
||
SLL 5,A10
|
||
MOVI WHICHXV,A1
|
||
ADD A10,A1
|
||
MOVE *A1,A3,L
|
||
ADD A0,A3
|
||
MOVE *A3,A6,L ;XVEL
|
||
MOVI WHICHYV,A1
|
||
ADD A10,A1
|
||
MOVE *A1,A3,L
|
||
ADD A0,A3
|
||
MOVE *A3,A7,L ;YV
|
||
|
||
MOVI BALL,A2
|
||
; MOVI DMAWNZ,A4
|
||
MOVI DMAWNZ+M_PIXSCAN,A4
|
||
;TAKE OUT PIXSCAN?
|
||
|
||
;THESE BULLETS ARE PIXEL SCANNED! CHECK FLAGS TABLE
|
||
;FLAGS IN A4
|
||
RETS
|
||
|
||
WPN2A:
|
||
CALLR NEED
|
||
;ORBS X,Y POSITION HERE
|
||
;X IN A0, Y IN A1
|
||
MOVE @LASRX,A0,L
|
||
MOVE @LASRY,A1,L
|
||
MOVI CLSPLYR|TYPPLBL|SUBSPRY,A5
|
||
JRUC DO_IT
|
||
WPN2:
|
||
;WEAPON 2 - 3 BULLETS SPRAYED OUT
|
||
;MAKE MORE EFFICIENT!
|
||
;NOW STUFF CORRECT BULLET AND CORRECT FLIP INFO
|
||
CALLR NEED
|
||
|
||
MOVE *A8(OXVAL),A0,L
|
||
MOVE *A8(OYVAL),A1,L
|
||
MOVI X2_OFFSET,A8
|
||
MOVE @B_DIR,A3,W ;MOVE BULLET DIRECTION INTO A3
|
||
SLL 5,A3 ;BDIR*32 FOR LONG WORD LOOKUP TABLE
|
||
ADD A3,A8
|
||
MOVE *A8,A8,L
|
||
ADD A8,A0
|
||
;XVAL IN A0
|
||
|
||
MOVI Y2_OFFSET,A8
|
||
ADD A3,A8
|
||
MOVE *A8,A8,L
|
||
ADD A8,A1
|
||
;YVAL IN A1
|
||
MOVI CLSPLYR|TYPPLBL|SUBSPRY,A5
|
||
JRUC DO_IT
|
||
|
||
STUFIT:
|
||
MOVI BULXV,A3
|
||
ADD A0,A3
|
||
MOVE *A3,A6,L
|
||
|
||
MOVI BULYV,A3
|
||
ADD A0,A3
|
||
MOVE *A3,A7,L ;YV
|
||
|
||
; GET IMG INFO BASED ON B_DIR
|
||
MOVE @B_DIR,A3,W ;MOVE BULLET DIRECTION INTO A3
|
||
SLL 5,A3 ;BDIR*32 FOR LONG WORD LOOKUP TABLE
|
||
ADDI B1_TYP,A3
|
||
MOVE *A3,A2,L ;MOVE TABLE VALUE INTO A4
|
||
;IMG IN A2
|
||
|
||
MOVE @B_DIR,A3,W ;MOVE BULLET DIRECTION INTO A3
|
||
SLL 4,A3 ;(BDIR*32)/2 FOR WORD LOOKUP TABLE
|
||
ADDI B1_INFO,A3 ;CALCULATE OFFSET IN TABLE
|
||
MOVE *A3,A4,W ;MOVE TABLE VALUE INTO A4
|
||
;FLAGS IN A4
|
||
|
||
RETS
|
||
WPN1A:
|
||
;WEAPON 1 - NORMAL BULLET
|
||
;MAKE MORE EFFICIENT!
|
||
;NOW STUFF CORRECT BULLET AND CORRECT FLIP INFO
|
||
CALLR GET_CNVRT
|
||
MOVI 60*2,A1
|
||
MOVE A1,*A13(AGE),W
|
||
;
|
||
CALLR STUFIT
|
||
;ORBS X,Y POSITION HERE
|
||
;X IN A0, Y IN A1
|
||
MOVE @LASRX,A0,L
|
||
MOVE @LASRY,A1,L
|
||
MOVI CLSPLYR|TYPPLBL|SUBLZR,A5
|
||
JRUC DO_IT
|
||
WPN1:
|
||
;WEAPON 1 - NORMAL BULLET
|
||
;MAKE MORE EFFICIENT!
|
||
;NOW STUFF CORRECT BULLET AND CORRECT FLIP INFO
|
||
CALLR GET_CNVRT
|
||
MOVI 60,A1
|
||
MOVE A1,*A13(AGE),W
|
||
;
|
||
CALLR STUFIT
|
||
|
||
;THESE BULLETS ARE PIXEL SCANNED! CHECK FLAGS TABLE
|
||
;FLAGS IN A4
|
||
|
||
MOVE *A8(OXVAL),A0,L
|
||
MOVE *A8(OYVAL),A1,L
|
||
MOVI X_OFFSET,A8
|
||
MOVE @B_DIR,A3,W ;MOVE BULLET DIRECTION INTO A3
|
||
SLL 5,A3 ;BDIR*32 FOR LONG WORD LOOKUP TABLE
|
||
ADD A3,A8
|
||
MOVE *A8,A8,L
|
||
ADD A8,A0
|
||
;XVAL IN A0
|
||
|
||
MOVI Y_OFFSET,A8
|
||
ADD A3,A8
|
||
MOVE *A8,A8,L
|
||
ADD A8,A1
|
||
;YVAL IN A1
|
||
|
||
MOVI CLSPLYR|TYPPLBL|SUBLZR,A5
|
||
|
||
DO_IT:
|
||
;ID IN A5
|
||
MOVI 159,A3
|
||
;ZPOS IN A3
|
||
;XVEL IN A6
|
||
;YVEL IN A7
|
||
CALLA BEGINOBJ2
|
||
|
||
LP_TP:
|
||
;REGULAR BULLETS
|
||
MOVI [>21,>20],A2 ;23,21
|
||
MOVI [>FC,>173],A3
|
||
CALLA SCRTSTG
|
||
JRZ C1
|
||
;
|
||
;A0=1,2,3 OR 4 WHICH IS RETURNED FROM SCRTSTG!
|
||
;
|
||
MOVE A0,A10 ;KEEP B_DIR 1,2,3,OR 4
|
||
; NOW CHECK TO SEE IF BULLET IS PASSING THROUGH A GATE
|
||
CMPI 4,A0
|
||
JREQ BULLGN
|
||
;
|
||
;CHECK TO SEE IF BULLET IS WITHIN EDGES OF DOOR
|
||
;
|
||
MOVE A0,A1
|
||
SLL 5,A0
|
||
ADDI DRINF,A0
|
||
MOVE *A0,A0,L
|
||
MOVB *A0,A0
|
||
JREQ REGEXP
|
||
MOVE A1,A0
|
||
CALLR YESWALL
|
||
JRC REGEXP ;PROJECTILE HIT WALL NOT A DOORWAY
|
||
SLEEP 10
|
||
MOVE A8,A0
|
||
; CALLA DELPAL ;NEEDED? NO!!!!
|
||
CALLA DELOBJ
|
||
DIE
|
||
C1:
|
||
MOVB @PCNT,A0
|
||
ANDI 01H,A0
|
||
JRZ C1X
|
||
SLEEP 1 ;SLEEP 2 MAYBE?
|
||
JRUC LP_TP
|
||
C1X SLEEP 2 ;SLEEP 2 MAYBE?
|
||
JRUC LP_TP
|
||
;
|
||
YESWALL:
|
||
;
|
||
; COLLISION WITH WALL
|
||
;
|
||
MOVE @WORLDTL,A5,L
|
||
CMPI 3,A0
|
||
JRNE HZCK
|
||
MOVB @TOID_ON,A0
|
||
JRZ NOTOID
|
||
;BIGGER HOLE!
|
||
MOVX A5,A4
|
||
SLL 16,A4
|
||
MOVE *A8(OXVAL),A0,L
|
||
SUB A4,A0
|
||
CMPI GATELFT-2D0000H,A0
|
||
JRLT NO1
|
||
CMPI GATERGT+2D0000H,A0
|
||
JRGE NO1
|
||
JRUC KEEP_GOING
|
||
NOTOID MOVX A5,A4
|
||
SLL 16,A4
|
||
MOVE *A8(OXVAL),A0,L
|
||
SUB A4,A0
|
||
CMPI GATELFT,A0
|
||
JRLT NO1
|
||
CMPI GATERGT,A0
|
||
JRGE NO1
|
||
JRUC KEEP_GOING
|
||
;CHECK HORZ DOORWAYS
|
||
HZCK: MOVE *A8(OYVAL),A0,L
|
||
CLR A4
|
||
MOVY A5,A4
|
||
SUB A4,A0
|
||
CMPI GATETOP,A0
|
||
JRLT NO1
|
||
CMPI GATEBOT,A0
|
||
JRLT KEEP_GOING ;CHECK GATE STATE NOW
|
||
NO1:
|
||
SETC
|
||
RETS
|
||
|
||
KEEP_GOING:
|
||
;NOW CHECK TO SEE IF BULLET IS COLLIDING WITH TOP GATE.
|
||
CLRC ;INDICATES KEEP ON GOING THROUGH GATE
|
||
RETS
|
||
|
||
BULLGN
|
||
; ANYTHING ELSE TO DO HERE? WHEN DELETING AN OBJECT?
|
||
;
|
||
; DELETE OBJECT FROM OBJLST
|
||
;
|
||
MOVI TING,A0
|
||
CALLA ONESND
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
|
||
REGEXP:
|
||
;REGULAR EXPLOSION HERE
|
||
MOVI TING,A0
|
||
CALLA ONESND
|
||
REGEXPNO
|
||
;ENTER HERE IF THIS BULLET DOES NOT WANT A TING SND
|
||
CLR A4
|
||
MOVE A4,*A8(OXVEL),L
|
||
MOVE A4,*A8(OYVEL),L
|
||
;CHANGE THE ID
|
||
MOVE *A8(OFLAGS),A0
|
||
ORI M_NOCOLL,A0
|
||
MOVE A0,*A8(OFLAGS)
|
||
;MAYBE TAKE THIS OID CHANGE OUT!
|
||
MOVI CLSNEUT|TYPNEUT,A0
|
||
MOVE A0,*A8(OID)
|
||
|
||
MOVI BULL_EXP_LIST,A2 ;MOVE BASE TABLE ADDRESS INTO A2
|
||
;A10=WALL 1,2,3 OR 4 WHICH WAS RETURNED FROM SCRTSTG
|
||
DEC A10
|
||
SLL 5,A10 ;BDIR*32 FOR LONG WORD LOOKUP TABLE
|
||
ADD A10,A2 ;CALCULATE OFFSET IN TABLE
|
||
MOVE *A2,A9,L ;MOVE TABLE VALUE INTO A4
|
||
;POSSIBLY PLACE THIS OBJECT ON ANOTHER LIST
|
||
;EXPLODE BULLET NOW!
|
||
MOVK 1,A1 ;COMMAND PASSED TO FRANIM
|
||
JSRP FRANIM
|
||
;NOW DELETE OBJECT FROM OBJLST
|
||
MOVE A8,A0
|
||
; CALLA DELPAL
|
||
CALLA DELOBJ
|
||
DIE
|
||
|
||
;UPDT_CNT:
|
||
; CLR A4
|
||
; MOVE A4,*A8(OXVEL),L
|
||
; MOVE A4,*A8(OYVEL),L
|
||
; MOVB @BLT_CNT,A3 ;DELETE A BULLET FROM CNT
|
||
; DEC A3
|
||
; MOVB A3,@BLT_CNT
|
||
; RETS
|
||
;
|
||
B1_TYP: ;NORMAL WEAPON (1)
|
||
.LONG 0,BULLETUP,BULLETUP,0,BULLETSIDE,BULLET45
|
||
.LONG BULLET45,BULLETSIDE,BULLET45,BULLET45
|
||
B5_TYP: ;NON STOPPING BULLET
|
||
.LONG 0,B2UP,B2UP,0,B2SIDE,B245
|
||
.LONG B245,B2SIDE,B245,B245
|
||
|
||
B1_INFO: ;NORMAL WEAPON (1)
|
||
;THESE FLAGS INDICATE PIXEL SCAN IS ON!
|
||
;ADD M_PIXSCAN!
|
||
.WORD 0,DMAWNZ+M_PIXSCAN,DMAWNZ+M_FLIPV+M_PIXSCAN,0
|
||
.WORD DMAWNZ+M_FLIPH+M_PIXSCAN,DMAWNZ+M_FLIPH+M_PIXSCAN
|
||
.WORD DMAWNZ+M_FLIPH+M_FLIPV+M_PIXSCAN,DMAWNZ+M_PIXSCAN
|
||
.WORD DMAWNZ+M_PIXSCAN,DMAWNZ+M_FLIPV+M_PIXSCAN
|
||
|
||
X_OFFSET: ;NORMAL WEAPON (1)
|
||
.LONG 0,060000H,050000H,0,0100000H,0A0000H,0E0000H,0FFFFFFFBH
|
||
.LONG 040000H,060000H
|
||
Y_OFFSET: ;NORMAL WEAPON
|
||
.LONG 0,000000H,0120000H,0,050000H,040000H,00C0000H,050000H
|
||
.LONG 030000H,00B0000H
|
||
X2_OFFSET: ;SPRAY WEAPON (2)
|
||
.LONG 0,0D0000H,030000H,0,0120000H,0E0000H,0100000H,050000H
|
||
.LONG 060000H,060000H
|
||
Y2_OFFSET: ;SPRAY
|
||
.LONG 0,050000H,0F0000H,0,050000H,0050000H,0B0000H,050000H
|
||
.LONG 060000H,0B0000H
|
||
X3_OFFSET: ;POD WEAPON (3)
|
||
.LONG 0,040000H,030000H,0,01C0000H,0E0000H,0160000H,-020000H
|
||
.LONG 020000H,000000H
|
||
Y3_OFFSET: ;
|
||
.LONG 0,020000H,0110000H,0,060000H,010000H,0E0000H,060000H
|
||
.LONG 020000H,0E0000H
|
||
X4_OFFSET: ;GRENADE WEAPON (4)
|
||
.LONG 0,0C0000H,030000H,0,0110000H,0C0000H,0190000H,020000H
|
||
.LONG 0A0000H,020000H
|
||
Y4_OFFSET:
|
||
.LONG 0,020000H,0E0000H,0,040000H,030000H,040000H,030000H
|
||
.LONG 090000H,040000H
|
||
X5_OFFSET: ;NON STOPPING BULLET (5)
|
||
.LONG 0,0E0000H,10000H,0,170000H,0A0000H,0130000H,0000H
|
||
.LONG 070000H,040000H
|
||
Y5_OFFSET:
|
||
.LONG 0,0000H,0A0000H,0,020000H,20000H,090000H,020000H
|
||
.LONG 10000H,090000H
|
||
|
||
|
||
; 1
|
||
; 8 5
|
||
;7 4
|
||
; 9 6
|
||
; 2
|
||
|
||
|
||
BULL_EXP_LIST:
|
||
.LONG EXPL,EXPR,EXPT,EXPD
|
||
|
||
EXPL .LONG BULLDINGSIDE ;BULLET COLLIDE WITH LEFT WALL
|
||
.WORD FLIPBITS|3,0
|
||
.LONG BULLDINGSIDE2
|
||
.WORD 3
|
||
.LONG BULLDINGSIDE
|
||
.WORD 3
|
||
.LONG 0
|
||
EXPR .LONG BULLDINGSIDE ;BULLET COLLIDE WITH LEFT WALL
|
||
.WORD FLIPBITS|3,(M_FLIPH)
|
||
.LONG BULLDINGSIDE2
|
||
.WORD 3
|
||
.LONG BULLDINGSIDE
|
||
.WORD 3
|
||
.LONG 0
|
||
EXPT .LONG BULLDINGUP
|
||
.WORD FLIPBITS|3,0
|
||
.LONG BULLDINGUP2
|
||
.WORD 3
|
||
.LONG BULLDINGUP
|
||
.WORD 3
|
||
.LONG 0
|
||
|
||
EXPD .LONG BULLDINGUP ;BULLET COLLIDE WITH BOTTOM WALL
|
||
.WORD FLIPBITS|3,(M_FLIPV)
|
||
.LONG BULLDINGUP2
|
||
.WORD 3
|
||
.LONG BULLDINGUP
|
||
.WORD 3
|
||
.LONG 0
|
||
SMLEXP
|
||
.LONG EXPb1
|
||
.WORD NEWPALET|3
|
||
.LONG BULLET ;NEW PAL NAME
|
||
.LONG EXPb2
|
||
.WORD 3
|
||
.LONG EXPb1
|
||
.WORD 3
|
||
.LONG 0
|
||
|
||
TOSSDIR .LONG 0,TSUP,TSDN,0,TSRT,TSUPRT,TSDNRT,TSLT,TSUPLT,TSDNLT
|
||
TOSS2DIR:
|
||
.LONG 0,TSUP2,TSDN2,0,TSRT2,TSUPRT2,TSDNRT2,TSLT2,TSUPLT2,TSDNLT2
|
||
TOSSG: .LONG GRND1,GRND2,GRND3,GRND4,GRND8,GRND9,GRND10,GRND11
|
||
.LONG GRND12,GRND13,GRND9,GRND10,GRND11,GRND12,GRND13,GRND9
|
||
.LONG GRND8,GRND4,GRND3,GRND2,GRND1,GRND1,0
|
||
; .LONG GRND8,GRND4,0,GRND3,GRND2,GRND1,GRND1,0
|
||
TSRT:
|
||
.BYTE 3 ;X
|
||
.BYTE -2 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -2 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -2 ;Y ADJUST
|
||
|
||
.BYTE 5
|
||
.BYTE -3 ;Y ADJUST
|
||
|
||
.BYTE 5
|
||
.BYTE -3 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE -3 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE -2 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE -2 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 4 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 5
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE 4 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE 4 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 4 ;Y ADJUST
|
||
|
||
.BYTE 2
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 2
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
TSLT:
|
||
.BYTE -3 ;X
|
||
.BYTE -2 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -2 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -2 ;Y ADJUST
|
||
|
||
.BYTE -5
|
||
.BYTE -3 ;Y ADJUST
|
||
|
||
.BYTE -5
|
||
.BYTE -3 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE -3 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE -2 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE -2 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 4 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE -5
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE 4 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 4 ;Y ADJUST
|
||
|
||
.BYTE -2
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE -2
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
TSUPLT:
|
||
.BYTE 0
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE -1
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE -2
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE -2
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE -5
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE -5
|
||
.BYTE -4 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE -3 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE -3 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE -2 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE -2 ;Y ADJUST
|
||
|
||
.BYTE -5
|
||
.BYTE -2 ;Y ADJUST
|
||
|
||
.BYTE -5
|
||
.BYTE -1 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -1 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
TSUPRT:
|
||
.BYTE 0
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 1
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 2
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 2
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 5
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 5
|
||
.BYTE -4 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE -3 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE -3 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE -2 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE -2 ;Y ADJUST
|
||
|
||
.BYTE 5
|
||
.BYTE -2 ;Y ADJUST
|
||
|
||
.BYTE 5
|
||
.BYTE -1 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -1 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
TSDNLT:
|
||
.BYTE -1
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -2
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 1 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE 1 ;Y ADJUST
|
||
|
||
.BYTE -5
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE -5
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 4 ;Y ADJUST
|
||
|
||
.BYTE -5
|
||
.BYTE 4 ;Y ADJUST
|
||
|
||
.BYTE -5
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE -2
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE -2
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE -1
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE -1
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE -1
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE 0
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 0
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
TSDNRT:
|
||
.BYTE 1
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 2
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 1 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE 1 ;Y ADJUST
|
||
|
||
.BYTE 5
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE 5
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 4 ;Y ADJUST
|
||
|
||
.BYTE 5
|
||
.BYTE 4 ;Y ADJUST
|
||
|
||
.BYTE 5
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE 2
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE 2
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE 1
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE 1
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE 1
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE 0
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 0
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
TSUP:
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -4 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -4 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -3 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -2 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -1 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
TSDN:
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 1 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 4 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 4 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 4 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 4 ;Y ADJUST
|
||
|
||
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
|
||
|
||
TSRT2:
|
||
.BYTE 3 ;X
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 5
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 5
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 5
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 2
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 2
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
TSLT2:
|
||
.BYTE -3 ;X
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -5
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -5
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -6
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -5
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -2
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE -2
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
TSUPLT2:
|
||
.BYTE -5+5
|
||
.BYTE -1-10 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE -3 ;Y ADJUST
|
||
|
||
.BYTE -4-5
|
||
.BYTE -4+10 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -4 ;Y ADJUST 35
|
||
|
||
.BYTE -4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -4 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -5 ;Y ADJUST ;22
|
||
|
||
.BYTE -4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -4 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -4 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -4 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -4 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE -2 ;78
|
||
.BYTE -4 ;Y ADJUST ;22 = 79
|
||
|
||
TSUPRT2:
|
||
.BYTE 5+5
|
||
.BYTE -1-10 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE -3 ;Y ADJUST
|
||
|
||
.BYTE 4-5
|
||
.BYTE -4+10 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -4 ;Y ADJUST 35
|
||
|
||
.BYTE 4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -4 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -5 ;Y ADJUST ;22
|
||
|
||
.BYTE 4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -4 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -4 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -4 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -4 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 2 ;78
|
||
.BYTE -4 ;Y ADJUST ;22 = 79
|
||
|
||
TSDNLT2:
|
||
.BYTE -3
|
||
.BYTE 11 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE 3 ;Y ADJUST 35
|
||
|
||
.BYTE -3
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 3 ;Y ADJUST ;22
|
||
|
||
.BYTE -3
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE -4
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE -3
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE -3 ;78
|
||
.BYTE 2 ;Y ADJUST ;22 = 79
|
||
|
||
TSDNRT2:
|
||
.BYTE 3
|
||
.BYTE 11 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE 3 ;Y ADJUST 35
|
||
|
||
.BYTE 3
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 3 ;Y ADJUST ;22
|
||
|
||
.BYTE 3
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE 3
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE 3 ;78
|
||
.BYTE 2 ;Y ADJUST ;22 = 79
|
||
|
||
TSUP2:
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -4 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -6 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -4 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE -4 ;Y ADJUST
|
||
|
||
TSDN2:
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 0 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 1 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 4 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 5 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 4 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 4 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 3 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 2 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 1 ;Y ADJUST
|
||
|
||
.BYTE 0 ;X ADJUST
|
||
.BYTE 1 ;Y ADJUST
|
||
|
||
|
||
|
||
|
||
.EVEN
|
||
|
||
|
||
; .LONG EXPb1
|
||
; .WORD 3 ;NEWPALET|3
|
||
; .LONG BULLET ;NEW PAL NAME
|
||
; .LONG EXPb2
|
||
; .WORD 3
|
||
; .LONG EXPb1
|
||
; .WORD 3
|
||
; .LONG 0
|
||
|
||
SIZZLE:
|
||
.LONG PODA
|
||
.WORD FLIPBITS|3,0
|
||
.LONG PODB
|
||
.WORD 3
|
||
.LONG PODC
|
||
.WORD 3
|
||
.LONG PODD
|
||
.WORD 3
|
||
.LONG PODB
|
||
.WORD 3
|
||
.LONG PODA
|
||
.WORD FLIPBITS|3,(M_FLIPH)
|
||
.LONG PODB
|
||
.WORD 3
|
||
.LONG PODC
|
||
.WORD 3
|
||
.LONG PODD
|
||
.WORD 3
|
||
.LONG PODB
|
||
.WORD 3
|
||
.LONG 0
|
||
|
||
|
||
.END
|
||
|
||
|