CnC_Red_Alert/WINVQ/INCLUDE/VQFILE.H

119 lines
3.5 KiB
C++
Raw Permalink Normal View History

/*
** 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 */