124 lines
2.1 KiB
C++
124 lines
2.1 KiB
C++
namespace gta {
|
|
using namespace rw;
|
|
|
|
enum
|
|
{
|
|
ID_EXTRANORMALS = 0x253f2f2,
|
|
ID_PIPELINE = 0x253f2f3,
|
|
ID_SPECMAT = 0x253f2f6,
|
|
ID_2DEFFECT = 0x253f2f8, // geometry
|
|
ID_EXTRAVERTCOLORS = 0x253f2f9,
|
|
ID_COLLISION = 0x253f2fa, // clump
|
|
ID_ENVMAT = 0x253f2fc,
|
|
ID_BREAKABLE = 0x253f2fd,
|
|
ID_NODENAME = 0x253f2fe
|
|
};
|
|
|
|
void attachPlugins(void);
|
|
|
|
// Node name
|
|
|
|
extern int32 nodeNameOffset;
|
|
void registerNodeNamePlugin(void);
|
|
|
|
// Breakable model
|
|
|
|
struct Breakable
|
|
{
|
|
uint32 position;
|
|
uint32 numVertices;
|
|
uint32 numFaces;
|
|
uint32 numMaterials;
|
|
|
|
float32 *vertices;
|
|
float32 *texCoords;
|
|
uint8 *colors;
|
|
uint16 *faces;
|
|
uint16 *matIDs;
|
|
char (*texNames)[32];
|
|
char (*maskNames)[32];
|
|
float32 (*surfaceProps)[3];
|
|
};
|
|
|
|
extern int32 breakableOffset;
|
|
void registerBreakableModelPlugin(void);
|
|
|
|
// Extra normals (only on Xbox)
|
|
|
|
extern int32 extraNormalsOffset;
|
|
void registerExtraNormalsPlugin(void);
|
|
|
|
// Extra vert colors (not on Xbox)
|
|
|
|
struct ExtraVertColors
|
|
{
|
|
uint8 *nightColors;
|
|
uint8 *dayColors;
|
|
float balance;
|
|
};
|
|
|
|
extern int32 extraVertColorOffset;
|
|
void registerExtraVertColorPlugin(void);
|
|
|
|
// Environment mat
|
|
|
|
struct EnvMat
|
|
{
|
|
int8 scaleX, scaleY;
|
|
int8 transScaleX, transScaleY;
|
|
int8 shininess;
|
|
Texture *texture;
|
|
};
|
|
|
|
extern int32 envMatOffset;
|
|
|
|
// Specular mat
|
|
|
|
struct SpecMat
|
|
{
|
|
float specularity;
|
|
Texture *texture;
|
|
};
|
|
|
|
extern int32 specMatOffset;
|
|
|
|
void registerEnvSpecPlugin(void);
|
|
|
|
// Pipeline
|
|
|
|
// 0x53F2009A CCustomCarEnvMapPipeline
|
|
//
|
|
// PC & Mobile:
|
|
// 0x53F20098 CCustomBuildingDNPipeline
|
|
// 0x53F2009C CCustomBuildingPipeline
|
|
//
|
|
// Xbox
|
|
// 0x53F2009E building !N !EN
|
|
// 0x53F20096 building N !EN
|
|
// 0x53F200A0 building !N EN (also env) non-DN custom instanceCB!
|
|
// 0x53F200A2 building N EN (also env) DN custom instanceCB!
|
|
|
|
extern int32 pipelineOffset;
|
|
|
|
void registerPipelinePlugin(void);
|
|
uint32 getPipelineID(Atomic *atomic);
|
|
void setPipelineID(Atomic *atomic, uint32 id);
|
|
|
|
// 2dEffect
|
|
|
|
extern int32 twodEffectOffset;
|
|
|
|
void register2dEffectPlugin(void);
|
|
|
|
// Collision
|
|
|
|
extern int32 collisionOffset;
|
|
|
|
void registerCollisionPlugin(void);
|
|
|
|
// PDS pipes
|
|
|
|
void registerPDSPipes(void);
|
|
|
|
}
|