smashtv/ICONS.ASM

1953 lines
30 KiB
NASM
Raw Normal View History

2021-04-06 15:09:56 -07:00
.FILE 'ICONS.ASM (ICON CONTROL)'
.TITLE 'ROBO-RAMA GAME PROGRAM'
.WIDTH 132
.OPTION B,D,L,T
.MNOLIST
;
; INITIATED: APRIL 26,1989
; MODIFIED: !
; SOFTWARE: MARK TURMELL
;
; COPYRIGHT (C) 1989 WILLIAMS ELECTRONICS GAMES, INC.
;
;
; GET THE SYSTEM STUFF
.INCLUDE "MPROC.EQU" ;MPROC EQUATES
.INCLUDE "DISP.EQU" ;DISPLAY PROC. EQUATES
.INCLUDE "\VIDEO\SYS\SYS.INC" ;Z UNIT SYSTEM EQUATES
.INCLUDE "\VIDEO\SYS\MACROS.HDR" ;MACROS DEFINITIONS
.INCLUDE "IMGTBL.GLO"
.INCLUDE "ROBO.EQU"
.INCLUDE "MAC2.ASM" ;MACRO 2 DEFINITIONS
.INCLUDE "AUDIT.EQU"
;
;SOUND
;
.REF EXP3HI
;
;SYMBOLS EXTERNALLY DEFINED
;
.REF RANGRAND,HALT,PLYRPRCS,OBJON,OBJOFF,PCNT,BOSSON,MAXFREE
.REF GPALOBJ,STFOBJ,INSOBJ,PLYROBJS,DO_ALL_STUFF
.REF ADJSTWTL,CIRCUIT
.REF KILALL,BOUND
.REF DELOBJ,RANDPER,FRANIM,DELPAL,GAMSTATE
.REF RANGRAND,PRCSLP
.REF WAVE,GET_ADJ
.REF LASRX
;
;SYMBOLS DEFINED IN THIS FILE
;
.DEF SEND_ICON,COVER
.DEF SHAKER,SHK_ON
.DEF CLUSTER
.DEF EXPTLXY
.DEF EXPLRXY
.DEF ICNFLG,PZFLG,FREETOT
;
;UNINITIALIZED RAM DEFINITIONS
;
.BSS FREETOT,8
.BSS TMP,8
.BSS PZFLG,8
.BSS SHK_ON,8
.BSS XSET,8
.BSS YSET,8
.BSS EXPTLXY,32
.BSS EXPLRXY,32
.BSS AMP,8
.BSS AMPCNT,8
.BSS ICNFLG,8
.TEXT
;SEND_ICON - PUT A RANDOM ICON TYPE ONTO PLAYFIELD AT RANDOM INTERVALS
; THEIR VALUE IS SET ACCORDING TO WAVE
; CURRENTLY BEING PLAYED
; PARAMS:
; NONE
;
;NOW RANDOMLY SELECT AN ICON FROM THIS WAVE GROUP
;RULES:
;1- IF BLADES ON, DO NOT SEND BLADE ICON
;2- IF HELPER IS ON, DO NOT SEND HELPER ICON
;3- IF GRENADES ON, DO NOT SEND GRENADE ICON
;
SEND_ICON:
MOVE @CIRCUIT,A0
SLL 5,A0
ADDI CBOS,A0
MOVE *A0,A0,L
MOVE @WAVE,A1
SLL 3,A1
ADD A1,A0
MOVB *A0,A0
JRNZ SI1
MOVE @GAMSTATE,A0
CMPI INAMODE,A0
JRZ SI1
CREATE ICONPID,SEND_PZ
SI1
CLR A0
MOVB A0,@ICNFLG
MOVE @WAVE,A0 ;GET WAVE WE ARE NOW ON
SLL 5,A0 ;LONG WORD LOOK-UP
MOVE @CIRCUIT,A1
JRZ CT1
CMPI 1,A1
JRZ CT2
;CIRCUIT 3
ADDI ICONTYP3,A0 ;ICON SUB TYPES FOR THIS WAVE
MOVE *A0,A9,L
JRUC ICONLUP
CT2
ADDI ICONTYP2,A0 ;ICON SUB TYPES FOR THIS WAVE
MOVE *A0,A9,L
JRUC ICONLUP
CT1
ADDI ICONTYP,A0 ;ICON SUB TYPES FOR THIS WAVE
MOVE *A0,A9,L
JRUC ICONLUP
ICONLUP:
MOVE @HALT,A0
JRNE IP
MOVI 50,B0
MOVI 340,B1
CALLA RANGRAND
MOVE A0,A11
MOVI 70,B0
MOVI 220,B1
MOVB @BOUND,A0
JRZ CFL
MOVI 120,B1
CFL
CALLA RANGRAND
MOVE A0,A10
MOVE @PLYROBJS,A0,L
JRZ A
CALLR CK_HDS
JRC NOK
A MOVE @PLYROBJS+32,A0,L
JRZ OK
CALLR CK_HDS
JRNC OK
NOK SLEEP 4
JRUC ICONLUP
NOKZ SLEEP 4*60
JRUC ICONLUP
CBOS .LONG CB1,CB2,CB3
CB1 .BYTE 0,0,0,0,0,0,0,0,0,0,1,0
CB2 .BYTE 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0
CB3 .BYTE 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0
.EVEN
OK:
;WILL NOT LAND ON ANYONES HEAD
CLR B0
MOVK 20,B1
CALLA RANGRAND
; MOVK 1,A0
SLL 3,A0
ADD A9,A0 ;RANDOM ICON NOW SELECTED
MOVB *A0,A14
JRZ NOKZ
CMPI XTRAX,A14
JRNE NOX
;TRYING TO PLACE AN EXTRA MAN ICON! SHOULD I?
MOVB @FREETOT,A0
MOVE @MAXFREE,A1
CMP A1,A0 ;2 ;3 PER CIRCUIT CAN BE PICKED UP!
JRGT NOK
JRUC I2Z ;YES I MAY
NOX CMPI BLDX,A14
JRNE I1Z
;TRYING TO PLACE BLADE ICON! OK?
;CHECK PLAYER 1 AND 2 BLDFLG
MOVE @PLYRPRCS,A0,L
JRZ I0
MOVB *A0(BLDFLG),A0
JRNZ NOK ;BR=SOMEONE ALREADY HAS BLADES!
I0 MOVE @PLYRPRCS+32,A0,L
JRZ I2Z
MOVB *A0(BLDFLG),A0
JRNZ NOK ;BR=SOMEONE ALREADY HAS BLADES!
JRUC I2Z
;
I1Z CMPI HLPRX,A14
JRNE I2Z
;TRYING TO PLACE HELPER ICON! OK?
MOVE @LASRX,A0,L
JRNZ NOK ;BR=LASER ALREADY ON SCREEN
I2Z SLL 5,A14
ADDI ICINIT,A14
MOVE *A14,A14,L
CALLA DO_ALL_STUFF
; CALLA GPALOBJ ;ALLOCATE A COLOR PALETTE
; CALLA STFOBJ ;STUFF OBJECT DATA
; MOVE A13,*A0(OPLINK),L
; CALLA INSOBJ ;INSERT OBJECT INTO LIST
MOVE A0,A8
MOVE A10,*A8(OYPOS),W
MOVE A11,*A8(OXPOS),W
CALLA ADJSTWTL
MOVB @BOSSON,A0
JRZ WAIT
WAITAA
SLEEP 7*54-30 ;ABOUT 3 1/2 SECONDS ON SCREEN!
MOVB @ICNFLG,A1 ;ICON PICKED UP ALREADY!
JRNZ OBJNONE
MOVE @HALT,A0
JRNZ WAITAA
JRUC WAITB
WAIT SLEEP 4*54-30 ;ABOUT 3 1/2 SECONDS ON SCREEN!
;BASED ON LEVEL?
;BLINK
;A8=ICON IMAGE PTR
MOVB @ICNFLG,A1 ;ICON PICKED UP ALREADY!
JRNZ OBJNONE
MOVE @HALT,A0
JRNZ WAIT
WAITB
MOVK 7,A10
;ABOUT 1 SECOND OF BLINK
BK
MOVE A8,A0
CALLA OBJOFF
SLEEP 5
MOVE A8,A0
CALLA OBJON
MOVB @ICNFLG,A1 ;ICON PICKED UP ALREADY!
JRNZ OBJNONE
SLEEP 5
DSJS A10,BK
SLEEP 30
HH:
MOVB @ICNFLG,A1 ;ICON PICKED UP ALREADY!
JRNZ OBJNONE
MOVE A8,A0
CALLA DELOBJ ;ICONS NOW GONE FOREVER!
; CALLA DELPAL ;TEMPORARY
OBJNONE:
CLR A0 ;RESET FLAG
MOVB A0,@ICNFLG
IP
MOVE @WAVE,A0
CMPI 1,A0
JRNZ IPX
MOVE @CIRCUIT,A0
JRZ IPXX
IPX MOVB @BOSSON,A0
JRNZ IPXX
SLEEP 160
JRUC ICONLUP
IPXX SLEEP 1
JRUC ICONLUP
CK_HDS:
;DON'T LAND ON PLAYERS HEAD!
;CHECK BOTH PLAYER 1 AND 2
MOVB @BOSSON,A2
JRNZ ICONOK
MOVE *A0(OYVAL),A2,L
MOVE *A0(OXVAL),A3,L
MOVE @WORLDTLY,A4,L
MOVE @WORLDTLX,A5,L
SUB A4,A2
SUB A5,A3
SRL 16,A2
SRL 16,A3
SUB A10,A2
ABS A2
CMPI 25,A2
; CMPI 30,A2
JRLT NOICON
SUB A11,A3
ABS A3
CMPI 30,A3
; CMPI 40,A3
JRGT ICONOK
NOICON: SETC
RETS
ICONOK:
CLRC ;OKAY
RETS
;
PY: .WORD 032H,0144H,020H,020H
PY2: .WORD 03EH,0154H,0164H,0164H
PX: .WORD 040H,040H,040H,0D0H
PX2: .WORD 0C0H,0C0H,04CH,0D8H
;
SEND_PZ
SLEEP 4*60
CLR A0
MOVB A0,@PZFLG
PZLUP:
MOVE @HALT,A0
JRNE IPZ
MOVB @PCNT,A8
ANDI 03,A8
SLL 4,A8
MOVB @BOUND,A0
JRZ PZ0
MOVI 32,A8
; MOVK 2,A8
; SLL 4,A8
PZ0
MOVI PY,A1
ADD A8,A1
MOVE *A1,A1,W
MOVE A1,B0
MOVI PY2,A1
ADD A8,A1
MOVE *A1,A1,W
MOVE A1,B1
CALLA RANGRAND
MOVE A0,A11
MOVI PX,A1
ADD A8,A1
MOVE *A1,A1,W
MOVE A1,B0
MOVI PX2,A1
ADD A8,A1
MOVE *A1,A1,W
MOVE A1,B1
CALLA RANGRAND
MOVE A0,A10
MOVE @PLYROBJS,A0,L
JRZ AA
CALLR CK_HDS
JRC NOKA
AA MOVE @PLYROBJS+32,A0,L
JRZ OKA
CALLR CK_HDS
JRNC OKA
NOKA SLEEP 2
JRUC PZLUP
PZLST .LONG PZ1,PZ2,PZ3,PZ3
OKA:
;WILL NOT LAND ON ANYONES HEAD
MOVE A10,A0
ANDI 03,A0
SLL 5,A0
ADDI PZLST,A0
MOVE *A0,A14,L
CALLA DO_ALL_STUFF
; CALLA GPALOBJ ;ALLOCATE A COLOR PALETTE
; CALLA STFOBJ ;STUFF OBJECT DATA
; MOVE A13,*A0(OPLINK),L
; CALLA INSOBJ ;INSERT OBJECT INTO LIST
MOVE A0,A8
MOVE A10,*A8(OYPOS),W
MOVE A11,*A8(OXPOS),W
CALLA ADJSTWTL
WAIT0 SLEEP 5*54 ;ABOUT 3 1/2 SECONDS ON SCREEN!
;BASED ON LEVEL?
;BLINK
;A8=ICON IMAGE PTR
MOVB @PZFLG,A1 ;ICON PICKED UP ALREADY!
JRNZ OBJN
MOVE @HALT,A0
JRNZ WAIT0
MOVK 7,A10
;ABOUT 1 SECOND OF BLINK
BKZ
MOVE A8,A0
CALLA OBJOFF
SLEEP 5
MOVE A8,A0
CALLA OBJON
MOVB @PZFLG,A1 ;ICON PICKED UP ALREADY!
JRNZ OBJN
SLEEP 5
DSJS A10,BKZ
SLEEP 30
HHZ:
MOVB @PZFLG,A1 ;ICON PICKED UP ALREADY!
JRNZ OBJN
MOVE A8,A0
CALLA DELOBJ ;ICONS NOW GONE FOREVER!
OBJN:
CLR A0 ;RESET FLAG
MOVB A0,@PZFLG
IPZ SLEEP 130 ;130
MOVE @WAVE,A0
DEC A0
SLL 4,A0
MOVE @CIRCUIT,A1
JRZ CWV1
CMPI 1,A1
JRZ CWV2
;CIRCUIT 3 CASH
ADDI CASHTBL3,A0
JRUC CWVO
CWV2
ADDI CASHTBL2,A0
JRUC CWVO
CWV1
ADDI CASHTBL,A0
CWVO
MOVE *A0,A0
JRZ PZLUP ;DON'T WANT ANY IN THIS ARENA!
CALLA RANDPER
JRNC PZLUP
CLR A1
NOT A1
MOVI CLSNEUT|TYPICON|SUBCSH,A0
CALLA EXISTOBJ
JRNZ PZLUP
;NO CASH ON SCREEN! LETS GET SOME.
;CHECK TO SEE IF ICONPID IS STILL AROUND.
;IF NOT, THEN PLYRS ARE LEAVING ARENA
MOVI ICONPID,A0
CALLA EXISTP
JRZ PZLUP ;BR=ICON PROC NO LONGER AROUND!
MOVE @GAMSTATE,A0
CMPI INAMODE,A0
JRZ PZLUP
CREATE CSHPID,SEND_CSH
JRUC PZLUP
;CASH PILE PERCENTAGE FOR CIRCUIT 1 WAVES.
CASHTBL .WORD 900,900,900,590,1,990,590,0,0,400,0,0
CASHTBL2 .WORD 0,0,400,190,100,0,0,100,200,0,0,0
.WORD 400,0,0,100,0,0,0
CASHTBL3 .WORD 990,0,0,100,100,0,0,100,100,0,900,0
.WORD 100,0,0,100,0,0,0,0,0,0
;DO CASH ON GROUND
SEND_CSH
MOVE @HALT,A0
JRNE CIZZ
SLEEP 60
CLR A1
NOT A1
MOVI CLSNEUT|TYPICON|SUBCSH,A0
CALLA KILOBJ
;GET RANDOM VALID SCRN X, VALID SCRN Y,
;THEN ADD RANDOM OFFSET X/Y FROM THAT X/Y SCRN POS
;PLACE 10-20 IMAGES INTO VALID AREA
;PLACE IMAGES DOWN SLOWLY/SPRINKLE THEM!
;ALLOW THEM TO SCROLL ON WITH A NEW ARENA SCREEN
;DIE
MOVI 50,B0
MOVI 260,B1
CALLA RANGRAND
MOVE A0,A10 ;A10=UPLFT X OF AREA
MOVI 65,B0
MOVI 170,B1
CALLA RANGRAND
MOVE A0,A11 ;A11=UPLFT Y OF AREA
CLR A0
MOVB A0,@TMP
MOVK 15,B0
MOVK 25,B1
CALLA RANGRAND
MOVE A0,A9 ;A9=# OF CASH ITEMS TO LAY DOWN
CMPI 19,A0
JRNC LPQ
ANDI 03,A0
INC A0
MOVB A0,@TMP
LPQ
MOVI 0,B0
MOVI 75,B1
CALLA RANGRAND
MMTM SP,A10,A11
ADD A0,A10
MOVI 0,B0
MOVI 50,B1
CALLA RANGRAND
ADD A0,A11
MOVB @TMP,A1
JRZ LPQ1
;SINGLES TO BE DISPERSED!
MOVE A1,A0
SLL 5,A0
ADDI CZ2LST,A0
JRUC LPQ2
LPQ1 ANDI 03,A0
SLL 5,A0
ADDI CZLST,A0
LPQ2 MOVE *A0,A14,L
CALLA DO_ALL_STUFF
; CALLA GPALOBJ ;ALLOCATE A COLOR PALETTE
; CALLA STFOBJ ;STUFF OBJECT DATA
; MOVE A13,*A0(OPLINK),L
; CALLA INSOBJ ;INSERT OBJECT INTO LIST
MOVE A0,A8
MOVE A10,*A8(OXPOS),W
MOVE A11,*A8(OYPOS),W
CALLA ADJSTWTL
MMFM SP,A10,A11
SLEEP 3
DEC A9
JRNZ LPQ
CIZZ DIE
CZLST .LONG CASH0,CNS0,GLD0,CASH0
CZ2LST .LONG 0,CASH0,GLD0,CNS0,CNS0
BLDX .EQU 1
HLPRX .EQU 2
SPRYX .EQU 3
PODX .EQU 4
XTRAX .EQU 5
GRENX .EQU 6
KEYX .EQU 7
RINGX .EQU 8
NSTPX .EQU 9
SHOEX .EQU 10
SMRTX .EQU 11
ICINIT .LONG 0,BLDI,HLPRI,SPRYI,PODI,XTRAI
.LONG GRENI,KEYI,RINGI,NSTPI,SHOEI,SMARTI
ICONTYP:
.LONG 0,ICN1,ICN2,ICN3,ICN4,ICN5,ICN6,ICN7
.LONG ICN8,ICN9,ICN10
ICONTYP2:
.LONG 0,ICN21,ICN22,ICN23,ICN24,ICN25,ICN26,ICN27
.LONG ICN28,ICN29,ICN210,ICN211,ICN212,ICN213,ICN214
.LONG ICN215,ICN215,ICN216,ICN217,ICN218
ICONTYP3:
.LONG 0,ICN31,ICN32,ICN33,ICN34,ICN35,ICN36,ICN37
.LONG ICN38,ICN39,ICN310,ICN311,ICN312,ICN313,ICN314
.LONG ICN315,ICN315,ICN316,ICN317,ICN318,ICN319,ICN10,ICN10
;ICN28,ICN10,ICN10
;WAVE 1
;ICNTST: ;FOR ORBS
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE GRENX
;HELPER
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX,SMRTX
;WAVE 1
ICN1:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX,BLDX,BLDX,BLDX
.BYTE BLDX,BLDX
;HELPER
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX
;PODS
;LIFE
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
;SHOES
.BYTE SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX,SMRTX
.BYTE SMRTX,SMRTX,SMRTX
;WAVE 2
ICN2:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX,BLDX,BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
.BYTE KEYX
;RINGS
.BYTE RINGX
;NOSTOP
;SHOES
.BYTE SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN3:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN4:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
;GRENADE
;KEYS
.BYTE KEYX
;RINGS
.BYTE RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX
ICN5:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
;HELPER
.BYTE HLPRX
;SPRAY
.BYTE SPRYX,SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
.BYTE XTRAX,XTRAX,XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN6:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX,BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
.BYTE KEYX
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX
ICN7:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX,BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX,SMRTX
ICN8:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
;HELPER
.BYTE HLPRX
;SPRAY
.BYTE SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX,SMRTX
ICN9:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
.BYTE XTRAX,XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN10:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
;HELPER
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
;GRENADE
.BYTE GRENX,GRENX,GRENX,GRENX
.BYTE GRENX,GRENX,GRENX
;KEYS
;RINGS
.BYTE RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX
;SMART
;CIRCUIT 2
ICN21:
;WAVE 1
;ICNTST: ;FOR ORBS
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
;HELPER
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX
.BYTE RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX,SMRTX
;WAVE 2
ICN22:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX,BLDX,BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
.BYTE KEYX
;RINGS
.BYTE RINGX
;NOSTOP
;SHOES
.BYTE SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN23:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN24:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
;GRENADE
;KEYS
.BYTE KEYX
;RINGS
.BYTE RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX
ICN25:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN26:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX,BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX
;LIFE
;GRENADE
;KEYS
.BYTE KEYX
;RINGS
.BYTE RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX
ICN27:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
;HELPER
.BYTE HLPRX
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX,PODX,PODX
;LIFE
;GRENADE
.BYTE GRENX,GRENX,GRENX,GRENX
.BYTE GRENX,GRENX,GRENX
;KEYS
;RINGS
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX
ICN28:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
.BYTE KEYX
;RINGS
.BYTE RINGX
;NOSTOP
.BYTE NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN29:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
.BYTE 0
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
.BYTE XTRAX,XTRAX
;GRENADE
;KEYS
.BYTE KEYX
;RINGS
.BYTE RINGX,RINGX
;NOSTOP
.BYTE NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN210:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
ICN211:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
.BYTE 0
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
.BYTE XTRAX,XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX
;NOSTOP
.BYTE NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN212:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
.BYTE XTRAX,XTRAX,XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX
ICN213:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
.BYTE XTRAX,XTRAX
;GRENADE
;KEYS
.BYTE KEYX,KEYX
;RINGS
.BYTE RINGX
;NOSTOP
.BYTE NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN214:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
.BYTE 0
.BYTE 0
.BYTE 0
;BLADES
;HELPER
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
.BYTE XTRAX,XTRAX,XTRAX
;GRENADE
;KEYS
.BYTE KEYX
;RINGS
.BYTE RINGX
;NOSTOP
.BYTE NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN215:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
.BYTE KEYX
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN216:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN217:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
.BYTE XTRAX,XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN218:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
.BYTE 0
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
.BYTE XTRAX
.BYTE XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX
;NOSTOP
.BYTE NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
;CIRCUIT 3
ICN31:
;WAVE 1
;ICNTST: ;FOR ORBS
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
;GRENADE
;KEYS
;RINGS
.BYTE RINGX
.BYTE RINGX
.BYTE RINGX
;NOSTOP
.BYTE NSTPX,NSTPX
;SHOES
.BYTE SHOEX
;SMART
.BYTE SMRTX,SMRTX,SMRTX
;WAVE 2
ICN32:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX
.BYTE SPRYX
;PODS
.BYTE PODX,PODX,PODX,PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX
;NOSTOP
.BYTE NSTPX
.BYTE NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN33:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX
;SPRAY
.BYTE SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX
.BYTE NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN34:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX,SMRTX
ICN35:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN36:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX
ICN37:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
;HELPER
.BYTE HLPRX
.BYTE HLPRX
.BYTE HLPRX
;SPRAY
.BYTE SPRYX
.BYTE SPRYX
.BYTE SPRYX
.BYTE SPRYX
.BYTE SPRYX
.BYTE SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
;GRENADE
.BYTE GRENX
;KEYS
;RINGS
.BYTE RINGX
.BYTE RINGX
;NOSTOP
.BYTE NSTPX,NSTPX
.BYTE NSTPX
.BYTE NSTPX
;SHOES
.BYTE SHOEX
ICN38:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN39:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN310:
ICN311:
;ICNTST:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX,BLDX
;HELPER
.BYTE HLPRX,HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX
;LIFE
;GRENADE
;KEYS
;RINGS
.BYTE RINGX
.BYTE RINGX
.BYTE RINGX
;NOSTOP
.BYTE NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX,SMRTX
ICN312:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX
;SPRAY
.BYTE SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
.BYTE XTRAX
.BYTE XTRAX
.BYTE XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN313:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN314:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
;HELPER
.BYTE HLPRX
;SPRAY
.BYTE SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
.BYTE XTRAX
.BYTE XTRAX
.BYTE XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN315:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN316:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN317:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
.BYTE XTRAX
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN318:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX,PODX
;LIFE
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
ICN319:
;EACH ICON LISTED INDIVIDUALLY, TOTAL MUST = 20
.BYTE 0
;BLADES
.BYTE BLDX
;HELPER
.BYTE HLPRX,HLPRX
;SPRAY
.BYTE SPRYX,SPRYX,SPRYX,SPRYX
;PODS
.BYTE PODX,PODX,PODX,PODX
;LIFE
;GRENADE
;KEYS
;RINGS
.BYTE RINGX,RINGX
;NOSTOP
.BYTE NSTPX,NSTPX
;SHOES
.BYTE SHOEX,SHOEX,SHOEX
;SMART
.BYTE SMRTX,SMRTX
.EVEN
PZ1:
.LONG 0,0,PRZ1
.WORD 91,DMAWNZ,CLSNEUT|TYPICON|SUBPZ1
.LONG 0,0
PZ2:
.LONG 0,0,PRZ2
.WORD 91,DMAWNZ,CLSNEUT|TYPICON|SUBPZ2
.LONG 0,0
PZ3:
.LONG 0,0,PRZ3
.WORD 91,DMAWNZ,CLSNEUT|TYPICON|SUBPZ3
.LONG 0,0
CNS0:
.LONG 0,0,CNS
.WORD 80,DMAWNZ,CLSNEUT|TYPICON|SUBCSH
.LONG 0,0
GLD0:
.LONG 0,0,GLD
.WORD 80,DMAWNZ,CLSNEUT|TYPICON|SUBCSH
.LONG 0,0
CASH0:
.LONG 0,0,CASH
.WORD 80,DMAWNZ,CLSNEUT|TYPICON|SUBCSH
.LONG 0,0
KEYI:
.LONG 0,0,KEY
.WORD 90,DMAWNZ,CLSNEUT|TYPICON|SUBKEY
.LONG 0,0
NSTPI:
.LONG 0,0,NONSTOP
.WORD 90,DMAWNZ,CLSNEUT|TYPICON|SUBNSTP
.LONG 0,0
RINGI:
.LONG 0,0,RING
.WORD 90,DMAWNZ,CLSNEUT|TYPICON|SUBRING
.LONG 0,0
GRENI:
.LONG 0,0,GRENADE
.WORD 90,DMAWNZ,CLSNEUT|TYPICON|SUBGREN
.LONG 0,0
XTRAI:
.LONG 0,0,PLAYER
.WORD 90,DMAWNZ,CLSNEUT|TYPICON|SUBMAN
.LONG 0,0
SPRYI:
.LONG 0,0,SPRAY
.WORD 90,DMAWNZ,CLSNEUT|TYPICON|SUBSPRY1
.LONG 0,0
PODI:
.LONG 0,0,POD
.WORD 90,DMAWNZ,CLSNEUT|TYPICON|SUBPOD
.LONG 0,0
BLDI:
.LONG 0,0,BLADE
.WORD 90,DMAWNZ,CLSNEUT|TYPICON|SUBPOW1
.LONG 0,0
HLPRI:
.LONG 0,0,HELPER
.WORD 90,DMAWNZ,CLSNEUT|TYPICON|SUBPOW2
.LONG 0,0
SHOEI:
.LONG 0,0,SHOES
.WORD 90,DMAWNZ,CLSNEUT|TYPICON|SUBSHOE
.LONG 0,0
SMARTI:
.LONG 0,0,SMART
.WORD 90,DMAWNZ,CLSNEUT|TYPICON|SUBSMRT
.LONG 0,0
;
; SHAKER - SHAKE SCREEN AS AS IF AN EARTHQUAKE IS IN EFFECT
; A10 = # TICKS TO SHAKE
; NOTE: TIME TO SHAKE MUST BE MORE THAN 6 TICKS
; RETURNS:
; NOTHING AT ALL
SHAKER:
MOVE A10,A11
MOVK 6,A0
MOVB A0,@SHK_ON
DIVS A0,A11
MOVB A0,@AMP
MOVB A11,@AMPCNT
CREATE 0,SHAKELP
RETS
SHAKELP:
CLR B0
MOVB @AMP,B1
CALLA RANGRAND
MOVB A0,@XSET
CLR B0
MOVB @AMP,B1
CALLA RANGRAND
MOVB A0,@YSET
MOVI 500,A0
CALLA RANDPER
JRC SHAKEY
SHAKEX:
MOVB @XSET,A1
MOVE @WORLDTLX,A0,L
SLL 16,A1
ADD A1,A0
MOVE A0,@WORLDTLX,L
SLEEP 1
MOVB @XSET,A1
MOVE @WORLDTLX,A0,L
SLL 16,A1
SUB A1,A0
MOVE A0,@WORLDTLX,L
JRUC SHAKELP
SHAKEY:
MOVB @YSET,A1
MOVE @WORLDTLY,A0,L
SLL 16,A1
ADD A1,A0
MOVE A0,@WORLDTLY,L
SLEEP 1
MOVB @YSET,A1
MOVE @WORLDTLY,A0,L
SLL 16,A1
SUB A1,A0
MOVE A0,@WORLDTLY,L
MOVB @AMPCNT,A2
DEC A2
MOVB A2,@AMPCNT
JRNZ AMPOK
MOVB A11,@AMPCNT
MOVB @AMP,A0
CMPI 1,A0
JRZ AMPOK
DEC A0
MOVB A0,@AMP
AMPOK:
DSJ A10,SHAKELP
CLR A0
MOVB A0,@SHK_ON
DIE
COVER
SLEEP 7*60
MOVI [78H,10H],A0
MOVE A0,@EXPTLXY,L
MOVI [0FCH,0CEH],A0
MOVE A0,@EXPLRXY,L
MOVI 70H,A10
CALLA CLUSTER
DIE
;
; CLUSTER - MAKE SMALL EXPLOSIONS WITHIN SPECIFIED TARGET AREA
; PARAMS:
; EXPTLXY = TOP LEFT X AND Y (X,Y PACKED) 16.16
; EXPLRXY = LOWER RIGHT X AND Y (X,Y PACKED) 16.16
; A10 = # OF EXPLOSIONS
; RETURNS:
; NOTHING AT ALL
CLUSTER:
SRL 1,A10
CREATE DUM_ID,MASSEXP
RETS
MASSEXP:
CALLR SETEXP
CALLR SETEXP
SLEEP 1
DSJ A10,MASSEXP ;NEXT EXPLOSION PLEASE
DIE
FLASH:
;SOUNDS OFF IN DEMO
ADJUST ADJMUSIC ;GET MUSIC ON OFF FOR DEMO
MOVE A0,A0
JRNZ NONO
MOVI EXP3HI,A0
CALLA ONESND
NONO MOVI MEDEXP,A9
MOVK 1,A1
JSRP FRANIM
MOVE A8,A0 ;DELETE EXPLOSION FROM OBJ LIST
; CALLA DELPAL ;ALSO ITS PALLETTE
CALLA DELOBJ
DIE
SETEXP:
MOVI EXPLODE,A14
CALLA DO_ALL_STUFF
; CALLA GPALOBJ ;ALLOCATE A PALLETTE
; CALLA STFOBJ ;STUFF PARAMETERS
; MOVE A13,*A0(OPLINK),L ;MARK PROCESS IT IS IN
; CALLA INSOBJ ;INSERT ONTO OBJECT LIST
MOVE A0,A8
JRZ OBJFAIL
MOVE @EXPTLXY,B0,W
MOVE @EXPLRXY,B1,W
CALLA RANGRAND
MOVE A0,*A8(OXPOS),W
MOVE @EXPTLXY,B0,L
MOVE @EXPLRXY,B1,L
SRL 16,B0
SRL 16,B1
CALLA RANGRAND
MOVE A0,*A8(OYPOS),W
MOVE A8,A0
CALLA ADJSTWTL
CREATE DUM_ID,FLASH
OBJFAIL:
RETS
;EXPLOSION LIST
MEDEXP:
.LONG EXPb1
.WORD NEWPALET|3
.LONG BULLET ;NEW PAL NAME
.LONG EXPb2
.WORD 4
.LONG EXPb3
.WORD 4
.LONG EXPb4
.WORD 4
.LONG EXPb5
.WORD 4
.LONG EXPb6
.WORD 4
.LONG EXPb7
.WORD 4
.LONG EXPb8
.WORD 4
.LONG 0
EXPLODE:
.LONG 0,0,EXPb1
.WORD >7FFF,DMAWNZ,CLSNEUT
.LONG 0,0
.END