mirror of
https://github.com/GTAmodding/re3.git
synced 2024-11-17 01:39:01 +00:00
277 lines
5.4 KiB
C
277 lines
5.4 KiB
C
|
#ifndef SKELETON_H
|
||
|
#define SKELETON_H
|
||
|
|
||
|
#include "rwcore.h"
|
||
|
|
||
|
/* Default arena size depending on platform. */
|
||
|
#define rsRESOURCESDEFAULTARENASIZE (1 << 20)
|
||
|
|
||
|
#if (!defined(RsSprintf))
|
||
|
#define RsSprintf rwsprintf
|
||
|
#endif /* (!defined(RsSprintf)) */
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C"
|
||
|
{
|
||
|
#endif /* __cplusplus */
|
||
|
|
||
|
#if (!defined(RSASSERT))
|
||
|
#define RSASSERT(_condition) /* No-op */
|
||
|
#endif /* (!defined(RSASSERT)) */
|
||
|
|
||
|
#define RSASSERTISTYPE(_f, _t) \
|
||
|
RSASSERT( (!(_f)) || ((((const RwObject *)(_f))->type)==(_t)) )
|
||
|
|
||
|
enum RsInputDeviceType
|
||
|
{
|
||
|
rsKEYBOARD,
|
||
|
rsMOUSE,
|
||
|
rsPAD
|
||
|
};
|
||
|
typedef enum RsInputDeviceType RsInputDeviceType;
|
||
|
|
||
|
enum RsEventStatus
|
||
|
{
|
||
|
rsEVENTERROR,
|
||
|
rsEVENTPROCESSED,
|
||
|
rsEVENTNOTPROCESSED
|
||
|
};
|
||
|
typedef enum RsEventStatus RsEventStatus;
|
||
|
|
||
|
enum RsEvent
|
||
|
{
|
||
|
rsCAMERASIZE,
|
||
|
rsCOMMANDLINE,
|
||
|
rsFILELOAD,
|
||
|
rsINITDEBUG,
|
||
|
rsINPUTDEVICEATTACH,
|
||
|
rsLEFTBUTTONDOWN,
|
||
|
rsLEFTBUTTONUP,
|
||
|
rsMOUSEMOVE,
|
||
|
rsMOUSEWHEELMOVE,
|
||
|
rsPLUGINATTACH,
|
||
|
rsREGISTERIMAGELOADER,
|
||
|
rsRIGHTBUTTONDOWN,
|
||
|
rsRIGHTBUTTONUP,
|
||
|
_rs_13,
|
||
|
_rs_14,
|
||
|
_rs_15,
|
||
|
_rs_16,
|
||
|
_rs_17,
|
||
|
_rs_18,
|
||
|
_rs_19,
|
||
|
_rs_20,
|
||
|
rsRWINITIALISE,
|
||
|
rsRWTERMINATE,
|
||
|
rsSELECTDEVICE,
|
||
|
rsINITIALISE,
|
||
|
rsTERMINATE,
|
||
|
rsIDLE,
|
||
|
rsFRONTENDIDLE,
|
||
|
rsKEYDOWN,
|
||
|
rsKEYUP,
|
||
|
rsQUITAPP,
|
||
|
rsPADBUTTONDOWN,
|
||
|
rsPADBUTTONUP,
|
||
|
rsPADANALOGUELEFT,
|
||
|
rsPADANALOGUELEFTRESET,
|
||
|
rsPADANALOGUERIGHT,
|
||
|
rsPADANALOGUERIGHTRESET,
|
||
|
rsPREINITCOMMANDLINE,
|
||
|
rsACTIVATE,
|
||
|
};
|
||
|
|
||
|
typedef enum RsEvent RsEvent;
|
||
|
|
||
|
typedef RsEventStatus (*RsInputEventHandler)(RsEvent event, void *param);
|
||
|
|
||
|
typedef struct RsInputDevice RsInputDevice;
|
||
|
struct RsInputDevice
|
||
|
{
|
||
|
RsInputDeviceType inputDeviceType;
|
||
|
RwBool used;
|
||
|
RsInputEventHandler inputEventHandler;
|
||
|
};
|
||
|
|
||
|
typedef struct RsGlobalType RsGlobalType;
|
||
|
struct RsGlobalType
|
||
|
{
|
||
|
const RwChar *appName;
|
||
|
RwInt32 width;
|
||
|
RwInt32 height;
|
||
|
RwInt32 maximumWidth;
|
||
|
RwInt32 maximumHeight;
|
||
|
RwInt32 maxFPS;
|
||
|
RwBool quit;
|
||
|
|
||
|
void *ps; /* platform specific data */
|
||
|
|
||
|
RsInputDevice keyboard;
|
||
|
RsInputDevice mouse;
|
||
|
RsInputDevice pad;
|
||
|
};
|
||
|
|
||
|
enum RsKeyCodes
|
||
|
{
|
||
|
rsESC = 1000,
|
||
|
|
||
|
rsF1 = 1001,
|
||
|
rsF2 = 1002,
|
||
|
rsF3 = 1003,
|
||
|
rsF4 = 1004,
|
||
|
rsF5 = 1005,
|
||
|
rsF6 = 1006,
|
||
|
rsF7 = 1007,
|
||
|
rsF8 = 1008,
|
||
|
rsF9 = 1009,
|
||
|
rsF10 = 1010,
|
||
|
rsF11 = 1011,
|
||
|
rsF12 = 1012,
|
||
|
|
||
|
rsINS = 1013,
|
||
|
rsDEL = 1014,
|
||
|
rsHOME = 1015,
|
||
|
rsEND = 1016,
|
||
|
rsPGUP = 1017,
|
||
|
rsPGDN = 1018,
|
||
|
|
||
|
rsUP = 1019,
|
||
|
rsDOWN = 1020,
|
||
|
rsLEFT = 1021,
|
||
|
rsRIGHT = 1022,
|
||
|
|
||
|
rsDIVIDE = 1023,
|
||
|
rsTIMES = 1024,
|
||
|
rsPLUS = 1025,
|
||
|
rsMINUS = 1026,
|
||
|
rsPADDEL = 1027,
|
||
|
rsPADEND = 1028,
|
||
|
rsPADDOWN = 1029,
|
||
|
rsPADPGDN = 1030,
|
||
|
rsPADLEFT = 1031,
|
||
|
rsPAD5 = 1032,
|
||
|
rsNUMLOCK = 1033,
|
||
|
rsPADRIGHT = 1034,
|
||
|
rsPADHOME = 1035,
|
||
|
rsPADUP = 1036,
|
||
|
rsPADPGUP = 1037,
|
||
|
rsPADINS = 1038,
|
||
|
rsPADENTER = 1039,
|
||
|
|
||
|
rsSCROLL = 1040,
|
||
|
rsPAUSE = 1041,
|
||
|
|
||
|
rsBACKSP = 1042,
|
||
|
rsTAB = 1043,
|
||
|
rsCAPSLK = 1044,
|
||
|
rsENTER = 1045,
|
||
|
rsLSHIFT = 1046,
|
||
|
rsRSHIFT = 1047,
|
||
|
rsSHIFT = 1048,
|
||
|
rsLCTRL = 1049,
|
||
|
rsRCTRL = 1050,
|
||
|
rsLALT = 1051,
|
||
|
rsRALT = 1052,
|
||
|
rsLWIN = 1053,
|
||
|
rsRWIN = 1054,
|
||
|
rsAPPS = 1055,
|
||
|
|
||
|
rsNULL = 1056,
|
||
|
};
|
||
|
typedef enum RsKeyCodes RsKeyCodes;
|
||
|
|
||
|
typedef struct RsKeyStatus RsKeyStatus;
|
||
|
struct RsKeyStatus
|
||
|
{
|
||
|
RwInt32 keyCharCode;
|
||
|
};
|
||
|
|
||
|
typedef struct RsPadButtonStatus RsPadButtonStatus;
|
||
|
struct RsPadButtonStatus
|
||
|
{
|
||
|
RwInt32 padID;
|
||
|
RwUInt32 padButtons;
|
||
|
};
|
||
|
|
||
|
enum RsPadButtons
|
||
|
{
|
||
|
rsPADNULL = 0,
|
||
|
|
||
|
rsPADBUTTON1 = 1,
|
||
|
rsPADBUTTON2 = 2,
|
||
|
rsPADBUTTON3 = 3,
|
||
|
rsPADBUTTON4 = 4,
|
||
|
|
||
|
rsPADBUTTON5 = 5,
|
||
|
rsPADBUTTON6 = 6,
|
||
|
rsPADBUTTON7 = 7,
|
||
|
rsPADBUTTON8 = 8,
|
||
|
|
||
|
rsPADSELECT = 9,
|
||
|
|
||
|
rsPADBUTTONA1 = 10,
|
||
|
rsPADBUTTONA2 = 11,
|
||
|
|
||
|
rsPADSTART = 12,
|
||
|
|
||
|
rsPADDPADUP = 13,
|
||
|
rsPADDPADRIGHT = 14,
|
||
|
rsPADDPADDOWN = 15,
|
||
|
rsPADDPADLEFT = 16,
|
||
|
};
|
||
|
typedef enum RsPadButtons RsPadButtons;
|
||
|
|
||
|
|
||
|
extern RsGlobalType &RsGlobal;
|
||
|
|
||
|
extern RsEventStatus AppEventHandler(RsEvent event, void *param);
|
||
|
extern RwBool AttachInputDevices(void);
|
||
|
|
||
|
extern RsEventStatus RsEventHandler(RsEvent event, void *param);
|
||
|
extern RsEventStatus RsKeyboardEventHandler(RsEvent event, void *param);
|
||
|
extern RsEventStatus RsPadEventHandler(RsEvent event, void *param);
|
||
|
|
||
|
extern RwBool
|
||
|
RsInitialise(void);
|
||
|
|
||
|
extern RwBool
|
||
|
RsRegisterImageLoader(void);
|
||
|
|
||
|
extern RwBool
|
||
|
RsRwInitialise(void *param);
|
||
|
|
||
|
extern RwBool
|
||
|
RsSelectDevice(void);
|
||
|
|
||
|
extern RwBool
|
||
|
RsInputDeviceAttach(RsInputDeviceType inputDevice,
|
||
|
RsInputEventHandler inputEventHandler);
|
||
|
|
||
|
extern RwUInt32
|
||
|
RsTimer(void);
|
||
|
|
||
|
extern void
|
||
|
RsCameraShowRaster(RwCamera *camera);
|
||
|
|
||
|
extern RwBool
|
||
|
RsCameraBeginUpdate(RwCamera *camera);
|
||
|
|
||
|
//TODO
|
||
|
//extern void
|
||
|
//RsMouseSetVisibility(RwBool visible);
|
||
|
|
||
|
extern void
|
||
|
RsMouseSetPos(RwV2d *pos);
|
||
|
|
||
|
extern void
|
||
|
RsRwTerminate(void);
|
||
|
|
||
|
extern void
|
||
|
RsTerminate(void);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif /* __cplusplus */
|
||
|
|
||
|
#endif /* SKELETON_H */
|