From 437b80eac4f039c56863f3cef07baeba187ea325 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 22 Jan 2023 01:43:31 +0100 Subject: [PATCH] Update trace masks Changed trace masks to reflect that of the engine. --- r5dev/public/bspflags.h | 76 ++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 43 deletions(-) diff --git a/r5dev/public/bspflags.h b/r5dev/public/bspflags.h index e9189f25..e24ee5ac 100644 --- a/r5dev/public/bspflags.h +++ b/r5dev/public/bspflags.h @@ -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