From e2be36c3439a860e47e3d1aa565b0562ba2ffd55 Mon Sep 17 00:00:00 2001 From: James R Date: Fri, 25 Nov 2022 16:05:11 -0800 Subject: [PATCH] drawpickups command to hide collectible items --- src/r_main.c | 4 ++++ src/r_main.h | 1 + src/r_things.c | 20 ++++++++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/src/r_main.c b/src/r_main.c index 6c1ccf299..2c781509c 100644 --- a/src/r_main.c +++ b/src/r_main.c @@ -180,6 +180,8 @@ consvar_t cv_maxportals = CVAR_INIT ("maxportals", "2", CV_SAVE, maxportals_cons consvar_t cv_renderstats = CVAR_INIT ("renderstats", "Off", 0, CV_OnOff, NULL); +consvar_t cv_drawpickups = CVAR_INIT ("drawpickups", "Yes", CV_CHEAT, CV_YesNo, NULL); + void SplitScreen_OnChange(void) { UINT8 i; @@ -1646,4 +1648,6 @@ void R_RegisterEngineStuff(void) // Frame interpolation/uncapped CV_RegisterVar(&cv_fpscap); + + CV_RegisterVar(&cv_drawpickups); } diff --git a/src/r_main.h b/src/r_main.h index e7f5b9d4c..c3e60a0ca 100644 --- a/src/r_main.h +++ b/src/r_main.h @@ -117,6 +117,7 @@ extern consvar_t cv_drawdist, cv_drawdist_precip; extern consvar_t cv_fov[MAXSPLITSCREENPLAYERS]; extern consvar_t cv_skybox; extern consvar_t cv_tailspickup; +extern consvar_t cv_drawpickups; // Called by startup code. void R_Init(void); diff --git a/src/r_things.c b/src/r_things.c index 41dfc8585..43470152a 100644 --- a/src/r_things.c +++ b/src/r_things.c @@ -3443,6 +3443,26 @@ boolean R_ThingVisible (mobj_t *thing) if (thing->sprite == SPR_NULL) return false; + if (!cv_drawpickups.value) + { + switch (thing->type) + { + case MT_RING: + case MT_FLINGRING: + case MT_BLUESPHERE: + case MT_RANDOMITEM: + case MT_SPHEREBOX: + case MT_ITEMCAPSULE: + case MT_ITEMCAPSULE_PART: + case MT_BATTLECAPSULE: + case MT_BATTLECAPSULE_PIECE: + return false; + + default: + break; + } + } + if (r_viewmobj && (thing == r_viewmobj || (r_viewmobj->player && r_viewmobj->player->followmobj == thing))) return false;