diff --git a/src/d_player.h b/src/d_player.h index ff4b6f40e..03efa55ec 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -78,7 +78,8 @@ typedef enum PF_KICKSTARTACCEL = 1<<4, // Accessibility feature: Is accelerate in kickstart mode? PF_POINTME = 1<<5, // An object is calling for my attention (via Obj_PointPlayersToMobj). Unset every frame! - // 1<<6 free + + PF_CASTSHADOW = 1<<6, // Something is casting a shadow on the player PF_WANTSTOJOIN = 1<<7, // Spectator that wants to join diff --git a/src/deh_tables.c b/src/deh_tables.c index fc33e62ef..b36fa412c 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -5936,7 +5936,7 @@ const char *const PLAYERFLAG_LIST[] = { "KICKSTARTACCEL", // Accessibility feature: Is accelerate in kickstart mode? "POINTME", // An object is calling for my attention (via Obj_PointPlayersToMobj). Unset every frame! - "\x01", // free: 1<<6 (name un-matchable) + "CASTSHADOW", // Something is casting a shadow on the player "WANTSTOJOIN", // Spectator that wants to join diff --git a/src/k_kart.c b/src/k_kart.c index 11c97fd5a..fed523fc4 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -7738,6 +7738,8 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) player->cameraOffset = 0; + player->pflags &= ~(PF_CASTSHADOW); + if (player->curshield == KSHIELD_TOP) { mobj_t *top = K_GetGardenTop(player); diff --git a/src/objects/hyudoro.c b/src/objects/hyudoro.c index 552b77bfa..fba0492e3 100644 --- a/src/objects/hyudoro.c +++ b/src/objects/hyudoro.c @@ -560,6 +560,8 @@ hyudoro_patrol_hit_player if (player->hyudorotimer) return false; + player->pflags |= PF_CASTSHADOW; + // NO ITEM? if (!player->itemamount) return false; diff --git a/src/r_spritefx.cpp b/src/r_spritefx.cpp index ff0713bc8..0664819ff 100644 --- a/src/r_spritefx.cpp +++ b/src/r_spritefx.cpp @@ -28,6 +28,11 @@ INT32 R_ThingLightLevel(mobj_t* thing) // Darken on every other frame of instawhip cooldown lightlevel -= 128; } + + if (player->pflags & PF_CASTSHADOW) + { + lightlevel -= 255; + } } return lightlevel;