Update trace masks

Changed trace masks to reflect that of the engine.
This commit is contained in:
Kawe Mazidjatari 2023-01-22 01:43:31 +01:00
parent aa22460924
commit 437b80eac4

View File

@ -97,56 +97,46 @@
// -----------------------------------------------------
// spatial content masks - used for spatial queries (traceline,etc.)
// -----------------------------------------------------
#define MASK_ALL (0xFFFFFFFF)
#define TRACE_MASK_ALL (0xFFFFFFFF)
// everything that is normally solid
#define MASK_SOLID (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_MONSTER|CONTENTS_GRATE)
#define TRACE_MASK_SOLID (CONTENTS_MONSTER|CONTENTS_MOVEABLE|CONTENTS_PHYSICSCLIP|CONTENTS_GRATE|CONTENTS_WINDOW|CONTENTS_SOLID)
// everything that blocks player movement
#define MASK_PLAYERSOLID (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_PLAYERCLIP|CONTENTS_WINDOW|CONTENTS_MONSTER|CONTENTS_GRATE)
#define TRACE_MASK_PLAYERSOLID (CONTENTS_MONSTER|CONTENTS_PLAYERCLIP|CONTENTS_MOVEABLE|CONTENTS_GRATE|CONTENTS_WINDOW|CONTENTS_SOLID)
// blocks titan movement
#define TRACE_MASK_TITANSOLID (CONTENTS_MONSTER|CONTENTS_TITANCLIP|CONTENTS_MOVEABLE|CONTENTS_GRATE|CONTENTS_WINDOW|CONTENTS_SOLID)
// blocks npc movement
#define MASK_NPCSOLID (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_MONSTERCLIP|CONTENTS_WINDOW|CONTENTS_MONSTER|CONTENTS_GRATE)
#define TRACE_MASK_NPCSOLID (CONTENTS_MONSTER|CONTENTS_MONSTERCLIP|CONTENTS_MOVEABLE|CONTENTS_GRATE|CONTENTS_WINDOW|CONTENTS_SOLID)
// blocks fluid movement
#define MASK_NPCFLUID (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_MONSTERCLIP|CONTENTS_WINDOW|CONTENTS_MONSTER)
// water physics in these contents
#define MASK_WATER (CONTENTS_WATER|CONTENTS_MOVEABLE|CONTENTS_SLIME)
// everything that blocks lighting
#define MASK_OPAQUE (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_OPAQUE)
// everything that blocks lighting, but with monsters added.
#define MASK_OPAQUE_AND_NPCS (MASK_OPAQUE|CONTENTS_MONSTER)
// everything that blocks line of sight for AI
#define MASK_BLOCKLOS (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_BLOCKLOS)
// everything that blocks line of sight for AI plus NPCs
#define MASK_BLOCKLOS_AND_NPCS (MASK_BLOCKLOS|CONTENTS_MONSTER)
// everything that blocks line of sight for players
#define MASK_VISIBLE (MASK_OPAQUE|CONTENTS_IGNORE_NODRAW_OPAQUE)
// everything that blocks line of sight for players, but with monsters added.
#define MASK_VISIBLE_AND_NPCS (MASK_OPAQUE_AND_NPCS|CONTENTS_IGNORE_NODRAW_OPAQUE)
// bullets see these as solid
#define MASK_SHOT (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_MONSTER|CONTENTS_WINDOW|CONTENTS_DEBRIS|CONTENTS_HITBOX)
// for finding floor height
#define MASK_FLOORTRACE (CONTENTS_SOLID|CONTENTS_MOVEABLE| CONTENTS_WINDOW|CONTENTS_DEBRIS)
// for csgo weapon clipping
#define MASK_WEAPONCLIPPING (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_MONSTER|CONTENTS_WINDOW|CONTENTS_DEBRIS)
// bullets see these as solid, except monsters (world+brush only)
#define MASK_SHOT_BRUSHONLY (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_DEBRIS)
// non-raycasted weapons see this as solid (includes grates)
#define MASK_SHOT_HULL (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_MONSTER|CONTENTS_WINDOW|CONTENTS_DEBRIS|CONTENTS_GRATE)
// hits solids (not grates) and passes through everything else
#define MASK_SHOT_PORTAL (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_MONSTER)
#define TRACE_MASK_NPCFLUID (CONTENTS_MONSTER|CONTENTS_MONSTERCLIP|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_SOLID)
// everything normally solid, except monsters (world+brush only)
#define MASK_SOLID_BRUSHONLY (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_GRATE)
#define TRACE_MASK_SOLID_BRUSHONLY (CONTENTS_MOVEABLE|CONTENTS_PHYSICSCLIP|CONTENTS_GRATE|CONTENTS_WINDOW|CONTENTS_SOLID)
// everything normally solid for player movement, except monsters (world+brush only)
#define MASK_PLAYERSOLID_BRUSHONLY (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_PLAYERCLIP|CONTENTS_GRATE)
#define TRACE_MASK_PLAYERSOLID_BRUSHONLY (CONTENTS_PLAYERCLIP|CONTENTS_MOVEABLE|CONTENTS_GRATE|CONTENTS_WINDOW|CONTENTS_SOLID)
// everything normally solid for npc movement, except monsters (world+brush only)
#define MASK_NPCSOLID_BRUSHONLY (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_MONSTERCLIP|CONTENTS_GRATE)
#define TRACE_MASK_NPCSOLID_BRUSHONLY (CONTENTS_MONSTERCLIP|CONTENTS_MOVEABLE|CONTENTS_GRATE|CONTENTS_WINDOW|CONTENTS_SOLID)
// water physics in these contents
#define TRACE_MASK_WATER (CONTENTS_WATER|CONTENTS_SLIME)
// everything that blocks lighting
#define TRACE_MASK_OPAQUE (CONTENTS_MOVEABLE|CONTENTS_OPAQUE|CONTENTS_SOLID)
// everything that blocks lighting, but with monsters added.
#define TRACE_MASK_OPAQUE_AND_NPCS (TRACE_MASK_OPAQUE|CONTENTS_MONSTER)
// everything that blocks line of sight for AI
#define TRACE_MASK_BLOCKLOS (CONTENTS_BLOCKLOS|CONTENTS_MOVEABLE|CONTENTS_OPAQUE|CONTENTS_SOLID)
// everything that blocks line of sight for AI plus NPCs
#define MASK_BLOCKLOS_AND_NPCS (TRACE_MASK_BLOCKLOS|CONTENTS_MONSTER)
// everything that blocks line of sight for players
#define TRACE_MASK_VISIBLE (TRACE_MASK_OPAQUE|CONTENTS_IGNORE_NODRAW_OPAQUE)
// everything that blocks line of sight for players, but with monsters added.
#define TRACE_MASK_VISIBLE_AND_NPCS (TRACE_MASK_OPAQUE_AND_NPCS|CONTENTS_MONSTER)
// bullets see these as solid, except monsters (world+brush only)
#define TRACE_MASK_SHOT_BRUSHONLY (CONTENTS_DEBRIS|CONTENTS_BULLETCLIP|CONTENTS_MOVEABLE|CONTENTS_WATER|CONTENTS_SLIME|CONTENTS_WINDOW|CONTENTS_SOLID)
// bullets see these as solid
#define TRACE_MASK_SHOT (CONTENTS_HITBOX|CONTENTS_MONSTER|TRACE_MASK_SHOT_BRUSHONLY)
// bullets see these as solid, except monsters (world+brush only)
#define TRACE_MASK_SHOT_HULL (CONTENTS_DEBRIS|CONTENTS_MONSTER|CONTENTS_BULLETCLIP|CONTENTS_MOVEABLE|CONTENTS_GRATE|CONTENTS_WINDOW|CONTENTS_SOLID)
// grenades see these as solid
#define TRACE_MASK_GRENADE (CONTENTS_HITBOX|TRACE_MASK_SHOT_HULL)
// just the world, used for route rebuilding
#define MASK_NPCWORLDSTATIC (CONTENTS_SOLID|CONTENTS_WINDOW|CONTENTS_MONSTERCLIP|CONTENTS_GRATE)
// just the world, used for route rebuilding
#define MASK_NPCWORLDSTATIC_FLUID (CONTENTS_SOLID|CONTENTS_WINDOW|CONTENTS_MONSTERCLIP)
// These are things that can split areaportals
#define MASK_SPLITAREAPORTAL (CONTENTS_WATER|CONTENTS_SLIME)
// everything that blocks corpse movement
// UNDONE: Not used yet / may be deleted
#define MASK_DEADSOLID (CONTENTS_SOLID|CONTENTS_PLAYERCLIP|CONTENTS_WINDOW|CONTENTS_GRATE)
#define TRACE_MASK_NPCWORLDSTATIC (CONTENTS_MONSTERCLIP|CONTENTS_GRATE|CONTENTS_WINDOW|CONTENTS_SOLID)
#endif // BSPFLAGS_H