4879 lines
90 KiB
NASM
4879 lines
90 KiB
NASM
|
;WHAT IF CRUISE MISSILIES ARE COMING DURING SECRET PATH ENTER?
|
|||
|
**************************************************************
|
|||
|
*
|
|||
|
* Software: Mark Turmell
|
|||
|
* Initiated: 9/1/90
|
|||
|
*
|
|||
|
* Modified: !
|
|||
|
*
|
|||
|
* COPYRIGHT (C) 1991 WILLIAMS ELECTRONICS GAMES, INC.
|
|||
|
*
|
|||
|
*.Last mod - 12/13/91 20:05
|
|||
|
**************************************************************
|
|||
|
.TITLE 'MINE.ASM'
|
|||
|
.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\gsp.inc"
|
|||
|
.INCLUDE "\VIDEO\SYS\MACROS.HDR" ;MACROS DEFINITIONS
|
|||
|
.INCLUDE "IMGTBL.GLO"
|
|||
|
.INCLUDE "BGNDTBL.GLO" ;BACKGROUND EQUATES
|
|||
|
.INCLUDE "GAME.EQU"
|
|||
|
.include "audit.equ"
|
|||
|
|
|||
|
;SOUNDS
|
|||
|
|
|||
|
.REF ALTEXP3,THNKU,WOO2,EXP2,EXP2HI,SETDWN,ALTEXP5,SALTXP4
|
|||
|
.REF CRSSND,TRGTSND,SCASH3,SQUISH,MTING
|
|||
|
.REF WRPSND,ONESNDOVR
|
|||
|
;SYMBOLS EXTERNALLY DEFINED
|
|||
|
|
|||
|
.REF HSTGS_LOST,HSTGSET,RNDRNG0,LHLPS,BLAKOUT,RESTUFF_AUTOERASE
|
|||
|
.REF BONE,HZSPD,WNDWON,RUNIN,SHLD1,SHLD2,GAMSTATE,RINGS
|
|||
|
.REF DOSWAP,JFLAMES,DO_NEUTS,timerp1,timerp2
|
|||
|
.REF CYCLE_TABLE,FRANIM,FRANIMQ
|
|||
|
.ref PLYROBJS,P1DATA,P2DATA,RANGRAND,CIRCL_FLG
|
|||
|
.REF RANDPER,TARGET_NUM,ONARRW,TARGET,ARWOFF,OBJON,OBJOFF,OUT_FLG
|
|||
|
.REF XYSEEK2,SCRADD2,IP,DO_ALL_STUFF,FLASHME,CHUNK_OBJ,EN_CURRENT
|
|||
|
.REF SCRTST,HULK_DN,SENDH_GROUP,FIEND,GETADIR2,XYSKOBJ,DOLORD
|
|||
|
.REF GET_VALID_XY,STATUS,WAVE,CHK_BULL,BOOM3,PCNT
|
|||
|
.REF SBOMB,SQUARES,SQR_FLG,KILBGND,BGND_UD1,CRT_AHMD,PCTOT,XOUT0
|
|||
|
.REF SCORE_FLAG,IRQSKYE,BAKMODS,OFFSCRN,CLNPAL,AFTR_WRP
|
|||
|
.REF FB_FADEOUT,FADEOUT,FB_FADEIN,SETC2,FADEIN,ZONE_TXT2,COLCYC
|
|||
|
.REF BCURRENT,RECT1,ENEMY_RECT,CURRENT,JOY_UPDATE,P1CTRL,P2CTRL
|
|||
|
.REF BRECT1,ENRECT1,ERECT1,STRT_G,PLYRPRCS,SCRIPTPLAY
|
|||
|
.REF ICN3,ICLIST,SEND_ICON,SHOTKILL,CKFORY,ENRECT5,ERECT5,ICONS_DN
|
|||
|
.REF SEND_GROUP,JUMPER,RANDOM,T72PNTR,GETCPNT,PCINFO,ICN1
|
|||
|
.REF HALT,LASTPC,BOOMS
|
|||
|
.ref aud_addnumplyrs
|
|||
|
|
|||
|
;SYMBOLS DEFINED IN THIS FILE
|
|||
|
|
|||
|
.DEF BLSTS2A,INEXP
|
|||
|
.DEF AIRRECT2A,AIRBRECT2
|
|||
|
.DEF HSTGLST,HSTGLST2,DELZ10,SHIFTLM
|
|||
|
.DEF ANI_HSTG,TNTIT
|
|||
|
.DEF EXPMINE,TBOMB,KILL_GATE,DROPBMB,TAKEEL,INHERE,CRATEMAN,FRAIT
|
|||
|
.DEF SHAKER,BMLM2,GOT_HSTG,KILL_CRT,BLOW_RCTR,KEEPIT,KILL_CRT2
|
|||
|
.DEF O_MINE,SPATH,XBOOM2,TBOMBD,CRSRAM,EXPMINE2,FIREEXP,BSTART
|
|||
|
.DEF SRECT1,BSRECT1,CTOTAL,BLSTS2,PIT2,BLUEEXP,XBOOMS,COLTAB
|
|||
|
.DEF FADE_STRT,CK_GOOB,SHK_ON,BRLO,KILL_CRT3,CYCLEON,ELECT_MINE
|
|||
|
.DEF TBOMBD2,SLM,DO_GOOJ,CYCLIFE
|
|||
|
.DEF DOSHIFT2,DOSHIFT,JDOSHIFT,ATME
|
|||
|
|
|||
|
; .IF DEBUG
|
|||
|
.DEF DOATP,DO5
|
|||
|
; .ENDIF
|
|||
|
|
|||
|
;UNINITIALIZED RAM DEFINITIONS
|
|||
|
|
|||
|
.BSS INEXP,16
|
|||
|
.BSS RAMLST,32*6 ;LIST OF OBJECTS TO DELETE NEAR GATES
|
|||
|
.BSS RAMXY,32*21
|
|||
|
.BSS PALTMP,16*16*2 ;ALLOCATE 2 X COLOR AREA IN RAM
|
|||
|
.BSS CRSRAM,32
|
|||
|
.BSS CTOTAL,16
|
|||
|
.BSS TARG1,32
|
|||
|
.BSS TARG2,32
|
|||
|
.BSS KEEPT,32
|
|||
|
.BSS SCNTR,16
|
|||
|
.BSS KEEPIT,32
|
|||
|
; .BSS BOLTL,64
|
|||
|
; .BSS BOLTR,64
|
|||
|
; .BSS BOLTBT,64
|
|||
|
.BSS AMP,16
|
|||
|
.BSS AMPCNT,16
|
|||
|
.BSS XSET,16
|
|||
|
.BSS YSET,16
|
|||
|
.BSS SHK_ON,16
|
|||
|
.BSS KEEPXY,32
|
|||
|
.BSS TMP,16
|
|||
|
.BSS CYCLIFE,16
|
|||
|
|
|||
|
;EQUATES FIRST ORIGINATED IN THIS FILE
|
|||
|
|
|||
|
MISLPUN .EQU 12
|
|||
|
|
|||
|
|
|||
|
;TANK/SHRAPNEL BULLET DATA STRUCTURE
|
|||
|
|
|||
|
BNCS .EQU PDATA ;UHW
|
|||
|
LAST .EQU PDATA+16 ;UHW
|
|||
|
FDLY .EQU PDATA+32 ;UHW FRANIM DELAY
|
|||
|
;MYPLYR .EQU PDATA+48
|
|||
|
MYLIST .EQU PDATA+64 ;UHL FRANIM LIST FOR THIS PC UPON DEATH
|
|||
|
;SAME AS IN ARAB.ASM
|
|||
|
MYSND .EQU PDATA+96 ;UHL SOUND HEADER FOR GOO TYP DEATH
|
|||
|
;SAM AS IN ARAB.ASM
|
|||
|
BLAGE .EQU PDATA+128 ;UHW AGE OF BULLET
|
|||
|
FXOR .EQU PDATA+144 ;UHW
|
|||
|
|
|||
|
SLPTIME .EQU PDATA ;UHW
|
|||
|
;
|
|||
|
;CRATE PDATA AREA
|
|||
|
;
|
|||
|
HITS .EQU PDATA ;UHW CRATE HITS
|
|||
|
SHKIN .EQU PDATA+16 ;SHAKE FLAG
|
|||
|
;
|
|||
|
;TBOMB PDATA AREA
|
|||
|
KEEPY .EQU PDATA ;UHW Y LINE OF WHAT CRUISE WILL KILL
|
|||
|
SHKFLG .EQU PDATA+16 ;UHW IF 0 WHEN TBOMB EXPLODES - SHAKE SCRN
|
|||
|
|
|||
|
.TEXT
|
|||
|
|
|||
|
ATME
|
|||
|
;MINES COME AT ME
|
|||
|
MOVE @WORLDTLX+16,A0
|
|||
|
CMPI 580H,A0
|
|||
|
JANC SUCIDE
|
|||
|
CALLR ATMENOW
|
|||
|
SLEEP 60
|
|||
|
CALLR DOSHIFT2
|
|||
|
JRUC ATME
|
|||
|
ATMENOW
|
|||
|
MOVI OBJLST,A2,L
|
|||
|
TOBP:
|
|||
|
MOVE *A2,A2,L ;GET NEXT
|
|||
|
JREQ TOBX ;ALL DONE
|
|||
|
MOVE *A2(OID),A3
|
|||
|
CMPI CLSNEUT|TYPMINE,A3
|
|||
|
JRNE TOBP ;NO
|
|||
|
;GIVE THIS LAND MINE A VELOCITY
|
|||
|
; MOVE @HCOUNT,A0
|
|||
|
; BTST 0,A0
|
|||
|
; JRZ TOBP
|
|||
|
MOVE @SCNTR,A3
|
|||
|
INC A3
|
|||
|
MOVE A3,@SCNTR
|
|||
|
ANDI 01,A3
|
|||
|
SLL 5,A3
|
|||
|
MOVI PLYROBJS,A4
|
|||
|
ADD A3,A4
|
|||
|
MOVE *A4,A0,L ;GET FIRST ENTRY
|
|||
|
JRNZ PXC
|
|||
|
XORI 32,A3
|
|||
|
ADDI PLYROBJS,A3
|
|||
|
MOVE *A3,A0,L
|
|||
|
|
|||
|
PXC MOVE A2,A8
|
|||
|
CALLA XYSKOBJ
|
|||
|
;A5=X VEL
|
|||
|
;A6=Y VEL
|
|||
|
MOVE A6,*A2(OYVEL),L
|
|||
|
MOVE A5,*A2(OXVEL),L
|
|||
|
JRUC TOBP
|
|||
|
TOBX:
|
|||
|
RETS
|
|||
|
|
|||
|
;LXV .LONG -0A000H,0A000H,0,0,0
|
|||
|
;LYV .LONG 0,0,-08000H,08000H,-08000H
|
|||
|
;LXV2 .LONG 0A000H,0A000H,0,0A000H ;ON LEFT
|
|||
|
;LYV2 .LONG 0,0,-08000H,08000H,0
|
|||
|
;LXV3 .LONG -0A000H,-0A000H,0,0,-0A000H ;ON RGT
|
|||
|
;LYV3 .LONG 0,0,-08000H,08000H,0
|
|||
|
|
|||
|
SHIFTLM
|
|||
|
;SHIFT LAND MINES
|
|||
|
SLEEP 7*60
|
|||
|
MOVE @WORLDTLX,A9,L
|
|||
|
ADDI [60,0],A9
|
|||
|
MOVE A9,A10
|
|||
|
ADDI [280,0],A10
|
|||
|
;START THEM MOVING
|
|||
|
CALLR DOSHIFT
|
|||
|
SLEEP 60
|
|||
|
;NOW STOP THEM
|
|||
|
CALLR DOSHIFT2
|
|||
|
SLEEP 60 ;120
|
|||
|
CALLR DOSHIFT
|
|||
|
SLEEP 60
|
|||
|
;NOW STOP THEM
|
|||
|
CALLR DOSHIFT2
|
|||
|
SLEEP 60
|
|||
|
CALLR DOSHIFT
|
|||
|
SLEEP 60
|
|||
|
;NOW STOP THEM
|
|||
|
CALLR DOSHIFT2
|
|||
|
;OLD DIE
|
|||
|
SLEEP 60
|
|||
|
CALLR DOSHIFT
|
|||
|
SLEEP 60
|
|||
|
;NOW STOP THEM
|
|||
|
CALLR DOSHIFT2
|
|||
|
DIE
|
|||
|
DOSHIFT2
|
|||
|
MOVI OBJLST,A2,L
|
|||
|
OBP:
|
|||
|
MOVE *A2,A2,L ;GET NEXT
|
|||
|
JREQ OBX ;ALL DONE
|
|||
|
MOVE *A2(OID),A3
|
|||
|
CMPI CLSNEUT|TYPMINE,A3
|
|||
|
JRNE OBP ;NO
|
|||
|
;ZERO VELOCITY
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A2(OXVEL),L
|
|||
|
MOVE A0,*A2(OYVEL),L
|
|||
|
JRUC OBP
|
|||
|
OBX
|
|||
|
RETS
|
|||
|
DOSHIFT
|
|||
|
;SHIFT ALL LAND MINES ON SCREEN
|
|||
|
;A9=LEFT EDGE
|
|||
|
;A10=RIGHT EDGE
|
|||
|
MOVI OBJLST,A2,L
|
|||
|
XISTOBP:
|
|||
|
MOVE *A2,A2,L ;GET NEXT
|
|||
|
JREQ XISTOBX ;ALL DONE
|
|||
|
MOVE *A2(OID),A3
|
|||
|
CMPI CLSNEUT|TYPMINE,A3
|
|||
|
JRNE XISTOBP ;NO
|
|||
|
;GIVE THIS LAND MINE A VELOCITY
|
|||
|
; CLR B0
|
|||
|
; MOVK 5,B1
|
|||
|
; CALLA RANGRAND
|
|||
|
; DEC A0
|
|||
|
MOVK 4,A0
|
|||
|
CALLA RNDRNG0
|
|||
|
|
|||
|
SLL 5,A0
|
|||
|
MOVE *A2(OXVAL),A1,L
|
|||
|
CMP A9,A1
|
|||
|
JRLT SET2
|
|||
|
CMP A10,A1
|
|||
|
JRGT SET3
|
|||
|
;IN MIDDLE OF SCREEN, MINE CAN GO 4 DIRECTIONS
|
|||
|
MOVI LXV,A1
|
|||
|
ADD A0,A1
|
|||
|
MOVE *A1,A3,L
|
|||
|
MOVI LYV,A1
|
|||
|
ADD A0,A1
|
|||
|
MOVE *A1,A4,L
|
|||
|
JRUC MOUT
|
|||
|
SET2
|
|||
|
;ON LEFT SIDE OF SCRN
|
|||
|
MOVI LXV2,A1
|
|||
|
ADD A0,A1
|
|||
|
MOVE *A1,A3,L
|
|||
|
MOVI LYV2,A1
|
|||
|
ADD A0,A1
|
|||
|
MOVE *A1,A4,L
|
|||
|
JRUC MOUT
|
|||
|
SET3
|
|||
|
;ON RIGHT SIDE OF SCRN
|
|||
|
MOVI LXV3,A1
|
|||
|
ADD A0,A1
|
|||
|
MOVE *A1,A3,L
|
|||
|
MOVI LYV3,A1
|
|||
|
ADD A0,A1
|
|||
|
MOVE *A1,A4,L
|
|||
|
MOUT MOVE A4,*A2(OYVEL),L
|
|||
|
MOVE A3,*A2(OXVEL),L
|
|||
|
JRUC XISTOBP
|
|||
|
XISTOBX:
|
|||
|
RETS
|
|||
|
|
|||
|
LXV .LONG -0A000H,0A000H,0,0,0
|
|||
|
LYV .LONG 0,0,-08000H,08000H,-08000H
|
|||
|
LXV2 .LONG 0A000H,0A000H,0,0A000H ;ON LEFT
|
|||
|
LYV2 .LONG 0,0,-08000H,08000H,0
|
|||
|
LXV3 .LONG -0A000H,-0A000H,0,0,-0A000H ;ON RGT
|
|||
|
LYV3 .LONG 0,0,-08000H,08000H,0
|
|||
|
|
|||
|
JDOSHIFT
|
|||
|
;SHIFT ALL LAND MINES ON SCREEN
|
|||
|
;A9=LEFT EDGE
|
|||
|
;A10=RIGHT EDGE
|
|||
|
MOVI OBJLST,A2,L
|
|||
|
JEXISTOBP:
|
|||
|
MOVE *A2,A2,L ;GET NEXT
|
|||
|
JREQ JEXISTOBX ;ALL DONE
|
|||
|
MOVE *A2(OID),A3
|
|||
|
CMPI CLSNEUT|TYPMINE,A3
|
|||
|
JRNE JEXISTOBP ;NO
|
|||
|
;GIVE THIS LAND MINE A VELOCITY
|
|||
|
CLR B0
|
|||
|
MOVK 5,B1
|
|||
|
CALLA RANGRAND
|
|||
|
DEC A0
|
|||
|
SLL 5,A0
|
|||
|
MOVE *A2(OXVAL),A1,L
|
|||
|
MOVE @WORLDTLX,A9,L
|
|||
|
SUBI [50,0],A9 ;50
|
|||
|
CMP A9,A1
|
|||
|
JRLT JSET2
|
|||
|
ADDI [500,0],A9
|
|||
|
CMP A9,A1
|
|||
|
JRGT JSET3
|
|||
|
;IN MIDDLE OF SCREEN, MINE CAN GO 4 DIRECTIONS
|
|||
|
MOVI JLXV,A1
|
|||
|
ADD A0,A1
|
|||
|
MOVE *A1,A3,L
|
|||
|
MOVI JLYV,A1
|
|||
|
ADD A0,A1
|
|||
|
MOVE *A1,A4,L
|
|||
|
JRUC JMOUT
|
|||
|
JSET2
|
|||
|
;ON LEFT SIDE OF SCRN
|
|||
|
MOVI JLXV2,A1
|
|||
|
ADD A0,A1
|
|||
|
MOVE *A1,A3,L
|
|||
|
MOVI JLYV2,A1
|
|||
|
ADD A0,A1
|
|||
|
MOVE *A1,A4,L
|
|||
|
JRUC JMOUT
|
|||
|
JSET3
|
|||
|
;ON RIGHT SIDE OF SCRN
|
|||
|
MOVI JLXV3,A1
|
|||
|
ADD A0,A1
|
|||
|
MOVE *A1,A3,L
|
|||
|
MOVI JLYV3,A1
|
|||
|
ADD A0,A1
|
|||
|
MOVE *A1,A4,L
|
|||
|
JMOUT MOVE A4,*A2(OYVEL),L
|
|||
|
MOVE A3,*A2(OXVEL),L
|
|||
|
JRUC JEXISTOBP
|
|||
|
JEXISTOBX:
|
|||
|
RETS
|
|||
|
|
|||
|
JLXV .LONG -0E000H,0E000H,0,0,0
|
|||
|
JLYV .LONG 0,0,-0B000H,0B000H,-0B000H
|
|||
|
JLXV2 .LONG 0E000H,0E000H,0,0E000H ;ON LEFT
|
|||
|
JLYV2 .LONG 0,0,-0B000H,0B000H,0
|
|||
|
JLXV3 .LONG -0E000H,-0E000H,0,0,-0E000H ;ON RGT
|
|||
|
JLYV3 .LONG 0,0,-0C000H,0C000H,0
|
|||
|
|
|||
|
|
|||
|
|
|||
|
ELECT_MINE
|
|||
|
MOVE A13,*A8(OPLINK),L
|
|||
|
SLEEP 180
|
|||
|
EM2 MOVK 30,B0
|
|||
|
MOVI 100,B1
|
|||
|
CALLA RANGRAND
|
|||
|
CALLA PRCSLP
|
|||
|
MOVI ELIST,A9
|
|||
|
JSRP FRANIMQ
|
|||
|
CALLA SCRTST
|
|||
|
;*RETURNS EQ IF ON SCREEN
|
|||
|
JREQ EM2
|
|||
|
jauc DELOBJDIE
|
|||
|
|
|||
|
ELIST
|
|||
|
.LONG ELECT1A
|
|||
|
.WORD 4
|
|||
|
.LONG ELECT1B
|
|||
|
.WORD 4
|
|||
|
.LONG ELECT1C
|
|||
|
.WORD 4
|
|||
|
.LONG ELECT1A
|
|||
|
.WORD 4
|
|||
|
.LONG ELECT1B
|
|||
|
.WORD 4
|
|||
|
.LONG ELECT1C
|
|||
|
.WORD 4
|
|||
|
.LONG ELECT1A
|
|||
|
.WORD 4
|
|||
|
.LONG ELECT1B
|
|||
|
.WORD 4
|
|||
|
.LONG ELECT1C
|
|||
|
.WORD 4
|
|||
|
.LONG ELECT1A
|
|||
|
.WORD 4
|
|||
|
.LONG ELECT1B
|
|||
|
.WORD 4
|
|||
|
.LONG ELECT1C
|
|||
|
.WORD 4
|
|||
|
.LONG ELECT1A
|
|||
|
.WORD 4
|
|||
|
.LONG ELECT1B
|
|||
|
.WORD 4
|
|||
|
.LONG ELECT1C
|
|||
|
.WORD 4
|
|||
|
.LONG ELECT1
|
|||
|
.WORD 20
|
|||
|
.LONG 0
|
|||
|
O_MINE:
|
|||
|
;CLEAR RAM AREA FOR TEMP X/Y POSITIONS
|
|||
|
MOVI RAMXY,A0
|
|||
|
CLR A3
|
|||
|
MOVK 20,A1
|
|||
|
LP9: MOVE A3,*A0+,L
|
|||
|
DSJS A1,LP9
|
|||
|
|
|||
|
MOVI [60,60],A0 ;SOME VALUE TO INIT TABLE WITH
|
|||
|
;NOTHING WILL ORIGINATE AT 20/20
|
|||
|
MOVI RAMXY,A1
|
|||
|
MOVE A0,*A1+,L
|
|||
|
MOVE A1,@KEEPXY,L
|
|||
|
;A2=# OF MINES TO CREATE ON SCREEN
|
|||
|
MOVE @STATUS,A0
|
|||
|
CMPI 3,A0
|
|||
|
JRZ OH1
|
|||
|
CMPI 7,A2 ;EASIER FOR PLAYER 1
|
|||
|
JRC OH1
|
|||
|
SUBK 3,A2
|
|||
|
OH1 ;CREATE A BUNCH OF THEM
|
|||
|
CREATE0 AMINE
|
|||
|
DSJS A2,OH1
|
|||
|
RETS
|
|||
|
AMINE:
|
|||
|
;AMINE IS CALLED TO PLACE X # OF MINES ON SCREEN
|
|||
|
CALLR GET_VAL ;MAKE SURE NEW BUST IS NOT
|
|||
|
;OVERLAPPING ANY EXISTING SHAPE
|
|||
|
;WHICH IS ALREADY ON SCRN AT START
|
|||
|
;A0 & A1 ARE SET UP
|
|||
|
MOVI M1,A2 ;DOES NOT MATTER
|
|||
|
MOVI 69,A3
|
|||
|
MOVI DMAWNZ,A4 ;NON-ZERO VALUE
|
|||
|
MOVI CLSNEUT|TYPMINE,A5
|
|||
|
CLR A6
|
|||
|
CLR A7
|
|||
|
CALLA BEGINOBJ2
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A8(OPLINK),L
|
|||
|
DIE
|
|||
|
|
|||
|
GET_VAL:
|
|||
|
MOVK 020,A9 ;LAND MINE 20 WIDE
|
|||
|
CALLA GET_VALID_XY
|
|||
|
;RETURNS A10=YPOS,A11=XPOS
|
|||
|
JRNC GOOD
|
|||
|
JRUC GET_VAL
|
|||
|
GOOD
|
|||
|
; MOVE A10,*A8(OYPOS),W
|
|||
|
; MOVE A11,*A8(OXPOS),W
|
|||
|
SLL 16,A11
|
|||
|
MOVE A11,A0
|
|||
|
SLL 16,A10
|
|||
|
MOVE A10,A1
|
|||
|
|
|||
|
;A0=X,A1=Y
|
|||
|
MOVE A0,A2
|
|||
|
MOVY A1,A3
|
|||
|
SRL 16,A2
|
|||
|
MOVX A2,A3
|
|||
|
;
|
|||
|
;CHECK FOR OTHER SHAPES NOW
|
|||
|
;
|
|||
|
;A3=[Y,X]
|
|||
|
MOVI RAMXY,A2
|
|||
|
TCK: MOVE *A2+,A4,L
|
|||
|
JRZ OEXIT
|
|||
|
;AN EXISTING SHAPE MUST BE CHECKED
|
|||
|
MOVX A4,A5 ;A4 = Y VAL (32 BIT)
|
|||
|
SLL 16,A5 ;A5 = X VAL
|
|||
|
ADDI 01C0000H,A4 ;ADD IN HEIGHT OF OBJ
|
|||
|
CMP A4,A1
|
|||
|
JRGT VALID ;BR IF A1>A4
|
|||
|
SUBI 0380000H,A4
|
|||
|
CMP A4,A1
|
|||
|
JRLT VALID ;BR IF A1<A4
|
|||
|
|
|||
|
;NEW Y VAL IS IN ANOTHER SHAPES Y BAND
|
|||
|
;NOW CHECK X
|
|||
|
|
|||
|
ADDI 02A0000H,A5 ;1A
|
|||
|
CMP A5,A0
|
|||
|
JRGT VALID ;BR IF A5>A0
|
|||
|
SUBI 0340000H,A5
|
|||
|
CMP A5,A0
|
|||
|
JRLT VALID
|
|||
|
;SOME SHAPE IS ALREADY THERE!
|
|||
|
JRUC GET_VAL
|
|||
|
;HIT
|
|||
|
VALID:
|
|||
|
JRUC TCK
|
|||
|
|
|||
|
OEXIT:
|
|||
|
;A3=[Y,X]
|
|||
|
MOVE @KEEPXY,A4,L
|
|||
|
MOVE A3,*A4+,L
|
|||
|
MOVE A4,@KEEPXY,L
|
|||
|
RETS
|
|||
|
BLOW_RCTR
|
|||
|
MOVK 18,A0
|
|||
|
MOVE A0,@CTOTAL
|
|||
|
MOVK 3,A0
|
|||
|
MOVE A0,@WAVE
|
|||
|
MOVI LORDPID,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILALL
|
|||
|
;TURN ON RIGHT HAND GOOB POOL
|
|||
|
MOVI GOOB,A14
|
|||
|
CALLA DO_ALL_STUFF
|
|||
|
MOVE A0,@KEEPIT,L
|
|||
|
SLEEPK 30
|
|||
|
;SEND GROUP OF HULKS DOWN AT PLAYER FROM SIDE
|
|||
|
MOVK 10,A8
|
|||
|
BEND1
|
|||
|
SLEEP >40
|
|||
|
MOVI [115,380],A9
|
|||
|
MOVK 7,A10 ;GO LEFT
|
|||
|
CLR A0
|
|||
|
MOVE A0,@JUMPER
|
|||
|
PUSH A8
|
|||
|
CALLA SEND_GROUP
|
|||
|
PULL A8
|
|||
|
DSJ A8,BEND1
|
|||
|
DIE
|
|||
|
BLOWJET
|
|||
|
SLEEP 084H
|
|||
|
;A8=TOP OF DISH
|
|||
|
MOVK 17H,A10
|
|||
|
MOVK 2,A9 ;A9=2 FOR JET
|
|||
|
CREATE BLOWPID,DOBIGS
|
|||
|
CREATE BLOWPID,ONME2
|
|||
|
MOVK 7,A10
|
|||
|
CREATE BLOWPID,DOGREY
|
|||
|
SLEEPK 32
|
|||
|
CREATE BLOWPID,JFLAMES
|
|||
|
DIE
|
|||
|
|
|||
|
BLOWDSH SLEEP 084H
|
|||
|
;A8=TOP OF DISH
|
|||
|
MOVK 07H,A10
|
|||
|
MOVK 1,A9 ;A9=1 FOR DISH
|
|||
|
CREATE BLOWPID,DOBIGS
|
|||
|
MOVK 5,A10
|
|||
|
CREATE BLOWPID,DOMTL
|
|||
|
CREATE BLOWPID,ONME
|
|||
|
|
|||
|
SLEEP 048H
|
|||
|
MOVE *A8(OYPOS),A0
|
|||
|
ADDI 63,A0
|
|||
|
MOVE A0,A9 ;TARGET Y
|
|||
|
MOVI OBJLST,A6,L
|
|||
|
VILOBP:
|
|||
|
MOVE *A6,A6,L ;GET NEXT
|
|||
|
JREQ VILXL ;ALL DONE
|
|||
|
MOVE *A6(OYPOS),A4
|
|||
|
SUB A9,A4
|
|||
|
ABS A4
|
|||
|
SUBK 2,A4
|
|||
|
JRHI VILOBP
|
|||
|
; CMP A9,A4 ;MATCH?
|
|||
|
; JRNZ VILOBP ;NO
|
|||
|
;FOUND IMG WITH CORRECT Y VALUE
|
|||
|
MOVE *A6(OSIZEX),A0
|
|||
|
CMPI 28,A0 ;SIDE OF DISH
|
|||
|
JRNZ VILOBP
|
|||
|
;CHECK FOR REAL SIDE PC HERE
|
|||
|
MOVE *A6(OZPOS),A0
|
|||
|
CMPI 281,A0
|
|||
|
JRNZ VILOBP
|
|||
|
MOVE A6,A0
|
|||
|
CALLA DELOBJ
|
|||
|
VILX
|
|||
|
CALLA DELOBJA8
|
|||
|
;NOW SORT THRU BAKLST LOOKING FOR THE BASE
|
|||
|
MOVI BAKLST,A6,L
|
|||
|
ILOBP:
|
|||
|
MOVE *A6,A6,L ;GET NEXT
|
|||
|
JREQ ILX ;ALL DONE
|
|||
|
MOVE *A6(OYPOS),A4
|
|||
|
SUB A9,A4
|
|||
|
ABS A4
|
|||
|
SUBK 2,A4
|
|||
|
JRHI ILOBP
|
|||
|
; CMP A9,A4 ;MATCH?
|
|||
|
; JRNZ ILOBP ;NO
|
|||
|
;FOUND IMG WITH CORRECT Y VALUE
|
|||
|
MOVE *A6(OSIZEX),A0
|
|||
|
CMPI 92,A0 ;BASE OF DISH
|
|||
|
JRNZ ILOBP
|
|||
|
MOVE A6,A8
|
|||
|
MOVE *A8(OYPOS),A0
|
|||
|
SUBK 16H-11,A0
|
|||
|
MOVE A0,*A8(OYPOS)
|
|||
|
MOVI DPC4,A1
|
|||
|
MOVE *A8(OFLAGS),A4
|
|||
|
CALLA ANI
|
|||
|
ILX
|
|||
|
DIE
|
|||
|
VILXL
|
|||
|
; .IF DEBUG
|
|||
|
; LOCKUP
|
|||
|
; EINT
|
|||
|
; .ENDIF
|
|||
|
DIE
|
|||
|
BLOWALL
|
|||
|
;A8=REACTOR IMAGE
|
|||
|
;WARNING SOUND
|
|||
|
;SHAKE IT
|
|||
|
;OVERLAY BIG EXPLOSION SEVERAL TIMES
|
|||
|
;SEND OUT TONS OF REACTOR PIECES
|
|||
|
;CHANGE TO DESTROYED REACTOR PIECE
|
|||
|
;TURN ON GOOB POOL INSIDE
|
|||
|
;SEND OUT METAL CHUNKS
|
|||
|
;SHAKE ENTIRE SCREEN
|
|||
|
;
|
|||
|
;WAIT HERE UNTIL END OF WAVE REACHED!
|
|||
|
;
|
|||
|
SLEEP 190
|
|||
|
CREATE BLOWPID,SHKRC
|
|||
|
SLEEP 180
|
|||
|
CREATE BLOWPID,BAMS
|
|||
|
MOVK 23,A10
|
|||
|
CLR A9 ;A9=0 FOR REACTOR
|
|||
|
CREATE BLOWPID,DOBIGS
|
|||
|
MOVK 10,A10
|
|||
|
CREATE BLOWPID,DOMTL
|
|||
|
CLR A9
|
|||
|
MOVK 10,A10
|
|||
|
CREATE BLOWPID,DOSIDES
|
|||
|
|
|||
|
SLEEP 120
|
|||
|
|
|||
|
MOVI RCTR2,A1
|
|||
|
MOVE *A8(OFLAGS),A4
|
|||
|
CALLA ANI
|
|||
|
MOVE *A8(OFLAGS),A1
|
|||
|
BTST B_FLIPH,A1
|
|||
|
JRZ NOF
|
|||
|
MOVI BPL2,A14
|
|||
|
CALLA DO_ALL_STUFF
|
|||
|
MOVE *A8(OXPOS),A1
|
|||
|
ADDK 9,A1
|
|||
|
MOVE A1,*A0(OXPOS)
|
|||
|
JRUC BFO
|
|||
|
NOF
|
|||
|
MOVI BPL,A14
|
|||
|
CALLA DO_ALL_STUFF
|
|||
|
MOVE *A8(OXPOS),A1
|
|||
|
ADDI 22H,A1
|
|||
|
MOVE A1,*A0(OXPOS)
|
|||
|
BFO MOVE *A8(OYPOS),A1
|
|||
|
ADDI 03DH,A1
|
|||
|
MOVE A1,*A0(OYPOS)
|
|||
|
MOVK 15H,A10 ;29
|
|||
|
CALLR SHAKER
|
|||
|
DIE
|
|||
|
ONME
|
|||
|
;TURN ON BIG EXPLOSION
|
|||
|
MOVE *A8(OXPOS),A9
|
|||
|
MOVE *A8(OYPOS),A10
|
|||
|
ADDI 51H,A10
|
|||
|
MOVK 5,A11
|
|||
|
FTP MOVI BEXP,A14
|
|||
|
CALLA DO_ALL_STUFF
|
|||
|
MOVE A0,A8
|
|||
|
MOVE A9,*A8(OXPOS)
|
|||
|
MOVE A10,*A8(OYPOS)
|
|||
|
;DISH
|
|||
|
;TURN ON BIG EXPLOSION OVER DISH
|
|||
|
CREATE BLOWPID,FRAIT2
|
|||
|
SLEEPK 18H
|
|||
|
DSJ A11,FTP
|
|||
|
DIE
|
|||
|
ONME2
|
|||
|
;TURN ON BIG EXPLOSION
|
|||
|
MOVE *A8(OXPOS),A9
|
|||
|
MOVE *A8(OYPOS),A10
|
|||
|
ADDI 11H,A10
|
|||
|
ADDI 41H,A9
|
|||
|
MOVK 3,A11
|
|||
|
FTP2 MOVI BEXP,A14
|
|||
|
CALLA DO_ALL_STUFF
|
|||
|
MOVE A0,A8
|
|||
|
MOVE A9,*A8(OXPOS)
|
|||
|
MOVE A10,*A8(OYPOS)
|
|||
|
;JET
|
|||
|
;TURN ON BIG EXPLOSION OVER JET
|
|||
|
SLEEPK 15H
|
|||
|
CREATE BLOWPID,FRAIT
|
|||
|
DSJ A11,FTP2
|
|||
|
DIE
|
|||
|
DOGREY MOVE A8,A11
|
|||
|
MOVK 2,A9
|
|||
|
DOG1 MOVI BEXPD2,A14
|
|||
|
CALLA DO_ALL_STUFF
|
|||
|
MOVE A0,A8
|
|||
|
MOVI -10000H,B0
|
|||
|
MOVI 10000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,*A8(OXVEL),L
|
|||
|
MOVE *A11(OXPOS),A0
|
|||
|
MOVE A10,A1
|
|||
|
SLL 4,A1
|
|||
|
ADDI XXOVER,A1
|
|||
|
MOVE *A1,A1,W
|
|||
|
ADD A1,A0
|
|||
|
MOVE A0,*A8(OXPOS)
|
|||
|
MOVI 40,A0
|
|||
|
CALLA RNDRNG0
|
|||
|
SUBK 20,A0
|
|||
|
ADDI 22H,A0
|
|||
|
MOVE *A11(OYPOS),A1
|
|||
|
ADD A1,A0
|
|||
|
MOVE A0,*A8(OYPOS)
|
|||
|
CREATE BLOWPID,FRAIT
|
|||
|
MOVK 6,A0
|
|||
|
CALLA RNDRNG0
|
|||
|
INC A0
|
|||
|
CALLA PRCSLP
|
|||
|
DSJ A10,DOG1
|
|||
|
MOVK 7,A10
|
|||
|
SLEEP 50
|
|||
|
DSJ A9,DOG1
|
|||
|
DIE
|
|||
|
XXOVER .WORD 25,40,70,100,130,160,180,190
|
|||
|
|
|||
|
|
|||
|
DOBIGS
|
|||
|
;TURN ON BIG EXPLOSION
|
|||
|
MOVE A8,A11
|
|||
|
TP MOVE A9,A9
|
|||
|
JRZ TPK
|
|||
|
CMPI 1,A9
|
|||
|
JRZ DSH
|
|||
|
;JET
|
|||
|
MOVI BEXPD2,A14
|
|||
|
CALLA DO_ALL_STUFF
|
|||
|
MOVE A0,A8
|
|||
|
MOVE *A11(OXPOS),A0
|
|||
|
ADDI 40H,A0
|
|||
|
MOVE A0,*A8(OXPOS)
|
|||
|
MOVE *A11(OYPOS),A0
|
|||
|
ADDI 012H,A0 ;4B
|
|||
|
MOVE A0,*A8(OYPOS)
|
|||
|
MOVI -40,B0
|
|||
|
MOVI 40,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE *A8(OXPOS),A2
|
|||
|
ADD A0,A2
|
|||
|
MOVE A2,*A8(OXPOS)
|
|||
|
MOVI -15,B0
|
|||
|
MOVK 15,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE *A8(OYPOS),A2
|
|||
|
ADD A0,A2
|
|||
|
JRUC TPKKZ
|
|||
|
DSH
|
|||
|
;DISH
|
|||
|
;TURN ON BIG EXPLOSION OVER DISH
|
|||
|
MOVI BEXPD,A14
|
|||
|
CALLA DO_ALL_STUFF
|
|||
|
MOVE A0,A8
|
|||
|
MOVE *A11(OXPOS),A0
|
|||
|
ADDK 06H,A0 ;36
|
|||
|
MOVE A0,*A8(OXPOS)
|
|||
|
MOVE *A11(OYPOS),A0
|
|||
|
ADDI 022H,A0 ;4B
|
|||
|
JRUC TPKK
|
|||
|
TPK
|
|||
|
MOVI BEXP,A14
|
|||
|
CALLA DO_ALL_STUFF
|
|||
|
MOVE A0,A8
|
|||
|
MOVE *A11(OXPOS),A0
|
|||
|
ADDI 026H,A0 ;36
|
|||
|
MOVE A0,*A8(OXPOS)
|
|||
|
MOVE *A11(OYPOS),A0
|
|||
|
ADDI 042H,A0 ;4B
|
|||
|
TPKK MOVE A0,*A8(OYPOS)
|
|||
|
MOVI -20,B0
|
|||
|
MOVK 20,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE *A8(OXPOS),A2
|
|||
|
ADD A0,A2
|
|||
|
MOVE A2,*A8(OXPOS)
|
|||
|
MOVI -25,B0
|
|||
|
MOVK 25,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE *A8(OYPOS),A2
|
|||
|
ADD A0,A2
|
|||
|
TPKKZ MOVE A2,*A8(OYPOS)
|
|||
|
CREATE BLOWPID,FRAIT
|
|||
|
MMTM SP,A9,A10
|
|||
|
MOVK 1,A5
|
|||
|
CMPI 2,A9
|
|||
|
JRZ TPG
|
|||
|
CLR A9
|
|||
|
MOVK 2,A5
|
|||
|
TPG CALLR PIT2
|
|||
|
MMFM SP,A9,A10
|
|||
|
SLEEPK 6
|
|||
|
DSJ A10,TP
|
|||
|
DIE
|
|||
|
|
|||
|
FRAIT
|
|||
|
MOVI XBOOM,A9
|
|||
|
jauc FRQDELDIE
|
|||
|
FRAIT2
|
|||
|
MOVI XBOOMS,A9
|
|||
|
jauc FRQDELDIE
|
|||
|
|
|||
|
DOMTL
|
|||
|
SLEEPK 30
|
|||
|
DM1 PUSH A10
|
|||
|
MOVI BLSTS2,A11
|
|||
|
MOVI 010000H,A9 ;A9=XVEL
|
|||
|
MOVI 08000H,A10 ;A10=YVEL
|
|||
|
MOVE *A8(OFLAGS),A0
|
|||
|
BTST B_FLIPH,A0
|
|||
|
JRZ NOH
|
|||
|
MOVI -010000H,A9 ;A9=XVEL
|
|||
|
MOVI -08000H,A10 ;A10=YVEL
|
|||
|
NOH MOVE @PCTOT,A0
|
|||
|
CMPI 20,A0
|
|||
|
JRNC DEI
|
|||
|
CREATE0 CHUNK_OBJ
|
|||
|
CLR A1
|
|||
|
MOVE A1,*A0(PDATA),W ;NO PAL CHANGE
|
|||
|
PULL A10
|
|||
|
SLEEPK 10
|
|||
|
DSJ A10,DM1
|
|||
|
DIE
|
|||
|
DEI PULL A10
|
|||
|
DIE
|
|||
|
DOSIDES
|
|||
|
SLEEP 68H
|
|||
|
;DOSID2 SLEEPK 20H
|
|||
|
MOVE A8,A11
|
|||
|
CM1
|
|||
|
CREATE BLOWPID,SIDE1
|
|||
|
CREATE BLOWPID,SIDE2
|
|||
|
CREATE BLOWPID,SIDE3
|
|||
|
SLEEPK 2
|
|||
|
DSJ A10,CM1
|
|||
|
DIE
|
|||
|
; .LONG [40H,0],[65H,0],RCTRPC2
|
|||
|
ADJU MOVE A9,A9
|
|||
|
JRZ REU
|
|||
|
MOVE *A11(OXPOS),A0
|
|||
|
ADDK 08H,A0
|
|||
|
MOVE A0,*A8(OXPOS)
|
|||
|
MOVE *A11(OYPOS),A0
|
|||
|
ADDK 0BH,A0
|
|||
|
MOVE A0,*A8(OYPOS)
|
|||
|
RETS
|
|||
|
REU MOVE *A11(OXPOS),A0
|
|||
|
ADDI 038H,A0
|
|||
|
MOVE A0,*A8(OXPOS)
|
|||
|
MOVE *A11(OYPOS),A0
|
|||
|
ADDI 02BH,A0
|
|||
|
MOVE A0,*A8(OYPOS)
|
|||
|
RETS
|
|||
|
SIDE1
|
|||
|
MOVI SD1,A14
|
|||
|
MOVE A9,A9
|
|||
|
JRZ SXC
|
|||
|
MOVI SD1S,A14
|
|||
|
SXC CALLA DO_ALL_STUFF
|
|||
|
MOVE A0,A8
|
|||
|
CALLR ADJU
|
|||
|
MOVI -1000H,B0
|
|||
|
MOVI 0A000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,*A8(OYVEL),L
|
|||
|
MOVI 30000H,B0
|
|||
|
MOVI 70000H,B1
|
|||
|
MOVE *A11(OFLAGS),A0
|
|||
|
BTST B_FLIPH,A0
|
|||
|
JRZ NOH2
|
|||
|
MOVI -70000H,B0
|
|||
|
MOVI -30000H,B1
|
|||
|
NOH2
|
|||
|
|
|||
|
SIDEO
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,*A8(OXVEL),L
|
|||
|
SLEEPK 01FH
|
|||
|
jauc DELOBJDIE
|
|||
|
|
|||
|
SIDE2 MOVE A9,A9
|
|||
|
JRZ SDXX
|
|||
|
MOVI SD1S,A14
|
|||
|
JRUC SDE
|
|||
|
SDXX MOVI SD1,A14
|
|||
|
MOVE @PCNT,A0
|
|||
|
BTST 0,A0
|
|||
|
JRZ SDE
|
|||
|
MOVI SD2,A14
|
|||
|
SDE CALLA DO_ALL_STUFF
|
|||
|
MOVE A0,A8
|
|||
|
CALLR ADJU
|
|||
|
MOVI 8000H,B0
|
|||
|
MOVI 40000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,*A8(OYVEL),L
|
|||
|
MOVI 8000H,B0
|
|||
|
MOVI 40000H,B1
|
|||
|
MOVE *A11(OFLAGS),A0
|
|||
|
BTST B_FLIPH,A0
|
|||
|
JRZ NOH3
|
|||
|
MOVI -40000H,B0
|
|||
|
MOVI -8000H,B1
|
|||
|
NOH3
|
|||
|
JRUC SIDEO
|
|||
|
|
|||
|
SIDE3 MOVI SD3,A14
|
|||
|
MOVE A9,A9
|
|||
|
JRZ SDXXX
|
|||
|
MOVI SD3S,A14
|
|||
|
SDXXX CALLA DO_ALL_STUFF
|
|||
|
MOVE A0,A8
|
|||
|
CALLR ADJU
|
|||
|
MOVI 20000H,B0
|
|||
|
MOVI 50000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,*A8(OYVEL),L
|
|||
|
MOVI -10000H,B0
|
|||
|
MOVI 10000H,B1
|
|||
|
JRUC SIDEO
|
|||
|
|
|||
|
XBOOM:
|
|||
|
.LONG XPLD1
|
|||
|
.WORD 2
|
|||
|
.LONG XPLD2
|
|||
|
.WORD 2
|
|||
|
.LONG XPLD3
|
|||
|
.WORD 2
|
|||
|
.LONG XPLD4
|
|||
|
.WORD 2
|
|||
|
.LONG XPLD5
|
|||
|
.WORD 2
|
|||
|
.LONG XPLD6
|
|||
|
.WORD 2
|
|||
|
.LONG XPLD7
|
|||
|
.WORD 3
|
|||
|
.LONG XPLD8
|
|||
|
.WORD 3
|
|||
|
.LONG XPLD9
|
|||
|
.WORD 3
|
|||
|
.LONG XPLD10
|
|||
|
.WORD 3
|
|||
|
.LONG 0
|
|||
|
XBOOMS:
|
|||
|
.LONG XPLD1
|
|||
|
.WORD 5
|
|||
|
.LONG XPLD2
|
|||
|
.WORD 5
|
|||
|
.LONG XPLD3
|
|||
|
.WORD 5
|
|||
|
.LONG XPLD4
|
|||
|
.WORD 5
|
|||
|
.LONG XPLD5
|
|||
|
.WORD 5
|
|||
|
.LONG XPLD6
|
|||
|
.WORD 5
|
|||
|
.LONG XPLD7
|
|||
|
.WORD 5
|
|||
|
.LONG XPLD8
|
|||
|
.WORD 5
|
|||
|
.LONG XPLD9
|
|||
|
.WORD 5
|
|||
|
.LONG XPLD10
|
|||
|
.WORD 5
|
|||
|
.LONG 0
|
|||
|
XBOOM2:
|
|||
|
.LONG XPLD1
|
|||
|
.WORD NEWPALET|4
|
|||
|
.LONG RDBOOM
|
|||
|
.LONG XPLD2
|
|||
|
.WORD 4
|
|||
|
.LONG XPLD3
|
|||
|
.WORD 4
|
|||
|
.LONG XPLD4
|
|||
|
.WORD 4
|
|||
|
.LONG XPLD5
|
|||
|
.WORD 4
|
|||
|
.LONG XPLD6
|
|||
|
.WORD 4
|
|||
|
.LONG XPLD7
|
|||
|
.WORD 6
|
|||
|
.LONG XPLD8
|
|||
|
.WORD 6
|
|||
|
.LONG XPLD9
|
|||
|
.WORD 6
|
|||
|
.LONG XPLD10
|
|||
|
.WORD 6
|
|||
|
.LONG 0
|
|||
|
SD1:
|
|||
|
.LONG [40H,0],[65H,0],RCTRPC2
|
|||
|
.WORD 289,DMAWNZ|M_NOCOLL,CLSDEAD ;I WILL DELETE MYSELF
|
|||
|
.LONG 0,0
|
|||
|
SD1S: ;DISH
|
|||
|
.LONG [40H,0],[65H,0],DPC2
|
|||
|
.WORD 289,DMAWNZ|M_NOCOLL,CLSDEAD ;I WILL DELETE MYSELF
|
|||
|
.LONG 0,0
|
|||
|
SD2:
|
|||
|
.LONG [30H,0],[65H,0],RCTRPC1
|
|||
|
.WORD 289,DMAWNZ|M_NOCOLL,CLSDEAD ;I WILL DELETE MYSELF
|
|||
|
.LONG 0,0
|
|||
|
SD3:
|
|||
|
.LONG [30H,0],[65H,0],RCTRPC1
|
|||
|
.WORD 289,DMAWNZ|M_FLIPH|M_NOCOLL,CLSDEAD ;I WILL DELETE MYSELF
|
|||
|
.LONG 0,0
|
|||
|
SD3S:
|
|||
|
.LONG [30H,0],[65H,0],DPC3
|
|||
|
.WORD 289,DMAWNZ|M_FLIPH|M_NOCOLL,CLSDEAD ;I WILL DELETE MYSELF
|
|||
|
.LONG 0,0
|
|||
|
BEXP:
|
|||
|
.LONG [3AH,0],[85H,0],XPLD1
|
|||
|
.WORD 295,DMAWNZ|M_NOCOLL,CLSDEAD ;I WILL DELETE MYSELF
|
|||
|
.LONG 0,-22000H
|
|||
|
BEXPD:
|
|||
|
.LONG [3AH,0],[85H,0],XPLD1
|
|||
|
.WORD 295,DMAWNZ|M_NOCOLL,CLSDEAD ;I WILL DELETE MYSELF
|
|||
|
.LONG 0,-12000H
|
|||
|
BEXPD2:
|
|||
|
.LONG [3AH,0],[85H,0],CLD1A
|
|||
|
.WORD 295,DMAWNZ|M_NOCOLL,CLSDEAD ;I WILL DELETE MYSELF
|
|||
|
.LONG 0,-2000H
|
|||
|
BPL:
|
|||
|
.LONG [26H,0],[77H,0],WSTPOOL
|
|||
|
.WORD 281,DMAWNZ|M_NOCOLL,CLSNEUT|TYPNEUT ;289
|
|||
|
.LONG 0,0
|
|||
|
BPL2:
|
|||
|
.LONG [26H,0],[77H,0],WSTPOOL
|
|||
|
.WORD 281,DMAWNZ|M_NOCOLL|M_FLIPH,CLSNEUT|TYPNEUT ;289
|
|||
|
.LONG 0,0
|
|||
|
SHKRC
|
|||
|
;SHAKE REACTOR
|
|||
|
MOVK 12,A10 ;8
|
|||
|
XSL MOVK 10,A9
|
|||
|
XLPS MOVE A9,A0
|
|||
|
CALLR DOXY
|
|||
|
SLEEPK 2
|
|||
|
DSJS A9,XLPS
|
|||
|
DSJ A10,XSL
|
|||
|
DIE
|
|||
|
GOOB:
|
|||
|
.LONG [180H,0],[69H,0],GOOBR
|
|||
|
.WORD 20,DMAWNZ|M_NOCOLL,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
LENGTH .LONG [3*60,12*60],[20*60,160*60],[20*60,170*60],[4*60,70*60]
|
|||
|
;FOR BARRELS
|
|||
|
.LONG [4*60,120*60],[8*60,46*60],[6*60,15*60],[3*60,10*60]
|
|||
|
.LONG [4*60,120*60],[8*60,46*60],[8*60,100*60],[6*60,30*60]
|
|||
|
.LONG [6*60,30*60],[4*60,17*60],[3*60,30*60],[3*60,30*60] ;WV 15
|
|||
|
.LONG [6*60,50*60],[8*60,46*60],[3*60,10*60],[4*60,20*60]
|
|||
|
.LONG [6*60,34*60] ;FIRST WARP LOCKDOWN
|
|||
|
.LONG [8*60,46*60],[5*60-20,25*60],[6*60-20,10*60]
|
|||
|
.LONG [8*60,46*60],[4*60-20,25*60],[5*60-20,10*60]
|
|||
|
.LONG [8*60,46*60],[4*60-20,25*60],[2*60,8*60]
|
|||
|
.LONG [8*60,26*60],[4*60-20,25*60],[5*60-20,10*60]
|
|||
|
.LONG [5*60,20*60],[4*60-20,25*60],[5*60-20,10*60] ;WV 35
|
|||
|
.LONG [8*60,26*60],[4*60-20,25*60],[3*60-20,14*60]
|
|||
|
.LONG [8*60,26*60],[4*60-20,25*60],[5*60-20,10*60]
|
|||
|
.LONG [10*60,200*60],[4*60-20,25*60],[5*60-20,10*60]
|
|||
|
.LONG 0
|
|||
|
;FOR CRATE
|
|||
|
CLENGTH .LONG [3*60,12*60],[20*60,160*60],[20*60,170*60],[14*60,80*60]
|
|||
|
.LONG [10*60,120*60],[2*60,45*60],[6*60,120*60],[6*60,120*60]
|
|||
|
.LONG [10*60,120*60],[2*60,45*60],[6*60,120*60],[1*60,24*60]
|
|||
|
.LONG [2*60,20*60],[2*60,18*60],[6*60,120*60],[6*60,40*60] ;WV 15
|
|||
|
.LONG [2*60,20*60],[2*60,45*60],[12*60,32*60],[6*60,120*60]
|
|||
|
.LONG [2*60,20*60],[2*60,45*60],[2*60,15*60],[2*60,15*60]
|
|||
|
.LONG [2*60,20*60],[2*60,45*60],[2*60,15*60],[2*60,15*60]
|
|||
|
.LONG [2*60,20*60],[2*60,45*60],[2*60,15*60],[2*60,15*60]
|
|||
|
.LONG [2*60,20*60],[2*60,35*60],[2*60,15*60],[2*60,15*60] ;WV 35
|
|||
|
.LONG [2*60,20*60],[2*60,45*60],[2*60,15*60],[2*60,15*60]
|
|||
|
.LONG [2*60,20*60],[2*60,45*60],[2*60,15*60],[2*60,15*60]
|
|||
|
.LONG [2*60,20*60],[2*60,45*60],[2*60,15*60],[2*60,15*60]
|
|||
|
.LONG 0
|
|||
|
CRATEMAN
|
|||
|
;COULD BE A BARREL
|
|||
|
;A8=CRATE IMG
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A13(SHKIN)
|
|||
|
MOVE A0,*A13(HITS)
|
|||
|
;THIS VALUE SHOULD BE BASED ON WAVE #
|
|||
|
MOVE @WAVE,A0
|
|||
|
SLL 5,A0
|
|||
|
MOVE *A8(OID),A9
|
|||
|
CMPI CLSNEUT|TYPCRTE|SUBBRL,A9
|
|||
|
JRZ OKB
|
|||
|
ADDI CLENGTH,A0
|
|||
|
JRUC OKBB
|
|||
|
OKB ADDI LENGTH,A0
|
|||
|
OKBB MOVE *A0,A0,L
|
|||
|
CLR A1
|
|||
|
MOVX A0,A1
|
|||
|
SRL 16,A0
|
|||
|
MOVE A0,B0
|
|||
|
MOVE A1,B1
|
|||
|
CALLA RANGRAND
|
|||
|
CRT CALLA PRCSLP
|
|||
|
CALLA SCRTST
|
|||
|
JRNZ BRLO0
|
|||
|
CRT00 SLEEPK 1
|
|||
|
MOVE @HALT,A0
|
|||
|
JRNZ CRT00
|
|||
|
MOVK 3,A10
|
|||
|
ASL MOVK 10,A9
|
|||
|
ALPS MOVE A9,A0
|
|||
|
CALLR DOXY
|
|||
|
SLEEPK 3
|
|||
|
DSJS A9,ALPS
|
|||
|
DSJ A10,ASL
|
|||
|
CALLR CRT_1
|
|||
|
CLR A1 ;YES DO CHUNKS
|
|||
|
MOVE A1,*A0(PDATA+128),W
|
|||
|
DIE
|
|||
|
|
|||
|
BRLO0 jauc DELOBJDIE
|
|||
|
|
|||
|
BRLO MOVE A8,A0
|
|||
|
CALLA ISOBJ
|
|||
|
* Z BIT SET = NO OBJECT, A0 = 0 *
|
|||
|
* Z BIT CLR = NO OBJECT, A0 = PTR TO OBJECT *
|
|||
|
JRZ BDI
|
|||
|
MOVE *A8(OIMG),A1,L
|
|||
|
CMPI BRRL2,A1
|
|||
|
JRNZ BDI
|
|||
|
CALLA DELOBJ
|
|||
|
BDI DIE
|
|||
|
SHKCRT
|
|||
|
MOVK 10,A9
|
|||
|
LPS MOVE A9,A0
|
|||
|
CALLR DOXY
|
|||
|
SLEEPK 3
|
|||
|
DSJS A9,LPS
|
|||
|
MOVE A9,*A13(SHKIN)
|
|||
|
MOVE A10,A0
|
|||
|
JRUC CRT
|
|||
|
DOXY
|
|||
|
SLL 3,A0
|
|||
|
MOVI SHKX,A1
|
|||
|
ADD A0,A1
|
|||
|
MOVB *A1,A1
|
|||
|
ADDI SHKY,A0
|
|||
|
MOVB *A0,A0
|
|||
|
MOVE *A8(OXPOS),A2,W
|
|||
|
ADD A1,A2
|
|||
|
MOVE A2,*A8(OXPOS),W
|
|||
|
MOVE *A8(OYPOS),A2,W
|
|||
|
ADD A0,A2
|
|||
|
MOVE A2,*A8(OYPOS),W
|
|||
|
RETS
|
|||
|
|
|||
|
SHKX .BYTE 0,-2,0,2,-2,0,2,-1,-1,2,0
|
|||
|
SHKY .BYTE 0,0,2,-1,1,-2,2,-1,0,-2,1
|
|||
|
.EVEN
|
|||
|
|
|||
|
KILL_CRT3: ;PLAYER RUNNING INTO IT AND WALL!
|
|||
|
MMTM SP,A1,A2,A7,A9
|
|||
|
;A8=PLAYER
|
|||
|
MOVE *A8(OPLINK),A0,L
|
|||
|
MOVI P1DATA,A2
|
|||
|
MOVE *A0(PNUM),A10
|
|||
|
DEC A10
|
|||
|
JRZ KC3
|
|||
|
MOVI P2DATA,A2
|
|||
|
KC3 MOVI CRTPT2,A1
|
|||
|
CALLA SCRADD2
|
|||
|
MOVE A9,A8
|
|||
|
MOVE *A8(OXPOS),A0
|
|||
|
MOVE *A8(OYVAL),A9,L
|
|||
|
MOVX A0,A9
|
|||
|
CREATE FUTUREPID,SECRET_B
|
|||
|
JRUC NOSCR
|
|||
|
KILL_CRT2: ;TIME BOMB
|
|||
|
MMTM SP,A1,A2,A7,A9
|
|||
|
CLR A1
|
|||
|
MOVE A1,*A0(OID),W
|
|||
|
JRUC TOEXP
|
|||
|
SECRET_B
|
|||
|
;TURN ON SECRET BONUS
|
|||
|
MOVE A9,A1
|
|||
|
MOVX A9,A0
|
|||
|
SLL 16,A0
|
|||
|
MOVI SECBON,A2 ;IMG
|
|||
|
MOVI 460,A3 ;ZPOS
|
|||
|
MOVI DMAWNZ|M_NOCOLL,A4 ;NON-ZERO VALUE
|
|||
|
MOVI CLSDEAD,A5 ;I DELETE MYSELF ID
|
|||
|
CLR A6
|
|||
|
CLR A7
|
|||
|
CALLA BEGINOBJ2 ;NO WORLD ADDED IN
|
|||
|
CALLA CYCLEON
|
|||
|
MOVI 50,B0
|
|||
|
MOVI 90,B1
|
|||
|
CALLA RANGRAND
|
|||
|
CALLA PRCSLP
|
|||
|
CLR A11
|
|||
|
JRUC INHERE
|
|||
|
|
|||
|
KILL_CRT:
|
|||
|
;CRATE TO FLASH, EXPLODE
|
|||
|
MMTM SP,A1,A2,A7,A9
|
|||
|
MOVE *A8(OPLINK),A1,L
|
|||
|
MOVE *A1(SHKIN),A9
|
|||
|
JRNZ NOSHK
|
|||
|
;START CRATE PROCESS SHAKING
|
|||
|
MOVE A1,*A1(SHKIN) ;SET FLAG
|
|||
|
MMTM SP,A0,A1
|
|||
|
MOVE A1,A0
|
|||
|
MOVE *A1(PTIME),A10
|
|||
|
MOVI CMAN,A1
|
|||
|
MOVI SHKCRT,A7
|
|||
|
CALLA XFERPROC
|
|||
|
MMFM SP,A0,A1
|
|||
|
NOSHK
|
|||
|
MOVE *A0(OID),A9,W ;KILLERS OID
|
|||
|
ANDI F_SUBT,A9
|
|||
|
SLL 4,A9
|
|||
|
ADDI PUNISHT,A9
|
|||
|
MOVE *A9,A9
|
|||
|
MOVE *A1(HITS),A7
|
|||
|
ADD A9,A7
|
|||
|
MOVE A7,*A1(HITS)
|
|||
|
CMPI 85,A7 ;60
|
|||
|
JRLT OKTF
|
|||
|
;KILLED BY BULLET
|
|||
|
;ADD TO PLYR SCORE
|
|||
|
TOEXP
|
|||
|
MOVE *A0(OPLINK),A0,L
|
|||
|
MOVE *A0(MYPLYR),A0
|
|||
|
MOVI P1DATA,A2
|
|||
|
DEC A0
|
|||
|
JRZ TOEXP2
|
|||
|
CMPI 1,A0
|
|||
|
JRNZ NOSCR
|
|||
|
MOVI P2DATA,A2
|
|||
|
TOEXP2 MOVI CRTPT,A1
|
|||
|
CALLA SCRADD2 ;DO IT!
|
|||
|
NOSCR
|
|||
|
; MOVK MISLPUN,A0
|
|||
|
;WILL EXPLODE
|
|||
|
CALLR CRT_1
|
|||
|
MOVK MISLPUN,A1
|
|||
|
MOVE A1,*A0(PDATA+128),W
|
|||
|
MOVE *A8(OPLINK),A0,L
|
|||
|
MOVE *A0(PROCID),A1,W
|
|||
|
CMPI CMAN,A1
|
|||
|
JRNZ NXS
|
|||
|
CALLA KILL
|
|||
|
NXS MOVK 1,A0
|
|||
|
MOVE A0,@OUT_FLG
|
|||
|
MMFM SP,A1,A2,A7,A9
|
|||
|
RETS
|
|||
|
|
|||
|
CRT_1
|
|||
|
;START EXPLODE
|
|||
|
;JEWELS, HOSTAGES, BAD GUYS MAY APPEAR!
|
|||
|
; MOVE A0,@KEEPXY
|
|||
|
MOVI ALTEXP3,A0
|
|||
|
CALLA ONESND
|
|||
|
MOVE *A8(OFLAGS),A0
|
|||
|
ORI M_NOCOLL,A0
|
|||
|
MOVE A0,*A8(OFLAGS)
|
|||
|
MOVE *A8(OID),A9
|
|||
|
CMPI CLSNEUT|TYPCRTE|SUBBRL,A9
|
|||
|
JRNZ FFE ;FLASH BARREL!
|
|||
|
CREATE SHOTPID,EXPLB
|
|||
|
RETS
|
|||
|
FFE CREATE SHOTPID,EXPL
|
|||
|
RETS
|
|||
|
|
|||
|
OKTF MOVI 03F3F0000H,A9
|
|||
|
CREATE0 FLASHME
|
|||
|
MMFM SP,A1,A2,A7,A9
|
|||
|
RETS
|
|||
|
|
|||
|
;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
|
|||
|
|
|||
|
PUNISHT: ;0,REGULAR,SPRAY,0,0,NONSTOP,0
|
|||
|
.WORD 0,3,4,0,0,MISLPUN,0,0 ;NONSTOP TO STAY SAME! OTHERS USE IT
|
|||
|
EXPLB
|
|||
|
;BARREL TO EXPLODE
|
|||
|
; MOVE A9,*A13(PDATA+128)
|
|||
|
CLR A9
|
|||
|
MOVK 2,A5
|
|||
|
CALLR PIT2
|
|||
|
SLEEPK 10
|
|||
|
MOVI CLSTS,A11
|
|||
|
CLR A9 ;A9=XVEL
|
|||
|
CLR A10 ;A10=YVEL
|
|||
|
MOVE @PCTOT,A0
|
|||
|
CMPI 20,A0
|
|||
|
JRNC SKPU
|
|||
|
CREATE CMAN,CHUNK_OBJ
|
|||
|
SKPU MOVE A10,*A0(PDATA),W ;NO PAL CHANGE
|
|||
|
|
|||
|
; MOVE @KEEPXY,A0
|
|||
|
MOVE *A13(PDATA+128),A0
|
|||
|
|
|||
|
CMPI MISLPUN,A0 ;# IS SAME AS IN PUNISH TABLE FOR MSL
|
|||
|
JRNZ NOMIS
|
|||
|
;MISSILE KILLED BARREL, NO SHRAPNEL
|
|||
|
JRUC BULLGN0
|
|||
|
NOMIS
|
|||
|
MOVE @SCNTR,A3
|
|||
|
INC A3
|
|||
|
MOVE A3,@SCNTR
|
|||
|
ANDI 01,A3
|
|||
|
SLL 5,A3
|
|||
|
MOVI PLYROBJS,A2
|
|||
|
ADD A3,A2
|
|||
|
MOVE *A2,A0,L ;GET FIRST ENTRY
|
|||
|
JRNZ PX
|
|||
|
XORI 32,A3
|
|||
|
ADDI PLYROBJS,A3
|
|||
|
MOVE *A3,A0,L
|
|||
|
|
|||
|
PX CALLA XYSKOBJ
|
|||
|
|
|||
|
MOVE A5,A1
|
|||
|
MOVE A6,A2
|
|||
|
CALLA GETADIR2
|
|||
|
MOVE A0,A9 ;FROM SHAWN!
|
|||
|
CLR A10
|
|||
|
CREATE SHRPPID,SHRAPNL
|
|||
|
MOVK 1,A10
|
|||
|
CREATE SHRPPID,SHRAPNL
|
|||
|
MOVK 2,A10
|
|||
|
CREATE SHRPPID,SHRAPNL
|
|||
|
MOVK 3,A10
|
|||
|
CREATE SHRPPID,SHRAPNL
|
|||
|
MOVK 4,A10
|
|||
|
CREATE SHRPPID,SHRAPNL
|
|||
|
BULLGN0 SLEEPK 8
|
|||
|
BULLGN jauc DELOBJDIE
|
|||
|
|
|||
|
;CVRT .BYTE 0,3,7,5,1,4,6,2,8
|
|||
|
; .EVEN
|
|||
|
YVTBL .LONG 0,Y1,Y2,Y3,Y4,Y5,Y6,Y7,Y8
|
|||
|
XVTBL .LONG 0,X1,X2,X3,X4,X5,X6,X7,X8
|
|||
|
|
|||
|
X8: .LONG 0,-10000H,-1C000H,-20000H,-20000H
|
|||
|
Y8: .LONG -18000H,-1C000H,-1A000H,-10000H,0
|
|||
|
;Y8: .LONG -18000H,-1C000H,10000H,-10000H,0
|
|||
|
;
|
|||
|
X1: .LONG -20000H,-10000H,0,10000H,20000H ;UP
|
|||
|
Y1: .LONG -10000H,-18000H,-1C000H,-18000H,-10000H
|
|||
|
|
|||
|
X2: .LONG 0,10000H,1C000H,20000H,20000H
|
|||
|
Y2: .LONG -18000H,-1C000H,-1A000H,-10000H,0
|
|||
|
|
|||
|
X3: .LONG 10000H,20000H,23000H,20000H,10000H
|
|||
|
Y3: .LONG -20000H,-10000H,0,10000H,20000H
|
|||
|
|
|||
|
X4: .LONG 0,10000H,1C000H,20000H,20000H
|
|||
|
Y4: .LONG 18000H,1C000H,1A000H,10000H,0
|
|||
|
|
|||
|
X5: .LONG -20000H,-10000H,0,10000H,20000H
|
|||
|
Y5: .LONG 10000H,18000H,1C000H,18000H,10000H
|
|||
|
|
|||
|
X6: .LONG 0,-10000H,-1C000H,-20000H,-20000H
|
|||
|
Y6: .LONG 18000H,1C000H,1A000H,10000H,0
|
|||
|
|
|||
|
X7: .LONG -10000H,-20000H,-23000H,-20000H,-10000H
|
|||
|
Y7: .LONG -20000H,-10000H,0,10000H,20000H
|
|||
|
|
|||
|
SHRAP
|
|||
|
.LONG SLUD1
|
|||
|
.WORD 3
|
|||
|
.LONG SLUD2
|
|||
|
.WORD 3
|
|||
|
.LONG SLUD3
|
|||
|
.WORD 3
|
|||
|
.LONG SLUD4
|
|||
|
.WORD 3
|
|||
|
.LONG SLUD5
|
|||
|
.WORD 3
|
|||
|
.LONG SLUD6
|
|||
|
.WORD 3
|
|||
|
.LONG SLUD1
|
|||
|
.WORD 3
|
|||
|
.LONG SLUD2
|
|||
|
.WORD 3
|
|||
|
.LONG SLUD3
|
|||
|
.WORD 3
|
|||
|
.LONG SLUD4
|
|||
|
.WORD 3
|
|||
|
.LONG SLUD5
|
|||
|
.WORD 3
|
|||
|
.LONG SLUD6
|
|||
|
.WORD 3
|
|||
|
.LONG 0
|
|||
|
|
|||
|
SHRAPNL
|
|||
|
;TURN ON OBJECT AT CORRECT XY
|
|||
|
;GET VELOCITY BASED ON DIRECTION IN A9 INDEX INTO TABLE WITH A10
|
|||
|
SLL 5,A9
|
|||
|
MOVI YVTBL,A0
|
|||
|
ADD A9,A0
|
|||
|
MOVE *A0,A7,L
|
|||
|
ADDI XVTBL,A9 ;GET VELOCITY TABLE
|
|||
|
MOVE *A9,A6,L
|
|||
|
SLL 5,A10
|
|||
|
ADD A10,A6
|
|||
|
MOVE *A6,A6,L
|
|||
|
ADD A10,A7
|
|||
|
MOVE *A7,A7,L
|
|||
|
|
|||
|
CALLA GETANIXY
|
|||
|
* A2 = APOINT OYVAL, 32 BITS *
|
|||
|
* A3 = APOINT OXVAL, 32 BITS *
|
|||
|
MOVE A2,A1
|
|||
|
MOVE A3,A0
|
|||
|
MOVI 293,A3 ;242 159
|
|||
|
MOVI DMAWNZ,A4
|
|||
|
MOVI CLSENMY|TYPGOO,A5 ;ENMY|TYPSHOT,A5
|
|||
|
MOVI SLUD1,A2
|
|||
|
CALLA BEGINOBJ2
|
|||
|
MOVI SHRAP,A9
|
|||
|
MOVI SHRAP,A10
|
|||
|
|
|||
|
MOVI SLM,A0
|
|||
|
MOVE A0,*A13(MYLIST),L
|
|||
|
MOVI SQUISH,A0 ;FOR WHEN I GOOB ONTO PLAYER
|
|||
|
MOVE A0,*A13(MYSND),L
|
|||
|
BSTART
|
|||
|
MOVK 18,A0 ;23
|
|||
|
MOVE A0,*A13(BLAGE)
|
|||
|
MOVK 15,A0 ;1
|
|||
|
MOVE A0,*A13(FDLY) ;FRANIM DELAY
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A13(FXOR)
|
|||
|
MOVE A0,*A13(MYPLYR)
|
|||
|
jruc BULL_TOP
|
|||
|
|
|||
|
bslp SLEEPK 1
|
|||
|
BULL_TOP
|
|||
|
move *a13(FXOR),a0 ;>Bullet collison check
|
|||
|
movk 1,a1
|
|||
|
xor a1,a0
|
|||
|
move a0,*a13(FXOR)
|
|||
|
sll 5,a0
|
|||
|
addi PLYRPRCS,a0,L
|
|||
|
move *a0,a3,L
|
|||
|
jrz bmiss
|
|||
|
move *a3(LEG_PTR),a0,L
|
|||
|
|
|||
|
move *a8(OXPOS),a6 ;Get shot X
|
|||
|
move *a8(OSIZEX),a1
|
|||
|
srl 1,a1
|
|||
|
add a1,a6 ;Center X
|
|||
|
|
|||
|
move *a0(OXPOS),a4
|
|||
|
subk 2,a4 ;X offset
|
|||
|
sub a4,a6
|
|||
|
jrlt bmiss
|
|||
|
subk 12,a6 ;Width
|
|||
|
jrhs bmiss
|
|||
|
|
|||
|
move *a8(OYPOS),a7 ;Get shot Y
|
|||
|
move *a8(OSIZEY),a1
|
|||
|
srl 1,a1
|
|||
|
add a1,a7 ;Center Y
|
|||
|
|
|||
|
move *a0(OYPOS),a5
|
|||
|
subk 10,a5 ;Y offset
|
|||
|
sub a5,a7
|
|||
|
jrlt bmiss
|
|||
|
subk 21,a7 ;Height
|
|||
|
jrhs bmiss
|
|||
|
|
|||
|
|
|||
|
move *a3(DEAD),a1
|
|||
|
jrnz DOSLM
|
|||
|
move *a3(DELYDET),a1
|
|||
|
jrnz DOSLM
|
|||
|
callr DO_GOOJ
|
|||
|
|
|||
|
DOSLM CLR A0
|
|||
|
MOVE A0,*A8(OXVEL),L
|
|||
|
MOVE A0,*A8(OYVEL),L
|
|||
|
MOVI 160,A0
|
|||
|
MOVE A0,*A8(OZPOS)
|
|||
|
DOSLM2 MOVE *A13(MYLIST),A9,L ;SLM,A9
|
|||
|
MOVE *A13(MYSND),A0,L
|
|||
|
JRZ RTAG
|
|||
|
CALLA ONESND
|
|||
|
RTAG jauc FRQDELDIE
|
|||
|
|
|||
|
|
|||
|
bmiss move *a13(FDLY),a0
|
|||
|
dec a0
|
|||
|
move a0,*a13(FDLY)
|
|||
|
jrnz bslp
|
|||
|
|
|||
|
MOVE A9,A9
|
|||
|
JRNZ ANIM
|
|||
|
MOVE *A13(BLAGE),A0 ;THIS BULLET IS NOT ANIMATING!
|
|||
|
DEC A0
|
|||
|
MOVE A0,*A13(BLAGE)
|
|||
|
JRZ BULLGN
|
|||
|
MOVK 3,A1
|
|||
|
AND A1,A0
|
|||
|
JRNZ NRT
|
|||
|
CALLA SCRTST
|
|||
|
JRNZ BULLGN
|
|||
|
NRT MOVK 10,A0
|
|||
|
MOVE A0,*A13(FDLY)
|
|||
|
CALLA CHK_BULL
|
|||
|
JRC BULLGN ;BR=SHOT HAS HIT WALL
|
|||
|
jruc bslp
|
|||
|
|
|||
|
|
|||
|
ANIM MOVK 4,A1
|
|||
|
JSRP FRANIM
|
|||
|
JRNC C3
|
|||
|
MOVE A10,A9 ;RESET A9 LIST PNTR
|
|||
|
MOVK 3,A0
|
|||
|
MOVE A0,*A13(FDLY)
|
|||
|
MOVI 159,A1 ;133
|
|||
|
MOVE A1,*A8(OZPOS)
|
|||
|
|
|||
|
calla SCRTST
|
|||
|
jrnz BULLGN ;Off screen?
|
|||
|
|
|||
|
calla CHK_BULL
|
|||
|
jrnc bslp
|
|||
|
clr a0 ;hit
|
|||
|
move a0,*a13(MYSND),L
|
|||
|
jruc DOSLM
|
|||
|
|
|||
|
C3 move a0,*a13(FDLY)
|
|||
|
jruc BULL_TOP
|
|||
|
|
|||
|
|
|||
|
*****************************************************************************
|
|||
|
|
|||
|
;CHECK GOOB BALL IN A8 AGAINST PLAYERS
|
|||
|
;A8=GOOB BALL PNTR
|
|||
|
;CALL WITH THE FOLLOWING INFO SET UP IN PDATA:
|
|||
|
;FXOR .EQU PDATA+144 ;UHW SHOULD BE 0 OR 1 TO START WITH
|
|||
|
;MYLIST .EQU PDATA+64 ;UHL FRANIM LIST FOR THIS GOOB UPON DEATH
|
|||
|
;MYSND .EQU PDATA+96 ;UHL SOUND HEADER FOR GOO TYPE DEATH
|
|||
|
|
|||
|
CK_GOOB
|
|||
|
move *a13(FXOR),a0
|
|||
|
movk 1,a1
|
|||
|
xor a1,a0
|
|||
|
move a0,*a13(FXOR)
|
|||
|
sll 5,a0
|
|||
|
addi PLYRPRCS,a0,L
|
|||
|
move *a0,a0,L
|
|||
|
jrz ICANT
|
|||
|
move *a0(DEAD),a1 ;is player dead?
|
|||
|
jrnz ICANT ;yup!
|
|||
|
move *a0(DELYDET),a1 ;is player invincible right now?
|
|||
|
jrnz ICANT ;yup!
|
|||
|
move *a0(LEG_PTR),a0,L
|
|||
|
|
|||
|
move *a8(OXPOS),a6 ;Get shot X
|
|||
|
move *a8(OSIZEX),a2
|
|||
|
srl 1,a2
|
|||
|
add a2,a6 ;Center X
|
|||
|
|
|||
|
move *a0(OXPOS),a4
|
|||
|
subk 2,a4 ;X offset
|
|||
|
sub a4,a6
|
|||
|
jrlt ICANT
|
|||
|
subk 12,a6 ;Width
|
|||
|
jrhs ICANT
|
|||
|
|
|||
|
move *a8(OYPOS),a7 ;Get shot Y
|
|||
|
move *a8(OSIZEY),a2
|
|||
|
srl 1,a2
|
|||
|
add a2,a7 ;Center Y
|
|||
|
|
|||
|
move *a0(OYPOS),a5
|
|||
|
subk 6,a5 ;Y offset
|
|||
|
sub a5,a7
|
|||
|
jrlt ICANT
|
|||
|
subk 20,a7 ;Height
|
|||
|
jrhs ICANT
|
|||
|
|
|||
|
callr DO_GOOJ ;HIT
|
|||
|
ICANT rets
|
|||
|
|
|||
|
********************************
|
|||
|
|
|||
|
DO_GOOJ ;A8=*Shot obj
|
|||
|
|
|||
|
mmtm sp,a8,a10
|
|||
|
move a8,a10 ;Pass to GOOJ
|
|||
|
SWAP A0,A8
|
|||
|
CALLA SHOTKILL ;START PLAYER DEATH
|
|||
|
|
|||
|
MOVK 7,A6 ;5 MAYBE
|
|||
|
FHZ2 CREATE0 GOOJ
|
|||
|
MOVE *A13(MYLIST),A1,L ;SLM,A9
|
|||
|
MOVE A1,*A0(MYLIST),L
|
|||
|
MOVE *A13(MYSND),A1,L
|
|||
|
MOVE A1,*A0(MYSND),L
|
|||
|
DSJ A6,FHZ2
|
|||
|
mmfm sp,a8,a10
|
|||
|
RETS
|
|||
|
|
|||
|
*****************************************************************************
|
|||
|
|
|||
|
GOOJ ;A10=*Shot obj
|
|||
|
|
|||
|
MOVK 1,B0
|
|||
|
MOVK 10,B1
|
|||
|
CALLA RANGRAND
|
|||
|
CALLA PRCSLP
|
|||
|
MOVI -7800H,B0
|
|||
|
MOVI 7800H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,A7
|
|||
|
MOVI -8000H,B0
|
|||
|
MOVI 8000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,A6
|
|||
|
MOVI -7,B0
|
|||
|
MOVK 7,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,A9
|
|||
|
MOVI -2,B0 ;-7
|
|||
|
MOVK 18,B1 ;7
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,A1
|
|||
|
MOVE *A10(OXPOS),A0
|
|||
|
ADD A1,A0
|
|||
|
MOVE *A10(OYPOS),A1
|
|||
|
ADD A9,A1
|
|||
|
SLL 16,A0
|
|||
|
SLL 16,A1
|
|||
|
MOVI SLUD1,A2 ;IMG
|
|||
|
MOVI 159,A3 ;ZPOS
|
|||
|
MOVI DMAWNZ|M_NOCOLL,A4 ;NON-ZERO VALUE
|
|||
|
MOVI CLSDEAD,A5 ;I DELETE MYSELF ID
|
|||
|
CALLA BEGINOBJ2 ;NO WORLD ADDED IN
|
|||
|
JRUC DOSLM2
|
|||
|
|
|||
|
|
|||
|
SLM .LONG SLMD1
|
|||
|
.WORD 5
|
|||
|
.LONG SLMD2
|
|||
|
.WORD 5
|
|||
|
.LONG SLMD3
|
|||
|
.WORD 5
|
|||
|
.LONG SLMD4
|
|||
|
.WORD 15
|
|||
|
.LONG SLMD3
|
|||
|
.WORD 4
|
|||
|
.LONG SLMD2
|
|||
|
.WORD 4
|
|||
|
.LONG SLMD1
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
|
|||
|
EXPL
|
|||
|
;CRATE TO EXPLODE
|
|||
|
;START OTHER BLUE EXPLOSIONS
|
|||
|
CALLR DOLOTS
|
|||
|
SLEEPK 13
|
|||
|
MOVE *A8(OYPOS),A0
|
|||
|
ADDK 11,A0
|
|||
|
MOVE A0,*A8(OYPOS)
|
|||
|
MOVE *A8(OXPOS),A0
|
|||
|
SUBK 3,A0
|
|||
|
MOVE A0,*A8(OXPOS)
|
|||
|
MOVI 40,A0
|
|||
|
MOVE A0,*A8(OZPOS)
|
|||
|
MOVI CRT3,A1 ;BROKEN CRATE
|
|||
|
MOVE *A8(OFLAGS),A4
|
|||
|
; MOVE A8,A0 ;GET RID OF CRATE ALTOGETHER!
|
|||
|
; CALLA DELOBJ
|
|||
|
CALLA ANI
|
|||
|
SLEEPK 15
|
|||
|
|
|||
|
MOVE @WAVE,A0
|
|||
|
SLL 3,A0
|
|||
|
ADDI HTYP,A0
|
|||
|
MOVB *A0,A0
|
|||
|
JRZ MKFND
|
|||
|
;BRING OUT FIEND
|
|||
|
CREATE AHMDPID,CRT_AHMD ;FLAME THROWER DUDE
|
|||
|
DIE
|
|||
|
MKFND
|
|||
|
;BRING OUT FIEND
|
|||
|
CREATE FNDPID,FIEND ;PURPLE FIEND FROM CRATE
|
|||
|
DIE
|
|||
|
HTYP .BYTE 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1
|
|||
|
.BYTE 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1
|
|||
|
.BYTE 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1
|
|||
|
.EVEN
|
|||
|
DOLOTS
|
|||
|
MOVK 3,A5
|
|||
|
MOVK 1,A9
|
|||
|
PIT
|
|||
|
MOVK 3,A10 ;SLEEP THIS LONG BEFORE BLOWING
|
|||
|
CREATE SHOTPID,EXPTBMB
|
|||
|
MOVK 6,A10 ;SLEEP THIS LONG BEFORE BLOWING
|
|||
|
CREATE SHOTPID,EXPTBMB
|
|||
|
PIT2
|
|||
|
MOVK 8,A10 ;SLEEP THIS LONG BEFORE BLOWING
|
|||
|
CREATE SHOTPID,EXPTBMB
|
|||
|
MOVK 14,A10 ;SLEEP THIS LONG BEFORE BLOWING
|
|||
|
CREATE SHOTPID,EXPTBMB
|
|||
|
MOVK 2,A10 ;SLEEP THIS LONG BEFORE BLOWING
|
|||
|
CREATE SHOTPID,EXPTBMB
|
|||
|
DSJ A5,PIT
|
|||
|
RETS
|
|||
|
|
|||
|
CLSTS .LONG RP1,WOODPC,WOODPC2,WOODPC3,WOODPC4,WOODPC2,WOODPC,WOODPC4
|
|||
|
.LONG WOODPC5,0
|
|||
|
BLSTS2A .LONG RP1,RPC,RPC,WOODPC4,WOODPC3
|
|||
|
.LONG WOODPC5,0
|
|||
|
BLSTS2 .LONG RP1,RPC,RPC,RPC,RPC,RPC,RPC,WOODPC4,WOODPC3,WOODPC2,WOODPC
|
|||
|
.LONG WOODPC5,0
|
|||
|
RPC .LONG OPC1
|
|||
|
.WORD NEWPALET|2
|
|||
|
.LONG REACTR
|
|||
|
.LONG OPC2
|
|||
|
.WORD 4
|
|||
|
.LONG OPC3
|
|||
|
.WORD 4
|
|||
|
.LONG OPC4
|
|||
|
.WORD 4
|
|||
|
.LONG OPC5
|
|||
|
.WORD 4
|
|||
|
.LONG OPC6
|
|||
|
.WORD 4
|
|||
|
.LONG OPC7
|
|||
|
.WORD 4
|
|||
|
.LONG OPC8
|
|||
|
.WORD 4
|
|||
|
.LONG OPC8
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
WOODPC
|
|||
|
.LONG RP1
|
|||
|
.WORD FLIPBITS|1,(M_FLIPV)
|
|||
|
.LONG RP2
|
|||
|
.WORD 4
|
|||
|
.LONG RP3
|
|||
|
.WORD 4
|
|||
|
.LONG RP4
|
|||
|
.WORD 4
|
|||
|
.LONG RP5
|
|||
|
.WORD 4
|
|||
|
.LONG RP6
|
|||
|
.WORD 4
|
|||
|
.LONG RP7
|
|||
|
.WORD 4
|
|||
|
.LONG RP8
|
|||
|
.WORD 4
|
|||
|
.LONG RP9
|
|||
|
.WORD 4
|
|||
|
.LONG RP10
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
WOODPC4
|
|||
|
.LONG RP1
|
|||
|
.WORD 10
|
|||
|
.LONG RP2
|
|||
|
.WORD 5
|
|||
|
.LONG RP3
|
|||
|
.WORD 5
|
|||
|
.LONG RP4
|
|||
|
.WORD 5
|
|||
|
.LONG RP5
|
|||
|
.WORD 5
|
|||
|
.LONG RP6
|
|||
|
.WORD 4
|
|||
|
.LONG RP7
|
|||
|
.WORD 4
|
|||
|
.LONG RP8
|
|||
|
.WORD 4
|
|||
|
.LONG RP9
|
|||
|
.WORD 4
|
|||
|
.LONG RP10
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
WOODPC3
|
|||
|
.LONG RP1
|
|||
|
.WORD FLIPBITS|19,(M_FLIPH)
|
|||
|
.LONG RP2
|
|||
|
.WORD 4
|
|||
|
.LONG RP3
|
|||
|
.WORD 4
|
|||
|
.LONG RP4
|
|||
|
.WORD 4
|
|||
|
.LONG RP5
|
|||
|
.WORD 4
|
|||
|
.LONG RP6
|
|||
|
.WORD 4
|
|||
|
.LONG RP7
|
|||
|
.WORD 4
|
|||
|
.LONG RP8
|
|||
|
.WORD 4
|
|||
|
.LONG RP9
|
|||
|
.WORD 4
|
|||
|
.LONG RP10
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
WOODPC2
|
|||
|
.LONG RSR1
|
|||
|
.WORD FLIPBITS|19,(M_FLIPH+M_FLIPV)
|
|||
|
.LONG RSR2
|
|||
|
.WORD 4
|
|||
|
.LONG RSR3
|
|||
|
.WORD 4
|
|||
|
.LONG RSR4
|
|||
|
.WORD 4
|
|||
|
.LONG RSR5
|
|||
|
.WORD 4
|
|||
|
.LONG RSR6
|
|||
|
.WORD 4
|
|||
|
.LONG RSR7
|
|||
|
.WORD 4
|
|||
|
.LONG RSR8
|
|||
|
.WORD 4
|
|||
|
.LONG RSR9
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
WOODPC5
|
|||
|
.LONG RSR1
|
|||
|
.WORD 5
|
|||
|
.LONG RSR2
|
|||
|
.WORD 5
|
|||
|
.LONG RSR3
|
|||
|
.WORD 5
|
|||
|
.LONG RSR4
|
|||
|
.WORD 5
|
|||
|
.LONG RSR5
|
|||
|
.WORD 5
|
|||
|
.LONG RSR6
|
|||
|
.WORD 5
|
|||
|
.LONG RSR7
|
|||
|
.WORD 5
|
|||
|
.LONG RSR8
|
|||
|
.WORD 5
|
|||
|
.LONG RSR9
|
|||
|
.WORD 5
|
|||
|
.LONG 0
|
|||
|
|
|||
|
TAKEEL
|
|||
|
MOVI 02860000H,A0
|
|||
|
MOVI 06F0000H,A1
|
|||
|
MOVI TAKEIT,A2 ;IMG
|
|||
|
JRUC INH
|
|||
|
SPATH
|
|||
|
;A8=REACTOR
|
|||
|
SLEEPK 30
|
|||
|
MOVI TARGPID,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTP
|
|||
|
JRNZ SPATH
|
|||
|
;NOT SCROLLING TO A TARGET XY
|
|||
|
SLEEP 300
|
|||
|
|
|||
|
CLR A0
|
|||
|
MOVE A0,@TMP
|
|||
|
|
|||
|
;CHECK FOR SECRET PASSAGE MESSAGE
|
|||
|
move @P1DATA+TKEYS,a0
|
|||
|
move @P2DATA+TKEYS,a1
|
|||
|
add a1,a0
|
|||
|
CMPI 140,A0
|
|||
|
JRLT NOPE2
|
|||
|
;CHECK TOTAL # OF KEYS COLLECTED HERE!
|
|||
|
;OPEN SECRET PATH
|
|||
|
;A8=REACTOR
|
|||
|
;START A PROCESS WHICH CHECKS PLAYERS XY EVERY 10 TICKS
|
|||
|
CLR A9
|
|||
|
CREATE SECDR,CK_SECRET
|
|||
|
MOVE *A8(OXVAL),A0,L
|
|||
|
ADDI 0610000H,A0
|
|||
|
MOVE *A8(OYVAL),A1,L
|
|||
|
ADDI 0200000H,A1
|
|||
|
MOVI PATH,A2 ;IMG
|
|||
|
JRUC INH
|
|||
|
DROPBMB:
|
|||
|
;A8=GATE
|
|||
|
MOVE *A8(OXVAL),A0,L
|
|||
|
ADDI 0330000H,A0
|
|||
|
MOVE *A8(OYVAL),A1,L
|
|||
|
ADDI 0300000H,A1
|
|||
|
MOVI DROPIT,A2 ;IMG
|
|||
|
INH MOVI 60,A3 ;ZPOS
|
|||
|
MOVI DMAWNZ|M_NOCOLL,A4 ;NON-ZERO VALUE
|
|||
|
MOVI CLSNEUT|TYPNEUT,A5 ;ID
|
|||
|
CLR A6 ;XVEL
|
|||
|
CLR A7 ;YVEL
|
|||
|
CALLA BEGINOBJ2 ;NO WORLD ADDED IN
|
|||
|
MOVE A8,A0
|
|||
|
CALLA OBJOFF
|
|||
|
DROPBMBA
|
|||
|
SLEEPK 30
|
|||
|
MOVI TARGPID,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTP
|
|||
|
JRNZ DROPBMBA
|
|||
|
;NOT SCROLLING TO A TARGET XY
|
|||
|
SLEEP 120
|
|||
|
MOVK 25,A10
|
|||
|
MANY
|
|||
|
SLEEPK 15
|
|||
|
MOVE A8,A0
|
|||
|
CALLA OBJON
|
|||
|
SLEEPK 15
|
|||
|
MOVE A8,A0
|
|||
|
CALLA OBJOFF
|
|||
|
DSJ A10,MANY
|
|||
|
DOUT jauc DELOBJDIE
|
|||
|
|
|||
|
NOPE2 DIE
|
|||
|
KILL_GATE
|
|||
|
;TIME BOMB HAS EXPLODED NEAR GATE
|
|||
|
MMTM SP,A1,A7,A9,A11
|
|||
|
;NOT SCROLLING, CAN BLOW UP GATE!
|
|||
|
CLR A1
|
|||
|
MOVE A1,*A8(OID),W ;ZERO TIME BOMB OID
|
|||
|
MOVE *A8(OPLINK),A0,L
|
|||
|
MOVE *A0(MYPLYR),A9
|
|||
|
CREATE0 GATE_EXP
|
|||
|
EX MMFM SP,A1,A7,A9,A11
|
|||
|
RETS
|
|||
|
CK_SECRET
|
|||
|
;CHECK FOR EITHER PLAYER TO ENTER SECRET PASSAGE WAY
|
|||
|
;A9=PATH # 0-?
|
|||
|
;FOR #1 01F, 050H
|
|||
|
; DIE
|
|||
|
SLEEP 8*60 ;UNTIL SCROLLING STOPS!
|
|||
|
CK_SEC SLEEPK 30
|
|||
|
MOVE @PLYROBJS,A0,L
|
|||
|
JRZ NXT
|
|||
|
CALLR CKIT
|
|||
|
JRC AHIT
|
|||
|
NXT MOVE @PLYROBJS+32,A0,L
|
|||
|
JRZ CK_SEC
|
|||
|
CALLR CKIT
|
|||
|
JRNC CK_SEC
|
|||
|
|
|||
|
AHIT
|
|||
|
;SMART BOMB SCREEN
|
|||
|
;TURN OFF ALL BARRELS/CRATE PROCESSES
|
|||
|
;WIPE TO NEW MODULE
|
|||
|
;HAVE PLAYERS RUN OUT ONTO NEW SCREEN
|
|||
|
;WHAT IF CRUISE MISSILIES ARE COMING DURING SECRET PATH ENTER?
|
|||
|
MOVE A0,A9
|
|||
|
;A9=PLYR IMG PTR WHO GOT ME FOR SMART BOMB
|
|||
|
MOVI TARGPID,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILALL
|
|||
|
MOVI DELPID,A0
|
|||
|
CALLA KILALL
|
|||
|
|
|||
|
MOVI WRPSND,A0
|
|||
|
CALLA ONESNDOVR
|
|||
|
|
|||
|
MOVI PALB,A11
|
|||
|
JSRP FADE_STRT
|
|||
|
|
|||
|
MOVE @KEEPIT,A0,L ;GET RID OF RIGHT SIDE POOL
|
|||
|
CALLA ISOBJ
|
|||
|
* Z BIT SET = NO OBJECT, A0 = 0 *
|
|||
|
* Z BIT CLR = NO OBJECT, A0 = PTR TO OBJECT *
|
|||
|
JRZ SKPMI
|
|||
|
CALLA DELOBJ
|
|||
|
SKPMI
|
|||
|
MOVI [08FEH,0],A0
|
|||
|
MOVE A0,@WORLDTLY,L
|
|||
|
CLR A0
|
|||
|
MOVE A0,@WORLDTLX,L
|
|||
|
|
|||
|
SLEEPK 2
|
|||
|
;KILL EVERYTHING BUT PLAYER STUFF
|
|||
|
;SHOW NEW BLIMP MODULE
|
|||
|
CALLA KILBGND
|
|||
|
SLEEPK 2
|
|||
|
CALLR DO5
|
|||
|
SLEEPK 1
|
|||
|
|
|||
|
CALLA BGND_UD1
|
|||
|
MOVI frtcls2,a0
|
|||
|
CALLA BLAKOUT
|
|||
|
MOVI PALCNO,A0
|
|||
|
MOVK 2,A1
|
|||
|
CALLA FADEIN
|
|||
|
MOVI PALBNO,A0
|
|||
|
CALLA FB_FADEIN
|
|||
|
|
|||
|
MOVE *A13(PNUM),A8 ;FOR SCRIPTPLAY
|
|||
|
MOVE @STATUS,A8
|
|||
|
CMPI 3,A8
|
|||
|
JRNZ OP
|
|||
|
MOVK 1,A8
|
|||
|
MOVK 2,A10 ;INDICATES FROM LOWER RIGHT
|
|||
|
CREATE SCRPID,SCRIPTPLAY
|
|||
|
CALLR SETXY
|
|||
|
MOVK 2,A8
|
|||
|
OP MOVK 2,A10 ;INDICATES FROM LOWER RIGHT
|
|||
|
CREATE SCRPID,SCRIPTPLAY
|
|||
|
CALLR SETXY
|
|||
|
|
|||
|
CALLA BGND_UD1
|
|||
|
SLEEPK 1
|
|||
|
CALLA BGND_UD1
|
|||
|
SLEEPK 1
|
|||
|
CALLA BGND_UD1
|
|||
|
CLR A0
|
|||
|
MOVE A0,@HALT
|
|||
|
SLEEP 50
|
|||
|
CREATE JOYPID,JOY_UPDATE
|
|||
|
;FADE IN COMPLETE
|
|||
|
MOVI ICN3,A0
|
|||
|
MOVE A0,@ICLIST,L
|
|||
|
CREATE ICONPID,SEND_ICON
|
|||
|
|
|||
|
DOATP ;FOR DEBUG = START=2
|
|||
|
CLR A0
|
|||
|
MOVE A0,@CRSRAM,L
|
|||
|
CALLA SETC2
|
|||
|
MOVI frtcls2,A8 ;PAL NAME
|
|||
|
MOVI PALTMP,A9 ;RAM AREA
|
|||
|
MOVI [58,64],A10 ;BEGIN/END COLOR #
|
|||
|
MOVK 7,A11 ;RATE IN TICKS
|
|||
|
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
|||
|
CALLA STRT_G ;GOOB POOLS
|
|||
|
|
|||
|
SLEEPK 1
|
|||
|
;KILL OFF SCRN IMAGES
|
|||
|
;REALIGN PLAYERS
|
|||
|
;START THEM RUNNING IN
|
|||
|
;PUT UP ZULU TYPE TEXT MESSAGE AFTER A MOMENT
|
|||
|
MOVK 2,A10
|
|||
|
MOVI [24,0],A9 ;Y ADD IN VALUE
|
|||
|
CREATE0 ZONE_TXT2
|
|||
|
SLEEP 120
|
|||
|
MOVK 18,A0
|
|||
|
MOVE A0,@CTOTAL
|
|||
|
MOVK 3,A9
|
|||
|
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 120
|
|||
|
MOVE @WORLDTLY,A9,L
|
|||
|
SRL 16,A9
|
|||
|
ADDI 130,A9 ;A9=Y TARGET LINE TO TRIGGER SCROLL
|
|||
|
CLR A8 ;A8=0 MEANS NOT CHECKING FOR X TARGET
|
|||
|
CLR A10
|
|||
|
CREATE TARGPID,TARGET
|
|||
|
CREATE0 SHIFTLM
|
|||
|
SLEEP 65
|
|||
|
MOVK 8,A0
|
|||
|
MOVE A0,@ARWOFF ;BLINK ARROW A0 MORE TIMES THEN KILL!
|
|||
|
CREATE FUTRPID,CKFORY
|
|||
|
DIE
|
|||
|
|
|||
|
FADE_STRT
|
|||
|
;USED FOR SECRET PATH
|
|||
|
;AND FOR INSTANT WARPS
|
|||
|
;A9=PLYR IMG PTR WHO GOT ME FOR SMART BOMB
|
|||
|
;A11=AUTOPAL LIST TO FADE
|
|||
|
MOVI RNG2PID,A0
|
|||
|
CALLR STPC
|
|||
|
MOVI RNG1PID,A0
|
|||
|
CALLR STPC
|
|||
|
CALLR KILPROCS
|
|||
|
CREATE0 SBOMB
|
|||
|
SLEEPK 2
|
|||
|
CALLR KILPROCS
|
|||
|
CLR A1
|
|||
|
MOVE A1,@CYCLIFE
|
|||
|
MOVE A1,@P1CTRL
|
|||
|
MOVE A1,@P2CTRL
|
|||
|
MOVI CYCPID,A0
|
|||
|
CALLA KIL1C
|
|||
|
MOVI POWPID,A0
|
|||
|
CALLA KIL1C
|
|||
|
|
|||
|
CALLA CLNPAL
|
|||
|
;FADE AUTOPAL
|
|||
|
MOVE A11,A0
|
|||
|
MOVK 2,A1
|
|||
|
CALLA FADEOUT
|
|||
|
|
|||
|
MOVI PALBNO,A0
|
|||
|
CALLA FB_FADEOUT
|
|||
|
|
|||
|
SLEEP 60
|
|||
|
|
|||
|
CALLA KILBGND
|
|||
|
|
|||
|
SLEEPK 2
|
|||
|
CALLA CLNPAL
|
|||
|
|
|||
|
CALLA RESTUFF_AUTOERASE
|
|||
|
|
|||
|
MOVE @WAVE,A0
|
|||
|
SUBK 32,A0
|
|||
|
JRNZ NOTEND
|
|||
|
;SHOCK FIX
|
|||
|
SLEEP 0D0H-60 ;READ MESSAGE
|
|||
|
NOTEND CALLR KILNOTME
|
|||
|
CLR A0
|
|||
|
MOVE A0,@INEXP ;I MAY HAVE KILLED TIME BOMBS
|
|||
|
MOVI PCINFO,A1
|
|||
|
MOVE A1,@LASTPC,L
|
|||
|
MOVE A0,*A1,L
|
|||
|
RETP
|
|||
|
KILPROCS
|
|||
|
MOVI CMAN,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVE A1,@HALT
|
|||
|
CALLA KILALL ;KILL ALL CRATES
|
|||
|
MOVI BMBPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI MAPPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI T72PID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI LORDPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI SHOTPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI JOYPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI ICONPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI BULPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI BLOWPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI HSTGPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI DROPPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI FUTUREPID,A0 ;FUTURE PROCS LIKE SHIFTING MINES
|
|||
|
CALLA KILALL
|
|||
|
MOVI WARPPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI T72PID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI FLGPID,A0 ;7/29
|
|||
|
CALLA KILALL
|
|||
|
MOVI shawnpid,A0 ;7/29
|
|||
|
CALLA KILALL
|
|||
|
MOVI PONDPID,A0 ;9/22
|
|||
|
CALLA KILALL
|
|||
|
MOVI JEEPID,A0 ;9/26
|
|||
|
CALLA KILALL
|
|||
|
MOVI BOSSPID,A0 ;9/26
|
|||
|
CALLA KILALL
|
|||
|
MOVI NEUTPID,A0 ;11/25
|
|||
|
CALLA KILALL
|
|||
|
RETS
|
|||
|
STPC
|
|||
|
;STOP FLASHING COLOR CYCLE UPON ENTRY INTO WARPS
|
|||
|
MMTM SP,A8,A9,A10,A11
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTP
|
|||
|
JRZ NOCY
|
|||
|
CALLA GETA9
|
|||
|
CALLA GETA8
|
|||
|
CALLA GETA10
|
|||
|
CALLA GETA11
|
|||
|
CLR A1
|
|||
|
MOVE A1,*A0(PDATA),W ;ZERO TEMP FIELD
|
|||
|
MOVI XOUT0,A7
|
|||
|
CALLA XFERPROC
|
|||
|
NOCY
|
|||
|
MMFM SP,A8,A9,A10,A11
|
|||
|
RETS
|
|||
|
DO5
|
|||
|
MOVK 5,A0
|
|||
|
CALLA DOLORD
|
|||
|
MOVI SRECT1,A0
|
|||
|
MOVE A0,@CURRENT,L
|
|||
|
MOVI BSRECT1,A0
|
|||
|
MOVE A0,@BCURRENT,L
|
|||
|
MOVI ENRECT5,A0
|
|||
|
MOVE A0,@EN_CURRENT,L ;FOR BOX COLLISIONS
|
|||
|
MOVI ERECT5,A0
|
|||
|
MOVE A0,@ENEMY_RECT,L ;FOR SPAWNING
|
|||
|
MOVI PATH_MOD,A0 ;SHOW SECRET PATH MODULE
|
|||
|
MOVE A0,@BAKMODS,L
|
|||
|
CALLA BGND_UD1
|
|||
|
RETS
|
|||
|
XX .EQU 241
|
|||
|
YY .EQU 202
|
|||
|
SRECT1 .WORD 242-XX,1613-YY,283-XX,2380+350-YY ;SECRET PATH RECT LIST 1
|
|||
|
.WORD 274-XX,2195+350-YY,367-XX,2277+350-YY
|
|||
|
.WORD 594-XX,2202-YY,638-XX,2290+337-YY
|
|||
|
.WORD 500-XX,1974+350-YY,608-XX,2122+350-YY
|
|||
|
.WORD 260-XX,0584H,06CH,1685-YY
|
|||
|
.WORD 531-XX,0584H,643-XX,1685-YY
|
|||
|
.WORD 531-XX,063AH,643-XX,1982-YY
|
|||
|
.WORD 0
|
|||
|
BSRECT1 .WORD 242-XX,1613-YY,270-XX,2375+350-YY ;BULLET RECT FOR SECRET #1
|
|||
|
.WORD 274-XX,2199+350-YY,360-XX,2265+350-YY
|
|||
|
.WORD 605-XX,2202-YY,638-XX,2280+337-YY
|
|||
|
.WORD 515-XX,1984+350-YY,608-XX,2105+350-YY
|
|||
|
.WORD 260-XX,056CH,336-XX,05BCH
|
|||
|
.WORD 012AH,056CH,640-XX,1673-YY
|
|||
|
.WORD 012AH,1824-YY,643-XX,06E6H
|
|||
|
.WORD 0
|
|||
|
|
|||
|
PALBNO .LONG SCOREPAL,0
|
|||
|
PALCNO .LONG 8*32*32+5*32+4,0
|
|||
|
PALENO .LONG 3*32*32+4*32+5,0
|
|||
|
PALB:
|
|||
|
.LONG 11*32*32+7*32+0,0
|
|||
|
|
|||
|
PATH_MOD:
|
|||
|
.LONG SEC1BMOD ;THIS IS FROM BLIMP (MODULE NAME)
|
|||
|
.WORD 0FFD8H-5,0 ;-1950 ;x,y start pos.
|
|||
|
.LONG >FFFFFFFF
|
|||
|
SETXY
|
|||
|
;A8=1 OR 2
|
|||
|
;RUNIN RIGHT FROM SIDE
|
|||
|
MOVE @WORLDTLX,A3,L ;Y LINE TO REAPPEAR AT
|
|||
|
ADDI [408,0],A3
|
|||
|
CMPI 1,A8
|
|||
|
JRNE VX1R
|
|||
|
;THIS IS FOR BRINGING THE PLAYER ON FROM OFF LEFT OF SCREEN
|
|||
|
MOVE @WORLDTLY,A2,L
|
|||
|
ADDI [0195,0],A2
|
|||
|
MOVE @PLYRPRCS,A0,L
|
|||
|
JRUC AXZ
|
|||
|
VX1R
|
|||
|
MOVE @WORLDTLY,A2,L
|
|||
|
ADDI [0210,0],A2
|
|||
|
MOVE @PLYRPRCS+32,A0,L
|
|||
|
AXZ
|
|||
|
MOVE *A0(TSO_PTR),A8,L
|
|||
|
MOVE *A0(LEG_PTR),A0,L
|
|||
|
MOVE A3,*A0(OXVAL),L
|
|||
|
MOVE A2,*A0(OYVAL),L
|
|||
|
|
|||
|
;REALIGN PLAYER HALVES WHEN WE RESET
|
|||
|
MOVE A8,A0
|
|||
|
MOVE *A13(LEG_PTR),A8,L ;GET LEG PTR OUT OF TORSO STRUCT
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE *A8(OFLAGS),A4,W
|
|||
|
ORI M_NOCOLL,A4
|
|||
|
CALLA GANISAG
|
|||
|
MOVE A0,A8
|
|||
|
RETS
|
|||
|
|
|||
|
KILNOTME:
|
|||
|
MMTM SP,A0,A2,A3,A4,A5
|
|||
|
MOVI OBJLST,A2,L
|
|||
|
KILOBP:
|
|||
|
MOVE A2,A3 ;SAVE PREVIOUS
|
|||
|
MOVE *A2,A2,L ;GET NEXT
|
|||
|
JREQ KILOBX ;ALL DONE
|
|||
|
MOVE *A2(OID),A4
|
|||
|
BTST 14,A4
|
|||
|
JRZ CONTK ;A CLSPLYR
|
|||
|
;KILL EVERYTHING BUT PLAYERS
|
|||
|
ANDI F_TYPE,A4
|
|||
|
CMPI TYPHLPR,A4 ;A HELPER BLADE
|
|||
|
JRNZ NEXCK
|
|||
|
MOVE *A2(OIMG),A0,L
|
|||
|
CMPI BLADE,A0
|
|||
|
JRZ KILOBP
|
|||
|
CMPI SHLD1,A0
|
|||
|
JRZ KILOBP
|
|||
|
CMPI SHLD2,A0
|
|||
|
JRZ KILOBP
|
|||
|
CMPI MEP1,A0
|
|||
|
JRZ KILOBP
|
|||
|
CMPI MEP2,A0
|
|||
|
JRZ KILOBP
|
|||
|
NEXCK CMPI TYPPLYR,A4
|
|||
|
JRZ KILOBP
|
|||
|
CONTK
|
|||
|
|
|||
|
MOVE *A2,*A3,L ;LINK AROUND IN ACTIVE LIST
|
|||
|
MOVE @OFREE,A5,L ;LINK INTO FREE LIST AT START
|
|||
|
MOVE A5,*A2,L
|
|||
|
MOVE A2,@OFREE,L ;POINT FREE TO CELL
|
|||
|
MOVE A3,A2
|
|||
|
JRUC KILOBP ;KILL THE REST
|
|||
|
KILOBX:
|
|||
|
MMFM SP,A0,A2,A3,A4,A5
|
|||
|
RETS
|
|||
|
CKIT
|
|||
|
;A9=SECRET #
|
|||
|
MOVE A9,A2
|
|||
|
SLL 5,A2
|
|||
|
ADDI AREA,A2
|
|||
|
MOVE *A2,A2,L
|
|||
|
CLR A3
|
|||
|
MOVY A2,A3
|
|||
|
SRL 16,A3
|
|||
|
ANDI 0FFFFH,A2
|
|||
|
MOVE *A0(OXPOS),A1
|
|||
|
SUB A3,A1
|
|||
|
ABS A1
|
|||
|
CMPI 15,A1
|
|||
|
JRNC CKO
|
|||
|
MOVE *A0(OYPOS),A1
|
|||
|
SUB A2,A1
|
|||
|
ABS A1
|
|||
|
CMPI 15,A1
|
|||
|
JRNC CKO
|
|||
|
SETC
|
|||
|
CKO RETS
|
|||
|
|
|||
|
AREA .LONG [01FH,050H]
|
|||
|
|
|||
|
SHSTG
|
|||
|
;SEND GROUP OF HOSTAGES DOWN AT PLAYER FROM ELEVATOR
|
|||
|
MOVK 2,A8
|
|||
|
CREATE0 LHLPS
|
|||
|
SEND1
|
|||
|
SLEEPK >15
|
|||
|
MOVE @WORLDTLY,A0,L
|
|||
|
ADDI [35,0],A0
|
|||
|
MOVE @WORLDTLX,A9,L
|
|||
|
SRL 16,A9
|
|||
|
ADDI 185,A9
|
|||
|
MOVY A0,A9
|
|||
|
CALLA SENDH_GROUP
|
|||
|
DSJ A8,SEND1
|
|||
|
DIE
|
|||
|
BAMS movk 7,a10
|
|||
|
bnes1 movi BAMSND,a9
|
|||
|
movk 10,a0 ;7
|
|||
|
CALLA RNDRNG0
|
|||
|
addk 3,a0
|
|||
|
btst 0,a0
|
|||
|
jrz bnes2
|
|||
|
movi BAMSND2,a9
|
|||
|
bnes2 calla PRCSLP
|
|||
|
move a9,a0
|
|||
|
calla ONESND
|
|||
|
dsj a10,bnes1
|
|||
|
SLEEP 90
|
|||
|
DIE
|
|||
|
GLUCK .WORD >F1F7,>40,>80E5,0 ;"GOOD LUCK"
|
|||
|
BAMSND .WORD >F3EE,>1,>8081,0 ;BOOM
|
|||
|
BAMSND2 .WORD >F3EE,>1,>8082,0 ;BOOM2
|
|||
|
GATE_EXP:
|
|||
|
;EXPLODE ENTIRE GATE
|
|||
|
;CHANGE GATE IMAGES TO BLOWN UP GATE IMAGES
|
|||
|
;DELETE BACKGROUND BLOCKS WITH ZPOS OF 0AH
|
|||
|
;A9=1 OR 2 OF PLAYER WHO KILLED GATE
|
|||
|
MOVE @TARGET_NUM,A0
|
|||
|
JRZ GAG
|
|||
|
;ELEVATOR DOORS
|
|||
|
;CHECK FOR PROPER WAVE HERE. DO NOT BLOW DOOR IF NOT CORRECT!
|
|||
|
MOVE @HULK_DN,A1
|
|||
|
JRZ GAG2
|
|||
|
;HULK WAVE DONE
|
|||
|
;CHECK FOR SCROLL
|
|||
|
PUSH A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI TARGPID,A0
|
|||
|
CALLA EXISTP
|
|||
|
JRZ GAGOK
|
|||
|
PULL A0
|
|||
|
DIE
|
|||
|
GAGOK PULL A0
|
|||
|
;NOT SCROLLING
|
|||
|
CMPI 2,A0
|
|||
|
JRNZ GE1
|
|||
|
CREATE0 DOZU
|
|||
|
JRUC GEO
|
|||
|
GE1 CMPI 3,A0
|
|||
|
JRNZ GEO
|
|||
|
CREATE0 DOZU2
|
|||
|
GEO CREATE0 SHSTG
|
|||
|
JRUC GAG3
|
|||
|
DOZU SLEEP 150
|
|||
|
;NEAR FIRST ELEVATOR
|
|||
|
MOVE @TMP,A0
|
|||
|
JANZ SUCIDE
|
|||
|
MOVK 4,A10
|
|||
|
MOVE A10,@TMP
|
|||
|
|
|||
|
MOVI [20,0],A9 ;Y ADD IN VALUE
|
|||
|
CREATE0 ZONE_TXT2 ;AWESOME, GO KILL DOWNSTAIRS
|
|||
|
GO_DOWN
|
|||
|
SLEEP 190H-120
|
|||
|
|
|||
|
;CHECK FOR PLAYERS UP INTO ELEVATOR
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@ICONS_DN
|
|||
|
CREATE NEUT2PID,DO_NEUTS
|
|||
|
|
|||
|
ELVCK SLEEPK 1
|
|||
|
MOVE @WORLDTLY+16,A2
|
|||
|
ADDI 45,A2
|
|||
|
MOVE @PLYROBJS,A0,L
|
|||
|
JRZ CKNX
|
|||
|
MOVE *A0(OYPOS),A1
|
|||
|
JRN CKNX
|
|||
|
CMP A1,A2
|
|||
|
JRC ELVCK
|
|||
|
CKNX MOVE @PLYROBJS+32,A0,L
|
|||
|
JRZ AHITV
|
|||
|
MOVE *A0(OYPOS),A1
|
|||
|
JRN AHITV
|
|||
|
CMP A1,A2
|
|||
|
JRC ELVCK
|
|||
|
AHITV
|
|||
|
;SMART BOMB SCREEN
|
|||
|
;TURN OFF ALL BARRELS/CRATE PROCESSES
|
|||
|
;WIPE TO NEW MODULE
|
|||
|
;HAVE PLAYERS RUN OUT ONTO NEW SCREEN
|
|||
|
;WHAT IF CRUISE MISSILIES ARE COMING DURING SECRET PATH ENTER?
|
|||
|
MOVE A0,A9
|
|||
|
;A9=PLYR IMG PTR WHO GOT ME FOR SMART BOMB
|
|||
|
MOVI TARGPID,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILALL
|
|||
|
MOVI DELPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI NEUT2PID,A0
|
|||
|
CALLA KIL1C
|
|||
|
movi BOMBNPID,a0
|
|||
|
calla KIL1C
|
|||
|
|
|||
|
MOVI WRPSND,A0
|
|||
|
CALLA ONESNDOVR
|
|||
|
|
|||
|
MOVI PALB,A11
|
|||
|
JSRP FADE_STRT
|
|||
|
|
|||
|
; movi ->1004,a0 ;Hide screen
|
|||
|
; move a0,@DPYSTRT
|
|||
|
|
|||
|
SLEEPK 2
|
|||
|
;KILL EVERYTHING BUT PLAYER STUFF
|
|||
|
;SHOW NEW BLIMP MODULE
|
|||
|
CALLA KILBGND
|
|||
|
SLEEPK 2
|
|||
|
movi NEUT2PID,a0 ;ONGOING NEUTRONS!
|
|||
|
CALLA KIL1C
|
|||
|
.REF STRT_UNDER
|
|||
|
MOVK 1,A10
|
|||
|
JSRP STRT_UNDER
|
|||
|
SLEEPK 2
|
|||
|
CLR A1
|
|||
|
MOVE A1,@DISPLAYON
|
|||
|
|
|||
|
CALLA BGND_UD1
|
|||
|
|
|||
|
MOVI UPAL,a0
|
|||
|
CALLA BLAKOUT
|
|||
|
MOVI UFLP,a0
|
|||
|
CALLA BLAKOUT
|
|||
|
MOVI JEEPP,a0
|
|||
|
CALLA BLAKOUT
|
|||
|
MOVI CANDB,a0
|
|||
|
CALLA BLAKOUT
|
|||
|
MOVI STUFFP,a0
|
|||
|
CALLA BLAKOUT
|
|||
|
MOVI FRTCLS,a0
|
|||
|
CALLA BLAKOUT
|
|||
|
MOVI DUXPAL,a0
|
|||
|
CALLA BLAKOUT
|
|||
|
|
|||
|
MOVI PALENO,A0
|
|||
|
MOVK 2,A1
|
|||
|
CALLA FADEIN
|
|||
|
MOVI PALBNO,A0
|
|||
|
CALLA FB_FADEIN
|
|||
|
|
|||
|
SLEEPK 2
|
|||
|
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,@DISPLAYON
|
|||
|
|
|||
|
CALLA BGND_UD1
|
|||
|
|
|||
|
|
|||
|
; movi -4,a0 ;Show screen
|
|||
|
; move a0,@DPYSTRT
|
|||
|
|
|||
|
CLR A0
|
|||
|
MOVE A0,@HALT
|
|||
|
SLEEP 50
|
|||
|
|
|||
|
MOVK 3,A0
|
|||
|
MOVE A0,@RUNIN,W ;FROM TOP
|
|||
|
|
|||
|
MOVE @STATUS,A9
|
|||
|
BTST 0,A9
|
|||
|
JRZ NEXT1
|
|||
|
MOVE @PLYRPRCS,A0,L
|
|||
|
MOVE *A0(TSO_PTR),A1,L
|
|||
|
MOVE *A0(LEG_PTR),A0,L
|
|||
|
MOVE @WORLDTLY,A2,L
|
|||
|
SUBI [20,0],A2
|
|||
|
MOVE A2,*A1(OYVAL),L
|
|||
|
MOVE A2,*A0(OYVAL),L
|
|||
|
MOVE @WORLDTLX,A2,L
|
|||
|
ADDI [190,0],A2
|
|||
|
MOVE A2,*A1(OXVAL),L
|
|||
|
MOVE A2,*A0(OXVAL),L
|
|||
|
|
|||
|
MOVK 1,A8
|
|||
|
MOVE @RUNIN,A10 ;A10=0 FOR COME IN FROM BOTTOM
|
|||
|
CREATE SCRPID,SCRIPTPLAY
|
|||
|
NEXT1 BTST 1,A9
|
|||
|
JRZ NEXT2
|
|||
|
MOVE @PLYRPRCS+32,A0,L
|
|||
|
MOVE *A0(TSO_PTR),A1,L
|
|||
|
MOVE *A0(LEG_PTR),A0,L
|
|||
|
MOVE @WORLDTLY,A2,L
|
|||
|
SUBI [20,0],A2
|
|||
|
MOVE A2,*A1(OYVAL),L
|
|||
|
MOVE A2,*A0(OYVAL),L
|
|||
|
MOVE @WORLDTLX,A2,L
|
|||
|
ADDI [210,0],A2
|
|||
|
MOVE A2,*A1(OXVAL),L
|
|||
|
MOVE A2,*A0(OXVAL),L
|
|||
|
MOVK 2,A8
|
|||
|
MOVE @RUNIN,A10 ;A10=0 FOR COME IN FROM BOTTOM
|
|||
|
CREATE SCRPID,SCRIPTPLAY
|
|||
|
NEXT2
|
|||
|
|
|||
|
CREATE JOYPID,JOY_UPDATE
|
|||
|
;FADE IN COMPLETE
|
|||
|
MOVI ICN1,A0 ;ICN3
|
|||
|
MOVE A0,@ICLIST,L
|
|||
|
CREATE ICONPID,SEND_ICON
|
|||
|
SLEEPK 30
|
|||
|
clr a0
|
|||
|
move a0,@RUNIN
|
|||
|
CALLA SETC2 ;LAND MINE CYCLE
|
|||
|
DIE
|
|||
|
|
|||
|
;MESSAGE SAYING THANKS FOR PLAYING THIS TEST OF T.C.
|
|||
|
; move @PLYROBJS+32,a2,L
|
|||
|
; move @PLYROBJS,a9,L
|
|||
|
; jrz bsn750
|
|||
|
; move a2,a2
|
|||
|
; jrz bsn760
|
|||
|
; movk 1,a0 ;>Give random player the smartbomb pts
|
|||
|
; callr rnd
|
|||
|
; jrz bsn760
|
|||
|
;bsn750 move a2,a9
|
|||
|
;bsn760 CREATE0 SBOMB
|
|||
|
;
|
|||
|
; CLR A0
|
|||
|
; MOVE A0,@SCORE_FLAG
|
|||
|
;
|
|||
|
; MOVI INGAMEOV,A0
|
|||
|
; MOVE A0,@GAMSTATE,W
|
|||
|
; SOUND1 MUSICOFF ;MUSIC HARD OFF
|
|||
|
; CLR A0
|
|||
|
; CLR A1
|
|||
|
; NOT A1
|
|||
|
;
|
|||
|
; CALLA KILALL ;KILL ALL GAME PROCESSES
|
|||
|
;
|
|||
|
; MOVK 1,A0
|
|||
|
; MOVE A0,@HALT
|
|||
|
; .REF CYCSPECT,RD15FONT,WRLD,STRCNRMO,MUSICOFF
|
|||
|
;
|
|||
|
;
|
|||
|
;
|
|||
|
;; SLEEP 90
|
|||
|
;
|
|||
|
;
|
|||
|
; .REF WIPEOUT
|
|||
|
; CALLA WIPEOUT
|
|||
|
; CREATE COLRPID,CYCSPECT ;START COLOR CYCLE PROCESS
|
|||
|
;
|
|||
|
; movi DISSND,a0 ;DO DISARM SOUND IF NOT BLOWING
|
|||
|
; calla ONESND
|
|||
|
;
|
|||
|
; MOVI RD15FONT,A11 ;FONT TABLE
|
|||
|
; CLR A0
|
|||
|
; MOVE A0,@WRLD
|
|||
|
; MOVK 2,A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
; CLR A0
|
|||
|
;
|
|||
|
; MOVI 3E3EH,A6 ;COLOR CYCLE DIGITS
|
|||
|
; MOVI [55-5,0200],A9 ;SCRN Y/X
|
|||
|
; MOVI LINE1,A8
|
|||
|
; JSRP STRCNRMO
|
|||
|
;
|
|||
|
; MOVI 3E3EH,A6 ;COLOR CYCLE DIGITS
|
|||
|
; MOVI [75-5,0200],A9 ;SCRN Y/X
|
|||
|
; MOVI LINE2,A8
|
|||
|
; JSRP STRCNRMO
|
|||
|
;
|
|||
|
; MOVI 3E3EH,A6 ;COLOR CYCLE DIGITS
|
|||
|
; MOVI [95-5,0200],A9 ;SCRN Y/X
|
|||
|
; MOVI LINE3,A8
|
|||
|
; JSRP STRCNRMO
|
|||
|
;
|
|||
|
; MOVI 3E3EH,A6 ;COLOR CYCLE DIGITS
|
|||
|
; MOVI [115-5,0200],A9 ;SCRN Y/X
|
|||
|
; MOVI LINE4,A8
|
|||
|
; JSRP STRCNRMO
|
|||
|
;
|
|||
|
; MOVI 3E3EH,A6 ;COLOR CYCLE DIGITS
|
|||
|
; MOVI [135-5,0200],A9 ;SCRN Y/X
|
|||
|
; MOVI LINE5,A8
|
|||
|
; JSRP STRCNRMO
|
|||
|
;
|
|||
|
; MOVI 3E3EH,A6 ;COLOR CYCLE DIGITS
|
|||
|
; MOVI [155-5,0200],A9 ;SCRN Y/X
|
|||
|
; MOVI LINE6,A8
|
|||
|
; JSRP STRCNRMO
|
|||
|
;
|
|||
|
;
|
|||
|
; SLEEP 10*60
|
|||
|
;
|
|||
|
; MOVI CLSNEUT|TYPTEXT|SUBTXT,A0
|
|||
|
; CLR A1
|
|||
|
; NOT A1
|
|||
|
; CALLA KILOBJ
|
|||
|
;
|
|||
|
;
|
|||
|
; MOVI INGAMEOV,A0
|
|||
|
; MOVE A0,@GAMSTATE,W
|
|||
|
; SOUND1 MUSICOFF ;MUSIC HARD OFF
|
|||
|
; CLR A0
|
|||
|
; CLR A1
|
|||
|
; NOT A1
|
|||
|
;
|
|||
|
; CALLA KILALL ;KILL ALL GAME PROCESSES
|
|||
|
; JSRP WNDWON
|
|||
|
; .REF GAMEOVER,GAMSTATE
|
|||
|
; CREATE GMEOVPID,GAMEOVER ;GAME IS NOW OFFICIALLY OVER
|
|||
|
; DIE
|
|||
|
;********************************
|
|||
|
;* Get random # with mask
|
|||
|
;* Preserves Regs 2-13
|
|||
|
;
|
|||
|
;rnd ;A0=Mask, A1/B0=Trashed!
|
|||
|
;
|
|||
|
; move @RAND,a1,L
|
|||
|
; rl a1,a1
|
|||
|
; move @HCOUNT,a14
|
|||
|
; rl a14,a1
|
|||
|
; add sp,a1
|
|||
|
; move a1,@RAND,L
|
|||
|
;
|
|||
|
; and a1,a0 ;A0=Rnd #
|
|||
|
; rets ;Pass CC
|
|||
|
;DISSND .WORD >F3EE,>18,>80B0,0 ;KEY MELODY TYPE SND
|
|||
|
;
|
|||
|
;LINE1 .BYTE "YOU HAVE COMPLETED",0
|
|||
|
;LINE2 .BYTE "THIS TEST OF TOTAL CARNAGE.",0
|
|||
|
;LINE3 .BYTE "THE COMPLETE GAME ARRIVES",0
|
|||
|
;LINE4 .BYTE "IN ONE WEEK. STAY TUNED!",0
|
|||
|
;LINE5 .BYTE "THANK YOU FOR PLAYING.",0
|
|||
|
;LINE6 .BYTE "CODE= ORCS",0
|
|||
|
; .EVEN
|
|||
|
;
|
|||
|
;
|
|||
|
|
|||
|
DOZU2 SLEEP 150
|
|||
|
;NEAR SECRET ELEVATOR
|
|||
|
MOVK 3,A10
|
|||
|
MOVI [20,0],A9
|
|||
|
CREATE0 ZONE_TXT2 ;TRY THESE PASSWORDS
|
|||
|
JRUC GO_DOWN
|
|||
|
GAG2 DIE
|
|||
|
GAG MOVI LORDPID,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILALL
|
|||
|
|
|||
|
GAG3 MOVI DROPPID,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTP
|
|||
|
JRZ SKIP
|
|||
|
;FOUND
|
|||
|
CALLA GETA8 ;GET RID OF TEXT MESSAGE "DROP IT"
|
|||
|
MOVI DOUT,A7
|
|||
|
CLR A1
|
|||
|
CALLA XFERPROC
|
|||
|
SKIP
|
|||
|
MOVI P1DATA,A2
|
|||
|
CMPI 1,A9
|
|||
|
JRZ PAP
|
|||
|
MOVI P2DATA,A2
|
|||
|
PAP MOVI GATEPT,A1
|
|||
|
CALLA SCRADD2
|
|||
|
|
|||
|
CREATE0 BAMS
|
|||
|
|
|||
|
MOVK 2,A0
|
|||
|
MOVE A0,@ARWOFF ;BLINK ARROW A0 MORE TIMES THEN KILL!
|
|||
|
MOVE @TARGET_NUM,A10
|
|||
|
MOVI CLSENMY|TYPGATE,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTOBJ
|
|||
|
JRZ WHAT2
|
|||
|
CLR A1
|
|||
|
MOVE A1,*A0(OID),W
|
|||
|
MOVE *A0(OFLAGS),A1
|
|||
|
ORI M_NOCOLL,A1
|
|||
|
MOVE A1,*A0(OFLAGS)
|
|||
|
;A0=A GATE PNTR WHICH MUST EXPLODE
|
|||
|
MOVE A0,A8
|
|||
|
CREATE0 DO_GATE_EXP1
|
|||
|
MOVI CLSENMY|TYPGATE,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTOBJ
|
|||
|
JRZ WHAT2
|
|||
|
CLR A1
|
|||
|
MOVE A1,*A0(OID),W
|
|||
|
MOVE *A0(OFLAGS),A1
|
|||
|
ORI M_NOCOLL,A1
|
|||
|
MOVE A1,*A0(OFLAGS)
|
|||
|
MOVE A0,A8
|
|||
|
CREATE0 DO_GATE_EXP1
|
|||
|
SLEEPK 20 ;20
|
|||
|
CALLR DELZ10
|
|||
|
|
|||
|
|
|||
|
MOVE @WAVE,A0
|
|||
|
CMPI 18,A0
|
|||
|
JRNZ WHAT2
|
|||
|
;NEW RECT RIGHT NOW!
|
|||
|
MOVI AIRRECT1A,A0
|
|||
|
MOVE A0,@CURRENT,L
|
|||
|
|
|||
|
WHAT2 SLEEPK 1
|
|||
|
MOVI TARGPID,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTP
|
|||
|
JRNZ WHAT2
|
|||
|
|
|||
|
MOVE @WAVE,A0
|
|||
|
CMPI 18,A0
|
|||
|
JRNZ ASDI
|
|||
|
;INTO AIRPORT
|
|||
|
movk AUDAIRPORT,a0
|
|||
|
calla aud_addnumplyrs
|
|||
|
MOVI 010000H,A0
|
|||
|
MOVE A0,@HZSPD,L
|
|||
|
MOVE @WORLDTLY,A9,L
|
|||
|
SRL 16,A9
|
|||
|
ADDI 90,A9 ;A9=Y TARGET LINE TO TRIGGER SCROLL
|
|||
|
CLR A8 ;A8=0 MEANS NOT CHECKING FOR X TARGET
|
|||
|
MOVI PATHU2,A10 ;INDICATES NEW SCROLL WITH SCRL TABLE
|
|||
|
CREATE TARGPID,TARGET
|
|||
|
|
|||
|
MOVI GLUCK,A0
|
|||
|
CALLA ONESND
|
|||
|
|
|||
|
CLR A9 ;A9=0 FOR UP, 1 FOR RGT
|
|||
|
CREATE ARWPID,ONARRW ;TURN ON UP ARROW
|
|||
|
CLR A0
|
|||
|
MOVE A0,@TARGET_NUM
|
|||
|
; MOVI AIRRECT1A,A0
|
|||
|
; MOVE A0,@CURRENT,L
|
|||
|
MOVK 13,A0
|
|||
|
MOVE A0,@CTOTAL,W ;18 FOR REACTOR, 11 FOR DISH
|
|||
|
FIX SLEEP 54
|
|||
|
MOVK 10,A0
|
|||
|
MOVE A0,@ARWOFF
|
|||
|
DIE
|
|||
|
AIRRECT1A ;ENTERING AIRPORT AFTER GATE BLOWS
|
|||
|
.WORD 0C80H,12B5H,0D0AH,1306H
|
|||
|
.WORD 0D74H,12B5H,0E08H,1306H
|
|||
|
;TOP AREA
|
|||
|
.WORD 0C58H,0FEFH,0CB8H,106DH
|
|||
|
.WORD 0C7CH,0FECH,0D30H,1044H
|
|||
|
.WORD 0D8CH,0FECH,0EC5H,1044H
|
|||
|
.WORD 0C58H,10E5H,0CBCH,1118H
|
|||
|
.WORD 0
|
|||
|
AIRRECT2A ;1ST LOCK DOWN IN AIRPORT
|
|||
|
.WORD 0C58H,0FEFH,0CB8H,106DH
|
|||
|
.WORD 0C7CH,0FECH,0D30H,1044H
|
|||
|
.WORD 0D8CH,0FECH,0E85H,1044H ;EC5
|
|||
|
.WORD 0C58H,10E5H,0CBCH,1118H
|
|||
|
.WORD 0
|
|||
|
AIRBRECT2 ;1ST LOCK DOWN IN AIRPORT FOR BULLETS
|
|||
|
.WORD 0C58H,0FEFH,0CB0H,1060H
|
|||
|
.WORD 0C7CH,0FECH,0D28H,1037H
|
|||
|
.WORD 0D8CH,0FECH,0E85H,1037H ;EC5
|
|||
|
.WORD 0C58H,10D4H,0CB0H,110CH
|
|||
|
.WORD 0
|
|||
|
PATHU2 ;DIR,CNT
|
|||
|
.WORD 1,249H,0
|
|||
|
ASDI MOVE @WAVE,A0
|
|||
|
CMPI 1,A0
|
|||
|
JRZ OKAY1
|
|||
|
;
|
|||
|
; MOVE A10,A10
|
|||
|
; JRZ OKAY1
|
|||
|
;READY TO GO DOWN STAIRS!
|
|||
|
SDI DIE
|
|||
|
DELZ10
|
|||
|
;NOW DELETE SHADOW FROM BAKLST
|
|||
|
MOVI BAKLST,A2,L
|
|||
|
MOVK 10,A0
|
|||
|
MOVI RAMLST,A4
|
|||
|
CLR A5
|
|||
|
MOVE A5,*A4,L
|
|||
|
EXISTOBP:
|
|||
|
MOVE *A2,A2,L ;GET NEXT
|
|||
|
JREQ EXISTOBX ;ALL DONE
|
|||
|
MOVE *A2(OZPOS),A3
|
|||
|
CMP A0,A3 ;MATCH?
|
|||
|
JRNE EXISTOBP ;NO
|
|||
|
MOVE A2,*A4+,L
|
|||
|
MOVE A5,*A4,L
|
|||
|
JRUC EXISTOBP
|
|||
|
EXISTOBX:
|
|||
|
MOVI RAMLST,A4
|
|||
|
DELP
|
|||
|
MOVE *A4+,A0,L
|
|||
|
JRZ DELZX
|
|||
|
CALLA DELBOBJ
|
|||
|
JRUC DELP
|
|||
|
DELZX RETS
|
|||
|
|
|||
|
OKAY1
|
|||
|
MOVK 2,A0
|
|||
|
MOVE A0,@WAVE
|
|||
|
SLEEP 60
|
|||
|
;PLAYER THRU FORT GATES
|
|||
|
;CAN START NEW TARGET PROC
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@TARGET_NUM ;NEXT TARGET NUMBER FOR SCROLL
|
|||
|
MOVE @WORLDTLY,A9,L
|
|||
|
SRL 16,A9
|
|||
|
ADDI 160,A9 ;80 ;A9=Y TARGET LINE TO TRIGGER SCROLL
|
|||
|
CLR A8 ;A8=0 MEANS NOT CHECKING FOR X TARGET
|
|||
|
CLR A10
|
|||
|
CREATE TARGPID,TARGET
|
|||
|
SLEEP 90
|
|||
|
CLR A9 ;A9=0 FOR UP, 1 FOR RGT
|
|||
|
CREATE ARWPID,ONARRW ;TURN ON UP ARROW
|
|||
|
SLEEP 53
|
|||
|
MOVK 15,A0
|
|||
|
MOVE A0,@ARWOFF ;BLINK ARROW X MORE TIMES THEN KILL!
|
|||
|
DIE
|
|||
|
|
|||
|
START_EXP:
|
|||
|
; MOVK 2,A5 ;3
|
|||
|
LPIT0
|
|||
|
MOVK 3,A10 ;SLEEP THIS LONG BEFORE BLOWING
|
|||
|
CREATE SHOTPID,EXPTBMB
|
|||
|
MOVK 8,A10 ;SLEEP THIS LONG BEFORE BLOWING
|
|||
|
CREATE SHOTPID,EXPTBMB
|
|||
|
MOVK 14,A10 ;SLEEP THIS LONG BEFORE BLOWING
|
|||
|
CREATE SHOTPID,EXPTBMB
|
|||
|
MOVK 2,A10 ;SLEEP THIS LONG BEFORE BLOWING
|
|||
|
CREATE SHOTPID,EXPTBMB
|
|||
|
; DSJ A5,LPIT0
|
|||
|
RETS
|
|||
|
DO_GATE_EXP1:
|
|||
|
CREATE SHOTPID,GATE_EXP1
|
|||
|
CREATE SHOTPID,GATE_EXP_BIG
|
|||
|
SLEEPK 1CH
|
|||
|
CREATE SHOTPID,GATE_EXP1
|
|||
|
SLEEPK 1CH
|
|||
|
CREATE SHOTPID,GATE_EXP1
|
|||
|
DIE
|
|||
|
GATE_EXP_BIG
|
|||
|
SLEEPK 10
|
|||
|
MOVK 3,A10
|
|||
|
GB1
|
|||
|
MOVE *A8(OXVAL),A0,L
|
|||
|
MOVE *A8(OYVAL),A1,L
|
|||
|
ADDI [28H,0],A1
|
|||
|
MOVE A10,A2
|
|||
|
SLL 5,A2
|
|||
|
ADDI XOVER,A2
|
|||
|
MOVE *A2,A2,L
|
|||
|
ADD A2,A0
|
|||
|
MOVI XPLD1,A2
|
|||
|
MOVI 250,A3
|
|||
|
MOVI DMAWNZ|M_NOCOLL,A4
|
|||
|
MOVI CLSDEAD,A5 ;I DELETE MYSELF ID
|
|||
|
CLR A6
|
|||
|
CLR A7
|
|||
|
CALLA BEGINOBJ2
|
|||
|
MOVI XBOOMS,A9
|
|||
|
CREATE SHOTPID,FRQDELDIE
|
|||
|
DSJ A10,GB1
|
|||
|
DIE
|
|||
|
XOVER .LONG 0,[0,0],[30,0],[60,0]
|
|||
|
|
|||
|
|
|||
|
GATE_EXP1:
|
|||
|
;CONTINUE THIS GATES EXPLOSION
|
|||
|
;START A SERIES OF EXPLOSIONS SURROUNDING THIS IMAGE
|
|||
|
;A8=GATE PNTR
|
|||
|
;A10=TARGET_NUM
|
|||
|
PUSH A10
|
|||
|
CLR A9
|
|||
|
CALLR START_EXP
|
|||
|
MOVI [20,-15],A9 ;A9=[Y,X] OFFSET
|
|||
|
CALLR START_EXP
|
|||
|
MOVI [20,0],A9 ;A9=[Y,X] OFFSET
|
|||
|
CALLR START_EXP
|
|||
|
MOVI [20,20],A9 ;A9=[Y,X] OFFSET
|
|||
|
CALLR START_EXP
|
|||
|
PULL A10
|
|||
|
SLEEP 60
|
|||
|
;ANI BROKEN GATE IN
|
|||
|
MOVI ARPRT9,A1 ;BROKEN GATE IMAGE
|
|||
|
MOVE @WAVE,A0
|
|||
|
CMPI 18,A0
|
|||
|
JRZ ST1
|
|||
|
MOVI BROKN,A1 ;BROKEN GATE IMAGE
|
|||
|
MOVE A10,A10
|
|||
|
JRZ ST1
|
|||
|
MOVI BROKN2,A1 ;BROKEN ELEVATOR DOOR IMAGE
|
|||
|
ST1 MOVE *A8(OFLAGS),A4
|
|||
|
CALLA ANI
|
|||
|
DIE
|
|||
|
|
|||
|
EXPTBMBB:
|
|||
|
MOVE A11,*A13(MYPLYR)
|
|||
|
MOVI CLSPLYR|TYPBOMB,A11
|
|||
|
MOVE A10,A0
|
|||
|
CALLA PRCSLP
|
|||
|
MOVI DMAWNZ,A4 ;NON-ZERO VALUE
|
|||
|
JRUC EXPV
|
|||
|
EXPTBMB:
|
|||
|
;EXP TIME BOMB
|
|||
|
;A8=TICKING BOMB IMG PNTR
|
|||
|
;A9=[Y,X] OFFSET FROM CENTER
|
|||
|
;A10=SLEEP TIME BEFORE EXPLOSION STARTS
|
|||
|
MOVI CLSPLYR|TYPNEUT,A11 ;CLSNEUT
|
|||
|
MOVE A10,A0
|
|||
|
CALLA PRCSLP
|
|||
|
MOVI DMAWNZ|M_NOCOLL,A4 ;NON-ZERO VALUE
|
|||
|
|
|||
|
EXPV CALLA GETCPNT ;A1=[Y,X]
|
|||
|
ADD A9,A1
|
|||
|
MOVE A9,A8
|
|||
|
|
|||
|
MOVI -80000H,B0
|
|||
|
MOVI 080000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,A9
|
|||
|
MOVI -80000H,B0
|
|||
|
MOVI 80000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,A10
|
|||
|
MOVI -014000H,B0
|
|||
|
MOVI 014000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,A6
|
|||
|
MOVI -010000H,B0
|
|||
|
MOVI 010000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,A7
|
|||
|
|
|||
|
MOVE A8,A8
|
|||
|
JRZ REGBMB
|
|||
|
;GATE EXPLODING - MAYBE USE RED FIRE BALL
|
|||
|
MOVI FIREEXP,A8
|
|||
|
JRUC FRE
|
|||
|
REGBMB
|
|||
|
MOVI BLUEEXP,A8
|
|||
|
FRE MOVX A1,A0
|
|||
|
ADD A9,A1 ;A1=Y OFFSET
|
|||
|
MOVE A8,A9
|
|||
|
SLL 16,A0
|
|||
|
ADD A10,A0
|
|||
|
MOVI 292,A3 ;241 ;282
|
|||
|
MOVE A11,A5
|
|||
|
MOVI CLD1,A2
|
|||
|
CALLA BEGINOBJ2
|
|||
|
;CREATE EXPLOSION, AND THEN DIE
|
|||
|
MOVI EXP2HI,A0
|
|||
|
CALLA ONESND
|
|||
|
jauc FRQDELDIE
|
|||
|
|
|||
|
TBOMBD2 ;AUTOMATIC BOMB DROPPER
|
|||
|
MOVE A9,*A13(MYPLYR) ;A9=PLAYER 1 OR 2 WHO FIRED ME
|
|||
|
MOVE A9,*A13(SHKFLG) ;DO NOT SHAKE SCRN AT EXPLODE
|
|||
|
MOVI P1DATA,A10
|
|||
|
DEC A9
|
|||
|
JRZ TBO2
|
|||
|
MOVI P2DATA,A10
|
|||
|
JRUC TBO2
|
|||
|
TBOMBD: ;TIME BOMB AT DEATH
|
|||
|
MOVE A9,*A13(MYPLYR) ;A9=PLAYER 1 OR 2 WHO FIRED ME
|
|||
|
MOVI P1DATA,A10
|
|||
|
DEC A9
|
|||
|
JRZ TBO
|
|||
|
MOVI P2DATA,A10
|
|||
|
JRUC TBO
|
|||
|
TBOMB:
|
|||
|
;TIME BOMB PLACEMENT/ EXPLOSION
|
|||
|
;A9=1/2 FOR PLAYER #
|
|||
|
MOVE A9,*A13(MYPLYR) ;A9=PLAYER 1 OR 2 WHO FIRED ME
|
|||
|
|
|||
|
MOVE @WAVE,A0
|
|||
|
CMPI 38,A0
|
|||
|
JRZ ROUT ;DOWN STAIRS NO RINGS ON BMB
|
|||
|
CMPI 21,A0
|
|||
|
JRZ ROUT ;DOWN STAIRS NO RINGS ON BMB
|
|||
|
|
|||
|
;TURN ON RINGS WHEN BOMB IS DROPPED
|
|||
|
CMPI 1,A9
|
|||
|
JRZ ONEP
|
|||
|
MOVE @timerp2,a0
|
|||
|
CMPI 350,A0
|
|||
|
JRGE ROUT ;IF CURRENT GAME IS TOO LONG!
|
|||
|
|
|||
|
MOVI RNG2PID,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTP
|
|||
|
JRNZ ROUT
|
|||
|
MOVK 6,A10 ;TIME RINGS ARE ON
|
|||
|
CREATE RNG2PID,RINGS ;PLACE RING AROUND PLAYER X
|
|||
|
JRUC ROUT
|
|||
|
ONEP
|
|||
|
MOVE @timerp1,a0
|
|||
|
CMPI 350,A0
|
|||
|
JRGE ROUT ;IF CURRENT GAME IS TOO LONG!
|
|||
|
MOVI RNG1PID,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTP
|
|||
|
JRNZ ROUT
|
|||
|
MOVK 6,A10 ;TIME RINGS ARE ON
|
|||
|
CREATE RNG1PID,RINGS ;PLACE RING AROUND PLAYER X
|
|||
|
ROUT
|
|||
|
|
|||
|
|
|||
|
MOVI SETDWN,A0 ;SET DOWN SND
|
|||
|
CALLA ONESND
|
|||
|
MOVI P1DATA,A10
|
|||
|
DEC A9
|
|||
|
JRZ TB1
|
|||
|
MOVI P2DATA,A10
|
|||
|
TB1 MOVE *A10(BMB_CNT),A0
|
|||
|
DEC A0
|
|||
|
MOVE A0,*A10(BMB_CNT)
|
|||
|
TBO CLR A0
|
|||
|
MOVE A0,*A13(SHKFLG) ;YES SHAKE SCRN AT EXPLODE
|
|||
|
TBO2 SLL 5,A9
|
|||
|
ADDI PLYROBJS,A9
|
|||
|
MOVE *A9,A8,L
|
|||
|
MOVE *A8(OXVAL),A0,L
|
|||
|
ADDI 0130000H,A0
|
|||
|
MOVE *A8(OYVAL),A1,L
|
|||
|
ADDI 0150000H,A1
|
|||
|
CLR A9
|
|||
|
CALLR INTARGET
|
|||
|
MOVI DMAWNZ|M_FLIPH|M_NOCOLL,A4 ;NON-ZERO VALUE
|
|||
|
MOVI CLSPLYR|TYPNEUT,A5 ;ID
|
|||
|
CLR A6 ;XVEL
|
|||
|
CLR A7 ;YVEL
|
|||
|
MOVI DET1,A2 ;IMG
|
|||
|
MOVE A9,A9
|
|||
|
JRZ NOOUT
|
|||
|
;CRUISE MISSILES CALLED IN
|
|||
|
;PASS ALONG MYPLYR FOR POINTS!
|
|||
|
MOVI XHAIR,A2
|
|||
|
MOVI 69,A3 ;ZPOS
|
|||
|
CALLA BEGINOBJ2 ;NO WORLD ADDED IN
|
|||
|
MOVI TRGTSND,A0
|
|||
|
CALLA ONESND
|
|||
|
MOVE *A10(TMISLS),A0
|
|||
|
INC A0
|
|||
|
MOVE A0,*A10(TMISLS) ;TOTAL MISSILES USED
|
|||
|
|
|||
|
CMPI 2,A9 ;2=RANDOM PLACEMENT
|
|||
|
JRNZ WATE
|
|||
|
;RANDOM PLACEMENT
|
|||
|
MOVE A9,@INEXP
|
|||
|
MOVE *A8(OXPOS),A0 ;OR SATELITE DISH
|
|||
|
MOVE *A8(OYPOS),A1
|
|||
|
MOVI TARG1,A2
|
|||
|
MOVE A0,*A2+,W
|
|||
|
MOVE A1,*A2,W
|
|||
|
MOVE @T72PNTR,A0,L
|
|||
|
MOVE *A0(OPLINK),A1,L
|
|||
|
MOVE *A1(PDATA+336),A2
|
|||
|
ADDK 25,A2 ;12
|
|||
|
MOVE A2,*A1(PDATA+336)
|
|||
|
;HITS .EQU PDATA+336 ;UHW HITS ABSORBED
|
|||
|
NOD MOVE *A0(OXPOS),A1
|
|||
|
ADDI 40,A1
|
|||
|
MOVE *A0(OYPOS),A0
|
|||
|
ADDI 40,A0
|
|||
|
MOVI TARG2,A2
|
|||
|
MOVE A1,*A2+,W ;X
|
|||
|
MOVE A0,*A2,W ;Y
|
|||
|
|
|||
|
MOVE *A13(MYPLYR),A11
|
|||
|
CREATE CMAN,CRUISEA ;ONE MISSILE TO EXACTLY HIT TARGET X
|
|||
|
;FOR RANDOM CRUISE STRIKES
|
|||
|
MOVK 7,A9 ;18 FOR REACTOR, 11 FOR DISH
|
|||
|
XRAGN CREATE CMAN,CRUISE
|
|||
|
XB1 SLEEPK 13
|
|||
|
MOVE @HALT,A0
|
|||
|
JRNZ XB1
|
|||
|
DSJ A9,XRAGN
|
|||
|
SLEEP 25H ;40H
|
|||
|
; CLR A0
|
|||
|
MOVE A9,@INEXP
|
|||
|
jauc DELOBJDIE
|
|||
|
|
|||
|
SBSND
|
|||
|
MOVI SALTXP4,A0
|
|||
|
MOVK 2,A1 ;REPEAT IT 3 TIMES
|
|||
|
CALLA SNDLD ;GO DO IT
|
|||
|
JSRP BOOMS
|
|||
|
DIE
|
|||
|
|
|||
|
WATE SLEEPK 2
|
|||
|
MOVE @INEXP,A0 ;BMBPID,A0
|
|||
|
JRNZ WATE
|
|||
|
;OTHER REACTOR DONE BLOWING!
|
|||
|
MOVE *A8(OYPOS),A0
|
|||
|
MOVE @WORLDTLY+16,A1
|
|||
|
ADDI 255,A1
|
|||
|
CMP A0,A1
|
|||
|
JRC NOBLOW ;XHAIR DOWN OFF SCRN! DON'T DO THIS MISSILE ATTACK
|
|||
|
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@INEXP
|
|||
|
;SMART BOMB
|
|||
|
MOVE @HULK_DN,A0
|
|||
|
INC A0
|
|||
|
MOVE A0,@HULK_DN
|
|||
|
; MOVE @CTOTAL,A0
|
|||
|
; CMPI 18,A0
|
|||
|
; JRNZ SKPBMB
|
|||
|
;IF REACTOR, SMART BOMB ALSO!
|
|||
|
;DISH - NO!
|
|||
|
MOVE @PLYROBJS,A9,L
|
|||
|
CMPI P2DATA,A10
|
|||
|
JRNZ P1D
|
|||
|
MOVE @PLYROBJS+32,A9,L
|
|||
|
P1D CREATE0 SBOMB
|
|||
|
CREATE0 SBSND
|
|||
|
;SKPBMB
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@CIRCL_FLG
|
|||
|
MOVE *A13(KEEPY),A9
|
|||
|
jrz crsskp
|
|||
|
CREATE0 CRSKILL ;GO START THE EXPLOSION OF REACTOR
|
|||
|
crsskp MOVE A10,A2
|
|||
|
MOVE *A2(TBIGSTF),A0
|
|||
|
INC A0
|
|||
|
MOVE A0,*A2(TBIGSTF) ;TOTAL BIG STUFF DESTROYED
|
|||
|
MOVI DISHPT,A1 ;POINTS FOR REACTOR OR DISH
|
|||
|
CALLA SCRADD2
|
|||
|
|
|||
|
MOVE *A8(OXPOS),A0 ;OR SATELITE DISH
|
|||
|
MOVE *A8(OYPOS),A1
|
|||
|
MOVI TARG1,A2
|
|||
|
MOVE A0,*A2+,W
|
|||
|
MOVE A1,*A2,W
|
|||
|
|
|||
|
MOVI TARG2,A2
|
|||
|
MOVE @KEEPT,A3,L
|
|||
|
MOVE *A3(32),A0,W
|
|||
|
MOVE *A3,A1,W
|
|||
|
SUB A1,A0
|
|||
|
SRL 2,A0 ;SRL 1,A0
|
|||
|
ADD A1,A0
|
|||
|
MOVE A0,*A2+,W
|
|||
|
|
|||
|
MOVE *A3(48),A0,W
|
|||
|
MOVE *A3(16),A1,W
|
|||
|
SUB A1,A0
|
|||
|
SRL 1,A0
|
|||
|
ADD A1,A0
|
|||
|
MOVE A0,*A2,W
|
|||
|
|
|||
|
MOVE *A13(MYPLYR),A11
|
|||
|
CREATE CMAN,CRUISEA ;ONE MISSILE TO EXACTLY HIT TARGET X
|
|||
|
MOVE @CTOTAL,A9,W ;18 FOR REACTOR, 11 FOR DISH
|
|||
|
CRAGN CREATE CMAN,CRUISE
|
|||
|
XB2 SLEEPK 14
|
|||
|
MOVE @HALT,A0
|
|||
|
JRNZ XB2
|
|||
|
; DSJ A9,CRAGN
|
|||
|
DEC A9
|
|||
|
JRN XB3
|
|||
|
JRNZ CRAGN
|
|||
|
XB3
|
|||
|
CALLA DELOBJA8
|
|||
|
MOVE @CTOTAL,A9
|
|||
|
CMPI 1,A9 ;2=Akhboob face - SET IN ABOSS.ASM
|
|||
|
JRZ CFD
|
|||
|
CMPI 8,A9 ;8=DISH
|
|||
|
JRZ CFD
|
|||
|
CMPI 13,A9 ;13=JET
|
|||
|
JRNZ CFDA
|
|||
|
MOVE A10,A2
|
|||
|
MOVI JETPT,A1 ;ADD THIS ON TOP OF DISHPT!
|
|||
|
MOVE *A2(TBIGSTF),A0
|
|||
|
INC A0
|
|||
|
MOVE A0,*A2(TBIGSTF) ;TOTAL BIG STUFF DESTROYED
|
|||
|
CALLA SCRADD2
|
|||
|
JRUC CFD
|
|||
|
CFDA SLEEP 5*60-30
|
|||
|
CFD SLEEPK 30
|
|||
|
MOVE @HULK_DN,A0
|
|||
|
DEC A0
|
|||
|
MOVE A0,@HULK_DN
|
|||
|
NOBLOW
|
|||
|
CLR A0
|
|||
|
MOVE A0,@CIRCL_FLG ;SPIT UP CIRCLES IF YOU LIKE
|
|||
|
MOVE A0,@INEXP
|
|||
|
DIE
|
|||
|
NOOUT
|
|||
|
MOVI 69,A3 ;ZPOS
|
|||
|
CALLA BEGINOBJ2 ;NO WORLD ADDED IN
|
|||
|
MOVI BLINKLST,A9
|
|||
|
|
|||
|
LOOP SLEEPK 1
|
|||
|
JSRP FRANIMQ
|
|||
|
;IF OTHER BOMB IS EXPLODING THEN LOOP BACK!
|
|||
|
MOVI BLINKLST2,A9
|
|||
|
MOVE @HALT,A0
|
|||
|
JRNZ LOOP
|
|||
|
MOVE @INEXP,A0
|
|||
|
JRNZ LOOP
|
|||
|
CALLA SCRTST
|
|||
|
JRZ BLOWME
|
|||
|
;OFFSCRN
|
|||
|
jauc DELOBJDIE
|
|||
|
|
|||
|
BLOWME MOVE A9,@INEXP
|
|||
|
MOVI DMAWNZ,A4 ;NON-ZERO VALUE
|
|||
|
MOVE A4,*A8(OFLAGS),W
|
|||
|
MOVI CLSPLYR|TYPBOMB,A5 ;ID
|
|||
|
MOVE A5,*A8(OID),W
|
|||
|
MOVE *A13(SHKFLG),A0
|
|||
|
JRNZ NOSHK0
|
|||
|
MOVK 10H,A10 ;29
|
|||
|
CALLR SHAKER
|
|||
|
NOSHK0 MOVE *A8(OYPOS),A0
|
|||
|
ADDK 10,A0
|
|||
|
MOVE A0,*A8(OYPOS)
|
|||
|
;START OTHER BLUE EXPLOSIONS
|
|||
|
MOVK 3,A5
|
|||
|
MOVE *A13(MYPLYR),A11
|
|||
|
CLR A9
|
|||
|
LPIT
|
|||
|
MOVK 3,A10 ;SLEEP THIS LONG BEFORE BLOWING
|
|||
|
CREATE SHOTPID,EXPTBMBB
|
|||
|
MOVK 6,A10 ;SLEEP THIS LONG BEFORE BLOWING
|
|||
|
CREATE SHOTPID,EXPTBMBB
|
|||
|
MOVK 8,A10 ;SLEEP THIS LONG BEFORE BLOWING
|
|||
|
CREATE SHOTPID,EXPTBMBB
|
|||
|
MOVK 14,A10 ;SLEEP THIS LONG BEFORE BLOWING
|
|||
|
CREATE SHOTPID,EXPTBMBB
|
|||
|
MOVK 2,A10 ;SLEEP THIS LONG BEFORE BLOWING
|
|||
|
CREATE SHOTPID,EXPTBMBB
|
|||
|
DSJ A5,LPIT
|
|||
|
|
|||
|
MOVI BLUEEXP,A9
|
|||
|
JSRP FRANIMQ
|
|||
|
CALLA DELOBJA8
|
|||
|
SLEEPK 10 ;0
|
|||
|
CLR A0
|
|||
|
MOVE A0,@INEXP
|
|||
|
DIE
|
|||
|
|
|||
|
CRSKILL
|
|||
|
;CRUISE MISSILE TO KILL THIS IMAGE
|
|||
|
;A9=Y FOR SEARCHING
|
|||
|
;SORT THROUGH OBJLST LOOKING FOR Y=Y IN A9
|
|||
|
;ONCE FOUND, BASED ON IMG, GO TO DIFFERENT BLOW UP CODE
|
|||
|
MOVI OBJLST,A8,L
|
|||
|
CILOBP:
|
|||
|
MOVE *A8,A8,L ;GET NEXT
|
|||
|
JREQ KILX ;ALL DONE
|
|||
|
MOVE *A8(OYPOS),A4
|
|||
|
SUB A9,A4
|
|||
|
ABS A4
|
|||
|
SUBK 2,A4
|
|||
|
JRHI CILOBP
|
|||
|
; CMP A9,A4 ;MATCH?
|
|||
|
; JRNZ CILOBP ;NO
|
|||
|
;FOUND IMG WITH CORRECT Y VALUE
|
|||
|
MOVE *A8(OSIZEX),A0
|
|||
|
CMPI 104,A0 ;A REACTOR
|
|||
|
JRZ KILRC
|
|||
|
CMPI 050H,A0 ;A DISH
|
|||
|
JRZ KILDS
|
|||
|
CMPI 0F0H,A0 ;A JET
|
|||
|
JRZ KILJET
|
|||
|
JRUC CILOBP
|
|||
|
KILX DIE
|
|||
|
KILJET
|
|||
|
MOVE *A8(OZPOS),A0
|
|||
|
CMPI 09AH,A0
|
|||
|
JRNZ CILOBP
|
|||
|
;KILL JET
|
|||
|
MOVE *A8(OPLINK),A0,L
|
|||
|
MOVI DOSWAP,A7
|
|||
|
CLR A1
|
|||
|
CALLA XFERPROC ;XFER TO JET BLOW
|
|||
|
MOVI 210,A9
|
|||
|
CALLR DO_BONE
|
|||
|
;CREATE EXPLOSIONS!
|
|||
|
CREATE BLOWPID,BLOWJET
|
|||
|
DIE
|
|||
|
KILDS
|
|||
|
;KILL SATELLITE DISH
|
|||
|
MOVI 190,A9
|
|||
|
CALLR DO_BONE
|
|||
|
CREATE BLOWPID,BLOWDSH
|
|||
|
DIE
|
|||
|
KILRC
|
|||
|
;KILL THIS REACTOR
|
|||
|
MOVI 280,A9
|
|||
|
CALLR DO_BONE
|
|||
|
CREATE BLOWPID,BLOWALL
|
|||
|
DIE
|
|||
|
|
|||
|
DO_BONE
|
|||
|
MMTM SP,A10
|
|||
|
CMPI P1DATA,A10
|
|||
|
JRZ ZY7
|
|||
|
MOVE @PLYRPRCS+32,A10,L
|
|||
|
JRUC ZY8
|
|||
|
ZY7 MOVE @PLYRPRCS,A10,L
|
|||
|
ZY8 CREATE FUTUREPID,BONE
|
|||
|
MMFM SP,A10
|
|||
|
RETS
|
|||
|
|
|||
|
.IF DEBUG
|
|||
|
.DEF BEACONS
|
|||
|
BEACONS
|
|||
|
SLEEP 60
|
|||
|
MOVE @WAVE,A9
|
|||
|
SLL 5,A9
|
|||
|
ADDI TARGL,A9
|
|||
|
MOVE *A9,A9,L
|
|||
|
BTOP MOVE *A9,A0,W
|
|||
|
JRZ BOU
|
|||
|
MOVI BCN,A14
|
|||
|
CALLA DO_ALL_STUFF
|
|||
|
MOVE *A9+,A1,W
|
|||
|
MOVE A1,*A0(OXPOS)
|
|||
|
MOVE *A9+,A1,W
|
|||
|
MOVE A1,*A0(OYPOS)
|
|||
|
MOVI BCN,A14
|
|||
|
CALLA DO_ALL_STUFF
|
|||
|
MOVE *A9+,A1,W
|
|||
|
MOVE A1,*A0(OXPOS)
|
|||
|
MOVE *A9+,A1,W
|
|||
|
MOVE A1,*A0(OYPOS)
|
|||
|
ADDK 16,A9
|
|||
|
JRUC BTOP
|
|||
|
BOU DIE
|
|||
|
BCN
|
|||
|
.LONG [180H,0],[69H,0],SPDBL
|
|||
|
.WORD 520,DMAWNZ|M_NOCOLL,CLSDEAD ;CLSNEUT
|
|||
|
.LONG 0,0
|
|||
|
.ENDIF
|
|||
|
|
|||
|
TARGL .LONG FAKE,FAKE,FAKE,REC1,FAKE,REC2,FAKE,FAKE,FAKE,FAKE,FAKE ;D1
|
|||
|
.LONG FAKE,D1,FAKE,FAKE,D2,FAKE,FAKE,FAKE ;WAVE #'S
|
|||
|
.LONG TESTJET,FAKE,FAKE,FAKE,FAKE,TESTJET,FAKE,FAKE,JETS3
|
|||
|
.LONG FAKE,FAKE,TJET2,FAKE,FAKE,FAKE,FAKE,FAKE,BKWALL
|
|||
|
.LONG FAKE,FAKE,FAKE,FAKE,FAKE,FAKE,FAKE,FAKE
|
|||
|
.LONG FAKE,FAKE,FAKE,FAKE,FAKE,FAKE,FAKE,FAKE
|
|||
|
.LONG FAKE,FAKE,FAKE,FAKE,FAKE,FAKE,FAKE,FAKE
|
|||
|
.LONG FAKE,FAKE,FAKE,FAKE,FAKE,FAKE,FAKE,FAKE
|
|||
|
FAKE .WORD 0
|
|||
|
XX2 .EQU 241-13
|
|||
|
YY2 .EQU 202+48H
|
|||
|
; .WORD 626-XX,5070-YY,713-XX,5138-YY ;LEFT DISH FOR BNCING
|
|||
|
; .WORD 617-XX2,5055-YY2,723-XX2,5153-YY2,4994+32-YY2 ;DESERT 1 AREA - LFT DISH
|
|||
|
; .WORD 757-XX2,5005-YY2,868-XX2,5113-YY2,4951+32-YY2 ;RGT DISH
|
|||
|
; .WORD 245+8+4-XX,4077+13+1-YY,245+95-10-XX,4160+81-10-YY ;TOP/BOT DISH FOR BULLTS
|
|||
|
; .WORD 245+8-XX,4077+13-YY,245+95-XX,4160+81-YY ;TOP/BOT DISH FOR BNCING
|
|||
|
;CRUISE MISSILE STRIKE RECTANGLES
|
|||
|
JETS3
|
|||
|
.WORD 1449+16,1956-16-45H,1449+237,1956+129-35H,1956+30H-35H ;POINTING RIGHT
|
|||
|
.WORD 1491+16,1740-16-45H,1491+237,1740+129-35H,1740+30H-35H ;POINTING RIGHT
|
|||
|
.WORD 1391+16,1590-16-45H,1391+237,1590+129-35H,1590+30H-35H ;POINTING RIGHT
|
|||
|
.WORD 1098+16,1288-16-45H,1098+237,1288+129-35H,1288+30H-35H ;POINTING RIGHT
|
|||
|
.WORD 1059+16,1140-16-45H,1059+237,1140+129-35H,1140+30H-35H ;POINTING RIGHT
|
|||
|
.WORD 865+16,1000-16-45H,865+237,1000+129-35H,1000+30H-35H ;POINTING RIGHT
|
|||
|
.WORD 781+16,834-16-45H,781+237,834+129-35H,834+30H-35H ;POINTING RIGHT
|
|||
|
.WORD 816+16,682-16-45H,816+237,682+129-35H,682+30H-35H ;POINTING RIGHT
|
|||
|
.WORD 400+16,611-16-45H,400+237,611+129-35H,611+30H-35H ;POINTING RIGHT
|
|||
|
; 53 ALL THE WAY DOWN
|
|||
|
.WORD 1612+15,2053+10-45H,1612+280,2053+133-35H,2053+30H-35H ;POINTING LEFT
|
|||
|
.WORD 1684+15,1840+10-45H,1684+280,1840+133-35H,1840+30H-35H ;POINTING LEFT
|
|||
|
.WORD 1678+15,1636+10-45H,1678+280,1636+133-35H,1636+30H-35H ;POINTING LEFT
|
|||
|
.WORD 1590+15,1454+10-45H,1590+280,1454+133-35H,1454+30H-35H ;POINTING LEFT
|
|||
|
.WORD 1362+15,1337+10-45H,1362+280,1337+133-35H,1337+30H-35H ;POINTING LEFT
|
|||
|
.WORD 1336+15,1196+10-45H,1336+280,1196+133-35H,1196+30H-35H ;POINTING LEFT
|
|||
|
.WORD 1186+15,1046+10-45H,1186+280,1046+133-35H,1046+30H-35H ;POINTING LEFT
|
|||
|
.WORD 1036+15,896+10-45H,1036+280,896+133-35H,896+30H-35H ;POINTING LEFT
|
|||
|
.WORD 530+15,735+10-45H,530+280,735+133-35H,735+30H-35H ;POINTING LEFT
|
|||
|
.WORD 681+15,549+10-45H,681+280,549+133-35H,549+30H-35H ;POINTING LEFT
|
|||
|
.WORD 512+15,426+10-45H,512+280,426+133-35H,426+30H-35H ;POINTING LEFT
|
|||
|
.WORD 0
|
|||
|
TESTJET
|
|||
|
; .WORD 3189+16,5161-3,3189+237,5161+119,5161+30H ;POINTING RIGHT
|
|||
|
; .WORD 3308+63,5057+30,3308+280,5057+123,5057+30H ;POINTING LEFT
|
|||
|
.WORD 3768+16,4030-26,3768+237,4030+129,4030+30H ;POINTING RIGHT
|
|||
|
.WORD 4114+16,3690-26,4114+237,3690+129,3690+30H ;POINTING RIGHT
|
|||
|
.WORD 4497+16,3320-26,4497+237,3320+129,3320+30H ;POINTING RIGHT
|
|||
|
.WORD 4298+16,3450-26,4298+237,3450+129,3450+30H ;POINTING RIGHT
|
|||
|
.WORD 3901+16,3808-26,3901+237,3808+129,3808+30H ;POINTING RIGHT
|
|||
|
; 53
|
|||
|
.WORD 4056+15,3906+0,4056+280,3906+133,3906+30H ;POINTING LEFT
|
|||
|
.WORD 4384+15,3575+0,4384+280,3575+133,3575+30H ;POINTING LEFT
|
|||
|
.WORD 4645+15,3455+0,4645+280,3455+133,3455+30H ;POINTING LEFT
|
|||
|
.WORD 4287+15,3796+0,4287+280,3796+133,3796+30H ;POINTING LEFT
|
|||
|
.WORD 0
|
|||
|
TJET2
|
|||
|
.WORD 5405+15,2583+0,5405+280,2583+133,2583+30H ;POINTING LEFT
|
|||
|
.WORD 0
|
|||
|
D1
|
|||
|
;LFT SIDE DISH TOP ;SPECIAL CASE -20
|
|||
|
; .WORD 245+8-XX,4077+13-YY,245+95-XX,4160+81-YY ;TOP/BOT DISH TOGETHER
|
|||
|
.WORD 245-10-XX2,4077-15-YY2,245+115-XX2,4077+106-20-YY2,4077-YY2-1EH
|
|||
|
;LFT SIDE DISH BOTM
|
|||
|
.WORD 245-10-XX2,4160-15-YY2,245+115-XX2,4160+106-YY2,4160-YY2-1EH
|
|||
|
.WORD 0
|
|||
|
D2
|
|||
|
;LFT SIDE DISH BOTM
|
|||
|
.WORD 245-10-XX2,2110-15+60H-YY2,245+115-XX2,2110+106+60H-YY2,076CH
|
|||
|
.WORD 2B8H,5DAH,324H,5DAH+95,5C4H ;RGT DISHES
|
|||
|
.WORD 2B8H,5DAH+97,324H,6A0H,61CH ;RGT DISHES
|
|||
|
.WORD 0
|
|||
|
|
|||
|
REC1 .WORD 268-XX,312-YY-18,370-XX+15,397-YY+10,260-YY ;FIRST REACTOR
|
|||
|
.WORD 0
|
|||
|
REC2 .WORD 274-XX,2195+335-YY,377-XX,2277+365+16-YY,2494-YY ;LFT REACTOR
|
|||
|
.WORD 490-XX,1974+340-YY,608-XX+180,2397-YY,2269-YY ;RGT HI
|
|||
|
.WORD 490-XX,2400-YY,608-XX+180,2490-YY,2338-YY ;RGT BTM
|
|||
|
.WORD 0
|
|||
|
|
|||
|
BXO .set >578
|
|||
|
BYO .set >95
|
|||
|
|
|||
|
BKWALL .word >ba8-BXO,>130-BYO,>bf3-BXO,>178-BYO,0
|
|||
|
.word >ba8-BXO,>130-BYO,>bf3-BXO,>178-BYO,0
|
|||
|
.word >ba8-BXO,>130-BYO,>bf3-BXO,>178-BYO,0
|
|||
|
.word >ba8-BXO,>130-BYO,>bf3-BXO,>178-BYO,0
|
|||
|
.word >ba8-BXO,>130-BYO,>bf3-BXO,>178-BYO,0
|
|||
|
|
|||
|
.word >bf4-BXO,>130-BYO,>c3e-BXO,>178-BYO,0
|
|||
|
.word >bf4-BXO,>130-BYO,>c3e-BXO,>178-BYO,0
|
|||
|
.word >bf4-BXO,>130-BYO,>c3e-BXO,>178-BYO,0
|
|||
|
.word >bf4-BXO,>130-BYO,>c3e-BXO,>178-BYO,0
|
|||
|
.word >bf4-BXO,>130-BYO,>c3e-BXO,>178-BYO,0
|
|||
|
|
|||
|
.word >bc2-BXO,>150-BYO,>c24-BXO,>188-BYO,0
|
|||
|
.word >bc2-BXO,>150-BYO,>c24-BXO,>188-BYO,0
|
|||
|
.word >bc2-BXO,>150-BYO,>c24-BXO,>188-BYO,0
|
|||
|
.word >bc2-BXO,>150-BYO,>c24-BXO,>188-BYO,0
|
|||
|
.word 0
|
|||
|
|
|||
|
INTARGET
|
|||
|
;A0=X,A1=Y
|
|||
|
;SET A9=1 IF THIS X/Y IS IN TARGET RANGE
|
|||
|
MMTM SP,A0,A1,A8
|
|||
|
MOVE @T72PNTR,A8,L
|
|||
|
JRZ INT2
|
|||
|
MOVE A1,A4
|
|||
|
CALLA GETCPNT
|
|||
|
MOVE @INEXP,A8
|
|||
|
JRNZ INT1
|
|||
|
MOVX A1,A6
|
|||
|
SUB A4,A1
|
|||
|
ABS A1
|
|||
|
CMPI [95,0],A1 ;70 ;Y RANGE FROM CENTER
|
|||
|
JRNC INT1
|
|||
|
SLL 16,A6
|
|||
|
SUB A6,A0
|
|||
|
ABS A0
|
|||
|
CMPI [95,0],A0 ;70 ;X RANGE
|
|||
|
JRNC INT1
|
|||
|
MOVK 2,A9
|
|||
|
INT1 MMFM SP,A0,A1,A8
|
|||
|
RETS
|
|||
|
|
|||
|
INT2 MOVE A0,A4
|
|||
|
MOVE A1,A6
|
|||
|
SRL 16,A4 ;X
|
|||
|
SRL 16,A6 ;Y
|
|||
|
CLR A0
|
|||
|
MOVE A0,@KEEPT,L
|
|||
|
MOVE @WAVE,A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI TARGL,A0 ;GET FIXED TARGET LIST
|
|||
|
MOVE *A0,A0,L
|
|||
|
CLR A7
|
|||
|
NEXT0 INC A7
|
|||
|
MOVE A0,A5
|
|||
|
MOVE *A0+,A1,W
|
|||
|
JRZ OUT
|
|||
|
CMP A1,A4
|
|||
|
JRLT NEXT ;IF BRNCH RECT LFT EDGE > PLYR X
|
|||
|
MOVE *A0+,A1,W
|
|||
|
CMP A1,A6
|
|||
|
JRLT NEXTA ;IF BRNCH RECT TOP EDGE > PLYR Y
|
|||
|
MOVE *A0+,A1,W
|
|||
|
CMP A1,A4
|
|||
|
JRGT NEXTB ;IF BRNCH RECT RGT EDGE < PLYR X
|
|||
|
MOVE *A0+,A1,W
|
|||
|
CMP A1,A6
|
|||
|
JRGT NEXTZ ;IF BRNCH RECT BOT EDGE < PLYR Y
|
|||
|
;HIT
|
|||
|
;YES WILL ATTACK THIS FIXED SPOT
|
|||
|
MOVE @CRSRAM,A1,L
|
|||
|
BTST A7,A1
|
|||
|
JRNZ NEXTZ
|
|||
|
SLL 5,A7
|
|||
|
ADDI TTB,A7
|
|||
|
MOVE *A7,A7,L
|
|||
|
OR A7,A1
|
|||
|
MOVE A1,@CRSRAM,L
|
|||
|
MOVK 1,A9
|
|||
|
MOVE A5,@KEEPT,L
|
|||
|
MOVE *A0,A0,W
|
|||
|
MOVE A0,*A13(KEEPY)
|
|||
|
OUT
|
|||
|
MMFM SP,A0,A1,A8
|
|||
|
RETS
|
|||
|
|
|||
|
NEXT ADDK 16,A0 ;48
|
|||
|
NEXTA ADDK 16,A0 ;32
|
|||
|
NEXTB ADDK 16,A0
|
|||
|
NEXTZ ADDK 16,A0
|
|||
|
JRUC NEXT0
|
|||
|
|
|||
|
TTB .LONG 0,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192
|
|||
|
.LONG 8192*2,8192*4,8192*8,8192*16,8192+32
|
|||
|
.LONG 8192*64,8192*128,8192*256,8192*512
|
|||
|
.LONG 8192*1024,8192*2048,8192*4096
|
|||
|
|
|||
|
CRUISE2
|
|||
|
;A8=MISSILE
|
|||
|
MOVE *A9+,A0,L
|
|||
|
JRZ ENDI
|
|||
|
MOVE *A8(OXVEL),A1,L
|
|||
|
ADD A0,A1
|
|||
|
MOVE A1,*A8(OXVEL),L
|
|||
|
SLEEPK 4
|
|||
|
JRUC CRUISE2
|
|||
|
ENDI MOVK 10H,A10 ;29
|
|||
|
CALLR SHAKER
|
|||
|
DIE
|
|||
|
|
|||
|
ARC1 .LONG 20000H,018000H,0C000H,6000H,02000H
|
|||
|
.LONG -02000H,-5000H,-08000H,-010000H,-18000H,0
|
|||
|
ARC2 .LONG -20000H,-018000H,-0C000H,-6000H,-02000H
|
|||
|
.LONG 02000H,5000H,08000H,010000H,18000H,0
|
|||
|
|
|||
|
SHRINK
|
|||
|
.LONG CRS12V2
|
|||
|
.WORD 3
|
|||
|
.LONG CRS12V3
|
|||
|
.WORD 3
|
|||
|
.LONG CRS12V4
|
|||
|
.WORD 3
|
|||
|
.LONG CRS12V5
|
|||
|
.WORD 3
|
|||
|
.LONG CRS12V6
|
|||
|
.WORD 3
|
|||
|
.LONG CRS12V7
|
|||
|
.WORD 3
|
|||
|
.LONG 0
|
|||
|
|
|||
|
CRUISEA
|
|||
|
;A8=XHAIR IMG
|
|||
|
;CRUISE IN FROM BOTTOM
|
|||
|
MOVE A11,*A13(MYPLYR)
|
|||
|
MOVI CR12,A14
|
|||
|
CALLA DO_ALL_STUFF
|
|||
|
MOVE *A8(OXPOS),A1
|
|||
|
MOVE *A8(OYPOS),A10
|
|||
|
ADDI 250,A10
|
|||
|
MOVE A1,*A0(OXPOS)
|
|||
|
MOVE A10,*A0(OYPOS)
|
|||
|
MOVE A0,A8
|
|||
|
SUBI 250,A10
|
|||
|
JRUC CRTOP
|
|||
|
;CRSSND3 .WORD >F5F3,>3A,>80C6,0 ;CRUISE MISSILE COMING IN
|
|||
|
CRUISE
|
|||
|
;A8=XHAIR IMG
|
|||
|
;A10=TARGET COORDS FOR POSITIONING
|
|||
|
MOVE A11,*A13(MYPLYR)
|
|||
|
CALLA RANDOM
|
|||
|
ANDI 03FH,A0
|
|||
|
MOVI TARG1,A10
|
|||
|
BTST 0,A0
|
|||
|
JRZ CX1
|
|||
|
MOVI TARG2,A10
|
|||
|
CX1 CALLA PRCSLP
|
|||
|
MOVI CRSSND,A0
|
|||
|
CALLA ONESND
|
|||
|
; SLEEPK 1
|
|||
|
; MOVI CRSSND3,A0
|
|||
|
; CALLA ONESND
|
|||
|
;CRUISE IN FROM TOP
|
|||
|
;CRUISE IN FROM BOTTOM
|
|||
|
MOVI CR12,A14
|
|||
|
CALLA DO_ALL_STUFF
|
|||
|
MOVE A0,A8
|
|||
|
MOVE *A10(16),A1
|
|||
|
ADDI 240,A1
|
|||
|
MOVI -8,B0
|
|||
|
MOVK 8,B1
|
|||
|
CALLA RANGRAND
|
|||
|
ADD A0,A1
|
|||
|
MOVE A1,*A8(OYPOS)
|
|||
|
|
|||
|
MOVE @WORLDTLX,A4,L
|
|||
|
CLR B0
|
|||
|
MOVI 150,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE *A10,A1
|
|||
|
ADD A1,A0
|
|||
|
MOVE @PCNT,A2
|
|||
|
BTST 0,A2
|
|||
|
JRZ HAF0
|
|||
|
SUBI 070H,A0
|
|||
|
MOVE A0,*A8(OXPOS)
|
|||
|
MOVE *A10,A5
|
|||
|
ADDK 08H,A5
|
|||
|
JRUC HAFF
|
|||
|
HAF0 ADDI 070H,A0
|
|||
|
MOVE A0,*A8(OXPOS)
|
|||
|
MOVE *A10,A5
|
|||
|
SUBI 038H,A5
|
|||
|
HAFF MOVI -10,B0
|
|||
|
MOVK 10,B1
|
|||
|
CALLA RANGRAND
|
|||
|
ADD A0,A5
|
|||
|
MOVE *A10(16),A6
|
|||
|
MOVI 070H,A7
|
|||
|
CALLA XYSEEK2
|
|||
|
MOVE A5,*A8(OXVEL),L
|
|||
|
MOVE A6,*A8(OYVEL),L
|
|||
|
MOVE *A8(OXPOS),A0
|
|||
|
MOVE @PCNT,A1
|
|||
|
BTST 0,A1
|
|||
|
JRZ HAF
|
|||
|
ADDI 070H,A0
|
|||
|
MOVI ARC2,A9
|
|||
|
JRUC HAF2
|
|||
|
HAF
|
|||
|
MOVI ARC1,A9
|
|||
|
SUBI 070H,A0
|
|||
|
HAF2 MOVE A0,*A8(OXPOS)
|
|||
|
CREATE CMAN,CRUISE2
|
|||
|
MOVE *A10(16),A10
|
|||
|
|
|||
|
CRTOP SLEEPK 1
|
|||
|
MOVE *A8(OYPOS),A0
|
|||
|
SUB A10,A0
|
|||
|
ABS A0
|
|||
|
CMPI 30H,A0
|
|||
|
JRGT CRTOP
|
|||
|
MOVI SHRINK,A9
|
|||
|
JSRP FRANIMQ
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A8(OXVEL),L
|
|||
|
MOVE A0,*A8(OYVEL),L
|
|||
|
|
|||
|
move @WAVE,a0
|
|||
|
cmpi 36,a0
|
|||
|
jreq wv36
|
|||
|
MOVE @T72PNTR,A0
|
|||
|
JRZ FD
|
|||
|
;TURN ON COLLISIONS WITH THIS IMG FOR JUST A TICK OR TWO
|
|||
|
wv36 MOVI DMAWNZ,A4 ;NON-ZERO VALUE
|
|||
|
MOVE A4,*A8(OFLAGS),W
|
|||
|
MOVI CLSPLYR|TYPBOMB,A5 ;ID
|
|||
|
MOVE A5,*A8(OID),W
|
|||
|
FD MOVI ALTEXP5,A0
|
|||
|
CALLA ONESND
|
|||
|
MOVI XBOOM2,A9
|
|||
|
jauc FRQDELDIE
|
|||
|
|
|||
|
CR12:
|
|||
|
.LONG 0,0,CRS12V1
|
|||
|
.WORD 370,DMAWNZ|M_NOCOLL,CLSDEAD
|
|||
|
.LONG 0,-30000H
|
|||
|
|
|||
|
;XVL: .LONG 0,0B333H,019999H,019999H,019999H,019999H,019999H,0B333H,0
|
|||
|
; .LONG -0B333H,-019999H,-019999H,-019999H,-019999H,-019999H,-0B333H
|
|||
|
;YVL: .LONG -019999H,-019999H,-019999H,-0CCCCH,0,0CCCCH,019999H,019999H,019999H
|
|||
|
; .LONG 019999H,019999H,0CCCCH,0,-0CCCCH,-019999H,-019999H
|
|||
|
|
|||
|
;XVL: .LONG 0,08000H,0C000H,012000H,020000H,0,0,0,0,0,0,0,-20000H
|
|||
|
; .LONG -12000H,-0C000H,-08000H
|
|||
|
;YVL: .LONG -04000H,-03000H,-01000H,2000H,10000H,0,0,0,0,0,0,0,10000H
|
|||
|
; .LONG 2000H,-1000H,-3000H,-4000H
|
|||
|
|
|||
|
;DIR TO FACE IN A0
|
|||
|
; 01
|
|||
|
; 16 02
|
|||
|
; 15 03
|
|||
|
; 14 04
|
|||
|
; 13 05
|
|||
|
; 12 06
|
|||
|
; 11 07
|
|||
|
; 10 08
|
|||
|
; 09
|
|||
|
;701
|
|||
|
;6 2
|
|||
|
;543
|
|||
|
|
|||
|
;CVRT2 .BYTE 0,5,13,9,1,7,11,3,15,6,12,2,16,8,10,4
|
|||
|
; 04
|
|||
|
; 12 11
|
|||
|
; 08 07
|
|||
|
; 16 15
|
|||
|
; 02 01
|
|||
|
; 10 09
|
|||
|
; 06 05
|
|||
|
; 14 13
|
|||
|
; 03
|
|||
|
|
|||
|
;GETHDR - RETURNS 1 OF 16 DIRECTIONS BASED ON OBJECTS X,Y VELOCITIES
|
|||
|
;PARAMS:
|
|||
|
; A1 = OBJ X VELOCITY
|
|||
|
; A2 = OBJ Y VELOCITY
|
|||
|
;RETURNS:
|
|||
|
; A0 = 4,B,7,F,1,9,5,D,3,E,6,A,2,10,8,C = CW DIRECTION STARTING AT 12 O'CLOCK
|
|||
|
; 4
|
|||
|
; 2 1
|
|||
|
; 3
|
|||
|
GETHDR:
|
|||
|
MOVE A1,A3
|
|||
|
MOVE A2,A4
|
|||
|
ABS A3 ;ABSOLUTE X VELOCITY
|
|||
|
ABS A4 ;ABSOLUTE Y VELOCITY
|
|||
|
MOVE A3,A5
|
|||
|
ADD A4,A5 ;SUM Y+X
|
|||
|
JRNE GAD1 ;BR = THERE IS A DIRECTION HERE!
|
|||
|
CLR A3 ;STANDING CASE
|
|||
|
JRUC SETDVAL
|
|||
|
GAD1:
|
|||
|
MOVK 3,A5
|
|||
|
MOVK 3,A7
|
|||
|
MPYU A3,A5 ;CALC 3*X
|
|||
|
MPYU A4,A7 ;CALC 3*Y
|
|||
|
CMP A7,A3 ;XV>3*YV ?
|
|||
|
JRHS GADX ;BR = CHECK X VELOCITY CASE
|
|||
|
CMP A5,A4 ;YV>3*XV ?
|
|||
|
JRHS GADY ;BR = CHECK Y VELOCITY CASE
|
|||
|
;
|
|||
|
;DIAGONAL XY VELOCITY CASE
|
|||
|
;4 POSSIBLE QUADRANTS 0-3
|
|||
|
; 3 2
|
|||
|
; 1 0
|
|||
|
MOVE A1,A3 ;SAVE X,Y VELOCITIES
|
|||
|
MOVE A2,A4
|
|||
|
SRL 31,A1 ;X VEL
|
|||
|
SRL 31,A2 ;Y VEL
|
|||
|
SLL 1,A2
|
|||
|
ADD A1,A2
|
|||
|
;WE NOW HAVE THE QUADRANT NOW CHECK FOR 1 OF 3 DIRECTIONS WITHIN QUADRANT
|
|||
|
;IN A2
|
|||
|
ABS A3 ;X UNSIGNED COMPARE
|
|||
|
ABS A4 ;Y
|
|||
|
CMP A3,A4 ;Y>X?
|
|||
|
JRGT DIFF ;BR = YES
|
|||
|
SUB A4,A3
|
|||
|
CMPI >2800,A3 ;-4000?
|
|||
|
JRLT INRNGE ;WITHIN RANGE, USE QUADRANT K
|
|||
|
ADDK 9,A2 ;RANGE LO
|
|||
|
JRUC SETRNGE
|
|||
|
DIFF:
|
|||
|
SUB A3,A4
|
|||
|
CMPI >2800,A4 ;+4000
|
|||
|
JRLT INRNGE ;WITHIN RANGE USE QUADRANT K
|
|||
|
ADDK >D,A2 ;RANGE HI
|
|||
|
JRUC SETRNGE
|
|||
|
INRNGE:
|
|||
|
ADDK 5,A2
|
|||
|
SETRNGE:
|
|||
|
MOVE A2,A3
|
|||
|
JRUC SETDVAL
|
|||
|
;X VELOCITY CASE
|
|||
|
GADX:
|
|||
|
MOVK 1,A3 ;DISCRETE RYTE
|
|||
|
MOVE A1,A1
|
|||
|
JRNN SETDVAL ;
|
|||
|
MOVK 2,A3 ;LEFT
|
|||
|
JRUC SETDVAL
|
|||
|
;Y VELOCITY CASE
|
|||
|
GADY:
|
|||
|
MOVK 3,A3 ;DISCRETE DOWN
|
|||
|
MOVE A2,A2
|
|||
|
JRNN SETDVAL
|
|||
|
MOVK 4,A3 ;UP
|
|||
|
;HAVE OFFSET IN A3
|
|||
|
SETDVAL:
|
|||
|
MOVE A3,A0
|
|||
|
RETS
|
|||
|
|
|||
|
BLINKLST
|
|||
|
.LONG DET1
|
|||
|
.WORD 5
|
|||
|
.LONG DET2
|
|||
|
.WORD 5
|
|||
|
.LONG DET3
|
|||
|
.WORD 5
|
|||
|
.LONG DET1
|
|||
|
.WORD 3
|
|||
|
.LONG DET2
|
|||
|
.WORD 3
|
|||
|
.LONG DET3
|
|||
|
.WORD 3
|
|||
|
.LONG DET1
|
|||
|
.WORD 3
|
|||
|
.LONG DET2
|
|||
|
.WORD 3
|
|||
|
.LONG DET3
|
|||
|
.WORD 3
|
|||
|
BLINKLST2
|
|||
|
.LONG DET1
|
|||
|
.WORD 1
|
|||
|
.LONG DET2
|
|||
|
.WORD 1
|
|||
|
.LONG DET3
|
|||
|
.WORD 1
|
|||
|
.LONG DET1
|
|||
|
.WORD 1
|
|||
|
.LONG DET2
|
|||
|
.WORD 1
|
|||
|
.LONG DET3
|
|||
|
.WORD 1
|
|||
|
.LONG DET1
|
|||
|
.WORD 1
|
|||
|
.LONG DET2
|
|||
|
.WORD 1
|
|||
|
.LONG DET3
|
|||
|
.WORD 1
|
|||
|
.LONG 0
|
|||
|
FIREEXP:
|
|||
|
.LONG KBM1
|
|||
|
.WORD NEWPALET|4
|
|||
|
.LONG BULLET
|
|||
|
.LONG KBM2
|
|||
|
.WORD 4
|
|||
|
.LONG KBM3
|
|||
|
.WORD 4
|
|||
|
.LONG KBM4
|
|||
|
.WORD 4
|
|||
|
.LONG KBM5
|
|||
|
.WORD 4
|
|||
|
.LONG KBM6
|
|||
|
.WORD 4
|
|||
|
.LONG KBM7
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
BLUEEXP:
|
|||
|
.LONG CLD1
|
|||
|
.WORD NEWPALET|3
|
|||
|
.LONG BLUBOOM
|
|||
|
.LONG CLD2
|
|||
|
.WORD 3
|
|||
|
.LONG CLD3
|
|||
|
.WORD 3
|
|||
|
.LONG CLD4
|
|||
|
.WORD 3
|
|||
|
.LONG CLD4A
|
|||
|
.WORD 3
|
|||
|
.LONG CLD4B
|
|||
|
.WORD 3
|
|||
|
.LONG CLD5
|
|||
|
.WORD 3
|
|||
|
.LONG CLD6
|
|||
|
.WORD 3
|
|||
|
.LONG CLD7
|
|||
|
.WORD 3
|
|||
|
.LONG CLD8
|
|||
|
.WORD 3
|
|||
|
.LONG CLD9
|
|||
|
.WORD 3
|
|||
|
.LONG CLD10
|
|||
|
.WORD 3
|
|||
|
.LONG CLD11
|
|||
|
.WORD 3
|
|||
|
.LONG 0
|
|||
|
|
|||
|
GOT_HSTG:
|
|||
|
;A8=HOSTAGE PNTR
|
|||
|
;A0=PLYR PNTR
|
|||
|
MMTM SP,A1,A7,A9,A11
|
|||
|
MOVE A0,A9
|
|||
|
MOVE *A0(OPLINK),A0,L
|
|||
|
MOVE *A0(DEAD),A0
|
|||
|
JRNZ GOUT
|
|||
|
MOVE *A8(OFLAGS),A1
|
|||
|
ORI M_NOCOLL,A1
|
|||
|
MOVE A1,*A8(OFLAGS)
|
|||
|
MOVE *A8(OPLINK),A0,L
|
|||
|
MOVI EXPHSTG,A7
|
|||
|
MOVI FUTUREPID,A1
|
|||
|
CALLA XFERPROC
|
|||
|
GOUT MOVK 1,A0
|
|||
|
MOVE A0,@OUT_FLG
|
|||
|
MMFM SP,A1,A7,A9,A11
|
|||
|
RETS
|
|||
|
|
|||
|
THNKU2 .WORD >F9EF,>30,>810F,0 ;GIRL "THANK YOU"
|
|||
|
THNKU3 .WORD >F9EF,>38,>8112,0 ;GIRL "MY HERO"
|
|||
|
|
|||
|
GIRLST
|
|||
|
.LONG SHCAKLDC1
|
|||
|
.LONG SHCAKLDC2
|
|||
|
.LONG SHCAKLDC3
|
|||
|
.LONG SHCAKLDC4
|
|||
|
.LONG SHCAKLDE1 ;FEMALE REPORTER
|
|||
|
.LONG DOC1
|
|||
|
.LONG DOC2
|
|||
|
.LONG DOC3
|
|||
|
.LONG DOC4
|
|||
|
.LONG BGRL1
|
|||
|
.LONG BGRL2
|
|||
|
.LONG BGRL3
|
|||
|
.LONG GRL1
|
|||
|
.LONG GRL2
|
|||
|
.LONG GRL3
|
|||
|
.LONG GRL4
|
|||
|
.LONG BABE1
|
|||
|
.LONG BABE2
|
|||
|
.LONG BABE3
|
|||
|
.LONG BABE4
|
|||
|
.LONG 0
|
|||
|
|
|||
|
EXPHSTG:
|
|||
|
;A9=PLYR PNTR
|
|||
|
;A8=HOSTAGE IMG
|
|||
|
;BEEM OUT HOSTAGE
|
|||
|
;FLOAT PNTS TOWARD SCOREBOARD
|
|||
|
;THANK-YOU SPEECH CALL
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A8(OXVEL),L
|
|||
|
MOVE A0,*A8(OYVEL),L
|
|||
|
MOVI THNKU,A0
|
|||
|
MOVE *A8(OIMG),A2,L
|
|||
|
MOVI GIRLST,A3
|
|||
|
CKGIRL MOVE *A3+,A4,L
|
|||
|
JRZ CKOP
|
|||
|
CMP A4,A2
|
|||
|
JRNZ CKGIRL
|
|||
|
MOVI THNKU2,A0
|
|||
|
MOVE @HCOUNT,A1
|
|||
|
BTST 0,A1
|
|||
|
JRZ CKOP
|
|||
|
MOVI THNKU3,A0
|
|||
|
CKOP
|
|||
|
CALLA ONESND
|
|||
|
MOVI SCASH3,A0
|
|||
|
CALLA ONESND
|
|||
|
MOVE *A9(OPLINK),A9,L
|
|||
|
MOVE *A9(PNUM),A10
|
|||
|
MOVE *A8(OID),A11
|
|||
|
MOVI CLSDEAD,A0
|
|||
|
MOVE A0,*A8(OID),W ;HOSTAGE
|
|||
|
MOVI DMAWNZ|M_NOCOLL,A0
|
|||
|
MOVE A0,*A8(OFLAGS),W
|
|||
|
MOVE *A8(OYPOS),A0
|
|||
|
SUBK 10,A0
|
|||
|
MOVE A0,*A8(OYPOS)
|
|||
|
MOVI DOTLST,A9 ;DISSIPATE HOSTAGE
|
|||
|
JSRP FRANIMQ
|
|||
|
;CHANGE IMAGE TO PNTS AND FLOAT TOWARDS SCOREBOARD
|
|||
|
;A10=PNUM
|
|||
|
MOVI 300,A0
|
|||
|
MOVE A0,*A8(OZPOS) ;PUT PNTS UP HIGH!
|
|||
|
MOVI P1DATA,A2 ;FOR SCRADD
|
|||
|
DEC A10
|
|||
|
JRZ P1YES
|
|||
|
MOVI P2DATA,A2
|
|||
|
P1YES MOVE @GAMSTATE,A0
|
|||
|
CMPI INAMODE,A0
|
|||
|
JRZ P1YY
|
|||
|
MOVE *A2(THSTGS),A0
|
|||
|
CMPI 297,A0
|
|||
|
JRGT P1YY
|
|||
|
INC A0
|
|||
|
MOVE A0,*A2(THSTGS) ;TOTAL HOSTAGES
|
|||
|
P1YY
|
|||
|
CMPI CLSNEUT|TYPHSTG|SUBRUN,A11
|
|||
|
JRNZ P1YES2
|
|||
|
;RUNNING HSTG SCORES MINIMUM PNTS
|
|||
|
MOVK 10H,A1 ;TEN POINTS FOR RUNNING HOSTAGES
|
|||
|
MOVI 32*1,A6 ;POINT AT BONUS TEN IMG
|
|||
|
JRUC SCRIT
|
|||
|
P1YES2
|
|||
|
SLL 5,A10
|
|||
|
MOVE *A2(PTSRAM),A0
|
|||
|
INC A0 ;POINTS INCREASE FOR SUCCESSIVE HSTGS
|
|||
|
CMPI 11,A0
|
|||
|
JRC SKIPAD
|
|||
|
MOVK 10,A0 ;KEEP IT AT 10 POINTS UNTIL DEATH!
|
|||
|
SKIPAD
|
|||
|
MOVE A0,*A2(PTSRAM)
|
|||
|
SLL 5,A0
|
|||
|
MOVE A0,A6
|
|||
|
MOVI HPNTR,A1 ;AMOUNT OF SCORE TABLE
|
|||
|
ADD A1,A0
|
|||
|
MOVE *A0,A1,L
|
|||
|
SCRIT
|
|||
|
;A2=P1/P2DATA
|
|||
|
CALLA SCRADD2 ;DO IT!
|
|||
|
MOVE A6,A1
|
|||
|
ADDI PIMG,A1
|
|||
|
MOVE *A1,A1,L
|
|||
|
MOVE *A8(OFLAGS),A4
|
|||
|
CALLA ANI
|
|||
|
CALLR CYCLEON
|
|||
|
MOVI 40,B0
|
|||
|
MOVI 80,B1
|
|||
|
CALLA RANGRAND
|
|||
|
CALLA PRCSLP
|
|||
|
CLR A11
|
|||
|
|
|||
|
INHERE:
|
|||
|
;JEWEL ON GROUND JUMPS IN HERE
|
|||
|
;EXTRA BMB IMAGES JUMP IN HERE
|
|||
|
;KEY ICON JUMPS IN HERE
|
|||
|
;A10=0 OR 1 FOR PLYR #
|
|||
|
;A8=ICON IMG
|
|||
|
;A11=1 IF FROM KEY FLOATING TO SCORE BOARD
|
|||
|
|
|||
|
CLR A5
|
|||
|
CLR A6
|
|||
|
MOVE @WORLDTL,A0,L
|
|||
|
MOVY A0,A6 ;Y VALUE TO SCROLL TO IN A10
|
|||
|
SRL 16,A6
|
|||
|
ADDK 14H,A6 ;Y
|
|||
|
ZEXT A6
|
|||
|
MOVX A0,A5 ;X VALUE TO SCROLL TO IN A9
|
|||
|
ADDI 28H,A5
|
|||
|
MOVE A10,A10
|
|||
|
JREQ UPLC
|
|||
|
;PLYR 2 TV SEEK
|
|||
|
ADDI 0118H,A5
|
|||
|
UPLC MOVI 80H,A7 ;60
|
|||
|
CALLA XYSEEK2
|
|||
|
MOVE A5,*A8(OXVEL),L
|
|||
|
MOVE A6,*A8(OYVEL),L
|
|||
|
|
|||
|
MOVK 11,A9
|
|||
|
SLPC
|
|||
|
MOVE @WORLDTL+16,A6
|
|||
|
MOVE @WORLDTL,A5
|
|||
|
MOVE A10,A10
|
|||
|
JREQ UPLCZ
|
|||
|
;PLYR 2 TV SEEK
|
|||
|
ADDI 0300,A5
|
|||
|
UPLCZ
|
|||
|
MOVE *A8(OYPOS),A0
|
|||
|
SUB A6,A0
|
|||
|
CMPI 40,A0
|
|||
|
JRNC NXPC
|
|||
|
MOVE *A8(OXPOS),A0
|
|||
|
SUB A5,A0
|
|||
|
CMPI 100,A0
|
|||
|
JRC DNSLPC
|
|||
|
NXPC
|
|||
|
SLEEPK 6
|
|||
|
MOVE @HALT,A0
|
|||
|
JRNZ NXPC
|
|||
|
DSJ A9,SLPC
|
|||
|
|
|||
|
DNSLPC
|
|||
|
;DELETE FLOATING IMAGE
|
|||
|
CALLA DELOBJA8
|
|||
|
MOVE A11,A11 ;IF A11=0, IT IS NOT AN ICON
|
|||
|
JANZ IP
|
|||
|
DIE
|
|||
|
|
|||
|
HPNTR .LONG 0,10H,20H,30H,40H,50H,60H,70H,80H,90H,100H
|
|||
|
PIMG .LONG 0,PTS1,PTS2,PTS3,PTS4,PTS5,PTS6,PTS7,PTS8,PTS9,PTS10
|
|||
|
|
|||
|
|
|||
|
CYCLEON
|
|||
|
;TURN ON HOSTAGE PNTS COLOR CYCLE
|
|||
|
;OR ADD TO ITS LIFE SPAN
|
|||
|
MOVE @AFTR_WRP,A0
|
|||
|
JRNZ CYR
|
|||
|
MOVE @CYCLIFE,A0
|
|||
|
JRZ CYCON
|
|||
|
ADDK 2,A0 ;3 SECONDS MORE
|
|||
|
MOVE A0,@CYCLIFE
|
|||
|
CYR RETS
|
|||
|
CYCON
|
|||
|
;CYCLE POW BONUS POINTS
|
|||
|
MMTM SP,A8,A10
|
|||
|
MOVI [63,1],A8 ;START AT COLOR 60, CYCLE 1 COLOR
|
|||
|
MOVI PPLP,A9 ;PAL NAME
|
|||
|
MOVI COLTAB,A10 ;TABLE TO CYCLE WITH
|
|||
|
MOVK 3,A11 ;RATE OF CYCLE IN TICKS
|
|||
|
CREATE POWPID,CYCLE_TABLE ;START PROCESS TO DO CYCLE
|
|||
|
MOVE A0,A9
|
|||
|
CREATE POWPID,CKCYC
|
|||
|
MMFM SP,A8,A10
|
|||
|
RETS
|
|||
|
|
|||
|
COLTAB .WORD 0380H,1380H,2380H,3380H,4380H,5380H,6380H,7380H,7300H
|
|||
|
.WORD 7280H,7200H,7180H,7080H,7008H,7008H,7010H,7010H,701CH
|
|||
|
.WORD 701CH,601CH,501CH,409CH,309CH,209CH,219CH,029CH,039CH
|
|||
|
.WORD 139CH,239CH,339CH,539CH,739CH,7390H,7380H,6380H,4380H
|
|||
|
;NEED A DUPLICATE SET
|
|||
|
.WORD 0380H,1380H,2380H,3380H,4380H,5380H,6380H,7380H,7300H
|
|||
|
.WORD 7280H,7200H,7180H,7080H,7008H,7008H,7010H,7010H,701CH
|
|||
|
.WORD 701CH,601CH,501CH,409CH,309CH,209CH,219CH,029CH,039CH
|
|||
|
.WORD 139CH,239CH,339CH,539CH,739CH,7390H,7380H,6380H,4380H
|
|||
|
.word -1
|
|||
|
|
|||
|
CKCYC
|
|||
|
; DIE
|
|||
|
MOVK 2,A0 ;FOR 3 SECONDS
|
|||
|
MOVE A0,@CYCLIFE
|
|||
|
CK2 SLEEP 60
|
|||
|
MOVE @CYCLIFE,A0
|
|||
|
DEC A0
|
|||
|
MOVE A0,@CYCLIFE
|
|||
|
JRNZ CK2
|
|||
|
MOVE A9,A0
|
|||
|
CALLA KILL
|
|||
|
DIE
|
|||
|
|
|||
|
DOTLST:
|
|||
|
;DISSIPATE HOSTAGE
|
|||
|
.LONG BM1
|
|||
|
.WORD NEWPALET|2
|
|||
|
.LONG PPLP
|
|||
|
.LONG BM2
|
|||
|
.WORD 2
|
|||
|
.LONG BM3
|
|||
|
.WORD 2
|
|||
|
.LONG BM4
|
|||
|
.WORD 2
|
|||
|
.LONG BM5
|
|||
|
.WORD 2
|
|||
|
.LONG BM6
|
|||
|
.WORD 2
|
|||
|
.LONG BM7
|
|||
|
.WORD 2
|
|||
|
.LONG BM8
|
|||
|
.WORD 2
|
|||
|
.LONG BM9
|
|||
|
.WORD 2
|
|||
|
.LONG BM10
|
|||
|
.WORD 2
|
|||
|
.LONG 0
|
|||
|
|
|||
|
BMLM2: ;TIME BOMB HITS LAND MINE
|
|||
|
MMTM SP,A1,A7,A11
|
|||
|
MOVE *A8(OPLINK),A1,L
|
|||
|
MOVE *A1(MYPLYR),A1
|
|||
|
MOVI P1DATA,A2
|
|||
|
CMPI 1,A1
|
|||
|
JRZ ABM2
|
|||
|
MOVI P2DATA,A2
|
|||
|
CMPI 2,A1
|
|||
|
JRNZ SKPBM
|
|||
|
ABM2 MOVI MINEPT,A1
|
|||
|
PUSH A0
|
|||
|
CALLA SCRADD2
|
|||
|
PULL A0
|
|||
|
SKPBM
|
|||
|
MOVE *A0(OFLAGS),A1
|
|||
|
ORI M_NOCOLL,A1
|
|||
|
MOVE A1,*A0(OFLAGS)
|
|||
|
MOVE A0,A10
|
|||
|
CREATE0 EXPMINE
|
|||
|
MOVE *A10(OPLINK),A0,L
|
|||
|
JRZ SKP2
|
|||
|
CALLA KILL
|
|||
|
SKP2
|
|||
|
MOVI MTING,A0 ;LAND MINE EXPLOSION SND
|
|||
|
CALLA ONESND
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@OUT_FLG
|
|||
|
MMFM SP,A1,A7,A11
|
|||
|
RETS
|
|||
|
|
|||
|
EXPMINE2:
|
|||
|
CALLR DOXYM
|
|||
|
CREATE CMAN,DOMORE
|
|||
|
CREATE CMAN,DOMORE
|
|||
|
CREATE CMAN,DOMORE
|
|||
|
CREATE CMAN,DOMORE
|
|||
|
CREATE CMAN,DOMORE
|
|||
|
MOVI 72,A0
|
|||
|
MOVE A0,*A8(OZPOS)
|
|||
|
JRUC BLOW
|
|||
|
EXPMINE:
|
|||
|
;FOR BLOWING UP LAND MINE WHEN PLYR STEPS ON IT OR TIME BOMB PLACED NEARBY!
|
|||
|
;A10=LAND MINE IMAGE PNTR
|
|||
|
CALLR DOXYM
|
|||
|
BLOW MOVI BOOM3,A9
|
|||
|
jauc FRQDELDIE
|
|||
|
|
|||
|
DOXYM
|
|||
|
MOVE A10,A8
|
|||
|
MOVE *A8(OFLAGS),A0
|
|||
|
ORI M_NOCOLL,A0
|
|||
|
MOVE A0,*A8(OFLAGS)
|
|||
|
MOVE *A8(OYPOS),A0
|
|||
|
ADDK 06H,A0
|
|||
|
MOVE A0,*A8(OYPOS)
|
|||
|
MOVE *A8(OXPOS),A0
|
|||
|
ADDK 06H,A0
|
|||
|
MOVE A0,*A8(OXPOS)
|
|||
|
MOVI 100,A0
|
|||
|
MOVE A0,*A8(OZPOS)
|
|||
|
|
|||
|
; MOVE *A8(OIMG),A0,L
|
|||
|
; CMPI M1,A0
|
|||
|
; JRZ RRET
|
|||
|
; MOVE *A8(OPLINK),A0,L
|
|||
|
; CALLA KILL
|
|||
|
;RRET
|
|||
|
RETS
|
|||
|
|
|||
|
DOMORE
|
|||
|
MOVE *A8(OYVAL),A1,L
|
|||
|
MOVI EXPL1,A2 ;DOES NOT MATTER
|
|||
|
MOVI 72,A3 ;69
|
|||
|
MOVI DMAWNZ,A4 ;NON-ZERO VALUE
|
|||
|
CLR A5
|
|||
|
MOVI -9000H,B0
|
|||
|
MOVI 9000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,A6
|
|||
|
MOVI -9000H,B0
|
|||
|
MOVI 9000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,A7
|
|||
|
MOVE *A8(OXVAL),A0,L
|
|||
|
CALLA BEGINOBJ2
|
|||
|
JRUC BLOW
|
|||
|
|
|||
|
; SHAKER - SHAKE SCREEN AS AS IF AN EARTHQUAKE IS IN EFFECT
|
|||
|
; A10 = # TICKS TO SHAKE AND POWER OF SHAKE
|
|||
|
; NOTE: TIME TO SHAKE MUST BE MORE THAN 6 TICKS
|
|||
|
; RETURNS:
|
|||
|
; NOTHING AT ALL
|
|||
|
SHAKER:
|
|||
|
MOVE @SHK_ON,A0
|
|||
|
JRNZ SHKOUT
|
|||
|
MOVE A10,A11
|
|||
|
MOVK 6,A0
|
|||
|
MOVE A0,@SHK_ON
|
|||
|
DIVS A0,A11
|
|||
|
MOVE A0,@AMP
|
|||
|
MOVE A11,@AMPCNT
|
|||
|
|
|||
|
CREATE0 SHAKELP
|
|||
|
SHKOUT RETS
|
|||
|
|
|||
|
SHAKELP:
|
|||
|
CLR B0
|
|||
|
MOVE @AMP,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,@XSET
|
|||
|
CLR B0
|
|||
|
MOVE @AMP,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,@YSET
|
|||
|
MOVI 500,A0
|
|||
|
CALLA RANDPER
|
|||
|
JRC SHAKEY
|
|||
|
SHAKEX:
|
|||
|
MOVE @XSET,A1
|
|||
|
MOVE @WORLDTLX,A0,L
|
|||
|
SLL 16,A1
|
|||
|
ADD A1,A0
|
|||
|
MOVE A0,@WORLDTLX,L
|
|||
|
SLEEPK 1
|
|||
|
MOVE @XSET,A1
|
|||
|
MOVE @WORLDTLX,A0,L
|
|||
|
SLL 16,A1
|
|||
|
SUB A1,A0
|
|||
|
MOVE A0,@WORLDTLX,L
|
|||
|
JRUC SHAKELP
|
|||
|
SHAKEY:
|
|||
|
MOVE @YSET,A1
|
|||
|
MOVE @WORLDTLY,A0,L
|
|||
|
SLL 16,A1
|
|||
|
ADD A1,A0
|
|||
|
MOVE A0,@WORLDTLY,L
|
|||
|
SLEEPK 1
|
|||
|
MOVE @YSET,A1
|
|||
|
MOVE @WORLDTLY,A0,L
|
|||
|
SLL 16,A1
|
|||
|
SUB A1,A0
|
|||
|
MOVE A0,@WORLDTLY,L
|
|||
|
MOVE @AMPCNT,A2
|
|||
|
DEC A2
|
|||
|
MOVE A2,@AMPCNT
|
|||
|
JRNZ AMPOK
|
|||
|
MOVE A11,@AMPCNT
|
|||
|
MOVE @AMP,A0
|
|||
|
CMPI 1,A0
|
|||
|
JRZ AMPOK
|
|||
|
DEC A0
|
|||
|
MOVE A0,@AMP
|
|||
|
AMPOK:
|
|||
|
DSJ A10,SHAKELP
|
|||
|
MOVE A10,@SHK_ON
|
|||
|
DIE
|
|||
|
|
|||
|
|
|||
|
ANI_HSTG:
|
|||
|
;A8=HSTG IMAGE FROM BACKGROUND UPDATER
|
|||
|
;A9=HOSTAGE #
|
|||
|
;ANIMATE, THEN KILL OFF ONCE IT IS OFF SCREEN
|
|||
|
MOVE A13,*A8(OPLINK),L
|
|||
|
SLL 5,A9
|
|||
|
MOVE @HSTGSET,A0
|
|||
|
JRNZ HS1
|
|||
|
CALLA RANDOM
|
|||
|
MOVE A0,A10
|
|||
|
ANDI 0FH,A10
|
|||
|
SLL 5,A10
|
|||
|
ADDI HSTGLST2,A10 ;BALL AND CHAIN
|
|||
|
MOVE *A10,A9,L
|
|||
|
JRUC HSO
|
|||
|
HS1 ADDI HSTGLST,A9 ;STUCK IN GOO
|
|||
|
MOVE *A9,A9,L
|
|||
|
HSO MOVE A9,A11
|
|||
|
|
|||
|
MOVE *A9,A1,L
|
|||
|
MOVE *A8(OFLAGS),A4
|
|||
|
CALLA ANI
|
|||
|
|
|||
|
CALLR AHELP
|
|||
|
|
|||
|
MOVK 1,B0
|
|||
|
MOVI 90,B1 ;91
|
|||
|
CALLA RANGRAND
|
|||
|
; MOVE A0,A10
|
|||
|
CALLA PRCSLP
|
|||
|
|
|||
|
ANIH0 MOVK 12,A10 ;5
|
|||
|
ANIHSTG
|
|||
|
JSRP FRANIMQ
|
|||
|
MOVE A11,A9
|
|||
|
CALLR AHELP
|
|||
|
DSJ A10,ANIHSTG
|
|||
|
CALLA SCRTST
|
|||
|
JRZ ANIH0
|
|||
|
TNTIT
|
|||
|
MOVE @HSTGS_LOST,A0
|
|||
|
INC A0
|
|||
|
MOVE A0,@HSTGS_LOST
|
|||
|
jauc DELOBJDIE
|
|||
|
|
|||
|
AHELP
|
|||
|
MOVI 180,A0
|
|||
|
CALLA RANDPER
|
|||
|
JRNC AJ1
|
|||
|
ANDI 07H,A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI HELPS,A0
|
|||
|
MOVE *A0,A0,L
|
|||
|
CALLA ONESND
|
|||
|
AJ1 RETS
|
|||
|
HELP .WORD >F97E,>24,>80C1,0 ;"HELP"
|
|||
|
HELP2 .WORD >F97F,>34,>80BF,0 ;"OVER HERE"
|
|||
|
HELP3 .WORD >F97E,>24,>80F1,0 ;WHISTLE
|
|||
|
HELP4 .WORD >F87E,>24,>80D6,0 ;WHISTLE
|
|||
|
HELPS .LONG HELP,HELP2,HELP3,HELP4,HELP5,HELP6,HELP7,HELP8
|
|||
|
.LONG HELP,HELP2,HELP3,HELP5,HELP5,HELP6,HELP6,HELP6
|
|||
|
HELP5 .WORD >F97F,>34,>810D,0 ;GIRL HELP ME
|
|||
|
HELP6 .WORD >F9CF,>44,>810E,0 ;GIRL "OVER HERE"
|
|||
|
HELP7 .WORD >F9CF,>44,>8110,0 ;GIRL SAVE ME
|
|||
|
HELP8 .WORD >F97F,>34,>8111,0 ;GIRL HELP ME
|
|||
|
;
|
|||
|
HSTGLST .LONG HGUYA,HGUYB,HGUYC,HGUYD
|
|||
|
HSTGLST2
|
|||
|
.LONG HGUYH,HGUYH ;FAT TOURIST
|
|||
|
.LONG HGUYI ;FAT GREEN GUY
|
|||
|
.LONG HGUYA2,HGUYA2 ;BIKINI
|
|||
|
.LONG HGUYB2,HGUYB2
|
|||
|
.LONG HGUYC2,HGUYC2
|
|||
|
.LONG HGUYD2 ;GOLD REPORTER GUY
|
|||
|
.LONG HGUYE2,HGUYE2 ;FEMALE REPORTER
|
|||
|
.LONG HGUYF2 ;GUY WATCHING (YELLOW TREK SHIRT)
|
|||
|
.LONG HGUYG2,HGUYG2,HGUYG2 ;CAMERA MAN
|
|||
|
|
|||
|
HGUYG2 .LONG SHCAKLDD1 ;CAMER MAN
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDD2
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDD1
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDD2
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDD1
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDD2
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDD1
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDD3
|
|||
|
.WORD 60
|
|||
|
.LONG SHCAKLDD2
|
|||
|
.WORD 6
|
|||
|
.LONG SHCAKLDD1
|
|||
|
.WORD 6
|
|||
|
.LONG SHCAKLDD2
|
|||
|
.WORD 6
|
|||
|
.LONG SHCAKLDD1
|
|||
|
.WORD 6
|
|||
|
.LONG SHCAKLDD2
|
|||
|
.WORD 6
|
|||
|
.LONG SHCAKLDD1
|
|||
|
.WORD 6
|
|||
|
.LONG SHCAKLDD2
|
|||
|
.WORD 90
|
|||
|
.LONG SHCAKLDD3
|
|||
|
.WORD 40
|
|||
|
.LONG 0
|
|||
|
|
|||
|
HGUYA2 .LONG SCHAKLDA1
|
|||
|
.WORD 4
|
|||
|
.LONG SCHAKLDA2
|
|||
|
.WORD 4
|
|||
|
.LONG SCHAKLDA1
|
|||
|
.WORD 4
|
|||
|
.LONG SCHAKLDA2
|
|||
|
.WORD 4
|
|||
|
.LONG SCHAKLDA1
|
|||
|
.WORD 4
|
|||
|
.LONG SCHAKLDA2
|
|||
|
.WORD 4
|
|||
|
.LONG SCHAKLDA1
|
|||
|
.WORD 4
|
|||
|
.LONG SCHAKLDA3
|
|||
|
.WORD 60
|
|||
|
.LONG SCHAKLDA2
|
|||
|
.WORD 6
|
|||
|
.LONG SCHAKLDA1
|
|||
|
.WORD 6
|
|||
|
.LONG SCHAKLDA2
|
|||
|
.WORD 6
|
|||
|
.LONG SCHAKLDA1
|
|||
|
.WORD 6
|
|||
|
.LONG SCHAKLDA2
|
|||
|
.WORD 6
|
|||
|
.LONG SCHAKLDA1
|
|||
|
.WORD 6
|
|||
|
.LONG SCHAKLDA2
|
|||
|
.WORD 90
|
|||
|
.LONG SCHAKLDA3
|
|||
|
.WORD 40
|
|||
|
.LONG 0
|
|||
|
|
|||
|
HGUYH .LONG SHACKX1 ;CAMERA ON TOURIST
|
|||
|
.WORD 200
|
|||
|
.LONG SHACKX2
|
|||
|
.WORD 4
|
|||
|
.LONG SHACKX3
|
|||
|
.WORD 90
|
|||
|
.LONG SHACKX2
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
HGUYI .LONG SHACKY1 ;FAT GREEN GUY
|
|||
|
.WORD 200
|
|||
|
.LONG SHACKY2
|
|||
|
.WORD 4
|
|||
|
.LONG SHACKY3
|
|||
|
.WORD 4
|
|||
|
.LONG SHACKY2
|
|||
|
.WORD 4
|
|||
|
.LONG SHACKY3
|
|||
|
.WORD 4
|
|||
|
.LONG SHACKY2
|
|||
|
.WORD 4
|
|||
|
.LONG SHACKY3
|
|||
|
.WORD 4
|
|||
|
.LONG SHACKY2
|
|||
|
.WORD 4
|
|||
|
.LONG SHACKY3
|
|||
|
.WORD 4
|
|||
|
.LONG SHACKY2
|
|||
|
.WORD 4
|
|||
|
.LONG SHACKY3
|
|||
|
.WORD 4
|
|||
|
.LONG SHACKY2
|
|||
|
.WORD 4
|
|||
|
.LONG SHACKY3
|
|||
|
.WORD 100
|
|||
|
.LONG SHACKY2
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
|
|||
|
HGUYB2
|
|||
|
.LONG SCHAKLDB4
|
|||
|
.WORD 4
|
|||
|
.LONG SCHAKLDB1
|
|||
|
.WORD 4
|
|||
|
.LONG SCHAKLDB2
|
|||
|
.WORD 4
|
|||
|
.LONG SCHAKLDB3
|
|||
|
.WORD 50
|
|||
|
.LONG SCHAKLDB2
|
|||
|
.WORD 4
|
|||
|
.LONG SCHAKLDB1
|
|||
|
.WORD 4
|
|||
|
.LONG SCHAKLDB4
|
|||
|
.WORD 60
|
|||
|
.LONG SCHAKLDB1
|
|||
|
.WORD 6
|
|||
|
.LONG SCHAKLDB2
|
|||
|
.WORD 6
|
|||
|
.LONG SCHAKLDB3
|
|||
|
.WORD 6
|
|||
|
.LONG SCHAKLDB2
|
|||
|
.WORD 6
|
|||
|
.LONG SCHAKLDB1
|
|||
|
.WORD 6
|
|||
|
.LONG SCHAKLDB2
|
|||
|
.WORD 6
|
|||
|
.LONG SCHAKLDB3
|
|||
|
.WORD 30
|
|||
|
.LONG SCHAKLDB2
|
|||
|
.WORD 6
|
|||
|
.LONG SCHAKLDB1
|
|||
|
.WORD 6
|
|||
|
.LONG SCHAKLDB4
|
|||
|
.WORD 90
|
|||
|
.LONG 0
|
|||
|
HGUYD2 .LONG REPO1 ;GOLD REPORTER GUY
|
|||
|
.WORD 1000
|
|||
|
.LONG 0
|
|||
|
HGUYE2 .LONG SHCAKLDE1 ;FEMALE REPORTER
|
|||
|
.WORD 1000
|
|||
|
.LONG 0
|
|||
|
HGUYF2 .LONG SHCAKLDF1 ;GUY WATCHING
|
|||
|
.WORD 1000
|
|||
|
.LONG 0
|
|||
|
HGUYC2 .LONG SHCAKLDC4
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDC3
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDC1
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDC2
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDC1
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDC3
|
|||
|
.WORD 60
|
|||
|
.LONG SHCAKLDC4
|
|||
|
.WORD 90
|
|||
|
.LONG SHCAKLDC3
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDC1
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDC2
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDC1
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDC3
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDC1
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDC2
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDC1
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDC3
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDC1
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDC2
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDC1
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDC3
|
|||
|
.WORD 4
|
|||
|
.LONG SHCAKLDC4
|
|||
|
.WORD 60
|
|||
|
.LONG 0
|
|||
|
|
|||
|
HGUYA .LONG NSDR1
|
|||
|
.WORD 4
|
|||
|
.LONG NSDR2
|
|||
|
.WORD 4
|
|||
|
.LONG NSDR3
|
|||
|
.WORD 4
|
|||
|
.LONG NSDR4
|
|||
|
.WORD 4
|
|||
|
.LONG NSDR3
|
|||
|
.WORD 4
|
|||
|
.LONG NSDR2
|
|||
|
.WORD 4
|
|||
|
.LONG NSDR1
|
|||
|
.WORD 4
|
|||
|
.LONG NSDR2
|
|||
|
.WORD 4
|
|||
|
.LONG NSDR3
|
|||
|
.WORD 4
|
|||
|
.LONG NSDR4
|
|||
|
.WORD 4
|
|||
|
.LONG NSDR3
|
|||
|
.WORD 4
|
|||
|
.LONG NSDR2
|
|||
|
.WORD 4
|
|||
|
.LONG NSDR1
|
|||
|
.WORD 4
|
|||
|
.LONG NSDR8
|
|||
|
.WORD 5
|
|||
|
.LONG NSDR9
|
|||
|
.WORD 5
|
|||
|
.LONG SWAVE1
|
|||
|
.WORD 5
|
|||
|
.LONG SWAVE3
|
|||
|
.WORD 5
|
|||
|
.LONG SWAVE1
|
|||
|
.WORD 5
|
|||
|
.LONG SWAVE2
|
|||
|
.WORD 5
|
|||
|
.LONG SWAVE1
|
|||
|
.WORD 5
|
|||
|
.LONG SWAVE3
|
|||
|
.WORD 5
|
|||
|
.LONG SWAVE1
|
|||
|
.WORD 5
|
|||
|
.LONG SWAVE2
|
|||
|
.WORD 5
|
|||
|
.LONG SWAVE1
|
|||
|
.WORD 5
|
|||
|
.LONG NSDR9
|
|||
|
.WORD 5
|
|||
|
.LONG NSDR8
|
|||
|
.WORD 60
|
|||
|
.LONG 0
|
|||
|
|
|||
|
HGUYB .LONG DOC1
|
|||
|
.WORD 4
|
|||
|
.LONG DOC2
|
|||
|
.WORD 4
|
|||
|
.LONG DOC3
|
|||
|
.WORD 4
|
|||
|
.LONG DOC4
|
|||
|
.WORD 40
|
|||
|
.LONG DOC3
|
|||
|
.WORD 4
|
|||
|
.LONG DOC2
|
|||
|
.WORD 4
|
|||
|
.LONG DOC1
|
|||
|
.WORD 60
|
|||
|
.LONG 0
|
|||
|
HGUYC .LONG BGRL1
|
|||
|
.WORD 8
|
|||
|
.LONG BGRL2
|
|||
|
.WORD 8
|
|||
|
.LONG BGRL1
|
|||
|
.WORD 8
|
|||
|
.LONG BGRL3
|
|||
|
.WORD 8
|
|||
|
.LONG BGRL1
|
|||
|
.WORD 8
|
|||
|
.LONG BGRL2
|
|||
|
.WORD 8
|
|||
|
.LONG BGRL1
|
|||
|
.WORD 8
|
|||
|
.LONG BGRL3
|
|||
|
.WORD 8
|
|||
|
.LONG BGRL1
|
|||
|
.WORD 8
|
|||
|
.LONG BGRL2
|
|||
|
.WORD 60
|
|||
|
.LONG 0
|
|||
|
HGUYD .LONG GN1
|
|||
|
.WORD 4
|
|||
|
.LONG GN2
|
|||
|
.WORD 4
|
|||
|
.LONG GN3
|
|||
|
.WORD 4
|
|||
|
.LONG GN4
|
|||
|
.WORD 4
|
|||
|
.LONG GN5
|
|||
|
.WORD 4
|
|||
|
.LONG GN6
|
|||
|
.WORD 4
|
|||
|
.LONG GN5
|
|||
|
.WORD 4
|
|||
|
.LONG GN4
|
|||
|
.WORD 4
|
|||
|
.LONG GN3
|
|||
|
.WORD 4
|
|||
|
.LONG GN2
|
|||
|
.WORD 4
|
|||
|
.LONG GN1
|
|||
|
.WORD 60
|
|||
|
.LONG 0
|
|||
|
|
|||
|
|
|||
|
;
|
|||
|
;O_ITEMS:
|
|||
|
;;A2=# OF CASH ITEMS TO CREATE ON SCREEN
|
|||
|
; CREATE0 SENDR
|
|||
|
; CREATE0 SENDR2
|
|||
|
; RETS
|
|||
|
;O_ITEMS2:
|
|||
|
;;A2=# OF CASH ITEMS TO CREATE ON SCREEN
|
|||
|
; CREATE0 SENDR3
|
|||
|
; CREATE0 SENDR3
|
|||
|
; RETS
|
|||
|
;SENDR2 SLEEPK 1
|
|||
|
;SENDR SLEEP 01B0H+90
|
|||
|
;SENDR3 MOVI 028H,A9 ;28
|
|||
|
; MOVI 023H,B0
|
|||
|
; MOVI 0D8H,B1
|
|||
|
; CALLA RANGRAND
|
|||
|
; MOVE A0,A10 ;A10=UPLFT X OF AREA
|
|||
|
; MOVI 02DH,B0
|
|||
|
; MOVI 0A4H,B1
|
|||
|
; CALLA RANGRAND
|
|||
|
; MOVE A0,A11 ;A11=UPLFT Y OF AREA
|
|||
|
;
|
|||
|
;OH2 ;CREATE A BUNCH OF THEM
|
|||
|
; CREATE CSHPID,ANITEM
|
|||
|
; SLEEPK 1
|
|||
|
; DSJNE A9,OH2
|
|||
|
; DIE
|
|||
|
;
|
|||
|
|
|||
|
;ANITEM:
|
|||
|
;;AMINE IS CALLED AT THE START OF A WAVE TO PLACE X # OF HULKS ON SCREEN
|
|||
|
;;AT THE BEGINNING OF A WAVE
|
|||
|
; MOVI 0,B0
|
|||
|
; MOVI 04CH,B1
|
|||
|
; CALLA RANGRAND
|
|||
|
; ADD A11,A0
|
|||
|
; MOVE A0,A1
|
|||
|
;
|
|||
|
; MOVI 0,B0
|
|||
|
; MOVI 074H,B1
|
|||
|
; CALLA RANGRAND
|
|||
|
; ADD A10,A0
|
|||
|
; SLL 16,A0
|
|||
|
; SLL 16,A1
|
|||
|
;
|
|||
|
;;A0=X,A1=Y
|
|||
|
;;A0 & A1 ARE SET UP
|
|||
|
;;ADD IN OFFSETS FOR THIS PARTICULAR ARENA
|
|||
|
; MOVE @GAMSTATE,A2
|
|||
|
; CMPI INAMODE,A2
|
|||
|
; JREQ ADMD
|
|||
|
; MOVE @WAVEYX,A2,L
|
|||
|
;;A2=PACKED OFFSETS
|
|||
|
; MOVX A2,A3
|
|||
|
; SLL 16,A3
|
|||
|
; ADD A3,A0 ;ADJUSTED A0 XVAL!
|
|||
|
; ANDI 0FFFF0000H,A2
|
|||
|
; ADD A2,A1 ;ADJUSTED A1 YVAL!
|
|||
|
;ADMD CALLR IH2 ;INIT HULK (BEGIN_OBJ)
|
|||
|
; CALLA BEGINOBJ2
|
|||
|
;WAIT
|
|||
|
; MOVI 4*60-30,A0
|
|||
|
; SUB A9,A0
|
|||
|
; CALLA PRCSLP
|
|||
|
;
|
|||
|
;;BLINK
|
|||
|
;;A8=ICON IMAGE PTR
|
|||
|
; MOVE @HALT,A0
|
|||
|
; JRNZ WAIT
|
|||
|
;
|
|||
|
; MOVK 7,A10
|
|||
|
;;ABOUT 1 SECOND OF BLINK
|
|||
|
;BK
|
|||
|
; MOVE A8,A0
|
|||
|
; CALLA OBJOFF
|
|||
|
; SLEEP 5
|
|||
|
; MOVE A8,A0
|
|||
|
; CALLA OBJON
|
|||
|
; SLEEP 5
|
|||
|
; DSJS A10,BK
|
|||
|
; SLEEP 30
|
|||
|
; MOVE A8,A0
|
|||
|
; CALLA DELOBJ ;ICONS NOW GONE FOREVER!
|
|||
|
; DIE
|
|||
|
;
|
|||
|
;IH2:
|
|||
|
; MOVE @CIRCUIT,A2
|
|||
|
; CMPI 2,A2
|
|||
|
; JRNZ IHJ
|
|||
|
; MOVE @MCON,A4
|
|||
|
; JRNZ IHJ
|
|||
|
; MOVK 4,A2
|
|||
|
; JRUC IHJJ
|
|||
|
;IHJ
|
|||
|
; MOVB @TMP,A2
|
|||
|
; INC A2
|
|||
|
; MOVB A2,@TMP
|
|||
|
; ANDI 03H,A2
|
|||
|
;IHJJ SLL 5,A2
|
|||
|
; ADDI GTBL,A2
|
|||
|
; MOVE *A2,A2,L
|
|||
|
; MOVI 99,A3 ;69
|
|||
|
; MOVI DMAWNZ,A4 ;NON-ZERO VALUE
|
|||
|
; MOVI CLSNEUT|TYPICON|SUBCSHI,A5
|
|||
|
; CLR A6
|
|||
|
; CLR A7
|
|||
|
; RETS
|
|||
|
;
|
|||
|
;GTBL .LONG PRZ1,PRZ2,PRZ3,PRZ1,KEY
|
|||
|
; .REF BEGINOBJ2,WAVEYX,GAMSTATE,DELPAL,MIN_LIT,WAVE
|
|||
|
; .REF GET_VALID_XY,GET_WVADDR,FRANIM,RANGRAND
|
|||
|
; .REF OBJON,OBJOFF,HALT,CIRCUIT,STATUS,MCON
|
|||
|
; .DEF O_MINE,EXPMINE,O_ITEMS,O_ITEMS2
|
|||
|
; .BSS TMP,8
|
|||
|
;
|
|||
|
;BOLTHF .LONG BOLTA
|
|||
|
; .WORD 3
|
|||
|
; .LONG BOLTB
|
|||
|
; .WORD 3
|
|||
|
; .LONG BOLT1
|
|||
|
; .WORD 3
|
|||
|
; .LONG BOLT2
|
|||
|
; .WORD 3
|
|||
|
; .LONG BOLT3
|
|||
|
; .WORD 3
|
|||
|
; .LONG BOLT1
|
|||
|
; .WORD FLIPBITS|3,M_FLIPH
|
|||
|
; .LONG BOLT2
|
|||
|
; .WORD 3
|
|||
|
; .LONG BOLT3
|
|||
|
; .WORD 3
|
|||
|
; .LONG BOLT3
|
|||
|
; .WORD FLIPBITS|3,M_FLIPV
|
|||
|
; .LONG BOLT2
|
|||
|
; .WORD 3
|
|||
|
; .LONG BOLT1
|
|||
|
; .WORD 3
|
|||
|
; .LONG 0
|
|||
|
;FAKER SLEEP 40
|
|||
|
; CLR A0
|
|||
|
; MOVE A0,*A8(OXVEL),L
|
|||
|
; MOVE A0,*A8(OYVEL),L
|
|||
|
; DIE
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
.END
|
|||
|
|