124 lines
3.5 KiB
C++
124 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 VQACAPTION_H
|
|||
|
#define VQACAPTION_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
|
|||
|
*
|
|||
|
*----------------------------------------------------------------------------
|
|||
|
*
|
|||
|
* PROJECT
|
|||
|
* VQA player library (32 bit protected mode)
|
|||
|
*
|
|||
|
* FILE
|
|||
|
* caption.h
|
|||
|
*
|
|||
|
* DESCRIPTION
|
|||
|
* Text caption definitions.
|
|||
|
*
|
|||
|
* PROGRAMMER
|
|||
|
* Denzil E. Long, Jr.
|
|||
|
*
|
|||
|
* DATE
|
|||
|
* July 26, 1995
|
|||
|
*
|
|||
|
****************************************************************************/
|
|||
|
|
|||
|
|
|||
|
#define VQACAPTIONS_ON 0
|
|||
|
|
|||
|
/*---------------------------------------------------------------------------
|
|||
|
* STRUCTURES AND RELATED DEFINITIONS
|
|||
|
*-------------------------------------------------------------------------*/
|
|||
|
|
|||
|
/* CaptionNode: Node describing a caption to process.
|
|||
|
*
|
|||
|
* Succ - Pointer to the next node in the list (successor).
|
|||
|
* Pred - Pointer to the previous node in the list (predecessor).
|
|||
|
* Flags - Status flags.
|
|||
|
* CapText - Pointer to the CaptionText being processed.
|
|||
|
* Char - Pointer to current character in the string.
|
|||
|
* CurX - Current X position.
|
|||
|
* CurY - Current Y position.
|
|||
|
* BoundW - Bounding width of text.
|
|||
|
* BoundH - Bounding height of text.
|
|||
|
*/
|
|||
|
typedef struct _CaptionNode {
|
|||
|
struct _CaptionNode *Succ;
|
|||
|
struct _CaptionNode *Pred;
|
|||
|
unsigned short Flags;
|
|||
|
CaptionText *Captext;
|
|||
|
char *Char;
|
|||
|
unsigned short CurX;
|
|||
|
unsigned short CurY;
|
|||
|
unsigned short BoundW;
|
|||
|
unsigned short BoundH;
|
|||
|
} CaptionNode;
|
|||
|
|
|||
|
/* CaptionNode flag definitions. */
|
|||
|
#define CNB_USED 0 /* This node is being used. */
|
|||
|
#define CNF_USED (1<<CNB_USED)
|
|||
|
|
|||
|
|
|||
|
/* CaptionList: Double linked list of outstanding captions to process.
|
|||
|
*
|
|||
|
* Head - Pointer to the first node in the list.
|
|||
|
* Tail - Always NULL
|
|||
|
* TailPred - Pointer to the last node in the list.
|
|||
|
*/
|
|||
|
typedef struct _CaptionList {
|
|||
|
CaptionNode *Head;
|
|||
|
CaptionNode *Tail;
|
|||
|
CaptionNode *TailPred;
|
|||
|
} CaptionList;
|
|||
|
|
|||
|
|
|||
|
/* CaptionInfo:
|
|||
|
*
|
|||
|
* Next - Pointer to the next caption to be processed.
|
|||
|
* List - List of pending captions to process.
|
|||
|
* Font - Font to use for this caption.
|
|||
|
* BoundX - X position of bounding box.
|
|||
|
* BoundY - Y position of bounding box.
|
|||
|
* BoundW - Width of bounding box.
|
|||
|
* BoundH - Height of bounding box.
|
|||
|
* Buffer - Caption chunk buffer.
|
|||
|
*/
|
|||
|
typedef struct _CaptionInfo {
|
|||
|
CaptionText *Next;
|
|||
|
CaptionList List;
|
|||
|
void *Font;
|
|||
|
char FontHeight;
|
|||
|
char FontWidth;
|
|||
|
void *Buffer;
|
|||
|
} CaptionInfo;
|
|||
|
|
|||
|
|
|||
|
/*---------------------------------------------------------------------------
|
|||
|
* FUNCTION PROTOTYPES
|
|||
|
*-------------------------------------------------------------------------*/
|
|||
|
|
|||
|
CaptionInfo *OpenCaptions(void *captions, void *font);
|
|||
|
void CloseCaptions(CaptionInfo *cap);
|
|||
|
void DoCaptions(CaptionInfo *cap, unsigned long frame);
|
|||
|
|
|||
|
#endif /* VQACAPTION_H */
|
|||
|
|
|||
|
|