144 lines
5.1 KiB
C++
144 lines
5.1 KiB
C++
/////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// FILE : scene/entityTypes.h
|
|
// PURPOSE : commonly used definitions for entities (without having to bring in the whole entity.h)
|
|
// AUTHOR : John Whyte
|
|
// CREATED : 16/9/10
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _SCENE_ENTITYTYPES_H_
|
|
#define _SCENE_ENTITYTYPES_H_
|
|
|
|
|
|
enum eEntityType
|
|
{
|
|
ENTITY_TYPE_NOTHING,
|
|
ENTITY_TYPE_BUILDING, // CBuilding : CEntity
|
|
ENTITY_TYPE_ANIMATED_BUILDING, // CAnimatedBuilding : CDynamicEntity : CEntity
|
|
ENTITY_TYPE_VEHICLE, // CVehicle : CPhysical : CDynamicEntity : CEntity
|
|
ENTITY_TYPE_PED, // CPed : CPhysical : CDynamicEntity : CEntity
|
|
ENTITY_TYPE_OBJECT, // CObject : CPhysical : CDynamicEntity : CEntity
|
|
ENTITY_TYPE_DUMMY_OBJECT, // CDummyObject : CEntity
|
|
ENTITY_TYPE_PORTAL, // CPortalInst : CBuilding : CEntity
|
|
ENTITY_TYPE_MLO, // CInteriorInst : CBuilding : CEntity
|
|
ENTITY_TYPE_NOTINPOOLS, // Only used to trigger audio
|
|
ENTITY_TYPE_PARTICLESYSTEM, // CPtFxSortedEntity : CEntity
|
|
ENTITY_TYPE_LIGHT, // CLightEntity : CEntity
|
|
ENTITY_TYPE_COMPOSITE, // CCompEntity : CEntity
|
|
ENTITY_TYPE_INSTANCE_LIST, // CEntityBatch : CEntityBatchBase : CEntity
|
|
ENTITY_TYPE_GRASS_INSTANCE_LIST, // CGrassBatch : CEntityBatchBase : CEntity
|
|
ENTITY_TYPE_VEHICLEGLASSCOMPONENT, // CVehicleGlassComponentEntity : CEntity
|
|
|
|
ENTITY_TYPE_TOTAL
|
|
};
|
|
|
|
#if !RSG_FINAL && USE_PROFILER
|
|
static const char* entityTypeStr[] = {
|
|
|
|
"NOTHING",
|
|
"BUILDING",
|
|
"ANIMATED_BUILDING",
|
|
"VEHICLE",
|
|
"PED",
|
|
"OBJECT",
|
|
"DUMMY_OBJECT",
|
|
"PORTAL",
|
|
"MLO",
|
|
"NOTINPOOLS",
|
|
"PARTICLESYSTEM",
|
|
"LIGHT",
|
|
"COMPOSITE",
|
|
"INSTANCE_LIST",
|
|
"GRASS_INSTANCE_LIST",
|
|
"VEHICLEGLASSCOMPONENT",
|
|
};
|
|
CompileTimeAssert(sizeof(entityTypeStr) / sizeof(const char*) == ENTITY_TYPE_TOTAL);
|
|
#endif // !RSG_FINAL
|
|
|
|
enum
|
|
{
|
|
ENTITY_TYPE_MASK_NOTHING = 1 << ENTITY_TYPE_NOTHING,
|
|
ENTITY_TYPE_MASK_BUILDING = 1 << ENTITY_TYPE_BUILDING,
|
|
ENTITY_TYPE_MASK_ANIMATED_BUILDING = 1 << ENTITY_TYPE_ANIMATED_BUILDING,
|
|
ENTITY_TYPE_MASK_VEHICLE = 1 << ENTITY_TYPE_VEHICLE,
|
|
ENTITY_TYPE_MASK_PED = 1 << ENTITY_TYPE_PED,
|
|
ENTITY_TYPE_MASK_OBJECT = 1 << ENTITY_TYPE_OBJECT,
|
|
ENTITY_TYPE_MASK_DUMMY_OBJECT = 1 << ENTITY_TYPE_DUMMY_OBJECT,
|
|
ENTITY_TYPE_MASK_PORTAL = 1 << ENTITY_TYPE_PORTAL,
|
|
ENTITY_TYPE_MASK_MLO = 1 << ENTITY_TYPE_MLO,
|
|
ENTITY_TYPE_MASK_NOTINPOOLS = 1 << ENTITY_TYPE_NOTINPOOLS,
|
|
ENTITY_TYPE_MASK_PARTICLESYSTEM = 1 << ENTITY_TYPE_PARTICLESYSTEM,
|
|
ENTITY_TYPE_MASK_LIGHT = 1 << ENTITY_TYPE_LIGHT,
|
|
ENTITY_TYPE_MASK_COMPOSITE = 1 << ENTITY_TYPE_COMPOSITE,
|
|
ENTITY_TYPE_MASK_INSTANCE_LIST = 1 << ENTITY_TYPE_INSTANCE_LIST,
|
|
ENTITY_TYPE_MASK_GRASS_INSTANCE_LIST = 1 << ENTITY_TYPE_GRASS_INSTANCE_LIST,
|
|
ENTITY_TYPE_MASK_VEHICLEGLASSCOMPONENT = 1 << ENTITY_TYPE_VEHICLEGLASSCOMPONENT
|
|
};
|
|
|
|
enum eEntityOwnedBy
|
|
{
|
|
ENTITY_OWNEDBY_RANDOM,
|
|
ENTITY_OWNEDBY_TEMP,
|
|
ENTITY_OWNEDBY_FRAGMENT_CACHE,
|
|
ENTITY_OWNEDBY_GAME,
|
|
ENTITY_OWNEDBY_SCRIPT,
|
|
ENTITY_OWNEDBY_AUDIO,
|
|
ENTITY_OWNEDBY_CUTSCENE,
|
|
ENTITY_OWNEDBY_DEBUG,
|
|
ENTITY_OWNEDBY_OTHER,
|
|
ENTITY_OWNEDBY_PROCEDURAL,
|
|
ENTITY_OWNEDBY_POPULATION,
|
|
ENTITY_OWNEDBY_STATICBOUNDS,
|
|
ENTITY_OWNEDBY_PHYSICS,
|
|
ENTITY_OWNEDBY_IPL,
|
|
ENTITY_OWNEDBY_VFX,
|
|
ENTITY_OWNEDBY_NAVMESHEXPORTER,
|
|
ENTITY_OWNEDBY_INTERIOR,
|
|
ENTITY_OWNEDBY_COMPENTITY,
|
|
ENTITY_OWNEDBY_EXPLOSION,
|
|
ENTITY_OWNEDBY_LIVEEDIT,
|
|
ENTITY_OWNEDBY_REPLAY,
|
|
ENTITY_OWNEDBY_LAYOUT_MGR,
|
|
};
|
|
|
|
enum
|
|
{
|
|
ENTITY_OWNEDBY_MASK_RANDOM = 1 << ENTITY_OWNEDBY_RANDOM,
|
|
ENTITY_OWNEDBY_MASK_TEMP = 1 << ENTITY_OWNEDBY_TEMP,
|
|
ENTITY_OWNEDBY_MASK_FRAGMENT_CACHE = 1 << ENTITY_OWNEDBY_FRAGMENT_CACHE,
|
|
ENTITY_OWNEDBY_MASK_GAME = 1 << ENTITY_OWNEDBY_GAME,
|
|
ENTITY_OWNEDBY_MASK_SCRIPT = 1 << ENTITY_OWNEDBY_SCRIPT,
|
|
ENTITY_OWNEDBY_MASK_AUDIO = 1 << ENTITY_OWNEDBY_AUDIO,
|
|
ENTITY_OWNEDBY_MASK_CUTSCENE = 1 << ENTITY_OWNEDBY_CUTSCENE,
|
|
ENTITY_OWNEDBY_MASK_DEBUG = 1 << ENTITY_OWNEDBY_DEBUG,
|
|
ENTITY_OWNEDBY_MASK_OTHER = 1 << ENTITY_OWNEDBY_OTHER,
|
|
ENTITY_OWNEDBY_MASK_PROCEDURAL = 1 << ENTITY_OWNEDBY_PROCEDURAL,
|
|
ENTITY_OWNEDBY_MASK_POPULATION = 1 << ENTITY_OWNEDBY_POPULATION,
|
|
ENTITY_OWNEDBY_MASK_STATICBOUNDS = 1 << ENTITY_OWNEDBY_STATICBOUNDS,
|
|
ENTITY_OWNEDBY_MASK_PHYSICS = 1 << ENTITY_OWNEDBY_PHYSICS,
|
|
ENTITY_OWNEDBY_MASK_IPL = 1 << ENTITY_OWNEDBY_IPL,
|
|
ENTITY_OWNEDBY_MASK_VFX = 1 << ENTITY_OWNEDBY_VFX,
|
|
ENTITY_OWNEDBY_MASK_NAVMESHEXPORTER = 1 << ENTITY_OWNEDBY_NAVMESHEXPORTER,
|
|
ENTITY_OWNEDBY_MASK_INTERIOR = 1 << ENTITY_OWNEDBY_INTERIOR,
|
|
ENTITY_OWNEDBY_MASK_COMPENTITY = 1 << ENTITY_OWNEDBY_COMPENTITY,
|
|
ENTITY_OWNEDBY_MASK_EXPLOSION = 1 << ENTITY_OWNEDBY_EXPLOSION,
|
|
ENTITY_OWNEDBY_MASK_LIVEEDIT = 1 << ENTITY_OWNEDBY_LIVEEDIT,
|
|
ENTITY_OWNEDBY_MASK_REPLAY = 1 << ENTITY_OWNEDBY_REPLAY,
|
|
ENTITY_OWNEDBY_MASK_LAYOUT_MGR = 1 << ENTITY_OWNEDBY_LAYOUT_MGR,
|
|
};
|
|
|
|
|
|
enum ePrerenderStatus
|
|
{
|
|
PRERENDER_DONE,
|
|
PRERENDER_NEED_SECOND_PASS
|
|
};
|
|
|
|
class CEntity;
|
|
|
|
// necessary typedef - entity intersects with...
|
|
typedef bool (*IntersectingCB)(CEntity* pEntity, void* data);
|
|
|
|
#endif //_SCENE_ENTITYTYPES_H_
|