1
0
mirror of https://github.com/alliedmodders/hl2sdk.git synced 2025-09-19 20:16:10 +08:00

Update RnQueryObjectFlags (#315)

This commit is contained in:
Nukoooo
2025-08-02 21:51:40 +08:00
committed by GAMMACASE
parent 0a43005d39
commit 63f1a73ca4

View File

@ -41,14 +41,46 @@ enum CollisionFunctionMask_t
enum RnQueryObjectSet enum RnQueryObjectSet
{ {
RNQUERY_OBJECTS_STATIC = (1<<0), // AMNOTE:
RNQUERY_OBJECTS_DYNAMIC = (1<<1), // RNQUERY_OBJECTS_STATIC (0x1) is used in
RNQUERY_OBJECTS_NON_COLLIDEABLE = (1<<2), // CLightQueryGameSystem::OnPostSimulate
RNQUERY_OBJECTS_KEYFRAMED_ONLY = (1<<3) | (1<<8), // ray test by loading rays.bin
RNQUERY_OBJECTS_DYNAMIC_ONLY = (1<<4) | (1<<8), // CBaePlayerPawn::IsPlayerAimingAtTarget
// CBaseRagdoll related
// CSoundOpvarSetAutoRoomEntity::Spawn
// CNavSpaceBuildTreeJob
RNQUERY_OBJECTS_ALL_GAME_ENTITIES = RNQUERY_OBJECTS_DYNAMIC | RNQUERY_OBJECTS_NON_COLLIDEABLE, // RNQUERY_OBJECTS_STATIC | RNQUERY_OBJECTS_KEYFRAMED (0x3) is used in
RNQUERY_OBJECTS_ALL = RNQUERY_OBJECTS_STATIC | RNQUERY_OBJECTS_ALL_GAME_ENTITIES, // when decoy hit entity isn't player pawn
// RNQUERY_OBJECTS_KEYFRAMED | RNQUERY_OBJECTS_DYNAMIC (0x6) is used in
// checking if a grenade projectile has hit any player
// filtering bullet trace result
// checking if hit entity is a *_door_rotating
// checking if player is aiming at a CPointCommentaryNode
// RNQUERY_OBJECTS_LOCATABLE (0x8) is used in
// checking if a CSmokeGrenadeProjectile is exploded from inferno
// CGamePhysicsQueryInterface::EntitiesAlong* to add g_LocatableEntities to results
// RNQUERY_OBJECTS_KEYFRAMED | RNQUERY_OBJECTS_DYNAMIC | RNQUERY_OBJECTS_LOCATABLE (0xE) is used in
// CBotBreakableEnumerator
// CInferno::Think damage
// CBombTarget
// UTIL_EntitiesAlongRay
// CEnvShake::ApplyShake with type rumble
// CBaseFilter Think
// RNQUERY_OBJECTS_STATIC | RNQUERY_OBJECTS_KEYFRAMED | RNQUERY_OBJECTS_DYNAMIC | RNQUERY_OBJECTS_LOCATABLE (0xF) is used in pretty much every trace filter
RNQUERY_OBJECTS_STATIC = (1 << 0), // static body
RNQUERY_OBJECTS_KEYFRAMED = (1 << 1), // keyframed body
RNQUERY_OBJECTS_DYNAMIC = (1 << 2), // dynamic body
RNQUERY_OBJECTS_LOCATABLE = (1 << 3),
RNQUERY_OBJECTS_ALL_GAME_ENTITIES = RNQUERY_OBJECTS_KEYFRAMED | RNQUERY_OBJECTS_DYNAMIC | RNQUERY_OBJECTS_LOCATABLE,
RNQUERY_OBJECTS_ALL = RNQUERY_OBJECTS_STATIC | RNQUERY_OBJECTS_ALL_GAME_ENTITIES,
}; };
enum HitGroup_t enum HitGroup_t
@ -299,7 +331,7 @@ public:
uint32 m_nEntityIdsToIgnore[2]; // this is the ID of the game entity which should be ignored uint32 m_nEntityIdsToIgnore[2]; // this is the ID of the game entity which should be ignored
uint32 m_nOwnerIdsToIgnore[2]; // this is the ID of the owner of the game entity which should be ignored uint32 m_nOwnerIdsToIgnore[2]; // this is the ID of the owner of the game entity which should be ignored
uint16 m_nHierarchyIds[2]; // this is an ID for the hierarchy of game entities (used to disable collision among objects in a hierarchy) uint16 m_nHierarchyIds[2]; // this is an ID for the hierarchy of game entities (used to disable collision among objects in a hierarchy)
uint16 m_nObjectSetMask; // set of RnQueryObjectSet bits uint8 m_nObjectSetMask; // set of RnQueryObjectSet bits
uint8 m_nCollisionGroup; // one of the registered collision groups uint8 m_nCollisionGroup; // one of the registered collision groups
bool m_bHitSolid : 1; // if true, then query will hit solid bool m_bHitSolid : 1; // if true, then query will hit solid