Files
source/Standard Gaming Platform/Cursor Control.h
T
majcostaandGitHub aaa8b094c9 remove UTIL and JA2 preprocessor definitions (#66)
UTIL is never used, and JA2 is always used. assumption being we'll never make 1.13 for Wizardry 8.

video2.h doesn't exist, which prevented me from deleting it.
2023-01-05 20:40:36 +02:00

115 lines
2.7 KiB
C

#ifndef __CURSOR_DATABASE_
#define __CURSOR_DATABASE_
#include "Types.h"
#include "FileMan.h"
#include "VObject.h"
#include "VSurface.h"
#include "Video.h"
#ifdef __cplusplus
extern "C" {
#endif
extern UINT32 GetCursorHandle(UINT32 uiCursorIndex);
extern void UnloadCursorData(UINT32 uiCursorIndex);
extern BOOLEAN LoadCursorData(UINT32 uiCursorIndex);
extern void CursorDatabaseClear(void);
extern UINT16 GetCursorSubIndex(UINT32 uiCursorIndex);
extern BOOLEAN SetCurrentCursorFromDatabase( UINT32 uiCursorIndex );
#define ANIMATED_CURSOR 0x02
#define USE_EXTERN_VO_CURSOR 0x04
#define USE_OUTLINE_BLITTER 0x08
#define EXTERN_CURSOR 0xFFF0
#define EXTERN2_CURSOR 0xFFE0
#define MAX_COMPOSITES 5
#define CENTER_SUBCURSOR 31000
#define HIDE_SUBCURSOR 32000
#define CENTER_CURSOR 32000
#define RIGHT_CURSOR 32001
#define LEFT_CURSOR 32002
#define TOP_CURSOR 32003
#define BOTTOM_CURSOR 32004
#define CURSOR_TO_FLASH 0x01
#define CURSOR_TO_FLASH2 0x02
#define CURSOR_TO_SUB_CONDITIONALLY 0x04
#define DELAY_START_CURSOR 0x08
#define CURSOR_TO_PLAY_SOUND 0x10
///////////////////////////////////////////////////////////////////////////////////////////////////
//
// Cursor Database
//
///////////////////////////////////////////////////////////////////////////////////////////////////
typedef struct
{
UINT8 ubFilename[MAX_FILENAME_LEN];
BOOLEAN fLoaded;
UINT32 uiIndex;
UINT8 ubFlags;
UINT8 ubNumberOfFrames;
HVOBJECT hVObject;
} CursorFileData;
typedef struct
{
UINT32 uiFileIndex;
UINT16 uiSubIndex;
UINT32 uiCurrentFrame;
INT16 usPosX;
INT16 usPosY;
} CursorImage;
typedef struct
{
CursorImage Composites[ MAX_COMPOSITES ];
UINT16 usNumComposites;
INT16 sOffsetX;
INT16 sOffsetY;
UINT16 usHeight;
UINT16 usWidth;
UINT8 bFlags;
UINT8 bFlashIndex;
} CursorData;
extern INT16 gsGlobalCursorYOffset;
// Globals for cursor database offset values
extern INT16 gsCurMouseOffsetX;
extern INT16 gsCurMouseOffsetY;
extern UINT16 gsCurMouseHeight;
extern UINT16 gsCurMouseWidth;
extern UINT32 guiExternVo;
extern UINT16 gusExternVoSubIndex;
extern UINT32 guiExtern2Vo;
extern UINT16 gusExtern2VoSubIndex;
extern BOOLEAN gfExternUse2nd;
typedef void (*MOUSEBLT_HOOK)( void );
void InitCursorDatabase( CursorFileData *pCursorFileData, CursorData *pCursorData, UINT16 suNumDataFiles );
void SetMouseBltHook( MOUSEBLT_HOOK pMouseBltOverride );
void SetExternVOData( UINT32 uiCursorIndex, HVOBJECT hVObject, UINT16 usSubIndex );
void RemoveExternVOData( UINT32 uiCursorIndex );
#ifdef __cplusplus
}
#endif
#endif