.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