mirror of
https://github.com/GTAmodding/re3.git
synced 2024-12-27 05:55:39 +00:00
125 lines
5.3 KiB
C
125 lines
5.3 KiB
C
|
#ifndef RPUSERDATAPLUGIN_H
|
||
|
#define RPUSERDATAPLUGIN_H
|
||
|
|
||
|
/**
|
||
|
* \defgroup rpuserdata RpUserData
|
||
|
* \ingroup rpplugin
|
||
|
*
|
||
|
* User Data Plugin for RenderWare Graphics.
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* UserData plugin
|
||
|
*/
|
||
|
|
||
|
#include <rwcore.h>
|
||
|
#include <rpworld.h>
|
||
|
|
||
|
/**
|
||
|
* \ingroup rpuserdata
|
||
|
* User data formats
|
||
|
*/
|
||
|
enum RpUserDataFormat
|
||
|
{
|
||
|
rpNAUSERDATAFORMAT = 0,
|
||
|
rpINTUSERDATA, /**< 32 bit int data */
|
||
|
rpREALUSERDATA, /**< 32 bit float data */
|
||
|
rpSTRINGUSERDATA, /**< unsigned byte pointer data */
|
||
|
rpUSERDATAFORCEENUMSIZEINT = RWFORCEENUMSIZEINT
|
||
|
};
|
||
|
typedef enum RpUserDataFormat RpUserDataFormat;
|
||
|
|
||
|
typedef struct RpUserDataArray RpUserDataArray;
|
||
|
|
||
|
/**
|
||
|
* \ingroup rpuserdata
|
||
|
* \struct RpUserDataArray
|
||
|
* A structure representing an array of user data values
|
||
|
*/
|
||
|
|
||
|
struct RpUserDataArray
|
||
|
{
|
||
|
RwChar *name; /**< Identifier for this data array */
|
||
|
RpUserDataFormat format; /**< Data format of this array */
|
||
|
RwInt32 numElements; /**< Number of elements in this array */
|
||
|
void *data; /**< Pointer to the array data */
|
||
|
};
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C"
|
||
|
{
|
||
|
#endif
|
||
|
|
||
|
/* Plugin API */
|
||
|
extern RwBool RpUserDataPluginAttach(void);
|
||
|
|
||
|
/* Geometry API */
|
||
|
extern RwInt32 RpGeometryAddUserDataArray(RpGeometry *geometry, RwChar *name,
|
||
|
RpUserDataFormat format, RwInt32 numElements);
|
||
|
extern RpGeometry *RpGeometryRemoveUserDataArray(RpGeometry *geometry, RwInt32 index);
|
||
|
extern RpUserDataArray *RpGeometryGetUserDataArray(const RpGeometry *geometry, RwInt32 data);
|
||
|
extern RwInt32 RpGeometryGetUserDataArrayCount(const RpGeometry *geometry);
|
||
|
|
||
|
/* World Sector API */
|
||
|
extern RwInt32 RpWorldSectorAddUserDataArray(RpWorldSector *sector, RwChar *name,
|
||
|
RpUserDataFormat format, RwInt32 numElements);
|
||
|
extern RpWorldSector *RpWorldSectorRemoveUserDataArray(RpWorldSector *sector, RwInt32 index);
|
||
|
extern RpUserDataArray *RpWorldSectorGetUserDataArray(const RpWorldSector *sector, RwInt32 data);
|
||
|
extern RwInt32 RpWorldSectorGetUserDataArrayCount(const RpWorldSector *sector);
|
||
|
|
||
|
/* RwFrame API */
|
||
|
extern RwInt32 RwFrameAddUserDataArray(RwFrame *frame, RwChar *name,
|
||
|
RpUserDataFormat format, RwInt32 numElements);
|
||
|
extern RwFrame *RwFrameRemoveUserDataArray(RwFrame *frame, RwInt32 index);
|
||
|
extern RpUserDataArray *RwFrameGetUserDataArray(const RwFrame *frame, RwInt32 data);
|
||
|
extern RwInt32 RwFrameGetUserDataArrayCount(const RwFrame *frame);
|
||
|
|
||
|
/* RwCamera API */
|
||
|
extern RwInt32 RwCameraAddUserDataArray(RwCamera *camera, RwChar *name,
|
||
|
RpUserDataFormat format, RwInt32 numElements);
|
||
|
extern RwCamera *RwCameraRemoveUserDataArray(RwCamera *camera, RwInt32 index);
|
||
|
extern RpUserDataArray *RwCameraGetUserDataArray(const RwCamera *camera, RwInt32 data);
|
||
|
extern RwInt32 RwCameraGetUserDataArrayCount(const RwCamera *camera);
|
||
|
|
||
|
/* RpLight API */
|
||
|
extern RwInt32 RpLightAddUserDataArray(RpLight *light, RwChar *name,
|
||
|
RpUserDataFormat format, RwInt32 numElements);
|
||
|
extern RpLight *RpLightRemoveUserDataArray(RpLight *light, RwInt32 index);
|
||
|
extern RpUserDataArray *RpLightGetUserDataArray(const RpLight *light, RwInt32 data);
|
||
|
extern RwInt32 RpLightGetUserDataArrayCount(const RpLight *light);
|
||
|
|
||
|
/* RpMaterial API */
|
||
|
extern RwInt32 RpMaterialAddUserDataArray(RpMaterial *material, RwChar *name,
|
||
|
RpUserDataFormat format, RwInt32 numElements);
|
||
|
extern RpMaterial *RpMaterialRemoveUserDataArray(RpMaterial *material, RwInt32 index);
|
||
|
extern RpUserDataArray *RpMaterialGetUserDataArray(const RpMaterial *material, RwInt32 data);
|
||
|
extern RwInt32 RpMaterialGetUserDataArrayCount(const RpMaterial *material);
|
||
|
|
||
|
/* RwTexture API */
|
||
|
extern RwInt32 RwTextureAddUserDataArray(RwTexture *texture, RwChar *name,
|
||
|
RpUserDataFormat format, RwInt32 numElements);
|
||
|
extern RwTexture *RwTextureRemoveUserDataArray(RwTexture *texture, RwInt32 index);
|
||
|
extern RpUserDataArray *RwTextureGetUserDataArray(const RwTexture *texture, RwInt32 data);
|
||
|
extern RwInt32 RwTextureGetUserDataArrayCount(const RwTexture *texture);
|
||
|
|
||
|
/* User Data Array API */
|
||
|
extern RwChar *RpUserDataArrayGetName(RpUserDataArray *userData);
|
||
|
extern RpUserDataFormat RpUserDataArrayGetFormat(RpUserDataArray *userData);
|
||
|
extern RwInt32 RpUserDataArrayGetNumElements(RpUserDataArray *userData);
|
||
|
|
||
|
extern RwInt32 RpUserDataArrayGetInt(RpUserDataArray *userData, RwInt32 index);
|
||
|
extern RwReal RpUserDataArrayGetReal(RpUserDataArray *userData, RwInt32 index);
|
||
|
extern RwChar *RpUserDataArrayGetString(RpUserDataArray *userData, RwInt32 index);
|
||
|
|
||
|
extern void RpUserDataArraySetInt(RpUserDataArray *userData, RwInt32 index, RwInt32 value);
|
||
|
extern void RpUserDataArraySetReal(RpUserDataArray *userData, RwInt32 index, RwReal value);
|
||
|
extern void RpUserDataArraySetString(RpUserDataArray *userData, RwInt32 index, RwChar *value);
|
||
|
|
||
|
extern RwInt32 RpUserDataGetFormatSize(RpUserDataFormat format);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif /* RPUSERDATAPLUGIN_H */
|