Files
GTASource/game/scene/EntityTypes.h
expvintl 419f2e4752 init
2025-02-23 17:40:52 +08:00

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_