total-carnage/GAME.EQU

451 lines
13 KiB
Plaintext
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.

**************************************************************************
*
* GAME.INC
* ALL .EQU CONSTANTS TO BE USED THROUGHOUT THE GAME
*
*.Last mod - 11/19/91 21:13
**************************************************************************
;ENEMY VALUES FOR WAVE_INFO TABLE
HULK .EQU 1 ;GRUNT ENEMY
TANK .EQU 2 ;MINE LAYER
AHMD .EQU 3 ;AHMED FLAME THROWER
AT72 .EQU 4 ;T72 SPAWN
JEEPS .EQU 5 ;SPAWN JEEPS, LEVEL #=X POSITION RNG
FND .EQU 6 ;SPAWN FIEND FROM OFF SCREEN
SKIPR .EQU 7 ;SPAWN SKIPPER GRUNT
SNEUT .EQU 8 ;SMALL NEUTRON BOMB
RUNNRS .EQU 9 ;BONUS HOSTAGES RUNNING DOWN SCREEN
ORC .EQU 10 ;ORCUS BOSS
SNEUT2 .EQU 11 ;LOTS OF SMALL NEUTRON BOMBS
JEEPS2 .EQU 12 ;LOTS OF JEEPS ON ROAD
MOM .EQU 13 ;MOM SPIDER
MISL .EQU 14 ;SHAWN MISSILE
HJEEP .EQU 15 ;HZ JEEP
;
PLYR2_ID .EQU 11
;
;POINTS FOR ALL ENEMIES, ETC.
;
PLSRPTS .EQU >100 ;PLEASURE DOME CASH PTS
DEARM .EQU >300
KEYPT .EQU >50
HLKPT .EQU >30
FNDPT .EQU >80
AHMDPT .EQU >125
CRTPT .EQU >30 ;CRATE/BARREL PTS FOR SHOOTING
CRTPT2 .EQU >275 ;CRATE/BARREL PTS FOR WALKING INTO!
MINEPT .EQU >50
BTNKPT .EQU >350 ;BIG TANK POINTS (T72)
JEEPPT .EQU >150 ;JEEP POINTS
HITPT .EQU >1 ;BIG STUFF GETS HIT WITH A BULLET
LAYPT .EQU >125 ;MINE LAYER
GATEPT .EQU >350 ;POINTS FOR BLOWING A GATE OPEN
TURTPT .EQU >100 ;POINTS FOR ALL TURRET TYPE GUNS
DISHPT .EQU >650 ;DISH OR REACTOR
JETPT .EQU >650 ;JETS - ADDS IN DISHPT ALSO!
EGGPT .EQU >50
SHOCKPT .EQU >2000 ;SURVIVED SHOCK SCENE
;
PCSMAX .EQU 85 ;CHUNKS UP INTO AIR ;85
;
;BULLET LAYOUT
BLTDIR .EQU PDATA ;UHW
AGE .EQU PDATA+16 ;UHW
GTMP .EQU PDATA+32 ;UHW - PNTR INTO CY TABLE FOR GRENADE
MYPLYR .EQU PDATA+48 ;UHW PLAYER 1 OR 2 FIRED ME=1 OR 2
;THE RINGS USE BULLET LAYOUT WITH SOME ADDED FIELDS:
DELAY .EQU PDATA+64 ;UHW DELAY FOR Y UPDATE
PNTR .EQU PDATA+80 ;UHW PNTR INTO Y UPDATE TABLE
FROM_TSO .EQU PDATA+96 ;UHL FROM TORSO
TIME .EQU PDATA+128 ;UHW TIME RINGS STAY ON
;TORSO PDATA STRUCTURE
*STRUCT PLYR
TSO_PTR .EQU PDATA ;UHL TORSO FOR THESE LEGS
DELYDET .EQU PDATA+32 ;96 ;UHW DELAY KILL TAKE OUT!!!
;MYPLYR .EQU PDATA+48 ;UHW PLAYER 1 OR 2 FIRED ME=1 OR 2
PNUM .EQU PDATA+48 ;224 ;UHW 1 OR 2 FOR PLAYER NUMBER
STICK .EQU PDATA+64 ;UHL STICK ADDRESS
OSHTDIR .EQU PDATA+112 ;UHW OLD SHOT DIR
P_DIR .EQU PDATA+128 ;UHW PLAYER DIR
OLD_P_DIR .EQU PDATA+144 ;UHW OLD DIR
WPN_TYP .EQU PDATA+160 ;UHW WEAPON TYPE
REV_P_DIR .EQU PDATA+176 ;UHW REV DIR
SHOOT_FLAG .EQU PDATA+192 ;UHW SHOOT FLAG
TMP_P_DIR .EQU PDATA+208 ;UHW TEMP P1 DIR
LEG_PTR .EQU PDATA+224 ;32 ;UHL LEGS IMG FOR THIS TORSO
REV_FLAG .EQU PDATA+256 ;UHW FLAG
DEAD .EQU PDATA+272 ;UHW DEAD FLAG
SHOTCNT .EQU PDATA+288 ;UHW AMMO CNT FOR POWERUP WPN
HAVE_REV .EQU PDATA+304 ;240 ;UHW FLAG
;TSHOTS .EQU PDATA+304 ;UHW TOTAL SHOTS FIRED
LEG_PRC .EQU PDATA+320 ;UHL LEG PROCESS PTR
LSRPTR .EQU PDATA+352 ;UHL HELPER PTR OR 0 IF NONE
KILLERO .EQU PDATA+384 ;UHL KILLER IMG PNTR
*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
TCH_WALL .EQU PDATA+160 ;UHW TOUCH WALL FLAG 1=YES
SHOEV .EQU PDATA+176 ;UHW SHOE VERSION FOR STANDING
;LEG_PTR .EQU PDATA+224 ;32 ;UHL LEGS IMG FOR THIS TORSO
;
;PROCESS ID'S
;
INTROPID .EQU 100
JOYPID .EQU 101
CHNKPID .EQU 102
LAYPID .EQU 103
DELPID .EQU 104
FLGPID .EQU 105
BMBPID .EQU 106
TARGPID .EQU 107
DROPPID .EQU 108
CYCPID .EQU 109
BUYINPID .EQU 110
ARWPID .EQU 111
AMDEPID .EQU 112
GMEOVPID .EQU 113
SCRPID .EQU 114
PLY1PID .EQU 115 ;PLAYER 1 STUFF
PLY2PID .EQU 116 ;PLAYER 2 STUFF
P1PID .EQU 117
P2PID .EQU 118
COLPID .EQU 119 ;COLLISIONS
COLRPID .EQU 120 ;COLOR CYCLE FROM INTERRUPT
DG1PID .EQU 121 ;CNTDWN DIGIT PROC
DG2PID .EQU 122 ;CNTDWN DIGIT PROC
FADEPID .EQU 123 ;SOUND FADER
CP_PID1 .EQU 124
CP_PID2 .EQU 125
LC_PID .EQU 126
RC_PID .EQU 127
CC_PID .EQU 128
SLAM_PID .EQU 129
DIAG_PID .EQU 130
P1SWPID .EQU 131
P2SWPID .EQU 132
DUM_ID .EQU 133
B1PID .EQU 134
B2PID .EQU 135
RCYC1PID .EQU 136
RCYC2PID .EQU 137
ICONPID .EQU 138
BULPID .EQU 139
RNG1PID .EQU 140 ;RINGS
TEMPPID .EQU 141
HULKPID .EQU 142
TP2PID .EQU 143
LORDPID .EQU 144
T72PID .EQU 145
FNDPID .EQU 146
RNG2PID .EQU 147 ;RINGS 2
SECDR .EQU 148
CMAN .EQU 149
BLOWPID .EQU 150
FUTUREPID .EQU 151 ;FOR PROCS THAT WAKE UP IN FUTURE
HSTGPID .EQU 152
SHOTPID .EQU 153
SHRPPID .EQU 154
GIPID .EQU 155
AHMDPID .EQU 156
POWPID .EQU 157
MAPPID .EQU 158
WARPPID .EQU 159
TESTPID .EQU 160
FUTRPID .EQU 161 ;FOR PROCS THAT WAKE UP IN FUTURE
MADPID .EQU 162 ;MADMAN PROCS
BMBLT1PID .EQU 163
BMBLT2PID .EQU 164
shawnpid .equ 165
FLMPID .EQU 166
FIXPID .EQU 167
NEUTPID .EQU 168
JEEPID .EQU 169
PONDPID .EQU 170
JETPID .EQU 171
BOOBPID .EQU 172
NEUT2PID .EQU 173
SCROLL_FIX .EQU 174
HNTPID .EQU 175
BLNKPID .EQU 176
HELPPID .EQU 177
HISCPID .EQU >200
BOMBNPID .EQU >300
FRYPID .EQU >400
BOSSPID .EQU >500
SHRAPPID .EQU >600 ;Msl shrapnel
MSLSLOWPID .equ >700 ;Slow missile
ANIMPID .equ >4000 ;Animation PIDs (256)
ANIMPID2 .equ >4100 ;Animation2 PIDs (256)
ANIMPID3 .equ >4200 ;Animation3 PIDs (256)
ANIMPID4 .equ >4300 ;Animation4 PIDs (256)
;
;OBJECT ID'S
;
;**** OBJECT IDENTIFIER FIELDS
B_CLASS .set 15
F_CLASS .set >E000
CLSNEUT .EQU >0000 ;NEUTRAL ITEMS
CLSDEAD .EQU >2000 ;OBJECTS THAT DELETE THEMSELVES
CLSANIM .EQU >3800 ;Animation class objects
CLSPLYR .EQU >4000 ;PLAYERS STUFF
CLSENMY .EQU >8000 ;ENEMIES
;
TYPNEUT .EQU 0000H ;TYPE NEUTRAL
TYPPLYR .EQU 0100H ;PLAYER
TYPPLBL .EQU 0200H ;PLAYER BULLET
TYPTRUNK .EQU 0300H ;TREE TRUNK TYPE ITEMS
TYPGATE .EQU 0400H ;GATES/DOORS
TYPBOMB .EQU 0500H ;TIME BOMB EXPLOSION
TYPHSTG .EQU 0600H ;HOSTAGES
TYPTEXT .EQU 0700H ;TYPE TEXT
TYPICON .EQU 0800H ;POWERUP ICON
TYPCRTE .EQU 0900H ;CRATE/BRLS
TYPHULK .EQU 0A00H ;HULKS
TYPFND .EQU 0B00H ;FIEND
TYPSHOT .EQU 0C00H ;SHOTS FROM ENEMIES
TYPHLPR .EQU 0D00H ;HELPER BLADE AROUND PLYRS
TYPGOO .EQU 0E00H ;GOO SHRAPNEL
TYPGRW .EQU 0F00H ;GROW FROM SLIME
TYPT72 .EQU 1000H ;T72 TANK IN DESERT
TYPTORSO .EQU 1100H ;TORSO ON TOP OF TANK
TYPLAYR .EQU 1200H ;MINE LAYER
TYPAHMD .EQU 1300H ;AHMED FLAME THROWER
TYPFACE .EQU 1400H ;Orcus
TYPSL .EQU 1500H ;SHAWN TYPE ENEMIES
TYPMINE .EQU 1700H ;LAND MINE ON GROUND
TYPJET .EQU 1800H ;JET
TYPABOSS .EQU 1900H ;Akhboob's flying death machine
TYPBOLT .EQU 1A00H ;BOLT OF ELECTRICITY
TYPFLAG .EQU 1B00H ;CHECKPOINT US FLAG
*Orcus subtypes
SUBSIDEL .equ 1
SUBSIDER .equ 2
SUBTUNG .equ 3
SUBFLAM .equ 4
SUBHD .equ >10 ;>These have graphic deaths
SUBSHLDL .equ >11
SUBSHLDR .equ >12
SUBEL .equ >13
SUBER .equ >14
SUBMTHL .equ >15
SUBMTHR .equ >16
SUBARML .equ >17
SUBARMR .equ >18
*TYPSL subtypes
SUBSB .equ 0
SUBSM .equ 1
SUBMSL .equ 2
SUBSHRAP .equ 3
*TYPABOSS subtypes
SUBABBACK .equ 1
SUBABBL .equ 8
SUBABBR .equ 9
;
;SUB MINE LAYER
;
SUBFLM .EQU 01H ;MINE LAYER SWAPS TO THIS OID
;
;SUB HELPER
;
SUBLAY .EQU 01H ;MINE LAYER SWAPS TO THIS OID
;
;SUB CRATE
;
SUBCRT .EQU 02H
SUBBRL .EQU 04H ;BARREL
;SUB TANK
;
SUBTK .EQU 01H ;TANK PORTION OF T72 TANK
SUB60 .EQU 02H ;TOSRO IS FROM BTR60
SUBPIT .EQU 04H ;GUNNER FROM SAND PITS
SUBBOOB .EQU 08H ;BOOB SHIP TURRET
;
;SUB HOSTAGE TYPES
;
;SUBGUYA .EQU 01H
;SUBGUYB .EQU 02H
;SUBGUYC .EQU 03H
;SUBGUYD .EQU 04H
SUBRUN .EQU 05H
;
;TYPE PLAYER SUB TYPES
;
SUBPL_1 .EQU 0001H ;PLAYER 1
SUBPL_2 .EQU 0002H
SUBRNG1 .EQU 0003H ;RINGS FOR PLAYER 1,2
SUBHLPME .EQU 0004H ;BLADE SPINNING AROUND PLYR
;
;TYPE PLAY BULLET SUB TYPES
;
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
SUBTHROW .EQU 0007H ;BIG GREEN FLAME THROWER
;
;TYPE ICON SUB TYPES
;
SUBFIRE .EQU 0001H ;FIRE BALL ICON
SUBSPRY1 .EQU 0002H ;SPRAY BULLETS ICON
SUBSPDG .EQU 0003H ;MACHINE GUN TYP 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
SUBBMB .EQU 000BH ;EXTRA BOMBS
SUBCSH .EQU 000CH ;JEWEL ITEMS
SUBHLP .EQU 000DH ;HELPER
SUBBLET .EQU 000EH ;BOMBLETS ICON
SUBSEGG .equ 0010H ;Spider egg
SUBBOMBSN .equ 0011H ;Small neutron bomb
;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
;
;
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
;YUNIT EQUATES
BMPFRYTE .EQU 7 ;FIRE RIGHT,LEFT,DOWN,UP (MSB)
BMPFLEFT .EQU 6
BMPFDOWN .EQU 5
BMPFUP .EQU 4
; BITS USED IN PLAYER CONTROLS (1=ACTIVE)
PRYTE .EQU 8
PLEFT .EQU 4
PDOWN .EQU 2
PUP .EQU 1
;YUNIT EQUATES FOR JOYSTICK
PFRYTE .EQU 80H
PFLEFT .EQU 40H
PFDOWN .EQU 20H
PFUP .EQU 10H
;
;*GAME STATE CONSTANTS
INGAME .EQU 10H
ININTRO .EQU 18H
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
TSHOTS .EQU 60H ;TOTAL SHOTS FIRED
TMINEDTH .EQU 70H ;LAND MINE DEATHS!
TBIGSTF .EQU 80H ;TOTAL BIG STUFF DESTROYED
TMISLS .EQU 90H ;TOTAL MISSILE STRIKES
TEARNED .EQU 0A0H ;TOTAL EXTRA MEN EARNED (SCORE/ICONS)
TWPNS .EQU 0B0H ;TOTAL WEAPONS PICKED UP
BMBSUSED .EQU 0C0H ;TOTAL BOMBS/CRUISES USED
WAVEPTS .EQU 0E0H ;POINTS SCORE THIS WAVE (FOR BONUS)
PTSRAM .EQU 100H ;HOSTAGE PTS VALUE 0-9
PNEXTREP .EQU 120H ;NEXT REPLAY LEVEL, 32 BITS BCD
PLIVES .EQU 140H ;# OF PLAYER LIVES
BMB_CNT .EQU 150H ;# OF BOMBS LEFT TO USE
STIMER .EQU 160H ;SCORE TIMER
THSTGS .EQU 170H ;TOTAL HOSTAGES COLLECTED
TFLAGS .EQU 180H ;TOTAL FLAGS PICKED UP
DLY_MSG .EQU 190H ;MESSAGE DELAY CONTROL WORD
CNTD .EQU 1A0H ;UHW PLAYER CONTINUE FLAG/CNTDWN FLAG
LVADDR .EQU 1C0H ;ADDRESS OF LIVES IMG FOR DMA SCRBRD
MESSAGE .EQU 1E0H ;ADDRESS OF CORRECT COIN IN MESSAGE
CASHCNT .EQU 200H ;UHW GEMS PICKED UP
THITS .EQU 210H ;UHW TOTAL SUCCESSFULL SHOTS FIRED
TKEYS .EQU 220H ;UHW TOTAL KEYS COLLECTED
PDEND .EQU 230H ;END OF PLAYER DATA
PDSIZE .EQU PDEND ;SIZE OF PLAYER DATA BLOCK
*****************************************************************************
*****************************************************************************
*****************************************************************************