Well, most of the code there is actually to overwrite character definitions in many games where dialog box background, text color or style has been set via what_ parameters for every character separately - a feature of Ren'Py that should
never-ever be used,
unless you
really-really want to assign
different backgrounds, colors and styles to your characters.
Unfortunately, what I keep seeing in many games where the dev has made an attempt to change the default style of the dialog box, that this has been done by repeating exactly the same collection of what_ and who_ parameters for every single character
, while it should have been done by simply changing the style of the dialog box itself ('style say_dialogue' and 'style window').
For me this is a kind of nightmare, because this kind of use of character styles has the highest priority in Ren'Py (otherwise it wouldn't work) and the only way to disable it (that I know of) is to overwrite every one of those characters without those parameters.
I wish I had a way to disable this feature of Ren'Py, so that it would ignore all the what_ and who_ parameters in all the character definitions...
I've been digging through the Ren'Py code time and time again, but with my non-existent Python skills it's not easy to find which of the Ren'Py core files are responsible for reading these parameters and injecting them into the dialog box and how to change those files to stop them from doing just that and without breaking anything else. I guess I should ask some help with this.
Any dev can easily remove dialog box background, add the same kind of outlines to text and change text color to white by just adding these lines somewhere before the start label:
Python:
init:
style say_dialogue:
color "#FFFFFF"
outlines [ (absolute(2), "#000", absolute(1), absolute(1)) ]
style say_label:
outlines [ (absolute(2), "#000", absolute(1), absolute(1)) ]
style window:
background None
And that's it. There is no need for the whole patch.
If you want the same kind of quick menu, it's a bit different and more code, but also much less than there is in the patch right now.
___________________________________
A little addition:
In case you want to add outlines to input prompt and input text also, then you can add these lines to the previous ones (still under the init section):
Python:
style input_prompt:
color "#FFFFFF"
outlines [ (absolute(2), "#000", absolute(1), absolute(1)) ]
style input:
color "#FFFFFF"
outlines [ (absolute(2), "#000", absolute(1), absolute(1)) ]
To add outlines to all text without exceptions you don't have to change styles individually, you could change default style instead:
Python:
style default:
color "#FFFFFF"
outlines [ (absolute(2), "#000", absolute(1), absolute(1)) ]
If you want outlines to be scaled up and down with the game window and text inside it, you should drop
absolute()
and use plain numbers. Absolute means that the size is always 2 pixels, no matter how large the game window itself is at the moment. Without it the size is relative to the window size on your screen.
Python:
style default:
color "#FFFFFF"
outlines [ (2, "#000", 1, 1) ]