3420 lines
62 KiB
NASM
3420 lines
62 KiB
NASM
**************************************************************
|
||
*
|
||
* Software: Mark Turmell
|
||
* Initiated: 3/8/91
|
||
*
|
||
* Modified: !
|
||
*
|
||
* COPYRIGHT (C) 1991 WILLIAMS ELECTRONICS GAMES, INC.
|
||
*
|
||
*.Last mod - 12/2/91 17:56
|
||
**************************************************************
|
||
.FILE 'T72.ASM'
|
||
.TITLE 'TOTAL CARNAGE GAME PROGRAM'
|
||
.WIDTH 132
|
||
.OPTION B,D,L,T
|
||
.MNOLIST
|
||
|
||
|
||
.INCLUDE "MPROC.EQU" ;MPROC EQUATES
|
||
.INCLUDE "DISP.EQU" ;DISPLAY PROC. EQUATES
|
||
.INCLUDE "\VIDEO\SYS\GSP.INC"
|
||
.INCLUDE "\VIDEO\SYS\SYS.INC" ;Z UNIT SYSTEM EQUATES
|
||
.INCLUDE "\VIDEO\SYS\MACROS.HDR" ;MACROS DEFINITIONS
|
||
.INCLUDE "MAC2.ASM" ;MACRO 2 DEFINITIONS
|
||
.INCLUDE "IMGTBL.GLO"
|
||
.INCLUDE "JET.TBL"
|
||
.INCLUDE "JEEP.TBL"
|
||
.INCLUDE "GAME.EQU"
|
||
.INCLUDE "AUDIT.EQU"
|
||
|
||
;
|
||
;SOUND HEADERS USED HERE
|
||
;
|
||
.REF EXP2HIB,THUMP,CANNON,FIREDI,ALTEXP5,KEYSND2,CRSSND2,ALTEXP1
|
||
.REF JEEPSND,HORNSND,HORN2,WRPSND,ONESNDOVR,SCASH
|
||
;
|
||
;SYMBOLS EXTERNALLY DEFINED
|
||
;
|
||
.REF EN_CURRENT,STATUS,WVBONUS,RNDRNG
|
||
.REF SITLST
|
||
.REF fry_plyrs,WINNER,LOSER
|
||
.REF MORTAR_GRNT,DOLORD,PLYRPRCS
|
||
.REF STRLNRMO,HEXTOASC,WRLD,STRCNRMO,RD15FONT
|
||
.REF OFFSCRN,spidmom_start,JET_KILLS
|
||
.ref missile_firexy
|
||
.REF RNDRNG0,ZONE_TXT2,SKIPR_CNT
|
||
.REF GET_WVADDR,GETFPAL,JEEPP2,SENDGRN,GOBACK
|
||
.REF HULK_DN,CYCLEON,INHERE,COLCYC
|
||
.REF GETCPNT,BAKMODS,BGND_UD1,PATHA
|
||
.REF HALT,GPALOBJ,TTORSO,RANDPER,RANDOM,PLYROBJS,RANGRAND,FRANIM
|
||
.ref FRANIMQ
|
||
.REF PCNT,FLASHME,SHAKER,MORE2,FRAIT,DO_ALL_STUFF,SCRADD2,SCRTST
|
||
.REF P1DATA,P2DATA,MORE3,FLAMES,HZSPD,OBJON,OBJOFF
|
||
.REF ONARRW,TARGET_NUM,TARGET,WAVE,ARWOFF,ICONS_DN
|
||
;
|
||
;SYMBOLS DEFINED IN THIS FILE
|
||
;
|
||
.DEF SPAWN_HJP,DO_WINNER,JEEP2,JEEP,JEEP4,GET_AWAY
|
||
.DEF RGTJETS
|
||
.DEF STRT_AJET
|
||
.DEF FAKET,T72PNTR,VULN,BTR60A,NO_BONUS,JETS
|
||
.DEF TBLST,SHAKEME,SPAWN_T72,SPAWN_MOM
|
||
.DEF HIT_TNK,HIT_TNK2,DOBTR60,BONE,ROAD,ROAD2
|
||
.DEF DOSWAP,AKHLIMO
|
||
;
|
||
;UNINITIALIZED RAM DEFINITIONS
|
||
;
|
||
.BSS GET_AWAY,16
|
||
.BSS T72PNTR,32
|
||
.BSS PLYRAD,16
|
||
.BSS NO_BONUS,16 ;0=YES BIG BONUS, 1=NONE!
|
||
.BSS TOPFLG,16
|
||
.BSS BOTFLG,16
|
||
.BSS LANES,16
|
||
.BSS TEMP,16
|
||
.BSS PALTMP0,16*32*2 ;ALLOCATE 2 X COLOR AREA IN RAM
|
||
;
|
||
;EQUATES FOR THIS FILE
|
||
;
|
||
BTHITS .EQU 9 ;21 ;19
|
||
BTHITS2 .EQU 6 ;19
|
||
BTHITS3 .EQU 14 ;SCUD TRUCK
|
||
T72HITS .EQU 30 ;35 ;40
|
||
JEEPHITS .EQU 3
|
||
|
||
;
|
||
;T72 TANK DATA STRUCTURE
|
||
;
|
||
|
||
KPTSOBJ .EQU PDATA ;UHL
|
||
;USED IN ARAB.ASM
|
||
IDEAD .EQU PDATA+32 ;UHW
|
||
;MYPLYR .EQU PDATA+48 ;UHW PLAYER 1 OR 2 FIRED ME
|
||
TNKL .EQU PDATA+64 ;UHL TANK LEFT PTR
|
||
BRL .EQU PDATA+96 ;UHL BIG GUN BARREL
|
||
TRDLF .EQU PDATA+128 ;UHL TANK LEFT/FRONT TREAD
|
||
TRDRF .EQU PDATA+160 ;UHL TANK RGT/FRONT TREAD
|
||
TRDLS .EQU PDATA+192 ;UHL TANK LEFT/SIDE TREAD
|
||
TRDRS .EQU PDATA+224 ;UHL TANK RGT/SIDE TREAD
|
||
SHADR .EQU PDATA+256 ;UHL SHADOW ON RIGHT SIDE OF TANK
|
||
SHADF .EQU PDATA+288 ;UHL SHADOW IN FRONT OF TANK
|
||
MAXYMV .EQU PDATA+320 ;UHW MAX Y LINES FOR MOVE
|
||
HITS .EQU PDATA+336 ;UHW HITS ABSORBED
|
||
KPTSO .EQU PDATA+352 ;UHL
|
||
KPGUN .EQU PDATA+384 ;UHL
|
||
YVL .EQU PDATA+416 ;UHL
|
||
LANE .EQU PDATA+448 ;UHW USED FOR JEEPS ONLY
|
||
MYTYP .EQU PDATA+448 ;UHW 0-3
|
||
CNTR .EQU PDATA+464 ;UHW
|
||
TMPPTR .EQU PDATA+480 ;UHL TMPPTR FOR KILLING OFF SHELL
|
||
SCUD .EQU PDATA+512 ;UHW
|
||
;
|
||
;BTR60 WHEEL DATA STRUCTURE
|
||
;
|
||
KPBTRO .EQU PDATA
|
||
KPBTRP .EQU PDATA+32
|
||
MODY .EQU PDATA+64 ;UHL
|
||
ANICNT .EQU PDATA+96 ;UHW
|
||
BNCING .EQU PDATA+112 ;UHW
|
||
;
|
||
.BSS KEEPA,32
|
||
.TEXT
|
||
FROMLFT
|
||
;FROM LEFT SIDE JETS
|
||
MOVE @WORLDTLX+16,A8
|
||
SUBI 40,A8
|
||
MOVE @WORLDTLY+16,A9
|
||
ADDI 90,A9
|
||
MOVK 8,A10 ;DIR
|
||
movi -230,a11 ;Fuel
|
||
CREATE BOSSPID,missile_firexy
|
||
MOVE @WORLDTLX+16,A8
|
||
SUBI 40,A8
|
||
MOVE @WORLDTLY+16,A9
|
||
ADDI 150,A9
|
||
CREATE BOSSPID,missile_firexy
|
||
RETS
|
||
FROMRGT
|
||
;FROM RIGHT SIDE OF SCRN FROM LAST JET
|
||
MOVE @WORLDTLX+16,A8
|
||
ADDI 420,A8
|
||
MOVE @WORLDTLY+16,A9
|
||
ADDI 90,A9
|
||
MOVK 24,A10 ;DIR
|
||
movi -300,a11 ;Fuel
|
||
CREATE BOSSPID,missile_firexy
|
||
MOVE @WORLDTLX+16,A8
|
||
ADDI 420,A8
|
||
MOVE @WORLDTLY+16,A9
|
||
ADDI 150,A9
|
||
CREATE BOSSPID,missile_firexy
|
||
RETS
|
||
FROMRGT2
|
||
;FROM RIGHT SIDE OF SCRN FROM LAST JET
|
||
MOVE @WORLDTLX+16,A8
|
||
ADDI 420,A8
|
||
MOVE @WORLDTLY+16,A9
|
||
ADDI 120,A9
|
||
MOVK 24,A10 ;DIR
|
||
movi -300,a11 ;Fuel
|
||
CREATE BOSSPID,missile_firexy
|
||
MOVE @WORLDTLX+16,A8
|
||
ADDI 420,A8
|
||
MOVE @WORLDTLY+16,A9
|
||
ADDI 180,A9
|
||
CREATE BOSSPID,missile_firexy
|
||
RETS
|
||
|
||
|
||
;FROM LEFT SIDE OF SCRN FROM ALL JETS
|
||
MOVE @WORLDTLX+16,A8
|
||
SUBI 40,A8
|
||
MOVE @WORLDTLY+16,A9
|
||
ADDI 90,A9
|
||
MOVK 8,A10 ;DIR
|
||
movi -400,a11 ;Fuel
|
||
CREATE BOSSPID,missile_firexy
|
||
MOVE @WORLDTLX+16,A8
|
||
SUBI 40,A8
|
||
MOVE @WORLDTLY+16,A9
|
||
ADDI 140,A9
|
||
CREATE BOSSPID,missile_firexy
|
||
|
||
|
||
|
||
STRT_AJET
|
||
MOVE *A8(OPAL),A0,W
|
||
MOVE A0,@TEMP,W
|
||
CLR A6
|
||
CLR A7
|
||
MOVK 10,A9
|
||
MMTM SP,A13,A8
|
||
MOVE A13,@KEEPA,L
|
||
MOVE *A8(OFLAGS),A0
|
||
BTST B_FLIPH,A0
|
||
JRZ AD
|
||
;FACING LEFT
|
||
MOVE *A8(OXVAL),A10,L
|
||
ADDI [86H,0],A10
|
||
MOVE *A8(OYVAL),A11,L
|
||
SUBI [6,0],A11
|
||
|
||
FTJTLP
|
||
MOVI FTJETFLG,A0
|
||
MOVE A9,A1
|
||
SLL 4,A1
|
||
ADD A1,A0
|
||
MOVE *A0,A4,W
|
||
SLL 1,A1
|
||
MOVI TJETPC,A0
|
||
ADD A1,A0
|
||
MOVE *A0,A2,L
|
||
ADDI FTPJETYX,A1
|
||
MOVE *A1,A3,L
|
||
MOVE A11,A1
|
||
ADD A3,A1
|
||
SLL 16,A3
|
||
MOVE A10,A0
|
||
ADD A3,A0
|
||
MOVE A9,A5
|
||
SLL 4,A5
|
||
ADDI ZTBL,A5
|
||
MOVE *A5,A3
|
||
MOVI CLSNEUT|TYPJET,A5 ;TRUNK,A5
|
||
CALLA BEGINOBJ2
|
||
MOVE A8,*A13(PDATA+10*32),L
|
||
MOVE @TEMP,A0,W
|
||
MOVE A0,*A8(OPAL),W
|
||
MOVE @KEEPA,A0,L
|
||
MOVE A0,*A8(OPLINK),L
|
||
SUBK 32,A13
|
||
DSJ A9,FTJTLP
|
||
JRUC INH
|
||
AD
|
||
;FACING RIGHT
|
||
MOVE *A8(OXVAL),A10,L
|
||
ADDI [68H,0],A10
|
||
MOVE *A8(OYVAL),A11,L
|
||
SUBI [6,0],A11
|
||
;A10=X
|
||
;A11=Y
|
||
TJTLP
|
||
MOVI TJETFLG,A0
|
||
MOVE A9,A1
|
||
SLL 4,A1
|
||
ADD A1,A0
|
||
MOVE *A0,A4,W
|
||
SLL 1,A1
|
||
MOVI TJETPC,A0
|
||
ADD A1,A0
|
||
MOVE *A0,A2,L
|
||
ADDI TPJETYX,A1
|
||
MOVE *A1,A3,L
|
||
MOVE A11,A1
|
||
ADD A3,A1
|
||
SLL 16,A3
|
||
MOVE A10,A0
|
||
ADD A3,A0
|
||
MOVE A9,A5
|
||
SLL 4,A5
|
||
ADDI ZTBL,A5
|
||
MOVE *A5,A3
|
||
MOVI CLSNEUT|TYPJET,A5 ;TRUNK,A5
|
||
CALLA BEGINOBJ2
|
||
MOVE A8,*A13(PDATA+10*32),L
|
||
MOVE @TEMP,A0,W
|
||
MOVE A0,*A8(OPAL),W
|
||
MOVE @KEEPA,A0,L
|
||
MOVE A0,*A8(OPLINK),L
|
||
SUBK 32,A13
|
||
DSJ A9,TJTLP
|
||
INH
|
||
MMFM SP,A13,A0
|
||
CALLA DELOBJ
|
||
SLEEP 10*60 ;5*60
|
||
OFFSC0 SLEEP 60
|
||
MOVE *A8(OYPOS),A0
|
||
MOVE @WORLDTLY+16,A1
|
||
ADDI 160H,A1
|
||
CMP A0,A1
|
||
JRC OFFO
|
||
MOVE *A8(OXPOS),A0
|
||
MOVE @WORLDTLX+16,A1
|
||
ADDI 180,A0 ;WIDTH OF PLANE
|
||
CMP A0,A1
|
||
JRC OFFSC0
|
||
;OFF SCRN, DEL ALL PCS
|
||
JRUC OFFO
|
||
DOSWAP
|
||
;FOR JETS
|
||
;A10=P1DATA OR P2DATA
|
||
; CMPI P1DATA,A10
|
||
; JRNZ DOS1
|
||
; MOVE @JET_KILLS,A0
|
||
; ADDK 1,A0
|
||
; MOVE A0,@JET_KILLS
|
||
; JRUC DOS2
|
||
;DOS1
|
||
; MOVE @JET_KILLS+16,A0
|
||
; ADDK 1,A0
|
||
; MOVE A0,@JET_KILLS+16
|
||
;DOS2
|
||
SLEEP 200
|
||
PUSH A13
|
||
;PDATA=JTBOD
|
||
MOVK 10,A11
|
||
MOVI SWPPC,A10
|
||
SWP1 MOVE *A13(PDATA+32),A8,L
|
||
MOVE *A10+,A1,L
|
||
MOVE *A8(OFLAGS),A4
|
||
CALLA ANI
|
||
ADDK 32,A13
|
||
DSJ A11,SWP1
|
||
PULL A13
|
||
OFFSC SLEEP 60
|
||
MOVE *A8(OYPOS),A0
|
||
MOVE @WORLDTLY+16,A1
|
||
ADDI 160H,A1
|
||
CMP A0,A1
|
||
JRC OFFO
|
||
MOVE *A8(OXPOS),A0
|
||
MOVE @WORLDTLX+16,A1
|
||
ADDI 180,A0 ;WIDTH OF PLANE
|
||
CMP A0,A1
|
||
JRC OFFSC
|
||
NOP
|
||
OFFO
|
||
;OFF SCRN, DEL ALL PCS
|
||
PUSH A13
|
||
MOVK 10,A11
|
||
ASWP1 MOVE *A13(PDATA+32),A0,L
|
||
CALLA ISOBJ
|
||
JRZ SKPIT
|
||
MOVE *A0(OID),A1
|
||
CMPI CLSNEUT|TYPJET,A1
|
||
JRNZ SKPIT
|
||
CALLA DELOBJ
|
||
SKPIT ADDK 32,A13
|
||
DSJ A11,ASWP1
|
||
PULL A13
|
||
DIE
|
||
|
||
SWPPC .LONG JETWRECK,JTSMWNG2,JTBGWNG2,JTBGWNG2,JTWNGTP2,JTWHL,JTSHD1,JTSHD1
|
||
.LONG JTSHAD2A,JTSHAD3A
|
||
|
||
ZTBL .WORD 0,154,153,153,153,155,153,54,54,54,54
|
||
TPJETYX .LONG 0,[0,0],[0,0],[0,0],[31H,0],[0,0],0,0,[54H,0],0,[-1,0]
|
||
TJETPC .LONG 0,JTBOD,JTSMWNG,JTBGWNG,JTBGWNG,JTWNGTP,JTWHL,JTSHD1,JTSHD1
|
||
.LONG JTSHD2,JTSHD3
|
||
TJETFLG .WORD 0,DMAWNZ|M_PIXSCAN,DMAWNZ|M_PIXSCAN
|
||
.WORD DMAWNZ|M_PIXSCAN
|
||
.WORD DMAWNZ|M_PIXSCAN|M_FLIPV
|
||
.WORD DMAWNZ|M_PIXSCAN,DMAWNZ|M_PIXSCAN
|
||
.WORD DMAWNZ|M_NOCOLL,DMAWNZ|M_NOCOLL|M_FLIPV
|
||
.WORD DMAWNZ|M_NOCOLL
|
||
.WORD DMAWNZ|M_NOCOLL
|
||
;
|
||
FTPJETYX
|
||
.LONG 0,[0,0],[0,0],[0,0],[31H,0],[0,0],0,0,[54H,0],0,[-1,0]
|
||
FTJETFLG
|
||
.WORD 0,DMAWNZ|M_FLIPH|M_PIXSCAN,DMAWNZ|M_FLIPH|M_PIXSCAN
|
||
.WORD DMAWNZ|M_FLIPH|M_PIXSCAN
|
||
.WORD DMAWNZ|M_FLIPH|M_PIXSCAN|M_FLIPV
|
||
.WORD DMAWNZ|M_FLIPH|M_PIXSCAN,DMAWNZ|M_FLIPH|M_PIXSCAN
|
||
.WORD DMAWNZ|M_FLIPH|M_NOCOLL,DMAWNZ|M_FLIPH|M_NOCOLL|M_FLIPV
|
||
.WORD DMAWNZ|M_FLIPH|M_NOCOLL
|
||
.WORD DMAWNZ|M_FLIPH|M_NOCOLL
|
||
|
||
;JETS HEADING TO RIGHT DROPPING BOMBS
|
||
RGTJETS
|
||
SLEEP 60
|
||
MOVE @WORLDTLX+16,A0
|
||
CMPI 01200H,A0
|
||
JRLT RGTJETS
|
||
CALLA OFFSCRN
|
||
;OKAY TO START JETS COMING
|
||
DT1 SLEEPK 1
|
||
MOVE @HALT,A0
|
||
JRNZ DT1
|
||
MOVE @WORLDTLX+16,A0
|
||
CMPI 012F8H,A0
|
||
JRGT JDI
|
||
MOVE @WORLDTLX,A10,L
|
||
SUBI [0C4H,0],A10
|
||
MOVE @WORLDTLY,A11,L
|
||
ADDI [03CH,0],A11
|
||
CREATE0 RAJET
|
||
CREATE0 RAJET_SHAD
|
||
MOVI CRSSND,A0
|
||
CALLA ONESND
|
||
SLEEPK 1
|
||
MOVI CRSSND3,A0
|
||
CALLA ONESND
|
||
CALLR FROMLFT
|
||
SLEEP 70H
|
||
JRUC DT1
|
||
JDI DIE
|
||
|
||
CRSSND .WORD >FCF3,>3A,>80EA,0 ;CRUISE MISSILE COMING IN
|
||
CRSSND3 .WORD >F5F3,>3A,>80C6,0 ;CRUISE MISSILE COMING IN
|
||
;GRNTSHT .WORD >F54F,10,>80E7,0 ;GRUNT SHOOTS AT PLYR
|
||
RAJET
|
||
;A10=X
|
||
;A11=Y
|
||
PUSH A13
|
||
MOVK 6,A9
|
||
RJTLP
|
||
MOVI JETFLG3,A0
|
||
MOVE A9,A1
|
||
SLL 4,A1
|
||
ADD A1,A0
|
||
MOVE *A0,A4,W
|
||
SLL 1,A1
|
||
MOVI JETPC,A0
|
||
ADD A1,A0
|
||
MOVE *A0,A2,L
|
||
ADDI PJETYXB,A1
|
||
MOVE *A1,A3,L
|
||
MOVE A11,A1
|
||
ADD A3,A1
|
||
SLL 16,A3
|
||
MOVE A10,A0
|
||
ADD A3,A0
|
||
|
||
MOVI 0450,A3 ;79EH,A3
|
||
MOVI CLSNEUT|TYPGATE,A5
|
||
MOVI 0C8000H,A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
MOVE A8,*A13(PDATA),L
|
||
ADDK 32,A13
|
||
DSJ A9,RJTLP
|
||
PULL A13
|
||
MOVE *A13(PDATA),A8,L
|
||
MOVK 32,A10 ;*4=TIME OF ANIMATION
|
||
CREATE0 JT3
|
||
SLEEP 044H
|
||
PUSH A13
|
||
MOVK 6,A9
|
||
FDE MOVE *A13(PDATA),A0,L
|
||
CALLA DELOBJ
|
||
ADDK 32,A13
|
||
DSJ A9,FDE
|
||
PULL A13
|
||
DIE
|
||
RAJET_SHAD
|
||
;A10=X
|
||
;A11=Y
|
||
PUSH A13
|
||
ADDI [60,0],A11
|
||
ADDI [30,0],A10
|
||
MOVK 6,A9
|
||
RSJTLP
|
||
MOVI JETFLG4,A0
|
||
MOVE A9,A1
|
||
SLL 4,A1
|
||
ADD A1,A0
|
||
MOVE *A0,A4,W
|
||
SLL 1,A1
|
||
MOVI JETPC2,A0
|
||
ADD A1,A0
|
||
MOVE *A0,A2,L
|
||
|
||
ADDI PJETYX2,A1
|
||
MOVE *A1,A3,L
|
||
MOVE A11,A1
|
||
ADD A3,A1
|
||
SLL 16,A3
|
||
MOVE A10,A0
|
||
ADD A3,A0
|
||
|
||
MOVI 071,A3
|
||
MOVI CLSNEUT|TYPGATE,A5
|
||
MOVI 0C8000H,A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
MOVE A8,*A13(PDATA),L
|
||
ADDK 32,A13
|
||
DSJ A9,RSJTLP
|
||
PULL A13
|
||
SLEEP 044H
|
||
PUSH A13
|
||
MOVK 6,A9
|
||
DDE MOVE *A13(PDATA),A0,L
|
||
CALLA DELOBJ
|
||
ADDK 32,A13
|
||
DSJ A9,DDE
|
||
PULL A13
|
||
DIE
|
||
|
||
JETS
|
||
SLEEP 60+60
|
||
MOVK 4,A9
|
||
JT1 CREATE0 AJET
|
||
CREATE0 AJET_SHAD
|
||
SLEEPK 10
|
||
DSJS A9,JT1
|
||
MOVI CRSSND2,A0
|
||
CALLA ONESND
|
||
SLEEPK 1
|
||
MOVI CRSSND3,A0
|
||
CALLA ONESND
|
||
SLEEP 30H
|
||
MOVI CRSSND2,A0
|
||
CALLA ONESND
|
||
SLEEPK 1
|
||
MOVI CRSSND3,A0
|
||
CALLA ONESND
|
||
SLEEP 32H
|
||
CALLR FROMRGT2
|
||
MOVI CRSSND2,A0
|
||
CALLA ONESND
|
||
SLEEPK 1
|
||
MOVI CRSSND3,A0
|
||
CALLA ONESND
|
||
SLEEP 34H
|
||
CALLR FROMRGT
|
||
MOVI CRSSND2,A0
|
||
CALLA ONESND
|
||
SLEEPK 1
|
||
MOVI CRSSND3,A0
|
||
CALLA ONESND
|
||
JT8 SLEEP 130+4*60
|
||
MOVE @HALT,A0
|
||
JRNZ JT8
|
||
MOVI CLSNEUT|TYPGATE,A0
|
||
CALLA KIL1OBJC
|
||
DIE
|
||
AJET_SHAD
|
||
CLR A1
|
||
SLL 5,A9
|
||
ADDI JETYX2,A9
|
||
MOVE *A9,A10,L
|
||
MOVY A10,A11
|
||
SLL 16,A10
|
||
;A10=X
|
||
;A11=Y
|
||
MOVK 6,A9
|
||
SJTLP
|
||
MOVI JETFLG2,A0
|
||
MOVE A9,A1
|
||
SLL 4,A1
|
||
ADD A1,A0
|
||
MOVE *A0,A4,W
|
||
SLL 1,A1
|
||
MOVI JETPC2,A0
|
||
ADD A1,A0
|
||
MOVE *A0,A2,L
|
||
ADDI PJETYX2,A1
|
||
MOVE *A1,A3,L
|
||
MOVE A11,A1
|
||
ADD A3,A1
|
||
SLL 16,A3
|
||
MOVE A10,A0
|
||
ADD A3,A0
|
||
MOVI 071,A3
|
||
MOVI CLSNEUT|TYPGATE,A5
|
||
MOVI -0A0000H,A6
|
||
CLR A7
|
||
CALLA BEGINOBJ
|
||
DSJ A9,SJTLP
|
||
DIE
|
||
|
||
AJET
|
||
SLL 5,A9
|
||
ADDI JETYX,A9
|
||
MOVE *A9,A10,L
|
||
MOVY A10,A11
|
||
SLL 16,A10
|
||
;A10=X
|
||
;A11=Y
|
||
MOVK 6,A9
|
||
JTLP
|
||
MOVI JETFLG,A0
|
||
MOVE A9,A1
|
||
SLL 4,A1
|
||
ADD A1,A0
|
||
MOVE *A0,A4,W
|
||
SLL 1,A1
|
||
MOVI JETPC,A0
|
||
ADD A1,A0
|
||
MOVE *A0,A2,L
|
||
ADDI PJETYX,A1
|
||
MOVE *A1,A3,L
|
||
MOVE A11,A1
|
||
ADD A3,A1
|
||
SLL 16,A3
|
||
MOVE A10,A0
|
||
ADD A3,A0
|
||
MOVI 0450,A3 ;79EH,A3
|
||
MOVI CLSNEUT|TYPGATE,A5
|
||
MOVI -0A0000H,A6
|
||
CLR A7
|
||
CALLA BEGINOBJ
|
||
CMPI 6,A9
|
||
JRNZ NOFLM
|
||
CREATE0 JTFLMS
|
||
NOFLM DSJ A9,JTLP
|
||
DIE
|
||
JTFLMS
|
||
MOVI 30+(4*60/2),A10 ;*4=TIME OF ANIMATION
|
||
JT3 MOVI 440,A3 ;0790H,A3
|
||
MOVE A3,*A8(OZPOS)
|
||
JT2 MOVI FLMS,A9
|
||
JSRP FRANIMQ
|
||
DSJS A10,JT2
|
||
DIE
|
||
|
||
FLMS .LONG JTFLM1
|
||
.WORD 1
|
||
.LONG JTFLM2
|
||
.WORD 1
|
||
.LONG 0
|
||
|
||
PJETYX .LONG 0,[0,0],[0,0],[0,0],[31H,0],[0,0],[0FFFBH,70H],[0,0]
|
||
PJETYXB .LONG 0,[0,0],[0,0],[0,0],[31H,0],[0,0],[0FFFBH,0FF8DH],[0,0]
|
||
JETYX .LONG 0,[100,700],[35,1250],[150,1850],[100,2500]
|
||
JETPC .LONG 0,JTBOD,JTSMWNG,JTBGWNG,JTBGWNG,JTWNGTP,JTFLM1
|
||
JETFLG .WORD 0,DMAWNZ|M_NOCOLL|M_FLIPH,DMAWNZ|M_NOCOLL|M_FLIPH
|
||
.WORD DMAWNZ|M_NOCOLL|M_FLIPH
|
||
.WORD DMAWNZ|M_NOCOLL|M_FLIPH|M_FLIPV
|
||
.WORD DMAWNZ|M_NOCOLL|M_FLIPH,DMAWNZ|M_NOCOLL|M_FLIPH
|
||
.WORD DMAWNZ|M_NOCOLL|M_FLIPH
|
||
|
||
JETFLG3 .WORD 0,DMAWNZ|M_NOCOLL,DMAWNZ|M_NOCOLL
|
||
.WORD DMAWNZ|M_NOCOLL
|
||
.WORD DMAWNZ|M_NOCOLL|M_FLIPV
|
||
.WORD DMAWNZ|M_NOCOLL,DMAWNZ|M_NOCOLL
|
||
.WORD DMAWNZ|M_NOCOLL
|
||
PJETYX2 .LONG 0,[0,0],[53H,0],[0,0],[53H,0],[-1,0],[54H,0]
|
||
JETYX2 .LONG 0,[100+60,700-30],[35+60,1250-30],[150+60,1850-30],[100+60,2500-30]
|
||
JETPC2 .LONG 0,JTSHD1,JTSHD1,JTSHD2,JTSHD2,JTSHD3,JTSHD3
|
||
JETFLG2 .WORD 0,DMAWNZ|M_NOCOLL|M_FLIPH,DMAWNZ|M_NOCOLL|M_FLIPH|M_FLIPV
|
||
.WORD DMAWNZ|M_NOCOLL|M_FLIPH,DMAWNZ|M_NOCOLL|M_FLIPH|M_FLIPV
|
||
.WORD DMAWNZ|M_NOCOLL|M_FLIPH,DMAWNZ|M_NOCOLL|M_FLIPH|M_FLIPV
|
||
JETFLG4 .WORD 0,DMAWNZ|M_NOCOLL,DMAWNZ|M_NOCOLL|M_FLIPV
|
||
.WORD DMAWNZ|M_NOCOLL,DMAWNZ|M_NOCOLL|M_FLIPV
|
||
.WORD DMAWNZ|M_NOCOLL,DMAWNZ|M_NOCOLL|M_FLIPV
|
||
|
||
ICON_STOP
|
||
SLEEP 12*60
|
||
MOVK 1,A0
|
||
MOVE A0,@ICONS_DN
|
||
DIE
|
||
|
||
ROAD SLEEPK 1
|
||
;TURN ON BTR60S ON THE ROAD
|
||
MOVE @WORLDTLX,A0,L
|
||
CMPI [0400,0],A0
|
||
JRC ROAD
|
||
CLR A0
|
||
MOVE A0,@JET_KILLS,L ;TRUCK KILLS
|
||
MOVE A0,@GET_AWAY ;TRUCKS GOT AWAY
|
||
MOVI SCUDP,A8 ;PAL NAME
|
||
MOVI PALTMP0,A9 ;RAM AREA
|
||
MOVI [50,54],A10 ;BEGIN/END COLOR #
|
||
MOVK 8,A11 ;RATE IN TICKS
|
||
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
||
|
||
CLR A0
|
||
MOVE A0,@BOTFLG
|
||
MOVE A0,@TOPFLG
|
||
MOVE A0,@NO_BONUS
|
||
MOVI 50,A10 ;MAX TRUCKS PER LANE
|
||
MOVK 7,A9
|
||
CREATE0 TOPLANE
|
||
SLEEP 5*60
|
||
MOVK 8,A9
|
||
CREATE0 BOTLANE
|
||
DIE
|
||
ROAD2
|
||
;TURN ON BTR60S ON THE 2nd ROAD
|
||
CREATE0 LIMO2
|
||
SLEEP 0AAH
|
||
CLR A0
|
||
MOVE A0,@JET_KILLS,L ;TRUCK KILLS
|
||
MOVE A0,@GET_AWAY ;GOT AWAY
|
||
MOVI SCUDP,A8 ;PAL NAME
|
||
MOVI PALTMP0,A9 ;RAM AREA
|
||
MOVI [50,54],A10 ;BEGIN/END COLOR #
|
||
MOVK 8,A11 ;RATE IN TICKS
|
||
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
||
|
||
CALLA JEEPCYC ;CYCLE JEEP TIRES
|
||
|
||
CLR A0
|
||
MOVE A0,@BOTFLG
|
||
MOVE A0,@TOPFLG
|
||
MOVE A0,@NO_BONUS
|
||
MOVI 50,A10 ;MAX TRUCKS PER LANE
|
||
MOVK 6,A9
|
||
CREATE0 BOTLANE
|
||
SLEEP 5*60
|
||
MOVK 5,A9
|
||
CREATE0 TOPLANE
|
||
DIE
|
||
|
||
BOTLANE
|
||
;START THEM COMING!
|
||
;5=FROM LEFT TOP LANE
|
||
;6=FROM LEFT BOTM LANE
|
||
;7=FROM RIGHT TOP LANE
|
||
;8=FROM RIGHT BOTM LANE
|
||
SLEEP 1*60
|
||
MOVE @BOTFLG,A0
|
||
JRNZ BOTLANE
|
||
MOVE @HALT,A0
|
||
JRNZ BOTLANE
|
||
|
||
MOVE @WAVE,A0
|
||
CMPI 40,A0
|
||
JRZ RDIE
|
||
; MOVK 8,A9
|
||
CREATE0 ABTR
|
||
MOVK 1,A0
|
||
MOVE A0,@BOTFLG
|
||
DSJ A10,BOTLANE
|
||
RDIE DIE
|
||
TOPLANE
|
||
;START THEM COMING!
|
||
;5=FROM LEFT TOP LANE
|
||
;6=FROM LEFT BOTM LANE
|
||
;7=FROM RIGHT TOP LANE
|
||
;8=FROM RIGHT BOTM LANE
|
||
SLEEP 1*60
|
||
MOVE @TOPFLG,A0
|
||
JRNZ TOPLANE
|
||
MOVE @HALT,A0
|
||
JRNZ TOPLANE
|
||
|
||
MOVE @WAVE,A0
|
||
CMPI 40,A0
|
||
JRZ RDIE
|
||
; MOVK 7,A9
|
||
CREATE0 ABTR
|
||
MOVK 1,A0
|
||
MOVE A0,@TOPFLG
|
||
DSJ A10,TOPLANE
|
||
DIE
|
||
|
||
ABTR MOVE A9,A0
|
||
SUBK 7,A0
|
||
JRNC FRMR
|
||
;POSSIBLY DO JEEP
|
||
MOVI 340,A0 ;150
|
||
CALLA RANDPER
|
||
JRNC FRMR
|
||
;JEEP WILL COME OUT
|
||
JRUC JEEP_ROAD
|
||
FRMR MOVE A9,*A13(MYTYP)
|
||
MOVI 190,A0 ;150
|
||
CALLA RANDPER
|
||
CLR A0
|
||
JRNC SITIN
|
||
MOVK 1,A0
|
||
JRUC SITIN
|
||
BTR60A
|
||
;MTYP=2
|
||
SLEEP 120
|
||
MOVI LORDPID,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILALL
|
||
MOVK 4,A0
|
||
MOVE A0,*A13(MYTYP)
|
||
CREATE0 ICON_STOP
|
||
CLR A0
|
||
JRUC SITIN
|
||
DOBTR60 SLEEPK 1
|
||
;WAIT FOR PROPER YLINE TO APPEAR, THEN TURN ON AND START
|
||
;A TIMER FOR WHEN IT WILL MOVE
|
||
;OR SEND IT FLYING ACROSS SCREEN AT RANDOM!
|
||
MOVE @WORLDTLY,A0,L
|
||
CMPI 11A00000H,A0
|
||
JRNC DOBTR60
|
||
CALLA RANDOM
|
||
ANDI 03H,A0
|
||
MOVE A0,*A13(MYTYP)
|
||
MOVE A0,A1
|
||
CLR A0
|
||
CMPI 2,A1
|
||
JRC SITIN
|
||
WTP SLEEPK 1
|
||
;WAIT A MOMENT LONGER
|
||
MOVE @WORLDTLY,A0,L
|
||
CMPI 0113F0000H,A0
|
||
JRNC WTP
|
||
CLR A0
|
||
SITIN
|
||
MOVE A0,*A13(SCUD)
|
||
MOVE *A13(MYTYP),A9
|
||
;TURN ON BTR60
|
||
SLL 5,A9
|
||
MOVI WX,A0
|
||
ADD A9,A0
|
||
MOVE *A0,A1,L
|
||
MOVE @WORLDTLX,A0,L
|
||
ADD A1,A0 ;X IS SET
|
||
MOVE @WORLDTLY,A1,L
|
||
MOVI WY,A2
|
||
ADD A9,A2
|
||
MOVE *A2,A2,L
|
||
ADD A2,A1 ;Y IS SET
|
||
MOVI WF,A4
|
||
ADD A9,A4
|
||
MOVE *A4,A4,L ;FLAGS IS SET
|
||
MOVI 09EH,A3
|
||
MOVI CLSENMY|TYPT72|SUBTK,A5
|
||
MOVI BTR60,A2
|
||
MOVE *A13(SCUD),A6
|
||
JRZ SITF
|
||
MOVI SCUD1,A2
|
||
SITF CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
|
||
MOVE *A13(SCUD),A11
|
||
JRZ SITF1
|
||
MOVE A13,A10
|
||
CLR A0
|
||
MOVE A0,*A13(KPTSO),L
|
||
MOVK 5,A9
|
||
;CREATE 6 WHEELS WITH INDEX PNTR
|
||
ADB1 CREATE FUTUREPID,WHEEL
|
||
DSJS A9,ADB1
|
||
;TURN ON SCUD PC PLUS MISSILE
|
||
MOVE A13,A10
|
||
MOVE *A13(MYTYP),A0
|
||
CMPI 7,A0
|
||
JRNC FROMR
|
||
;SCUD FROM LEFT
|
||
CREATE T72PID,SCUDPC2
|
||
CREATE T72PID,SCUDMI2
|
||
JRUC SITF2
|
||
FROMR
|
||
CREATE T72PID,SCUDPC
|
||
CREATE T72PID,SCUDMI
|
||
JRUC SITF2
|
||
SCUDMI2
|
||
MOVI MISSLE,A2
|
||
MOVI [4,0],A11
|
||
MOVI 0A1H,A9
|
||
MOVI DMAWNZ|M_NOCOLL|M_FLIPH,A5
|
||
JRUC SCPC
|
||
SCUDPC2
|
||
MOVI SCUD2,A2
|
||
CLR A11
|
||
MOVI 0A0H,A9
|
||
MOVI DMAWNZ|M_NOCOLL|M_FLIPH,A5
|
||
JRUC SCPC
|
||
SCUDMI
|
||
MOVI MISSLE,A2
|
||
MOVI [4,0],A11
|
||
MOVI 0A1H,A9
|
||
MOVI DMAWNZ|M_NOCOLL,A5
|
||
JRUC SCPC
|
||
SCUDPC
|
||
MOVI SCUD2,A2
|
||
CLR A11
|
||
MOVI 0A0H,A9
|
||
MOVI DMAWNZ|M_NOCOLL,A5
|
||
SCPC MOVE A10,*A13(PDATA),L ;BTR60 PROC
|
||
MOVE A2,A10
|
||
CALLA GETANIXY
|
||
CLR A6
|
||
CLR A7
|
||
MOVE A2,A1
|
||
MOVE A3,A0
|
||
MOVE A9,A3
|
||
MOVE A5,A4
|
||
; MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSDEAD,A5
|
||
MOVE A10,A2
|
||
MOVE A8,A9 ;KEEP TRUCK IN A9
|
||
CALLA BEGINOBJ2
|
||
|
||
AGN SLEEPK 1
|
||
MOVE *A13(PDATA),A0,L
|
||
MOVE *A0(IDEAD),A0
|
||
JRNZ WLOUT
|
||
|
||
MOVE A8,A0
|
||
MOVE A9,A8
|
||
CALLA GETANIXY
|
||
;A2=Y,A3=X
|
||
ADD A11,A2
|
||
MOVE *A0(OFLAGS),A4,W
|
||
CALLA GANISAG ;ADJUSTS
|
||
MOVE A0,A8
|
||
JRUC AGN
|
||
|
||
SITF1 MOVE A13,A10
|
||
MOVK 1,A9 ;GUN ON TOP OF BTR60
|
||
;CREATE TURRET
|
||
; CREATE T72PID,TTORSO
|
||
CREATE FUTUREPID,TTORSO
|
||
MOVE A0,*A13(KPTSO),L
|
||
MOVK 6,A9
|
||
;CREATE 6 WHEELS WITH INDEX PNTR
|
||
DB1 CREATE FUTUREPID,WHEEL
|
||
DSJS A9,DB1
|
||
SITF2 MOVE A9,*A13(HITS)
|
||
MOVE A9,*A13(MYPLYR) ;FOR WHEN THIS BTR60 HITS GRUNTS
|
||
MOVE A9,*A13(IDEAD) ;WILL TELL WHEELS TO DIE OFF IF NOT 0
|
||
MOVI 012CH,B0
|
||
MOVI 03FCH,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,A9
|
||
|
||
DBT SLEEPK 1
|
||
CALLR VULN
|
||
MOVE *A13(MYTYP),A0
|
||
SLL 5,A0
|
||
ADDI JTBL,A0
|
||
MOVE *A0,A0,L
|
||
JUMP A0
|
||
JTBL .LONG BT0,BT0,FLFT,FRGT,FLFT_LCK,BT5,BT5,BT7,BT7
|
||
;5=FROM LEFT TOP LANE
|
||
;6=FROM LEFT BOTM LANE SITTING HERE, MAYBE TAKE OFF!
|
||
;7=FROM RIGHT TOP LANE MAYBE DECIDE TO TAKE OFF!
|
||
;8=FROM RIGHT BOTM LANE
|
||
BT5
|
||
MOVI 08000H,B0
|
||
MOVI 021000H,B1
|
||
JRUC BT7A
|
||
BT7
|
||
MOVI -021000H,B0
|
||
MOVI -08000H,B1
|
||
BT7A CALLA RANGRAND
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVI 5*60,A9
|
||
JRUC SPDRD
|
||
BT0
|
||
DEC A9
|
||
JRNZ DBT
|
||
;START MOVING!
|
||
FLFT
|
||
;FROM LEFT OF SCRN
|
||
;SEND FLYING
|
||
MOVI 07000H,B0 ;7F
|
||
MOVI 013000H,B1 ;16
|
||
CALLA RANGRAND
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVI 200,A9
|
||
SPDRD SLEEPK 1
|
||
CALLR VULN
|
||
MOVE A9,A9
|
||
JRZ SPDF
|
||
DEC A9
|
||
JRUC SPDRD
|
||
SPDF CALLA SCRTST
|
||
JRZ SPDRD
|
||
SLEEPK 20
|
||
MOVE *A8(OXVEL),A0,L
|
||
CMPI 0FFFB8000H,A0 ;MEANS TRUCK IS SPEEDING OFF SCRN
|
||
JRZ INHR
|
||
CMPI -0FFFB8000H,A0 ;MEANS TRUCK IS SPEEDING OFF SCRN
|
||
JRZ INHR
|
||
MOVE @WAVE,A0
|
||
JRZ INHR
|
||
CMPI 10,A0
|
||
JRZ INHR
|
||
MOVK 1,A0 ;THIS ONE GOT AWAY!
|
||
MOVE A0,@NO_BONUS
|
||
MOVI HORNSND,A0
|
||
CALLA ONESND
|
||
|
||
MOVE @GET_AWAY,A0 ;GOT AWAY TOTAL
|
||
ADDK 1,A0
|
||
MOVE A0,@GET_AWAY
|
||
|
||
INHR
|
||
;KILL WHEELS, TURRET, BTR60
|
||
;5=FROM LEFT TOP LANE
|
||
;6=FROM LEFT BOTM LANE
|
||
;7=FROM RIGHT TOP LANE
|
||
;8=FROM RIGHT BOTM LANE
|
||
CLR A1
|
||
MOVE *A13(MYTYP),A0
|
||
CMPI 6,A0
|
||
JRZ IN1
|
||
CMPI 5,A0
|
||
JRZ INCG
|
||
SUBK 7,A0
|
||
JRNZ IN1
|
||
INCG MOVE A1,@TOPFLG
|
||
JRUC IN2
|
||
IN1
|
||
MOVE A1,@BOTFLG
|
||
IN2 MOVK 1,A0
|
||
;KILL WHEELS
|
||
MOVE A0,*A13(IDEAD) ;WILL TELL WHEELS TO DIE OFF
|
||
SLEEPK 5
|
||
MOVE *A13(KPTSO),A0,L
|
||
JRZ TAG0
|
||
;TURRET STILL ALIVE!
|
||
CALLA KILL
|
||
MOVE *A13(KPTSOBJ),A0,L
|
||
CALLA DELOBJ
|
||
TAG0 jauc DELOBJDIE ;BTR60 IMAGE OR SCUD TRUCK
|
||
|
||
FLFT_LCK
|
||
;FROM LEFT FOR LOCKDOWN
|
||
|
||
MOVI 015000H,A0
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVI 0F2H,A9
|
||
XSPDRD SLEEPK 1
|
||
CALLR VULN
|
||
MOVE A9,A9
|
||
JRZ XSPDF
|
||
MOVE *A8(OXVEL),A0,L
|
||
SUBI 120H,A0
|
||
MOVE A0,*A8(OXVEL),L
|
||
DEC A9
|
||
JRNZ XSPDRD
|
||
MOVE A9,*A8(OXVEL),L
|
||
JRUC XSPDRD
|
||
XSPDF CALLA SCRTST
|
||
JRZ XSPDRD
|
||
JRUC INHR
|
||
FRGT
|
||
;FROM RIGHT OF SCRN
|
||
;SEND FLYING
|
||
MOVI -013000H,B0
|
||
MOVI -06FFFH,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,*A8(OXVEL),L
|
||
; MOVI 13*60,A9
|
||
MOVI 5*60,A9
|
||
JRUC SPDRD
|
||
|
||
;4=IS FOR LOCKDOWN
|
||
;5=FROM LEFT TOP LANE
|
||
;6=FROM LEFT BOTM LANE
|
||
;7=FROM RIGHT TOP LANE
|
||
;8=FROM RIGHT BOTM LANE
|
||
WX .LONG [07CH,0],[07CH,0],[-65,0],[470,0],[-65,0]
|
||
.LONG [-85,0],[-85,0],[485,0],[485,0]
|
||
WY .LONG [0FF72H,0],[0FF72H,0],[0FFD0H,0],[0FFD0H,0],[024H,0]
|
||
.LONG [06H,0],[06BH,0],[06H,0],[06BH,0]
|
||
WF .LONG DMAWNZ|M_FLIPH|M_PIXSCAN,DMAWNZ|M_FLIPH|M_PIXSCAN
|
||
.LONG DMAWNZ|M_FLIPH|M_PIXSCAN,DMAWNZ|M_PIXSCAN,DMAWNZ|M_FLIPH|M_PIXSCAN
|
||
.LONG DMAWNZ|M_FLIPH|M_PIXSCAN,DMAWNZ|M_FLIPH|M_PIXSCAN
|
||
.LONG DMAWNZ|M_PIXSCAN,DMAWNZ|M_PIXSCAN
|
||
WHEEL
|
||
;A8=BTR60 PNTR
|
||
;A9=INDEX TO WHEEL # 1-6
|
||
;A10=BTR60 PROC PNTR
|
||
;TURN ON TORSO WITH SAME X/Y AS CURRENT A8
|
||
;A11=0 OR 1
|
||
MOVE A11,*A13(SCUD)
|
||
CLR A0
|
||
MOVE A0,*A13(MODY),L ;WHEEL BOUNCE UP AND DOWN AMOUNT
|
||
CALLA RANDOM
|
||
ANDI 07,A0
|
||
MOVE A0,*A13(BNCING)
|
||
MOVK 1,A0
|
||
MOVE A0,*A13(ANICNT) ;WHEEL ANI CNT
|
||
DEC A9
|
||
SLL 5,A9
|
||
MOVE A10,*A13(KPBTRP),L ;BTR60 PROC
|
||
MOVE A8,*A13(KPBTRO),L ;BTR60 OBJECT PNTR
|
||
CALLA GETANIXY
|
||
CLR A6
|
||
CLR A7
|
||
MOVE A2,A1
|
||
MOVE A3,A0
|
||
MOVI 09EH,A3 ;133
|
||
; MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI DMAWNZ,A4
|
||
; MOVI CLSENMY|TYPT72|SUBTK,A5
|
||
MOVI CLSDEAD,A5
|
||
MOVI BTIRE1,A2
|
||
CALLA BEGINOBJ2
|
||
|
||
MOVE *A8(OPAL),A0,L
|
||
ANDI 0FFFFH,A0
|
||
MOVE A0,*A8(OPAL),L
|
||
|
||
WLTOP SLEEPK 2 ;1
|
||
MOVE *A13(KPBTRP),A0,L
|
||
MOVE *A0(IDEAD),A0
|
||
JRNZ WLOUT
|
||
;ALIGN WHEEL BASED ON INDEX # (A9)
|
||
MOVE A8,A0
|
||
MOVE *A13(KPBTRO),A8,L
|
||
CALLA GETANIXY
|
||
MOVE *A8(OFLAGS),A4,W
|
||
|
||
MOVE *A13(SCUD),A7
|
||
JRZ REGBT
|
||
;A SCUD
|
||
MOVI ZXOF,A7
|
||
MOVI ZYOF,A6
|
||
;A2=Y,A3=X
|
||
BTST B_FLIPH,A4
|
||
JRZ WB19
|
||
MOVI ZXOF2,A7
|
||
WB19
|
||
JRUC WB1
|
||
|
||
REGBT
|
||
MOVI XOF,A7
|
||
MOVI YOF,A6
|
||
;A2=Y,A3=X
|
||
BTST B_FLIPH,A4
|
||
JRZ WB1
|
||
MOVI XOF2,A7
|
||
WB1 ADD A9,A6
|
||
MOVE *A6,A6,L
|
||
ADD A6,A2
|
||
MOVE *A13(MODY),A6,L
|
||
ADD A6,A2
|
||
ADD A9,A7
|
||
MOVE *A7,A6,L
|
||
ADD A6,A3
|
||
MOVE *A0(OFLAGS),A4,W
|
||
CALLA GANISAG ;ADJUSTS THIS WHEEL
|
||
MOVE A0,A8
|
||
|
||
;SHOULD I ANIMATE THIS WHEEL
|
||
MOVE *A13(KPBTRO),A0,L ;IS BTR60 MOVING?
|
||
MOVE *A0(OXVEL),A0,L
|
||
JRZ WLTOP
|
||
MOVE @HALT,A0
|
||
JRNZ WLTOP
|
||
MOVE *A13(ANICNT),A0
|
||
DEC A0
|
||
MOVE A0,*A13(ANICNT)
|
||
JRNZ WLTOP
|
||
;CHANGE WHEEL IMAGE TO OTHER VIEW
|
||
MOVK 2,A0 ;4
|
||
MOVE A0,*A13(ANICNT)
|
||
MOVE *A8(OFLAGS),A4
|
||
MOVI BTIRE2,A1
|
||
MOVE *A8(OIMG),A0,L
|
||
CMPI BTIRE1,A0
|
||
JRZ WL2
|
||
MOVI BTIRE1,A1
|
||
WL2 CALLA ANI
|
||
MOVE *A13(BNCING),A0
|
||
ANDI 03H,A0
|
||
DEC A0
|
||
MOVE A0,*A13(BNCING)
|
||
JRNZ WLTOP
|
||
MOVE *A13(MODY),A0,L
|
||
XORI 10000H,A0
|
||
MOVE A0,*A13(MODY),L
|
||
MOVK 2,A0
|
||
CALLA RNDRNG0
|
||
; CALLA RANDOM
|
||
; ANDI 03H,A0
|
||
MOVE A0,*A13(BNCING)
|
||
JRUC WLTOP
|
||
WLOUT
|
||
SLEEP 60
|
||
jauc DELOBJDIE
|
||
|
||
YOF .LONG [078H,0],[078H,0],[078H,0]
|
||
.LONG [036H,0],[036H,0],[036H,0]
|
||
XOF .LONG [-10,0],[1EH,0],[46H,0]
|
||
.LONG [-10,0],[1EH,0],[46H,0]
|
||
XOF2 .LONG [7-80,0],[7-40,0],[7,0]
|
||
.LONG [7-80,0],[7-40,0],[7,0]
|
||
|
||
ZYOF .LONG [078H,0],[078H,0],[078H,0],[078H,0]
|
||
.LONG [033H,0],[036H,0],[036H,0],[036H,0]
|
||
ZXOF .LONG [0FFEDH,0],[1EH,0],[46H,0],[6FH,0]
|
||
.LONG [0FFEDH,0],[1EH,0],[46H,0],[76H,0]
|
||
ZXOF2 .LONG [014H,0],[0FFDEH,0],[0FFB7H,0],[0FF90H,0]
|
||
.LONG [014H,0]
|
||
|
||
;
|
||
HIT_TNK2
|
||
;TIME BOMB HITS TANK BASE
|
||
PUSH A0
|
||
MOVI 90H,A0 ;90
|
||
CALLA RANDPER
|
||
JRC HIT_TNK0
|
||
PULL A0
|
||
RETS
|
||
HIT_TNK0
|
||
PULL A0
|
||
HIT_TNK
|
||
;BULLET HITS BASE
|
||
;A8=TANK BASE
|
||
MMTM SP,A1,A2,A7,A9,A10
|
||
MOVE *A8(OIMG),A1,L
|
||
CMPI BTRECK,A1
|
||
JRZ HO ;ALREADY DEAD!
|
||
MOVE *A0(OPLINK),A10,L ;FOR MYPLYR INFO FOR SCORING
|
||
CMPI BTR60,A1
|
||
JRZ ABT ;HITT
|
||
CMPI SCUD1,A1
|
||
JRZ ABT0 ;HITT
|
||
CMPI JEEP4,A1
|
||
JRZ JTT
|
||
CMPI JEEP2,A1
|
||
JRZ JTT
|
||
CMPI JEEP,A1
|
||
JRNZ HITT
|
||
JTT
|
||
;A JEEP
|
||
MOVK JEEPHITS,A2
|
||
JRUC ABT2
|
||
ABT0
|
||
MOVE *A8(OXVEL),A0,L
|
||
CMPI 0FFFB8000H,A0 ;MEANS TRUCK IS SPEEDING OFF SCRN
|
||
JRZ HO
|
||
CMPI -0FFFB8000H,A0 ;MEANS TRUCK IS SPEEDING OFF SCRN
|
||
JRZ HO
|
||
|
||
MOVK BTHITS3,A2 ;SCUD TRUCK
|
||
MOVE *A8(OPLINK),A1,L
|
||
JRUC ABT2
|
||
ABT
|
||
;A BTR60
|
||
MOVK BTHITS,A2 ;BTR60 HITS
|
||
MOVE *A8(OPLINK),A1,L
|
||
MOVE *A1(MYTYP),A1
|
||
SUBK 5,A1 ;7
|
||
;CMPI 7,A1
|
||
JRC ABT2
|
||
MOVK BTHITS2,A2 ;BTR60 HITS FOR ROAD
|
||
ABT2
|
||
MOVE *A0(OID),A1
|
||
CMPI CLSPLYR|TYPPLBL|SUBLZR,A1
|
||
JRNZ HT201
|
||
MOVE @PCNT,A0
|
||
ANDI 07H,A0
|
||
JRZ HT201A
|
||
CMPI 1,A0
|
||
JRNZ HO
|
||
;FLASH ON POWER UP WEAPON
|
||
HT201 MOVE @PCNT,A0
|
||
ANDI 01,A0
|
||
JRZ HO
|
||
HT201A MOVI 03F3F0000H,A9
|
||
CREATE0 FLASHME
|
||
MOVK 1,A9 ;1
|
||
CMPI JEEPHITS,A2
|
||
JRZ MAYBEA ;JEEP WILL NOT JERK AROUND ON HITS
|
||
CREATE0 XYNEW
|
||
JRUC MAYBEA
|
||
|
||
HITT
|
||
; MOVE A0,A10
|
||
MOVE *A0(OID),A1
|
||
CMPI CLSPLYR|TYPPLBL|SUBLZR,A1
|
||
JRNZ HT20
|
||
MOVE @PCNT,A0
|
||
ANDI 07H,A0
|
||
JRNZ HO
|
||
;FLASH ON POWER UP WEAPON
|
||
HT20 MOVE @PCNT,A0
|
||
ANDI 01,A0
|
||
JRNZ HO
|
||
MOVE *A8(OPLINK),A0,L
|
||
PUSH A8
|
||
MOVE *A0(BRL),A8,L
|
||
MOVI 03F3F0000H,A9
|
||
CREATE0 FLASHME
|
||
PULL A8
|
||
MOVI 03F3F0000H,A9
|
||
CREATE0 FLASHME
|
||
MOVK 2,A9 ;1
|
||
PUSH A10 ;KEEP FOR LATER CK OF MYPLYR
|
||
MOVE *A8(OPLINK),A10,L
|
||
CREATE0 SHAKEME
|
||
PULL A10
|
||
MOVI T72HITS,A2 ;TANK HITS BEFORE DEATH
|
||
MAYBEA
|
||
;I HAVE FLASHED, ADD 1 POINT!
|
||
PUSH A2
|
||
MOVE *A10(MYPLYR),A0
|
||
MOVI P1DATA,A2
|
||
CMPI 1,A0
|
||
JREQ J5X
|
||
CMPI 2,A0
|
||
JRNZ HOX
|
||
MOVI P2DATA,A2
|
||
;A2=P1DATA OR P2DATA
|
||
J5X MOVI HITPT,A1 ;AMOUNT OF SCORE
|
||
CALLA SCRADD2
|
||
HOX PULL A2
|
||
;DO NOT ADD UP HITS IF TURRET GUNNER IS STILL ALIVE!
|
||
MOVE *A8(OPLINK),A0,L
|
||
MOVE *A0(KPTSO),A1,L
|
||
JRNZ HO
|
||
MOVE *A0(HITS),A1
|
||
INC A1
|
||
MOVE A1,*A0(HITS)
|
||
CMP A2,A1 ;DIFFICULTY ADJUST
|
||
;FOR BTR60 ALSO
|
||
JRLT HO
|
||
CLR A1
|
||
MOVE A1,*A0(HITS)
|
||
MOVI JPDIE,A7
|
||
CMPI JEEPHITS,A2 ;JEEP DIE
|
||
JRNZ TD1
|
||
PUSH A0
|
||
MOVI 570,A0 ;DON'T KILL JEEP IN WARP ROAD AREA
|
||
MOVE @WAVE,A1
|
||
CMPI 18,A1
|
||
JRZ HOX2
|
||
MOVI 200,A0 ;10% OF TIME DON'T KILL JEEP!
|
||
CMPI 42,A1
|
||
JRZ HOXC
|
||
CMPI 23,A1
|
||
JRNZ HOX2
|
||
HOXC MOVI 110,A0 ;DON'T KILL JEEP IN WARP ROAD AREA
|
||
HOX2 CALLA RANDPER
|
||
JRNC KILJP
|
||
;NO KILL JEEP
|
||
PULL A0
|
||
JRUC HO
|
||
KILJP
|
||
|
||
MMTM SP,A0,A7,A9
|
||
MOVK 1,A9
|
||
CREATE FUTUREPID,BONE
|
||
MMFM SP,A0,A7,A9
|
||
PULL A0
|
||
CALLA GETA9
|
||
MOVI JEEPPT,A1
|
||
CALLR SCORE_PTS
|
||
CALLA GETA10
|
||
CLR A1
|
||
CALLA XFERPROC
|
||
JRUC HO
|
||
TD1
|
||
CMPI BTHITS,A2
|
||
JRZ TD11
|
||
CMPI BTHITS2,A2
|
||
JRZ TD11
|
||
CMPI BTHITS3,A2
|
||
JRNZ TD0
|
||
TD11
|
||
MMTM SP,A0,A9
|
||
MOVI 120,A9
|
||
CMPI BTHITS,A2
|
||
JRZ TD12
|
||
MOVK 10,A9 ;FOR ROAD DUDE
|
||
TD12 CREATE FUTUREPID,BONE
|
||
MMFM SP,A0,A9
|
||
MOVI BTDIE,A7 ;BTR60 DIE
|
||
MOVI FUTUREPID,A1
|
||
CALLA XFERPROC
|
||
JRUC TD00
|
||
TD0
|
||
MMTM SP,A0,A9
|
||
MOVI 230,A9
|
||
CREATE FUTUREPID,BONE
|
||
MMFM SP,A0,A9
|
||
MOVI TDIE,A7 ;T72 DIE
|
||
MOVI FUTUREPID,A1
|
||
CALLA XFERPROC
|
||
TD00 MOVI BTNKPT,A1
|
||
CALLR SCORE_PTS
|
||
HO
|
||
MMFM SP,A1,A2,A7,A9,A10
|
||
RETS
|
||
|
||
KEYSND2B .WORD >FBEE,>18,>80B5,0 ;BIG STUFF SND 2
|
||
shout .word >f1a0,60,>80fe,0 ;Rackup victory shout
|
||
|
||
; .DEF LOG
|
||
;LOG CREATE0 DO_WINNER
|
||
; SLEEP 200
|
||
; JRUC LOG
|
||
DO_WINNER
|
||
;IF 2 PLAYER GAME, EVALUATE WHO SCORED MORE IN THIS WAVE
|
||
;PRINT A MESSAGE IN MID SCRN
|
||
;SCROLL TOWARD SCOREBOARD
|
||
; MOVE @STATUS,A0
|
||
; CMPI 3,A0
|
||
; JANZ SUCIDE
|
||
MOVI shout,a0
|
||
CALLA ONESND
|
||
;P1 WINNER
|
||
MOVI [58H,0],A11
|
||
MOVI P1DATA,A2
|
||
MOVI P1DATA+WAVEPTS,A0
|
||
MOVI P2DATA+WAVEPTS,A1
|
||
MOVE *A0,A0
|
||
MOVE *A1,A1
|
||
CLR A10
|
||
ZEXT A0
|
||
ZEXT A1
|
||
CMP A0,A1
|
||
JRLT RTE
|
||
;P2 WINNER
|
||
MOVI [170H,0],A11
|
||
MOVI P2DATA,A2
|
||
MOVK 1,A10
|
||
RTE:
|
||
MOVI >2500,A1 ;WAVE WINNER
|
||
CALLA SCRADD2
|
||
CREATE FUTUREPID,ZOOM_BONUS
|
||
|
||
MOVE A11,A0
|
||
MOVI [80,0],A1
|
||
MOVI 460,A3 ;700
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSDEAD,A5
|
||
MOVI WINNER,A2
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ
|
||
CALLA CYCLEON
|
||
CLR A0
|
||
MOVE A0,@P1DATA+WAVEPTS
|
||
MOVE A0,@P2DATA+WAVEPTS
|
||
SLEEP 60
|
||
MOVI 0FFFE8000H,A0
|
||
MOVE A0,*A8(OYVEL),L
|
||
SLEEPK 30
|
||
JAUC DELOBJDIE
|
||
|
||
ZOOM_BONUS
|
||
;ZOOM BONUS WORD FROM WINNER TO HIS SCOREBOARD
|
||
;A10=0 OR 1
|
||
MOVI WVBON,A0
|
||
CALLA ONESND
|
||
MOVE @WAVE,A0
|
||
CMPI 17,A0
|
||
JRLT NOLOSR
|
||
CMPI 20,A0
|
||
JRZ NOLOSR
|
||
CMPI 21,A0
|
||
JRZ NOLOSR
|
||
CMPI 22,A0
|
||
JRZ NOLOSR
|
||
CMPI 42,A0
|
||
JRZ NOLOSR
|
||
;SHOW LOSER FROM ROAD ON!
|
||
SLEEP 30
|
||
CREATE FUTUREPID,ZMLS
|
||
NOLOSR
|
||
MOVK 20H,A9
|
||
ZM1 CREATE FUTUREPID,ZOOMIT
|
||
SLEEPK 3
|
||
; MOVI SCASH,A0 ;GET CASH PICKUP SND
|
||
; CALLA ONESND
|
||
DSJ A9,ZM1
|
||
DIE
|
||
WVBON .WORD >FBEE,>18,>808F,0 ;WAVE BONUS
|
||
ZMLS
|
||
MOVK 10H,A9
|
||
ZML1 CREATE FUTUREPID,ZOOMLOSER
|
||
SLEEPK 6
|
||
DSJS A9,ZML1
|
||
DIE
|
||
ZOOMLOSER
|
||
MOVE A10,A2
|
||
XORI 1,A2
|
||
SLL 5,A2
|
||
ADDI PLYROBJS,A2,L
|
||
MOVE *A2,A2,L
|
||
MOVE *A2(OXVAL),A0,L
|
||
ADDI [10,0],A0
|
||
MOVE *A2(OYVAL),A1,L
|
||
ADDI [11H,0],A1
|
||
MOVI LOSER,A2 ;LOSER,A2 ;WVBONUS,A2
|
||
MOVI 450,A3 ;700
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSDEAD,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
;
|
||
MOVI -010000H,a0
|
||
MOVI 010000H,a1
|
||
CALLA RNDRNG
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVI -010000H,a0
|
||
MOVI 010000H,a1
|
||
CALLA RNDRNG
|
||
MOVE A0,*A8(OYVEL),L
|
||
SLEEP 40
|
||
JAUC DELOBJDIE
|
||
|
||
ZOOMIT
|
||
MOVE A10,A2
|
||
SLL 5,A2
|
||
ADDI PLYROBJS,A2,L
|
||
MOVE *A2,A2,L
|
||
MOVE *A2(OXVAL),A0,L
|
||
ADDI [10,0],A0
|
||
MOVE *A2(OYVAL),A1,L
|
||
ADDI [11H,0],A1
|
||
MOVI WVBONUS,A2 ;WVBONUS,A2
|
||
MOVI 450,A3 ;700
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSDEAD,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
CLR A11
|
||
JAUC INHERE
|
||
|
||
|
||
BONE
|
||
;TURN ON BONUS WORD
|
||
;TURN ON CYCLE
|
||
;FLOAT TOWARD CORRECT SCOREBOARD
|
||
;A8=BTR60/T72 IMG PNTR
|
||
;AWESOME SPEECH CALL
|
||
;A10=BULLET WHO KILLED ME
|
||
MOVE *A10(MYPLYR),A10
|
||
CMPI 1,A10
|
||
JRZ DOS1
|
||
MOVE @JET_KILLS+16,A0
|
||
ADDK 1,A0
|
||
MOVE A0,@JET_KILLS+16
|
||
JRUC DOS2
|
||
DOS1
|
||
MOVE @JET_KILLS,A0
|
||
ADDK 1,A0
|
||
MOVE A0,@JET_KILLS
|
||
DOS2 MOVE A9,A0
|
||
CALLA PRCSLP
|
||
MOVI KEYSND2,A0
|
||
MOVE @HCOUNT,A1
|
||
BTST 0,A1
|
||
JRZ BONE2
|
||
MOVI KEYSND2B,A0
|
||
BONE2 CALLA ONESND
|
||
DEC A10
|
||
;A10=PNUM 0 OR 1
|
||
CALLA GETCPNT
|
||
SUBI [16,0],A1
|
||
CMPI 190,A9 ;DISH BLOW
|
||
JRNZ NOADJ1
|
||
ADDI [24,8],A1
|
||
JRUC NOADJ
|
||
NOADJ1 CMPI 230,A9
|
||
JRNZ NOADJ
|
||
ADDI [0,7],A1
|
||
NOADJ MOVX A1,A0
|
||
SLL 16,A0
|
||
MOVI 460,A3 ;700
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSDEAD,A5
|
||
MOVI BIGBONE,A2
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
CALLA CYCLEON
|
||
SLEEP 90
|
||
CLR A11
|
||
JAUC INHERE
|
||
|
||
SCORE_PTS
|
||
;A1=PTS TO SCORE
|
||
;A10=KILLER IMG WITH MYPLYR STORED IN PDATA
|
||
MMTM SP,A0,A1,A2
|
||
MOVE *A10(MYPLYR),A0
|
||
MOVI P1DATA,A2
|
||
DEC A0
|
||
JREQ J5
|
||
CMPI 1,A0
|
||
JRNZ HOCK
|
||
MOVI P2DATA,A2
|
||
;A2=P1DATA OR P2DATA
|
||
J5
|
||
MOVE *A2(TBIGSTF),A0
|
||
INC A0
|
||
MOVE A0,*A2(TBIGSTF) ;TOTAL BIG STUFF DESTROYED
|
||
CALLA SCRADD2
|
||
HOCK
|
||
MMFM SP,A0,A1,A2
|
||
RETS
|
||
SPAWN_T72
|
||
;TURN ON TANK
|
||
CREATE T72PID,T72ON
|
||
RETS
|
||
T72ON SLEEPK 1
|
||
MOVE @HULK_DN,A0
|
||
JRZ T72ON
|
||
CLR A6
|
||
CLR A7
|
||
MOVI [0DFH,0],A0
|
||
MOVI [0FF85H+00,0],A1
|
||
MOVI 159,A3 ;SAME AS BULLETS
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSENMY|TYPT72,A5
|
||
MOVI T72TNK,A2
|
||
CALLA BEGINOBJ
|
||
;TANK APPEARS
|
||
|
||
;TANKON:
|
||
;A8=SHELL OF TANK
|
||
MOVE A8,*A13(TMPPTR),L ;@MUTPTR,L ;*A13(MUTPTR),L
|
||
;TURN ON ALL PIECES
|
||
MOVK 8,A9
|
||
TP MOVE A9,A0
|
||
SLL 5,A0
|
||
ADDI ONLIST,A0
|
||
MOVE *A0,A14,L
|
||
CALLA GPALOBJ ;ALLOCATE A COLOR PALETTE
|
||
CALLA STFOBJ ;STUFF OBJECT DATA
|
||
MOVE A13,*A0(OPLINK),L
|
||
CALLA INSOBJ ;INSERT OBJECT INTO LIST
|
||
MOVE A0,A8
|
||
MOVE *A13(TMPPTR),A0,L ;@MUTPTR,A0,L ;*A13(MUTPTR),A0,L
|
||
MOVE *A0(OYPOS),A10
|
||
MOVE *A0(OXPOS),A11
|
||
MOVE A10,*A8(OYPOS),W
|
||
MOVE A11,*A8(OXPOS),W
|
||
MOVE *A8(OPAL),A0,L
|
||
ANDI 0FFFFH,A0
|
||
MOVE A0,*A8(OPAL),L
|
||
MOVE A9,A0
|
||
DEC A0
|
||
SLL 5,A0
|
||
ADD A13,A0
|
||
ADDI TNKL,A0
|
||
MOVE A8,*A0,L
|
||
DEC A9
|
||
JRNZ TP
|
||
MOVE A9,*A13(HITS)
|
||
MOVE A9,*A13(MYPLYR) ;FOR WHEN T72 KILLS GRUNTS!
|
||
;OBJECTS ALL ON
|
||
MOVE *A13(TMPPTR),A0,L ;@MUTPTR,A0,L ;*A13(MUTPTR),A0,L
|
||
CALLA DELOBJ ;KILL OLD SHELL
|
||
|
||
MOVE *A13(TNKL),A8,L
|
||
MOVE A8,@T72PNTR,L ;T72 FLAG FOR CRUISE MISSILES
|
||
MOVE A13,A10
|
||
CLR A9 ;ARAB DUDE ON TANK
|
||
CREATE T72PID,HELP_ARW
|
||
CREATE T72PID,TTORSO
|
||
MOVE A0,*A13(KPTSO),L
|
||
MOVE A8,A9
|
||
MOVE *A13(BRL),A8,L
|
||
CREATE T72PID,GUNBARL
|
||
MOVE A0,*A13(KPGUN),L
|
||
MOVE A9,A8
|
||
SLEEPK 3
|
||
MOVI 60,A0 ;60
|
||
MOVE A0,*A13(MAXYMV)
|
||
MOVI 08000H,A0 ;8000
|
||
MOVE A0,*A13(YVL),L
|
||
TOID_TOP
|
||
MOVE @HALT,A0
|
||
JRZ TT2
|
||
CALLR LINE_UP ;ADJUST ALL PARTS TO MATCH TANK LEFT
|
||
SLEEPK 1
|
||
JRUC TOID_TOP
|
||
TT2
|
||
CALLR VULN
|
||
CALLR LINE_UP ;ADJUST ALL PARTS TO MATCH TANK LEFT
|
||
CALLR MV_TNK
|
||
MOVE A8,*A13(TNKL),L
|
||
SLEEPK 1
|
||
JRUC TOID_TOP
|
||
VULN
|
||
MOVE *A13(CNTR),A3
|
||
ANDI 07H,A3
|
||
DEC A3
|
||
JRNZ TMV3
|
||
;SWAP THIS MINE LAYER OID BETWEEN PLAYER/HELPER AND MINE LAYER
|
||
MOVK 1,A3
|
||
MOVI CLSPLYR|TYPHLPR|SUBLAY,A1
|
||
MOVE *A8(OID),A0
|
||
ANDI 0FFFFH,A0
|
||
CMPI CLSENMY|TYPT72,A0
|
||
JRZ TMV2
|
||
MOVK 3,A3
|
||
MOVI CLSENMY|TYPT72,A1
|
||
TMV2 MOVE A1,*A8(OID)
|
||
TMV3
|
||
MOVE A3,*A13(CNTR)
|
||
|
||
|
||
MOVE *A8(OID),A0
|
||
ORI 1,A0 ;NO COLLIDE WITH BULLETS
|
||
MOVE A0,*A8(OID)
|
||
MOVI 270,A0
|
||
CALLA RANDPER
|
||
JRNC TT2A
|
||
MOVE *A8(OID),A0 ;TANK CAN ABSORB HITS
|
||
ANDI 0FFC0H,A0
|
||
MOVE A0,*A8(OID)
|
||
TT2A RETS
|
||
HELP_ARW
|
||
CLR A6
|
||
CLR A7
|
||
CLR A0
|
||
CLR A1
|
||
MOVI 163,A3 ;133
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSNEUT,A5
|
||
MOVI NEARTNK,A2
|
||
CALLA BEGINOBJ2
|
||
CREATE T72PID,BLNK
|
||
MOVI 10*60,A9
|
||
SIT SLEEPK 1
|
||
MOVE A8,A0
|
||
MOVE @T72PNTR,A8,L
|
||
CALLA GETANIXY
|
||
;A2=Y,A3=X
|
||
ADDI [4AH,0],A2
|
||
ADDI [2FH,0],A3
|
||
MOVE *A0(OFLAGS),A4,W
|
||
CALLA GANISAG ;ADJUSTS TORSO
|
||
MOVE A0,A8
|
||
DSJ A9,SIT
|
||
JAUC DELOBJDIE
|
||
|
||
BLNK MOVK 12,A10
|
||
BK MOVE A8,A0
|
||
CALLA OBJON
|
||
SLEEPK 30
|
||
MOVE A8,A0
|
||
CALLA OBJOFF
|
||
SLEEPK 10
|
||
DSJ A10,BK
|
||
DIE
|
||
|
||
BTDIE
|
||
;ABSORBED ENOUGH HITS
|
||
;FLAME THIS BTR60
|
||
;IF STOPPED, FLAMES ON TOP
|
||
;IF MOVING, MOVE EVERYTHING
|
||
;DIE OFF
|
||
MOVE *A8(OID),A0
|
||
ORI 1,A0 ;NO COLLIDE WITH BULLETS
|
||
MOVE A0,*A8(OID)
|
||
CLR A0
|
||
MOVE *A13(MYTYP),A1
|
||
CMPI 4,A1 ;IF IN LOCK DOWN, STOP DEAD BTR60
|
||
JRZ NOZ
|
||
MOVE *A8(OXVEL),A0,L
|
||
JRZ NOZ
|
||
JRN Z10
|
||
MOVE *A13(MYTYP),A1
|
||
CMPI 5,A1
|
||
JRNC REGBD
|
||
JRUC Z1
|
||
Z10 MOVE *A13(MYTYP),A1
|
||
;7=FROM RIGHT TOP LANE
|
||
;8=FROM RIGHT BOTM LANE
|
||
CMPI 7,A1
|
||
JRC REGB
|
||
;ON ROAD
|
||
MOVI 0FFFB8000H,A0
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVK 2H,A10
|
||
JRUC NOZ2
|
||
REGBD
|
||
;FROM LEFT SIDE!
|
||
MOVI -0FFFB8000H,A0
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVK 2H,A10
|
||
JRUC NOZ2
|
||
REGB NEG A0
|
||
SLL 1,A0 ;SLOW IT DOWN UPON DEATH
|
||
NEG A0
|
||
JRUC NOZ
|
||
Z1 SLL 1,A0
|
||
NOZ
|
||
MOVE A0,*A8(OXVEL),L
|
||
|
||
;SHAKE SCRN
|
||
MOVK 19H,A10
|
||
NOZ2 CALLA SHAKER ;SHAKE SCRN
|
||
;SEND EXPLOSIONS OUT FROM BTR60
|
||
MOVK 6,A10 ;35
|
||
CREATE FUTUREPID,DOE ;CREATE0
|
||
CREATE FUTUREPID,MORE3 ;CREATE0
|
||
;START FLAMES ON BTR60
|
||
MOVE *A13(MYTYP),A10
|
||
;7=FROM RIGHT TOP LANE
|
||
;8=FROM RIGHT BOTM LANE
|
||
CMPI 5,A10
|
||
JRNC NOSLP
|
||
SLEEP 50 ;60
|
||
NOSLP
|
||
CREATE FUTUREPID,FLAMES
|
||
MOVE *A8(OIMG),A0,L
|
||
CMPI SCUD1,A0
|
||
JRZ STILL
|
||
MOVE *A8(OFLAGS),A4
|
||
MOVI BTRECK,A1
|
||
CALLA ANI
|
||
;SEND OUT FLAMING GRUNTS?
|
||
CMPI 5,A10
|
||
JRNC COUPLE
|
||
MOVK 12,A10
|
||
CREATE FUTUREPID,DO_FLMRS
|
||
;STILL ALLOW BULLET COLLISIONS
|
||
STILL MOVE *A8(OID),A0 ;TANK CAN ABSORB HITS
|
||
ANDI 0FFC0H,A0
|
||
MOVE A0,*A8(OID)
|
||
|
||
CREATE FUTUREPID,FIRESNDS
|
||
MOVI 40,A9 ;DO NO SCRTST FOR 30 TICKS FOR FLAMES!
|
||
JRUC SPDRD
|
||
COUPLE MOVK 1,A9
|
||
CREATE FUTUREPID,DO_F1
|
||
JRUC STILL
|
||
DO_FLMRS
|
||
MOVE A10,A0
|
||
CALLA RNDRNG0
|
||
ADDK 1,A0
|
||
MOVE A0,A9
|
||
DO_F1 MOVE @HALT,A0
|
||
JRZ DO_F1A
|
||
SLEEPK 1
|
||
JRUC DO_F1
|
||
DO_F1A
|
||
CREATE BOSSPID,MORTAR_GRNT
|
||
MOVI fpain1,a0
|
||
BTST 0,A9
|
||
JRZ DO_F2
|
||
MOVI fpain2,a0
|
||
DO_F2
|
||
calla ONESND
|
||
MOVK 19,A0
|
||
CALLA RNDRNG0
|
||
ADDK 3,A0
|
||
CALLA PRCSLP
|
||
DSJ A9,DO_F1
|
||
DIE
|
||
fpain1 .word >f965,20,>80f6,0 ;Player in pain
|
||
fpain2 .word >f960,20,>80f7,0 ;^
|
||
FIRESNDS
|
||
MOVK 3,A10
|
||
FS1 MOVI FIREDI,A0
|
||
CALLA ONESND
|
||
SLEEPK 30
|
||
DSJ A10,FS1
|
||
MOVE @WAVE,A0
|
||
CMPI 18,A0
|
||
JRZ XFS2
|
||
CMPI 17,A0
|
||
JRNZ FS2
|
||
XFS2 MOVE @HCOUNT,A0
|
||
ANDI 07H,A0
|
||
SLL 5,A0
|
||
ADDI YEAHS,A0
|
||
MOVE *A0,A0,L
|
||
CALLA ONESND
|
||
DIE
|
||
|
||
YEAHS .LONG YEAHHH,YEAHHH,WOO1,WOO2,TOTCARN
|
||
.LONG LOVEIT,WOO2,WOO1
|
||
|
||
;TOTCARN .WORD >F1F0,100,>80CF,0 ;"TOTAL CARNAGE"
|
||
TOTCARN .WORD >F9F0,130,>80CF,0 ;"TOTAL CARNAGE"
|
||
WOO1 .WORD >F9F0,>24,>80CB,0 ;WHHOOO
|
||
WOO2 .WORD >F9F0,>24,>80CC,0 ;"YEAH"
|
||
YEAHHH .WORD >F9F0,>64,>80FE,0 ;RACKUP YEAHHH
|
||
LOVEIT .WORD >F9F0,>78,>80CD,0 ;"I LOVE IT"
|
||
|
||
FS2 MOVI LOVEIT,A0
|
||
CALLA ONESND
|
||
DIE
|
||
|
||
TDIE
|
||
;ABSORBED ENOUGH HITS
|
||
;KILL THIS TANK
|
||
|
||
;STOP VELOCITY
|
||
;TURN OFF ALL COLLISIONS WITH MORE BULLETS, ETC.
|
||
;KILL TURRET PROCESS
|
||
;SHAKE VIOLENTLY, SEND PLUMES OF EXPLOSIONS OUT OF IT
|
||
;SHAKE SCREEN ALSO
|
||
;COVER WITH BIG EXPLOSIONS
|
||
;KILL ALL PIECES EXCEPT TANK BASE
|
||
;REPLACE TANK BASE WITH BLOWN UP VIEW
|
||
;DIE OFF
|
||
CLR A0
|
||
MOVE A0,@T72PNTR,L
|
||
MOVE A0,*A8(OYVEL),L
|
||
MOVE *A8(OID),A0
|
||
ORI 1,A0 ;NO COLLIDE WITH BULLETS
|
||
MOVE A0,*A8(OID)
|
||
MOVE *A13(KPGUN),A0,L
|
||
CALLA KILL
|
||
MOVI 29H,A10
|
||
CALLA SHAKER ;SHAKE SCRN
|
||
MOVI 21,A10 ;35
|
||
CREATE FUTUREPID,DOE2
|
||
MOVI 60,A9 ;14
|
||
CREATE FUTUREPID,MORE2 ;0 9/28
|
||
MOVE A13,A10
|
||
CREATE0 SHAKEME
|
||
|
||
SLEEP 200 ;UNTIL SHAKING IS DONE
|
||
CREATE FUTUREPID,ONME ;0 9/28
|
||
SLEEP 70 ;80
|
||
MOVE *A13(BRL),A0,L
|
||
CALLA DELOBJ
|
||
MOVE *A13(TRDLF),A0,L
|
||
CALLA DELOBJ
|
||
MOVE *A13(TRDRF),A0,L
|
||
CALLA DELOBJ
|
||
MOVE *A13(TRDLS),A0,L
|
||
CALLA DELOBJ
|
||
MOVE *A13(TRDRS),A0,L
|
||
CALLA DELOBJ
|
||
MOVE *A13(SHADR),A0,L
|
||
CALLA DELOBJ
|
||
MOVE *A13(SHADF),A0,L
|
||
CALLA DELOBJ
|
||
MOVE *A13(TNKL),A8,L
|
||
MOVE *A8(OFLAGS),A4
|
||
MOVI T72TNK2,A1
|
||
CALLA ANI
|
||
MOVE @WAVE,A0
|
||
; CMPI 33,A0
|
||
; JRZ CAPTURE
|
||
CMPI 10,A0
|
||
JRNZ CKST
|
||
;DECIDE WHICH PATH PLAYERS WILL TAKE, A OR B!
|
||
FAKET
|
||
;START SCROLL UP INTO DESERT
|
||
CREATE0 CHOOSE
|
||
CREATE0 CHOOSE2
|
||
SLEEP 90
|
||
CREATE0 DO_WINNER
|
||
|
||
MOVK 7,A9 ;UP TO 2ND LOCKDOWN IN DESERT
|
||
MOVE A9,@TARGET_NUM ;FIRST TARGET FOR SCROLL
|
||
CLR A9 ;A9=0 FOR UP, 1 FOR RGT
|
||
CREATE ARWPID,ONARRW ;TURN ON UP ARROW
|
||
SLEEP 30 ;140+120
|
||
|
||
MOVI PATHA,A10 ;INDICATES NEW SCROLL WITH SCRL TABLE
|
||
MOVE @WORLDTLY,A9,L
|
||
SRL 16,A9
|
||
ADDI 220,A9 ;130 ;A9=Y TARGET LINE TO TRIGGER SCROLL
|
||
PUSH A8
|
||
CLR A8 ;A8=0 MEANS NOT CHECKING FOR X TARGET
|
||
CREATE TARGPID,TARGET
|
||
MOVI 08000H,A0
|
||
MOVE A0,@HZSPD,L
|
||
PULL A8
|
||
SLEEP 65
|
||
MOVK 32,A0
|
||
MOVE A0,@ARWOFF ;BLINK ARROW A0 MORE TIMES THEN KILL!
|
||
CKST SLEEP 60
|
||
CALLA SCRTST
|
||
JRZ CKST
|
||
jauc DELOBJDIE ;DELETE DEAD T72 TANK SHELL
|
||
|
||
;CAPTURE
|
||
; SLEEP 120
|
||
; MOVK 2,A10 ;2ND RACKUP
|
||
; CREATE0 WAITTNT
|
||
; MOVI 1000H,A0
|
||
; MOVE A0,*A13(PROCID),W
|
||
; JRUC CKST
|
||
|
||
CHOOSE2
|
||
MOVE @WORLDTLX,A0,L
|
||
ADDI [129H-15,0],A0
|
||
MOVE @WORLDTLY,A1,L
|
||
ADDI [0E6H+5,0],A1
|
||
MOVI LOSSWAY,A2 ;IMG
|
||
JRUC CH2
|
||
CHOOSE
|
||
MOVE @WORLDTLX,A0,L
|
||
ADDI [0DH,0],A0
|
||
MOVE @WORLDTLY,A1,L
|
||
ADDI [0E6H,0],A1
|
||
MOVI TCWAY,A2 ;IMG
|
||
CH2 MOVI 150,A3 ;ZPOS
|
||
MOVI DMAWNZ|M_NOCOLL,A4 ;NON-ZERO VALUE
|
||
MOVI CLSDEAD,A5 ;ID
|
||
CLR A6 ;XVEL
|
||
MOVI -0C000H,A7 ;YVEL
|
||
CALLA BEGINOBJ2 ;NO WORLD ADDED IN
|
||
SLEEP 07CH/2
|
||
CLR A0
|
||
MOVE A0,*A8(OYVEL),L
|
||
MANY SLEEP 60
|
||
CALLA SCRTST
|
||
JRZ MANY
|
||
jauc DELOBJDIE ;KILL THIS WAY MESSAGE
|
||
|
||
ONME
|
||
;TURN ON BIG EXPLOSIONS
|
||
MOVK 18,A10 ;35
|
||
CREATE FUTUREPID,DOE
|
||
MOVE *A8(OXPOS),A9
|
||
MOVE *A8(OYPOS),A10
|
||
ADDK 18,A9
|
||
ADDK 13H,A10
|
||
MOVK 01FH,A11 ;3DH
|
||
FTP MOVI BEXP,A14
|
||
CALLA DO_ALL_STUFF
|
||
MOVE A0,A8
|
||
MOVI -35,B0
|
||
MOVI 35,B1
|
||
CALLA RANGRAND
|
||
ADD A9,A0
|
||
MOVE A0,*A8(OXPOS)
|
||
MOVI -15,B0
|
||
MOVI 040H,B1 ;3A
|
||
CALLA RANGRAND
|
||
ADD A10,A0
|
||
MOVE A0,*A8(OYPOS)
|
||
CREATE FUTUREPID,FRAIT
|
||
SLEEPK 3H
|
||
DSJ A11,FTP
|
||
DIE
|
||
DOE
|
||
MOVI EXP2HIB,A0
|
||
CALLA ONESND
|
||
SLEEPK 1
|
||
MOVI ALTEXP5,A0
|
||
CALLA ONESND
|
||
SLEEPK 5
|
||
DSJ A10,DOE
|
||
DIE
|
||
DOE2
|
||
; MOVI ALTEXP1,A0
|
||
; CALLA ONESND
|
||
; SLEEPK 1
|
||
; MOVI EXP2HIB,A0
|
||
; CALLA ONESND
|
||
; SLEEPK 5
|
||
|
||
|
||
MOVI EXP2HIB,A0
|
||
CALLA ONESND
|
||
SLEEPK 1
|
||
MOVI ALTEXP4,A0
|
||
CALLA ONESND
|
||
SLEEPK 8
|
||
|
||
DSJ A10,DOE2
|
||
DIE
|
||
ALTEXP4 .WORD >F575,>8,>80DF,0 ;ALT CHAN EXP - JEEPS
|
||
|
||
;SNDLST .LONG EXP2HIB,ALTEXP5,EXP1,EXP1L,EXP4,ALTEXP4,EXP5,SALTXP4
|
||
BEXP:
|
||
.LONG [3AH,0],[85H,0],XPLD1
|
||
.WORD 295,DMAWNZ|M_NOCOLL,CLSPLYR|TYPPLBL ;I WILL DELETE MYSELF
|
||
.LONG 0,0
|
||
|
||
MV_TNK MOVE @PCNT,A0
|
||
ANDI 03,A0
|
||
JRNZ RYT
|
||
MOVE *A13(MAXYMV),A5
|
||
JRNZ CRT
|
||
;MAYBE DECIDE TO DO SOMETHING
|
||
MOVI 60,A0
|
||
CALLA RANDPER
|
||
JRNC RYT
|
||
;TRY TO GO DOWN OR UP
|
||
MOVE A0,A5
|
||
MOVE A5,*A13(MAXYMV)
|
||
MOVI 8000H,A1
|
||
BTST 0,A0
|
||
JRZ CR0
|
||
MOVI -08000H,A1
|
||
CR0 MOVE A1,*A13(YVL),L
|
||
CRT DEC A5
|
||
MOVE A5,*A13(MAXYMV)
|
||
JRNZ MV0
|
||
CLR A0
|
||
MOVE A0,*A8(OYVEL),L
|
||
RETS
|
||
|
||
MV0
|
||
MOVE @WORLDTLY,A0,L
|
||
ADDI [15,A0],A0
|
||
MOVE A0,A2
|
||
ADDI [120,0],A2
|
||
MOVE *A8(OYVAL),A1,L
|
||
CMP A1,A0
|
||
JRC OK
|
||
;TANK IS AT TOP OF SCREEN
|
||
MOVE *A13(YVL),A0,L
|
||
JRNN OK1
|
||
OK0 CLR A0
|
||
MOVE A0,*A13(MAXYMV)
|
||
MOVE A0,*A8(OYVEL),L
|
||
RETS
|
||
OK CMP A1,A2
|
||
JRNC OK2
|
||
;TANK AT BOTTOM OF SCRN
|
||
MOVE *A13(YVL),A0,L
|
||
JRNN OK0
|
||
OK2 MOVE *A13(YVL),A0,L ;MOVI 08000H,A0
|
||
OK1 MOVE A0,*A8(OYVEL),L
|
||
BTST 0,A5
|
||
JRZ MV1
|
||
;TREAD SET 2
|
||
PUSH A8
|
||
MOVE *A13(TRDLF),A8,L
|
||
MOVE *A8(OFLAGS),A4
|
||
MOVI TNKTRED2A,A1
|
||
CALLA ANI
|
||
MOVE *A13(TRDRF),A8,L
|
||
MOVE *A8(OFLAGS),A4
|
||
MOVI TNKTRED2A,A1
|
||
CALLA ANI
|
||
MOVE *A13(TRDLS),A8,L
|
||
MOVE *A8(OFLAGS),A4
|
||
MOVI TNKTRED2,A1
|
||
CALLA ANI
|
||
MOVE *A13(TRDRS),A8,L
|
||
MOVE *A8(OFLAGS),A4
|
||
MOVI TNKTRED2,A1
|
||
CALLA ANI
|
||
PULL A8
|
||
RETS
|
||
MV1
|
||
;TREAD SET 1
|
||
PUSH A8
|
||
MOVE *A13(TRDLF),A8,L
|
||
MOVE *A8(OFLAGS),A4
|
||
MOVI TNKTRED1A,A1
|
||
CALLA ANI
|
||
MOVE *A13(TRDRF),A8,L
|
||
MOVE *A8(OFLAGS),A4
|
||
MOVI TNKTRED1A,A1
|
||
CALLA ANI
|
||
MOVE *A13(TRDLS),A8,L
|
||
MOVE *A8(OFLAGS),A4
|
||
MOVI TNKTRED1,A1
|
||
CALLA ANI
|
||
MOVE *A13(TRDRS),A8,L
|
||
MOVE *A8(OFLAGS),A4
|
||
MOVI TNKTRED1,A1
|
||
CALLA ANI
|
||
PULL A8
|
||
|
||
RYT RETS
|
||
|
||
GUNBARL
|
||
;A10=BIG TANK PROC PNTR
|
||
;A9=BIG TANK BASE IMG PNTR
|
||
;A8=BARREL IMG
|
||
;RANDOM SLEEP
|
||
;WHEN PLAYER IS BELOW ME, SHOOT!
|
||
;MAYBE DO A LUNGE
|
||
MOVE A9,*A13(PDATA),L
|
||
MOVE A10,*A13(PDATA+32),L ;BIG TANK PROC
|
||
GB2
|
||
SLEEPK 10
|
||
CALLA RANDPL
|
||
MOVE @PLYRAD,A0
|
||
ADDI PLYROBJS,A0
|
||
MOVE *A0,A0,L
|
||
MOVE *A0(OYPOS),A2
|
||
MOVE *A0(OXPOS),A1
|
||
;IF PLAYER IS DIRECTLY BELOW TANK, SHOOT!
|
||
MOVE *A8(OXPOS),A3
|
||
SUB A1,A3
|
||
ABS A3
|
||
CMPI 90,A3
|
||
JRNC NO1
|
||
;YES PLYR IS IN X RANGE
|
||
MOVE *A8(OYPOS),A3
|
||
ADDI 170,A3 ;110
|
||
SUB A2,A3
|
||
ABS A3
|
||
CMPI 80,A3 ;30
|
||
JRC HT2 ;BR=SHOOT DOWN AT PLYR
|
||
|
||
MOVE *A8(OYPOS),A3
|
||
CMP A2,A3
|
||
JRNC HT
|
||
SUB A2,A3
|
||
ABS A3
|
||
CMPI 60,A3 ;50
|
||
JRNC NO1
|
||
;YES A HIT!
|
||
HT
|
||
;12=LUNGE BACKWARD INTO PLAYER
|
||
MOVE *A13(PDATA+32),A0,L
|
||
MOVE *A0(YVL),A1,L
|
||
JRN GB2
|
||
MOVI -10000H,A1
|
||
MOVE A1,*A0(YVL),L
|
||
MOVI 50,A1
|
||
MOVE A1,*A0(MAXYMV)
|
||
JRUC GB2
|
||
HT2
|
||
;13=SHOOT DOWN INTO PLAYER
|
||
MOVK 2,B0
|
||
MOVK 7,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,A10
|
||
MOVE *A13(PDATA),A11,L ;BIG TANK BASE IMG PNTR
|
||
HT3
|
||
CREATE0 TBACK ;JAM BIG TANK BACKWARDS
|
||
CREATE0 TBLAST ;PLUME OF SMOKE
|
||
CREATE0 PJCTL ;PROJECTILE
|
||
MOVI GBLST,A9
|
||
JSRP FRANIMQ
|
||
SLEEPK 11
|
||
DSJ A10,HT3
|
||
SLEEP 90
|
||
JRUC GB2
|
||
|
||
NO1
|
||
;NO SHOOT OR LUNGE BACKWARD
|
||
;RANDOMLY DO SO THOUGH
|
||
MOVI 100,A0
|
||
CALLA RANDPER
|
||
JRNC GB2
|
||
JRC HT2
|
||
|
||
TBACK
|
||
;A11=TANK BASE IMG PNTR
|
||
MOVE *A11(OYPOS),A0
|
||
SUBK 3,A0
|
||
MOVE A0,*A11(OYPOS)
|
||
PUSH A13
|
||
MOVE *A11(OPLINK),A13,L
|
||
MOVE A11,A8
|
||
CALLA LINE_UP
|
||
PULL A13
|
||
SLEEPK 5
|
||
MOVE *A11(OYPOS),A0
|
||
ADDK 3,A0
|
||
MOVE A0,*A11(OYPOS)
|
||
PUSH A13
|
||
MOVE *A11(OPLINK),A13,L
|
||
MOVE A11,A8
|
||
CALLA LINE_UP
|
||
PULL A13
|
||
DIE
|
||
TBLAST
|
||
;A8=GUN BARREL
|
||
CALLA GETANIXY
|
||
CLR A6
|
||
CLR A7
|
||
ADDI 0880000H,A2 ;Y
|
||
MOVE A2,A1
|
||
MOVE A3,A0
|
||
MOVI 163,A3 ;133
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSDEAD,A5
|
||
MOVI T72BLAST1,A2
|
||
CALLA BEGINOBJ2
|
||
MOVI CANNON,A0
|
||
CALLA ONESND
|
||
MOVI TBLST,A9
|
||
jauc FRQDELDIE
|
||
|
||
GBLST .LONG T72TURET1
|
||
.WORD 2
|
||
.LONG T72TURET2
|
||
.WORD 3
|
||
.LONG T72TURET1
|
||
.WORD 1
|
||
.LONG 0
|
||
|
||
TBLST .LONG T72BLAST1
|
||
.WORD 3
|
||
.LONG T72BLAST2
|
||
.WORD 3
|
||
.LONG T72BLAST3
|
||
.WORD 3
|
||
.LONG T72BLAST4
|
||
.WORD 3
|
||
.LONG T72BLAST5
|
||
.WORD 3
|
||
.LONG T72BLAST6
|
||
.WORD 3
|
||
.LONG T72BLAST7
|
||
.WORD 3
|
||
.LONG T72BLAST8
|
||
.WORD 3
|
||
.LONG 0
|
||
|
||
PJCTL
|
||
;A8=GUN BARREL
|
||
SLEEPK 8
|
||
CALLA GETANIXY
|
||
CLR A6
|
||
MOVI 50000H,A7
|
||
ADDI 0880000H,A2 ;Y
|
||
SUBI 010000H,A3 ;X
|
||
MOVE A2,A1
|
||
MOVE A3,A0
|
||
MOVI 162,A3 ;133
|
||
MOVI DMAWNZ,A4
|
||
MOVI CLSENMY|TYPSHOT,A5
|
||
MOVI TNKBUL,A2
|
||
CALLA BEGINOBJ2
|
||
SLEEP 80
|
||
jauc DELOBJDIE
|
||
|
||
|
||
RANDPL
|
||
CALLA RANDOM
|
||
BTST 0,A0
|
||
JRZ PLY1
|
||
;WILL TRY TO LAZER PLAYER 2
|
||
MOVE @PLYROBJS+32,A1,L
|
||
JRZ PLY3
|
||
PLY2 MOVK 32,A0
|
||
MOVE A0,@PLYRAD
|
||
RETS
|
||
PLY1 MOVE @PLYROBJS,A1,L
|
||
JRZ PLY2
|
||
PLY3 CLR A0
|
||
MOVE A0,@PLYRAD
|
||
RETS
|
||
|
||
MOD_VELS
|
||
MOVE A0,*A8(OYVEL),L
|
||
MOVE *A13(BRL),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(TRDLF),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(TRDRF),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(TRDLS),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(TRDRS),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(SHADR),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(SHADF),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
RETS
|
||
|
||
;TNKL .EQU PDATA ;UHL TANK LEFT PTR
|
||
;BRL .EQU PDATA+32 ;UHL BIG GUN BARREL
|
||
;TRDLF .EQU PDATA+64 ;UHL TANK LEFT/FRONT TREAD
|
||
;TRDRF .EQU PDATA+96 ;UHL TANK RGT/FRONT TREAD
|
||
;TRDLS .EQU PDATA+128 ;UHL TANK LEFT/SIDE TREAD
|
||
;TRDRS .EQU PDATA+160 ;UHL TANK RGT/SIDE TREAD
|
||
;SHADR .EQU PDATA+192 ;UHL SHADOW ON RIGHT SIDE OF TANK
|
||
;SHADF .EQU PDATA+224 ;UHL SHADOW IN FRONT OF TANK
|
||
|
||
LINE_UP
|
||
CALLA GETANIXY
|
||
MOVE *A13(BRL),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
|
||
CALLA GETANIXY
|
||
MOVE *A13(TRDLF),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
ADDI 010000H,A3 ;SUB 1 FROM X
|
||
SUBI 010000H,A2 ;SUB 1 FROM Y
|
||
CALLA GANISAG
|
||
;ADJUST
|
||
CALLA GETANIXY
|
||
MOVE *A13(TRDRF),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
SUBI 020000H,A3 ;SUB 1 FROM X
|
||
SUBI 010000H,A2 ;SUB 1 FROM Y
|
||
CALLA GANISAG
|
||
;ADJUST
|
||
CALLA GETANIXY
|
||
MOVE *A13(TRDLS),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
;ADJUST
|
||
CALLA GETANIXY
|
||
MOVE *A13(TRDRS),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
SUBI 010000H,A3 ;SUB 1 FROM X
|
||
CALLA GANISAG
|
||
;ADJUST
|
||
CALLA GETANIXY
|
||
MOVE *A13(SHADR),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
ADDI 0230000H,A3 ;SUB 1 FROM X
|
||
SUBI 0150000H,A2 ;SUB 1 FROM Y
|
||
CALLA GANISAG
|
||
;DO FRONT SHADOW
|
||
CALLA GETANIXY
|
||
MOVE *A13(SHADF),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
ADDI 010000H,A3 ;SUB 1 FROM X
|
||
SUBI 010000H,A2 ;SUB 1 FROM Y
|
||
CALLA GANISAG
|
||
RETS
|
||
|
||
;
|
||
ONLIST .LONG 0,T1,T2,T3,T4,T5,T6,T7,T8
|
||
T1 ;WHOLE TANK
|
||
.LONG 0,0,T72TNK
|
||
.WORD 130,DMAWNZ|M_PIXSCAN,CLSENMY|TYPT72|SUBTK
|
||
.LONG 0,0
|
||
T2
|
||
.LONG 0,0,T72TURET1
|
||
.WORD 160,DMAWNZ|M_NOCOLL,CLSDEAD
|
||
.LONG 0,0
|
||
T3
|
||
;TREAD LFT FRONT
|
||
.LONG 0,0,TNKTRED1A
|
||
.WORD 130,DMAWNZ+M_NOCOLL,CLSDEAD
|
||
.LONG 0,0
|
||
T4 ;TREAD RGT FRONT
|
||
.LONG 0,0,TNKTRED1A
|
||
.WORD 130,DMAWNZ+M_FLIPH+M_NOCOLL,CLSDEAD
|
||
.LONG 0,0
|
||
T5 ;TREAD LEFT SIDE
|
||
.LONG 0,0,TNKTRED1
|
||
.WORD 130,DMAWNZ+M_NOCOLL,CLSDEAD
|
||
.LONG 0,0
|
||
T6 ;TREAD RGT SIDE
|
||
.LONG 0,0,TNKTRED1
|
||
.WORD 130,DMAWNZ+M_FLIPH+M_NOCOLL,CLSDEAD
|
||
.LONG 0,0
|
||
T7 ;SHAD RGT
|
||
.LONG 0,0,TNKSHAD2
|
||
.WORD 29,DMAWNZ+M_NOCOLL,CLSDEAD
|
||
.LONG 0,0
|
||
T8 ;SHAD FRONT
|
||
.LONG 0,0,TNKSHAD1
|
||
.WORD 29,DMAWNZ+M_NOCOLL,CLSDEAD
|
||
.LONG 0,0
|
||
|
||
;
|
||
;TREAD ANIMATION TABLES
|
||
;
|
||
TRDSDLL
|
||
.LONG TNKTRED1
|
||
.WORD FLIPBITS|02,0
|
||
.LONG TNKTRED2
|
||
.WORD 02
|
||
.LONG 0
|
||
TRDSDRL
|
||
.LONG TNKTRED1
|
||
.WORD FLIPBITS|02,(M_FLIPH)
|
||
.LONG TNKTRED2
|
||
.WORD 02
|
||
.LONG 0
|
||
TRDFTLL
|
||
.LONG TNKTRED1A
|
||
.WORD FLIPBITS|02,0
|
||
.LONG TNKTRED2A
|
||
.WORD 02
|
||
.LONG 0
|
||
TRDFTRL
|
||
.LONG TNKTRED1A
|
||
.WORD FLIPBITS|02,(M_FLIPH)
|
||
.LONG TNKTRED2A
|
||
.WORD 02
|
||
.LONG 0
|
||
|
||
|
||
SHAKEME
|
||
;A10=OPLINK OF IMG TO SHAKE (BIG TANK)
|
||
CREATE0 XYADJ2
|
||
CREATE0 XYCNTR
|
||
MOVE A10,A11
|
||
MOVE A0,*A13(PDATA),L
|
||
MOVE A9,A10
|
||
ADD A9,A10
|
||
ADD A9,A10
|
||
SH2
|
||
PUSH A13
|
||
MOVE A11,A13
|
||
MOVE *A13(TNKL),A8,L
|
||
CALLR LINE_UP
|
||
PULL A13
|
||
SLEEPK 1
|
||
DSJ A10,SH2
|
||
MOVE *A13(PDATA),A0,L
|
||
CALLA KILL
|
||
DIE
|
||
|
||
XYCNTR
|
||
;DRIFT TANK TOWARD CENTER
|
||
MOVK 2,B0
|
||
MOVK 4,B1
|
||
CALLA RANGRAND
|
||
SLL 16,A0
|
||
MOVE A0,A5
|
||
MOVK 2,B0
|
||
MOVK 4,B1
|
||
CALLA RANGRAND
|
||
SLL 16,A0
|
||
MOVE @WORLDTLX,A6,L
|
||
ADDI [170,0],A6
|
||
MOVE *A8(OXVAL),A1,L
|
||
CMP A6,A1
|
||
JRLT ADI
|
||
;TANK X TO RIGHT OF CENTER, SUBTRACT FROM TANK X
|
||
NEG A0
|
||
ADI ADD A0,A1
|
||
MOVE A1,*A8(OXVAL),L
|
||
|
||
MOVE @WORLDTLY,A6,L
|
||
ADDI [90,0],A6
|
||
MOVE *A8(OYVAL),A1,L
|
||
CMP A6,A1
|
||
JRLT SDI
|
||
;TANK Y BELOW CENTER OF SCRN, SUBTRACT FROM TANK Y
|
||
NEG A5
|
||
SDI ADD A5,A1
|
||
MOVE A1,*A8(OYVAL),L
|
||
SLEEP 42
|
||
JRUC XYCNTR
|
||
|
||
XYADJ2
|
||
;ADJUST TANK X/Y
|
||
;A9 = LENGTH OF JERK TIME
|
||
;A10=OPLINK OF IMG TO SHAKE (BIG TANK)
|
||
MOVE *A10(TNKL),A8,L
|
||
XY22
|
||
MOVI -8,B0
|
||
MOVK 8,B1
|
||
CALLA RANGRAND
|
||
MOVE *A8(OXPOS),A1
|
||
ADD A0,A1
|
||
MOVE A1,*A8(OXPOS)
|
||
MOVI -7,B0
|
||
MOVK 7,B1
|
||
CALLA RANGRAND
|
||
MOVE *A8(OYPOS),A1
|
||
ADD A0,A1
|
||
MOVE A1,*A8(OYPOS)
|
||
SLEEPK 3
|
||
DEC A9
|
||
JRNZ XY22
|
||
DIE
|
||
XYNEW
|
||
MOVI -3,B0
|
||
MOVK 3,B1
|
||
CALLA RANGRAND
|
||
MOVE *A8(OXPOS),A1
|
||
ADD A0,A1
|
||
MOVE A1,*A8(OXPOS)
|
||
MOVI -3,B0
|
||
MOVK 3,B1
|
||
CALLA RANGRAND
|
||
MOVE *A8(OYPOS),A1
|
||
ADD A0,A1
|
||
MOVE A1,*A8(OYPOS)
|
||
SLEEPK 3
|
||
DEC A9
|
||
JRNZ XY22
|
||
DIE
|
||
|
||
*****************************************************************************
|
||
|
||
.DEF STRT_AJP,ONEJEEP,SPAWN_JEEPS,JEEPCYC,SPAWN_JEEPS2
|
||
.DEF LIMO
|
||
|
||
LIMO2
|
||
CLR A0
|
||
MOVE A0,*A13(HITS),W
|
||
MOVI [500,0],A0
|
||
MOVI [150-110,0],A1
|
||
MOVI AKHSHAD,A2
|
||
MOVK 29,A3
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSDEAD,A5
|
||
MOVI [-4,0],A6
|
||
CLR A7
|
||
CALLA BEGINOBJ ;SHAD
|
||
MOVE A8,*A13(PDATA),L
|
||
|
||
MOVI [498,0],A0
|
||
MOVI [151-110,0],A1
|
||
MOVI AKHLIMO,A2
|
||
MOVI 09EH,A3 ;9E
|
||
MOVI DMAWNZ,A4
|
||
MOVI CLSENMY|TYPT72|SUBTK,A5
|
||
; MOVI [4,0],A6
|
||
; CLR A7
|
||
CALLA BEGINOBJ ;LIMO
|
||
MOVE A8,A9
|
||
|
||
MOVI [500,0],A0
|
||
MOVI [152-110,0],A1
|
||
MOVI AKHBITCH1,A2
|
||
MOVI 09EH,A3
|
||
MOVI DMAWNZ,A4
|
||
; MOVI CLSENMY|TYPT72|SUBTK,A5
|
||
; MOVI [4,0],A6
|
||
; CLR A7
|
||
CALLA BEGINOBJ ;BOOB
|
||
CREATE BOOBPID,ANIBOOB
|
||
CREATE BOOBPID,BOOBSND
|
||
MOVE A8,*A13(PDATA+32),L
|
||
|
||
MOVI [19AH,0],A0
|
||
MOVI [0E1H-110,0],A1
|
||
MOVI AKHTIREA,A2
|
||
MOVI 09DH,A3
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSDEAD,A5
|
||
; MOVI [4,0],A6
|
||
CLR A7
|
||
CALLA BEGINOBJ ;TIRE
|
||
CREATE BOOBPID,ANITIRE
|
||
MOVE A8,A10
|
||
|
||
MOVI [210H,0],A0
|
||
MOVI [0E1H-110,0],A1
|
||
MOVI AKHTIREA,A2
|
||
MOVI 09DH,A3
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
; MOVI CLSDEAD,A5
|
||
; MOVI [4,0],A6
|
||
CLR A7
|
||
CALLA BEGINOBJ ;TIRE
|
||
CREATE BOOBPID,ANITIRE
|
||
|
||
ZLSJP SLEEPK 1
|
||
CALLA VULN
|
||
MOVE @WORLDTLX,A0,L
|
||
MOVE *A9(OXVAL),A1,L
|
||
SUBI [300,0],A0
|
||
CMP A0,A1
|
||
JRNC ZLSJP
|
||
; CMPI [500,0],A1
|
||
; JRNC ZLSJP
|
||
JRUC ZOUT
|
||
|
||
LIMO
|
||
CLR A0
|
||
MOVE A0,*A13(HITS),W
|
||
MOVI [200-300,0],A0
|
||
MOVI [150,0],A1
|
||
MOVI AKHSHAD,A2
|
||
MOVK 29,A3
|
||
MOVI DMAWNZ|M_NOCOLL|M_FLIPH,A4
|
||
MOVI CLSDEAD,A5
|
||
MOVI [4,0],A6
|
||
CLR A7
|
||
CALLA BEGINOBJ ;SHAD
|
||
MOVE A8,*A13(PDATA),L
|
||
|
||
MOVI [198-300,0],A0
|
||
MOVI [151,0],A1
|
||
MOVI AKHLIMO,A2
|
||
MOVI 09EH,A3 ;9E
|
||
MOVI DMAWNZ|M_FLIPH,A4
|
||
MOVI CLSENMY|TYPT72|SUBTK,A5
|
||
MOVI [4,0],A6
|
||
CLR A7
|
||
CALLA BEGINOBJ ;LIMO
|
||
MOVE A8,A9
|
||
|
||
MOVI [200-300,0],A0
|
||
MOVI [152,0],A1
|
||
MOVI AKHBITCH1,A2
|
||
MOVI 09EH,A3
|
||
MOVI DMAWNZ|M_FLIPH,A4
|
||
MOVI CLSENMY|TYPT72|SUBTK,A5
|
||
MOVI [4,0],A6
|
||
CLR A7
|
||
CALLA BEGINOBJ ;BOOB
|
||
CREATE BOOBPID,ANIBOOB
|
||
CREATE BOOBPID,BOOBSND
|
||
MOVE A8,*A13(PDATA+32),L
|
||
|
||
MOVI [0A9H-300,0],A0
|
||
MOVI [0E3H-2,0],A1
|
||
MOVI AKHTIREA,A2
|
||
MOVI 09DH,A3
|
||
MOVI DMAWNZ|M_NOCOLL|M_FLIPH,A4
|
||
MOVI CLSDEAD,A5
|
||
MOVI [4,0],A6
|
||
CLR A7
|
||
CALLA BEGINOBJ ;TIRE
|
||
CREATE BOOBPID,ANITIRE
|
||
MOVE A8,A10
|
||
|
||
MOVI [011EH-300,0],A0
|
||
MOVI [0E3H-2,0],A1
|
||
MOVI AKHTIREA,A2
|
||
MOVI 09DH,A3
|
||
MOVI DMAWNZ|M_NOCOLL|M_FLIPH,A4
|
||
MOVI CLSDEAD,A5
|
||
MOVI [4,0],A6
|
||
CLR A7
|
||
CALLA BEGINOBJ ;TIRE
|
||
CREATE BOOBPID,ANITIRE
|
||
|
||
|
||
LSJP SLEEPK 1
|
||
CALLA VULN
|
||
MOVE @WORLDTLX,A0,L
|
||
MOVE *A9(OXVAL),A1,L
|
||
ADDI [400,0],A0
|
||
CMP A0,A1
|
||
JRC LSJP
|
||
CMPI [500,0],A1
|
||
JRNC LSJP
|
||
ZOUT MOVI BOOBPID,A0
|
||
CALLA KIL1C
|
||
CALLA DELOBJA8
|
||
MOVE A9,A0
|
||
CALLA DELOBJ
|
||
MOVE A10,A0
|
||
CALLA DELOBJ
|
||
MOVE *A13(PDATA),A0,L
|
||
CALLA DELOBJ
|
||
MOVE *A13(PDATA+32),A8,L
|
||
jauc DELOBJDIE
|
||
|
||
ANIBOOB
|
||
MOVI BOOBS,A9
|
||
JSRP FRANIMQ
|
||
SLEEPK 20
|
||
JRUC ANIBOOB
|
||
ahkbang .word >f9F7,10,>80ef,0 ;^ angry
|
||
BOOBSND SLEEPK 10
|
||
MOVI JEEPSND,A0
|
||
CALLA ONESNDOVR
|
||
SLEEP 03AH-40
|
||
MOVI ahkbang,A0
|
||
CALLA ONESNDOVR
|
||
DIE
|
||
|
||
BOOBS .LONG AKHBITCH2
|
||
.WORD 60-40
|
||
.LONG AKHBITCH4
|
||
.WORD 6
|
||
.LONG AKHBITCH1
|
||
.WORD 6
|
||
.LONG AKHBITCH3
|
||
.WORD 6
|
||
.LONG AKHBITCH5
|
||
.WORD 6
|
||
.LONG AKHBITCH6
|
||
.WORD 6
|
||
.LONG AKHBITCH5
|
||
.WORD 6
|
||
.LONG AKHBITCH6
|
||
.WORD 6
|
||
.LONG AKHBITCH3
|
||
.WORD 6
|
||
.LONG AKHBITCH4
|
||
.WORD 6
|
||
.LONG AKHBITCH1
|
||
.WORD 6
|
||
.LONG AKHBITCH3
|
||
.WORD 6
|
||
.LONG AKHBITCH4
|
||
.WORD 6
|
||
.LONG AKHBITCH1
|
||
.WORD 6
|
||
.LONG AKHBITCH2
|
||
.WORD 6
|
||
.LONG 0
|
||
|
||
ANITIRE
|
||
MOVI AKHTIREA,A1
|
||
MOVE *A8(OFLAGS),A4
|
||
CALLA ANI
|
||
SLEEPK 3
|
||
MOVI AKHTIREB,A1
|
||
MOVE *A8(OFLAGS),A4
|
||
CALLA ANI
|
||
SLEEPK 3
|
||
JRUC ANITIRE
|
||
|
||
STRT_AJP
|
||
CLR A0
|
||
MOVE A0,*A13(HITS),W
|
||
PUSH A8
|
||
MOVE *A8(OXVAL),A0,L
|
||
ADDI [50,0],A0
|
||
MOVE *A8(OYVAL),A1,L
|
||
MOVI JSHAD,A2
|
||
MOVK 29,A3
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSDEAD,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
MOVE A8,A10
|
||
CALLA BEGINOBJ2
|
||
CALLA OBJOFF
|
||
MOVE A8,A9
|
||
PULL A8
|
||
MOVE A8,A11
|
||
MOVE *A8(OXVAL),A0,L
|
||
ADDI [50,0],A0
|
||
MOVE *A8(OYVAL),A1,L
|
||
; SUBI [0,0],A1
|
||
MOVI JEEP,A2
|
||
MOVI 09EH,A3
|
||
MOVI DMAWNZ,A4
|
||
MOVI CLSENMY|TYPT72|SUBTK,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
MOVI JEEPP2,A0
|
||
CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
||
MOVE A0,*A8(OPAL),W ;STORE THE NEW PALETTE
|
||
MOVE A11,A0
|
||
CALLA DELOBJ
|
||
SJP SLEEPK 1
|
||
CALLA VULN
|
||
MOVE @WORLDTLX,A0,L
|
||
MOVE *A8(OXVAL),A1,L
|
||
ADDI [95,0],A1
|
||
CMP A0,A1
|
||
JRNC SJP
|
||
CALLA DELOBJA8
|
||
MOVE A10,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
|
||
SPAWN_HJP
|
||
;SPAWN A JEEP IS CALLED FROM 'WAVE OVERLORD' CODE WHICH DISPERSES
|
||
;BAD GUYS THROUGHOUT A WAVE
|
||
MOVE @HALT,A0
|
||
JRNZ TANK_OUT
|
||
MOVI 350,A0
|
||
CALLA RANDPER
|
||
JRNC TANK_OUT
|
||
;ANY RUNNING HOSTAGES OUT?
|
||
MOVI CLSNEUT|TYPHSTG|SUBRUN,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA EXISTOBJ
|
||
JRNZ TANK_OUT ;BR=RUNNRS OUT!
|
||
CREATE JEEPID,DOHJEEP ;OCCASIONALLY
|
||
RETS
|
||
|
||
SPAWN_JEEPS
|
||
;SPAWN A JEEP IS CALLED FROM 'WAVE OVERLORD' CODE WHICH DISPERSES
|
||
;BAD GUYS THROUGHOUT A WAVE
|
||
MOVE @HALT,A0
|
||
JRNZ TANK_OUT
|
||
MOVI 100,A0
|
||
CALLA RANDPER
|
||
JRNC TANK_OUT
|
||
;ANY RUNNING HOSTAGES OUT?
|
||
MOVI CLSNEUT|TYPHSTG|SUBRUN,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA EXISTOBJ
|
||
JRNZ TANK_OUT ;BR=RUNNRS OUT!
|
||
CREATE JEEPID,DOJEEP ;FUTUREPID ;OCCASIONALLY
|
||
TANK_OUT:
|
||
RETS
|
||
SPAWN_JEEPS2
|
||
MOVE @HALT,A0
|
||
JRNZ TANK_OUT
|
||
MOVE @LANES,A2
|
||
CMPI 0FH,A2
|
||
JRZ TANK_OUT
|
||
SPJ2 MOVK 3,A0
|
||
CALLA RNDRNG0
|
||
ANDI 03H,A0
|
||
BTST A0,A2
|
||
JRNZ SPJ2
|
||
MOVE A0,A9
|
||
SLL 3,A0
|
||
ADDI STAB,A0
|
||
MOVB *A0,A0
|
||
OR A0,A2
|
||
MOVE A2,@LANES
|
||
CREATE JEEPID,DOJEEP2
|
||
RETS
|
||
STAB .BYTE 1,2,4,8
|
||
STAB2 .BYTE 0EH,0DH,0BH,07H
|
||
.EVEN
|
||
JPX .LONG [208,214],[0,4],[194,200]
|
||
JPX2 .WORD 45H,09FH,0F8H,014CH
|
||
DOJEEP2
|
||
;LOCK DOWN JEEP SPAWN CODE
|
||
MOVE A9,*A13(LANE),W
|
||
MOVI JEEPS2,A2
|
||
CALLA GET_WVADDR
|
||
MOVE *A0(16),A1,W ;DEC WAVE RAM CNT FOR THIS JEEP
|
||
DEC A1
|
||
MOVE A1,*A0(16),W
|
||
JRNZ DOJ2
|
||
MOVE @WAVE,A0
|
||
SUBK 7,A0
|
||
JRZ DOJ2
|
||
CREATE0 GOBK
|
||
;CMBAK WITH A WARP DISC!
|
||
DOJ2
|
||
SLL 4,A9
|
||
ADDI JPX2,A9
|
||
MOVE *A9+,A10
|
||
SLL 16,A10
|
||
; MOVI [1,04000H],B0
|
||
; MOVI [3,01000H],B1
|
||
MOVI [1,08000H],B0
|
||
MOVI [3,00000H],B1
|
||
CALLA RANGRAND
|
||
MOVE A0,A11 ;VERT SPEED FOR JEEP
|
||
MOVI 100,A0
|
||
CALLA RNDRNG0
|
||
MOVE A0,A9
|
||
CALLA PRCSLP
|
||
CLR A0
|
||
MOVE A0,*A13(HITS),W
|
||
MOVE A0,*A13(KPTSOBJ),L
|
||
MOVE A0,*A13(KPTSO),L
|
||
BTST 0,A9
|
||
JRZ DOWNJP
|
||
;THIS JEEP WILL GO UP SCREEN
|
||
NEG A11
|
||
MOVE A11,A7 ;VERT SPEED FOR JEEP
|
||
;A10=X POS
|
||
MOVE A10,A0
|
||
PUSH A0
|
||
MOVI [240,0],A1
|
||
MOVI JSHAD2,A2
|
||
MOVK 29,A3
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSDEAD,A5
|
||
CLR A6
|
||
CALLA BEGINOBJ
|
||
MOVE A8,A10
|
||
|
||
PULL A0
|
||
PUSH A0
|
||
MOVI [240,0],A1
|
||
MOVI JEEPDRVRS,A2
|
||
MOVI 158,A3
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSDEAD,A5
|
||
CLR A6
|
||
MOVE *A10(OYVEL),A7,L
|
||
CALLA BEGINOBJ
|
||
CALLA OBJOFF
|
||
MOVE A8,A9
|
||
|
||
PULL A0
|
||
MOVI [240,0],A1
|
||
MOVI JEEP2,A2
|
||
JRUC ALLJP
|
||
|
||
DOWNJP
|
||
;TOP DOWN
|
||
;A10=X POS
|
||
;A11=SPEED
|
||
|
||
MOVE A11,A7 ;VERTICAL SPEED
|
||
MOVE A10,A0
|
||
PUSH A0
|
||
MOVI [-125,0],A1
|
||
MOVI JSHAD,A2
|
||
MOVK 29,A3
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSDEAD,A5
|
||
CLR A6
|
||
CALLA BEGINOBJ
|
||
MOVE A8,A10
|
||
|
||
PULL A0
|
||
PUSH A0
|
||
MOVI [-125,0],A1
|
||
MOVI JEEPDRVRS,A2
|
||
MOVE @PCNT,A3
|
||
BTST 0,A3
|
||
JRZ ZJPZ
|
||
MOVI FNDSIT,A2
|
||
ZJPZ MOVI 158,A3
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSDEAD,A5
|
||
CLR A6
|
||
MOVE *A10(OYVEL),A7,L
|
||
CALLA BEGINOBJ
|
||
MOVE A8,A9
|
||
|
||
PULL A0
|
||
MOVI [-125,0],A1
|
||
MOVI JEEP,A2
|
||
ALLJP
|
||
MOVI 09EH,A3
|
||
MOVI DMAWNZ,A4
|
||
MOVI CLSENMY|TYPT72|SUBTK,A5
|
||
CLR A6
|
||
MOVE *A10(OYVEL),A7,L
|
||
CALLA BEGINOBJ
|
||
CLR A0
|
||
MOVE A0,*A13(MYPLYR)
|
||
MOVI JEEPSND,A0
|
||
CALLA ONESND
|
||
JRUC JTOP
|
||
|
||
GOBK SLEEP 260
|
||
MOVK 1,A0
|
||
MOVE A0,@ICONS_DN
|
||
MOVI FIXPID,A0 ;GET RID OF SPECIAL GUN STUFF
|
||
CALLA KIL1C
|
||
MOVK 11,A10 ;NO DOUBLE SCORE BONUS
|
||
MOVI [-16,0],A9 ;Y ADD IN VALUE
|
||
CREATE0 ZONE_TXT2
|
||
;DISPLAY GOT AWAY #
|
||
SLEEPK 30
|
||
MOVI 3E3EH,A6 ;COLOR CYCLE DIGITS
|
||
MOVI GWAY,A8
|
||
MOVI [0B4H,0BBH],A9 ;SCRN Y/X
|
||
MOVI RD15FONT,A11 ;FONT TABLE
|
||
MOVK 2,A10 ;Y,X SPACING BETWEEN CHARCTERS
|
||
CLR A0
|
||
MOVE A0,@WRLD
|
||
JSRP STRCNRMO
|
||
;DIGITS
|
||
MOVE @GET_AWAY,A8
|
||
JRNZ FX
|
||
;SOMEBODY WAS PERFECT!
|
||
INC A8 ;PSYCHE!
|
||
FX CALLA HEXTOASC
|
||
MOVI 3E3EH,A6 ;COLOR CYCLE DIGITS
|
||
MOVI [0B4H,0118H],A9 ;SCRN Y/X
|
||
CLR A0
|
||
JSRP STRLNRMO
|
||
|
||
.REF DO_DESTROY
|
||
JSRP DO_DESTROY
|
||
|
||
SLEEP 240
|
||
CREATE WARPPID,GOBACK
|
||
DIE
|
||
GWAY .BYTE "JEEPS ESCAPED:",0
|
||
.EVEN
|
||
|
||
SPAWN_MOM:
|
||
MOVE @HALT,A0
|
||
JRNZ TANK_OUT
|
||
MOVE @SKIPR_CNT,A2
|
||
MOVK 17,A3
|
||
CMP A3,A2
|
||
JRGT TANK_OUT
|
||
CREATE shawnpid,DOMOM
|
||
RETS
|
||
MPX .LONG [208,214],[80,300],[180,230]
|
||
DOMOM
|
||
MOVI MOM,A2
|
||
CALLA GET_WVADDR
|
||
MOVE *A0(16),A1,W ;DEC WAVE RAM CNT FOR THIS MOM
|
||
DEC A1
|
||
MOVE A1,*A0(16),W
|
||
JRNZ DOM1
|
||
MOVE @WAVE,A1
|
||
CMPI 31,A1
|
||
JRNZ DOM1
|
||
;TIME TO CAPTURE PLAYER
|
||
PUSH A0
|
||
CREATE0 DOLR
|
||
MOVI 20*60,A0
|
||
MOVE @PLYRPRCS,A1,L
|
||
JRZ HI
|
||
MOVE A0,*A1(DELYDET)
|
||
HI MOVE @PLYRPRCS+32,A1,L
|
||
JRZ HI2
|
||
MOVE A0,*A1(DELYDET)
|
||
HI2
|
||
PULL A0
|
||
DOM1
|
||
MOVE *A0(32),A0 ;GET JEEPS RANGE PNTR
|
||
SLL 5,A0
|
||
ADDI MPX,A0
|
||
MOVE *A0+,A1
|
||
MOVE *A0,A2
|
||
SLL 16,A1
|
||
SLL 16,A2
|
||
MOVE A1,B1
|
||
MOVE A2,B0
|
||
CALLA RANGRAND
|
||
MOVE A0,A8
|
||
SRL 16,A8
|
||
;A8=CORRECT X
|
||
move @WORLDTLX+16,a0
|
||
ADD A0,A8
|
||
move @WORLDTLY+16,a9
|
||
subi 120,a9
|
||
; MOVI bloodsnd,a0
|
||
; calla ONESND
|
||
JAUC spidmom_start
|
||
ermtune .word >f3fF,10,>8004,0 ;Electrocution tune
|
||
DOLR SLEEP 60
|
||
movi CLSENMY+TYPSL,a0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA EXISTOBJ
|
||
JRNZ DOLR
|
||
CREATE0 DO_WINNER
|
||
SLEEP 160
|
||
CLR A0
|
||
MOVE A0,@EN_CURRENT,L ;CURRENT RECT LIST
|
||
MOVE A0,@SITLST,L
|
||
MOVK 32,A0
|
||
MOVE A0,@ICONS_DN
|
||
CALLA DOLORD
|
||
SLEEP 290
|
||
MOVK 1,A0
|
||
MOVE A0,@HALT
|
||
MOVK 18,A10 ;YOU ARE CAPTURED
|
||
MOVI [-16,0],A9 ;Y ADD IN VALUE
|
||
CREATE0 ZONE_TXT2
|
||
SLEEP 120
|
||
MOVI WRPSND,A0
|
||
CALLA ONESND
|
||
|
||
.REF INIT_SCORE,FADE_STRT,IRQSKYE,SCRLUP,TAUNTOUT,SCORE_FLAG
|
||
|
||
MOVK 1,A0
|
||
MOVE A0,@TAUNTOUT
|
||
CALLA INIT_SCORE ;TURNS ON REGULAR IMAGES FOR SCORES
|
||
CREATE0 TUNEDELAY
|
||
CLR A0
|
||
MOVE A0,@SCORE_FLAG
|
||
CREATE 3100,SCRLUP
|
||
|
||
MOVI PALDNO2,A11
|
||
JSRP FADE_STRT
|
||
; CALLA CLNBPAL
|
||
;FRY PLAYERS
|
||
|
||
CLR A1
|
||
MOVE A1,@IRQSKYE
|
||
; movk 10,a0
|
||
; move a0,@WORLDTLX+16
|
||
; movi 960,a0
|
||
; move a0,@WORLDTLY+16
|
||
CLR A8
|
||
MOVE A8,@HALT
|
||
JAUC fry_plyrs
|
||
|
||
TUNEDELAY
|
||
SLEEP 80
|
||
movi ermtune,a0
|
||
calla ONESND
|
||
DIE
|
||
|
||
PALDNO2 .LONG 5*32*32+5*32+5,0
|
||
;bloodsnd .word >faa0,20,>809a,0
|
||
JPY .LONG [70,100],[100,140]
|
||
|
||
JEEP_ROAD
|
||
;5=FROM LEFT TOP LANE
|
||
;6=FROM LEFT BOTM LANE
|
||
;7=FROM RIGHT TOP LANE
|
||
;8=FROM RIGHT BOTM LANE
|
||
MOVE A9,*A13(MYTYP)
|
||
MOVI JEEPSND,A0
|
||
CALLA ONESND
|
||
SLL 5,A9
|
||
MOVI JWY,A2
|
||
ADD A9,A2
|
||
MOVE *A2,A10,L
|
||
MOVI [3,01000H],B0
|
||
MOVI [4,02000H],B1
|
||
; MOVI [2,0F000H],B0
|
||
; MOVI [4,08000H],B1
|
||
CALLA RANGRAND
|
||
MOVE A0,A6 ;HORZ SPEED FOR JEEP
|
||
JRUC INHJP
|
||
JWY .LONG [0FF72H,0],[0FF72H,0],[0FFD0H,0],[0FFD0H,0],[024H,0]
|
||
.LONG [24H,0],[083H,0],[06H,0],[06BH,0]
|
||
|
||
DOHJEEP
|
||
;LOCK DOWN JEEP SPAWN CODE
|
||
CLR A0
|
||
MOVE A0,*A13(LANE),W
|
||
MOVI HJEEP,A2
|
||
CALLA GET_WVADDR
|
||
MOVE *A0(16),A1,W ;DEC WAVE RAM CNT FOR THIS JEEP
|
||
DEC A1
|
||
MOVE A1,*A0(16),W
|
||
MOVE *A0(32),A0 ;GET JEEPS RANGE PNTR
|
||
SLL 5,A0
|
||
ADDI JPY,A0
|
||
MOVE *A0+,A1
|
||
MOVE *A0,A2
|
||
SLL 16,A1
|
||
SLL 16,A2
|
||
MOVE A1,B1
|
||
MOVE A2,B0
|
||
;TURN ON A HZ JEEP AND SEND HIM AT PLAYER
|
||
CALLA RANGRAND
|
||
MOVE A0,A10
|
||
MOVI [2,01000H],B0
|
||
MOVI [3,0a000H],B1
|
||
; MOVI [1,0F000H],B0
|
||
; MOVI [3,08000H],B1
|
||
CALLA RANGRAND
|
||
MOVE A0,A6 ;HORZ SPEED FOR JEEP
|
||
INHJP
|
||
CLR A0
|
||
MOVE A0,*A13(HITS),W
|
||
MOVE A0,*A13(KPTSOBJ),L
|
||
MOVE A0,*A13(KPTSO),L
|
||
;
|
||
MOVI [-100,0],A0
|
||
MOVE A10,A1
|
||
MOVI JEEP4,A2
|
||
MOVI 09EH,A3
|
||
MOVI DMAWNZ|M_FLIPH,A4
|
||
MOVI CLSENMY|TYPT72|SUBTK,A5
|
||
CLR A7
|
||
CALLA BEGINOBJ
|
||
CLR A0
|
||
MOVE A0,*A13(MYPLYR)
|
||
SLEEPK 3
|
||
MOVE *A13(MYTYP),A0
|
||
JRNZ HJTOP
|
||
JSRP GET_HORN
|
||
HJTOP
|
||
SLEEPK 1
|
||
CALLA VULN
|
||
MOVE *A8(OXVAL),A1,L
|
||
MOVE @WORLDTLX,A0,L
|
||
ADDI [400,0],A0
|
||
CMP A0,A1
|
||
JRC HJTOP
|
||
;5=FROM LEFT TOP LANE
|
||
;6=FROM LEFT BOTM LANE
|
||
;7=FROM RIGHT TOP LANE
|
||
;8=FROM RIGHT BOTM LANE
|
||
MOVE *A13(MYTYP),A0
|
||
CLR A1
|
||
CMPI 5,A0
|
||
JRZ TOPF
|
||
CMPI 6,A0
|
||
JANZ DELOBJDIE
|
||
MOVE A1,@BOTFLG
|
||
jauc DELOBJDIE
|
||
TOPF
|
||
MOVE A1,@TOPFLG
|
||
jauc DELOBJDIE
|
||
|
||
GET_HORN
|
||
MOVI HORNSND,A0
|
||
MOVE @PCNT,A1
|
||
BTST 0,A1
|
||
JRZ DOS
|
||
MOVI HORN2,A0
|
||
CALLA ONESND
|
||
SLEEPK 30
|
||
JRUC DS1
|
||
DOS CALLA ONESND
|
||
SLEEPK 15
|
||
DS1 MOVI JEEPSND,A0
|
||
CALLA ONESND
|
||
RETP
|
||
|
||
|
||
|
||
DOJEEP
|
||
;LOCK DOWN JEEP SPAWN CODE
|
||
MOVI JEEPS,A2
|
||
CALLA GET_WVADDR
|
||
MOVE *A0(16),A1,W ;DEC WAVE RAM CNT FOR THIS JEEP
|
||
DEC A1
|
||
MOVE A1,*A0(16),W
|
||
MOVE *A0(32),A0 ;GET JEEPS RANGE PNTR
|
||
SLL 5,A0
|
||
ADDI JPX,A0
|
||
MOVE *A0+,A1
|
||
MOVE *A0,A2
|
||
SLL 16,A1
|
||
SLL 16,A2
|
||
MOVE A1,B1
|
||
MOVE A2,B0
|
||
;TURN ON A JEEP AND SEND HIM DOWN AT PLAYER
|
||
|
||
CALLA RANGRAND
|
||
MOVE A0,A10
|
||
MOVI [1,0a000H],B0 ;11/22/91
|
||
MOVI [3,08000H],B1
|
||
; MOVI [1,04000H],B0
|
||
; MOVI [2,0E000H],B1
|
||
CALLA RANGRAND
|
||
MOVE A0,A9 ;VERT SPEED FOR JEEP
|
||
ONEJEEP
|
||
;CKFORY4A
|
||
;A10=X POS
|
||
;A9=SPEED
|
||
|
||
CLR A0
|
||
MOVE A0,*A13(HITS),W
|
||
MOVE A0,*A13(KPTSOBJ),L
|
||
MOVE A0,*A13(KPTSO),L
|
||
MOVE A0,*A13(LANE),W
|
||
|
||
MOVE A9,A7 ;VERTICAL SPEED
|
||
MOVE A10,A0
|
||
PUSH A0
|
||
MOVI [-125,0],A1
|
||
MOVI JSHAD,A2
|
||
MOVK 29,A3
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSDEAD,A5
|
||
CLR A6
|
||
CALLA BEGINOBJ
|
||
MOVE A8,A10
|
||
|
||
PULL A0
|
||
PUSH A0
|
||
MOVI [-125,0],A1
|
||
MOVI JEEPDRVRS,A2
|
||
MOVE @PCNT,A3
|
||
BTST 0,A3
|
||
JRZ JPZ
|
||
MOVI FNDSIT,A2
|
||
JPZ MOVI 158,A3
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSDEAD,A5
|
||
CLR A6
|
||
MOVE *A10(OYVEL),A7,L
|
||
CALLA BEGINOBJ
|
||
MOVE A8,A9
|
||
|
||
PULL A0
|
||
MOVI [-125,0],A1
|
||
MOVI JEEP,A2
|
||
MOVI 09EH,A3
|
||
MOVI DMAWNZ,A4
|
||
MOVI CLSENMY|TYPT72|SUBTK,A5
|
||
CLR A6
|
||
MOVE *A10(OYVEL),A7,L
|
||
CALLA BEGINOBJ
|
||
CLR A0
|
||
MOVE A0,*A13(MYPLYR)
|
||
SLEEPK 3
|
||
JSRP GET_HORN
|
||
JTOP
|
||
SLEEPK 1
|
||
CALLA VULN
|
||
MOVE *A8(OYVAL),A1,L
|
||
JRNN J200
|
||
MOVE *A8(OYVEL),A0,L
|
||
JRN GAWAY ;BR=GOING UP AND OFF SCRN
|
||
JRUC JTOP
|
||
J200
|
||
MOVE @WORLDTLY,A0,L
|
||
ADDI [265,0],A0
|
||
CMP A0,A1
|
||
JRC JTOP
|
||
GAWAY MOVE @GET_AWAY,A0
|
||
ADDK 1,A0
|
||
MOVE A0,@GET_AWAY ;JEEPS GOT AWAY
|
||
CLNUP MOVE *A13(LANE),A0
|
||
MOVE @LANES,A1
|
||
SLL 3,A0
|
||
ADDI STAB2,A0
|
||
MOVB *A0,A0
|
||
AND A0,A1
|
||
MOVE A1,@LANES
|
||
MOVE *A8(OIMG),A1,L
|
||
CALLA DELOBJA8
|
||
CMPI JEEP4,A1
|
||
JRZ HZJP
|
||
MOVE A9,A0
|
||
CALLA DELOBJ
|
||
MOVE A10,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
HZJP
|
||
;5=FROM LEFT TOP LANE
|
||
;6=FROM LEFT BOTM LANE
|
||
;7=FROM RIGHT TOP LANE
|
||
;8=FROM RIGHT BOTM LANE
|
||
MOVE *A13(MYTYP),A0
|
||
CLR A1
|
||
CMPI 5,A0
|
||
JRZ TOPF2
|
||
CMPI 6,A0
|
||
JANZ SUCIDE
|
||
MOVE A1,@BOTFLG
|
||
DIE
|
||
TOPF2
|
||
MOVE A1,@TOPFLG
|
||
DIE
|
||
JPDIE
|
||
;JEEP WILL DIE
|
||
;SHAKE SCRN
|
||
CLR A0
|
||
MOVE A0,*A8(OYVEL),L
|
||
|
||
MOVE A0,*A8(OXVEL),L
|
||
|
||
MOVE *A8(OIMG),A1,L
|
||
CMPI JEEP4,A1
|
||
JRZ AHZJP
|
||
|
||
|
||
MOVE A0,*A9(OYVEL),L
|
||
MOVE A0,*A10(OYVEL),L
|
||
AHZJP MOVE *A8(OFLAGS),A0
|
||
ORI M_NOCOLL,A0
|
||
MOVE A0,*A8(OFLAGS)
|
||
CREATE FUTUREPID,SENDGRN
|
||
PUSH A10
|
||
MOVK 1,A10 ;3
|
||
CREATE0 DOE
|
||
PULL A10
|
||
SLEEPK 30
|
||
MOVI CRASH,A0
|
||
CALLA ONESND
|
||
JRUC CLNUP
|
||
|
||
CRASH .WORD >FCF5,68,>8038,0 ;CAR CRASH EXPLOSION
|
||
|
||
;KPTSOBJ .EQU PDATA ;UHL
|
||
;HITS .EQU PDATA+336 ;UHW HITS ABSORBED
|
||
;USED IN ARAB.ASM
|
||
;CNTR .EQU PDATA+464 ;UHW
|
||
;FROM T72 - USED IN VULN - VULNERABILITY
|
||
.BSS PALTMP1,4*16*2 ;ALLOCATE 2 X COLOR AREA IN RAM
|
||
JEEPCYC
|
||
MMTM SP,A8,A9,A10,A11
|
||
MOVI JEEPP,A8 ;PAL NAME
|
||
MOVI PALTMP1,A9 ;RAM AREA
|
||
MOVI [38,40],A10 ;BEGIN/END COLOR #
|
||
MOVK 4,A11 ;RATE IN TICKS
|
||
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
||
MMFM SP,A8,A9,A10,A11
|
||
RETS
|
||
|
||
.END
|
||
|
||
|
||
|