blob: dd08b9457eea5d5868eeaf2e82df6ad6cfefc766 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
/* This file is part of ksquirrel-libs (http://ksquirrel.sf.net)
Copyright (c) 2005 Dmitry Baryshev <ksquirrel@tut.by>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later
version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
as32 with this library; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef KSQUIRREL_READ_IMAGE_fli
#define KSQUIRREL_READ_IMAGE_fli
struct FLICHEADER
{
u32 FileSize; /* Total size of file */
u16 FileId; /* File format indicator */
u16 NumberOfFrames; /* Total number of frames */
u16 Width; /* Screen width in pixels */
u16 Height; /* Screen height in pixels */
u16 PixelDepth; /* Number of bits per pixel */
u16 Flags; /* Set to 03h */
u32 FrameDelay; /* Time delay between frames */
u16 Reserved1; /* Not used (Set to 00h) */
// The following fields are set to 00h in a .FLI file
u32 DateCreated; /* Time/Date the file was created */
u32 CreatorSN; /* Serial number of creator program */
u32 LastUpdated; /* Time/Date the file last changed */
u32 UpdaterSN; /* Serial number of updater program */
u16 XAspect; /* X-axis of display aspect ratio */
u16 YAspect; /* Y-axis of display aspect ratio */
u8 Reserved2[38]; /* Not used (Set to 00h) */
u32 Frame1Offset; /* Offset of first frame */
u32 Frame2Offset; /* Offset of second frame */
u8 Reserved3[40]; /* Not used (Set to 00h) */
}PACKED;
struct CHUNKHEADER
{
u32 size; /* Total size of chunk */
u16 type; /* Chunk identifier */
// u16 subchunks; /* Number of subchunks in this chunk */
// u8 res[8]; /* Not used (Set to 00h) */
}PACKED;
#define CHUNK_CEL_DATA 3
#define CHUNK_COLOR_256 4
#define CHUNK_DELTA_FLC 7
#define CHUNK_COLOR_64 11
#define CHUNK_DELTA_FLI 12
#define CHUNK_BLACK 13
#define CHUNK_RLE 15
#define CHUNK_COPY 16
#define CHUNK_PSTAMP 18
#define CHUNK_DTA_BRUN 25
#define CHUNK_DTA_COPY 26
#define CHUNK_DTA_LC 27
#define CHUNK_LABEL 31
#define CHUNK_BMP_MASK 32
#define CHUNK_MLEV_MASK 33
#define CHUNK_SEGMENT 34
#define CHUNK_KEY_IMAGE 35
#define CHUNK_KEY_PAL 36
#define CHUNK_REGION 37
#define CHUNK_WAVE 38
#define CHUNK_USERSTR 39
#define CHUNK_RGN_MASK 40
#define CHUNK_LABELEX 41
#define CHUNK_SHIFT 42
#define CHUNK_PATHMAP 43
#define CHUNK_PREFIX_TYPE 0xF100
#define CHUNK_SCRIPT_CHUNK 0xF1E0
#define CHUNK_FRAME_TYPE 0xF1FA
#define CHUNK_SEGMENT_TABLE 0xF1FB
#define CHUNK_HUFFMAN_TABLE 0xF1FC
#endif
|