mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
- Added missing projects "VFS" & "export" to SVN
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@4447 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
#if !defined( STCI_H )
|
||||
|
||||
#define STCI_H
|
||||
|
||||
// Sir-Tech's Crazy Image (STCI) file format specifications. Each file is composed of:
|
||||
// 1 ImageFileHeader, uncompressed
|
||||
// * Palette (STCI_INDEXED, size = uiNumberOfColours * PALETTE_ELEMENT_SIZE), uncompressed
|
||||
// * SubRectInfo's (usNumberOfRects > 0, size = usNumberOfSubRects * sizeof(SubRectInfo) ), uncompressed
|
||||
// * Bytes of image data, possibly compressed
|
||||
|
||||
#include "Types.h"
|
||||
|
||||
#define STCI_ID_STRING "STCI"
|
||||
#define STCI_ID_LEN 4
|
||||
|
||||
#define STCI_ETRLE_COMPRESSED 0x0020
|
||||
#define STCI_ZLIB_COMPRESSED 0x0010
|
||||
#define STCI_INDEXED 0x0008
|
||||
#define STCI_RGB 0x0004
|
||||
#define STCI_ALPHA 0x0002
|
||||
#define STCI_TRANSPARENT 0x0001
|
||||
|
||||
// ETRLE defines
|
||||
#define COMPRESS_TRANSPARENT 0x80
|
||||
#define COMPRESS_NON_TRANSPARENT 0x00
|
||||
#define COMPRESS_RUN_LIMIT 0x7F
|
||||
|
||||
// NB if you're going to change the header definition:
|
||||
// - make sure that everything in this header is nicely aligned
|
||||
// - don't exceed the 64-byte maximum
|
||||
typedef struct
|
||||
{
|
||||
UINT8 cID[STCI_ID_LEN];
|
||||
UINT32 uiOriginalSize;
|
||||
UINT32 uiStoredSize; // equal to uiOriginalSize if data uncompressed
|
||||
UINT32 uiTransparentValue;
|
||||
UINT32 fFlags;
|
||||
UINT16 usHeight;
|
||||
UINT16 usWidth;
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
UINT32 uiRedMask;
|
||||
UINT32 uiGreenMask;
|
||||
UINT32 uiBlueMask;
|
||||
UINT32 uiAlphaMask;
|
||||
UINT8 ubRedDepth;
|
||||
UINT8 ubGreenDepth;
|
||||
UINT8 ubBlueDepth;
|
||||
UINT8 ubAlphaDepth;
|
||||
} RGB;
|
||||
struct
|
||||
{ // For indexed files, the palette will contain 3 separate bytes for red, green, and blue
|
||||
UINT32 uiNumberOfColours;
|
||||
UINT16 usNumberOfSubImages;
|
||||
UINT8 ubRedDepth;
|
||||
UINT8 ubGreenDepth;
|
||||
UINT8 ubBlueDepth;
|
||||
UINT8 cIndexedUnused[11];
|
||||
} Indexed;
|
||||
};
|
||||
UINT8 ubDepth; // size in bits of one pixel as stored in the file
|
||||
UINT32 uiAppDataSize;
|
||||
UINT8 cUnused[15];
|
||||
} STCIHeader;
|
||||
|
||||
#define STCI_HEADER_SIZE 64
|
||||
|
||||
typedef struct
|
||||
{
|
||||
UINT32 uiDataOffset;
|
||||
UINT32 uiDataLength;
|
||||
INT16 sOffsetX;
|
||||
INT16 sOffsetY;
|
||||
UINT16 usHeight;
|
||||
UINT16 usWidth;
|
||||
} STCISubImage;
|
||||
|
||||
#define STCI_SUBIMAGE_SIZE 16
|
||||
|
||||
typedef struct
|
||||
{
|
||||
UINT8 ubRed;
|
||||
UINT8 ubGreen;
|
||||
UINT8 ubBlue;
|
||||
} STCIPaletteElement;
|
||||
|
||||
#define STCI_PALETTE_ELEMENT_SIZE 3
|
||||
#define STCI_8BIT_PALETTE_SIZE 768
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user