diff --git a/src/game/chr.c b/src/game/chr.c index 3e8f78571..c9ba3ed50 100644 --- a/src/game/chr.c +++ b/src/game/chr.c @@ -4544,7 +4544,17 @@ void chrTestHit(struct prop *prop, struct shotdata *shotdata, bool isshooting, b if (hitpart) { if (chrGetShield(chr) > 0.0f) { - var8005efc0 = 10.0f / model->scale; +#ifndef PLATFORM_N64 + /** + * var8005efc0 > 0.0f adds a padding to bbox hit detection + * in modelTestBboxNodeForHit() that accounts for a character's + * surrounding shield. We skip this step on PC when checking + * line-of-sight hits to light artifacts because lights should + * be visible through the transparent shield. + */ + if (g_BgHitXluDisabled == false) +#endif + var8005efc0 = 10.0f / model->scale; } child = prop->child; diff --git a/src/include/bss.h b/src/include/bss.h index 5382431b1..63dc22fb9 100644 --- a/src/include/bss.h +++ b/src/include/bss.h @@ -295,6 +295,7 @@ extern s32 g_JpnMaxCacheItems; extern s32 var8009d370jf; #ifndef PLATFORM_N64 extern bool g_ValidGbcRomFound; +extern bool g_BgHitXluDisabled; #endif #endif