revolution-x/GXEQU.H

793 lines
27 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

**************************************************************************
* *
* GENERATION X - MASTER EQUATE FILE *
* *
* COPYRIGHT (C) 1992 MIDWAY MANUFACTURING COMPANY. *
* ALL RIGHTS RESERVED. *
* *
**************************************************************************
*SYMBOLS IN FILE T2TRIG.ASM
.GLOBL GETCOS, GETSIN
*SYMBOLS IN FILE GXPALL.ASM
.GLOBAL GETFPAL, PALTRANS, CLRBPAL, CLRFPAL, FINDPAL
.GLOBAL CLRPAL, DELPAL, DELETE_PAL, FREEPAL
.GLOBAL CHANGE_PAL, GET_PALID, INC_PALCNT, CLR_0PALS
.GLOBAL CHANGE_PAL_MULTI
*SYMBOLS IN FILE T2UTIL.ASM
.GLOBAL SCRCLR, CLR_SCRN, MYOINIT, SETPPROC
.GLOBAL SHVELCPY, SHVELFLP, CLRPDATA
.GLOBAL RANDU, RANDOM, SRAND, RANGRAND, RANDPER
.GLOBL RAND0, RANGERND
.GLOBAL FRANIM, AUTOEOFF
.GLOBAL DMAQWAIT, DMAWAIT, DTIME, DRAWBOX, DRAWBOX_OBJ
.GLOBAL PSTOP, MIDPOINT, CLRPLAY
.GLOBAL ALIGNOBJ, GET_CPNT, GETCPNT, GETCENT
.GLOBAL SLINEVEL, CLRBLOCK, FILBLOCK, CHKRANGE, FRAMSKIP, FILL_SCRN
.GLOBAL PNT_IN_RANGE, CENTEROBJ, CK_OBJ_CENT, CK_BOTTOM_CENT
.GLOBAL SET_ZPOS, SET_MZPOS, SET_TZPOS, GET_INIT_CPNT, ANIMATOR
.GLOBAL GET_BOTTOM_MID, ANIMATE_DEL, DMAWPAL
.GLOBAL KILL_DESTRUCTIBLES, PNTINBOX
.GLOBAL X_ETA, ANIMATE_TIME, SLINEVEL_LOAD, DTIME2
.GLOBAL BLNKAREA, BLNKAREA2, FILLAREA, FILLAREA2
.GLOBAL MAX, MIN, ABSMAX, ABSMIN, ABSINC, ABSDEC, ABSADD, ABSSUB
.GLOBAL PreFrag_Center, PreFrag_Box, PreFrag_LR
.GLOBAL PreFrag_Up, PreFrag_Gun
.GLOBAL Fragger, FlshWyte
.GLOBAL COLLS_OFF, COLLSOFF, ALL_COLLS_OFF, GET_CPNT_SCRNREL
*SYMBOLS IN FILE T2AFUNC.ASM
.GLOBAL A_STRT_ANIM, A_TOGGLE_FLPS, A_DEL_DAMAGE, A_SET_OZVEL
.GLOBAL A_CLR_OXVEL, A_OFFSCRN_DEL, A_OFFOPP_DEL
.GLOBAL A_ONSCREEN, A_INC_AnimSLP, A_RAND_AnimSLP
.GLOBAL A_DEL_OID_DAMAGE, A_OFF_DELETE_OBJ, A_PRINT_SCORE
.GLOBAL A_PreFrag1, A_FLIP_BRANCH, A_OFFSCREEN, A_OBJ_ON_CHANGE_PAL
.GLOBAL A_SET_OYACCEL, A_RAND_FLIP, A_TOGGLE_FLIP
*SYMBOLS IN FILE T2.ASM
.GLOBAL CALLPLAY, IAUTOE, GUNPOWER_TO_MAX
*SYMBOLS IN T2ENEMY.ASM
.GLOBAL INC_ENEMY_COUNT, DEC_ENEMY_COUNT, GET_ENEMY_COUNT, COUNT_KILL
.GLOBAL COUNT_PLAYER_KILL
*SYMBOLS IN FILE T2SCOR.ASM
.GLOBAL SCORAREA, SCORE, PRINT_SCORE
*SYMBOLS IN FILE GXCOLL.ASM
**** .GLOBAL COLL_START
.GLOBAL LA_COLL, PRESENT_COLL, HIGHWAY_COLL
*SYMBOLS IN FILES T2BGND.ASM OR T2BGDATA.ASM
.GLOBAL BAKBITS, BAKLST, SINGLE_PLANE
*SYMBOLS IN T2PLAYER.ASM
.GLOBAL PLAYER_PRAISE, DELAYED_PRAISE
.GLOBAL POID_TO_PDATA
*
*GLOBAL DUMMY(NULL) ROUTINES
*
.GLOBAL DUMRETS, DUMCOLL, DUMCRETS, DUMBGND, DUMSCRIPT, DUMRETP
.GLOBAL DUMFGND, DUMDIE, DUMSRETS
.GLOBAL DUMPPRINT
*
* WAVE TYPE EQUATES
*
NWAVES .EQU 50 ;# OF DIFFERENT WAVES (DIFF TABLE SIZE)
.IF DEBUG
LAST_WAVE .EQU 7 ;GAME ENDS AFTER THIS WAVE
.ELSE
LAST_WAVE .EQU 6
.ENDIF
MAXPLAYERS .EQU 3 ;MAXIMUM # OF PLAYERS ALLOWED(INCLUDES DRONE)
RESET_WAVES .EQU 20 ;START OF THE RESET WAVES
*
*HIGH SCORE TABLE STUFF
*
HS_YMIN EQU 98
HS_YMAX EQU 185
HS_XMIN EQU 20
HS_XMAX EQU 383
HS_YBLANK EQU (((HS_YMAX-HS_YMIN)/3)*2)+HS_YMIN
HS_XBLANK EQU (((HS_XMAX-HS_XMIN)/11)*10)+HS_XMIN
CHAR_XBOX EQU (HS_XMAX-HS_XMIN)/11
CHAR_YBOX EQU (HS_YMAX-HS_YMIN)/3
************************************************************
* *
* PLAYER DATA STRUCTURE *
* *
************************************************************
POBJ EQU 0000H ;UHL PLAYER OBJECT BLOCK
PSCRAD EQU 0020H ;UHL PLAYER SCORE SCREEN ADDRESS
PSCORE EQU 0040H ;UHL PLAYER SCORE
PNEXTREP EQU 0060H ;UHL NEXT REPLAY LEVEL, 32 BITS BCD
PPID EQU 0080H ;UHW PLAYER BASE PROCESS I.D.
PINITAB EQU 0090H ;UHL PLAYER INITIALIZATION TABLE
PPALID EQU 00B0H ;UHL PLAYER PALETTE I.D.
PCURSORXY EQU 00D0H ;UHL CURRENT [Y,X] CURSOR POSITION
PLIVES EQU 00F0H ;UHL CURRENT PLAYER LIFE ENERGY [INT,FRACTION]
PGUNPOWER EQU 0110H ;UHW CURRENT AMOUNT OF GUN POWER
PBOMB1 EQU 0120H ;UHW COUNT OF SPECIAL WEAPON 1
PBOMB2 EQU 0130H ;UHW COUNT OF SPECIAL WEAPON 2
PBOMBTYPE EQU 0140H ;UHW TYPE OF WEAPON ATTACHED TO THE BOMB BUTTON
PFIRING EQU 0150H ;UHW IF <> 0 PLAYER IS FIRING HIS GUN. WAIT!
PENTER EQU 0160H ;UHW IF = 1, PLAYER WILL ENTER GAME @ NEXT INPLAY
PDEAD EQU 0170H ;UHW 1 IF DEAD MESSAGE UP
PGUNOFFTIME EQU 0180H ;UHW Ticks gun coil must be off before firing again
PSTARTS EQU 0190H ;UHW # OF STARTS THIS GAME
PWAVEST EQU 01A0H ;UHW NUMBER OF PLAYER STARTS THIS WAVE
PWAVEDEATHS EQU 01B0H ;UHW NUMBER OF DEATHS THIS WAVE
PWAVES EQU 01C0H ;UHW NUMBER OF WAVES PLAYED THIS GAME
PEXTRAS EQU 01D0H ;UHW NUMBER OF EXTRA LEFT TO EARN THIS GAME
PWAVETIME EQU 01E0H ;UHL TIME THIS PLAYER HAS SPENT ON THIS WAVE
PLASTDTH EQU 0200H ;UHL ELAPSED TIME SINCE LAST PLAYER DEATH
PITIME EQU 0220H ;UHW TIME LEFT FOR ENTERING INITIALS
PWINGS EQU 0230H ;UHW Number of wings owned by this player
PTOTTIME EQU 0240H ;UHL TOTAL TIME OF THIS CREDIT
PLIFETIME EQU 0260H ;UHL TIME THIS GUY HAS BEEN ALIVE
PSTARTESC EQU 0280H ;UHW FLAG TO SHOW START BUTTON PUSHED FOR ESCAPE
PSWITCHESC EQU 0290H ;UHW FLAG TO SHOW BUTTON ACTION
PENRGSIZ EQU 02A0H ;UHL INC/DEC SIZE OF PLAYER ENERGY
PHITBOXUL EQU 02C0H ;UHL [Y,X] UL SCREEN AREA TO SCORE HITS
PHITBOXLR EQU 02E0H ;UHL [Y,X] LR SCREEN AREA TO SCORE HITS
PLASTLPLOT EQU 0300H ;UHL LAST ENERGY LEVEL PLOTTED
PCLIPS EQU 0320H ;UHW Current number of clips
PBULLETS EQU 0330H ;UHW Bullets left in this clip
PDPRIORITY EQU 0340H ;UHW CURRENT DISPLAY EFFECT PRIORITY
PDTIME EQU 0350H ;UHW CURRENT DISPLAY EFFECT TIME
PGUNMULT EQU 0360H ;UHL GUN ENERGY BAR MULTIPLIER
PINVINCIBLE EQU 0380H ;UHW IF <> 0, PLAYER IS INVINCIBLE
PPOWERTYPE EQU 0390H ;UHW TYPE OF CURRENT POWER-UP, 0 = NONE
PLAUNCHPOS EQU 03A0H ;UHL [Y,X] SCREEN POSITION TO LAUNCH TRACERS
PEBAROBJ EQU 03C0H ;UHL PLAYER ENERGY BAR OBJECT
PEWORDOBJ EQU 03E0H ;UHL PLAYER ENERGY WORD OBJECT
PGBAROBJ EQU 0400H ;UHL PLAYER GUN BAR OBJECT
PGWORDOBJ EQU 0420H ;UHL PLAYER GUN WORD OBJECT
PGMODEOBJ EQU 0440H ;UHL PLAYER GUN MODE OBJECT
PGIRLS_SAVED EQU 0460H ;UHW Number of girls saved this wave
PBONUSYNCH EQU 0470H ;UHW BONUS RACKUP SYNCHRONISE BIT
PSTATUSXY EQU 0480H ;UHL [Y,X] POSITION OF PLAYER STATUS STUFF
PECOLOR EQU 04A0H ;UHW CURRENT COLOR OF ENERGY BAR
PGUNCOOL EQU 04B0H ;UHW AMOUNT OF GUN COOLANT (IN TICKS)
PDOBJ EQU 04C0H ;UHL DISPLAY EFFECT OBJECT CURRENTLY EXISTING
PLASTFLASH EQU 04E0H ;UHB LAST FLASH LAMP ACTIVATED
PROCKCNT EQU 04E8H ;UHB NUMBER OF ROCKETS CURRENTLY ON SCREEN
PSECLIFE EQU 04F0H ;UHL SECONDS PER LIFE UNIT, USED FOR MINTIME
PINITLIFE EQU 0510H ;UHW INITIAL LIFE UNITS PER CREDIT, INT ONLY
PPLASMASHOTS EQU 0520H ;UHW NUMBER OF PLASMA SHOTS LEFT FOR PLAYER
PPOWERHEADS EQU 0530H ;UHW FLAGS FOR POWERUP HEADS-UP DISPLAYS
PLASTLED EQU 0540H ;UHW WAVETIME OF LAST LED SCAN
PCHAR_COUNT EQU 0550H ;UHB INITIAL CHARACTER POSITION
PCASUALTY EQU 0558H ;UHB CASUALTIES THIS WAVE
PDAMAGE EQU 0560H ;UHW BACKGROUND DAMAGE INFLICTED BY THIS GUY
PROCKSFIRED EQU 0570H ;UHW NUMBER OF ROCKETS FIRED THIS COIN
PSCOREFLASH EQU 0580H ;UHW SCORE BOX HIT FLASH FLAG
PRLAUNCHX EQU 0590H ;UHW [X >> 8] WORLD POSITION TO LAUNCH ROCKETS
PTRACETIME EQU 05A0H ;UHL TIME OF LAST TRACER CREATION
PBONUSCORE EQU 05C0H ;UHL TOTAL BONUS SCORE
PBONUSOBJ EQU 05E0H ;UHL TOTAL BONUS SCORE OBJECT
PBONUS_STOR EQU 0600H ;UHL EACH BONUS FIGURE
PSHIELD EQU 0620H ;UHL Current shield value
PMAMMY EQU 0640H ;UHW Mammy awards
PUNUSED EQU 0650H ;UHW Unused
PDSIZE EQU 0660H ;SIZE OF PLAYER DATA BLOCK
*NUMBER OF PLAYER STATUS OBJECTS
NSTATUSOBJS .EQU 5
PIZPOS .EQU -07000H ;GET A WAY WAY OUT ZPOS FOR THE PLAYER CURSOR
*
* Player gun recoil timings
*
GUN_COIL_ON .EQU 1 ;Ticks to keep gun coil ON
GUN_COIL_OFF .EQU 3 ;Ticks to keep gun coil OFF
SUPER_GUN_ON .EQU 2 ;Ticks to keep gun coil ON when in super mode
SUPER_GUN_OFF .EQU 2 ;Ticks to keep gun coil OFF when in super mode
*
* Player gun powerup equates
*
RAPID_SHOTS .EQU 200 ;NUMBER OF RAPID FIRE SHOTS
SUPER_SHOTS .EQU 50 ;NUMBER OF SUPER_SHOTS
CLIP_ROUNDS .EQU 25 ;Number of rounds in a clip
*
*SCORE AREA EQUATES
N1P1SCRAD EQU [0,0] ;1 PLAYER 1 SCORE ADDRESS
N2P1SCRAD EQU [0,0] ;2 PLAYER 1 SCORE ADDRESS
N2P2SCRAD EQU [0,266] ;2 PLAYER 2 SCORE ADDRESS
N3P1SCRAD EQU [0,0] ;3 PLAYER 1 SCORE ADDRESS
N3P2SCRAD EQU [0,134] ;3 PLAYER 2 SCORE ADDRESS
N3P3SCRAD EQU [0,268] ;3 PLAYER 3 SCORE ADDRESS
PSCOREOF EQU [2,36] ;DIGITAL SCORE DISPLAY OFFSET
PBOMBOF EQU [13,52] ;DIGITAL BOMB DISPLAY OFFSET
PICONOF EQU [11,0] ;BOMB ICON OFFSET
PBOXSIZ EQU [22,134] ;SIZE OF SCORE BOX
SCRSPC EQU [0,12] ;SPACING BETWEEN SCORE DIGITS
SCRCTR EQU [0,0] ; CENTERING LOC FOR PRESS START
SCRERA EQU [10,-16] ; SCORE BOX ERASE
SCRERAS EQU [12,82] ; SCORE BOX ERASE SIZE
CRDBOX EQU [22,134] ;4 PLAYER CREDIT BOX IS HERE
CRDSIZE EQU [8,134] ;AND THIS IS THE SIZE
CRDTXT EQU [2,65] ;TEXT ADD ON
CRDNUM EQU [9,11] ;CREDIT NUMBER ADD ON
PBOXPOWER EQU [44,67] ;Offset from PSCRAD as target for flying powerup
*
*ENERGY BAR OFFSETS
*
NNRGBLKS EQU 1 ;MAX # OF DISPLAYABLE ENERGY BLOCKS
NNRGUNIP EQU 99 ;# OF ENERGY UNITS/BLOCK
NENERGY EQU NNRGBLKS*NNRGUNIP ;MAX NUMBER OF DISPLAYABLE ENERGY UNITS
*
*GUN ENERGY BAR
*
GUNENERGY EQU 115 ;NUMBER OF DISPLAYABLE GUN ENERGY UNITS
*
*POSITIONS OF PLAYER STATUS BARS
*
P1STATUSXY EQU [240,0]
P2STATUSXY EQU [240,134]
P2STATUSXY2 EQU [240,268] ;Position when NPLAYERS = 2
P3STATUSXY EQU [240,268]
*
*HIT BOXES FOR ENEMIES SHOOTING DIRECTLY AT THE PLAYER
*
*1 PLAYER ONLY GAME
N1P1HITBOX_UL .EQU [SCORE_HEIGHT,0]
N1P1HITBOX_LR .EQU [SCREEN_HEIGHT,SCREEN_WIDTH]
*2 PLAYER GAME
N2P1HITBOX_UL .EQU [SCORE_HEIGHT,0]
N2P1HITBOX_LR .EQU [SCREEN_HEIGHT,SCREEN_WIDTH/2]
N2P2HITBOX_UL .EQU [SCORE_HEIGHT,SCREEN_WIDTH/2]
N2P2HITBOX_LR .EQU [SCREEN_HEIGHT,SCREEN_WIDTH]
*3 PLAYER GAME
N3P1HITBOX_UL .EQU [SCORE_HEIGHT,0]
N3P1HITBOX_LR .EQU [SCREEN_HEIGHT,SCREEN_WIDTH/3]
N3P2HITBOX_UL .EQU [SCORE_HEIGHT,SCREEN_WIDTH/3]
N3P2HITBOX_LR .EQU [SCREEN_HEIGHT,SCREEN_WIDTH*2/3]
N3P3HITBOX_UL .EQU [SCORE_HEIGHT,SCREEN_WIDTH*2/3]
N3P3HITBOX_LR .EQU [SCREEN_HEIGHT,SCREEN_WIDTH]
*
*FLAG EQUATES FOR "POWERUP_DISPATCH"
LIFE .EQU 1
**************************************************************************
* *
* OBJECT I.D. EQUATES *
* 15 0 *
* OID FORMAT -- SSSS STTT TIII IIPP new *
* TTTT IIII ISSS SSPP almost new *
* ZMPP TTTT SSSS IIII old *
* Z = SET, LYING ON GROUND *
* M = MISCELLANEOUS *
* P = RESERVED FOR PLAYERS *
* T = OBJECT TYPE *
* S = SUPPLEMENTAL LIST # *
* I = IDENTIFIER(SUB-TYPE) *
* *
**************************************************************************
;xxxx x000 0000 0000 (OID) xxxx=bit positions of supp field
;If # of bits changed, fix size of ram table SUPPLSTS
SR_SUPP .set 11 ;knock off bottom bits
SL_SUPP .set 27 ;32-#bits of supp field
SR_POID .EQU 30 ;SHIFTS TO ISOLATE PLAYER NUMBER FROM POID
SL_POID .EQU 30
* I WOULD LIKE TO HAVE MASKS FOR EACH FIELD OF OID ...
MASK_SUPP .EQU 0F800H ;Bits of supplemental fields
MASK_TYPE .EQU 00780H ;Bits of type field
MASK_ID .EQU 0007CH ;Bits of sub-type field
MASK_PLAYER .EQU 3H ;Bits of player field
BIT_ID .equ 2 ;Bits to shift to right align this field
*
*GENERIC OBJECT SUPPLEMENTAL I.D. EQUATES
*
SUPP_0 .EQU 0
SUPP_1 .EQU 00800H ;Player supplemental list
SUPP_2 .EQU 01000H ;Enemy supplemental list
SUPP_3 .EQU 01800H ;Powerup supplemental list
SUPP_4 .EQU 02000H ;Background object list
SUPP_5 .EQU 02800H ;Friend(Innocent) supplemental list
SUPP_6 .EQU 03000H
SUPP_7 .EQU 03800H
SUPP_8 .EQU 04000H
SUPP_9 .EQU 04800H
SUPP_10 .EQU 05000H
SUPP_11 .EQU 05800H
SUPP_12 .EQU 06000H
SUPP_13 .EQU 06800H
SUPP_14 .EQU 07000H
SUPP_15 .EQU 07800H
*
*GENERIC OBJECT SUBTYPE I.D. EQUATES
*
ID_0 .EQU 0
ID_1 .EQU 004H
ID_2 .EQU 008H
ID_3 .EQU 00CH
ID_4 .EQU 010H
ID_5 .EQU 014H
ID_6 .EQU 018H
ID_7 .EQU 01CH
ID_8 .EQU 020H
ID_9 .EQU 024H
ID_10 .EQU 028H
ID_11 .EQU 02CH
ID_12 .EQU 030H
ID_13 .EQU 034H
ID_14 .EQU 038H
ID_15 .EQU 03CH
ID_16 .EQU 040H
ID_17 .EQU 044H
ID_18 .EQU 048H
ID_19 .EQU 19 << 2
ID_20 .EQU 20 << 2
ID_21 .EQU 21 << 2
ID_22 .EQU 22 << 2
ID_23 .EQU 23 << 2
ID_24 .EQU 24 << 2
ID_25 .EQU 25 << 2
ID_26 .EQU 26 << 2
ID_27 .EQU 27 << 2
ID_28 .EQU 28 << 2
ID_29 .EQU 074H
ID_30 .EQU 078H
ID_31 .EQU 07CH
*
*PROCESS AND OBJECT TYPE AND CLASS EQUATES
*
TYPE_PLAYER .EQU SUPP_1
TYPE_POWERUP .EQU 00080H|SUPP_3
TYPE_FRIEND .EQU 00100H|SUPP_5
TYPE_JUNK .EQU 00300H
TYPE_TEXT .EQU 00480H
TYPE_UNIV .EQU 00580H|SUPP_4
TYPE_GRND .EQU 00680H|SUPP_15 ;USED FOR GROUND SCANNER
TYPE_NULL .EQU 00700H
TYPE_ENEMY .EQU 00700H|SUPP_2
TYPE_BLOWUP .EQU 00780H|SUPP_14 ;USED FOR SMART BOMB EXECUTION
*
*NULL PROCESS AND OBJECT IDENTIFIER EQUATES
*
*
*ENEMY PROCESS AND OBJECT IDENTIFIER EQUATES
*
N_ENEMIES .EQU 16 ;NUMBER OF DIFFERENT ENEMIES
ID_BGNDOBJ .EQU ID_0 ;DESTRUCTIBLE BACKGROUND OBJECT
ID_ROCKET .EQU ID_1 ;ROCKET BOMB
ID_EXPLOSION .EQU ID_2 ;EXPLOSION
ID_NONBOY .EQU ID_3 ;NEW ORDER BOY
ID_BZERK .EQU ID_4 ;Berzerker
ID_YELJAK .EQU ID_5 ;Yellow Jacket
ID_BUGBOY .EQU ID_6 ;ON DA BUS NEW ORDER BOY
ID_COG .EQU ID_7 ;COG HEAD
ID_BTR .EQU ID_8 ;TROOP TRANSPORT
ID_MONDOR .EQU ID_9 ;MONDOR THE CARNIVOR
ID_CAT .EQU ID_9 ;The kitty kat
ID_BEEKPR .EQU ID_10 ;BEEKEEPER DUDE
ID_BUS .EQU ID_10 ;NON_SCHOOL BUS
ID_COPTER .EQU ID_11 ;HELICOPTER
ID_DESK .EQU ID_11 ;The mech desk.
ID_BOSSBUG .EQU ID_11 ;DA BIG BUG
ID_FORKLIFT .EQU ID_11 ;The fork lift
ID_NATIVE .EQU ID_12 ;IN JUNGLE
ID_NINJA .EQU ID_13 ;non-ninja
ID_HELGA .EQU ID_14 ;Headmistress Helga
*
*POWERUP PROCESS AND OBJECT IDENTIFIER EQUATES
*
ID_LIFE EQU ID_0
ID_SBOMB EQU ID_1
ID_PROCK EQU ID_2
ID_CD EQU ID_3
ID_JEWEL equ ID_4 ; jewel in jungle
ID_CLIP EQU ID_5 ;Ammo clip
ID_WINGS EQU ID_6 ;AEROSMITH WINGS
ID_SHIELD EQU ID_7 ;Shield
ID_SUPERGUN EQU ID_8 ;Super gun
ID_LAZER EQU ID_9 ;Lazer disc
ID_6PACK EQU ID_10 ;CD six pack
ID_BOOBY EQU ID_11 ;MAMMERY BOOBY PRIZE
*
*FRIEND PROCESS AND OBJECT IDENTIFIER EQUATES
*
OID_P1 EQU 00001H ;PLAYER 1 OBJECT ID
OID_P2 EQU 00002H ;PLAYER 2 OBJECT ID
OID_P3 EQU 00003H ;PLAYER 3 OBJECT ID
OID_PROCKET EQU TYPE_PLAYER|ID_ROCKET
OID_PEXPLOSION EQU TYPE_PLAYER|ID_EXPLOSION
OID_P1HUP EQU TYPE_JUNK|OID_P1 ;PLAYER 1 HEADS UP OBJECTS
OID_P2HUP EQU TYPE_JUNK|OID_P2 ;PLAYER 2 HEADS UP OBJECTS
OID_P3HUP EQU TYPE_JUNK|OID_P3 ;PLAYER 3 HEADS UP OBJECTS
OID_JUNK EQU TYPE_JUNK ;SHIT THAT CLUTTERS THE PLAYFIELD
OID_ATTRACT EQU TYPE_JUNK|ID_1 ;ATTRACT MODE OBJECTS
OID_DAMAGE EQU TYPE_JUNK|ID_2 ;PASTE ON DAMAGE OBJECTS
OID_DIR EQU TYPE_JUNK|ID_3 ;DIRECTIONAL SYMBOLS
OID_SHAD EQU TYPE_JUNK|ID_4 ;SHADOW OBJECTS
OID_SOLO_DIR EQU TYPE_JUNK|ID_5 ;SOLO DIRECTIONAL
OID_TEXT EQU TYPE_TEXT ;"OBJECT LIST" TEXT
OID_BMES1 EQU TYPE_TEXT|ID_1 ;BUYIN MESSAGE 1 OBJECT ID
OID_BMES2 EQU TYPE_TEXT|ID_2 ;BUYIN MESSAGE 2 OBJECT ID
OID_BTIME EQU TYPE_TEXT|ID_3 ;BUYIN TIMER OBJECT ID
OID_TEXTW EQU TYPE_TEXT|ID_4 ;TEXT WINDOW OID
OID_BONUS EQU TYPE_TEXT|ID_5 ;BONUS SCORE OID
OID_INFOTEXT EQU TYPE_TEXT|ID_6 ;INFORMATIVE GAME PLAY TEXT
OID_GAMEOVER EQU TYPE_TEXT|ID_7 ;GAME OVER FLASHER
OID_CREDIT EQU TYPE_TEXT|ID_8 ;CREDIT MESSAGE TEXT
OID_PROMPT EQU TYPE_TEXT|ID_9 ;"READY FOR" MESSAGE
OID_PROMPT2 EQU TYPE_TEXT|ID_10 ;"PRESS START" MESSAGE
OID_CUSTOM EQU TYPE_TEXT|ID_11 ;CUSTOM MESSAGE, COINAGE, MAX CRED, ETC.
OID_REQUIRED EQU TYPE_TEXT|ID_12 ;CREDITS REQUIRED MESSAGE
OID_INIT EQU TYPE_TEXT|ID_13 ;ALPHABET OBJECT ID FOR HS ENTRY
OID_P1TEXT EQU TYPE_TEXT|OID_P1 ;PLAYER 1 SPECIFIC TEXT
OID_P2TEXT EQU TYPE_TEXT|OID_P2 ;PLAYER 2 SPECIFIC TEXT
OID_P1MOTEXT EQU OID_P1|OID_CUSTOM ;MORE PLAYER 1 TEXT
OID_P2MOTEXT EQU OID_P2|OID_CUSTOM ;MORE PLAYER 2 TEXT
OID_UNIV EQU TYPE_UNIV
*
*ENEMY OBJECT I.D.s
*
OID_ENEMY EQU TYPE_ENEMY
OID_ONFIRE_ENEMY EQU TYPE_ENEMY
OID_EROCKET EQU TYPE_ENEMY|ID_ROCKET
OID_NONBOY EQU TYPE_ENEMY|ID_NONBOY ;NON-BOY OBJECT
OID_BZERK EQU TYPE_ENEMY|ID_BZERK ;Berzerker object
OID_YELJAK EQU TYPE_ENEMY|ID_YELJAK ;Yellow Jacket object
OID_BUGBOY EQU TYPE_ENEMY|ID_BUGBOY ;NON-BOY OBJECT
OID_COG EQU TYPE_ENEMY|ID_COG ;COGHEAD OBJECT
OID_BTR EQU TYPE_ENEMY|ID_BTR ;TROOP TRANSPORT
OID_MONDOR EQU TYPE_ENEMY|ID_MONDOR ;MONDOR THE CARNIVOR
OID_CAT EQU TYPE_ENEMY|ID_CAT ;The kitty kat object
OID_BEEKPR EQU TYPE_ENEMY|ID_BEEKPR ;BEEKEEPER DUDE
OID_BUS EQU TYPE_ENEMY|ID_BUS ;MIDEAST SCHOOL BUS
OID_COPTER EQU TYPE_ENEMY|ID_COPTER ;HELICOPTER
OID_DESK EQU TYPE_ENEMY|ID_DESK ;The mech desk
OID_BOSSBUG EQU TYPE_ENEMY|ID_BOSSBUG ;DA BOSS BUG
OID_FORKLIFT EQU TYPE_ENEMY|ID_FORKLIFT ;The forklift
OID_NATIVE EQU TYPE_ENEMY|ID_NATIVE ;Native guy
OID_NINJA EQU TYPE_ENEMY|ID_NINJA ;Ninja
OID_HELGA EQU TYPE_ENEMY|ID_HELGA ;Headmistress Helga
*
*POWERUP OBJECT I.D.s
*
OID_LIFE EQU TYPE_POWERUP|ID_LIFE ;LIFE POWERUP PROCESS
OID_SBOMB EQU TYPE_POWERUP|ID_SBOMB ;SMART BOMB
OID_PROCK EQU TYPE_POWERUP|ID_PROCK ;ROCKET
OID_CD EQU TYPE_POWERUP|ID_CD ;CD
OID_JEWEL EQU TYPE_POWERUP|ID_JEWEL ;jewel in jungle
OID_CLIP EQU TYPE_POWERUP|ID_CLIP ;Ammo clip
OID_WINGS EQU TYPE_POWERUP|ID_WINGS ;AEROSMITH WINGS
OID_SHIELD EQU TYPE_POWERUP|ID_SHIELD ;Shield
OID_SUPERGUN EQU TYPE_POWERUP|ID_SUPERGUN ;Super gun
OID_LAZER EQU TYPE_POWERUP|ID_LAZER ;Lazer disc
OID_6PACK EQU TYPE_POWERUP|ID_6PACK ;CD six pack
OID_BOOBY EQU TYPE_POWERUP|ID_BOOBY ;MAMMERY BOOBY PRIZE
OID_BLOWUP EQU TYPE_BLOWUP
OID_GRND EQU TYPE_GRND
OID_STEVEN EQU TYPE_FRIEND|ID_21
OID_JOE EQU TYPE_FRIEND|ID_22
OID_TOM EQU TYPE_FRIEND|ID_23
OID_BRAD EQU TYPE_FRIEND|ID_24
OID_JOEY EQU TYPE_FRIEND|ID_25
**************************************************************************
* *
* PROCESS I.D. EQUATES *
* 15 0 *
* PID FORMAT -- NEWO IIII IIII IIPP new *
* NEWI IIPP IIII IIII old *
* N = NON-DESTRUCTIBLE *
* E = WAVE END WAIT *
* W = WAVE END WILL NOT KILL THESE *
* O = RESERVED FOR PROCESSES ASSOCIATED WITH OBJECTS OF LIKE I.D.s *
* I = PROC. SPECIFIC I.D. *
* P = RESERVED FOR BASE PLAYER PROCESS I.D.'S *
* *
**************************************************************************
M_INDESTRUCT EQU 8000H ;MASK FOR NON-DESTRUCTIBLE BIT
M_WAVEWAIT EQU 4000H ;MASK FOR WAVE END WAIT BIT
M_OID EQU 1000H ;MASK FOR OBJECT ID PROCESSES
PID_IND EQU 000CH ;INDEPENDENT PROCESS
PID_INDW EQU 200CH ;WAVE END WILL NOT KILL IND. PROCESS
PID_INDE EQU 400CH ;WAVE END WAIT INDEPENDENT PROCESS
PID_ATT EQU 0008H ;ATTRACT MODE PROCESS
PID_TFADE EQU 801CH ;Sound track fader process.
*BASE PROCESS IDs FOR PLAYERS
P1PID EQU 0001H ;BASE PROCESS I.D. FOR PLAYER 1 PROCESSES
P2PID EQU 0002H ;BASE PROCESS I.D. FOR PLAYER 2 PROCESSES
P3PID EQU 0003H ;BASE PROCESS I.D. FOR PLAYER 3 PROCESSES
PNUM_SLL EQU 30 ;SLL USED TO ISOLATE PLAYER #
PNUM_SRL EQU 30 ;SRL USED TO ISOLATE PLAYER #
*THE FOLLOWING I.D'S ARE OR'D INTO THE ABOVE PLAYER BASE PROCESS I.D.S
*TO FORM THE COMPLETE PROCID.
*!!!WARNING!!! !!!WARNING!!!*
* PLAYER OR-IN IDs ARE NOT ALLOWED TO USE BITS 10,11 & 12 *
*!!!WARNING!!! !!!WARNING!!!*
PCPID EQU 0000H ;PLAYER CONTROL PROCESS
PID_PINVIN EQU 0010H ;PLAYER INVINCIBILITY PROCESS
PSTRTPID EQU 8020H ;PLAYER START PROCESS IDENTIFIER
PID_SHUTDOWN EQU 0030H ;PLAYER SHUTDOWN PROCESS
PFIREPID EQU 2010H ;PLAYER FIRE BUTTON PROCESS
PBOMBPID EQU 2020H ;PLAYER BOMB BUTTON PROCESS
PINITIALPID EQU 2040H ;PLAYER INITIAL ENTRY
*
*COMPLETE PROCESS I.D.S
*
PID_ANIMP EQU 0600H ;ANIMATOR PROCESS I.D.
PID_GUN EQU 0610H ;GUN WATCH PROCESS
PID_FRAG EQU 0620H ;FrAgger Proc
PID_SKY EQU 0630H ;SKY COLOR FADE PROCESS I.D.
PID_FADE EQU 0640H ;MUSIC FADE PROCESS
PID_JUNK EQU 0900H ;JUNK PROCESS
PID_SKYTEXT EQU 0910H ;SKYNET TEXT PRINTER
PID_BONUS EQU 09A0H ;BONUS PROCESS
PID_TCYCLE equ 0B20h ; temporary color cycle
PID_GOODIE EQU 0B40H ;TEMPORARY GOODIE ANIMATIONS
PID_COLL EQU 0C00H ;COLLISION PROCESS I.D. RES C00 - CF0
PID_DAMCC EQU 0CC0H ;DAMAGE COLOR CYCLE PROCESSES
PID_SCROLL EQU 0D60H ;THE CURRENT SCROLL PROCESS I.D.
PID_MASTERDP EQU 0D70H ;THE MASTER ENEMY DISPATCH PROCESS
PID_BAITER EQU 0D90H ;ENFORCER BAITER PROCESS
PID_POWERUPD0 EQU 0DA0H ;POWER-UP DISPATCHER 0
PID_POWERUPD1 EQU 0DB0H ;POWER-UP DISPATCHER 1
PID_POWERUPD2 EQU 0DC0H ;POWER-UP DISPATCHER 2
PID_POWERUPD3 EQU 0DD0H ;POWER-UP DISPATCHER 3
*
*PROCESSES DIRECTLY ASSOCIATED WITH OBJECTS OF LIKE I.D.s
* THESE ARE USED FOR DISPATCHED ITEMS i.e. ENEMIES, HUMANS, POWERUPS
*
PID_NONBOY EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_NONBOY ;NON-BOY PROCESS
PID_BZERK EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_BZERK ;Berzerker process
PID_COG EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_COG ;COGHEAD PROCESS
PID_MONDOR EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_MONDOR ;MONDOR PROCESS
PID_COPTER EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_COPTER ;HELICOPTER PROCESS
PID_DESK EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_DESK ;MECH DESK PROCESS
PID_BOSSBUG EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_BOSSBUG ;DA BOSS BUG
PID_FORKLIFT EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_FORKLIFT ;Forklift process
PID_BEEKPR EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_BEEKPR ;BEEKEEPER GENERATOR
PID_NATIVE EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_NATIVE ;NATIVE GENERATOR
PID_NINJA EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_NINJA ;Ninja process
PID_HELGA EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_HELGA ;Headmistress Helga process
PID_POWERUP EQU M_OID|(TYPE_POWERUP & MASK_TYPE) ;POWERUP PROCESS
*
*"WAVE END WILL NOT KILL" PROCESSES
*
PID_UNIV EQU 2A00H ;UNIVERSE PROCESS
PID_BGND EQU 2B00H ;BGND UPDATE PROCS RESERVE 2B0X -2BFX
PID_COLOR EQU 2CC0H ;COLOR CYCLE PROCESSES
PID_PFADE EQU 2D00H ;FADER PROCESSES ( LOW BYTE = PAL )
PID_CURSOR EQU 2C00H ;GUN CURSOR UPDATE PROCESS
*
*"WAVE END WAIT" PROCESSES
*
PID_BUYIN EQU 4DE0H ;END O' GAME BUY-IN WAIT PID
*
*INDESTRUCTIBLE PROCESSES
*
PID_LC EQU 08F00H ;LEFT COIN
PID_CC EQU 08F20H ;CENTER COIN
PID_RC EQU 08F40H ;RIGHT COIN
PID_XC EQU 08F60H ;FOURTH COIN SLOT
PID_SLAM EQU 08F80H ;SLAM TILT PROCESS
PID_COINCTR EQU 08FA0H ;COIN COUNTER PROCESS
PID_PRINT EQU 08FC0H ;BACKGROUND PRINTER PROCESS
PID_VOLRESET EQU 08FD0H ;Delayed volume set process
PID_VOLUME EQU 08FE0H ;Volume adjust process
PID_VOLUME_DISP EQU 08FF0H ;Volume display page deleter process
PID_DIAG EQU 08100H ;DIAGNOSTICS PROCESS
*
*DAMAGE ODATA VARIABLES
*
DAMAGE_HITS .EQU ODATA ;UHW NUMBER OF HITS AT POINT OF DAMAGE
DAMAGE_PARTID .EQU ODATA+10H ;UHB PART I.D. OF DAMAGED PART
*
*COIL #'S FOR GUN RECOIL
*
P1_RECOIL .EQU 0
P2_RECOIL .EQU 1
P3_RECOIL .EQU 2
P1_LED .EQU 4
P2_LED .EQU 5
P3_LED .EQU 6
*
*PLAYER TRIGGER SWITCH NUMBERS
*
P1TRIGGER .EQU 4
P2TRIGGER .EQU 12
P3TRIGGER .EQU 20
P1BOMB .EQU 5
P2BOMB .EQU 13
P3BOMB .EQU 21
*
*FRANIM FLAG MASKS
SPAWNP EQU 8000H
FLIPBITS EQU 4000H
NEWPALET EQU 2000H
DELTAXZ EQU 1000H
DELTAY EQU 800H
MAKESOUND EQU 200H
SCRIPT EQU 100H
**************************************************************************
* *
* PALETTE ALLOCATOR EQUATES *
* *
**************************************************************************
*PALETTE ALLOCATION RAM
*FOR EACH COLOR PALETTE:
*PALETTE ID 32 BITS, PALETTE COUNT 16 BITS, PALETTE TIME 16 BITS.
*IF PALCNT>0 PALETTE IS ALLOCATED.
*IF (PALCNT=0) & (CURTIME-PALTIME >= 1) THEN PALETTE IS FREE
*
.IF YUNIT
.IF TUNIT
NUMPAL .SET 128 ;NUMBER OF DYNAMICS ALLOCATED PALETTES
NMFPAL .SET 100 ;NUMBER OF FOREGROUND PALETTES
NMBPAL .SET 28 ;NUMBER OF BACKGROUND PALETTES
.ELSE
NUMPAL .SET 16 ;NUMBER OF DYNAMICS ALLOCATED PALETTES
NMFPAL .SET 12 ;NUMBER OF FOREGROUND PALETTES
NMBPAL .SET 4 ;NUMBER OF BACKGROUND PALETTES
.ENDIF
.ELSE
NUMPAL .SET 32 ;NUMBER OF DYNAMICS ALLOCATED PALETTES
NMFPAL .SET 16 ;NUMBER OF FOREGROUND PALETTES
NMBPAL .SET 16 ;NUMBER OF BACKGROUND PALETTES
.ENDIF
*
*PALETTE ENTRY DATA STRUCTURE
PALID .SET 0 ;PALETTE I.D. (32)
PALCNT .SET 020H ;PALETTE ALLOCATION COUNT (16)
PALTIME .SET 030H ;TIME WHEN PAL WAS DELETED
PALRSIZ .SET 040H ;SIZE OF PALETTE ALLOCATION RAM
*
*PALETTE TRANSFER RAM DATA STRUCTURE
PLDCNT .SET 0 ;COLOR COUNT (16)
PALSRC .SET 010H ;SOURCE ADDRESS OF PALETTE COLOR DATA (32)
PALDEST .SET 030H ;DESTINATION PALETTE|START COLOR (16)
PTRSIZ .SET 040H ;SIZE OF EACH CELL
NUMPTR .SET 32 ;NUMBER OF TRANSFERS ALLOWED
*PALETTE MODE STUFF
M_FADE_WHITE EQU 1
M_DONT_FADE_RED EQU 2
M_DONT_FADE_GREEN EQU 4
M_DONT_FADE_BLUE EQU 8
B_FADE_WHITE EQU 0
B_DONT_FADE_RED EQU 1
B_DONT_FADE_GREEN EQU 2
B_DONT_FADE_BLUE EQU 3
;******* FLAGS FOR Fragger scripts ********
FRGBOG .set 001H
FRGGCOL .set 002H
FRGNOFLY .set 004H
FRGNOFLP .set 008H
FRGRND .set 010H
FRGPAL .set 020H
B_FRGBOG .set 0
B_FRGGCO .set 1
B_FRGNOFLY .set 2
B_FRGNOFLP .set 3
B_FRGRND .set 4
B_FRGPAL .set 5
*
*FIXED COLOR CYCLE EQUATES
*
CYCOLORS .EQU COLRAM+(300H*2) ;CYCLABLE COLORS LAST LINE OF 1st PALETTE
COLROFFST .EQU 090H ;OFFSET TO START COLORS
COLRCNT .EQU 6 ;TOTAL NUMBER OF COLORS TO CYCLE
;PCYCLEPAL .EQU 0H ;PLAYER CYCLERS
;PCOLROFFST .EQU 300H+090H ;OFFSET TO 1st PLAYER CYCLER
;PCOLRCNT .EQU 2 ;NUMBER OF PLAYER CYCLERS
*
*GAME STATE CONSTANTS
INGAME .EQU 10H
ININTRO .EQU 18H
INBONUS .EQU 1CH
INPLAY .EQU 20H
INAMODE .EQU 30H
INDIAG .EQU 40H
INGAMEOV .EQU 50H
INEPILOG .EQU 60H
*
*DISPLAY FLAGS FOR FORE/BACKGROUND OBJECTS
M_SPAWNP EQU 80H ;SPAWN A PROCESS WITH THIS OBJECT IN A8
B_SPAWNP EQU 7
*
*BUY-IN WINDOW CONSTANTS
*
BUYTIME .EQU 15
BUYSLP .EQU 4
BUYTICK .EQU 52/BUYSLP
*
*BACKGROUND UPDATER EQUATES
BLSTSTRT .EQU 08000H
BLSTEND .EQU 08001H
**************************************************************************
* *
* UNIVERSE STUFF *
* *
**************************************************************************
CHUNKS .EQU 1 ;TRAVERSE IN 2^CHUNK PARTS
BGLINK_MEM_SIZE .set 200*1024*8 ; 300 Kbytes
MAX_UNIV_OBJS EQU (BGLINK_MEM_SIZE/BLOCK_SIZE)
OULINK EQU OVAR7 ;UHL UNIVERSE RAM LINK ADDRESS
OENEMYANIM EQU ODATA ;UHL ENEMY GENERATOR ANIM SCRIPT
OATEROCKET EQU ODATA+020H ;UHL FLAG ROCKET COLLISION (ROCKET OBJECT)
OGTIME EQU ODATA+040H ;UHL TIME AT LAST GUN HIT
***********
* NOTE! * ENEMY GENERATORS USE SOME ODATA!! See gxuniseq.asm for defines.
***********
OU_ODATA EQU ODATA+0100H ;Beginning of usable ODATA for universe objects
**************************************************************************
* *
* FRAGGER STUFF *
* *
**************************************************************************
FPDATA EQU PDATA+20H*11 ;BEGINNING OF USABLE PDATA AREA IN FragProc
FPOBJ EQU FPDATA+20H ;Object creating these frags