home *** CD-ROM | disk | FTP | other *** search
- #define PRP_SURFACE 0
- #define PRP_BRUSH PRP_SURFACE + 1
- #define PRP_WRAP PRP_BRUSH + 1
- #define PRP_STENCIL PRP_WRAP + 1
- #define PRP_TEXTURE PRP_STENCIL + 1
- #define PRP_MATTER PRP_TEXTURE + 1
- #define PRP_INDEX PRP_MATTER + 1
- #define PRP_SHINY PRP_INDEX + 1
- #define PRP_HARD PRP_SHINY + 1
- #define PRP_BLEND PRP_HARD + 1
- #define PRP_SMOOTH PRP_BLEND + 1
- #define PRP_SHADE PRP_SMOOTH + 1
- #define PRP_PHONG PRP_SHADE + 1
- #define PRP_GLOSSY PRP_PHONG + 1
- #define PRP_QUICK PRP_GLOSSY + 1
- #define PRP_EXTERN PRP_QUICK + 1
-
- #define NUM_OBJ_PROPS (PRP_EXTERN + 1)
-
- #define Z_WRAP 0x02
- #define X_WRAP 0x01
-
- #define ABS_TRA 0x0001
- #define ABS_ROT 0x0002
- #define ABS_SCL 0x0004
- #define LOC_TRA 0x0010
- #define LOC_ROT 0x0020
- #define LOC_SCL 0x0040
- #define X_ALIGN 0x0100
- #define Y_ALIGN 0x0200
- #define Z_ALIGN 0x0400
- #define FOLLOW_ME 0x1000
-
- typedef struct story {
- UBYTE Path[18]; /* 18 bytes */
- VECTOR Translate; /* 12 bytes */
- VECTOR Rotate; /* 12 bytes */
- VECTOR Scale; /* 12 bytes */
- UWORD info; /* 2 bytes */
- } STORY; /* 56 bytes total */
-
- typedef struct tforms {
- UBYTE Load[80]; /* 80 bytes */
- VECTOR Position; /* 12 bytes */
- VECTOR Size; /* 12 bytes */
- MATRIX Alignment; /* 36 bytes */
- } TFORM; /* 140 bytes total */
-
- typedef struct barfu {
- UWORD Shape; /* 2 bytes */
- UWORD Lamp; /* 2 bytes */
- struct object *Parent; /* 4 bytes */
- ULONG Number; /* 4 bytes */
- VECTOR Position; /* 12 bytes */
- VECTOR A; /* 12 bytes */
- VECTOR B; /* 12 bytes */
- VECTOR C; /* 12 bytes */
- VECTOR S; /* 12 bytes */
- } SUBOBJ, *SUBPTR; /* 72 bytes total */
-
- typedef struct object {
- struct object *Parent; /* 4 bytes */
- struct object *Child; /* 4 bytes */
- struct object *Older; /* 4 bytes */
- struct object *Younger; /* 4 bytes */
- STORY *Story; /* 4 bytes */
- SUBOBJ Object; /* 72 bytes */
- UBYTE Props [NUM_OBJ_PROPS]; /* 16 bytes */
- UBYTE Name [18]; /* 18 bytes */
- UWORD PCount; /* 2 bytes */
- UWORD ECount; /* 2 bytes */
- ULONG TCount; /* 2 bytes */
- VECTOR *Points; /* 4 bytes (12 bytes) */
- UWORD *Edges; /* 4 bytes ( 8 bytes) */
- UWORD *Connects; /* 4 bytes (12 bytes) */
- SUBOBJ *Subjects; /* 4 bytes (68 bytes) */
- UWORD *Enumer; /* 4 bytes ( 2 bytes) */
- VECTOR *Phongs; /* 4 bytes (12 bytes) */
- COLOR *DList; /* 4 bytes ( 3 bytes) */
- COLOR *RList; /* 4 bytes ( 3 bytes) */
- COLOR *TList; /* 4 bytes ( 3 bytes) */
- float Intensity; /* 4 bytes */
- ULONG Diffuse; /* 4 bytes */
- ULONG Reflect; /* 4 bytes */
- ULONG Transmit; /* 4 bytes */
- float Params [16]; /* 64 bytes */
- TFORM *Transform; /* 4 bytes */
- } OBJECT, *OBJPTR; /* 252 bytes total */
-
- typedef struct tale {
- struct tale *Next; /* 4 bytes */
- OBJECT *Affects; /* 4 bytes */
- OBJECT *Causes; /* 4 bytes */
- OBJECT *Follows; /* 4 bytes */
- STORY Story; /* 44 bytes */
- MATRIX Align; /* 36 bytes */
- UWORD IsLoop; /* 2 bytes */
- UWORD LoopEdge; /* 2 bytes */
- } TALE; /* 96 bytes total */
-
- typedef struct scanner {
- struct scanner *Prev; /* 4 bytes */
- struct scanner *Next; /* 4 bytes */
- VECTOR P; /* 12 bytes */
- VECTOR dP; /* 12 bytes */
- SUBPTR Owner; /* 4 bytes */
- long cnt; /* 4 bytes */
- } SCAN, *SCANPTR; /* 40 bytes total */
-