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