struct CryEngineDecalInfo { SDecalOwnerInfo ownerInfo; Vec3 vPos; Vec3 vNormal; float fSize; float fLifeTime; float fAngle; struct IStatObj * pIStatObj; Vec3 vHitDirection; float fGrowTime, fGrowTimeAlpha; unsigned int nGroupId; bool bSkipOverlappingTest; bool bAssemble; bool bForceEdge; bool bForceSingleOwner; bool bDeferred; uint8 sortPrio; char szMaterialName[_MAX_PATH]; bool preventDecalOnGround; const Matrix33* pExplicitRightUpFront; };
CryEngineDecalInfo.h
bool bAssemble;
Assemble to bigger decals if more than 1 decal is on the same place
bool bDeferred;
bool bForceEdge;
force the decal to the nearest edge of the owner mesh and project it accordingly
bool bForceSingleOwner;
Do not attempt to cast the decal into the environment even if it's large enough
bool bSkipOverlappingTest;
Always spawn decals even if there are a lot of other decals in same place
float fAngle;
Angle of rotation
float fGrowTime;
float fGrowTimeAlpha;
float fLifeTime;
Decal life time (in seconds)
float fSize;
Decal size
unsigned int nGroupId;
Used for multi-component decals
SDecalOwnerInfo ownerInfo;
const Matrix33* pExplicitRightUpFront;
mainly for decal placement support
struct IStatObj * pIStatObj;
Decal geometry
bool preventDecalOnGround;
mainly for decal placement support
uint8 sortPrio;
char szMaterialName[_MAX_PATH];
name of material used for rendering the decal (in favor of szTextureName/nTid and the default decal shader)
Vec3 vHitDirection;
Direction from weapon/player position to decal position (bullet direction)
Vec3 vNormal;
Decal/face normal
Vec3 vPos;
Decal position (world coordinates)
CryEngineDecalInfo();
the constructor fills in some non-obligatory fields; the other fields must be filled in by the client
void GetMemoryUsage(ICrySizer * pSizer) const;