[Suggestion] Heretic: Option to disable Strobe Lights
Closed this issue · 5 comments
While playing through heretic recently, I noticed that there is a huge amount of (unnecessary) strobe lights in this IWAD. There are some clever uses of it, e. g. to simulate water reflection, but they are few and far between. Most of the time it is just annoying and has headache potential.
As some kind of "accessability" feature for my next playthrough, I created an option to disable the strobe lights (incl. flash-lights and glowing-lights) in the option menu. I see it in a similar realm like disabling / reducing weapon bobbing to aid against motion sickness.
master...Noseey:crispy-doom:Disable_LightPulsing_Option
If there is interest in such an option for the official Crispy Heretic, I'd be glad to create a PR. Let me know your thoughts!
We already have this in Crispy Doom. It's an a11y feature that's only accessible from the setup, though. Please keep in mind that the engine must remain demo compatible even with this feature enabled, which required me to hop through some loops for Doom:
https://github.com/search?q=repo%3Afabiangreffrath%2Fcrispy-doom%20a11y_sector_lighting&type=code
Namely, T_LightFlash() calls P_Random() to determine how long the next light level is kept, which in turn affect when it is called the next time. I had to circumvent this with the additional sector->rlightlevel variable which is used in rendering.
We already have this in Crispy Doom. It's an a11y feature that's only accessible from the setup, though.
Oh.. maybe I should have had a look at Doom first... 😁
Namely,
T_LightFlash()callsP_Random()to determine how long the next light level is kept, which in turn affect when it is called the next time. I had to circumvent this with the additionalsector->rlightlevelvariable which is used in rendering.
Yeah, I know. this caused me quite some headache. In the end, I came to the very same solution, leaving the flash function untouched but instead introduced an fixedlightlevel-value that is considered in the renderer directly. I tested it using 3 demos and having a look at the demo-reel, so far it seems good compatibility-wise. A second pair of eyes might be helpful, however.
Hm, going forward, should I adapt my solution to match the doom setup approach then?
Hm, going forward, should I adapt my solution to match the doom setup approach then?
Yes, please do follow suit. I wouldn't want Crispy Heretic and Doom to divert in this regard.
Yes, please do follow suit. I wouldn't want Crispy Heretic and Doom to divert in this regard.
I have implemented it based upon the crispy-doom solution, the PR is created. 😃