482 lines
16 KiB
C
482 lines
16 KiB
C
**************************************************************************
|
||
* *
|
||
* GENERATION X - DISPLAY EQUATE FILE *
|
||
* *
|
||
* COPYRIGHT (C) 1992 MIDWAY MANUFACTURING COMPANY. *
|
||
* ALL RIGHTS RESERVED. *
|
||
* *
|
||
**************************************************************************
|
||
|
||
BOGUS_SCL .set [800h,800h] ; bogus scale to fool SCALE_MAMA
|
||
|
||
|
||
WIDESCREEN .EQU 0 ;SET SCREEN 512 PIX INSTEAD OF 400
|
||
|
||
MAX_UNI .set 5 ; maximum number of universes which can be stacked
|
||
|
||
; LINKED LIST LAYOUT
|
||
|
||
MAP_IMG .EQU 0 ; low order bits determine whether
|
||
; this is img (0x0), seq (0x1), damage (1xx)
|
||
; or delayed seq (x1x), use MAP_SPAREL1 (1xxx)
|
||
MAP_X .EQU 20h ; Universe position
|
||
MAP_Y .EQU 40h
|
||
MAP_Z .EQU 60h
|
||
MAP_FLAGS .EQU 80h ; see below
|
||
MAP_ID .equ 90h
|
||
MAP_OBJ .EQU 0a0h ; if hi bit set, obj not created (lo 4 bits = damage count)
|
||
MAP_PREV .EQU 0c0h ; for list sorted in Z
|
||
MAP_NEXT .EQU 0e0h ; for list sorted in Z
|
||
MAP_SPAREL1 .equ 100h
|
||
|
||
BLOCK_SIZE .EQU 120h ;RAM BLOCK SIZE
|
||
|
||
|
||
B_IF_LAST .SET 3
|
||
B_IF_DAM .set 2
|
||
B_IF_DANIM .set 1
|
||
B_IF_SEQ .set 0
|
||
|
||
M_IF_LAST .SET 8
|
||
M_IF_DAM .set 4
|
||
M_IF_DANIM .set 2
|
||
M_IF_SEQ .set 1
|
||
|
||
|
||
**** MAP_FLAGS LAYOUT
|
||
*
|
||
* 15 14 13 12 11 10-6 5 4 3 2 1 0
|
||
* ENEMY/NOVEC/PORTAL/NOPXSCN/ONEUSE/OIDTYP/FLIPH/FLIPV/GRND/BLK/DBLSCL/NOSCALE
|
||
*
|
||
****
|
||
; NOTE: NOPXSCN, DBLSCL and NOSCALE are transferred directly to OFLAGS
|
||
|
||
|
||
;DON'T CHANGE "B_BF_ENEMY" OKAY! -dozer
|
||
B_BF_ENEMY EQU 15
|
||
B_BF_NOVECT EQU 14
|
||
B_BF_PORTAL EQU 13
|
||
B_BF_ONEUSE EQU 11
|
||
|
||
B_BF_ID EQU 6 ; local ID for univ piece
|
||
|
||
B_BF_GROUND EQU 3
|
||
B_BF_BLOCK EQU 2
|
||
|
||
M_BF_ENEMY EQU 08000H
|
||
M_BF_NOVECT EQU 04000H
|
||
M_BF_PORTAL EQU 02000H
|
||
M_BF_NOPXSCN EQU 01000H
|
||
M_BF_ONEUSE EQU 0800H
|
||
|
||
M_BF_ID EQU 007C0H ; local ID for univ piece
|
||
|
||
M_BF_GROUND EQU 00008H
|
||
M_BF_BLOCK EQU 00004H
|
||
|
||
PU_ZPORTAL .set 0
|
||
PU_BGHEAD .set 20h
|
||
PU_YBASE .set 40h
|
||
PU_XBASE .set 60h
|
||
PU_YWORLD .set 80h
|
||
PU_ZBASE .set 0a0h
|
||
PU_YHALF .set 0c0h
|
||
PU_ZFAR .set 0e0h
|
||
PU_SKYCOL .set 100h
|
||
PU_GNDCOL .set 110h
|
||
PU_XPORTAL .set 120h
|
||
PU_YPORTAL .set 140h
|
||
PU_XSACCEL .set 160h
|
||
PU_YSACCEL .set 180h
|
||
PU_ZSACCEL .set 1a0h
|
||
PU_XSCROLL .set 1c0h
|
||
PU_YSCROLL .set 1e0h
|
||
PU_ZSCROLL .set 200h
|
||
PU_YOFF .set 220h
|
||
PU_ZOFF .set 240h
|
||
|
||
UNIV_STK_SIZ .set 260h
|
||
|
||
|
||
*********************************************
|
||
* MultiMake Option Flags *
|
||
*********************************************
|
||
OM_GUNV .set 1 ; A Gunvector follows (OBJECT)
|
||
OM_COLL .set 2 ; A Collision vector follows (OBJECT, WHOLE)
|
||
OM_ANIM .set 4 ; An animation script follows (OBJECT)
|
||
OM_CFUNC .set 8 ; A creation function follows (OBJECT)
|
||
OM_POS .set 10h ; A position is supplied (WHOLE)
|
||
OM_WPOS .set 30h ; it's a world position (WHOLE)
|
||
OM_SPOS .set 50h ; it's a screen position (WHOLE)
|
||
OM_GRND .set 80h ; the world position is relative to ground.
|
||
OM_OID .set 100h ; An OID follows (OBJECT)
|
||
OM_DUMCOLL .set 200h ; Use DUMCOLL as default (instead of 0)
|
||
OM_PRVANIM .set 400h ; Use the previously set Animation Script
|
||
OM_INSERT .set 800h ; call INSERT_OBJ upon completion
|
||
OM_OPARTS .set 1000h ; Supply an OPARTSX and Y for this object.
|
||
OM_PRVGUNV .set 2000h ; Use the previously set Gun Vector.
|
||
|
||
*
|
||
* ROADFLG defines !!! ADDED 8/24/92
|
||
*
|
||
RD_INCURV .set 40h
|
||
RD_INHILL .set 80h
|
||
RD_INFORK .set 20h
|
||
RD_INGRSH .set 10h
|
||
RD_FRK_LFT .set 2 ; left exit ramp
|
||
RD_FRK_RT .set 1 ; right exit ramp
|
||
RD_FRK_BOTH .set 3 ; fork both left and right
|
||
RD_B_FRKLFT .set 1
|
||
RD_B_FRKRT .set 0
|
||
|
||
RD_B_INCURV .set 6
|
||
RD_B_INHILL .set 7
|
||
RD_B_INFORK .set 5
|
||
RD_B_INGRSH .set 4
|
||
|
||
|
||
SCRTOP EQU 0 ;set to line after static top area
|
||
SCRBOT EQU 253
|
||
SCRLFT EQU 0
|
||
|
||
.IF WIDESCREEN
|
||
SCRRGT EQU 511
|
||
.ELSE
|
||
SCRRGT EQU 399
|
||
.ENDIF
|
||
|
||
SCALE_1TO1 .EQU 01000100H ;1 TO 1 SCALE FOR DMA.
|
||
|
||
CIRC_MASK .set 100bff0h ; for ROADX and ROADY
|
||
ROADOFFX .set 1000000h ; 1K circular word buffer
|
||
ROADOFFY .set 1008000h ; 1K circular word buffer
|
||
|
||
DEFAULT_WXBUFFER .EQU 56*08000H ;DEFAULT WORLD X BUFFER FOR UNIVERSE CHECK
|
||
DEFAULT_WYBUFFER .EQU 56*08000H ;DEFAULT WORLD Y BUFFER FOR UNIVERSE CHECK
|
||
|
||
.IF WIDESCREEN
|
||
HALFX .EQU 255 ;3-D TRANSLATION X-OFFSET
|
||
.ELSE
|
||
HALFX .EQU 199 ;3-D TRANSLATION X-OFFSET
|
||
.ENDIF
|
||
|
||
ZMAX .EQU 05800H ;Z of bottom line of road
|
||
ZMAX_REAL .EQU 03200H ;Closest Z allowed
|
||
ZMAX_REAL2 .EQU 04000H ;Closest Z allowed FOR DOUBLE SCALE OBJECTS
|
||
ZMAX_KLUDGE .EQU ZMAX_REAL-0800H ;ACTUAL CLOSEST Z ALLOWED
|
||
|
||
Z2INDX .equ 9 ; bits to shift to turn ZPOS into table index
|
||
Z2SCALE .equ 7 ; bits to shift to turn ZPOS into scale
|
||
ZFRAC .equ 6 ; bits to shift to get from Hires Z to norm Z
|
||
|
||
LEFT_WORLDX EQU (SCRLFT-HALFX)*ZMAX_REAL ;SCREEN X=0 @ Z=ZMAX_REAL
|
||
RGHT_WORLDX EQU -LEFT_WORLDX
|
||
|
||
SLL_SHADOW .EQU 2 ;Additional Y shrink for shadows
|
||
|
||
SIZYMINTBL .set 200h ; for hills
|
||
|
||
*VARS
|
||
.GLOBL FGLIST, BGLISTS, OFREE, ENDOFREE, ANIOBJS, ANIFUNCS
|
||
.GLOBL BGPLANECT, OFREECNT, OBJSTR
|
||
.GLOBL SCRNTL, SCRNBR
|
||
.GLOBL DMAQCUR, DMAQ, QDMAFLG
|
||
.GLOBL DISPLAYON, DMAIQSTR
|
||
.GLOBAL SUPPLSTS, SUPPLSTSX
|
||
|
||
*FUNCS ******* UPDATE DISP.DOC WITH NEW FUNCTIONS !!!!!! ********************
|
||
.GLOBL DMAINT, DISPNEXT_FG, CLRDMAQ
|
||
.GLOBL ANIMP, ANI, ANINP
|
||
.GLOBL GET_SCALED_SIZE
|
||
.GLOBL SETANIOF0, SETANIOF, SETOPARTSXY, SET_OPARTSXY, MATCHOPARTSXY
|
||
.GLOBL DISPLAY, QDMA, QDMAN, QDMA2, QDMAN2, YZSORT
|
||
.GLOBL FINDOID
|
||
.GLOBL OINIT, CkOFREE, IsAnObj, GETOBJ
|
||
.GLOBL INSBOBJ, REINSBOBJ
|
||
.GLOBL INSERT_OBJ, INSOBJ, INSERT_ON_OBJ, PULL_OBJ, PULLOBJ
|
||
.GLOBL DELETE_OBJ, ZAP_OBJ
|
||
.GLOBL DELOBJ, FREEOBJ, FREEGOBJ, ZAPOBJ
|
||
.GLOBL DELSHAD, PULLSHAD, GET_SHAD
|
||
.GLOBL FPSTFOBJ0, STFOBJ0, MULTIMAKE, CREATE_OBJ
|
||
.GLOBL C_GETPRC, C_ANIM, C_STRTANIM
|
||
.GLOBL CNTRANIP, GETANIXY, GETANIXYL
|
||
.GLOBL GETANIXL, GETANIX, GETANIYL, GETANIY
|
||
.GLOBL GETANIP, GET_ANIP, SETANIP, SET_ANIP, MATCHANIP
|
||
.GLOBL GETOFFP, GET_OFFP, SETOFFP, SET_OFFP, MATCHOFFP
|
||
.GLOBL SET_ANIXP, SET_ANIYP, SetOnGrnd
|
||
.GLOBL SETOBJS, SET_OBJS, SET_FLPS, TOGGLE_FLPS, SET_FLIP, TOGGLE_FLIP
|
||
.GLOBL INITPART, CNTMPART, INSPART, CkMPART1, CkMPART
|
||
.GLOBL PULL_PART, PULLPART, PULL_PART1, FINDPART, EXIST_PART
|
||
.GLOBL GANIOF, GARBOF, SetArbP
|
||
.GLOBL STFANIM, STRTANIM, STRT_ANIM, INSANIM, CKINSANI
|
||
.GLOBL PULL_ANIM, PULLANIM, CkAnim, OnAnim, CKPULLANIM
|
||
.GLOBL GETSUPP, GET_SUPP, INSSUPP, INSERT_SUPP, PULLSUPP, PULL_SUPP
|
||
.GLOBL CNTSUPP
|
||
.GLOBL OBJ_OFF, OBJ_ON, IS_OBJ_OFF, SCREXP32, COPY_OBJ, OBJON, OBJ_CONST
|
||
.GLOBAL CLEAR_OPLINKS, STOPOBJS, OBJ_TO_PNT
|
||
.GLOBAL STORE_ZVAL, STORE_ZVALH, KILOBJ, KILOBJ_ALL, SCRTST
|
||
.GLOBAL EXISTOBJ, OBJTOPNT, STOPOBJS, CLR_VEL, STOPOBJ, CLRVEL, EXISTOBJ_ALL
|
||
.GLOBAL GET_ANIP_SCRNREL, GET_SCRNREL, MAKE_SCRNREL
|
||
.GLOBAL MAKE_WORLDREL, MAKEWORLDREL, PNT_WORLDREL, GETANIP_SCRNREL
|
||
.GLOBAL A_GOTO, GETAFARG_WORD, GETAFARG_LONG
|
||
.GLOBAL CLR_ODATA, SET_ONGRND, DIST_FROM_GROUND, CREATE_COPY
|
||
.GLOBAL PULL_ANIM_ALL, PULL_ANIM_MULTI
|
||
.GLOBAL A_AnimScr, A_AnimFrm, A_AnimGo
|
||
.GLOBAL CLRODATA, GET_HEAD_PART, ADD_OFF2ANIP
|
||
.GLOBAL A_CHANGE_OID, CHANGE_OID, CHANGE_OIDS
|
||
.GLOBAL A_CLR_GUNVECT, GET_HEAD_PART_A0, OBJOFF, CHANGEOID
|
||
.GLOBAL STOREZVAL, COUNT_HEADS, FIND_HEAD
|
||
.GLOBAL OBJ_OFF_MULTI, OBJ_ON_MULTI
|
||
.GLOBAL OBJECTS_ON, OBJECTS_OFF
|
||
.GLOBAL SET_OPLANE, STOREOPLANE, STORE_OPLANE, INSPLANE
|
||
.GLOBAL GET_BPLANE, SETPLANE_BB, OBJWNZ, OBJ_WNZ, OBJ_ON_WNZ
|
||
.GLOBAL DELETE_SHADOW, CLEAR_ANIMS, CREATE_MULTI_COPY, EXIST_OBJ
|
||
.GLOBAL RESUME_EXIST_OBJ
|
||
|
||
***CONSTANTS
|
||
MAXPLANES EQU 15
|
||
|
||
|
||
*EQUATES FOR SCORE AREA
|
||
SKYTOPOF .EQU 32
|
||
SCORDPYS .EQU 0FFFFFEDCH ;DPYSTRT VALUE FOR HIDING THE SCORE
|
||
SCORE_HEIGHT .EQU SKYTOPOF ;HEIGHT OF SCORE AREA
|
||
|
||
SCRNST .EQU [SCRTOP+SCORE_HEIGHT,SCRLFT] ;TOP LEFT W/SCORE AREA
|
||
SCRNST_FULL .EQU [SCRTOP,SCRLFT] ;TOP LEFT WITH NO SCORE AREA
|
||
SCRNEND .EQU [SCRBOT,SCRRGT] ;BOT RIGHT OF SCREEN (for SCRNBR, clipper)
|
||
SCRWIDTH .EQU SCRRGT-SCRLFT+1
|
||
SCRHGHT .EQU SCRBOT-SCRTOP+1
|
||
SCRNMID .EQU [(SCRBOT+SCRTOP+1)/2,(SCRRGT+SCRLFT+1)/2] ;MIDPOINT OF SCREEN
|
||
SCRNXMID .EQU (SCRRGT+SCRLFT+1)/2
|
||
SCRNYMID .EQU (SCRBOT+SCRTOP+1)/2
|
||
|
||
*
|
||
*NEW OBJECT BLOCK INITIALIZATION TABLE
|
||
NEWIIMG .EQU 0
|
||
NEWICVEC .EQU 20H
|
||
NEWIOID .EQU 40H
|
||
NEWIFLAG .EQU 50H
|
||
NEWIFLAG2 .EQU 60H
|
||
NEWICFUNC .EQU 70H
|
||
|
||
SHADID .EQU 00FFFH ;SHADOWS ARE HIGH PRI
|
||
|
||
;* PLANE TABLE STRUCT
|
||
*STRUCT PLANE
|
||
P_LSTHD EQU 0 ;UHL ptr to head of OBJECT LIST
|
||
P_LSTTL EQU 020H ;UHL ptr to tail of OBJECT LIST
|
||
P_XPOS EQU 040H ;UHL World Top Left X of OBJECT LIST
|
||
P_YPOS EQU 060H ;UHL World Top Left Y
|
||
P_XYOFF EQU 080H ;UHL Y:X integer temporary offset for shaking
|
||
P_XRATE EQU 0A0H ;UHL SCROLLX multiplier for plane
|
||
P_FLAGS EQU 0C0H ;UHW Flag bits for plane
|
||
*ENDSTRUCT
|
||
PLNSIZ EQU 0D0H ;size of PLANE STRUCTURE
|
||
|
||
P_M_NOSHAKE EQU 1 ;NO SHAKE THIS PLANE..
|
||
P_B_NOSHAKE EQU 0
|
||
|
||
;**** LSTHD, LSTTL offsets above must match OLINK, OBLINK offset of OBJ ****
|
||
|
||
;*OBJECT BLOCK LAYOUT
|
||
*STRUCT OBJ
|
||
OLINK EQU 00H ;UHL Link to next object block
|
||
OBLINK EQU 020H ;UHL Back Link to previous obj
|
||
OSLINK EQU 040H ;UHL Supplemental lists (OID class)
|
||
OSHAD EQU 060H ;UHL ptr to shadow
|
||
OPLINK EQU 080H ;UHL Link to controlling process
|
||
OCVECT EQU 0A0H ;UHL vector to collision table
|
||
OGUNVECT EQU 0C0H ;UHL vector to gun collision handler
|
||
OPART1 EQU 0E0H ;UHL ptr to head of multi-part obj
|
||
OPARTS EQU 0100H ;UHL linked list of multi-parts
|
||
OZVEL EQU 0120H ;SHL Z VELOCITY
|
||
OXVEL EQU 0140H ;SHL X VELOCITY
|
||
OYVEL EQU 0160H ;SHL Y VELOCITY
|
||
OXVAL EQU 0180H ;SHL BIT X POSITION
|
||
OXFRAC EQU 0180H ; Fractional portion of X position
|
||
OXPOS EQU 0190H ; Integer portion of X position
|
||
OYVAL EQU 01A0H ;SHL BIT Y POSITION
|
||
OYFRAC EQU 01A0H ; Fractional portion of Y position
|
||
OYPOS EQU 01B0H ; Integer portion of Y position
|
||
OZVAL EQU 01C0H ;SHL Z POSITION
|
||
OZFRAC EQU 01C0H ; Fractional portion of Z position
|
||
OZPOS EQU 01D0H ; INTEGER Z position of object
|
||
OPARTSXY EQU 01E0H ;UHL multi part position offset
|
||
; ----> OANIOFF IS SCALED
|
||
OANIOFF EQU 0200H ;UHL ADJUSTED ANIMATION OFFSET
|
||
OANIOFFX EQU 0200H ; X ANIMATION OFFSET FROM TOP LEFT ADJUSTED FOR FLIP
|
||
OANIOFFY EQU 0210H ; Y ANIMATION OFFSET FROM TOP LEFT ADJUSTED FOR FLIP
|
||
; From OFSET to OSCALE, DO NOT CHANGE ORDER!
|
||
; (used for mass register input to clip loop)
|
||
OFSET EQU 0220H ;UHW PRECOMPUTED OFFSET
|
||
OCTRL EQU 0230h ;UHW DMA #2 CONTROL WORD
|
||
OSAG EQU 0240H ;UHL SOURCE ADDRESS (UNCLIPPED, ADJUSTED FOR FLIPS)
|
||
ODAG EQU 0260h ;UHL Screen Pos (saved as intermediate step in DISPLAY! NEW)
|
||
ODAGX EQU 0260H
|
||
ODAGY EQU 0270H
|
||
OUSIZE EQU 0280h ;UHL DMA #2 UNSCALED SIZE
|
||
OUSIZEX EQU 0280h ; X-SIZE
|
||
OUSIZEY EQU 0290h ; Y-SIZE
|
||
; ----> OSIZE IS SCALED
|
||
OSIZE EQU 02a0H ;UHL H,W OF OBJECT (16,16) W=ADJUSTED FOR MORSEL
|
||
OSIZEX EQU 02a0H ; X SIZE
|
||
OSIZEY EQU 02b0H ; Y SIZE
|
||
OPAL EQU 02c0H ;UHW B(0-15) PALETTE; B(16-31) CONSTANT COLOR
|
||
OCONST EQU 02d0H ; CONSTANT COLOR
|
||
OSCALE EQU 02e0h ;UHL DMA #2 SCALE
|
||
OSCALEX EQU 02e0h ; X-SCALE
|
||
OSCALEY EQU 02f0h ; Y-SCALE
|
||
OIMG EQU 0300H ;UHL Pointer to image data table
|
||
ONuManScl EQU 0320H ;UHW New scale for manually scaled imgs
|
||
;OTIME EQU 0320H ;UHW TIME of creation
|
||
OYACCEL EQU 0330H ;UHW just the fraction for Grav
|
||
OGRNDOFF EQU 0340H ;SHL WORLD Y OFFSET
|
||
OZDEPTH EQU 0360H ;UHL OBJECT'S Z DEPTH [FRONT DEPTH, REAR DEPTH]
|
||
OZREAR EQU 0360H ;UHW REAR Z DEPTH
|
||
OZFRNT EQU 0370H ;UHW FRONT Z DEPTH
|
||
OVAR1 EQU 0380H ;UHL # OVARS scratch space for system routines
|
||
OVAR2 EQU 03a0H ;UHL #
|
||
OVAR3 EQU 03c0H ;UHL #used by
|
||
OVAR4 EQU 03e0H ;UHL # ANIM
|
||
OVAR5 EQU 0400H ;UHL @used by
|
||
OVAR6 EQU 0420H ;UHL @ FlashWyt
|
||
OVAR7 EQU 0440H ;UHL 2nd byte used for MULTI-PART Z alignment (OZOFF)
|
||
OVAR8 EQU 0460H ;UHL used as AnimArg
|
||
OVAR9 EQU 0480H ;UHL #USED FOR PLAYER DATA AREA PTR (OPLAYER)
|
||
OFLAGS EQU 04a0H ;UHW General purpose flags
|
||
OID EQU 04b0H ;UHW Object ID
|
||
OUANIOFF EQU 04c0h ;UHL UNSCALED ANIMATION OFFSET
|
||
OUANIOFFX EQU 04c0h ; X ANIMATION OFFSET FROM TOP LEFT ADJUSTED FOR FLIP
|
||
OUANIOFFY EQU 04d0h ; Y ANIMATION OFFSET FROM TOP LEFT ADJUSTED FOR FLIP
|
||
OIHOFF EQU 04e0h ;UHW OFFSET TO IMAGE HEADER
|
||
ONOT_SORTED EQU 04f0h ;UHW If <> 0, then object is out of order
|
||
ODATA EQU 0500h ; SCRATCH SPACE FOR USER ROUTINES
|
||
ODATAX EQU 0700H ; = 0500H + 0200H
|
||
*ENDSTRUCT
|
||
OBSIZ EQU ODATAX ;Object Block Size
|
||
OCLRSIZ EQU ODATA ;GETOBJ WILL CLEAR UPTO AND NOT INCLUDING HERE
|
||
|
||
NOBJ EQU 600
|
||
|
||
***** MISCELLANEOUS OFFSETS
|
||
;**** OFFSETS for ANIM
|
||
*STRUCT ANIM+OBJ
|
||
AnimNxt EQU OVAR1 ;UHL link to next obj of Animy linked list
|
||
AnimFrm EQU OVAR2 ;UHL ptr to current animation frame
|
||
AnimScr EQU OVAR3 ;UHL ptr to animation script
|
||
AnimSLP EQU OVAR4 ;UDB reset value for AnimSlp
|
||
AnimSlp EQU OVAR4+8 ;UDB # tiks before next ANI
|
||
AnimLoop EQU OVAR4+16 ;UDB General purpose Loop counter
|
||
AnimOpen EQU OVAR4+24 ;UDB reserved for future definition (keep cleared)
|
||
*ENDSTRUCT
|
||
AnimRetScr EQU OVAR5 ;UHL ANIMATION RETURN SCRIPT
|
||
AnimRetFrm EQU OVAR6 ;UHL ANIMATION RETURN FRAME
|
||
OPARTID EQU OVAR7 ;UHB # of part in multi-parter, stuffed by MULTIMAKE
|
||
OZOFF EQU OVAR7+8 ;UHB Z OFFSET
|
||
AnimArg EQU OVAR8 ;stuffed by AnimP for use by GETAFARG_xxxx
|
||
OPLAYER EQU OVAR9
|
||
|
||
;*** ANIFLY SCRIPT FLAGS ***
|
||
AFlip EQU 08000H ;flip bits in aniscript flag
|
||
Axxxxxx EQU 04000H ;unused
|
||
AMulti EQU 02000H ;animate down multi-parter list?
|
||
AFunc EQU 01000H ;call function in aniscript flag
|
||
|
||
;*** BITS SET IN FLAGS:SLEEP WORD OF AN ANIM SCRIPT ***
|
||
B_AFlip EQU 15 ;WARNING don't move, tested w/ jrnn in AnimP (gxc)
|
||
B_xxxxxx EQU 14
|
||
B_AMulti EQU 13
|
||
B_AFunc EQU 12
|
||
|
||
BQCELL EQU 0B0H ;SIZE OF DMA QUEUE ELEMENT
|
||
|
||
***********************
|
||
* Values for OCTRL *
|
||
***********************
|
||
M_WRZERO EQU 00001H ;Write Zero Data
|
||
M_WRNONZ EQU 00002H ;Write Non-Zero Data
|
||
M_CONZER EQU 00004H ;Replace Zero Data with constant
|
||
M_CONNON EQU 00008H ;Replace Non-Zero Data with constant
|
||
M_CONST EQU 0000CH ;any constant data replacement
|
||
M_FLIPH EQU 00010H ;Flip Horizontally
|
||
M_FLIPV EQU 00020H ;Flip Vertically
|
||
M_LRCLIP EQU 00040H ;left right clipping using the offset register
|
||
M_COMPRESS EQU 00080H ;zero compression
|
||
M_INUSE EQU 08000H ;obj not on free list
|
||
|
||
*BIT POSITIONS FOR OCTRL
|
||
B_WRZERO EQU 0
|
||
B_WRNONZ EQU 1
|
||
B_CONZER EQU 2
|
||
B_CONNON EQU 3
|
||
B_FLIPH EQU 4
|
||
B_FLIPV EQU 5
|
||
B_LRCLIP EQU 6
|
||
B_COMPRESS EQU 7
|
||
B_INUSE EQU 15
|
||
|
||
***********************
|
||
* Values for OFLAGS *
|
||
***********************
|
||
M_NOSCALE EQU 00001H ;NO AUTO SCALING (or controls RESCALING if MANSCALE)
|
||
M_DBLSCL EQU 00002H ;DOUBLE scale for sizes defined at half size
|
||
M_BNODEL EQU 00004H ;do not pull BGND from list
|
||
M_NODISP EQU 00008H ;DO NOT DISPLAY THIS OBJECT!
|
||
M_NOSHADOW EQU 00010H ;Shadows not allowed for this object.
|
||
M_MANSCALE EQU 00020H ;MANUAL SCALING (You set scale, sizes computed when M_NOSCALE clr)
|
||
M_NOPARTANI EQU 00040H ;IF IN MULTI-SCRIPT, THEN DON'T ANIMATE
|
||
;DON'T EVEN THINK ABOUT CHANGIN' M_OFSCRN OR ELSE - dozer
|
||
M_OFSCRN EQU 00080H ;if 1, VELADD has marked as OFF SCREEN
|
||
M_SHAD EQU 00100H ;IF=1 OBJECT IS A SHADOW OBJ
|
||
M_OPARTSXY EQU 00200H
|
||
M_DEAD EQU 00400H
|
||
M_GCOLL EQU 00800H
|
||
M_NOPIXSCAN EQU 01000H
|
||
M_NOCOLL EQU 02000H ;Don't do regular collisions...
|
||
M_ANIM EQU 04000H ;set if on ANIFLY list
|
||
M_SCRNOBJ EQU 08000H ;SCREEN OBJECT
|
||
|
||
*BIT POSITIONS FOR OFLAGS
|
||
B_NOSCALE EQU 0
|
||
B_DBLSCL EQU 1 ;DOUBLE scale
|
||
B_MASTER EQU 2
|
||
B_BNODEL EQU 2
|
||
B_NODISP EQU 3
|
||
B_NOSHADOW EQU 4 ;Shadows not allowed for this object.
|
||
B_MANSCALE EQU 5 ;MANUAL SCALING (You set scale, sizes computed automatically)
|
||
B_NOPARTANI EQU 6
|
||
;DON'T EVEN THINK ABOUT CHANGIN' B_OFSCRN OR ELSE - dozer
|
||
B_OFSCRN EQU 7
|
||
B_SHAD EQU 8
|
||
B_OPARTSXY EQU 9 ;USE OPARTSXY FIELD INSTEAD OF OANIOFF FOR OFFSET
|
||
B_DEAD EQU 10 ;IF <> 0, THIS PART IS CONSIDERED DEAD
|
||
B_GCOLL EQU 11 ;IF=1 GROUND SCAN
|
||
B_NOPIXSCAN EQU 12 ;IF=1 DO NOT PIXEL SCAN THIS OBJECT
|
||
B_NOCOLL EQU 13
|
||
B_ANIM EQU 14
|
||
B_NOWORLD EQU 15
|
||
B_SCRNOBJ EQU 15 ;SCREEN OBJECT
|
||
|
||
|
||
;UNIVERSE DAMAGE FLAGS
|
||
|
||
B_ANIMSYNC EQU 0 ;OFFSET NEW ANIMATION TO SYNC WITH OLD
|
||
B_FLASHOBJ EQU 1 ;FLASH OBJECT CONSTANT COLOR #1
|
||
B_LASTFRM EQU 2 ;GO STRAIGHT TO LAST FRAME
|
||
B_NOMORE EQU 3 ;NO MORE DAMAGE FLAG
|
||
B_NEXTFRM EQU 4 ;GO TO NEXT FRAME
|
||
B_STAY EQU 5 ;STAY AT CURRENT DAMAGE FRAME
|
||
B_NOSTOPANIM EQU 6 ;DON'T STOP THE ANIMATION WHEN CHANGING TO A STATIC FRAME
|
||
B_RANDFRM equ 7 ;CHOOSE a frame at random
|
||
|
||
M_ANIMSYNC EQU 001H
|
||
M_FLASHOBJ EQU 002H
|
||
M_LASTFRM EQU 004H
|
||
M_NOMORE EQU 008H
|
||
M_NEXTFRM EQU 010H
|
||
M_STAY EQU 020H
|
||
M_NOSTOPANIM EQU 040H
|
||
M_RANDFRM equ 080h
|
||
|
||
|