Last week I spent half of my time working on the 1.9.7 to-do issues and the other half on public MP server maintenance.
On the bugfix side, most notably I fixed an input processing glitch that made it difficult to press the Use key to skip to the next stage during Intermission. It was another instance of needing to sync input handling with the sharp 35 Hz ticks.
I also spent a considerable amount of time investigating a bug in the resource management subsystem that was preventing the engine from loading textures and flats in PK3 files on Unix platforms (e.g., DHTP). In the end, together with DaniJ we managed to find the issue and fix it. It came down to how file paths were being handled: Unix style paths are different than the ones on Windows, and the code was not treating them as intended.
Other Unix issues I fixed were related to locating plugins and installing resource files that are needed during the initial startup sequence.
The work I did on the MP server maintenance primarily consisted of setting up a new server maintenance script called doomsday-host. Its purpose is to automate the task of dedicated server upkeep: one can configure a set of servers using a config file, and the script will start them, store their output logs, restart a server if it has crashed, and automatically update the servers by rebuilding them after each build has been tagged in the repository. I expect this will free up more of my time for working on the 1.9.7 to-do issues and improve the MP game availability as the games won't stay down after having crashed.
I plan to continue working on the to-do list starting with an investigation into why dedicated servers are not working at the moment.
Last week I was predominantly focused on resolving 1.9.7 to-do issues and polishing up HacX support.
The Deh Read plugin's support of [Frame] patches was broken, leading to sprite names being mapped incorrectly to states. This fix should also address the issues seen when playing Doom mods such as Batman Doom.
In Doomsday, Mobjs will automatically cast shadows onto the surrounding map geometry. However, HacX, Chex Quest and various user-made mods use the tactic of supplying "empty" sprite graphics (all masked/zero-alpha) to "hide" the Mobj, resulting in nothing being drawn. Previously Doomsday would still draw shadows for such objects. This was addressed by making shadow strength a factor of sprite alpha. When preparing a texture for use as a sprite Doomsday now analyses the alpha content, calculating an average alpha value and a "coverage" fraction which is the ratio of non-alpha to alpha pixels. These two values are used to produce a weighted alpha factor for a sprite texture. Consequently a sprite containing no non-alpha pixels now produces no shadow.
The issue of model skies not working was resolved. It turned out to be a simple matter of an indexing mixup where the sky renderer uses 1-based indexes while the DED reader used zero-bases.
Numerous other bugs were found and fixed, not least of which being the resource location issues on Unix.
I also implemented a new cvar named "hud-cheat-counter-show-mapopen" which makes optional the old behavior of the items/kills/secrets counters displaying only while the automap is open.
This coming week I intend to continue focusing on the 1.9.7 to-do issues. As I can easily replicate the "stuck controls" issue, I plan to look at this first.