e7eabd46b9
git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@1545 8092fc87-c524-0410-9efc-e669fe64eaf9
70 lines
2.3 KiB
C++
70 lines
2.3 KiB
C++
/* structure declarations for deluxe animate large page files */
|
|
|
|
|
|
typedef struct {
|
|
|
|
ULONG id; /* 4 character ID == "LPF " */
|
|
|
|
UWORD maxLps; /* max # largePages allowed. 256 FOR NOW. */
|
|
|
|
UWORD nLps; /* # largePages in this file. */
|
|
|
|
ULONG nRecords; /* # records in this file. 65534 is current limit plus */
|
|
/* one for last-to-first delta for looping the animation */
|
|
|
|
UWORD maxRecsPerLp; /* # records permitted in an lp. 256 FOR NOW. */
|
|
|
|
UWORD lpfTableOffset; /* Absolute Seek position of lpfTable. 1280 FOR NOW.
|
|
The lpf Table is an array of 256 large page structures
|
|
that is used to facilitate finding records in an anim
|
|
file without having to seek through all of the Large
|
|
Pages to find which one a specific record lives in. */
|
|
|
|
ULONG contentType; /* 4 character ID == "ANIM" */
|
|
|
|
UWORD width; /* Width of screen in pixels. */
|
|
UWORD height; /* Height of screen in pixels. */
|
|
UBYTE variant; /* 0==ANIM. */
|
|
UBYTE version; /* 0==frame rate is multiple of 18 cycles/sec.
|
|
1==frame rate is multiple of 70 cycles/sec. */
|
|
|
|
UBYTE hasLastDelta; /* 1==Last record is a delta from last-to-first frame. */
|
|
|
|
UBYTE lastDeltaValid; /* 0==The last-to-first delta (if present) hasn't been
|
|
updated to match the current first&last frames, so it
|
|
should be ignored. */
|
|
|
|
UBYTE pixelType; /* 0==256 color. */
|
|
|
|
UBYTE CompressionType; /* 1==(RunSkipDump) Only one used FOR NOW. */
|
|
|
|
UBYTE otherRecsPerFrm; /* 0 FOR NOW. */
|
|
|
|
UBYTE bitmaptype; /* 1==320x200, 256-color. Only one implemented so far. */
|
|
|
|
UBYTE recordTypes[32]; /* Not yet implemented. */
|
|
|
|
ULONG nFrames; /* In case future version adds other records at end of
|
|
file, we still know how many actual frames.
|
|
NOTE: DOES include last-to-first delta when present. */
|
|
|
|
UWORD framesPerSecond; /* Number of frames to play per second. */
|
|
|
|
UWORD pad2[29]; /* 58 bytes of filler to round up to 128 bytes total. */
|
|
} lpfileheader;
|
|
|
|
|
|
/* this is the format of an large page structure */
|
|
typedef struct {
|
|
UWORD baseRecord; /* Number of first record in this large page. */
|
|
|
|
UWORD nRecords; /* Number of records in lp.
|
|
bit 15 of "nRecords" == "has continuation from previous lp".
|
|
bit 14 of "nRecords" == "final record continues on next lp". */
|
|
|
|
UWORD nBytes; /* Total number of bytes of contents, excluding header. */
|
|
|
|
} lp_descriptor;
|
|
|
|
|