Commit graph

52 commits

Author SHA1 Message Date
Christoph Oelckers
b4f91de7d3 - major refactoring on the input code.
* 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.
2019-11-04 00:55:49 +01:00
Christoph Oelckers
b747df60ee - moved all keyboard related code into the InputState class, so that looking for this stuff is easier.
Sadly there's 1ß00 lines of code using this...
2019-11-04 00:53:55 +01:00
Christoph Oelckers
c7af86bd00 - use proper key names. 2019-11-03 22:20:19 +01:00
Christoph Oelckers
1b958a7f9f - removed more backing data for the old keybinding code.
Unfortunately this means that the keybinding menus in all games except Blood are shot to shit right now because of how they passed the data on to its destination.
These menus are not fixable, this will have to wait until the replacement is up.
2019-11-03 20:58:10 +01:00
Christoph Oelckers
eb049abc3a - it compiles again (safety commit) 2019-11-03 20:24:50 +01:00
Christoph Oelckers
e24b1e8903 - replaced all uses of xxhash with SuperFastHash.
That's one more third party dependency down.
Not only are two hashing algorithms redundant, there was also a large size discrepancy: SuperFastHash is 3 kb of source code while xxhash is 120kb and generally extremely awful code.
It was easy to make a choice here. None of the use cases require this kind of performance tweaking, the longest hashed block of data is a 768 byte palette.
2019-11-02 22:52:13 +01:00
Christoph Oelckers
c54ae1be83 - removed the remaining parts of cache1d. The only thing left is the dummy cacheAllocateBlock function that needs to stick around until a working cache is present.
- disabled the user maps menu because it is hopelessly dependent on functionality that cannot be fixed. Better wait until the menu refactor to do it right - it'd be a waste of time fixing the current menus.
2019-11-02 01:30:21 +01:00
Christoph Oelckers
cfca8060ba - gutted cache1d. The old file system is gone, excepr for klistpath, which still gets used in a few places.
- 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.
2019-11-01 22:17:15 +01:00
Christoph Oelckers
762f174743 - moved the command line parser out of the game frontends.
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.
2019-10-28 22:19:50 +01:00
Christoph Oelckers
065721c62b - simplified the button state maintenance
This removes all unused parts of the implementation and moves the rest to the InputState class for easier replacement later. All MACT is doing now here is to call the UpdateStatus function, the internal workings are no longer relevant.
2019-10-28 07:00:31 +01:00
Christoph Oelckers
2e7ba30068 - a bit more config cleanup. 2019-10-27 14:09:56 +01:00
Christoph Oelckers
c0d5ca8ab8 - Config work almost done.
The only thing still referencing the old config file is Shadow Warrior's config read function.
2019-10-27 13:40:24 +01:00
Christoph Oelckers
cdc5044f07 - converted noautoload and forcesetup flags to CVARs. 2019-10-27 09:38:55 +01:00
Christoph Oelckers
4b5ec2aabb - transitioned the combat macros to the new config and made them independent for all games, so that everything can use the original text. (But considering that they are a multiplayer feature I'm not sure how much that is worth.)
- sort the config output alphabetically.
- do not use [=] as key names for the bindings.
2019-10-27 08:14:58 +01:00
Christoph Oelckers
b2d7179dbe - consolidated the 4 sets of mouse and joystick configuration variables. 2019-10-26 21:50:49 +02:00
Christoph Oelckers
cfaafcede7 - everything compiles again (not tested yet.) 2019-10-26 00:32:49 +02:00
Christoph Oelckers
3efb54e167 - ported most of the remaining HUD CVars 2019-10-24 01:30:33 +02:00
Christoph Oelckers
20df360778 - converted the Polymost CVARs. 2019-10-23 21:11:37 +02:00
Christoph Oelckers
21d90fd08b - fixed compilation. 2019-10-23 18:36:48 +02:00
Christoph Oelckers
18430c6c9f - refactored r_fpslimit
Also removed the entire cruft related to this - the pointless offsetting value and the precalculation of the timer value (as if we could not afford a single division for something that WAITS!

Unfortunately this required removal of the menu option for the time being.
2019-10-23 17:07:29 +02:00
Christoph Oelckers
7fd05edbba - missed one 2019-10-23 14:39:46 +02:00
Christoph Oelckers
63f020996e - a few more CVARs 2019-10-23 01:30:43 +02:00
Christoph Oelckers
e5d38b2d30 - in_mouseflip and in_mousesmoothing
in_mousemode removed from persistent state because of how it is used.
Saving it makes no sense.
2019-10-23 00:59:01 +02:00
Christoph Oelckers
c0c62fe367 - in_mouseaiming 2019-10-23 00:51:49 +02:00
Christoph Oelckers
7501120dc8 - in_mouse and in_joystick 2019-10-23 00:41:28 +02:00
Christoph Oelckers
713250cc64 - refactored a few more CVARs. 2019-10-23 00:20:27 +02:00
Christoph Oelckers
d476037f45 - hooked up hud_custom. 2019-10-22 23:43:16 +02:00
Christoph Oelckers
e5aa6c5df0 - refactored the HUD scaling into something manageable.
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.
2019-10-22 23:31:46 +02:00
Christoph Oelckers
a829f1cb52 - fixed all compile errors. 2019-10-22 17:47:24 +02:00
Christoph Oelckers
edce0d33e3 - refactored crosshairscale CVAR 2019-10-22 17:00:22 +02:00
Christoph Oelckers
bdf2d24b21 - refactored cl_weaponswitch 2019-10-22 02:31:14 +02:00
Christoph Oelckers
8431266d27 - refactoring of music CVARs
This is a lot of changes in a lot of code because nothing here was abstracted into the sound system. :(

Hopefully most of the affected code here can be tossed out soon, it's not pretty.
2019-10-22 02:01:05 +02:00
Christoph Oelckers
279c0caea4 - autosave variables 2019-10-22 00:58:51 +02:00
Christoph Oelckers
30e9eed1b3 - the next CVAR, cl_autoaim 2019-10-22 00:05:21 +02:00
Christoph Oelckers
79d02a405e - started transitioning the CVARs.
This is going to be a lot of work consolidating the 3 frontends' settings but a necessary evil for eventually getting Shadow Warrior to work as it is quite lacking here.
2019-10-21 23:29:48 +02:00
Christoph Oelckers
0e165e40a3 - first batch of adjustments to the new tile management.
- consolidated Polymost precaching and removed precaching for static tiles because they now are always loaded.
- removed cache configurability. On modern systems this is relatively pointless - allocating 50 or 100 MB is a non-issue - and the cache is due for replacement anyway.
2019-10-15 00:54:14 +02:00
Christoph Oelckers
93ad83b380 - use GZDoom's texture backend to read hightile textures. (Hightile tinting code moved to the shader but isn't active yet.
- remove all code for faking gamma correction through palette manipulated images.
2019-10-05 21:59:03 +02:00
Christoph Oelckers
ae1e090716 - all non-shader related GL calls are gone from the main code base. 2019-10-04 21:13:04 +02:00
Christoph Oelckers
2cbe211e7c - transitioned project to CMake and deleted most of the old build system.
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.
2019-09-22 23:15:46 +02:00
Christoph Oelckers
2dc051f7cf - put RedNukem game frontend into a namespace. 2019-09-22 00:10:48 +02:00
Christoph Oelckers
30c47a8511 - include namespace file in all sources as the very first include. 2019-09-21 20:59:54 +02:00
Christoph Oelckers
71b332459b - removed Android and Mapster headers plus raw EDuke assets in Blood folder. 2019-09-21 19:30:20 +02:00
Christoph Oelckers
998ac01157 - manual merge of all NBlood changes that couldn't get cherry picked. 2019-09-21 13:02:17 +02:00
nukeykt
996dfde6d0 Fix compile errors, backport input code for RR
# Conflicts:
#	platform/Windows/voidsw.vcxproj
#	source/blood/src/controls.cpp
#	source/blood/src/m32common.cpp
#	source/rr/src/actors.cpp
#	source/rr/src/anim.cpp
#	source/rr/src/demo.cpp
#	source/rr/src/game.cpp
#	source/rr/src/gameexec.cpp
#	source/rr/src/global.h
#	source/rr/src/menus.cpp
#	source/rr/src/menus.h
#	source/rr/src/net.cpp
#	source/rr/src/player.cpp
#	source/rr/src/premap.cpp
#	source/rr/src/savegame.cpp
#	source/rr/src/sbar.cpp
#	source/rr/src/screens.cpp
#	source/rr/src/sector.cpp
2019-09-21 11:39:19 +02:00
nukeykt
dbe93a1671 Fix accept option in game setup not returning to host game menu
patch from Striker
2019-09-21 09:54:00 +02:00
nukeykt
20420dc702 Semiworking mp 2019-09-21 09:53:59 +02:00
nukeykt
eafeb27996 Add NAM/NAPALM support
Big thanks to NY00123 for his NAM.EXE reconstruction work
2019-09-21 09:38:57 +02:00
nukeykt
bdd7bb72d8 NRedneck compiles with MSVC now
# Conflicts:
#	platform/Windows/eduke32.sln
#	source/build/src/tilepacker.cpp
#	source/rr/src/common.cpp
#	source/rr/src/duke3d.h
#	source/rr/src/game.cpp
#	source/rr/src/menus.cpp
#	source/rr/src/osdcmds.cpp
#	source/rr/src/screens.cpp
2019-09-21 09:25:29 +02:00
Christoph Oelckers
94cfcb4fbd - Redneck Rampage fixes for changes in timer and mouse input interface. 2019-09-20 22:07:53 +02:00
Christoph Oelckers
33b122d88a - renamed remaining vec2s_t's. 2019-09-20 11:47:21 +02:00