home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2000 May
/
Chip_2000-05_cd1.bin
/
sharewar
/
FFE
/
ANIM.SWG
/
0004_FLC.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1996-09-03
|
8KB
|
202 lines
--------a-FLC-------------------------------
The Animator Pro animation file is a good example of a hierarchial
chunked file structure. The data in an animation file is arranged as
follows:
animation file:
optional prefix chunk:
settings chunk
cel placement chunk
frame 1 chunk:
postage stamp chunk:
postage stamp data
color palette chunk
pixel data chunk
frame 2 chunk:
pixel data chunk
frame 3 chunk:
color palette chunk
pixel data chunk
frame 4 chunk:
color palette chunk
ring frame chunk:
color palette chunk
pixel data chunk
FLC - Animator Pro Flic Files
This is the main animation file format created by Animator Pro. The file
contains a 128-byte header, followed by an optional prefix chunk,
followed by one or more frame chunks.
The prefix chunk, if present, contains Animator Pro settings
information, CEL placement information, and other auxiliary data.
A frame chunk exists for each frame in the animation. In addition, a
ring frame follows all the animation frames. Each frame chunk contains
color palette information and/or pixel data.
The ring frame contains delta-compressed information to loop from the
last frame of the flic back to the first. It can be helpful to think of
the ring frame as a copy of the first frame, compressed in a different
way. All flic files will contain a ring frame, including a single-frame
flic.
The FLC file header
A FLC file begins with a 128-byte header, described below. All lengths
and offsets are in bytes. All values stored in the header fields are
unsigned.
Offset Length Name Description
0 4 size The size of the entire animation file,
including this file header.
4 2 magic File format identifier. Always hex AF12.
6 2 frames Number of frames in the flic. This
count does not include the ring frame.
FLC files have a maximum length of 4000
frames.
8 2 width Screen width in pixels.
10 2 height Screen height in pixels.
12 2 depth Bits per pixel (always 8).
14 2 flags Set to hex 0003 after ring frame is
written and flic header is updated.
This indicates that the file was properly
finished and closed.
16 4 speed Number of milliseconds to delay between
each frame during playback.
20 2 reserved Unused word, set to 0.
22 4 created The MSDOS-formatted date and time of the
file's creation.
26 4 creator The serial number of the Animator Pro
program used to create the file. If the
file was created by some other program
using the FlicLib development kit, this
value is hex 464C4942 ("FLIB").
30 4 updated The MSDOS-formatted date and time of the
file's most recent update.
34 4 updater Indicates who last updated the file. See
the description of creator.
38 2 aspectx The x-axis aspect ratio at which the file
was created.
40 2 aspecty The y-axis aspect ratio at which the file
was created. Most often, the x:y aspect ratio
will be 1:1. A 320x200 flic has a ratio of
6:5.
42 38 reserved Unused space, set to zeroes.
80 4 oframe1 Offset from the beginning of the file to the
first animation frame chunk.
84 4 oframe2 Offset from the beginning of the file to
the second animation frame chunk. This value
is used when looping from the ring frame back
to the second frame during playback.
88 40 reserved Unused space, set to zeroes.
The FLC prefix chunk
An optional prefix chunk may immediately follow the animation file
header. This chunk is used to store auxiliary data which is not directly
involved in the animation playback. The prefix chunk starts with a
16-byte header (identical in structure to a frame header), as follows:
Offset Length Name Description
0 4 size The size of the prefix chunk, including
this header and all subordinate chunks
that follow.
4 2 type Prefix chunk identifier. Always hex F100.
6 2 chunks Number of subordinate chunks in the
prefix chunk.
8 8 reserved Unused space, set to zeroes.
To determine whether a prefix chunk is present, read the 16-byte header
following the file header. If the type value is hex F100, it's a prefix
chunk. If the value is hex F1FA it's the first frame chunk, and no
prefix chunk exists.
....
The FLC frame chunks
Frame chunks contain the pixel and color data for the animation. A frame
chunk may contain multiple subordinate chunks, each containing a
different type of data for the current frame. Each frame chunk starts
with a 16-byte header that describes the contents of the frame:
Offset Length Name Description
0 4 size The size of the frame chunk, including this
header and all subordinate chunks that follow.
4 2 type Frame chunk identifier. Always hex F1FA.
6 2 chunks Number of subordinate chunks in the
frame chunk.
8 8 reserved Unused space, set to zeroes.
Immediately following the frame header are the frame's subordinate data
chunks. When the chunks count in the frame header is zero, it indicates
that this frame is identical to the previous frame. This implies that no
change is made to the screen or color palette, but the appropriate delay
is still inserted during playback.
Each data chunk within a frame chunk is formatted as follows:
Offset Length Name Description
0 4 size The size of the chunk, including this header.
4 2 type Data type identifier.
6 (size-6) data The color or pixel data.
The type values in the chunk headers indicate what type of graphics data
the chunk contains and which compression method was used to encode the
data. The following values (and their associated mnemonic names) are
currently found in frame data chunks:
Value Name Description
4 FLI_COLOR256 256-level color palette info
7 FLI_SS2 Word-oriented delta compression
11 FLI_COLOR 64-level color palette info
12 FLI_LC Byte-oriented delta compression
13 FLI_BLACK Entire frame is color index 0
15 FLI_BRUN Byte run length compression
16 FLI_COPY No compression
18 FLI_PSTAMP Postage stamp sized image
EXTENSION:FLC
OCCURENCES:PC
PROGRAMS:Autodesk Animator, Autodesk Animator Pro
SEE ALSO:FLIc,FLT,CEL,COL