Running all the cython tasks in parallel at once is a bit violent. On my Docker
container for instance, it makes some processes be killed before they complete
because of resources exhaustion.
Using a ThreadPoolExecutor instance to limit the number of parallel tasks
guarantees there will be at least as much processes at the number of CPU plus 4
(up to 32) so that should be as fast as before without risking to reach the
host resources limit.
this should fix#6087 (dragging of nested viewports).
however, i don't see a way to fix scrolling of nested viewports via mousewheel also, now that a viewport is no longer focusable with a mouse/touch screen(rv.add_focus(self, renpy.display.render.Render.NO_MOUSE_FOCUS, 0, 0, width, height)).
on the other hand, i don't know if that would be very practical at all. so currently only the outer viewport makes use of the mouseweel property.
The built-in reset transform will now reset all transform properties
rather than only a small subset. This makes it more predictable (no more
guessing which properties it will reset) and also future proof as it no
longer requires being kept up to date as an explicit definition.
This was previously used to make allowances for Windows 7 and below,
however those conditions have been dropped along with Windows 7 support
and so there's no need to keep this function around.
If flag files, game/libs/libs.txt and game/mods/mods.txt exist.
In both cases, the files in the directory load in unicode order by
filename, and not by full path. Files in game/libs load before other
files in game, while those in game/mods load after other files in
games.
The main reason for this is to support CDSes that are distributed
in libraries. A CDS in game/libs/cds.rpy can be used in any file
in the main game.
Similarly, mods son't affect the parsing of the main game.
Per #6049.
If the import machinery is present, Python will try to use it when
loading lines for a traceback. This would lead to the wrong line
being shown in tracebacks.