Commit Graph

183 Commits

Author SHA1 Message Date
Christoph Oelckers d7e183d46d - fixed compilation of file system code. 2019-10-31 18:06:05 +01:00
Christoph Oelckers 8ef40c5083 - merged most of Blood's resource manager into the file system 2019-10-31 17:13:48 +01:00
Christoph Oelckers 261af9e401 - rework of the file system code.
Made more efficient by basing the lookup on names, not strings and some additions for acting as a stand-in for Blood's resource manager.
2019-10-31 01:48:10 +01:00
Christoph Oelckers 693095bffb - added access wrappers to the two fields of DICTNODE that are accessed from the outside.
The idea here is to completely merge the resource management into the file system so that Blood's DICTNODE is merely an alias to the internal FResourceLump.

A two-tiered resource system is not something I consider worthwile, it made sense to get around Builds crappy cache but in the long term this is not a good solution for a multi-game port to have a resource management system in the backend and another one put over it in the front end, both with their own caching logic that might interfere with each other. Better merge it into one that can handle everything.
2019-10-31 00:50:45 +01:00
Christoph Oelckers c6753a3fec - tested and fixed game list loader. 2019-10-31 00:41:56 +01:00
Christoph Oelckers 2a7beeff69 - cleaned out some chunks of unused or useless code, most importantly the Build cache which was only used by the sound code for permanently loading the data into memory. 2019-10-30 21:51:04 +01:00
Christoph Oelckers 5b1036093c - fixed startup. 2019-10-30 19:55:03 +01:00
Christoph Oelckers 266dc9e04e - added SW search paths to new code and cleaned up the init code. 2019-10-30 19:26:55 +01:00
Christoph Oelckers ea10e01cc3 - adjustments for last commit. 2019-10-30 18:27:52 +01:00
Christoph Oelckers 418ec0d829 - adjustment to cherry-picked commit. 2019-10-30 18:21:59 +01:00
Christoph Oelckers 3e5d5a9a3d - it's "loadgrp". 2019-10-30 18:09:38 +01:00
Christoph Oelckers 7f250fc3e8 - WIP on game data search. 2019-10-30 18:09:00 +01:00
Christoph Oelckers 5e76fd659a - search path WIP. 2019-10-29 23:57:28 +01:00
Christoph Oelckers b56dae0e9a - changed path scanner to return only absolute paths and fixed the directory iterator to construct the proper path.
Also avoid collecting duplicate paths.
2019-10-29 21:06:14 +01:00
Christoph Oelckers ac87665972 - use std::filesystem for directory traversal.
So far implemented for scanning search paths
2019-10-29 19:53:46 +01:00
Christoph Oelckers 35342526a5 - WIP search path code
The Steam/GOG path getters were taken out of the frontends.
This also switches the Windows directory reader touse the wide string version to get Unicode file names.
Some paths were added to the config file instead of hard coding them.
2019-10-29 01:00:44 +01:00
Christoph Oelckers cfd9edbe71 - added the main FileSystem class. 2019-10-29 00:15:36 +01:00
Christoph Oelckers 82c844e405 - added GZDoom's resource management classes. 2019-10-28 23:46: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 a72863112b - fix compilation 2019-10-28 17:50:08 +01:00
Christoph Oelckers 21f6178ade - avoid writing directly to a backend status variable 2019-10-28 07:10:56 +01:00
Christoph Oelckers 901b86577e - more cleanup
Moving init code and key binding getter to backend
2019-10-28 07:05:32 +01:00
Christoph Oelckers 4f4fc1a8d4 - Cleanup 2019-10-28 07:02:42 +01:00
Christoph Oelckers c589a6ab82 - replaced KEY_PRESSED globally
This was just a redundant name getting in the way.
2019-10-28 07:01:01 +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 f8203ac766 - fixed the compile errors and consolidated the key binding CCMDs. 2019-10-28 06:47:49 +01:00
Christoph Oelckers e7f75cbf4d WIP 2019-10-28 01:12:31 +01:00
Christoph Oelckers 113b5d9037 - added an input state class which will contain all game-facing input data state.
Having this grouped in a single object will make refactoring a lot easier.
Access functions have been provided to avoid changing client code for the reorganization.
2019-10-28 00:24:09 +01:00
CommonLoon102 43da4b68a2 feature: show player names (#234)
# Conflicts:
#	source/blood/src/config.cpp
#	source/blood/src/config.h
#	source/blood/src/menu.cpp
#	source/blood/src/osdcmd.cpp
2019-10-27 22:24:30 +01:00
Christoph Oelckers bfea07570a - mapped the remaining Shadow Warrior options to the CVARs. 2019-10-27 16:53:00 +01:00
Christoph Oelckers 2e7ba30068 - a bit more config cleanup. 2019-10-27 14:09:56 +01:00
Christoph Oelckers 5386366ec4 - fix for last commit. 2019-10-27 13:48:03 +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 038c1ba4ba - more CVARs. 2019-10-27 09:53:09 +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 249f6e9d62 - consolidated the joystick and mouse setup code. 2019-10-26 23:45:55 +02:00
Christoph Oelckers b2d7179dbe - consolidated the 4 sets of mouse and joystick configuration variables. 2019-10-26 21:50:49 +02:00
Christoph Oelckers 70a7d1bd82 - save all bound keys, not only the one with commands that have both slots assigned. 2019-10-26 21:16:23 +02:00
Christoph Oelckers db1a9a9363 - the config finally get saved.
Still with a few errors, though.
2019-10-26 20:47:37 +02:00
Christoph Oelckers f53c9f6947 - save stuff to the new config. 2019-10-26 19:24:46 +02:00
Christoph Oelckers 1e0d49f947 - game starts again. 2019-10-26 13:16:32 +02:00
Christoph Oelckers 0d878a8604 - some needed cleanup on the control code before testing can start. 2019-10-26 10:16:39 +02:00
Christoph Oelckers 5abc034540 - added a set of left handed key bindings because neither of the offerings is really good for that. 2019-10-26 09:22:49 +02:00
Christoph Oelckers cfaafcede7 - everything compiles again (not tested yet.) 2019-10-26 00:32:49 +02:00
Christoph Oelckers c3dc4f35be - cleanup and license added. 2019-10-25 19:07:14 +02:00
Christoph Oelckers 918d121d99 - fixed missing include paths 2019-10-25 02:07:46 +02:00
Christoph Oelckers e8cf6c3d32 - fixed mus_device CVar and reenabled WinMM device. 2019-10-24 21:02:07 +02:00
Christoph Oelckers 9648c026a9 - small adjustments 2019-10-24 20:36:18 +02:00
Christoph Oelckers 8730ce552b - make things compile again.
Let's hope it still works...
2019-10-24 20:28:46 +02:00
Christoph Oelckers 3ed87f449e - and the last 2 hud CVARS for Blood… 2019-10-24 01:41:55 +02:00
Christoph Oelckers 3efb54e167 - ported most of the remaining HUD CVars 2019-10-24 01:30:33 +02:00
Christoph Oelckers 966751b7e8 - added GZDoom's font code and some dependencies. 2019-10-24 01:20:58 +02:00
Christoph Oelckers 2fa5e339fc - added GZDoom's 2D drawer to the project.
So that for anything new I don't have to bother with the awful 2D interface Build provides.
2019-10-23 22:51:11 +02:00
Christoph Oelckers 20df360778 - converted the Polymost CVARs. 2019-10-23 21:11:37 +02:00
Christoph Oelckers ee5f0a7cf6 - cleaned out the remains of the frontends' CVAR definitions. 2019-10-23 18:58:34 +02:00
Christoph Oelckers 21d90fd08b - fixed compilation. 2019-10-23 18:36:48 +02:00
Christoph Oelckers 02fff2df06 - refactored wchoice and sensitivity CVARS
This is all that's needed for now, the remaining ones can wait.
2019-10-23 17:21:14 +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 43413e4dff - r_useprecache 2019-10-23 14:39:33 +02:00
Christoph Oelckers 63f020996e - a few more CVARs 2019-10-23 01:30:43 +02:00
Christoph Oelckers 5dec4736ce - r_drawweapon, r_showfps, r_showfpsperiod 2019-10-23 01:04:07 +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 b73cf76f05 - in_mousebias and in_mousedeadzone
Actually, two totally useless options being preserved for historical significance.

Urgh.
2019-10-23 00:55:48 +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 8f06f0748d - minor CVAR cleanup and refactoring of one more 2019-10-23 00:30:51 +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 3f48ecd479 - 5 more Blood exclusive CVARs. 2019-10-22 02:15:24 +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 d2be5a4db9 - removed the OSD CVARs
They'll be removed anyway when the current OSD is tossed.
No need to bother.
2019-10-22 01:16:02 +02:00
Christoph Oelckers 38187a1870 - simple to convert demo CVARs 2019-10-22 01:06:02 +02:00
Christoph Oelckers c5cb86bf2b - sevral simple CVARs ported 2019-10-22 01:00:22 +02:00
Christoph Oelckers 279c0caea4 - autosave variables 2019-10-22 00:58:51 +02:00
Christoph Oelckers dbe3cadd0f - refactored autorunning CVARs 2019-10-22 00:52:07 +02:00
Christoph Oelckers 87653b50d4 - these were missing. 2019-10-22 00:18:58 +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 f7b9fb92c1 - added back ZDoom's CVAR code and hooked into the OSD.
This has the distinct advantage, aside from much cleaner coding, that it can interoperate with the gameconfigfile class.
2019-10-21 22:39:26 +02:00
Christoph Oelckers bc8578e153 - brought in GZDoom's gameconfigfile so that the settings can be transitioned to a more robust implementation. 2019-10-21 21:36:05 +02:00
Christoph Oelckers 1269a1715f Fixed stupid typo in class name
It should read BuildTiles, not BuildFiles.
It's a tile manager, not a file manager!
2019-10-21 09:22:55 +02:00
Christoph Oelckers 64959be33e - Don't use the global cache for caching tiles
Sincce the cache is scheduled for removal anyway this makes no sense, this should be handled by a more generic texture eviction logic that's needed anyway to deal with accumulating texture data.
2019-10-21 01:01:38 +02:00
Christoph Oelckers 5022c58a63 - refactored the file access in the rest of the DN3D frontend and in some duplicated code in the Blood frontend. 2019-10-20 23:37:07 +02:00
Christoph Oelckers d3c2d8e96f - refactored file access in the movie player. 2019-10-20 22:48:21 +02:00
Christoph Oelckers 1b96861615 - consolidated RTS code, because there were 3 copies.
Also completely rewritten to get rid of the cache dependency.
2019-10-20 19:13:44 +02:00
Christoph Oelckers c3d742dda0 - really delete the textures. 2019-10-20 10:52:56 +02:00
Christoph Oelckers 6f4ca480b5 - sky clamping may only be done in Blood for now.
This needs a better solution.
2019-10-19 20:25:58 +02:00
Christoph Oelckers bc986b8054 - make the engine consistently use BGRA data - the internal palettes were still RGBA, which caused problems down the line.
- increased cache size to 200 MB (Note: The cache really needs to be replaced with something better that can adapt better to a system's RAM size.)
2019-10-19 10:22:02 +02:00
Christoph Oelckers 4142d3792b - delete BUILDART header if found.
This will otherwise cause problems down the line because these 8 bytes are ignored in the offsets.
2019-10-19 00:26:43 +02:00
Christoph Oelckers 9f357248e5 - fixed crash on shutdown. 2019-10-18 19:11:18 +02:00
Christoph Oelckers dab7c43f7c - fixed all compiler errors.
It mostly works again, but still has a few glitches.
2019-10-18 19:06:57 +02:00
Christoph Oelckers 530a9944f7 - texture loader redone but not tested yet
Models are currently non-functional and need to reroute their texture handling to the global texture manager instead of handling everything themselves.

Voxels also need a bit of work to make their texture management more automated.
2019-10-18 11:37:07 +02:00
Christoph Oelckers c6514949e3 - texture creation WIP. 2019-10-18 00:20:27 +02:00
Christoph Oelckers 3da49ad20a - safety commit: all relevant code for the texturing system has been moved to texcache.cpp. 2019-10-17 21:44:34 +02:00
Christoph Oelckers bef8c9ae76 - hictinting cleanup.
This needs to be moved into the backend, and partially into the shader. So far this only removes the code from the main rendering logic, the final implementation is not done yet.
It had to go because it required the main rendering code to look deep into the texture data which would be a major blocker for refactoring.
2019-10-17 20:29:58 +02:00
Christoph Oelckers 1426ebec20 Moved hightile replacement data into the textures
Not tested yet!
2019-10-17 12:45:25 +02:00