From fbb6db7167edb6ac9ce7264337759386407ebcd1 Mon Sep 17 00:00:00 2001 From: James R Date: Tue, 9 Jan 2024 22:04:58 -0800 Subject: [PATCH 1/2] Add RF_HIDEINSKYBOX, stop rendering object in skybox --- src/deh_tables.c | 1 + src/r_defs.h | 1 + src/r_things.cpp | 6 ++++++ 3 files changed, 8 insertions(+) diff --git a/src/deh_tables.c b/src/deh_tables.c index f1273c78b..17b8aedbd 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -6858,6 +6858,7 @@ struct int_const_s const INT_CONST[] = { {"RF_DROPSHADOW",RF_DROPSHADOW}, {"RF_ABSOLUTELIGHTLEVEL",RF_ABSOLUTELIGHTLEVEL}, {"RF_REDUCEVFX",RF_REDUCEVFX}, + {"RF_HIDEINSKYBOX",RF_HIDEINSKYBOX}, {"RF_DONTDRAW",RF_DONTDRAW}, {"RF_DONTDRAWP1",RF_DONTDRAWP1}, {"RF_DONTDRAWP2",RF_DONTDRAWP2}, diff --git a/src/r_defs.h b/src/r_defs.h index 4a05ad7bb..6a6c07398 100644 --- a/src/r_defs.h +++ b/src/r_defs.h @@ -975,6 +975,7 @@ typedef enum RF_ABSOLUTELIGHTLEVEL = 0x00010000, // mobj_t.lightlevel is absolute instead of relative RF_REDUCEVFX = 0x00020000, // only mobj_t.owner can see this object + RF_HIDEINSKYBOX = 0x00040000, // do not render in skybox RF_DONTDRAW = 0x00F00000, // --Don't generate a vissprite RF_DONTDRAWP1 = 0x00100000, // No P1 diff --git a/src/r_things.cpp b/src/r_things.cpp index 9cb033f05..7f7543303 100644 --- a/src/r_things.cpp +++ b/src/r_things.cpp @@ -2790,6 +2790,12 @@ void R_AddSprites(sector_t *sec, INT32 lightlevel) limit_dist = (fixed_t)(cv_drawdist.value) * mapobjectscale; for (thing = sec->thinglist; thing; thing = thing->snext) { + // do not render in skybox + if ((thing->renderflags & RF_HIDEINSKYBOX) && portalskipprecipmobjs) + { + continue; + } + if (R_ThingWithinDist(thing, limit_dist)) { const INT32 oldobjectsdrawn = objectsdrawn; From 2ec91d647ff275e00c8448104429106f19aa06ec Mon Sep 17 00:00:00 2001 From: James R Date: Tue, 9 Jan 2024 22:05:13 -0800 Subject: [PATCH 2/2] Battle: do not render Overtime Barrier lasers in skybox --- src/k_battle.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/k_battle.c b/src/k_battle.c index 8e9aba69f..8b38f6ad6 100644 --- a/src/k_battle.c +++ b/src/k_battle.c @@ -642,7 +642,7 @@ static void K_SpawnOvertimeLaser(fixed_t x, fixed_t y, fixed_t scale) } mo->angle = R_PointToAngle2(mo->x, mo->y, battleovertime.x, battleovertime.y) + ANGLE_90; - mo->renderflags |= (RF_DONTDRAW & ~(K_GetPlayerDontDrawFlag(player))); + mo->renderflags |= (RF_DONTDRAW & ~(K_GetPlayerDontDrawFlag(player))) | RF_HIDEINSKYBOX; P_SetScale(mo, scale);