187 lines
8.3 KiB
NASM
187 lines
8.3 KiB
NASM
**************************************************************************
|
||
* *
|
||
* ANIMATION AND PROCESS EQUATES *
|
||
* *
|
||
**************************************************************************
|
||
*
|
||
*ANIMATION TABLE INDICES THESE FOLLOW (UP = 0,DOWN = 1,LEFT = 2,RIGHT = 3)
|
||
TURNUL .EQU 4 ;TURN UP FROM LEFT
|
||
TURNRU .EQU 5 ;TURN RIGHT FROM UP
|
||
TURNDR .EQU 6 ;TURN DOWN FROM RIGHT
|
||
TURNLD .EQU 7 ;TURN LEFT FROM DOWN
|
||
TURNLU .EQU 8 ;TURN LEFT FROM UP
|
||
TURNDL .EQU 9 ;TURN DOWN FROM LEFT
|
||
TURNRD .EQU 0AH ;TURN RIGHT FROM DOWN
|
||
TURNUR .EQU 0BH ;TURN UP FROM RIGHT
|
||
DEATH_UP .EQU 0CH ;DEATH WHILE GOING UP
|
||
DEATH_DOWN .EQU 0DH ;DEATH WHILE GOING DOWN
|
||
DEATH_LEFT .EQU 0EH ;DEATH WHILE GOING LEFT
|
||
DEATH_RIGHT .EQU 0FH ;DEATH WHILE GOING RIGHT
|
||
ABOUTUL .EQU 10H ;ABOUT FACE FROM UP VIA LEFT
|
||
ABOUTUR .EQU 11H ;ABOUT FACE FROM UP VIA RIGHT
|
||
ABOUTDL .EQU 12H ;ABOUT FACE FROM DOWN VIA LEFT
|
||
ABOUTDR .EQU 13H ;ABOUT FACE FROM DOWN VIA RIGHT
|
||
ABOUTLU .EQU 14H ;ABOUT FACE FROM LEFT VIA UP
|
||
ABOUTLD .EQU 15H ;ABOUT FACE FROM LEFT VIA DOWN
|
||
ABOUTRU .EQU 16H ;ABOUT FACE FROM RIGHT VIA UP
|
||
ABOUTRD .EQU 17H ;ABOUT FACE FROM RIGHT VIA DOWN
|
||
STANDU .EQU 18H ;STAND FACING UP
|
||
STANDD .EQU 19H ;STAND FACING DOWN
|
||
STANDL .EQU 1AH ;STAND FACING LEFT
|
||
STANDR .EQU 1BH ;STAND FACING RIGHT
|
||
CHEER1 .EQU 1CH ;CELEBRATION CHEER #1
|
||
CHEER2 .EQU 1DH ;CELEBRATION CHEER #2
|
||
CHEER3 .EQU 1EH ;CELEBRATION CHEER #3
|
||
CHEER4 .EQU 1FH ;CELEBRATION CHEER #4
|
||
MADU .EQU 20H ;MAD FACING UP
|
||
MADSNDU .EQU 24H ;MAD FACING UP W/SOUND
|
||
QUESTION .EQU 28H ;SCRATCH HEAD, INFINITE (P0)
|
||
EYEBLINK .EQU 29H ;BLINK STUPIDLY, INFINITE (P0)
|
||
HANDWAVE .EQU 2AH ;WAVE AT THE PLAYER, INFINITE (P0)
|
||
SHRUG .EQU 2BH ;RESERVED, INFINITE (P0)
|
||
BUMPU .EQU 2CH ;BUMP HEAD-ON FACING UP
|
||
PUNCHU .EQU 30H ;PUNCH FACING UP
|
||
OOFU .EQU 34H ;GET PUNCHED FACING UP
|
||
PIT_DEATH_UP .EQU 38H ;DEATH BY PIT WHILE GOING UP
|
||
INTRODUCE .EQU 3CH ;INTRODUCE THE DINOSAUR TO THE GAME
|
||
WONDER .EQU 3DH ;WONDER WHAT'S GOING ON
|
||
TARU .EQU 3EH ;STUCK IN TARPIT FACING UP
|
||
FIREU .EQU 42H ;BURNT BY FIRE FACING UP
|
||
SHAKEU .EQU 46H ;SHAKE OFF A BUMP OR HIT FACING UP
|
||
SKELU .EQU 4AH ;TURN INTO A SKELETON FACING UP
|
||
KOU .EQU 4EH ;KNOCK OUT PUNCH FROM TROG UP
|
||
OGPITU .EQU 52H ;FALL IN SMALL PIT AND DIE UP
|
||
CLUBOUTU .EQU 56H ;GET CLUBBED BY TROG UP
|
||
SQUISHUU .EQU 5AH ;SQUISH FACING UP/WHEEL ROLLING UP (5AH - 69H)
|
||
SPROINGU .EQU 6AH ;GETTING SQUASHED BY THE SPRING SHOE
|
||
LOOKBOTHU .EQU 6EH ;LOOK BOTH DIRECTIONS BEFORE CROSSING UP
|
||
EATU .EQU 72H ;EAT FACING UP
|
||
DIGU .EQU 76H ;DIG FACING UP
|
||
LAVADIEU .EQU 7AH ;DIE IN LAVA FACING UP
|
||
PUNCHOFFU .EQU 7EH ;PUNCHED OFF ISLAND UP
|
||
CLUBU .EQU 82H ;HIT GROUND WITH CLUB UP
|
||
CLUBHOLEU .EQU 86H ;HIT GROUND WITH INTENT TO CREATE HOLE UP
|
||
STOKEFIREU .EQU 8AH ;STOKE A FIRE UP
|
||
WHEELU .EQU 8EH ;ROLL WHEEL UP (8EH - 91H)
|
||
|
||
SPITFIREU .EQU PUNCHOFFU ;DINO SPITTING FIRE BALLS
|
||
|
||
*
|
||
*COMMUNICATION BYTES FOR INTERACTIVE PROCESS
|
||
COMMAND_PUNCH .EQU 1 ;REACT TO PUNCH
|
||
COMMAND_FALL .EQU 2 ;FALL DOWN
|
||
ACK_DINO_PUNCH .EQU 3 ;ACKNOWLEDGE DINOPUNCH <=> DINOOOF
|
||
ACK_TROG_PUNCH .EQU 4 ;ACKNOWLEDGE DINOTROGOOF <=> TROGPUNCH
|
||
COMMAND_EAT .EQU 5 ;TAKE A BITE OF DINO MEAT
|
||
COMMAND_EAT_DONE .EQU 6 ;DONE WITH MY MEAL
|
||
ACK_TROG_EAT .EQU 7 ;ACKNOWLEDGE DINOTROGOOF <=> TROGPUNCH (EATING)
|
||
COMMAND_ESC .EQU 8 ;YOU ARE ALLOWED TO ESCAPE FROM THIS SEQUENCE
|
||
|
||
*
|
||
*TTYPE VARIABLE VALUES
|
||
*
|
||
TTYPE_NORM .EQU 0 ;NORMAL BARE HANDED TROG
|
||
TTYPE_CLUB .EQU 1 ;THE CLUB WIELDING TROG
|
||
TTYPE_WHL .EQU 2 ;THE WHEEL ROLLING TROG
|
||
TTYPE_SPRING .EQU 3 ;THE BOUNCING SPRING SHOE TROG
|
||
|
||
*
|
||
*MISC.
|
||
TRAPSIZE .EQU [48,48] ;SIZE OF TRAP AREA
|
||
TRAPTIME .EQU 60H ;TIME IN TRAP BEFORE DIGGING OUT
|
||
TRAPMINTIME .EQU 05H ;MINIMUM TRAP TIME
|
||
TRAPDEC .EQU 2 ;AMOUNT TO DECREMENT TRAP TIME
|
||
|
||
TROGTOOPISSED .EQU 8 ;TENSION AT WHICH HE WILL KILL NO MATTER WHAT
|
||
|
||
INITSPEEDUPS .EQU 6 ;# OF TIMES TROG IS ALLOWED TO INCREASE DSPEED
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG AND DINO PROCESS VARIABLE DEFINITIONS *
|
||
* *
|
||
**************************************************************************
|
||
DATABLE .EQU PDATA ;DINOSAUR ANIMATION TABLE (BOTH) (32)
|
||
DVEL .EQU PDATA+20H ;DINOSAUR X & Y VELOCITY (BOTH) (32)
|
||
DSMULT .EQU PDATA+40H ;SLEEP MULTIPLIER (BOTH) (16)
|
||
DDIR .EQU PDATA+50H ;DINOSAUR CURRENT DIRECTION (BOTH) (16)
|
||
DOID .EQU PDATA+60H ;OID OF THIS DUDE (BOTH) (16)
|
||
DPLAYER .EQU PDATA+70H ;PLAYER CONTROLLING THIS DINOSAUR (DINO) (32)
|
||
DINITTAB .EQU PDATA+90H ;DINOSAUR INITIALIZATION TABLE (BOTH) (32)
|
||
DINITPOS .EQU PDATA+0B0H ;DINOSAUR INITIAL POSITION (BOTH) (32)
|
||
DINITDIR .EQU PDATA+0D0H ;DINOSAUR INITIAL DIRECTION (BOTH) (16)
|
||
DPUNCHFLG .EQU PDATA+0E0H ;DINOSAUR PUNCHING FLAG (BOTH) (8)
|
||
DDIZZYFLG .EQU PDATA+0E8H ;DINOSAUR DOWN/DAZED FLAG (BOTH) (8)
|
||
DFRUST .EQU PDATA+0F0H ;GENERAL FRUSTRATION LEVEL (BOTH) (8)
|
||
*IF ANY TENSE AREAS ARE ADDED, CHANGE GET_TENSION_AREA
|
||
DD0TENSE .EQU PDATA+0F8H ;TENSION LEVEL AGAINST DINO 0 (BOTH) (8)
|
||
DD1TENSE .EQU PDATA+100H ;TENSION LEVEL AGAINST DINO 1 (BOTH) (8)
|
||
DD2TENSE .EQU PDATA+108H ;TENSION LEVEL AGAINST DINO 2 (BOTH) (8)
|
||
DD3TENSE .EQU PDATA+110H ;TENSION LEVEL AGAINST DINO 3 (BOTH) (8)
|
||
****DTURNQCNT .EQU PDATA+118H ;# OF TURNS STORED IN Q (DINO) (8)
|
||
;HY NYBBLE, # OF TURNS TO SEARCH
|
||
;LO NYBBLE, OFFSET TO STORE NEXT TURN
|
||
DTURNQ .EQU PDATA+0120H ;TURN DATA STORAGE (4 ENTRIES) (DINO) (96)
|
||
*DTURNS IS A CIRCULAR Q,
|
||
*EACH ENTRY IS DEFINED AS:
|
||
****DTURNQMOVE .EQU 0 ; (DINO) (16)
|
||
****DTURNQDIR .EQU 10H ; (DINO) (8)
|
||
DTURNQSIZE .EQU 18H ;SIZE OF TURN Q ENTRY
|
||
NDTURNS .EQU 4 ;6 IS THE MAXIMUM NUMBER OF ENTRIES
|
||
|
||
TWALKFRM .EQU PDATA+0120H ;CURRENT TROG WALKING FRAME (TROG) (32)
|
||
TSWINGS .EQU PDATA+0140H ;CONSECUTIVE TROG BONE SWINGS (TROG) (8)
|
||
THITS .EQU PDATA+0148H ;CURRENT HIT POINTS (TROG) (8)
|
||
TFREEZE .EQU PDATA+0150H ;IF <> 0, ENEMY IF FROZEN (TROG) (8)
|
||
|
||
DNEXT .EQU DTURNQ+(DTURNQSIZE*NDTURNS) ;OFFSET OF VARIABLE AFTER THE TURNQ
|
||
|
||
DINVIN .EQU DNEXT ;IF <> 0 DINO IS INVINCIBLE (DINO) (8)
|
||
TTYPE .EQU DNEXT ;TROG TYPE (I.E. PLAIN, CLUB, ...) (TROG) (8)
|
||
|
||
DVNFLAG .EQU DNEXT+8 ;IF <> 0, DON'T RETURN TO DSPEED (BOTH) (8)
|
||
DSPEED .EQU DNEXT+10H ;INITIAL VELOCITY STORAGE (BOTH) (16)
|
||
|
||
TNEXTLOOK .EQU DNEXT+20H ;MOVES 'TIL NEXT TROG SEARCH (TROG) (8)
|
||
DDRONE .EQU DNEXT+20H ;IF <> 0 THIS IS A DRONE DINOSAUR (DINO) (8)
|
||
|
||
TTRAPPED .EQU DNEXT+28H ;IF <> 0, TROG JUST ESCAPED A TRAP (TROG) (8)
|
||
DDRONEDEL .EQU DNEXT+28H ;IF <> 0 & DDRONE <> 0 THEN DELETE (DINO) (8)
|
||
|
||
TCURMPOS .EQU DNEXT+30H ;TROG'S CURRENT MOVE POINT (BOTH) (32)
|
||
|
||
TMINTL .EQU DNEXT+50H ;MINIMUM [Y,X] TOP LEFT ACHIEVED (TROG) (32)
|
||
DSPEED2 .EQU DNEXT+50H ;SECOND LEVEL VEL. IF=0 USE DSPEED (DINO) (16)
|
||
DSAVES .EQU DNEXT+60H ;NUMBER OF BOZO SAVES LEFT (DINO) (16)
|
||
|
||
TMAXLR .EQU DNEXT+70H ;MAXIMUM [Y,X] LOWER RIGHT (TROG) (32)
|
||
DFURTHEST .EQU DNEXT+70H ;THE FURTHEST EGG FROM US AT START (DINO) (32)
|
||
|
||
TTRAPTIME .EQU DNEXT+90H ;TIME IN CURRENT TRAP (TROG) (16)
|
||
TTRAPDIG .EQU DNEXT+0A0H ;CURRENT DIG TIME (TROG) (16)
|
||
DINVPROC .EQU DNEXT+90H ;PTR TO INVINCIBLE PROCESS (DINO) (32)
|
||
|
||
TDINO .EQU DNEXT+0B0H ;PTR TO DINO TROG IS CHASING (TROG) (32)
|
||
DWALKFRM .EQU DNEXT+0B0H ;CURRENT DINO WALKING FRAME (DINO) (32)
|
||
|
||
TPURSUIT .EQU DNEXT+0D0H ;IF 1, IN PURSUIT MODE (TROG) (8)
|
||
DFIREFLG .EQU DNEXT+0D0H ;IF 1, DINO CAN FIRE BULLETS (DINO) (8)
|
||
|
||
TPRESET .EQU DNEXT+0D8H ;STEPS TO RESET PURSUIT FLAG (TROG) (8)
|
||
DTREXFLG .EQU DNEXT+0D8H ;IF 1, THEN DINO IS A TREX (DINO) (8)
|
||
|
||
TPLAYER .EQU DNEXT+0E0H ;PLAYER NUMBER OF DINO BEING CHASED(TROG) (8)
|
||
DSMART .EQU DNEXT+0E0H ;DINOSAUR SMARTIE PANTS FLAG (DINO) (8)
|
||
|
||
TSPEEDUPS .EQU DNEXT+0E8H ;ALLOW THIS MANY MORE SPEED UPS (TROG) (8)
|
||
DWAIT .EQU DNEXT+0E8H ;DINO WAIT TIMER (DINO) (8)
|
||
|
||
DEND .EQU DNEXT+0F0H ;END OF DINO DATA
|
||
|
||
**************************************************************************
|
||
* *
|
||
* WARNING! Make sure that DEND is Not greater than PCOMM in *
|
||
* MPROCEQU.ASM *
|
||
* *
|
||
**************************************************************************
|
||
|