Group NiGHTS star/chip hitboxes with rings

This commit is contained in:
spherallic 2023-09-20 15:42:19 +02:00
parent f02fd19c5a
commit 05926ceec8

View file

@ -267,18 +267,17 @@ static boolean is_tangible (mobj_t *thing)
boolean R_ThingBoundingBoxVisible(mobj_t *thing) boolean R_ThingBoundingBoxVisible(mobj_t *thing)
{ {
INT32 cvmode = cv_renderhitbox.value; INT32 cvmode = cv_renderhitbox.value;
boolean ring = false;
if (multiplayer) // No hitboxes in multiplayer to avoid cheating if (multiplayer) // No hitboxes in multiplayer to avoid cheating
return false; return false;
// Do not render bbox for these
switch (thing->type) switch (thing->type)
{ {
default: default:
// First person / awayviewmobj -- rendering // First person / awayviewmobj -- rendering a bbox
// a bbox too close to the viewpoint causes // too close to the viewpoint causes anomalies
// anomalies and these are exactly on the // and these are exactly on the viewpoint!
// viewpoint!
if (thing != r_viewmobj) if (thing != r_viewmobj)
{ {
break; break;
@ -290,6 +289,16 @@ boolean R_ThingBoundingBoxVisible(mobj_t *thing)
// are rendered using portals in Software, // are rendered using portals in Software,
// r_viewmobj does not point here. // r_viewmobj does not point here.
return false; return false;
case MT_RING:
case MT_BLUESPHERE:
case MT_NIGHTSSTAR:
case MT_NIGHTSCHIP:
// Rings and similar objects are often placed
// in large amounts, so they are handled
// separately from other tangible objects.
ring = true;
break;
} }
switch (cvmode) switch (cvmode)
@ -304,16 +313,10 @@ boolean R_ThingBoundingBoxVisible(mobj_t *thing)
return !is_tangible(thing); return !is_tangible(thing);
case RENDERHITBOX_TANGIBLE: case RENDERHITBOX_TANGIBLE:
// Exclude rings from here, lots of them! return !ring && is_tangible(thing);
if (thing->type == MT_RING)
{
return false;
}
return is_tangible(thing);
case RENDERHITBOX_RINGS: case RENDERHITBOX_RINGS:
return (thing->type == MT_RING || thing->type == MT_BLUESPHERE); return ring;
default: default:
return false; return false;