mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
Added missing #includes Added LUA scripting and console Changed the way tracers are visualized, so they work more like real tracers instead of a light fountain Fixed signedness of many grid variables used in GetMouseMapPos calls Fixed enemy weapon choosing: Sometimes a mortar is chosen but later rejected, but the grenade class was not reset. Caused assertion failure Added checks so enemies don't try to chuck RPG grenades with their hands Now possible to shoot a someone in the head if he's in water Fixed InitSightArrays to also clear soldier interrupt duel points. This was causing an assertion failure elsewhere in the code because the interrupt list still had soldiers on it sometimes when this function was called. Soldiers are much less willing to forfeit their turn over an attempt to use more APs than they have Removed early setting of muzzle flash. This would allow enemies to get an interrupt before you even fired. Fixed item dropping by AI. If AI tried to drop something while standing it would cause deadlock Change to greatly speed up closing the sector inventory window in an unloaded sector Added conditional compile flag to always give robot weapon ready advantage, even for 360 degree sighting Check builddefines.h for the conditional flags. Of greatest interest might be LUA_CONSOLE. This will cause the game to bring up a command console when run. However this console is severely lacking in many areas. If anybody knows of an open-source terminal/console that could be used instead, it would be appreciated. The existing console does bad things when you try to close it, and since it counts as a separate app, it pauses the game while it has focus. LUA scripting is very limited, basically just proof of concept. There is one global variable, the Soldiers array. An array index gives you the soldier in that slot in the currently loaded sector. The soldier has a few things that can be accessed: name (short name); fullname (long name); grid (current grid #, can be changed); walkto(grid) (function to walk to another grid); runto(grid) (function to run to another grid) git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@924 3b4a5df2-a311-0410-b5c6-a8a6f20db521
119 lines
2.8 KiB
C
119 lines
2.8 KiB
C
#ifndef __CURSOR_DATABASE_
|
|
#define __CURSOR_DATABASE_
|
|
|
|
#include "Types.h"
|
|
#include "FileMan.h"
|
|
#include "VObject.h"
|
|
#include "VSurface.h"
|
|
|
|
#if defined( JA2 ) || defined( UTIL )
|
|
#include "Video.h"
|
|
#else
|
|
#include "video2.h"
|
|
#endif
|
|
|
|
#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
|
|
|