119 lines
3.5 KiB
C
119 lines
3.5 KiB
C
/*
|
|
** 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 */
|
|
|