* moved the ASCII conversion hackery in SDLayer to a subfunction because this made things just messy.
* integrated the keyboard callback's functionality directly into inputState for consolidation purposes. This was yet another independent layer in the keyboard management.
* hook up D_PostEvent as the central place to dispatch keyboard input. This is now the only function that is getting called from the backend and a major prerequiside for swapping out the backend for GZDoom's.
Todo: Route mouse input through that, too.
- consolidated the 3 identical S_OpenAudio implementations. The replacement code is disabled for the time being because it needs a rewrite. The replacement logic is uses is a bit too volatile.
- removed the old GRP scan code.
When doing this during startup it can be done by regular cleanup measures.
This also moves two larger chunks of networking code out of game.cpp.
Nevertheless, the fact that enet is a very dirty library which directly depends on Windows types is a big problem because it bleeds Windows definitions everywhere thanks to poor abstraction in all relevant layers.
Some part are not done yet, and the file system data is currently ignored - there's no way to properly set this up with the file system code Build came with.
- write the console log to the folder returned by M_GetDocumentsPath and not to the root game directory.
- removed G_ExtPreInit because it has become redundant. The search path setup will have to be redone anyway.
Blood was fine, albeit with an inverted scale, but the EDuke implementation was something very special - and not in a good way, using 4 CVARs to store the scaling state instead of one.
For Duke Nukem and its direct offspring (Nam, WW2GI and Redneck Rampage) the ramp is not a linear fade from 0 to 1, it needs to be a little darker than that.
Unfortunately the proper factor needed here must be set manually, this cannot really be calculated from the lookup tables.
- also removed the legacy fog modes because their implementation did not mix well with the texture system - they are also not really useful to begin with.
The last fog mode will most likely also be removed once true color shading is working but that one is less of an issue.
Unfortunately nothing of this can be fixed before the resource management has been refactored from the ground up. Sp for now this ugliness needs to suffice.
Renamed all elements still referring to zdoom.
removed the frontend specific resource data.
fixed startup dialog to accept ANSI date despite building as Unicode. This needed a bit of hackery because the macros in windowsx.h are not character set sensitive.
The EDuke32 and RedNukem frontends are working, Blood isn't yet.
Notes:
many of the CMake variables and its output still refer to zdoom. Before changing that I wanted to make sure to be able to commit something that works.
support code for Windows XP has been entirely removed. On Windows this will only target Vista and up.
the crc32.h header had to be renamed to deconflict from zlib.
several Windows API calls were changed to call the A-versions directly. Weirdly enough there were places that defined their parameters as T types but in a non-working way.
removed some remaining editor files and support for the native software rendering only Windows backend.
in a few simple cases, replaced 'char' with 'uint8_t'. The code as-is depends on chars being unsigned which is non-portable. This needs to be carefully reviewed.