************************************************************************** * * * ROBO.INC * * ALL .EQU CONSTANTS TO BE USED THROUGHOUT ROBO * * * * * ************************************************************************** ; ; PLYR2_ID .EQU 11 ; GATELFT .EQU >0A50000 ;FOR PLAYER RUNNING THROUGH GATERGT .EQU GATELFT+0480000H GATETOP .EQU 06F0000H GATEBOT .EQU GATETOP+03A0000H ; ;POINTS FOR ALL ENEMIES, ETC. ; HLKPT .EQU >500 FATPT .EQU >2750 ORBPT .EQU >2500 TNKPT .EQU >7500 WALPT .EQU >5500 PZPT .EQU >5010 PZPT2 .EQU >1250 MUTPT .EQU >350 MUTPT2 .EQU >75000 MUTPT3 .EQU >5000 KEYPT .EQU >15000 RBTAPT .EQU >1050 GALPT .EQU >2000 HEADPT .EQU >20000 SWARMPT .EQU >2050 RBOS1 .EQU >100000 SNKPT .EQU >1000 ; PCSMAX .EQU 125 ;CHUNKS UP INTO AIR ;85 ; ;TANK BULLET DATA STRUCTURE ; BNCS .EQU PDATA ;UHB LAST .EQU PDATA+8 ;UHB FDLY .EQU PDATA+16 ;UHB ;FRANIM DELAY CNTR ;SHWFLG .EQU PDATA+24 ;UHB ;1=THIS PC IS SPINNING! DO NOT KILL! ; ; CHNSW DATA STRUCTURE ; PTRX .EQU PDATA ;UHW ;LAST X PTRY .EQU PDATA+16 ;UHW ;LAST Y ANIMTIK .EQU PDATA+32 ;UHB ;FRAME SLEEP TIME ;16 BITS FREE ;MYPLYR .EQU PDATA+56 ;UHB PLAYER 1 OR 2 FIRED ME THETA .EQU PDATA+64 ;SHL ;CURRENT PROGRESSION DELTA .EQU PDATA+96 ;SHL ;DELTA ANGLE TORSO .EQU PDATA+128 ;UHL TORSO PTR OF PLYR WHO TOUCHED ME HITS .EQU PDATA+160 ;UHB ;CURRENT NUMBER OF HITS PLYRPC .EQU PDATA+168 ;UHL PLAYER TSO PRC WHOM BLADES SURROUND ; ; ;BULLET LAYOUT BLTDIR .EQU PDATA ;UHW AGE .EQU PDATA+16 ;UHW GTMP .EQU PDATA+32 ;UHB - PNTR INTO CY TABLE FOR GRENADE SLIDEX .EQU PDATA+4 ;UHB SLIDEY .EQU PDATA+48 ;UHB MYPLYR .EQU PDATA+56 ;UHB PLAYER 1 OR 2 FIRED ME ;THE RINGS USE BULLET LAYOUT WITH SOME ADDED FIELDS: DELAY .EQU PDATA+64 ;UHB DELAY FOR Y UPDATE PNTR .EQU PDATA+72 ;UHB PNTR INTO Y UPDATE TABLE FROM_TSO .EQU PDATA+80 ;UHL FROM TORSO TIME .EQU PDATA+112 ;UHW TIME RINGS STAY ON ;TORSO PDATA STRUCTURE *STRUCT PLYR TSO_PTR .EQU PDATA ;UHL TORSO FOR THESE LEGS LEG_PTR .EQU PDATA+32 ;UHL LEGS IMG FOR THIS TORSO STICK .EQU PDATA+64 ;UHL STICK ADDRESS DELYDET .EQU PDATA+96 ;UHW DELAY KILL TAKE OUT!!! OSHTDIR .EQU PDATA+112 ;UHB OLD SHOT DIR P_DIR .EQU PDATA+120 ;UHW PLAYER DIR OLD_P_DIR .EQU PDATA+136 ;UHW OLD DIR WPN_TYP .EQU PDATA+152 ;UHW WEAPON TYPE REV_P_DIR .EQU PDATA+168 ;UHW REV DIR SHOOT_FLAG .EQU PDATA+184 ;UHW SHOOT FLAG TMP_P_DIR .EQU PDATA+200 ;UHW TEMP P1 DIR PNUM .EQU PDATA+216 ;UHB PLAYER NUMBER HAVE_REV .EQU PDATA+232 ;UHW FLAG REV_FLAG .EQU PDATA+248 ;UHW FLAG DEAD .EQU PDATA+264 ;UHW DEAD FLAG BLDFLG .EQU PDATA+280 ;UHB BLADES ON FLAG SHOTCNT .EQU PDATA+288 ;UHW SHOT CNTR FOR METER BNDTYP .EQU PDATA+304 ;UHB BOUNDARY TYPE PRVBND .EQU PDATA+312 ;UHB PREVIOUS BOUNDARY UPBND .EQU PDATA+320 ;UHL UP BOUND DNBND .EQU PDATA+352 ;UHL LFTBND .EQU PDATA+384 ;UHL RGTBND .EQU PDATA+416 ;UHL LEG_PRC .EQU PDATA+448 ;UHL LEG PROCESS PTR LSRPTR .EQU PDATA+480 ;UHL HELPER PTR OR 0 IF NONE LEG2_PTR .EQU PDATA+512 ;UHL *ENDSTRUCT ;LEGS PDATA STRUCTURE ;TSO_PTR .EQU PDATA ;UHL TORSO FOR THESE LEGS ;LEG_PTR .EQU PDATA+32 ;UHL LEGS IMG FOR THIS TORSO TSO_PRC .EQU PDATA+96 ;UHL TORSO PROCESS FOR THESE LEGS SHOECNT .EQU PDATA+128 ;UHW SHOES ON TIMER SVSHO .EQU PDATA+144 ;UHW SAVE SHOE CNT FOR NEXT WAVE ; ;PROCESS ID'S ; AMDEPID .EQU 200 NEOPID .EQU 201 SCOREPID .EQU 202 LC_PID .EQU 203 RC_PID .EQU 204 CC_PID .EQU 205 SLAM_PID .EQU 206 DIAG_PID .EQU 207 P1SWPID .EQU 208 P2SWPID .EQU 209 CP_PID1 .EQU 210 END_GAME_PID .EQU 211 CP_PID2 .EQU 212 COLRPID .EQU 213 DUM_ID .EQU 214 BUYCPID .EQU 215 BUYINPID .EQU 216 INDPID .EQU 217 P1PID .EQU 218 P2PID .EQU 219 PMPID .EQU 220 GMEOVPID .EQU 221 LORDPID .EQU 223 ARWPID .EQU 224 DRLPID .EQU 225 DRRPID .EQU 226 DRTOPID .EQU 227 ;TOP DOOR OPEN ID DRTCPID .EQU 228 ;TOP DOOR CLOSE ID CHSRPID .EQU 229 CHNSWPID .EQU 230 LSRPID .EQU 231 ICONPID .EQU 232 ICTST .EQU 233 COLPID .EQU 234 ;COLLISION ROUTINE PCPID .EQU 235 HULKPID .EQU 236 DRSPID .EQU 237 ORBPID .EQU 238 TNKPID .EQU 239 FATPID .EQU 240 STIMEPID .EQU 241 PODPID .EQU 242 EXPID .EQU 243 B1PID .EQU 244 ;BLINK RING PROC PLAYER 1 B2PID .EQU 245 ;BLINK RING PROC PLAYER 2 DLYPID .EQU 246 ;DELAY PLYR START BUTTON PLY1PID .EQU 247 ;PLAYER 1 STUFF PLY2PID .EQU 248 ;PLAYER 2 STUFF DG1PID .EQU 249 DG2PID .EQU 250 CHSR2PID .EQU 251 SCRPID .EQU 253 CAMPID .EQU 254 FDPID .EQU 255 MNPID .EQU 256 CYCPID .EQU 257 SETPID .EQU 258 RCYC1PID .EQU 259 RCYC2PID .EQU 260 MCYCPID .EQU 261 CSHPID .EQU 262 FLYPID .EQU 263 TEMPPID .EQU 264 TP2PID .EQU 265 WLMNPID .EQU 266 BONPID .EQU 267 PICPID .EQU 268 BON1PID .EQU 269 TVPID .EQU 270 TV2PID .EQU 271 KCHAS .EQU 272 RNGPID .EQU 273 FADEPID .EQU 274 STPPID .EQU 275 RBTAPID .EQU 276 CYC2PID .EQU 277 GALPID .EQU 278 COBPID .EQU 279 ;COBRA MISC COBPIDA .EQU 280 ;COBRA ANIMATION COBPIDM .EQU 281 ;COBRA MAIN HEAD COBPIDS .EQU 282 ;COBRA SPINE BUNK .EQU 283 SNKPID .EQU 284 ;JACK SNAKE LZRPID .EQU 285 BULPID .EQU 286 FIXIT .EQU 7777H BEEPID .EQU 400 ; ;ENEMY VALUES FOR WAVE_INFO TABLE ATRAIN .EQU 1 ORB .EQU 2 TANK .EQU 3 FAT .EQU 4 WLMN .EQU 5 HULK .EQU 6 MINE .EQU 7 MUTD .EQU 8 FACE .EQU 9 RBTA .EQU 10 GALS3 .EQU 11 GALS1 .EQU 12 GALS1A .EQU 13 GALS2 .EQU 14 COBRA .EQU 15 SNK .EQU 16 ; ;OBJECT ID'S ; ;**** OBJECT IDENTIFIER FIELDS B_CLASS .set 15 F_CLASS .set >E000 CLSNEUT .EQU >0000 ;NEUTRAL ITEMS CLSPLYR .EQU >4000 ;PLAYERS STUFF CLSENMY .EQU >8000 ;ENEMIES ; TYPNEUT .EQU 0000H ;TYPE NEUTRAL TYPPLYR .EQU 0100H ;PLAYER TYPPLBL .EQU 0200H ;PLAYER BULLET TYPRBTA .EQU 0300H ;SMALL ROBOT TYPORB .EQU 0400H ;ORB ENEMY (JARVIS) TYPORBL .EQU 0500H ;ORB LAZER TYPHULK .EQU 0600H ;HULK BAD GUY TYPTEXT .EQU 0700H ;TYPE TEXT TYPWLMN .EQU 0800H ;WALL MAN TYPGAL .EQU 0900H ;GALAGA ENEMY 1 TYPCOB .EQU 0A00H ;COBRA TYPCHSR .EQU 0B00H ;CHASER AFTER WAVE OVER TYPICON .EQU 0C00H ;POWERUP ICON TYPPRSM .EQU 0D00H ;PRISM AROUND PLAYER TYPTANK .EQU 0E00H ;TANK IMAGE TYPLSR .EQU 0F00H ;LASER SATELLITE AROUND PLAYER TYPFAT .EQU 1000H ;FAT MAN TYPTORSO .EQU 1100H ;TORSO OF TANK TYPSNK .EQU 1200H ;JACK SNAKE ; .EQU 1300H ; ; .EQU 1400H ; TYPCBALL .EQU 1500H ;CANNON BALL TYPCBL2 .EQU 1600H ;EXPLODEING CBALL TYPMINE .EQU 1700H ;MINE TYPMUT .EQU 1800H ;MUTOID MAN TYPFACE .EQU 1900H ;FLATFACE TYPPILE .EQU 1A00H ;STUFF ON FLOOR BULLETS BUMP IN TO ; ;SUB COBRA ICONS ; SUBCOBBOD .EQU 0 SUBCOBHD .EQU >30 SUBCOBFLM .EQU >40 ; ;SUB PILE TYPES ; SUBEDGE .EQU 01H ;EDGE OF WALL IN ARENA 1 (CIRCUIT 1) ; ;SUB GALAGA ICONS ; SUBHEAD .EQU 02H SUBBALL .EQU 03H SUBCHN .EQU 04H ; ;SUB FACE ICONS ; SUBGLL .EQU 00H SUBGLR .EQU 01H SUBSHL .EQU 02H SUBSHR .EQU 03H SUBEL .EQU 04H SUBER .EQU 05H SUBMTL .EQU 06H SUBMTR .EQU 07H SUBCKL .EQU 08H SUBCKR .EQU 09H SUBNSL .EQU 0AH SUBNSR .EQU 0BH ; ;SUB MUTOID PIECES ; SUBTKL .EQU 01H SUBTKR .EQU 02H SUBTSL .EQU 03H SUBTSR .EQU 04H SUBARML .EQU 05H SUBARMR .EQU 06H SUBHD .EQU 07H SUBSNK .EQU 08H ; ;TYPE EXPLOSIONS SUB TYPES SUBNORM .EQU 0000H ;EXPLOSION THAT WON'T HURT ANYONE SUBKILL .EQU 0001H ;KILLER TYPE EXPLOSION ;TYPE ICONS SUB TYPES SUBPOW1 .EQU 0000H ;BLADES ICON SUBPOW2 .EQU 0001H ;HELPER ICON SUBSPRY1 .EQU 0002H ;SPRAY BULLETS ICON SUBPOD .EQU 0003H ;POD BOMBS ICON SUBMAN .EQU 0004H ;EXTRA MAN ICON SUBGREN .EQU 0005H ;GRENADE SUBRING .EQU 0006H ;RING ICON SUBNSTP .EQU 0007H ;NON STOPPING BULLETS ICON SUBKEY .EQU 0008H ;KEY ICON SUBSHOE .EQU 0009H ;SHOE ICON SUBSMRT .EQU 000AH ;SMART BOMB SUBPZ1 .EQU 000BH ;PRIZE 1 SUBPZ2 .EQU 000CH ;PRIZE 2 SUBPZ3 .EQU 000DH ;PRIZE 3 SUBCSH .EQU 000EH ;CASH ITEMS ON FLOOR SUBCSHI .EQU 000FH ;CASH ITEMS ON FLOOR AT START OF WAVE ; ;TYPE PLAYER SUB TYPES SUBPL_1 .EQU 0001H ;PLAYER 1 SUBPL_2 .EQU 0002H SUBRNG1 .EQU 0003H ;RINGS FOR PLAYER 1 SUBRNG2 .EQU 0004H ;RINGS FOR PLAYER 2 ; ;TYPE PLAY BULLET SUB TYPES SUBLZR .EQU 0001H ;REGULAR LAZER SHOTS SUBSPRY .EQU 0002H ;SPRAY SUB TYPE SUBSPEW .EQU 0003H ;SPEW TYPE WEAPON (3) SUBGRND .EQU 0004H ;GRENADE SUBNOSTP .EQU 0005H ;NON STOPPING BULLET SUBSPEW2 .EQU 0006H ;SPEW TYPE WEAPON (6) BLOW UP ;TYPE NEUTRAL SUB TYPES SUBARW .EQU 0001H ;ARROW ID SUBUP .EQU 0002H ;OVERHEAD ITEMS SUBUP2 .EQU 0003H ;OVERHEAD ITEMS AFTER VEL SET SUBCHNK .EQU 0004H ;CHUNK PC SUBCHNK2 .EQU 0005H ;CHUNK PC ;TYPE TEXT SUB TYPES SUBTXT .EQU 0001H ;TEXT ID SUBP1TXT .EQU 0002H ;P1 TEXT SUBP2TXT .EQU 0003H ;P2 TEXT SUBP1LVS .EQU 0004H ;ID FOR P1 LIVES DIGIT SUBWNDW .EQU 0005H ;BIG BOX WINDOW ID SUBNEW .EQU 0006H ;NEWOID FOR WAVES SUBTIME .EQU 0007H ;BTIME ID SUBMES1 .EQU 0008H SUBMES2 .EQU 0009H SUBGOTXT .EQU 000AH ;GAME OVER TEXT SUBSCOR .EQU 000BH ;SCORE ID SUBP2LVS .EQU 000CH ;ID FOR P2 LIVES DIGIT SUBDG1I .EQU 000DH ;CNTDWN PLYR1 SUBDG2I .EQU 000EH ;CNTDWN PLYR2 SUBTV .EQU 000FH ;TV MONITOR IMAGES SUBTV2 .EQU 0010H ;TV MONITOR IMAGES ; ; B_TYPE .set 12 F_TYPE .set >1F00 B_PLYR .set 6 F_PLYR .set >00C0 B_PLYR1 .set 6 B_PLYR2 .set 7 B_SUBT .set 5 F_SUBT .set >003F PLIST_ID .EQU 1000H JOYLFT .EQU 2 JOYRGT .EQU 3 JOYUP .EQU 0 JOYDN .EQU 1 ; BIT MASKS FOR PLAYER CONTROL TESTING BMPRYTE .EQU 3 ;MOVE RIGHT,LEFT,DOWN,UP (LSB) BMPLEFT .EQU 2 BMPDOWN .EQU 1 BMPUP .EQU 0 .IF YUNIT ;YUNIT EQUATES BMPFRYTE .EQU 7 ;FIRE RIGHT,LEFT,DOWN,UP (MSB) BMPFLEFT .EQU 6 BMPFDOWN .EQU 5 BMPFUP .EQU 4 .ELSE ;ZUNIT EQUATES BMPFRYTE .EQU 11 ;FIRE RIGHT,LEFT,DOWN,UP (MSB) BMPFLEFT .EQU 10 BMPFDOWN .EQU 9 BMPFUP .EQU 8 .ENDIF ; BITS USED IN PLAYER CONTROLS (1=ACTIVE) PRYTE .EQU 8 PLEFT .EQU 4 PDOWN .EQU 2 PUP .EQU 1 .IF YUNIT ;YUNIT EQUATES PFRYTE .EQU 80H PFLEFT .EQU 40H PFDOWN .EQU 20H PFUP .EQU 10H .ELSE ;ZUNIT EQUATES PFRYTE .EQU 800H PFLEFT .EQU 400H PFDOWN .EQU 200H PFUP .EQU 100H .ENDIF ; ;*GAME STATE CONSTANTS INGAME .EQU 10H ININTRO .EQU 18H INMSU .EQU 1AH INPLAY .EQU 20H INAMODE .EQU 30H INDIAG .EQU 40H INGAMEOV .EQU 50H STOPOBJ .EQU 60H ; IBUYINS .EQU 8000 ;NUMBER OF BUYINS ALLOWED BBUYIN .EQU 19 ;TIME TO BUY IN * ;*ASCII FONT MISCELLANEOUS EQUATES F15SP EQU 7EH ;FONT 15 SP CHARACTER, FOR HS ENTRY F15RUB EQU F15SP+1 ;FONT 15 RUB CHARACTER,FOR HS ENTRY F15END EQU F15RUB+1 ;FONT 15 END CHARACTER,FOR HS ENTRY F15RQUOT EQU F15END+1 ;FONT 15 RIGHT QUOTE ************************************************************ * * * PLAYER DATA STRUCTURE * * ALL OFFSETS ARE 32 BITS FOR MASS MOVES. * * * ************************************************************ POBJ .EQU 00H ;PLAYER OBJECT BLOCK PSCRAD .EQU 20H ;PLAYER SCORE SCREEN ADDRESS PSCORE .EQU 40H ;PLAYER SCORE SCRCNT .EQU 60H ;PLAYER SCORE COUNTER SCRSUB .EQU 80H ;TEMP FOR COUNTER SCOLOR .EQU 0A0H ;SCORE CONSTANT COLOR,PALLETTE PFLAGS .EQU 0C0H ;PLAYER FLAGS PENRGSIZ .EQU 0E0H ;INC/DEC SIZE OF PLAYER LIVES PPID .EQU 100H ;BASE PROCESS I.D. OF PLAYER PROCESSES PNEXTREP .EQU 120H ;NEXT REPLAY LEVEL, 32 BITS BCD PLIVES .EQU 140H ;# OF PLAYER LIVES PBUYINS .EQU 150H ;# OF TIMES BUYIN IS ALLOWED STIMER .EQU 160H ;SCORE TIMER PSWTCH .EQU 170H ;PLAYER SWITCHES DLY_MSG .EQU 190H ;MESSAGE DELAY CONTROL WORD CNTD .EQU 1A0H ;UHB PLAYER CONTINUE FLAG/CNTDWN FLAG PDEND .EQU 1C0H ;END OF PLAYER DATA PDSIZE .EQU PDEND ;SIZE OF PLAYER DATA BLOCK ; ;SCREEN SETS ; SKYTOPOF .EQU 45