/* ** Command & Conquer Red Alert(tm) ** Copyright 2025 Electronic Arts Inc. ** ** This program is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** This program 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 General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program. If not, see <http://www.gnu.org/licenses/>. */ #ifndef VQFILE_H #define VQFILE_H /**************************************************************************** * * C O N F I D E N T I A L --- W E S T W O O D S T U D I O S * *---------------------------------------------------------------------------- * * FILE * VQFile.h * * DESCRIPTION * VQ file format definitions. * * PROGRAMMER * Denzil E. Long, Jr. * * DATE * September 27, 1995 * ****************************************************************************/ #include <vqm32\iff.h> /* Disable Watcom structure alignment. */ #ifdef __WATCOMC__ #pragma pack(1); #endif /*--------------------------------------------------------------------------- * STRUCTURE DEFINITIONS AND RELATED INFORMATION *-------------------------------------------------------------------------*/ /* VQHeader: VQ header. * * Version - VQ file version * Flags - Various flags (see below) * ImageWidth - Width of constructed image in pixels. * ImageHeight - Height of contructed image in pixels. * BlockType - Type of codebook block. (EX: rectangle) * BlockWidth - Width of a codebook block in pixels. * BlockHeight - Height of a codebook block in pixels. * BlockDepth - Depth of a codebook block in bits. * CBEntries - Number of entries in the codebook. * VPtrType - Vector pointer type. (IE: Banked) * PalStart - Starting entry position of palette. * PalLength - Number of palette entries the palette. * PalDepth - Depth of palette entries in bits. * ColorModel - Color model of this VQ */ typedef struct _VQHeader { short Version; short Flags; short ImageWidth; short ImageHeight; short BlockType; short BlockWidth; short BlockHeight; short BlockDepth; short CBEntries; short VPtrType; short PalStart; short PalLengh; short PalDepth; short ColorModel; } VQHeader; /* VQ file flags */ #define VQHB_CBCOMP 0 /* Codebook compressed */ #define VQHB_CTCOMP 1 /* Color table compressed */ #define VQHB_VPCOMP 2 /* Vector pointers compressed */ #define VQHF_CBCOMP (1<<VQHB_CBCOMP) #define VQHF_CTCOMP (1<<VQHB_CTCOMP) #define VQHF_VPCOMP (1<<VQHB_VPCOMP) /* Block types */ #define VQBT_RECT 0 /* Rectangle Width X Height */ /* Color models */ #define VQCM_PALETTED 0 /* Palette (8 bit indices) */ #define VQCM_RGBTRUE 1 /* RBG truecolor (24 bit) */ #define VQCM_YBRTRUE 2 /* YCbCr truecolor */ /*--------------------------------------------------------------------------- * VQ FILE CHUNK ID DEFINITIONS *-------------------------------------------------------------------------*/ #define ID_VQHR MAKE_ID('V','Q','H','R') /* VQ Header */ #define ID_VQCB MAKE_ID('V','Q','C','B') /* VQ Codebook */ #define ID_VQCT MAKE_ID('V','Q','C','T') /* VQ Color Table (palette) */ #define ID_VQVP MAKE_ID('V','Q','V','P') /* VQ Vector pointers */ #ifdef __WATCOMC__ #pragma pack(); #endif #endif /* VQFILE_H */