3153 lines
46 KiB
NASM
3153 lines
46 KiB
NASM
**************************************************************
|
||
*
|
||
* Software: Mark Turmell
|
||
* Initiated: 8/30/90
|
||
*
|
||
* Modified: Shawn Liptak, 10/27/91 -Orcus mods
|
||
*
|
||
* COPYRIGHT (C) 1992 WILLIAMS ELECTRONICS GAMES, INC.
|
||
*
|
||
*.Last mod - 1/9/92 17:07
|
||
**************************************************************
|
||
.FILE 'SHOTS.ASM'
|
||
.TITLE 'PROJECTILES FROM PLAYERS STUFF'
|
||
.WIDTH 132
|
||
.OPTION B,D,L,T
|
||
.MNOLIST
|
||
|
||
|
||
.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 "GAME.EQU"
|
||
.INCLUDE "FINGRNT.TBL"
|
||
.INCLUDE "THROW.TBL"
|
||
.include "shawn.hdr" ;Macros
|
||
;
|
||
;SOUNDS EXTERNAL
|
||
;
|
||
.REF EXP2HI,SHOT,TOTCARN,FLAMSND,SHOT2,SCASH,KEYSND,WOO1
|
||
.REF WOO2,GRNSND,THUMP,THUMP2,MTING,GETWPN,SEXP2HI,SALTXP4,TING
|
||
.REF SETDWN,GULP,TING2,TING3,NOWAY,ONESNDOVR
|
||
.REF TORCH,SCASH2,GAMSTATE
|
||
;
|
||
;SYMBOLS EXTERNALLY DEFINED
|
||
;
|
||
.REF missile_fire2,DONT_WARP,WAVE,ORCHINT,PLYROBJS,RANDPER
|
||
.REF PCNT,OUT_FLG,FRANIM,FRANIMQ,BCURRENT,CLEANUP,SKIPR_CNT
|
||
.ref SHAKER,INHERE,RINGS,AHMD_CNT,FND_CNT,JEEP2,JEEP,JEEP4
|
||
.REF SCRADD2,P1DATA,P2DATA,DO_EXTRA,FREETOT,KILL_H1,PEXIST,TBOMBD2
|
||
.REF KILL_F2,GETFPAL,BGDO,HALT,KILL_LY,COMEOUT,BLUEEXP
|
||
.REF WARPOUT,PLYRPRCS,GETUGH,CYCLEON
|
||
.ref slt_smartbomb,NEUTRONB,DOBINGO,HULK_CNT,DODUD
|
||
.ref AKHLIMO
|
||
.ref SPAWN_MISL_GOOD
|
||
;
|
||
;SYMBOLS DEFINED IN THIS FILE
|
||
;
|
||
.DEF STRT_MISLS,DOIT,ONHEAD
|
||
.DEF BMBLTSON,ADDBMB,TINGSND
|
||
.DEF STRT_WPN,KILL_BULL,SPRAYON,NSTPON,EXPCNT,FLAMING
|
||
.DEF KEYON,RINGON,SMRTON,SHOEON,EXTRA,BMBON,DEL_BULL,TCSH,BOOMS
|
||
.DEF FIREON,GRENON,SPDGON,CLNICN,CHK_BULL,SBOMB,KILL_BULL2
|
||
.def SBSND,KILL_BULLG
|
||
|
||
;UNINITIALIZED RAM DEFINITIONS
|
||
|
||
.BSS EXPCNT,16 ;SMART BOMB EXP CNT
|
||
|
||
;EQUATES FIRST ORIGINATED IN THIS FILE
|
||
|
||
;PUT IN ANGLE VELOCITIES!
|
||
BLTYVEL .EQU 072000H ;>164000
|
||
BLTXVEL .EQU 072000H ;>164000
|
||
BL3YVEL .EQU 032000H ;>164000
|
||
BL3XVEL .EQU 039000H ;>164000
|
||
BLT5YVEL .EQU 038000H ;>164000
|
||
BLT5XVEL .EQU 040000H ;>164000
|
||
GRNYVEL .EQU 000H
|
||
GRNXVEL .EQU 2000H
|
||
;-18000 FOR FLATFACE
|
||
;GRNYVEL2 .EQU -018000H
|
||
;
|
||
;GRNXVEL2 .EQU -018000H
|
||
|
||
.TEXT
|
||
msllnchsnd .word >f290,10,>80b9,0 ;Missile launch
|
||
;msllnchsnd .word >f290,10,>80b6,0 ;Missile launch
|
||
;msllnchsnd .word >f290,10,>812C,0 ;Missile launch
|
||
STRT_MISLS
|
||
; DIE
|
||
MOVK 4,A11
|
||
MOVE @WAVE,A0
|
||
CMPI 1,A0
|
||
JRZ SM1
|
||
MOVK 4,A11 ;MISL CNT FOR BASEMENT AREA #1
|
||
CMPI 38,A0
|
||
JRZ SM1
|
||
MOVK 14,A11
|
||
CMPI 18,A0
|
||
JRNZ SM1
|
||
MOVK 3,A11 ;INTO AIRPORT GATE
|
||
SM1
|
||
MOVE *A8(OYPOS),A0
|
||
MOVE @WORLDTLY+16,A1
|
||
ADDI 240,A1
|
||
CMP A0,A1
|
||
JRLT SMD
|
||
SLEEP 110
|
||
MOVE @HALT,A0
|
||
JRNZ SM1
|
||
MOVE @WAVE,A0
|
||
CMPI 38,A0
|
||
JRNZ SM50
|
||
MOVI 400,A0
|
||
CALLA RANDPER
|
||
JRC SM1
|
||
JRUC SM01
|
||
SM50 SUBK 1,A0
|
||
JRNZ SM01
|
||
MOVI 850,A0
|
||
CALLA RANDPER
|
||
JRC SM1
|
||
SM01
|
||
movi msllnchsnd,a0
|
||
calla ONESND
|
||
MOVK 8,A10
|
||
MOVE *A8(OFLAGS),A0
|
||
BTST B_FLIPH,A0
|
||
JRZ SM2
|
||
MOVK 24,A10
|
||
SM2 MOVI missileo_t,A9
|
||
CREATE BOSSPID,missile_fire2
|
||
;missile_fire ;A8=*Src obj, A9=*Offset_t, A10=Dir 0-31
|
||
DSJ A11,SM1
|
||
SMD DIE
|
||
|
||
missileo_t
|
||
.word 12H,6
|
||
|
||
RINGON:
|
||
;TURN RING ON AROUND PLAYER ICON PICKUP
|
||
;REDUCE MMTM!!!
|
||
MMTM SP,A1,A7,A9
|
||
MOVE @GAMSTATE,A1
|
||
CMPI INAMODE,A1
|
||
JRZ ROUT
|
||
MOVE *A0(OPLINK),A0,L
|
||
MOVE *A0(PNUM),A9
|
||
MOVI GULP,A0
|
||
CALLA ONESND
|
||
MOVI 50,A10 ;TIME RINGS ARE ON
|
||
; MOVE @RINGTIME,A10
|
||
|
||
|
||
;GOOD PLAYERS WILL GET RING TIME CUT DOWN
|
||
|
||
CMPI 1,A9
|
||
JRZ SM16
|
||
|
||
MOVE @timerp2,A1
|
||
CMPI 280,A1
|
||
JRGE MKHRD0 ;IF CURRENT GAME IS TOO LONG!
|
||
MOVE @timerp2sd,A1 ;Player 2 seconds since death
|
||
CMPI 170,A1
|
||
JRLT NOCHNG6
|
||
MKHRD0 MOVI 39,A10
|
||
JRUC NOCHNG6
|
||
SM16
|
||
MOVE @timerp1,A1
|
||
CMPI 280,A1
|
||
JRGE MKHRD0 ;IF CURRENT GAME IS TOO LONG!
|
||
MOVE @timerp1sd,A1 ;Player 1 seconds since death
|
||
CMPI 170,A1
|
||
JRLT NOCHNG6
|
||
MOVI 39,A10
|
||
NOCHNG6
|
||
|
||
|
||
MOVE @WAVE,A0
|
||
CMPI 38,A0
|
||
JRNZ PAT
|
||
MOVK 19,A10
|
||
PAT
|
||
;IF ALREADY A RING FOR THIS PLYR
|
||
;KILL OLD PROC AND RESTART ANEW
|
||
CMPI 1,A9
|
||
JRZ ONEP
|
||
MOVI B2PID,A0
|
||
CALLA KIL1C
|
||
MOVI RNG2PID,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA EXISTP
|
||
JRZ STRT2
|
||
move *A0(PA9),A1,L
|
||
CALLA KILL
|
||
MOVE A1,A0
|
||
CALLA DELOBJ
|
||
STRT2
|
||
; MOVI 50,A10 ;TIME RINGS ARE ON
|
||
CREATE RNG2PID,RINGS ;PLACE RING AROUND PLAYER X
|
||
JRUC ROUT
|
||
ONEP
|
||
MOVI B1PID,A0
|
||
CALLA KIL1C
|
||
MOVI RNG1PID,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA EXISTP
|
||
JRZ STRT1
|
||
move *A0(PA9),A1,L
|
||
CALLA KILL
|
||
MOVE A1,A0
|
||
CALLA DELOBJ
|
||
STRT1
|
||
; MOVI 50,A10 ;TIME RINGS ARE ON
|
||
CREATE RNG1PID,RINGS ;PLACE RING AROUND PLAYER X
|
||
ROUT CALLR CLNICN
|
||
MMFM SP,A1,A7,A9
|
||
RETS
|
||
|
||
BMBLTSON
|
||
MMTM SP,A1,A7,A9,A11
|
||
MOVE *A0(OPLINK),A11,L
|
||
MOVE *A11(PNUM),A9
|
||
CMPI 1,A9
|
||
JRZ ONEP4
|
||
MOVI BMBLT2PID,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA EXISTP
|
||
JRZ STRT4
|
||
CALLA KILL
|
||
STRT4
|
||
MOVK 10,A10 ;# OF BOMBS TO DROP FOR PLYR
|
||
CREATE BMBLT2PID,DOBMBS
|
||
JRUC ADSHOE
|
||
ONEP4
|
||
MOVI BMBLT1PID,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA EXISTP
|
||
JRZ STRT14
|
||
CALLA KILL
|
||
STRT14
|
||
MOVK 10,A10
|
||
CREATE BMBLT1PID,DOBMBS
|
||
ADSHOE
|
||
;TURN ON FAST SHOES ALSO
|
||
MOVE *A11(LEG_PRC),A9,L
|
||
;PICKED UP TENNIS SHOES!
|
||
MOVI 08140H,A1
|
||
MOVE A1,*A9(SHOECNT),W
|
||
CALLR CLNICN
|
||
MMFM SP,A1,A7,A9,A11
|
||
RETS
|
||
DOBMBS
|
||
;A9=1 OR 2 FOR PLYR #
|
||
;A10=# OF BOMBS TO DROP
|
||
MOVE A9,A1
|
||
DEC A1
|
||
SLL 5,A1
|
||
MOVI PLYRPRCS,A11
|
||
ADD A1,A11
|
||
MOVE *A11,A11,L
|
||
DB2
|
||
MOVE @WARPOUT,A0
|
||
JRNZ DI ;NOBM
|
||
MOVE @HALT,A0
|
||
JRNZ NOBM
|
||
;PLACE TIME BOMB HERE
|
||
MOVE *A11(DEAD),A0
|
||
JRNZ DI
|
||
;PLACE BOMB ON GROUND
|
||
CREATE BMBPID,TBOMBD2
|
||
MOVI SETDWN,A0 ;SET DOWN SND
|
||
CALLA ONESND
|
||
DEC A10
|
||
JRZ DI
|
||
NOBM SLEEPK 25
|
||
JRUC DB2
|
||
|
||
EXTRA:
|
||
;A0=PLYR
|
||
;A8=ICON
|
||
MMTM SP,A1,A2,A3,A4,A5,A6,A7
|
||
MOVE *A8(OIMG),A1,L
|
||
CMPI ORCHINT,A1 ;HINTS
|
||
JRZ AWARP
|
||
CMPI SPIN1,A1 ;WARP
|
||
JRZ AWARP
|
||
CMPI MAPBUTN,A1
|
||
JRNZ EX1
|
||
;THIS IS A MAPBUTN
|
||
MOVI BGDO,A7
|
||
MOVK 1,A0
|
||
MOVE A0,@HALT
|
||
EX2 MOVE *A8(OPLINK),A0,L
|
||
CLR A1
|
||
CALLA XFERPROC
|
||
MOVE *A8(OFLAGS),A0
|
||
ORI M_NOCOLL,A0
|
||
MOVE A0,*A8(OFLAGS)
|
||
EX3 MOVK 1,A0
|
||
MOVE A0,@OUT_FLG
|
||
NOPE MMFM SP,A1,A2,A3,A4,A5,A6,A7
|
||
RETS
|
||
AWARP MOVE @DONT_WARP,A7 ;NEUTRON BMB BLOWING UP!
|
||
JRNZ EX3
|
||
MOVI COMEOUT,A7
|
||
MOVE A0,A9
|
||
JRUC EX2
|
||
|
||
EX1 CMPI PLAYER,A1
|
||
JRNZ NOPE
|
||
;FREE MAN ICON TOUCHED
|
||
MOVE *A0(OPLINK),A10,L
|
||
CREATE0 FLASHME
|
||
MOVE *A10(PNUM),A10
|
||
MOVI P1DATA,A2
|
||
CMPI 1,A10
|
||
JRZ TAG1
|
||
MOVI P2DATA,A2
|
||
TAG1 CALLA DO_EXTRA
|
||
; MOVE *A8(OPLINK),A0,L
|
||
; JRZ TAG2 ;BR=BONUS MAN SITTING INSIDE A WARP
|
||
;CHECK TO SEE IF PIXSCAN BIT IS SET!
|
||
;IF SO, WE HAVE A BONUS MAN IN A WARP!
|
||
MOVE *A8(OFLAGS),A0
|
||
BTST B_PIXSCAN,A0 ;.EQU 10
|
||
JRNZ TAG2
|
||
;
|
||
; MOVE *A8(OYPOS),A0
|
||
;;CHECK IF WARP LOCKDOWN FREE MAN
|
||
; CMPI 127+200+60,A0
|
||
; JRNZ TAG1A
|
||
; MOVE *A8(OXPOS),A0
|
||
; CMPI 180+200-3,A0
|
||
; JRZ TAG2
|
||
; CMPI 220+200-3,A0
|
||
; JRZ TAG2
|
||
;TAG1A
|
||
MOVE @FREETOT,A0
|
||
INC A0
|
||
MOVE A0,@FREETOT
|
||
JRUC FLYCONT
|
||
TAG2
|
||
CLR A11
|
||
JRUC FLYCONTA
|
||
|
||
KEYON:
|
||
;PLAYER NOW CARRIES KEY
|
||
;A0=PLYR
|
||
;A8=ICON
|
||
MMTM SP,A1,A2,A3,A4,A5,A6,A7
|
||
MOVE *A0(OPLINK),A10,L
|
||
CREATE0 FLASHME
|
||
MOVE *A10(PNUM),A10
|
||
MOVI P1DATA,A2
|
||
; MOVE A2,@MAPON
|
||
MOVI KEYPT,A1
|
||
CMPI 1,A10
|
||
JRZ KEY1
|
||
MOVI P2DATA,A2
|
||
KEY1
|
||
MOVE *A2(TKEYS),A0
|
||
INC A0
|
||
MOVE A0,*A2(TKEYS)
|
||
|
||
CALLA SCRADD2
|
||
MOVI KEYSND,A0 ;KEY VOICE CALL
|
||
CALLA ONESND
|
||
FLYCONT
|
||
MOVK 1,A11
|
||
FLYCONTA
|
||
MOVI CLSDEAD,A0
|
||
MOVE A0,*A8(OID)
|
||
MOVI DMAWNZ|M_NOCOLL,A0
|
||
MOVE A0,*A8(OFLAGS)
|
||
MOVI 300,A0
|
||
MOVE A0,*A8(OZPOS)
|
||
MOVE *A8(OPLINK),A0,L
|
||
DEC A10
|
||
FLYCONT2
|
||
MOVI ICONPID,A1
|
||
MOVI INHERE,A7 ;FLOAT TOWARD SCORE BOARD
|
||
CALLA XFERPROC
|
||
MOVK 1,A0
|
||
MOVE A0,@OUT_FLG
|
||
MMFM SP,A1,A2,A3,A4,A5,A6,A7
|
||
RETS
|
||
ONHEAD
|
||
CMPI P1DATA,A9
|
||
JRNZ ONH1
|
||
;P1
|
||
CLR A10
|
||
MOVE @PLYROBJS,A7,L
|
||
ONH2 MOVE *A7(OXVAL),A0,L
|
||
CLR A11
|
||
SUBI [1,0],A0
|
||
MOVE *A7(OYVAL),A1,L
|
||
ADDI [1,0],A1
|
||
MOVI PLAYER,A2
|
||
MOVI 300,A3
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSDEAD,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
MOVI ICONPID,A0
|
||
MOVE A0,*A13(PROCID)
|
||
SLEEPK 20 ;SHOW HIM!
|
||
JAUC INHERE
|
||
ONH1 MOVE @PLYROBJS+32,A7,L
|
||
MOVK 1,A10
|
||
JRUC ONH2
|
||
TCSH:
|
||
;TOUCH CASH ON FLOOR
|
||
;A0=PLYR
|
||
;A8=BMB IMG
|
||
MMTM SP,A1,A2,A3,A4,A5,A6,A7
|
||
MOVE *A0(OPLINK),A0,L
|
||
MOVE *A0(PNUM),A10
|
||
MOVI P1DATA,A1
|
||
DEC A10
|
||
JRZ X0
|
||
MOVI P2DATA,A1
|
||
X0 MOVE *A8(OIMG),A0,L
|
||
CMPI DET1,A0
|
||
JRNZ NOT_BMB
|
||
;PLAYER PICKED UP EXTRA BOMB
|
||
PUSH A0
|
||
MOVI P1DATA+BMB_CNT,A0
|
||
MOVE A10,A10
|
||
JRZ TBMB0
|
||
MOVI P2DATA+BMB_CNT,A0
|
||
TBMB0
|
||
CALLR ADDBMB
|
||
PULL A0
|
||
MOVI SCASH2,A0
|
||
JRUC X2A
|
||
NOT_BMB
|
||
CMPI PLAYER,A0 ;FREE MAN?
|
||
JRNZ NOTMAN
|
||
|
||
MOVI P1DATA,A2
|
||
MOVE A10,A10
|
||
JRZ TKEY10
|
||
MOVI P2DATA,A2
|
||
TKEY10
|
||
CALLA DO_EXTRA
|
||
;DO_EXTRA
|
||
;EXTRA MAN
|
||
;A2 = P1DATA OR P2DATA
|
||
JRUC X2AA
|
||
NOTMAN CMPI KEY,A0
|
||
JRNZ NOT_KEY
|
||
|
||
MOVI P1DATA,A2
|
||
MOVI KEYPT,A1
|
||
MOVE A10,A10
|
||
JRZ TKEY1
|
||
MOVI P2DATA,A2
|
||
TKEY1
|
||
MOVE *A2(TKEYS),A0
|
||
INC A0
|
||
MOVE A0,*A2(TKEYS)
|
||
CALLA SCRADD2
|
||
MOVI KEYSND,A0 ;KEY VOICE CALL
|
||
JRUC X2A
|
||
NOT_KEY CMPI USFLG,A0
|
||
JRNZ X1
|
||
MOVE *A1(TFLAGS),A0 ;TOTAL FLAGS PICKED UP
|
||
INC A0
|
||
MOVE A0,*A1(TFLAGS)
|
||
JRUC X2
|
||
X1 MOVE *A1(CASHCNT),A0
|
||
INC A0
|
||
MOVE A0,*A1(CASHCNT)
|
||
X2 MOVE @WAVE,A0
|
||
CMPI 40,A0
|
||
JRNZ X3Z
|
||
;PLEASURE DOME CASH
|
||
MOVI P1DATA,A2
|
||
MOVI PLSRPTS,A1 ;PLEASURE DOME PNTS
|
||
MOVE A10,A10
|
||
JRZ TPL
|
||
MOVI P2DATA,A2
|
||
TPL
|
||
CALLA SCRADD2
|
||
;SUBTRACT OUT TWPNS PICKED UP
|
||
X3Z MOVI SCASH,A0 ;GET CASH PICKUP SND
|
||
X2A CALLA ONESND
|
||
X2AA MOVE *A1(TWPNS),A0
|
||
DEC A0
|
||
MOVE A0,*A1(TWPNS)
|
||
MOVI CLSDEAD,A0
|
||
MOVE A0,*A8(OID)
|
||
MOVI DMAWNZ|M_NOCOLL,A0
|
||
MOVE A0,*A8(OFLAGS)
|
||
MOVI 500,A0 ;300
|
||
MOVE A0,*A8(OZPOS)
|
||
MOVE *A8(OPLINK),A0,L
|
||
JRZ X3
|
||
CALLA KILL
|
||
X3
|
||
;JEWEL ON GROUND JUMPS IN HERE
|
||
;A10=0 OR 1 FOR PLYR #
|
||
;A8=ICON IMG
|
||
;A11=1 IF FROM KEY FLOATING TO SCORE BOARD
|
||
CLR A11
|
||
CREATE FUTUREPID,INHERE
|
||
MMFM SP,A1,A2,A3,A4,A5,A6,A7
|
||
RETS
|
||
|
||
;CSHSND .LONG SCASH1,SCASH2,SCASH3,SCASH4,SCASH5
|
||
; .LONG SCASH4,SCASH2,SCASH5
|
||
|
||
BMBON:
|
||
;PLAYER PICKED UP EXTRA BOMB
|
||
;A0=PLYR
|
||
;A8=BMB IMG
|
||
MMTM SP,A1,A2,A3,A4,A5,A6,A7
|
||
MOVE *A0(OPLINK),A0,L
|
||
MOVE *A0(PNUM),A10
|
||
MOVI SCASH2,A0
|
||
CALLA ONESND
|
||
MOVI P2DATA+BMB_CNT,A0
|
||
CMPI 1,A10
|
||
JRNZ FLY
|
||
MOVI P1DATA+BMB_CNT,A0
|
||
FLY CALLR ADDBMB
|
||
MOVI CLSDEAD,A0
|
||
MOVE A0,*A8(OID)
|
||
MOVI DMAWNZ|M_FLIPH|M_NOCOLL,A0
|
||
MOVE A0,*A8(OFLAGS)
|
||
MOVI 300,A0
|
||
MOVE A0,*A8(OZPOS)
|
||
MOVE *A8(OPLINK),A0,L
|
||
DEC A10
|
||
CLR A11
|
||
JRUC FLYCONT2
|
||
|
||
ADDBMB MOVE *A0,A2,W ;@P1DATA+BMB_CNT,A2
|
||
CMPI 15,A2 ;CAN CARRY MAXIMUM OF 18 BMBS
|
||
JRNC NOADD
|
||
INC A2
|
||
MOVE A2,*A0,W ;@P1DATA+BMB_CNT
|
||
NOADD RETS
|
||
FLASHME
|
||
;A10=PROC OF PLYR TO FLASH (TORSO STRUCTURE)
|
||
MOVE *A10(TSO_PTR),A8,L
|
||
MOVE *A10(LEG_PTR),A11,L
|
||
; MOVE *A8(OPAL),A10,W
|
||
;GIVE THESE IMAGES OTHER PAL
|
||
MOVI nup2a,A0
|
||
CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
||
MOVE A0,*A8(OPAL),W ;STORE THE NEW PALETTE
|
||
MOVE A0,*A11(OPAL),W ;STORE THE NEW PALETTE
|
||
SLEEPK 8
|
||
;GIVE THESE IMAGES OTHER PAL
|
||
MOVI nup1,A0
|
||
MOVE *A10(PNUM),A1
|
||
CMPI 1,A1
|
||
JRZ XS
|
||
MOVI nup2,A0
|
||
XS CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
||
MOVE A0,*A8(OPAL),W ;STORE THE NEW PALETTE
|
||
MOVE A0,*A11(OPAL),W
|
||
DIE
|
||
|
||
SHOEON:
|
||
;A8=SHOE ICON
|
||
;FAST SHOES
|
||
;REDUCE MMTM!!!
|
||
MMTM SP,A1,A7,A9,A10
|
||
MOVE *A0(OPLINK),A10,L
|
||
PUSH A0
|
||
CREATE0 FLASHME
|
||
PULL A0
|
||
MOVE *A10(LEG_PRC),A9,L
|
||
MOVE *A10(PNUM),A7
|
||
|
||
MOVE *A8(OIMG),A10,L
|
||
CMPI SHOES,A10
|
||
JRZ BOOTS
|
||
;PICKED UP TENNIS SHOES!
|
||
MOVI 08280H,A1
|
||
|
||
CMPI 1,A7
|
||
JRZ SM15
|
||
MOVE @timerp2sd,A7 ;Player 2 seconds since death
|
||
CMPI 80,A7
|
||
JRLT SH3
|
||
MOVI 081C0H,A1
|
||
JRUC SH3
|
||
SM15
|
||
MOVE @timerp1sd,A7 ;Player 1 seconds since death
|
||
CMPI 80,A7
|
||
JRLT SH3
|
||
MOVI 081C0H,A1
|
||
JRUC SH3
|
||
|
||
BOOTS
|
||
MOVE *A9(SHOECNT),A1
|
||
JRZ SHOE2
|
||
BTST 15,A1
|
||
JRZ SH2
|
||
;HAVE TENNIS SHOES ON! TAKE'EM OFF
|
||
SHOE2 MOVE A0,A10
|
||
CREATE0 FLOAT
|
||
SH2 MOVI 0A0H,A1 ;150 ;TIME SHOES ARE ON
|
||
SH3 MOVE A1,*A9(SHOECNT),W
|
||
CALLR CLNICN
|
||
MOVI FEET,A0
|
||
CALLA ONESND
|
||
MMFM SP,A1,A7,A9,A10
|
||
RETS
|
||
FEET .WORD >F06E,>18,>80CA,0 ;FAST FEET PICKUP
|
||
FLOAT
|
||
;A10=LEG IMG
|
||
;A9=LEG PROCESS
|
||
MOVE *A9(TSO_PTR),A8,L
|
||
MOVK 15,A11
|
||
FLT2
|
||
SLEEPK 8
|
||
MOVE *A9(SHOECNT),A0
|
||
JRZ DI
|
||
BTST 15,A0
|
||
JRNZ DI
|
||
MOVE *A10(OYPOS),A0
|
||
XORI 1,A0
|
||
MOVE A0,*A10(OYPOS)
|
||
DSJ A11,FLT2
|
||
MOVK 15,A11
|
||
MOVE A8,A0
|
||
MOVE A10,A8
|
||
CALLA GETANIXY
|
||
MOVE *A8(OFLAGS),A4,W
|
||
ORI M_NOCOLL,A4
|
||
CALLA GANISAG
|
||
MOVE A0,A8
|
||
;TURN BACK ON TORSO OBJECT
|
||
JRUC FLT2
|
||
DI DIE
|
||
|
||
SMRTON:
|
||
;SMART BOMB EVERYTHING ON SCREEN
|
||
MMTM SP,A1,A7,A10
|
||
MOVE A0,A9
|
||
MOVE *A0(OPLINK),A10,L
|
||
CREATE0 FLASHME
|
||
PUSH A9
|
||
CALLR CLNICN
|
||
PULL A9
|
||
MOVI 100,A0 ;230
|
||
MOVE *A10(PNUM),A1
|
||
CMPI 1,A1
|
||
JRZ SM1T
|
||
|
||
;GOOD PLAYERS WILL GET SMART BOMB 80% DUD RATE
|
||
|
||
.REF timerp2sd,timerp1sd,timerp1,timerp2
|
||
|
||
MOVE @timerp2,A1
|
||
CMPI 360,A1
|
||
JRGE MKHRD01 ;IF CURRENT GAME IS TOO LONG!
|
||
|
||
MOVE @timerp2sd,A1 ;Player 2 seconds since death
|
||
CMPI 90,A1
|
||
JRLT NOCHNG
|
||
JRUC MKHRD01
|
||
SM1T
|
||
MOVE @timerp1,A1
|
||
CMPI 360,A1
|
||
JRGE MKHRD01 ;IF CURRENT GAME IS TOO LONG!
|
||
|
||
MOVE @timerp1sd,A1 ;Player 1 seconds since death
|
||
CMPI 90,A1
|
||
JRLT NOCHNG
|
||
MKHRD01 MOVI 450,A0
|
||
NOCHNG
|
||
CALLA RANDPER
|
||
JRNC ZSM1
|
||
MOVE @WAVE,A0
|
||
JRZ ZSM1
|
||
CMPI 10,A0
|
||
JRZ ZSM1
|
||
;DUD!
|
||
CREATE0 DODUD
|
||
MOVI WHAWHA,A0
|
||
CALLA ONESNDOVR
|
||
JRUC XSM1
|
||
WHAWHA .WORD >FBEE,90,>8088,0 ;WHAWHA
|
||
ZSM1
|
||
CREATE0 DOBINGO
|
||
CREATE0 SBSND
|
||
MOVE @WAVE,A0
|
||
SUBK 32,A0
|
||
JRZ XSM1
|
||
CREATE0 SBOMB
|
||
MOVI 30,A10
|
||
CALLA SHAKER
|
||
XSM1
|
||
MMFM SP,A1,A7,A10
|
||
RETS
|
||
SBSND
|
||
MOVI SALTXP4,A0
|
||
MOVK 2,A1 ;REPEAT IT 3 TIMES
|
||
CALLA SNDLD ;GO DO IT
|
||
|
||
JSRP BOOMS
|
||
MOVI TOTCARN,A0 ;SPEECH
|
||
CALLA ONESND
|
||
DIE
|
||
BOOMS
|
||
MOVI SEXP2HI,A0
|
||
MOVK 1,A1 ;REPEAT IT 3 TIMES
|
||
CALLA SNDLD ;GO DO IT
|
||
SLEEPK 5
|
||
MOVI SEXP2HI,A0
|
||
MOVK 1,A1 ;REPEAT IT 3 TIMES
|
||
CALLA SNDLD ;GO DO IT
|
||
SLEEPK 5
|
||
MOVI SEXP2HI,A0
|
||
MOVK 1,A1 ;REPEAT IT 3 TIMES
|
||
CALLA SNDLD ;GO DO IT
|
||
SLEEPK 5
|
||
MOVI SEXP2HI,A0
|
||
MOVK 1,A1 ;REPEAT IT 3 TIMES
|
||
CALLA SNDLD ;GO DO IT
|
||
SLEEPK 21
|
||
RETP
|
||
|
||
SBOMB
|
||
;SMART BOMB
|
||
;A9=PLYR IMG PTR WHO GOT ME
|
||
CLR A0
|
||
MOVE A0,@EXPCNT ;SMART BOMB EXP CNT - MAX OUT AT 15!
|
||
MOVE *A9(OPLINK),A0,L
|
||
MOVE *A0(PNUM),A0
|
||
MOVI P1DATA,A9
|
||
DEC A0
|
||
JRZ BAD0
|
||
MOVI P2DATA,A9
|
||
;A9=P1 OR P2DATA FOR SCORING SMART BOMB POINTS
|
||
BAD0
|
||
MOVI CLSENMY|TYPHULK,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD10
|
||
;FOUND A HULK
|
||
MOVE A0,A8
|
||
CALLA KILL_H1 ;KILL_HULK
|
||
JRUC BAD0
|
||
BAD10 CLR A0
|
||
MOVE A0,@HULK_CNT
|
||
BAD1
|
||
MOVI CLSENMY|TYPFND,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD2A
|
||
;FOUND A FIEND
|
||
MOVE A0,A8
|
||
CALLA KILL_F2 ;KILL_FIEND
|
||
JRUC BAD1
|
||
BAD2A CLR A0
|
||
MOVE A0,@FND_CNT
|
||
BAD2
|
||
MOVI CLSENMY|TYPGOO,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD3
|
||
;FOUND A GOOB
|
||
MOVE A0,A8
|
||
MOVE *A8(OPLINK),A0,L
|
||
CALLA PEXIST
|
||
JRZ NOK
|
||
CALLA KILL
|
||
NOK CALLA DELOBJA8
|
||
JRUC BAD2
|
||
BAD3
|
||
MOVI CLSENMY|TYPGRW,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD4
|
||
;FOUND A HULK GROWING
|
||
MOVE A0,A8
|
||
CALLA KILL_H1 ;KILL_HULK
|
||
JRUC BAD3
|
||
BAD4
|
||
MOVI CLSENMY|TYPLAYR,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD5
|
||
;FOUND A MINE LAYER
|
||
MOVE A0,A8
|
||
CALLA KILL_LY ;KILL MINE LAYER TOO!
|
||
JRUC BAD4
|
||
BAD5
|
||
MOVI CLSPLYR|TYPHLPR|SUBLAY,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD6
|
||
MOVE *A0(OIMG),A8,L
|
||
; CMPI T72TNK,A8
|
||
; JRZ BAD6 ;BR=DON'T SMART BOMB T72 TANK!
|
||
; CMPI BTR60,A8
|
||
; JRZ BAD6 ;BR=DON'T SMART BOMB BTR60!
|
||
; CMPI BTRECK,A8
|
||
; JRZ BAD6 ;BR=DON'T SMART BOMB BTR60 WRECK!
|
||
; CMPI JEEP,A8
|
||
; JRZ BAD6 ;BR=DON'T SMART BOMB JEEP!
|
||
; CMPI JEEP2,A8
|
||
; JRZ BAD6 ;BR=DON'T SMART BOMB JEEP!
|
||
; CMPI JEEP4,A8
|
||
; JRZ BAD6 ;BR=DON'T SMART BOMB JEEP!
|
||
; CMPI SCUD1,A8
|
||
; JRZ BAD6 ;BR=DON'T SMART BOMB SCUD TRUCK!
|
||
; CMPI NEUTRONB,A8
|
||
; JRZ BAD6 ;BR=DON'T SMART BOMB NEUTBONB!
|
||
; CMPI AKHLIMO,A8
|
||
; JRZ BAD6
|
||
|
||
MOVI TANK_LIST,A2
|
||
LOOP MOVE *A2+,A3,L
|
||
JRZ BAD6
|
||
CMP A8,A3
|
||
JRNZ LOOP
|
||
|
||
;FOUND A MINE LAYER WITH CLSPLYR BIT SET FOR A MOMENT!
|
||
MOVE A0,A8
|
||
CALLA KILL_LY ;KILL MINE LAYER TOO!
|
||
JRUC BAD5
|
||
|
||
TANK_LIST
|
||
.LONG MTNK10,RTNK,MTNK11,MTNK12,MTNK12B,MTNK6
|
||
.LONG MTNK6B,MTNK7,MTNK8,MTNK9,MTNK9B,0
|
||
BAD6
|
||
MOVI CLSENMY|TYPAHMD,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD7A
|
||
MOVE A0,A8
|
||
CALLA KILL_H1 ;KILL HULK AS WELL AS AHMED
|
||
JRUC BAD6
|
||
BAD7A CLR A0
|
||
MOVE A0,@AHMD_CNT
|
||
BAD7
|
||
MOVI CLSENMY|TYPLAYR|SUBFLM,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD8
|
||
;FOUND A FLAME
|
||
CALLA DELOBJ
|
||
JRUC BAD7
|
||
BAD8
|
||
movi CLSENMY|TYPSL,a0
|
||
movi >ff00,a1
|
||
calla EXISTOBJ
|
||
jrz BAD9
|
||
move a0,a8
|
||
calla slt_smartbomb
|
||
jruc BAD8
|
||
|
||
BAD9 movi SHRAPPID,a0
|
||
calla KIL1C
|
||
|
||
clr a0
|
||
move a0,@SKIPR_CNT
|
||
;
|
||
;INSERT OTHERS HERE
|
||
;
|
||
|
||
|
||
|
||
;HULKFIX MOVI HULKPID,A0
|
||
; CLR A1
|
||
; NOT A1
|
||
; CALLA EXISTP
|
||
;* Z BIT SET = NO MATCH, A0 = 0
|
||
;* Z BIT CLR = MATCH, A0 = PTR TO PROCESS
|
||
; JRZ BADCLN
|
||
; MOVE A0,A2
|
||
; move *A0(PA8),A0,L
|
||
; CALLA ISOBJ
|
||
;* Z BIT SET = NO OBJECT, A0 = 0 *
|
||
;* Z BIT CLR = NO OBJECT, A0 = PTR TO OBJECT *
|
||
; JRZ KILLIT
|
||
; MOVE *A0(OID),A1
|
||
; CMPI CLSDEAD,A1
|
||
; JRZ HULKFIX
|
||
; CMPI CLSENMY|TYPGRW,A1
|
||
; JRZ HULKFIX
|
||
; CMPI CLSENMY|TYPHULK,A1
|
||
; JRZ HULKFIX
|
||
;KILLIT MOVE A2,A0
|
||
; CALLA KILL
|
||
; JRUC HULKFIX
|
||
|
||
BADCLN
|
||
MOVI CLSENMY|TYPSHOT,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BADO
|
||
;FOUND A CBALL/SHRAPNEL
|
||
;NO SCORE
|
||
MOVE A0,A8
|
||
;ALSO USED FOR SHRAPNEL FROM FAT MAN
|
||
MOVE *A8(OPLINK),A0,L
|
||
JREQ BADCLN
|
||
CLR A1
|
||
MOVE A1,*A8(OPLINK),L
|
||
CALLA KILL
|
||
CALLA DELOBJA8
|
||
JRUC BADCLN
|
||
BADO
|
||
;RESET ALL CNTS!
|
||
DIE
|
||
SNDA
|
||
MOVI GETWPN,A0
|
||
CALLA ONESND
|
||
SLEEPK 18H
|
||
MOVI WOO2,A0
|
||
CALLA ONESND
|
||
DIE
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
********************************
|
||
* Collision code for weapon icons
|
||
* A0=*Plyr leg obj
|
||
* A8=*Icon obj
|
||
|
||
NSTPON
|
||
PUSH a1,a2,a7,a9,a10
|
||
MOVK SUBNOSTP,A2 ;BULLET SUBTYPE
|
||
JRUC ICONIN
|
||
SPDGON
|
||
PUSH a1,a2,a7,a9
|
||
MOVK SUBSPDG1,A2 ;BULLET SUBTYPE
|
||
JRUC ICONIN
|
||
GRENON
|
||
PUSH a1,a2,a7,a9
|
||
MOVK SUBGRND,A2 ;BULLET SUBTYPE
|
||
JRUC ICONIN
|
||
FIREON
|
||
PUSH a1,a2,a7,a9
|
||
MOVK SUBTHROW,A2
|
||
MOVE @PCNT,A7
|
||
SLL 32-2,A7
|
||
JRZ ICONIN
|
||
MOVK SUBFIRE1,A2 ;BULLET SUBTYPE
|
||
JRUC ICONIN
|
||
SPRAYON
|
||
PUSH a1,a2,a7,a9
|
||
MOVK SUBSPRY,A2 ;BULLET SUBTYPE
|
||
|
||
ICONIN move *a0(OPLINK),a10,L
|
||
CALLR DO_CNT
|
||
CREATE0 SNDA
|
||
CALLR CLNICN
|
||
CREATE0 FLASHME
|
||
PULL a1,a2,a7,a9,a10
|
||
RETS
|
||
|
||
|
||
********************************
|
||
* Setup new weapon
|
||
* A2=Weapon #
|
||
* A10=*Plyr process
|
||
* Trashes A0-A2,A7,A9
|
||
|
||
DO_CNT
|
||
move a2,*a10(WPN_TYP)
|
||
|
||
sll 4,a2
|
||
addi TIMERS,a2
|
||
movi timerp1,a14
|
||
move *a10(PNUM),a1
|
||
subk 1,a1
|
||
jreq dc40
|
||
movi timerp2,a14
|
||
|
||
dc40 move *a14+,a7 ;Seconds since buyin
|
||
cmpi 240,a7
|
||
jrgt dc150 ;Hard?
|
||
|
||
move *a14,a1 ;Seconds since death
|
||
cmpi 80,a1
|
||
jrlt dc300 ;Normal?
|
||
|
||
dc150 cmpi 290,a7
|
||
jrlt dc200 ;No missile?
|
||
|
||
move a0,a9 ;A9=*Plyr leg obj
|
||
move @PCNT,a0
|
||
sll 32-1,a0
|
||
jrnz dc200 ;50%?
|
||
|
||
move @WAVE,a0
|
||
subk 16,a0
|
||
jrlt dc180 ;Msl launch ok?
|
||
subk 18-16,a0
|
||
jrle dc200 ;Bad wave for msl?
|
||
subi 35-18,a0
|
||
jrlt dc200 ;^
|
||
|
||
dc180 movi MSLSLOWPID,a0
|
||
movi -1,a1
|
||
calla EXISTP
|
||
jrnz dc200
|
||
CREATE MSLSLOWPID,SPAWN_MISL_GOOD
|
||
|
||
dc200 addi TIMER2-TIMERS,a2 ;Less ammo
|
||
|
||
dc300 move *a2,a1
|
||
move a1,*a10(SHOTCNT)
|
||
|
||
rets
|
||
|
||
|
||
;STUFF SHOT CNT FOR THIS WEAPON
|
||
;SUBLZR .EQU 0001H ;REGULAR LAZER SHOTS
|
||
;SUBSPRY .EQU 0002H ;SPRAY SUB TYPE
|
||
;SUBFIRE1 .EQU 0003H ;FIRE BALL WPN
|
||
;SUBGRND .EQU 0004H ;GRENADE
|
||
;SUBNOSTP .EQU 0005H ;NON STOPPING BULLET
|
||
;SUBSPDG1 .EQU 0006H ;MACHINE GUN TYP WPN
|
||
|
||
TIMERS .WORD 0,0,41,60,60,52,110,56
|
||
TIMER2 .WORD 0,0,30,45,45,38,70,40 ;FOR GOOD PLAYERS
|
||
|
||
CLNICN
|
||
MOVE *A8(OFLAGS),A1
|
||
ORI M_NOCOLL,A1
|
||
MOVE A1,*A8(OFLAGS)
|
||
MOVE *A8(OPLINK),A0,L
|
||
MOVE *A0(PTIME),A9 ;TIME IT STILL HAD LEFT TO SLEEP
|
||
MOVI CLEANUP,A7
|
||
MOVI ICONPID,A1
|
||
CALLA XFERPROC
|
||
MOVK 1,A0
|
||
MOVE A0,@OUT_FLG
|
||
RETS
|
||
DEL_BULL
|
||
;DEL BULLET OBJ
|
||
;NOW DELETE OBJECT FROM OBJLST
|
||
MOVE *A8(OPLINK),A0,L
|
||
;INC BULLET HIT TOTAL FOR THIS PLAYER
|
||
MOVI P1DATA,A2
|
||
MOVE *A0(MYPLYR),A1
|
||
DEC A1
|
||
JRZ ADB2
|
||
; SUBK 1,A1
|
||
; JRNZ BUGSKIP
|
||
MOVI P2DATA,A2
|
||
ADB2 MOVE *A2(THITS),A1
|
||
INC A1
|
||
MOVE A1,*A2(THITS)
|
||
;BUGSKIP
|
||
MOVE A1,@OUT_FLG ;TELL SCANNER TO STOP
|
||
CALLA KILL
|
||
CALLA DELOBJA8
|
||
RETS
|
||
KILL_BULLG
|
||
MOVE @PCNT,A0
|
||
sll 32-3,a0
|
||
JRNZ KILL_BULL
|
||
CALLA GETUGH
|
||
KILL_BULL
|
||
; KILL BULLET WITH AN EXPLOSION
|
||
MOVI REGEXP,A7
|
||
KBL MOVE *A8(OPLINK),A0,L
|
||
;INC BULLET HIT TOTAL FOR THIS PLAYER
|
||
;MYPLYR .EQU PDATA+48 ;UHW PLAYER 1 OR 2 FIRED ME=1 OR 2
|
||
MOVI P1DATA,A2
|
||
MOVE *A0(MYPLYR),A1
|
||
DEC A1
|
||
JRZ DB5
|
||
SUBK 1,A1
|
||
MOVI P2DATA,A2
|
||
DB5 MOVE *A2(THITS),A1
|
||
INC A1
|
||
MOVE A1,*A2(THITS)
|
||
|
||
MOVE A1,@OUT_FLG ;TELL SCANNER TO STOP
|
||
MOVI BULPID,A1
|
||
CALLA XFERPROC
|
||
MOVE *A8(OFLAGS),A0
|
||
ORI M_NOCOLL,A0
|
||
MOVE A0,*A8(OFLAGS)
|
||
RETS
|
||
|
||
SUBR KILL_BULL3
|
||
|
||
movi cldbpurp_l,a9
|
||
movi kb3exp,a7
|
||
jruc kb2
|
||
|
||
cldbpurp_l
|
||
LWL CLDB1,NEWPALET|2,PURPPAL
|
||
LW CLDB2,2
|
||
LW CLDB3,2
|
||
LW CLDB4,2
|
||
LW CLD8,2
|
||
LW CLD9,2
|
||
LW CLD10,2
|
||
LWL0 CLD11,2
|
||
|
||
KILL_BULL2
|
||
MOVI FIREEXP,A9 ;FRBALL
|
||
movi ONON,a7
|
||
kb2 MOVE @PCNT,A0
|
||
sll 32-2,a0
|
||
srl 32-2-5,a0
|
||
ADDI TINGLST,A0
|
||
MOVE *A0,A0,L
|
||
CALLA ONESND
|
||
JRUC KBL
|
||
TINGLST .LONG TING,TING2,TING3,TING
|
||
TINGSND
|
||
MOVE @PCNT,A0
|
||
SLL 32-2,A0
|
||
SRL 32-7,A0 ;*32
|
||
ADDI TINGLST,A0
|
||
MOVE *A0,A0,L
|
||
JAUC ONESND
|
||
|
||
|
||
kb3exp move *a8(OYPOS),a0
|
||
addk 13,a0
|
||
move a0,*a8(OYPOS)
|
||
movi 160,a4
|
||
jruc re10
|
||
REGEXP
|
||
;REGULAR EXPLOSION HERE
|
||
MOVI FRBALL,A9 ;FRBALL
|
||
MOVI 180,A4
|
||
re10 MOVE A4,*A8(OZPOS)
|
||
ONON
|
||
MOVE *A8(OXVEL),A4,L
|
||
sra 2,a4
|
||
MOVE A4,*A8(OXVEL),L
|
||
MOVE *A8(OYVEL),A4,L
|
||
sra 2,a4
|
||
RG4 MOVE A4,*A8(OYVEL),L
|
||
jauc FRQDELDIE ;EXPLODE BULLET NOW!
|
||
|
||
|
||
REGEXP2
|
||
MOVI FIREEXP,A9 ;FRBALL
|
||
JRUC ONON
|
||
|
||
FIREEXP LWL ABLST1,NEWPALET|3,TNKPAL
|
||
LW ABLST2,3
|
||
LW ABLST3,3
|
||
LW ABLST4,3
|
||
LW ABLST5,3
|
||
LW ABLST6,3
|
||
LWL0 ABLST7,3
|
||
FRBALL LW FRBAL1,2 ;BULLET FIRE BALL EXPLOSION
|
||
LW FRBAL2,2
|
||
LWL0 FRBAL3,2
|
||
FRBL LW EXPb1,5
|
||
LW EXPb2,5
|
||
LW EXPb3,4
|
||
LW EXPb4,4
|
||
LWL0 EXPb5,4
|
||
FRBLBIG LWL THROW1,NEWPALET|4,BLUBOOM
|
||
LW THROW2,4
|
||
LW THROW3,4
|
||
LW THROW4,3
|
||
LW THROW5,3
|
||
LW THROW6,3
|
||
LW THROW7,3
|
||
LW THROW8,3
|
||
LW THROW9,3
|
||
LW THROW10,3
|
||
LW THROW11,2
|
||
LWL0 THROW12,2
|
||
; LWL0 THROW13,3
|
||
|
||
|
||
BULYV .LONG -BLTYVEL,-BLTYVEL,0,BLTYVEL,BLTYVEL,BLTYVEL,0,-BLTYVEL
|
||
BULXV .LONG 0,BLTXVEL,BLTXVEL,BLTXVEL,0,-BLTXVEL,-BLTXVEL,-BLTXVEL
|
||
BUL3AYV .LONG -BL3YVEL,-BL3YVEL,0,BL3YVEL,BL3YVEL,BL3YVEL,0,-BL3YVEL
|
||
BUL3AXV .LONG 0,BL3XVEL,BL3XVEL,BL3XVEL,0,-BL3XVEL,-BL3XVEL,-BL3XVEL
|
||
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
|
||
|
||
WHICHXV .LONG BULXV,BUL2XV,BUL3XV
|
||
WHICHYV .LONG BULYV,BUL2YV,BUL3YV
|
||
|
||
;SUBLZR .EQU 0001H ;REGULAR LAZER SHOTS
|
||
;SUBSPRY .EQU 0002H ;SPRAY SUB TYPE
|
||
;SUBFIRE1 .EQU 0003H ;FIRE BALL WPN
|
||
;SUBGRND .EQU 0004H ;GRENADE
|
||
;SUBNOSTP .EQU 0005H ;NON STOPPING BULLET
|
||
;SUBSPDG1 .EQU 0006H ;MACHINE GUN TYP WPN
|
||
;SUBTHROW .EQU 0007H ;BIG FLAME THROWER
|
||
WPLIST ;SUB BULLET TYPES
|
||
.LONG NORM,NORM,SPRY,FIREB,GREND,NSTP,MGUN,THROWR
|
||
|
||
********************************
|
||
* Starts a weapon, called from torso process
|
||
|
||
STRT_WPN ;A8=*Player obj, A9=Dir 1-8
|
||
|
||
MOVE *A13(WPN_TYP),A1
|
||
JRZ CONTA
|
||
MOVE *A13(SHOTCNT),A0 ;NONSTANDARD WEAPON WILL DEC SHOTCNT
|
||
DEC A0
|
||
MOVE A0,*A13(SHOTCNT)
|
||
JRNZ CONTA
|
||
MOVE A0,*A13(WPN_TYP)
|
||
|
||
CONTA SLL 5,A1
|
||
ADDI WPLIST,A1
|
||
MOVE *A1,A0,L
|
||
MOVE *A13(PNUM),A11 ;A11=Player who fired me
|
||
MOVE A11,A2
|
||
MOVI P1DATA,A10
|
||
DEC A2
|
||
JRZ CONTB
|
||
MOVI P2DATA,A10
|
||
CONTB MOVE *A10(TSHOTS),A2
|
||
INC A2
|
||
MOVE A2,*A10(TSHOTS)
|
||
JUMP A0
|
||
|
||
**************************************************************************
|
||
|
||
NORM
|
||
;WEAPON 1 - NORMAL FIRE POWER
|
||
CREATE BULPID,WPN1 ;BULPID
|
||
; MOVE *A13(LSRPTR),A0,L ;HELPER ON FLAG 1=YES
|
||
; JRZ NOLASER
|
||
; CREATE BULPID,WPN1A
|
||
;NOLASER
|
||
MOVI SHOT,A0 ;RIFLE SHOT
|
||
jauc ONESND
|
||
|
||
NSTP CREATE BULPID,WPN5
|
||
CREATE BULPID,WPN5A
|
||
MOVE *A10(TSHOTS),A2
|
||
INC A2
|
||
MOVE A2,*A10(TSHOTS)
|
||
MOVI THUMP,A0
|
||
jauc ONESND
|
||
|
||
MGUN ;MACHINE GUN
|
||
|
||
CREATE BULPID,WPN6
|
||
MOVI THUMP2,A0
|
||
jauc ONESND
|
||
|
||
FIREB ;FIRE BALL WEAPON
|
||
|
||
MOVI FRBL,A10
|
||
CREATE BULPID,WPN3
|
||
MOVI FLAMSND,A0
|
||
jauc ONESND
|
||
THROWR ;BIG GREEN FLAME THROWER
|
||
MOVI FRBLBIG,A10
|
||
CREATE BULPID,WPN3
|
||
MOVI FLAMSND,A0
|
||
jauc ONESND
|
||
|
||
GREND
|
||
;WEAPON 4 - GRENADE WEAPON
|
||
CREATE BULPID,WPN4
|
||
MOVI GRNSND,A0
|
||
jauc ONESND
|
||
|
||
SPRY
|
||
;SPRAY WEAPON
|
||
;WEAPON 2
|
||
MOVE *A10(TSHOTS),A2
|
||
ADDK 2,A2
|
||
MOVE A2,*A10(TSHOTS)
|
||
CLR A10
|
||
CREATE BULPID,WPN2
|
||
MOVK 1,A10
|
||
CREATE BULPID,WPN2
|
||
MOVK 2,A10
|
||
CREATE BULPID,WPN2
|
||
MOVI SHOT2,A0 ;SPRY
|
||
jauc ONESND
|
||
|
||
|
||
********************************
|
||
|
||
SHOT_INIT ;A6=*XVel_t, A7=*YVel_t, A9=Dir 1-8, A11=Player #1-2
|
||
|
||
move a11,*a13(MYPLYR)
|
||
move a9,*a13(BLTDIR)
|
||
subk 1,a9
|
||
sll 5,a9 ;A9=(Dir-1)*32
|
||
|
||
add a9,a6
|
||
move *a6,a6,L ;A6=XVel
|
||
add a9,a7
|
||
move *a7,a7,L ;A7=YVel
|
||
rets
|
||
|
||
;WEAPON 5 - NON STOPPING BULLET
|
||
;NOW STUFF CORRECT BULLET AND CORRECT FLIP INFO
|
||
WPN5
|
||
MOVI BUL5XV,A6
|
||
MOVI BUL5YV,A7
|
||
CALLR SHOT_INIT
|
||
MOVE *A8(OXVEL),A2,L ;ADD IN PLAYER VELOCITIES
|
||
ADD A2,A6
|
||
MOVE *A8(OYVEL),A2,L
|
||
ADD A2,A7
|
||
|
||
move a9,a2
|
||
addi B5_TYP,a2
|
||
move *a2,a2,L ;A2=*Img
|
||
|
||
srl 1,a9 ;/2
|
||
move a9,a4
|
||
addi B1_INFO,a4 ;Has PIXSCAN
|
||
move *a4,a4 ;A4=FLAGS
|
||
|
||
move *a8(OXVAL),a0,L ;A8=*Torso for player that fired me
|
||
move *a8(OYVAL),a1,L
|
||
addi XYOFFSET5,a9
|
||
move *a9,a5
|
||
sll 16,a5
|
||
add a5,a0 ;A0=XVal
|
||
|
||
move *a9(8*16),a5
|
||
sll 16,a5
|
||
add a5,a1 ;A1=YVal
|
||
|
||
MOVI CLSPLYR|TYPPLBL|SUBNOSTP,A5
|
||
JRUC DO_IT
|
||
|
||
;WEAPON 5A - WITH NON STOPPING BULLET
|
||
;NOW STUFF CORRECT BULLET AND CORRECT FLIP INFO
|
||
WPN5A
|
||
MOVI BULXV,A6
|
||
MOVI BULYV,A7
|
||
CALLR SHOT_INIT
|
||
|
||
MOVI BALL6,A2 ;A2=*IMG
|
||
MOVI DMAWNZ,A4 ;FLAGS IN A4
|
||
move *a8(OXVAL),a0,L ;A8=*Torso for player that fired me
|
||
move *a8(OYVAL),a1,L
|
||
srl 1,a9 ;/2
|
||
addi XYOFFSET5,a9
|
||
move *a9,a5
|
||
sll 16,a5
|
||
add a5,a0 ;A0=XVal
|
||
|
||
move *a9(8*16),a5
|
||
sll 16,a5
|
||
add a5,a1 ;A1=YVal
|
||
JRUC SPDCONT
|
||
|
||
;WEAPON 2 - 3 BULLETS SPRAYED OUT
|
||
;NOW STUFF CORRECT BULLET AND CORRECT FLIP INFO
|
||
WPN2
|
||
SLL 5,A10 ;GET VELS FOR THIS PROJECTILE
|
||
MOVI WHICHXV,A6
|
||
ADD A10,A6
|
||
MOVE *A6,A6,L
|
||
MOVI WHICHYV,A7
|
||
ADD A10,A7
|
||
MOVE *A7,A7,L
|
||
CALLR SHOT_INIT
|
||
|
||
MOVI CNNBLL,A2
|
||
MOVI DMAWNZ,A4
|
||
; MOVI DMAWNZ+M_PIXSCAN,A4 ;TAKE OUT PIXSCAN?
|
||
|
||
;SPDCONT
|
||
MOVE *A8(OXVAL),A0,L
|
||
MOVE *A8(OYVAL),A1,L
|
||
srl 1,a9 ;/2
|
||
addi XYOFFSET2,a9
|
||
move *a9,a5
|
||
sll 16,a5
|
||
add a5,a0 ;A0=XVal
|
||
|
||
move *a9(8*16),a5
|
||
sll 16,a5
|
||
add a5,a1 ;A1=YVal
|
||
SPDCONT
|
||
|
||
MOVI CLSPLYR|TYPPLBL|SUBSPRY,A5
|
||
JRUC DO_IT
|
||
|
||
WPN3
|
||
;FIRE BALL
|
||
MOVI FIRE1,A2 ;A2=*IMG
|
||
|
||
MOVI BUL3AXV,A6
|
||
MOVI BUL3AYV,A7
|
||
CALLR SHOT_INIT
|
||
MOVE *A8(OXVEL),A4,L ;ADD IN PLAYERS XY VEL TO FLAMES
|
||
ADD A4,A6
|
||
MOVE *A8(OYVEL),A4,L
|
||
ADD A4,A7
|
||
|
||
MOVI DMAWNZ,A4 ;A4=FLAGS, NO PIXSCAN
|
||
|
||
MOVE *A8(OXVAL),A0,L
|
||
MOVE *A8(OYVAL),A1,L
|
||
srl 1,a9 ;/2
|
||
addi XYOFFSET3,a9
|
||
move *a9,a5
|
||
sll 16,a5
|
||
add a5,a0 ;A0=X
|
||
|
||
move *a9(8*16),a5
|
||
sll 16,a5
|
||
add a5,a1 ;A1=Y
|
||
|
||
MOVI 159,A3 ;A3=ZPOS
|
||
MOVI CLSPLYR|TYPPLBL|SUBNOSTP,A5 ;A5=ID
|
||
|
||
CALLA BEGINOBJ2
|
||
MOVE A10,A9 ;MOVI FRBL,A9
|
||
W3_TP
|
||
CALLR CHK_BULL ;CHECK RECTANGLES
|
||
JRNC NOH
|
||
CLR A0 ;HIT
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVE A0,*A8(OYVEL),L
|
||
JSRP FRANIMQ
|
||
C32X jauc DELOBJDIE
|
||
|
||
NOH CLR A1
|
||
JSRP FRANIM
|
||
JRC C32X
|
||
JRUC W3_TP
|
||
|
||
;WEAPON 6 - MACHINE GUN
|
||
WPN6
|
||
MOVI BULXV,A6
|
||
MOVI BULYV,A7
|
||
CALLR SHOT_INIT
|
||
MOVE *A8(OXVEL),A2,L
|
||
ADD A2,A6
|
||
MOVE *A8(OYVEL),A2,L
|
||
ADD A2,A7
|
||
MOVI SPDBL,A2 ;A2=*IMG
|
||
MOVI DMAWNZ|M_PIXSCAN,A4 ;A4=FLAGS
|
||
|
||
MOVE *A8(OXVAL),A0,L
|
||
MOVE *A8(OYVAL),A1,L
|
||
srl 1,a9 ;/2
|
||
addi XYOFFSET6,a9
|
||
move *a9,a5
|
||
sll 16,a5
|
||
add a5,a0 ;A0=XVal
|
||
|
||
move *a9(8*16),a5
|
||
sll 16,a5
|
||
add a5,a1 ;A1=YVal
|
||
|
||
MOVI CLSPLYR|TYPPLBL|SUBSPDG1,A5
|
||
JRUC DO_IT
|
||
|
||
* WEAPON 4 - GRENADE
|
||
WPN4
|
||
MOVI GRNXV,A6
|
||
MOVI GRNYV,A7
|
||
CALLR SHOT_INIT
|
||
MOVE *A8(OXVEL),A2,L
|
||
ADD A2,A6 ;A6=XV
|
||
MOVE *A8(OYVEL),A2,L
|
||
ADD A2,A7 ;A7=YV
|
||
MOVI DMAWNZ,A4
|
||
MOVI BALL1,A2 ;GRND1
|
||
|
||
MOVE *A8(OXVAL),A0,L
|
||
MOVE *A8(OYVAL),A1,L
|
||
|
||
MOVI TOSSDIR,A11
|
||
ADD A9,A11
|
||
MOVE *A11,A11,L ;LIST OF OFFSET BYTES!
|
||
MOVI TOSS2DIR,A10
|
||
ADD A9,A10
|
||
MOVE *A10,A10,L ;LIST OF OFFSET BYTES!
|
||
|
||
srl 1,a9 ;/2
|
||
addi XYOFFSET4,a9
|
||
move *a9,a5
|
||
sll 16,a5
|
||
add a5,a0 ;A0=X
|
||
|
||
move *a9(8*16),a5
|
||
sll 16,a5
|
||
add a5,a1 ;A1=Y
|
||
|
||
MOVI CLSDEAD,A5 ;ID
|
||
MOVI 253,A3 ;Z
|
||
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
|
||
MOVE A7,*A13(GTMP)
|
||
W4_TP:
|
||
MOVE *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
|
||
;TURN ON COLLISIONS ALSO!
|
||
; 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
|
||
addk 8,a11
|
||
MOVB *A10,A2 ;GET X OFFSET
|
||
addk 8,a10
|
||
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
|
||
MOVB *A11,A0
|
||
addk 8,a11
|
||
MOVB *A10,A2
|
||
addk 8,a10
|
||
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
|
||
INC A7
|
||
MOVE A7,*A13(GTMP)
|
||
|
||
SLEEPK 1
|
||
JRUC W4_TP
|
||
|
||
BLWUP:
|
||
MOVI MTING,A0 ;AUDIO BOMB EXPLODE
|
||
CALLA ONESND ;GRENADE LANDING ON GROUND
|
||
BLW2:
|
||
CLR A0
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVE A0,*A8(OYVEL),L
|
||
MOVE A9,A0 ;DELETE SHADOW
|
||
CALLA DELOBJ
|
||
;ABOVE ORCUS
|
||
MOVI 370,A0 ;EXPLOSION OF GRENADE AT IMPACT
|
||
MOVE A0,*A8(OZPOS)
|
||
MOVI CLSPLYR|TYPPLBL|SUBGRND,A5
|
||
MOVE A5,*A8(OID),W
|
||
MOVI FIREEXP,A9 ;FRBALL
|
||
; MOVI BLUEEXP,A9
|
||
JAUC FRQDELDIE
|
||
|
||
;WEAPON 1 - NORMAL BULLET
|
||
WPN1
|
||
MOVI BULXV,A6
|
||
MOVI BULYV,A7
|
||
CALLR SHOT_INIT
|
||
|
||
move a9,a2
|
||
addi B1_TYP,a2
|
||
move *a2,a2,L ;A2=*IMG
|
||
|
||
srl 1,a9 ;/2
|
||
move a9,a4
|
||
addi B1_INFO,a4
|
||
move *a4,a4 ;A4=FLAGS
|
||
|
||
MOVE *A8(OXVAL),A0,L
|
||
MOVE *A8(OYVAL),A1,L
|
||
addi XYOFFSET,a9
|
||
move *a9,a5
|
||
sll 16,a5
|
||
add a5,a0 ;A0=XVal
|
||
|
||
move *a9(8*16),a5
|
||
sll 16,a5
|
||
add a5,a1 ;A1=YVal
|
||
|
||
MOVI CLSPLYR|TYPPLBL|SUBLZR,A5 ;A5=ID
|
||
|
||
DO_IT
|
||
MOVI 159,A3 ;A3=ZPOS
|
||
;XVEL IN A6
|
||
;YVEL IN A7
|
||
CALLA BEGINOBJ2
|
||
LP_TP
|
||
;REGULAR BULLETS
|
||
;COULD DO THIS SCRTST LESS FREQUENTLY!
|
||
MOVE *A13(AGE),A0
|
||
INC A0
|
||
MOVE A0,*A13(AGE)
|
||
sll 32-2,a0
|
||
JRNZ C1
|
||
MOVI [>0,>0],A2 ;21,20
|
||
MOVI [>FF,>1A3],A3 ;FC,173
|
||
CALLA SCRTSTG
|
||
JRZ C1
|
||
;A0=1,2,3 OR 4 WHICH IS RETURNED FROM SCRTSTG!
|
||
jauc DELOBJDIE
|
||
C1
|
||
CALLR CHK_BULL
|
||
JRNC NXT
|
||
CLR A4
|
||
MOVE A4,*A8(OXVEL),L
|
||
MOVI FRBALL,A9 ;FRBALL
|
||
JRUC RG4
|
||
NXT SLEEPK 4 ;SLEEP 2 MAYBE?
|
||
JRUC LP_TP
|
||
|
||
|
||
;CHECK FOR RECTANGLE COLLISIONS!
|
||
CHK_BULL
|
||
MOVE *A8(OXPOS),A4
|
||
MOVE *A8(OYPOS),A6
|
||
MOVE @BCURRENT,A0,L ;CURRENT RECT LIST
|
||
JRZ OUT
|
||
JRUC NEXT0
|
||
NEXT3 ADDK 16,A0
|
||
NEXT2 ADDK 16,A0
|
||
NEXT1 ADDK 16,A0
|
||
NEXT0 MOVE *A0+,A1
|
||
JRZ OUT
|
||
CMP A1,A4
|
||
JRLT NEXT3 ;IF BRNCH RECT LFT EDGE > PLYR X
|
||
MOVE *A0+,A1
|
||
CMP A1,A6
|
||
JRLT NEXT2 ;IF BRNCH RECT TOP EDGE > PLYR Y
|
||
MOVE *A0+,A1
|
||
CMP A1,A4
|
||
JRGT NEXT1 ;IF BRNCH RECT RGT EDGE < PLYR X
|
||
MOVE *A0+,A1
|
||
CMP A1,A6
|
||
JRGT NEXT0 ;IF BRNCH RECT BOT EDGE < PLYR Y
|
||
SETC ;HIT
|
||
RETS
|
||
|
||
OUT CLRC
|
||
RETS
|
||
|
||
|
||
B1_TYP ;NORMAL WEAPON (1)
|
||
.long BULUP,BULUPLFT,BULLFT,BULUPLFT
|
||
.long BULUP,BULUPLFT,BULLFT,BULUPLFT
|
||
B5_TYP ;NON STOPPING BULLET
|
||
.long B2UP,B245,B2SIDE,B245
|
||
.long B2UP,B245,B2SIDE,B245
|
||
|
||
B1_INFO ;NORMAL WEAPON (1), PIXSCAN!
|
||
.WORD DMAWNZ+M_PIXSCAN, DMAWNZ+M_FLIPH+M_PIXSCAN
|
||
.WORD DMAWNZ+M_FLIPH+M_PIXSCAN, DMAWNZ+M_FLIPH+M_FLIPV+M_PIXSCAN
|
||
.WORD DMAWNZ+M_FLIPV+M_PIXSCAN, DMAWNZ+M_FLIPV+M_PIXSCAN
|
||
.WORD DMAWNZ+M_PIXSCAN, DMAWNZ+M_PIXSCAN
|
||
|
||
;SUBLZR .EQU 0001H ;REGULAR LAZER SHOTS
|
||
;SUBSPRY .EQU 0002H ;SPRAY SUB TYPE
|
||
;SUBFIRE1 .EQU 0003H ;FIRE BALL WPN
|
||
;SUBGRND .EQU 0004H ;GRENADE
|
||
;SUBNOSTP .EQU 0005H ;NON STOPPING BULLET
|
||
;SUBSPDG1 .EQU 0006H ;MACHINE GUN TYP WPN
|
||
|
||
XYOFFSET ;NORMAL WEAPON (1)
|
||
.word 15,16,25,23,5,3,1,4 ;X
|
||
.word 0,5,10,22,25,22,10,5 ;Y
|
||
XYOFFSET2 ;SPRAY WEAPON
|
||
.word 14,16,25,21,5,5,3,4 ;X
|
||
.word 5,5,10,22,25,22,10,5 ;Y
|
||
XYOFFSET3 ;FLAME THROWER
|
||
.word 15,19,33,24,5,2,1,2 ;X
|
||
.word 0,1,10,26,32,26,9,1 ;Y
|
||
XYOFFSET4 ;GRENADE LAUCHER
|
||
.word 15,10,25,25,5,1,1,11 ;X
|
||
.word 0,3,1,3,10,3,2,3 ;Y
|
||
XYOFFSET5 ;NON STOP WEAPON
|
||
.word 15,16,33,24,5,3,1,6 ;X
|
||
.word 0,5,4,22,25,22,4,5 ;Y
|
||
XYOFFSET6 ;MACHINE GUN WEAPON
|
||
.word 16,20,25,23,7,9,1,4 ;X
|
||
.word 3,5,10,22,25,20,10,5 ;Y
|
||
|
||
; 1
|
||
; 8 5
|
||
;7 4 OLD CRAP!!!
|
||
; 9 6
|
||
; 2
|
||
|
||
|
||
|
||
TOSSDIR .LONG TSUP,TSUPRT,TSRT,TSDNRT,TSDN,TSDNLT,TSLT,TSUPLT
|
||
TOSS2DIR
|
||
.LONG TSUP2,TSUPRT2,TSRT2,TSDNRT2,TSDN2,TSDNLT2,TSLT2,TSUPLT2
|
||
TOSSG .LONG BALL1,BALL2,BALL3,BALL3,BALL4,BALL5,BALL5,BALL6
|
||
.LONG BALL6,BALL7,BALL7,BALL6,BALL6,BALL5,BALL5,BALL4
|
||
.LONG BALL4,BALL3,BALL3,BALL2,BALL2,BALL1,0
|
||
|
||
TSRT .BYTE 3 ;X
|
||
.BYTE -2 ;Y ADJUST
|
||
|
||
.BYTE 4
|
||
.BYTE -2
|
||
|
||
.BYTE 4
|
||
.BYTE -2
|
||
|
||
.BYTE 5
|
||
.BYTE -3
|
||
|
||
.BYTE 5
|
||
.BYTE -3
|
||
|
||
.BYTE 6
|
||
.BYTE -3
|
||
|
||
.BYTE 6
|
||
.BYTE -2
|
||
|
||
.BYTE 6
|
||
.BYTE -2
|
||
|
||
.BYTE 6
|
||
.BYTE 0
|
||
|
||
.BYTE 6
|
||
.BYTE 0
|
||
|
||
.BYTE 6
|
||
.BYTE 0
|
||
|
||
.BYTE 6
|
||
.BYTE 2
|
||
|
||
.BYTE 6
|
||
.BYTE 2
|
||
|
||
.BYTE 6
|
||
.BYTE 3
|
||
|
||
.BYTE 6
|
||
.BYTE 3
|
||
|
||
.BYTE 6
|
||
.BYTE 4
|
||
|
||
.BYTE 6
|
||
.BYTE 5
|
||
|
||
.BYTE 5
|
||
.BYTE 5
|
||
|
||
.BYTE 4
|
||
.BYTE 5
|
||
|
||
.BYTE 4
|
||
.BYTE 4
|
||
|
||
.BYTE 4
|
||
.BYTE 4
|
||
|
||
.BYTE 3
|
||
.BYTE 4
|
||
|
||
.BYTE 2
|
||
.BYTE 3
|
||
|
||
.BYTE 2
|
||
.BYTE 3
|
||
|
||
TSLT .BYTE -3
|
||
.BYTE -2
|
||
|
||
.BYTE -4
|
||
.BYTE -2
|
||
|
||
.BYTE -4
|
||
.BYTE -2
|
||
|
||
.BYTE -5
|
||
.BYTE -3
|
||
|
||
.BYTE -5
|
||
.BYTE -3
|
||
|
||
.BYTE -6
|
||
.BYTE -3
|
||
|
||
.BYTE -6
|
||
.BYTE -2
|
||
|
||
.BYTE -6
|
||
.BYTE -2
|
||
|
||
.BYTE -6
|
||
.BYTE 0
|
||
|
||
.BYTE -6
|
||
.BYTE 0
|
||
|
||
.BYTE -6
|
||
.BYTE 0
|
||
|
||
.BYTE -6
|
||
.BYTE 2
|
||
|
||
.BYTE -6
|
||
.BYTE 2
|
||
|
||
.BYTE -6
|
||
.BYTE 3
|
||
|
||
.BYTE -6
|
||
.BYTE 3
|
||
|
||
.BYTE -6
|
||
.BYTE 4
|
||
|
||
.BYTE -6
|
||
.BYTE 5
|
||
|
||
.BYTE -5
|
||
.BYTE 5
|
||
|
||
.BYTE -4
|
||
.BYTE 5
|
||
|
||
.BYTE -4
|
||
.BYTE 5
|
||
|
||
.BYTE -4
|
||
.BYTE 4
|
||
|
||
.BYTE -3
|
||
.BYTE 4
|
||
|
||
.BYTE -2
|
||
.BYTE 3
|
||
|
||
.BYTE -2
|
||
.BYTE 3
|
||
|
||
TSUPLT .BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE -1
|
||
.BYTE -6
|
||
|
||
.BYTE -2
|
||
.BYTE -6
|
||
|
||
.BYTE -2
|
||
.BYTE -6
|
||
|
||
.BYTE -3
|
||
.BYTE -6
|
||
|
||
.BYTE -3
|
||
.BYTE -6
|
||
|
||
.BYTE -4
|
||
.BYTE -6
|
||
|
||
.BYTE -4
|
||
.BYTE -6
|
||
|
||
.BYTE -4
|
||
.BYTE -5
|
||
|
||
.BYTE -5
|
||
.BYTE -5
|
||
|
||
.BYTE -5
|
||
.BYTE -4
|
||
|
||
.BYTE -6
|
||
.BYTE -3
|
||
|
||
.BYTE -6
|
||
.BYTE -3
|
||
|
||
.BYTE -6
|
||
.BYTE -2
|
||
|
||
.BYTE -6
|
||
.BYTE -2
|
||
|
||
.BYTE -5
|
||
.BYTE -2
|
||
|
||
.BYTE -5
|
||
.BYTE -1
|
||
|
||
.BYTE -4
|
||
.BYTE -1
|
||
|
||
.BYTE -4
|
||
.BYTE 0
|
||
|
||
.BYTE -4
|
||
.BYTE 0
|
||
|
||
.BYTE -3
|
||
.BYTE 0
|
||
|
||
.BYTE -3
|
||
.BYTE 0
|
||
|
||
TSUPRT .BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 1
|
||
.BYTE -6
|
||
|
||
.BYTE 2
|
||
.BYTE -6
|
||
|
||
.BYTE 2
|
||
.BYTE -6
|
||
|
||
.BYTE 3
|
||
.BYTE -6
|
||
|
||
.BYTE 3
|
||
.BYTE -6
|
||
|
||
.BYTE 4
|
||
.BYTE -6
|
||
|
||
.BYTE 4
|
||
.BYTE -6
|
||
|
||
.BYTE 4
|
||
.BYTE -5
|
||
|
||
.BYTE 5
|
||
.BYTE -5
|
||
|
||
.BYTE 5
|
||
.BYTE -4
|
||
|
||
.BYTE 6
|
||
.BYTE -3
|
||
|
||
.BYTE 6
|
||
.BYTE -3
|
||
|
||
.BYTE 6
|
||
.BYTE -2
|
||
|
||
.BYTE 6
|
||
.BYTE -2
|
||
|
||
.BYTE 5
|
||
.BYTE -2
|
||
|
||
.BYTE 5
|
||
.BYTE -1
|
||
|
||
.BYTE 4
|
||
.BYTE -1
|
||
|
||
.BYTE 4
|
||
.BYTE 0
|
||
|
||
.BYTE 4
|
||
.BYTE 0
|
||
|
||
.BYTE 3
|
||
.BYTE 0
|
||
|
||
.BYTE 3
|
||
.BYTE 0
|
||
|
||
TSDNLT .BYTE -1
|
||
.BYTE 0
|
||
|
||
.BYTE -2
|
||
.BYTE 0
|
||
|
||
.BYTE -3
|
||
.BYTE 1
|
||
|
||
.BYTE -4
|
||
.BYTE 1
|
||
|
||
.BYTE -5
|
||
.BYTE 2
|
||
|
||
.BYTE -5
|
||
.BYTE 2
|
||
|
||
.BYTE -6
|
||
.BYTE 2
|
||
|
||
.BYTE -6
|
||
.BYTE 3
|
||
|
||
.BYTE -6
|
||
.BYTE 3
|
||
|
||
.BYTE -6
|
||
.BYTE 4
|
||
|
||
.BYTE -5
|
||
.BYTE 4
|
||
|
||
.BYTE -5
|
||
.BYTE 5
|
||
|
||
.BYTE -4
|
||
.BYTE 5
|
||
|
||
.BYTE -3
|
||
.BYTE 6
|
||
|
||
.BYTE -3
|
||
.BYTE 6
|
||
|
||
.BYTE -2
|
||
.BYTE 6
|
||
|
||
.BYTE -2
|
||
.BYTE 6
|
||
|
||
.BYTE -1
|
||
.BYTE 6
|
||
|
||
.BYTE -1
|
||
.BYTE 6
|
||
|
||
.BYTE -1
|
||
.BYTE 6
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
TSDNRT .BYTE 1
|
||
.BYTE 0
|
||
|
||
.BYTE 2
|
||
.BYTE 0
|
||
|
||
.BYTE 3
|
||
.BYTE 1
|
||
|
||
.BYTE 4
|
||
.BYTE 1
|
||
|
||
.BYTE 5
|
||
.BYTE 2
|
||
|
||
.BYTE 5
|
||
.BYTE 2
|
||
|
||
.BYTE 6
|
||
.BYTE 2
|
||
|
||
.BYTE 6
|
||
.BYTE 3
|
||
|
||
.BYTE 6
|
||
.BYTE 3
|
||
|
||
.BYTE 6
|
||
.BYTE 4
|
||
|
||
.BYTE 5
|
||
.BYTE 4
|
||
|
||
.BYTE 5
|
||
.BYTE 5
|
||
|
||
.BYTE 4
|
||
.BYTE 5
|
||
|
||
.BYTE 3
|
||
.BYTE 6
|
||
|
||
.BYTE 3
|
||
.BYTE 6
|
||
|
||
.BYTE 2
|
||
.BYTE 6
|
||
|
||
.BYTE 2
|
||
.BYTE 6
|
||
|
||
.BYTE 1
|
||
.BYTE 6
|
||
|
||
.BYTE 1
|
||
.BYTE 6
|
||
|
||
.BYTE 1
|
||
.BYTE 6
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
TSUP .BYTE 0
|
||
.BYTE -4
|
||
|
||
.BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 0
|
||
.BYTE -6
|
||
|
||
.BYTE 0
|
||
.BYTE -6
|
||
|
||
.BYTE 0
|
||
.BYTE -6
|
||
|
||
.BYTE 0
|
||
.BYTE -6
|
||
|
||
.BYTE 0
|
||
.BYTE -6
|
||
|
||
.BYTE 0
|
||
.BYTE -6
|
||
|
||
.BYTE 0
|
||
.BYTE -6
|
||
|
||
.BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 0
|
||
.BYTE -4
|
||
|
||
.BYTE 0
|
||
.BYTE -3
|
||
|
||
.BYTE 0
|
||
.BYTE -2
|
||
|
||
.BYTE 0
|
||
.BYTE -1
|
||
|
||
.BYTE 0
|
||
.BYTE 0
|
||
|
||
.BYTE 0
|
||
.BYTE 0
|
||
|
||
.BYTE 0
|
||
.BYTE 0
|
||
|
||
TSDN .BYTE 0
|
||
.BYTE 0
|
||
|
||
.BYTE 0
|
||
.BYTE 1
|
||
|
||
.BYTE 0
|
||
.BYTE 2
|
||
|
||
.BYTE 0
|
||
.BYTE 3
|
||
|
||
.BYTE 0
|
||
.BYTE 4
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
.BYTE 0
|
||
.BYTE 6
|
||
|
||
.BYTE 0
|
||
.BYTE 6
|
||
|
||
.BYTE 0
|
||
.BYTE 6
|
||
|
||
.BYTE 0
|
||
.BYTE 6
|
||
|
||
.BYTE 0
|
||
.BYTE 6
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
.BYTE 0
|
||
.BYTE 4
|
||
|
||
.BYTE 0
|
||
.BYTE 4
|
||
|
||
.BYTE 0
|
||
.BYTE 4
|
||
|
||
|
||
TSRT2 .BYTE 3
|
||
.BYTE 0
|
||
|
||
.BYTE 4
|
||
.BYTE 0
|
||
|
||
.BYTE 4
|
||
.BYTE 0
|
||
|
||
.BYTE 5
|
||
.BYTE 0
|
||
|
||
.BYTE 5
|
||
.BYTE 0
|
||
|
||
.BYTE 6
|
||
.BYTE 0
|
||
|
||
.BYTE 6
|
||
.BYTE 0
|
||
|
||
.BYTE 6
|
||
.BYTE 0
|
||
|
||
.BYTE 6
|
||
.BYTE 0
|
||
|
||
.BYTE 6
|
||
.BYTE 0
|
||
|
||
.BYTE 6
|
||
.BYTE 0
|
||
|
||
.BYTE 6
|
||
.BYTE 0
|
||
|
||
.BYTE 6
|
||
.BYTE 0
|
||
|
||
.BYTE 6
|
||
.BYTE 0
|
||
|
||
.BYTE 6
|
||
.BYTE 0
|
||
|
||
.BYTE 6
|
||
.BYTE 0
|
||
|
||
.BYTE 6
|
||
.BYTE 0
|
||
|
||
.BYTE 5
|
||
.BYTE 0
|
||
|
||
.BYTE 4
|
||
.BYTE 0
|
||
|
||
.BYTE 4
|
||
.BYTE 0
|
||
|
||
.BYTE 4
|
||
.BYTE 0
|
||
|
||
.BYTE 3
|
||
.BYTE 0
|
||
|
||
.BYTE 2
|
||
.BYTE 0
|
||
|
||
.BYTE 2
|
||
.BYTE 0
|
||
|
||
TSLT2 .BYTE -3
|
||
.BYTE 0
|
||
|
||
.BYTE -4
|
||
.BYTE 0
|
||
|
||
.BYTE -4
|
||
.BYTE 0
|
||
|
||
.BYTE -5
|
||
.BYTE 0
|
||
|
||
.BYTE -5
|
||
.BYTE 0
|
||
|
||
.BYTE -6
|
||
.BYTE 0
|
||
|
||
.BYTE -6
|
||
.BYTE 0
|
||
|
||
.BYTE -6
|
||
.BYTE 0
|
||
|
||
.BYTE -6
|
||
.BYTE 0
|
||
|
||
.BYTE -6
|
||
.BYTE 0
|
||
|
||
.BYTE -6
|
||
.BYTE 0
|
||
|
||
.BYTE -6
|
||
.BYTE 0
|
||
|
||
.BYTE -6
|
||
.BYTE 0
|
||
|
||
.BYTE -6
|
||
.BYTE 0
|
||
|
||
.BYTE -6
|
||
.BYTE 0
|
||
|
||
.BYTE -6
|
||
.BYTE 0
|
||
|
||
.BYTE -6
|
||
.BYTE 0
|
||
|
||
.BYTE -5
|
||
.BYTE 0
|
||
|
||
.BYTE -4
|
||
.BYTE 0
|
||
|
||
.BYTE -4
|
||
.BYTE 0
|
||
|
||
.BYTE -4
|
||
.BYTE 0
|
||
|
||
.BYTE -3
|
||
.BYTE 0
|
||
|
||
.BYTE -2
|
||
.BYTE 0
|
||
|
||
.BYTE -2
|
||
.BYTE 0
|
||
|
||
TSUPLT2 .BYTE -5+5
|
||
.BYTE -1-10
|
||
|
||
.BYTE -3
|
||
.BYTE -3
|
||
|
||
.BYTE -4-5
|
||
.BYTE -4+10
|
||
|
||
.BYTE -4
|
||
.BYTE -5
|
||
|
||
.BYTE -4
|
||
.BYTE -5
|
||
|
||
.BYTE -4
|
||
.BYTE -4
|
||
|
||
.BYTE -4
|
||
.BYTE -5
|
||
|
||
.BYTE -4
|
||
.BYTE -5
|
||
|
||
.BYTE -4
|
||
.BYTE -4
|
||
|
||
.BYTE -4
|
||
.BYTE -5
|
||
|
||
.BYTE -4
|
||
.BYTE -5
|
||
|
||
.BYTE -4
|
||
.BYTE -4
|
||
|
||
.BYTE -4
|
||
.BYTE -5
|
||
|
||
.BYTE -4
|
||
.BYTE -5
|
||
|
||
.BYTE -4
|
||
.BYTE -4
|
||
|
||
.BYTE -4
|
||
.BYTE -5
|
||
|
||
.BYTE -4
|
||
.BYTE -5
|
||
|
||
.BYTE -4
|
||
.BYTE -4
|
||
|
||
.BYTE -4
|
||
.BYTE -5
|
||
|
||
.BYTE -4
|
||
.BYTE -4
|
||
|
||
.BYTE -4
|
||
.BYTE -5
|
||
|
||
.BYTE -2
|
||
.BYTE -4
|
||
|
||
TSUPRT2 .BYTE 5+5
|
||
.BYTE -1-10
|
||
|
||
.BYTE 3
|
||
.BYTE -3
|
||
|
||
.BYTE 4-5
|
||
.BYTE -4+10
|
||
|
||
.BYTE 4
|
||
.BYTE -5
|
||
|
||
.BYTE 4
|
||
.BYTE -5
|
||
|
||
.BYTE 4
|
||
.BYTE -4
|
||
|
||
.BYTE 4
|
||
.BYTE -5
|
||
|
||
.BYTE 4
|
||
.BYTE -5
|
||
|
||
.BYTE 4
|
||
.BYTE -4
|
||
|
||
.BYTE 4
|
||
.BYTE -5
|
||
|
||
.BYTE 4
|
||
.BYTE -5
|
||
|
||
.BYTE 4
|
||
.BYTE -4
|
||
|
||
.BYTE 4
|
||
.BYTE -5
|
||
|
||
.BYTE 4
|
||
.BYTE -5
|
||
|
||
.BYTE 4
|
||
.BYTE -4
|
||
|
||
.BYTE 4
|
||
.BYTE -5
|
||
|
||
.BYTE 4
|
||
.BYTE -5
|
||
|
||
.BYTE 4
|
||
.BYTE -4
|
||
|
||
.BYTE 4
|
||
.BYTE -5
|
||
|
||
.BYTE 4
|
||
.BYTE -4
|
||
|
||
.BYTE 4
|
||
.BYTE -5
|
||
|
||
.BYTE 2
|
||
.BYTE -4
|
||
|
||
TSDNLT2 .BYTE -3
|
||
.BYTE 11
|
||
|
||
.BYTE -3
|
||
.BYTE 3
|
||
|
||
.BYTE -3
|
||
.BYTE 2
|
||
|
||
.BYTE -4
|
||
.BYTE 3
|
||
|
||
.BYTE -3
|
||
.BYTE 3
|
||
|
||
.BYTE -4
|
||
.BYTE 3
|
||
|
||
.BYTE -3
|
||
.BYTE 3
|
||
|
||
.BYTE -4
|
||
.BYTE 3
|
||
|
||
.BYTE -3
|
||
.BYTE 2
|
||
|
||
.BYTE -3
|
||
.BYTE 3
|
||
|
||
.BYTE -3
|
||
.BYTE 3
|
||
|
||
.BYTE -3
|
||
.BYTE 2
|
||
|
||
.BYTE -4
|
||
.BYTE 3
|
||
|
||
.BYTE -3
|
||
.BYTE 2
|
||
|
||
.BYTE -3
|
||
.BYTE 3
|
||
|
||
.BYTE -3
|
||
.BYTE 2
|
||
|
||
.BYTE -4
|
||
.BYTE 3
|
||
|
||
.BYTE -3
|
||
.BYTE 2
|
||
|
||
.BYTE -3
|
||
.BYTE 2
|
||
|
||
.BYTE -3
|
||
.BYTE 2
|
||
|
||
.BYTE -3
|
||
.BYTE 2
|
||
|
||
.BYTE -3
|
||
.BYTE 2
|
||
|
||
TSDNRT2 .BYTE 3
|
||
.BYTE 11
|
||
|
||
.BYTE 3
|
||
.BYTE 3
|
||
|
||
.BYTE 3
|
||
.BYTE 2
|
||
|
||
.BYTE 4
|
||
.BYTE 3
|
||
|
||
.BYTE 3
|
||
.BYTE 3
|
||
|
||
.BYTE 4
|
||
.BYTE 3
|
||
|
||
.BYTE 3
|
||
.BYTE 3
|
||
|
||
.BYTE 4
|
||
.BYTE 3
|
||
|
||
.BYTE 3
|
||
.BYTE 2
|
||
|
||
.BYTE 3
|
||
.BYTE 3
|
||
|
||
.BYTE 3
|
||
.BYTE 3
|
||
|
||
.BYTE 3
|
||
.BYTE 2
|
||
|
||
.BYTE 4
|
||
.BYTE 3
|
||
|
||
.BYTE 3
|
||
.BYTE 2
|
||
|
||
.BYTE 3
|
||
.BYTE 3
|
||
|
||
.BYTE 3
|
||
.BYTE 2
|
||
|
||
.BYTE 4
|
||
.BYTE 3
|
||
|
||
.BYTE 3
|
||
.BYTE 2
|
||
|
||
.BYTE 3
|
||
.BYTE 2
|
||
|
||
.BYTE 3
|
||
.BYTE 2
|
||
|
||
.BYTE 3
|
||
.BYTE 2
|
||
|
||
.BYTE 3
|
||
.BYTE 2
|
||
|
||
TSUP2 .BYTE 0
|
||
.BYTE -4
|
||
|
||
.BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 0
|
||
.BYTE -6
|
||
|
||
.BYTE 0
|
||
.BYTE -6
|
||
|
||
.BYTE 0
|
||
.BYTE -6
|
||
|
||
.BYTE 0
|
||
.BYTE -6
|
||
|
||
.BYTE 0
|
||
.BYTE -6
|
||
|
||
.BYTE 0
|
||
.BYTE -6
|
||
|
||
.BYTE 0
|
||
.BYTE -6
|
||
|
||
.BYTE 0
|
||
.BYTE -6
|
||
|
||
.BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 0
|
||
.BYTE -5
|
||
|
||
.BYTE 0
|
||
.BYTE -4
|
||
|
||
.BYTE 0
|
||
.BYTE -4
|
||
|
||
TSDN2 .BYTE 0
|
||
.BYTE 0
|
||
|
||
.BYTE 0
|
||
.BYTE 1
|
||
|
||
.BYTE 0
|
||
.BYTE 2
|
||
|
||
.BYTE 0
|
||
.BYTE 3
|
||
|
||
.BYTE 0
|
||
.BYTE 4
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
.BYTE 0
|
||
.BYTE 5
|
||
|
||
.BYTE 0
|
||
.BYTE 4
|
||
|
||
.BYTE 0
|
||
.BYTE 4
|
||
|
||
.BYTE 0
|
||
.BYTE 3
|
||
|
||
.BYTE 0
|
||
.BYTE 3
|
||
|
||
.BYTE 0
|
||
.BYTE 3
|
||
|
||
.BYTE 0
|
||
.BYTE 3
|
||
|
||
.BYTE 0
|
||
.BYTE 3
|
||
|
||
.BYTE 0
|
||
.BYTE 2
|
||
|
||
.BYTE 0
|
||
.BYTE 1
|
||
|
||
.BYTE 0
|
||
.BYTE 1
|
||
|
||
.EVEN
|
||
|
||
FLAMING
|
||
;MAYBE ALIGN WITH THIS (A10) AHMED GUY AS I FLAME
|
||
;A10 IS FLAME THROWER AHMED PNTR
|
||
MOVI TORCH,A0
|
||
CALLA ONESND
|
||
MOVE A9,*A13(PDATA)
|
||
MOVK 2,A0
|
||
MOVE A0,*A13(PDATA+32)
|
||
MOVE A8,*A13(PDATA+64),L ;STUB PC BASE
|
||
MOVI BLASTA,A0
|
||
MOVE A0,*A13(PDATA+96),L
|
||
MOVE *A8(OXVAL),A0,L
|
||
MOVE *A8(OYVAL),A1,L
|
||
MOVE *A8(OFLAGS),A4
|
||
MOVI AHMEDBLST1,A2
|
||
MOVI 160,A3
|
||
MOVI CLSENMY|TYPLAYR|SUBFLM,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
MOVE A8,*A13(PDATA+128),L
|
||
MOVI BLASTA2,A0
|
||
MOVE A0,*A13(PDATA+160),L
|
||
MOVE *A8(OXVAL),A0,L
|
||
MOVE *A8(OYVAL),A1,L
|
||
MOVE *A8(OFLAGS),A4
|
||
MOVI AHMEDBLST1,A2
|
||
MOVI 160,A3
|
||
MOVI CLSENMY|TYPLAYR|SUBFLM,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
MOVE A8,*A13(PDATA+192),L
|
||
MOVI BLASTA3,A0
|
||
MOVE A0,*A13(PDATA+224),L
|
||
DSF0
|
||
MOVE *A13(PDATA+64),A8,L
|
||
MOVE *A13(PDATA+96),A9,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,*A13(PDATA+96),L
|
||
MOVE *A13(PDATA+128),A8,L
|
||
MOVE *A13(PDATA+160),A9,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,*A13(PDATA+160),L
|
||
MOVE *A13(PDATA+192),A8,L
|
||
MOVE *A13(PDATA+224),A9,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,*A13(PDATA+224),L
|
||
JRC NXTF
|
||
;A0=SLP TIME
|
||
MOVE A0,A11
|
||
DSF CALLR ALIGNF
|
||
SLEEPK 1
|
||
DSJS A11,DSF
|
||
JRUC DSF0
|
||
|
||
|
||
NXTF
|
||
MOVI BLASTB,A9
|
||
MOVE A9,*A13(PDATA+96),L
|
||
MOVI BLASTB2,A9
|
||
MOVE A9,*A13(PDATA+160),L
|
||
MOVI BLASTB3,A9
|
||
MOVE A9,*A13(PDATA+224),L
|
||
NXTFA
|
||
MOVE *A13(PDATA+64),A8,L
|
||
MOVE *A13(PDATA+96),A9,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,*A13(PDATA+96),L
|
||
MOVE *A13(PDATA+128),A8,L
|
||
MOVE *A13(PDATA+160),A9,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,*A13(PDATA+160),L
|
||
MOVE *A13(PDATA+192),A8,L
|
||
MOVE *A13(PDATA+224),A9,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,*A13(PDATA+224),L
|
||
JRC NXTF1
|
||
MOVE A0,A11
|
||
DSF2 CALLR ALIGNF
|
||
SLEEPK 1
|
||
DSJS A11,DSF2
|
||
JRUC NXTFA
|
||
NXTF1 MOVE *A13(PDATA+32),A0
|
||
DEC A0
|
||
MOVE A0,*A13(PDATA+32)
|
||
JRNZ NXTF
|
||
|
||
MOVI BLASTC,A9
|
||
MOVE A9,*A13(PDATA+96),L
|
||
MOVI BLASTC2,A9
|
||
MOVE A9,*A13(PDATA+160),L
|
||
MOVI BLASTC3,A9
|
||
MOVE A9,*A13(PDATA+224),L
|
||
DSF4
|
||
MOVE *A13(PDATA+64),A8,L
|
||
MOVE *A13(PDATA+96),A9,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,*A13(PDATA+96),L
|
||
MOVE *A13(PDATA+128),A8,L
|
||
MOVE *A13(PDATA+160),A9,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,*A13(PDATA+160),L
|
||
MOVE *A13(PDATA+192),A8,L
|
||
MOVE *A13(PDATA+224),A9,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,*A13(PDATA+224),L
|
||
JRC NXTF2
|
||
MOVE A0,A11
|
||
DSF3 CALLR ALIGNF
|
||
SLEEPK 1
|
||
DSJS A11,DSF3
|
||
JRUC DSF4
|
||
|
||
NXTF2
|
||
MOVE *A13(PDATA+64),A0,L
|
||
CALLA DELOBJ
|
||
MOVE *A13(PDATA+128),A0,L
|
||
CALLA DELOBJ
|
||
MOVE *A13(PDATA+192),A0,L
|
||
CALLA DELOBJ
|
||
****************JARV PATCH
|
||
MOVE @WAVE,A0
|
||
CMPI 16,A0 ;ORCUS WAVE USES FLAMES
|
||
JAEQ SUCIDE
|
||
******************************
|
||
MOVE *A10(OPLINK),A10,L
|
||
CLR A0
|
||
BULPRC .EQU PDATA+352 ;UHL BULLET PROCESS FIRING BULLS!
|
||
MOVE A0,*A10(BULPRC),L
|
||
DIE
|
||
|
||
|
||
**********************JARV PATCH
|
||
DOIT
|
||
MOVI 160,A3
|
||
MOVI AHMEDBLST1,A2
|
||
MOVI CLSENMY|TYPLAYR|SUBFLM,A5
|
||
CLR A6
|
||
CLR A7
|
||
MOVE A8,A10
|
||
CALLA BEGINOBJ2
|
||
CREATE HULKPID,FLAMING
|
||
DIE
|
||
*************************************
|
||
|
||
ALIGNF
|
||
MOVE *A13(PDATA+64),A0,L
|
||
MOVE A10,A8
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA),A6
|
||
SLL 5,A6
|
||
ADDI FIREYX,A6
|
||
MOVE *A6,A6,L
|
||
ADD A6,A2
|
||
SLL 16,A6
|
||
ADD A6,A3
|
||
;A2=Y,A3=X
|
||
MOVE *A0(OFLAGS),A4,W
|
||
CALLA GANISAG ;ADJUSTS TORSO
|
||
MOVE *A13(PDATA+128),A0,L
|
||
MOVE A10,A8
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA),A6
|
||
SLL 5,A6
|
||
ADDI FIREYX,A6
|
||
MOVE *A6,A6,L
|
||
ADD A6,A2
|
||
SLL 16,A6
|
||
ADD A6,A3
|
||
;A2=Y,A3=X
|
||
MOVE *A0(OFLAGS),A4,W
|
||
CALLA GANISAG ;ADJUSTS TORSO
|
||
MOVE *A13(PDATA+192),A0,L
|
||
MOVE A10,A8
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA),A6
|
||
SLL 5,A6
|
||
ADDI FIREYX,A6
|
||
MOVE *A6,A6,L
|
||
ADD A6,A2
|
||
SLL 16,A6
|
||
ADD A6,A3
|
||
;A2=Y,A3=X
|
||
MOVE *A0(OFLAGS),A4,W
|
||
CALLA GANISAG ;ADJUSTS TORSO
|
||
RETS
|
||
|
||
;2=4 OCLOCK
|
||
;3=8 OCLOCK
|
||
************************JARV PATCH
|
||
FIREYX .LONG [4FH,0FFF8H],[04FH,9],[1,3],[1,0FFFDH],[29H,-8],[29H,8]
|
||
***************************************
|
||
BLASTA .LONG AHMEDBLST1
|
||
.WORD 2
|
||
.LONG AHMEDBLST2
|
||
.WORD 2
|
||
.LONG BLST3C
|
||
.WORD 2
|
||
.LONG 0
|
||
BLASTB
|
||
.LONG BLST4C
|
||
.WORD 4
|
||
.LONG BLST5C
|
||
.WORD 4
|
||
.LONG BLST6C
|
||
.WORD 4
|
||
.LONG BLST4C
|
||
.WORD 4
|
||
.LONG BLST5C
|
||
.WORD 4
|
||
.LONG BLST6C
|
||
.WORD 4
|
||
.LONG BLST4C
|
||
.WORD 4
|
||
.LONG BLST5C
|
||
.WORD 4
|
||
.LONG BLST6C
|
||
.WORD 4
|
||
.LONG BLST4C
|
||
.WORD 4
|
||
.LONG BLST5C
|
||
.WORD 4
|
||
.LONG BLST6C
|
||
.WORD 4
|
||
.LONG BLST4C
|
||
.WORD 4
|
||
.LONG BLST5C
|
||
.WORD 4
|
||
.LONG BLST6C
|
||
.WORD 4
|
||
.LONG 0
|
||
BLASTC3
|
||
BLASTC .LONG BLST3C
|
||
.WORD 2
|
||
.LONG AHMEDBLST2
|
||
.WORD 2
|
||
.LONG AHMEDBLST1
|
||
.WORD 2
|
||
.LONG 0
|
||
BLASTA2 .LONG AHMEDBLST1 ;INVISIBLE
|
||
.WORD 2
|
||
.LONG AHMEDBLST2 ;''
|
||
.WORD 2
|
||
.LONG BLST3B
|
||
.WORD 2
|
||
.LONG 0
|
||
BLASTB2
|
||
.LONG BLST4B
|
||
.WORD 4
|
||
.LONG BLST5B
|
||
.WORD 4
|
||
.LONG BLST6B
|
||
.WORD 4
|
||
.LONG BLST4B
|
||
.WORD 4
|
||
.LONG BLST5B
|
||
.WORD 4
|
||
.LONG BLST6B
|
||
.WORD 4
|
||
.LONG BLST4B
|
||
.WORD 4
|
||
.LONG BLST5B
|
||
.WORD 4
|
||
.LONG BLST6B
|
||
.WORD 4
|
||
.LONG BLST4B
|
||
.WORD 4
|
||
.LONG BLST5B
|
||
.WORD 4
|
||
.LONG BLST6B
|
||
.WORD 4
|
||
.LONG BLST4B
|
||
.WORD 4
|
||
.LONG BLST5B
|
||
.WORD 4
|
||
.LONG BLST6B
|
||
.WORD 4
|
||
.LONG 0
|
||
BLASTC2 .LONG BLST3B
|
||
.WORD 2
|
||
.LONG AHMEDBLST2
|
||
.WORD 2
|
||
.LONG AHMEDBLST1
|
||
.WORD 2
|
||
.LONG 0
|
||
BLASTA3 .LONG AHMEDBLST1 ;INVISIBLE
|
||
.WORD 2
|
||
.LONG AHMEDBLST2
|
||
.WORD 2
|
||
.LONG BLST3C ;STILL INV
|
||
.WORD 2
|
||
.LONG 0
|
||
BLASTB3
|
||
.LONG BLST4A
|
||
.WORD 4
|
||
.LONG BLST5A
|
||
.WORD 4
|
||
.LONG BLST6A
|
||
.WORD 4
|
||
.LONG BLST4A
|
||
.WORD 4
|
||
.LONG BLST5A
|
||
.WORD 4
|
||
.LONG BLST6A
|
||
.WORD 4
|
||
.LONG BLST4A
|
||
.WORD 4
|
||
.LONG BLST5A
|
||
.WORD 4
|
||
.LONG BLST6A
|
||
.WORD 4
|
||
.LONG BLST4A
|
||
.WORD 4
|
||
.LONG BLST5A
|
||
.WORD 4
|
||
.LONG BLST6A
|
||
.WORD 4
|
||
.LONG BLST4A
|
||
.WORD 4
|
||
.LONG BLST5A
|
||
.WORD 4
|
||
.LONG BLST6A
|
||
.WORD 4
|
||
.LONG 0
|
||
.END
|
||
|
||
|