3.1 is about texture packs. Packs got faster and learned to replace the fonts, and the weapons carry their own behaviour so a mod that renumbers the guns still works.
Added
Texture packs: fonts, JPEG, and keys
- Packs replace the fonts too. One image per character in a folder named after the font, with an
outlines/inside for the glow the menus draw. PD Plus ships 722 of them, and they now show: crisp menu text, and a highlighted item that is a letter with an outline rather than a bold glowing blob. - JPEG packs. A pack can be
.jpgas well as.png. PD Plus is three quarters JPEG; the port used 335 of its files before and uses 3395 now, every texture in it this ROM has. - Packs built for the VR fork drop straight in. A folder named
ext_tex, or one holding abottomup.txt, is read in the row order those packs come in, so nothing needs turning over first. - F9 reloads the pack where you stand - for looking at an image you have just edited - and F10 steps to the next installed pack, round through "none". Both bindable in Extended Options, alongside F7 (dump) and F8 (packs on and off).
Weapons carry their own behaviour
For modders: a modconfig can now set what used to be decided by weapon number in the code - what pump-actions, what winds up, what explodes when shot, what sticks where it lands, what poisons, which hand holds the detonator, which pickup sound plays, and more - so a mod that brings its own guns numbers them its own way and the game still knows what they do. weapon, weaponfunc and tvscreen blocks; tools/modcodediff on GE-X is what showed how much of a mod is only that.
Updated
- Textures no longer stutter in. Replacement images are decoded on a worker thread instead of where they are first drawn. The first sight of each texture used to cost the render thread a whole PNG, about a frame for a large one, which is the "streaming in" testers saw; it now draws the original for a frame and swaps.
- Text holds still. A replaced glyph is decoded once and kept, so text no longer flickers back to the game's own font when the texture cache turns over. A screen full of text also no longer starves the decoder: everything asked for is decoded, in turn, however much of it there is.
- Interlaced PNGs are read directly. Several hundred of PD Plus's glyphs are Adam7 interlaced, which used to go to a fallback decoder with a log line each. The port's own reader handles them now, checked byte for byte against that fallback over the whole pack.
- Texture pack folders are documented where they actually are:
texture-packs/beside the executable lists packs;textures/beside the executable is read by nothing. The Rice converter no longer dies partway through a pack on one odd file. - Video recording on Windows offers to fetch an encoder, and asks before spending the bandwidth.
Also
- The FPS counter and the ammo digits read as digits again in every configuration; a cache key that dropped the palette had made the numeric font solid blocks with no pack loaded at all.
- A mod's config no longer loses everything after a stage block naming a stage this build does not have.
- A great many smaller fixes across the mod and texture code.