trog/TROGSTRC.TVS

231 lines
9.9 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.

**************************************************************************
* *
* ToddView Structure Declarations *
* *
**************************************************************************
*
* OBJECT BLOCK STRUCTURE
*
*struct OBJ
OLINK .SET 0 ;UHL Link to next object block (32)
OSLINK .SET 20H ;UHL SPECIAL LINK TO OBJECTS IN CLASS (32)
OXVEL .set 40h ;UHL X VELOCITY 16.16 (32)
OYVEL .set 60h ;UHL Y VELOCITY 16.16 (32)
OXVAL .set 80h ;UHL X POSITION (32)
OXPOS .set 90h ; Integer portion of X position (16)
OYVAL .set 0A0h ;UHL Y POSITION (32)
OYPOS .SET 0B0h ; Integer portion of Y position (16)
OZVAL .SET 0C0H ;UHL Z POSITION (32)
OZPOS .SET 0D0h ; Integer portion of z position (16)
OZVEL .set 0E0h ;UHL Z VELOCITY (32)
OFLAGS .set 100H ;UHW DMA CONTROL (16)
OFSET .SET 110H ;UHW PRECOMPUTED DMA OFFSET (16)
OSAG .SET 120H ;UHL SOURCE ADDRESS (UNCLIPPED, ADJUSTED FOR FLIPS) (32)
OSIZE .SET 140H ;UHL [H,W] OF OBJECT (32)
OSIZEX .EQU 140H ; X SIZE OF OBJECT (16)
OSIZEY .EQU 150H ; Y SIZE OF OBJECT (16)
OPAL .set 160h ;UHW PALETTE # OF OBJECT (16)
OCONST .SET 170H ;UHW CONSTANT COLOR SUBSTITUTE (16)
OIMG .set 180h ;UHL Pointer to image data table (32)
OID .set 1A0H ;UHW Object ID (16)
OZSIZ .SET 1B0H ;UHL [PLUS,MINUS] Z THICKNESS (32)
OZMINUS .SET 1B0H ; Thickness along minus Z (16)
OZPLUS .SET 1C0H ; Thickness along plus Z (16)
OCVECT .set 1D0H ;UHL Link to collision handler (32)
OPLINK .set 1F0H ;UHL Link to controlling process (32)
ODMAXY .SET 210H ;UHL [Y,X] SCREEN COORDINATE OF OBJECT (32)
ODMAX .EQU 210H ; X COORDINATE (16)
ODMAY .EQU 220H ; Y COORDINATE (16)
OXCLIP .SET 230H ;UHW TOTAL X PRECLIP (16)
OSHAD .SET 240H ;UHL Link to object shadow (32)
OATTRIB .SET 260H ;UHW Object attribute word (16)
OMLINK .SET 270H ;UHL Multi-part object link (32)
OBSIZ .SET 290H ;Object Block Size
*endstruct
*
*PROCESS DATA STRUCTURE
*struct PROC
PLINK .SET 0 ;UHL LINK TO NEXT
PROCID .SET 20H ;UHW PROCESS ID
PTIME .SET 30H ;UHW SLEEP TIME X 16MSEC
PSPTR .SET 40H ;UHL PROCESS STACK POINTER
PDATA .SET 60H ;UHL PROCESS DATA STORE
*endstruct
*
*PROCESS VARIABLE STORAGE AREAS
*struct DINO+PROC
DATABLE .EQU PDATA ;UHL DINOSAUR ANIMATION TABLE
DVEL .EQU PDATA+20H ;UHL DINOSAUR X&Y VELOCITY
DSMULT .EQU PDATA+40H ;UHW DINOSAUR SLEEP MULTIPLIER
DDIR .EQU PDATA+40H ;UHW DINOSAUR CURRENT DIRECTION
DOID .EQU PDATA+60H ;UHW THIS DUDES OID
DPLAYER .EQU PDATA+70H ;UHL PLAYER CONTROLLING THIS DINOSUAR
DINITTAB .EQU PDATA+90H ;UHL DINOSAUR INITIALIZATION TABLE
DINITPOS .EQU PDATA+0B0H ;UHL DINOSAUR INITIAL POSITION
DINITDIR .EQU PDATA+0D0H ;UHW DINOSAUR INITIAL DIRECTION
DPUNCHFLG .EQU PDATA+0E0H ;UHB DINOSAUR PUNCHING FLAG
DDIZZYFLG .EQU PDATA+0E8H ;UHB DINOSAUR DOWN/DAZED FLAG
DFRUST .EQU PDATA+0F0H ;UHB GENERAL FRUSTRATION LEVEL
DD0TENSE .EQU PDATA+0F8H ;UHB TENSION LEVEL AGAINST DINO 0
DD1TENSE .EQU PDATA+100H ;UHB TENSION LEVEL AGAINST DINO 1
DD2TENSE .EQU PDATA+108H ;UHB TENSION LEVEL AGAINST DINO 2
DD3TENSE .EQU PDATA+110H ;UHB TENSION LEVEL AGAINST DINO 3
DTURNCNT .EQU PDATA+118H ;UHB # OF TURNS STORED
DTURNQM1 .EQU PDATA+0120H ;UHW TURN Q 1 MOVE
DTURNQD1 .EQU PDATA+0130H ;UHB TURN Q 1 DIR
DTURNQM2 .EQU PDATA+0138H ;UHW TURN Q 2 MOVE
DTURNQD2 .EQU PDATA+0148H ;UHB TURN Q 2 DIR
DTURNQM3 .EQU PDATA+0150H ;UHW TURN Q 3 MOVE
DTURNQD3 .EQU PDATA+0160H ;UHB TURN Q 3 DIR
DTURNQM4 .EQU PDATA+0168H ;UHW TURN Q 3 MOVE
DTURNQD4 .EQU PDATA+0178H ;UHB TURN Q 3 DIR
DBURNS .EQU PDATA+0180H ;UHB # OF TIMES BURNED THIS WAVE
DVNFLAG .EQU PDATA+0188H ;UHB IF <> 0, DON'T RETURN TO DSPEED
DSPEED .EQU PDATA+0190H ;UHW INITIAL VELOCITY STORAGE
TNEXTLOOK .EQU PDATA+01A0H ;UHB MOVES 'TIL NEXT TROG SEARCH
TTRAPPED .EQU PDATA+01A8H ;UHB TROG IS IN A TRAP
TCURMPOS .EQU PDATA+01B0H ;UHL TROG'S CURRENT MOVE POINT
TMINTL .EQU PDATA+01D0H ;UHL MINIMUM [Y,X] TOP LEFT ACHIEVED
TMAXLR .EQU PDATA+01F0H ;UHL MAXIMUM [Y,X] LOWER RIGHT
TTRAPTIME .EQU PDATA+0210H ;UHW TIME IN CURRENT TRAP
TTRAPDIG .EQU PDATA+0220H ;UHW TIME UNTIL DIG
TDINO .EQU PDATA+0230H ;UHL PTR TO DINO TROG IS CHASING
TPURSUIT .EQU PDATA+0250H ;UHB IF 1, IN PURSUIT MODE
TPRESET .EQU PDATA+0258H ;UHB STEPS 'TIL WE RESET PURSUIT
TPLAYER .EQU PDATA+0260H ;UHB PLAYER NUMBER OF DINO BEING CHASED
TSPEEDUPS .EQU PDATA+0268H ;UHB ALLOW THIS MANY MORE SPEED UPS
PCOMM .EQU PDATA + 270H ;UHW PROCESS COMMUNICATION AREA
PTEMP1 .EQU PDATA + 280H ;UHL TEMPORARY AREA
PTEMP2 .EQU PDATA + 2A0H ;UHL TEMPORARY AREA
PTEMP3 .EQU PDATA + 2C0H ;UHL TEMPORARY AREA
PTEMP4 .EQU PDATA + 2E0H ;UHL TEMPORARY AREA
*endstruct
************************************************************
* *
* PLAYER DATA STRUCTURE *
* *
************************************************************
*struct PLAYER
POBJ EQU 0000H ;UHL PLAYER OBJECT BLOCK
PSCRAD EQU 0020H ;UHL PLAYER SCORE SCREEN ADDRESS
PSCORE EQU 0040H ;UHL PLAYER SCORE
PLIVES EQU 0060H ;UHW PLAYER # OF LIVES
PPID EQU 0070H ;UHW PLAYER BASE PROCESS I.D.
PMOVEIDX EQU 0080H ;UHW CURRENT PLAYER MOVE INDEX
PMOVE EQU 0090H ;UHL PTR TO CURRENT MOVE TABLE ENTRY
PBARS EQU 00B0H ;UHW CURRENT NUMBER OF ACTIVE BARS
PINITAB EQU 00C0H ;UHL PLAYER INITIALIZATION TABLE
PSUPP EQU 00E0H ;UHL PTR TO PLAYER SUPPLEMENTAL LIST
PJOYSTCK EQU 0100H ;UHW CURRENT JOYSTICK DIRECTION BEING PROCESSED
PDINO EQU 0110H ;UHL PTR TO DINOSAUR START TABLE
PLICON EQU 0130H ;UHL PTR TO PLAYER LIFE ICON
PNEXTREP EQU 0150H ;UHL NEXT REPLAY LEVEL, 32 BITS BCD
PEGGS EQU 0170H ;UHW # OF EGGS CURRENTLY HELD BY THIS PLAYER
PLASTMOV EQU 0180H ;UHW LAST LEGAL MOVE LOCATION
PINITMOV EQU 0190H ;UHW INITIAL MOVE FOR THIS WAVE
PENTER EQU 01A0H ;UHW IF = 1, PLAYER WILL ENTER GAME @ NEXT INPLAY
PWINS EQU 01B0H ;UHW NUMBER OF WINS THIS GAME
PPALID EQU 01C0H ;UHL PLAYER PALETTE I.D.
PWAVEST EQU 01E0H ;UHW NUMBER OF PLAYER STARTS THIS WAVE
PLASTEGG EQU 01F0H ;UHL WAVE TIME OF LAST EGG PICKUP
PLASTDTH EQU 0210H ;UHL ELAPSED TIME SINCE LAST PLAYER DEATH
PLASTWIN EQU 0230H ;UHW LAST WAVE WON BY PLAYER
PEXITPNT EQU 0240H ;UHL PTR TO PLAYER FIRST EXIT POINT
PDEAD EQU 0260H ;UHW 1 IF DEAD MESSAGE UP
PDINOCNT EQU 0270H ;UHW NUMBER OF ACTIVE DINOS FOR THIS PLAYER
PDTHPOS EQU 0280H ;UHL [Y,X] RETURN POINT LAST DINO DEATH
PLASTJOY EQU 02A0H ;UHW LAST JOYSTICK EVENT
PBOZO EQU 02B0H ;UHW BOZO LEVEL, > 0 = SOME SORT OF BOZO
PWAVEDEATHS EQU 02C0H ;UHW NUMBER OF DEATHS THIS WAVE
PEGGSTHISLIFE EQU 02D0H ;UHW NUMBER OF EGGS COLLECTED THIS LIFE
PTROGKILLS EQU 02E0H ;UHW TIMES THIS PLAYER HAS WASTED TROG
PCONSECUTIVE EQU 02F0H ;UHW CONSECUTIVE WAVE PLAYED
PWAVES EQU 0300H ;UHW NUMBER OF WAVES PLAYED THIS GAME
PEXTRAS EQU 0310H ;UHW NUMBER OF EXTRA MEN EARNED THIS GAME
PTOTTIME EQU 0320H ;UHW TOTAL TIME THIS CREDIT
PITIME EQU 0330H ;UHW TIME LEFT FOR ENTERING INITIALS
PWAVETIME EQU 0340H ;UHL TIME THIS PLAYER HAS SPENT ON THIS WAVE
PDTHFLAG EQU 0360H ;UHW 1 IF THE GUY IS DEAD
PLIFETIME EQU 0370H ;UHW TIME THIS GUY AS BEEN ALIVE
PSPEEDTIME EQU 0380H ;UHW TIME 'TIL NEXT SPEED UP
PEXTRAEARN EQU 0390H ;UHW EXTRA MEN EARNED THIS WAVE
PDRONEFLG EQU 03A0H ;UHW IF <> 0 THEN THIS IS A DRONE PLAYER
PSTARTESC EQU 03B0H ;UHW FLAG TO SHOW START BUTTON ACTION
PEGGOUT EQU 03C0H ;UHW IF <> 0, THIS GUYS EGGS HAVE BEEN PLACED
PNOMOVE EQU 03D0H ;UHW IF <> 0, THEN DON'T ALLOW HAND MOVEMENT
PNODRAW EQU 03E0H ;UHW IF <> 0, THEN DON'T ALLOW BONE DRAWING
PJOYESC EQU 03F0H ;UHW FLAG TO SHOW JOYSTICK MOVEMENT
PSWITCHESC EQU 0400H ;UHW FLAG TO SHOW BUTTON ACTION
PDINOSTOP EQU 0410H ;UHW IF <> 0, THEN STOP THIS GUYS DINO
PINSTRUCT EQU 0420H ;UHW IF <> 0, THEN DINO IS IN INSTRUCTIONAL MODE
PBONEHIT EQU 0430H ;UHW IF <> 0, THEN DINO HIT A BONE IN INSTRUCTIONS
PSTARTS EQU 0440H ;UHW # OF STARTS THIS GAME
*endstruct
**************************************************************************
* *
* MOVE MAP ENTRY *
* *
**************************************************************************
*struct MOVEENTRY
MOVEPOS EQU 0 ;UHL POSITION OF THIS MOVE POINT (32)
MOVEREL EQU 20H ;START OF MOVE RELATIONSHIPS
MOVEUP EQU 20H ;UHW NEXT UP (16)
MOVEDN EQU 30H ;UHW NEXT DOWN (16)
MOVELF EQU 40H ;UHW NEXT LEFT (16)
MOVERT EQU 50H ;UHW NEXT RIGHT (16)
MOVEUL EQU 60H ;UHW NEXT UP/LEFT (16)
MOVEUR EQU 70H ;UHW NEXT UP/RIGHT (16)
MOVEDL EQU 80H ;UHW NEXT DOWN/LEFT (16)
MOVEDR EQU 90H ;UHW NEXT DOWN/RIGHT (16)
MOVETYPE EQU 0A0H ;UHB TYPE(0=H,1=V,2=THRU,FF=NOT VALID) (8)
MOVEPLYR EQU 0A8H ;UHB WALL OF PLAYER # (0-3,FF=UNOCCUPIED)(8)
MOVEDSRCH EQU 0B0H ;UHB DINO SEARCH FLAG, 0=NOT CHECKED (8)
MOVERES1 EQU 0B8H ;UHB RESERVED (8)
MOVECPTR EQU 0C0H ;UHL PTR TO CORRESPONDING CENTER MOVE (32)
MOVEAPTR EQU 0E0H ;UHL PTR TO CORRESPONDING AUXILARY MOVE (32)
MOVEEPTR EQU 100H ;UHL PTR TO CORRESPONDING EXIT MOVE (32)
*endstruct
**************************************************************************
* *
* CENTER POINT LIST ENTRY *
* *
**************************************************************************
*struct CMOVEENTRY
CMOVEPOS EQU 0H ;UHL POSITION OF THIS CENTER MOVE POINT
CMOVEEGG EQU 20H ;UHB PLAYER EGG # ON THIS POINT (FF = UNOCC)
CMOVETROG EQU 28H ;UHB TROG OBSTRUCTION
CMOVEMPTR EQU 30H ;UHL PTR TO CORRESPONDING MOVE
*endstruct
*
*PALETTE ENTRY DATA STRUCTURE
*struct PALETTE
PALID .SET 0 ;UHL PALETTE I.D.
PALCNT .SET 32 ;UHW PALETTE ALLOCATION COUNT
*endstruct