Commit graph

2880 commits

Author SHA1 Message Date
Christoph Oelckers
4bf6c306ab - added handling for cleariung mouse wheel events 2019-11-04 01:07:34 +01:00
Christoph Oelckers
29b7e1cf79 - moved all mouse button handling to the input state
Yet again an unbelievable piece of code working around how input works on modern systems to keep the old 90's code alive.
2019-11-04 01:01:54 +01:00
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
01d5d51f13 - pass key events to the event queue. 2019-11-03 22:46:01 +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
73e64ff0b2 - added ZDoom's keybinding class and some needed support code.
Not hooked up yet with the game.
2019-11-03 18:19:29 +01:00
Christoph Oelckers
12a02cb456 - fixed: lump filters without any dot in the name did not work. 2019-11-03 15:54:18 +01:00
Christoph Oelckers
b179767d4a - do not use the command line but the module filename to create the progdir path.
argv[0] is not guaranteed to contain anything usable and in cmd.exe it doesn't.
2019-11-03 13:39:42 +01:00
Christoph Oelckers
250fa0b847 - consolidation of exit and quit CCMDs. 2019-11-03 13:31:03 +01:00
Christoph Oelckers
59fce59a26 - fixed god mode being activated automatically, thanks to a variable that got initialized in the wrong place. 2019-11-03 12:46:53 +01:00
Christoph Oelckers
3c7151810f - made the game interfaces classes instead of function pointer lists because that is far better at error catching.
- fixed: Blood's monster flag is a 'have_monsters', not 'nomonsters' flag. As a result none were spawned.
2019-11-03 12:32:58 +01:00
Christoph Oelckers
d7e7c516a0 - fixed: In case no game data can be found, the config needs to be written, to ensure there is one for editing. 2019-11-03 10:51:47 +01:00
Christoph Oelckers
94aa556953 - some work on a generic cache manager.
For main resource data this is probably unnecessary - most resources are never cached with the exception of sounds and textures, which are loaded permanently anyway.
But for hardware textures this is different. Due to the poor precaching it is impossible to selectively evict hardware textures that are not needed any longer, so for this an MRU cache is really needed so that they do not accumulate and congest the video RAM in the process.
2019-11-03 10:00:19 +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
d25691881b - removed unused lz4 library.
It looks like this was already unused and a leftover.
2019-11-02 22:27:05 +01:00
Christoph Oelckers
7853a9db6c - do not use EDuke32's savegame identifiers.
The engine may be incopatible already and the format will certainly change in the future.
2019-11-02 22:22:57 +01:00
Christoph Oelckers
3530c52264 - no need to have 2 CRC32 implementations.
Just let Bcrc32 point to zlib instead of having its own implementation.
2019-11-02 22:10:53 +01:00
Christoph Oelckers
4e3ad17e4a - tweaking of the game selection display. 2019-11-02 21:43:17 +01:00
Christoph Oelckers
cfbcf33c8c - fixed CVAR saving.
- do not use snd_enabled for temporarily hacking the sound state. userConfig.noSound is better suited for such antics.
2019-11-02 21:21:48 +01:00
Christoph Oelckers
e35a5bac79 - fixed: 0 is a valid resource ID for Blood.
Unfortunately this means that looking up ID 0 can be a bit more costly than the rest because all ID-less entries in RFF files also use 0.
For other file types -1 is used.
2019-11-02 20:37:15 +01:00
Christoph Oelckers
dc9d75685e - fixed keybind setup. 2019-11-02 20:13:00 +01:00
Christoph Oelckers
4cf62fca77 - do not load subdirectories of the game directory. They cannot contain anything useful because the original assets never used subdirectories.
- fixed RRRA game flags.
2019-11-02 19:12:01 +01:00
Christoph Oelckers
c5838df0c8 - fixed addition of main directory. 2019-11-02 18:46:11 +01:00
Christoph Oelckers
395ba5541c - fixed startup and sound issues with Redneck Rampage. 2019-11-02 18:28:50 +01:00
Christoph Oelckers
63d4fc1e1b - fixed flag parsing for grpinfo. 2019-11-02 18:03:41 +01:00
Christoph Oelckers
536c7d61a0 - Duke Nukem starts again.
Now for the other frontends.
2019-11-02 17:41:38 +01:00
Christoph Oelckers
768a75b712 - fixed video startup.
Make sure that SDL is initialized as the first thing and that the validmodecnt variable does not get cleared
2019-11-02 17:26:40 +01:00
Christoph Oelckers
d246ff1212 - fixed file system hasher. 2019-11-02 16:52:22 +01:00
Christoph Oelckers
e4ecc5d8df - some reshuffling on OSD code.
* moved the binding commands to osd.cpp. They were in the global namespace already and this way everything to be tossed out is in the same place when the time comes.
* removed support for the OSDs native CVARs. The only ones left were some internal ones I won't need until this code can be replaced.
* same for the custpmization code the games added. Duke Nukem was the only one anyway to have a decent font for it.
2019-11-02 14:25:35 +01:00
Christoph Oelckers
906e56a2b1 - fixed some startup errors. 2019-11-02 13:27:40 +01:00
Christoph Oelckers
8fb54b51c3 - rewrote the screenshot code to use m_png as its backend.
Mainly to finally get rid of kplib. There's really no use to keep such code around if alternatives are already present.
2019-11-02 12:59:59 +01:00
Christoph Oelckers
edcfad6e11 - updated m_png.cpp from GZDoom. 2019-11-02 12:07:15 +01:00
Christoph Oelckers
1d7bfe14dc - removed kplib's compression code.
Its only use in savegames has already been disabled in favor of a format restructuring.
2019-11-02 11:29:23 +01:00
Christoph Oelckers
ab28697c18 - undid the very pointless pow2char (de)optimization by substituting the real array with an empty struct containing an inlined [] operator.
I think this shows a fundamental misunderstanding of what constexpr means, even when declared as such it requires a constant argument to be treated as a constant.
But since nearly all uses of this were not using constants, the compiler was emitting actual memory accesses to the array each time this was used.
2019-11-02 10:45:41 +01:00
Christoph Oelckers
fca3c2f5b5 - removed the directory scan code from compat.cpp.
It is only used by the user map menus which I had to disable already and on top of that is blissfully incapable of dealing with Unicode.
2019-11-02 10:39:31 +01:00
Christoph Oelckers
f44d309558 - made some adjustments to the RFS parser for the file system.
It's still not active but now should produce correct results when working inside the file system.
What it is missing is a file scanner that picks the data it needs to process.
2019-11-02 10:20:32 +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
1149b4f4aa - various fixes and improvements related to file location management:
* saving of demos and savegames no longer mindlessly writes to the mod directory. All such access is now being rerouted through the special paths interface so that the game data can reside in write protected locations.
* refactored all occurences of klistpath except fnlist_getnames.
* do not allow CON scripts to write to arbitrary files. This is a massive exploit and can be used to cause real damage if someone knows how to play this thing - it's far easier than people may think! It will now write any such data to a special section in the main config which is safe and cannot be manipulated to write to random locations on the hard drive.
2019-11-02 00:38:30 +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
2d7c0e26d2 - cleanup of the old file system initialization.
The real fun part is yet to come, i.e. removing the remaining dependencies on the old file system code.
2019-11-01 19:25:42 +01:00
Christoph Oelckers
24edfbe03b - removed the pointless double loading of CON files.
The condition for this was no longer present anyway so it was never done.
2019-11-01 09:40:29 +01:00
Christoph Oelckers
8d5e665caa - various initialization related changes
* reroute several error conditions to I_Error.
* removed some soon-to-be obsolete GRP loading code.
* explicitly trigger the SetDefaults script events which depended on side effects from the config implementation.
* removed the nonsensical file system switch. All this does is create instabilities because it is non-obvious from where data is loaded. If a resource is mounted, it should be checked for content no matter what. While this may affect the stray weird mod out there it is a necessity if we want to allow transparent project repackaging.
2019-11-01 09:30:28 +01:00
Christoph Oelckers
39bfd64fe9 - a bit more cleanup in app_init. 2019-11-01 08:24:10 +01:00
Christoph Oelckers
6c5d9c3507 - moved the net init code out of the game frontends to avoid having to call atexit for their deinit function.
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.
2019-11-01 07:26:49 +01:00
Christoph Oelckers
67acad3984 - startup cleanup. 2019-11-01 00:32:56 +01:00
Christoph Oelckers
57f879fa8b - moved the startup dialog out of the game front ends, now that there is a global cross-game list of playable configurations. 2019-10-31 23:25:21 +01:00
Christoph Oelckers
ba00fe4e66 - hooked up the file system with Blood's resource access. 2019-10-31 20:17:49 +01:00
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
535c68fac1 - fixed Shadow Warrior startup.
It runs to the menu, unfortunately key input is broken.
2019-10-30 20:13:43 +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
CommonLoon102
bc6c1bbc3c Fix the game on non-Windows (#240) 2019-10-30 18:54:56 +01:00
hendricks266
d410694e40 SW: Fix 3D Realms and ANM palettes
git-svn-id: https://svn.eduke32.com/eduke32@8272 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/astub.cpp
#	source/sw/src/anim.cpp
#	source/sw/src/colormap.cpp
#	source/sw/src/common_game.h
#	source/sw/src/game.cpp
2019-10-30 18:50:23 +01:00
hendricks266
d679603cab SW: Fix MIDI music
git-svn-id: https://svn.eduke32.com/eduke32@8271 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/sw/src/config.cpp
#	source/sw/src/config.h
#	source/sw/src/game.cpp
#	source/sw/src/menus.cpp
#	source/sw/src/sounds.cpp
2019-10-30 18:45:53 +01:00
hendricks266
dcba445f4e SW: Fix file loading and init sequence
git-svn-id: https://svn.eduke32.com/eduke32@8269 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/common.cpp
#	source/duke3d/src/game.cpp
#	source/sw/src/common.cpp
#	source/sw/src/common_game.h
#	source/sw/src/game.cpp
#	source/sw/src/jnstub.cpp
2019-10-30 18:38:43 +01:00
Christoph Oelckers
ea10e01cc3 - adjustments for last commit. 2019-10-30 18:27:52 +01:00
hendricks266
797c79d4a5 Move registry reading to engine
git-svn-id: https://svn.eduke32.com/eduke32@8268 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/common.cpp
2019-10-30 18:27:40 +01:00
Christoph Oelckers
418ec0d829 - adjustment to cherry-picked commit. 2019-10-30 18:21:59 +01:00
hendricks266
9b21fe0c28 Move VDF parsing to engine
git-svn-id: https://svn.eduke32.com/eduke32@8267 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/common.h
#	source/duke3d/src/common.cpp
2019-10-30 18:15:00 +01:00
hendricks266
de3215bcab Add sound and music code for Ken-Build
Patch from Nuke.YKT.

git-svn-id: https://svn.eduke32.com/eduke32@8266 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	GNUmakefile
#	platform/Windows/kenbuild.vcxproj
#	platform/Windows/kenbuild.vcxproj.filters
#	source/kenbuild/src/config.cpp
#	source/kenbuild/src/game.cpp
#	source/kenbuild/src/sound_stub.cpp
2019-10-30 18:10:54 +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
5148fc877d - consolidate the 3 instances of input.cpp.
Some stuff had to be disabled to make it work but that's hardly relevant considering that the goal is to transition off MACT for input handling.
2019-10-28 18:32:05 +01:00
Alexey Khokholov
954d3b14dc Delete _oplmidi.h 2019-10-28 17:51:38 +01:00
Alexey Khokholov
6bb7cb8531 Delete oplmidi.h 2019-10-28 17:51:14 +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
Christoph Oelckers
68b64d2091 - fixed compilation. 2019-10-27 23:18:44 +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
19b9e34726 - removed empty #includes. 2019-10-27 22:17:21 +01:00
Christoph Oelckers
d962a7810d - deleted unused headers 2019-10-27 22:15:21 +01:00
Christoph Oelckers
cee194fd05 - removed the MACT scriplib after completing the config transition. 2019-10-27 17:31:23 +01:00
nukeykt
aebd22eea8 This makes more sense 2019-10-27 16:54:25 +01:00
nukeykt
5a087b1768 Add gModernMap guard 2019-10-27 16:54:24 +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
CommonLoon102
441bd25ca5 feature: option to show voxels instead of sprites for showing weapon (#233)
# Conflicts:
#	source/blood/src/controls.cpp
#	source/blood/src/menu.cpp
#	source/blood/src/osdcmd.cpp
2019-10-27 13:47:01 +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
7023e1e992 - store game vars in the new config file. 2019-10-27 00:29:46 +02: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
ny00123
731671c401 Make the secondary backslash key of the standard 102-keys PC keyboard layout, also known as a "less than" key, usable. This is the key generally sitting in-between the left shift and Z keys, for the 102-keys QWERTY layout.
git-svn-id: https://svn.eduke32.com/eduke32@8265 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-26 19:29:13 +02:00
Christoph Oelckers
f53c9f6947 - save stuff to the new config. 2019-10-26 19:24:46 +02:00
Christoph Oelckers
288b230ab8 - only let the CON script access the defaults of CVARs, not their actual value.
That allows using them for initialization but not for messing around with user settings.
2019-10-26 18:39:52 +02:00
Christoph Oelckers
cd47582632 - disabled the settings.cfg console script so that the newly added config code can take over its duties.
- 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.
2019-10-26 13:41:42 +02:00
Christoph Oelckers
1e0d49f947 - game starts again. 2019-10-26 13:16:32 +02:00
CommonLoon102
bcf3385ddf randomize ejecting brass and shell angle on the ground (#230) 2019-10-26 10:35:15 +02:00
Grind Core
3cd44c89f5 Commented system message in OperateSprite() 2019-10-26 10:35:14 +02:00
Grind Core
b6ad64ee54 Refactor: xsector, xwall and xsprite structs
- Added QAV scene player (playing user animation instead of weapon)
- Added trigger event intiator for sprites (WIP and experimental)

# Conflicts:
#	source/blood/src/actor.h
#	source/blood/src/player.h
2019-10-26 10:35:13 +02:00
Christoph Oelckers
1c29169492 -perform a proper exit, i.e. make sure that the deinit code can run, by throwing a special exception and actually catching it in the main function. 2019-10-26 10:30:08 +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
47acdae8e6 - moved binding files to subdirectory
- fixed search/replace error.
2019-10-26 09:05:17 +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
6f6c850d80 - fixed some search&replace errors 2019-10-25 19:02:27 +02:00
Christoph Oelckers
918d121d99 - fixed missing include paths 2019-10-25 02:07:46 +02:00
Christoph Oelckers
5cf5c74695 - let kopenFileReader have a look into demolition.pk3 if nothing else is found.
This should help as long as the old resource management is still in place.
2019-10-25 02:01:52 +02:00
Christoph Oelckers
60fc828a89 - converted the 3 new CVARs in the audio code. 2019-10-25 02:01:36 +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
082fcfeef0 - manual update of audiolib 2019-10-24 19:59:09 +02:00
nukeykt
df415605ae Use gameHandleEvents for time updating
# Conflicts:
#	source/blood/src/gui.cpp
2019-10-24 19:49:57 +02:00
nukeykt
01d63d19e9 Fix crash with WinMM driver 2019-10-24 19:49:51 +02:00
nukeykt
7f094d3a73 Fix music init code
# Conflicts:
#	source/blood/src/config.cpp
#	source/blood/src/menu.cpp
#	source/blood/src/osdcmd.cpp
2019-10-24 19:49:50 +02:00
nukeykt
e6f53f7c30 Resolve merge issues
# Conflicts:
#	GNUmakefile
#	platform/Windows/eduke32.sln
#	platform/Windows/props/build_common.props
#	source/audiolib/include/music.h
#	source/blood/src/blood.cpp
#	source/blood/src/gui.cpp
#	source/blood/src/mapedit.cpp
#	source/blood/src/sound.cpp
#	source/build/include/vfs.h
#	source/build/src/vfs.cpp
2019-10-24 19:48:11 +02:00
hendricks266
4ca1af72c3 SW: Load swtimbr.tmb
git-svn-id: https://svn.eduke32.com/eduke32@8262 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/sw/src/sounds.cpp
2019-10-24 19:46:29 +02:00
hendricks266
c6c7c91d7c Add MIDI_GetDevice and use it so that the default driver value doesn't show as "Custom" in the menu
git-svn-id: https://svn.eduke32.com/eduke32@8261 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:44:22 +02:00
hendricks266
7650cbe592 Fix calls to FX_ErrorString and MUSIC_ErrorString
git-svn-id: https://svn.eduke32.com/eduke32@8260 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/sounds.cpp
#	source/duke3d/src/sounds_mapster32.cpp
#	source/sw/src/sounds.cpp
2019-10-24 19:44:21 +02:00
hendricks266
553dfb3544 Prefer early return on error in sound and MIDI init functions
git-svn-id: https://svn.eduke32.com/eduke32@8259 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/sounds.cpp
#	source/duke3d/src/sounds_mapster32.cpp
#	source/sw/src/sounds.cpp
2019-10-24 19:43:51 +02:00
hendricks266
14996d930b Prefer "MIDI driver" to "Music device"
git-svn-id: https://svn.eduke32.com/eduke32@8258 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/sounds_mapster32.cpp
#	source/sw/src/sounds.cpp
2019-10-24 19:42:54 +02:00
hendricks266
55744eff09 Remove second EMIDICard / ForceEMIDI parameter from MUSIC_Init which only served to clobber the value entered using the cvar
git-svn-id: https://svn.eduke32.com/eduke32@8257 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:41:50 +02:00
hendricks266
9215812ed6 Remove obsolete comments now that the MIDI objects are back in their rightful location
git-svn-id: https://svn.eduke32.com/eduke32@8254 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:41:34 +02:00
terminx
d1ccbab5ea Boost OPL3 output to about the level of WinMM
git-svn-id: https://svn.eduke32.com/eduke32@8240 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:28:16 +02:00
terminx
8827a0e84b Retain friendly names for audiolib drivers disabled at compile time
git-svn-id: https://svn.eduke32.com/eduke32@8239 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:28:15 +02:00
terminx
dafd71c72f Add mus_al_additive to control the behavior mentioned in r8232 and rename mus_adlibstereo to mus_al_stereo
git-svn-id: https://svn.eduke32.com/eduke32@8238 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:28:14 +02:00
terminx
e82ddb23d3 Better stereo suppport in OPL3 emulator
Patch from Nuke.YKT

git-svn-id: https://svn.eduke32.com/eduke32@8237 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/audiolib/include/opl3.h
#	source/audiolib/src/opl3.cpp
2019-10-24 19:28:13 +02:00
terminx
9b97f504bb Fix issue with tempo when changing back and forth between OPL3 and WinMM MIDI output
git-svn-id: https://svn.eduke32.com/eduke32@8236 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:27:57 +02:00
terminx
5de8dad179 Fix mus_adlibstereo
git-svn-id: https://svn.eduke32.com/eduke32@8233 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/audiolib/include/al_midi.h
2019-10-24 19:27:22 +02:00
terminx
247e6bcc26 Revert a copy/paste error fix in the AdLib code because the fixed version doesn't work right with the timbres Blood ships with
git-svn-id: https://svn.eduke32.com/eduke32@8232 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:27:17 +02:00
terminx
f0acbc1ca5 Fix AdLib timbre loading
git-svn-id: https://svn.eduke32.com/eduke32@8231 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:27:16 +02:00
terminx
47942db0a3 Fix min/max values for audiolib cvars
git-svn-id: https://svn.eduke32.com/eduke32@8230 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/audiolib/include/al_midi.h
2019-10-24 19:27:15 +02:00
terminx
5853fe1cc6 Prefer uint32_t over unsigned int
git-svn-id: https://svn.eduke32.com/eduke32@8225 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/audiolib/src/_al_midi.h
2019-10-24 19:26:30 +02:00
terminx
4ff4fddf62 The constening
git-svn-id: https://svn.eduke32.com/eduke32@8224 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/audiolib/include/al_midi.h
2019-10-24 19:26:23 +02:00
terminx
ff10fdf929 Add mus_adlibstereo cvar to enable and disable AdLib stereo mode
git-svn-id: https://svn.eduke32.com/eduke32@8223 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:26:16 +02:00
terminx
8a61ceeb36 Add a cvar array for audiolib
git-svn-id: https://svn.eduke32.com/eduke32@8222 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:26:15 +02:00
terminx
a2ab5492cc Further small midi cleanup changes--nothing functional
git-svn-id: https://svn.eduke32.com/eduke32@8221 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/audiolib/include/al_midi.h
#	source/audiolib/src/_al_midi.h
2019-10-24 19:26:14 +02:00
terminx
6fa287c767 Further AdLib cleanup... leaving this in a separate commit in case I fucked something up
git-svn-id: https://svn.eduke32.com/eduke32@8220 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:25:49 +02:00
terminx
8eb5233232 Further audiolib work... I think this is almost done!
git-svn-id: https://svn.eduke32.com/eduke32@8219 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	GNUmakefile
#	platform/Windows/audiolib.vcxproj
#	platform/Windows/audiolib.vcxproj.filters
#	platform/Windows/build.vcxproj
#	platform/Windows/build.vcxproj.filters
#	source/audiolib/include/al_midi.h
#	source/audiolib/src/_al_midi.h
#	source/duke3d/src/osdcmds.cpp
#	source/duke3d/src/sounds.cpp
2019-10-24 19:25:48 +02:00
terminx
8a1681fb5a More audiolib work
git-svn-id: https://svn.eduke32.com/eduke32@8218 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/audiolib/src/music.cpp

# Conflicts:
#	GNUmakefile
#	platform/Windows/audiolib.vcxproj
#	platform/Windows/audiolib.vcxproj.filters
#	source/duke3d/src/menus.cpp
2019-10-24 19:25:09 +02:00
terminx
8b20118026 Audiolib rework WIP
This attempts to rectify the differences between versions of JFAudiolib created after we forked the code, and the extra features contained in Nuke.YKT's fork of our version.

git-svn-id: https://svn.eduke32.com/eduke32@8216 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	GNUmakefile
#	platform/Windows/audiolib.vcxproj
#	platform/Windows/audiolib.vcxproj.filters
#	platform/Windows/eduke32.vcxproj
#	platform/Windows/eduke32.vcxproj.filters
#	source/audiolib/include/fx_man.h
#	source/audiolib/include/multivoc.h
#	source/audiolib/src/flac.cpp
#	source/audiolib/src/formats.cpp
#	source/audiolib/src/fx_man.cpp
#	source/audiolib/src/vorbis.cpp
#	source/audiolib/src/xa.cpp
#	source/audiolib/src/xmp.cpp
#	source/duke3d/src/sounds_mapster32.cpp

# Conflicts:
#	Common.mak
#	GNUmakefile
#	platform/Windows/audiolib.vcxproj
#	platform/Windows/audiolib.vcxproj.filters
#	platform/Windows/eduke32.vcxproj
#	platform/Windows/eduke32.vcxproj.filters
#	source/audiolib/include/multivoc.h
#	source/audiolib/src/vorbis.cpp
#	source/duke3d/src/config.cpp
#	source/duke3d/src/game.h
#	source/duke3d/src/osdcmds.cpp
#	source/duke3d/src/sounds_mapster32.cpp
2019-10-24 19:24:31 +02:00
terminx
a1f08f2465 New files for audiolib
This is in a separate commit just to make the changes to existing files easier to go through.

git-svn-id: https://svn.eduke32.com/eduke32@8215 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/audiolib/include/midi.h
#	source/audiolib/src/_midi.h
#	source/audiolib/src/al_midi.cpp
#	source/audiolib/src/midi.cpp
#	source/audiolib/src/music.cpp
#	source/audiolib/src/oplmidi.cpp
#	source/duke3d/src/midi.cpp

# Conflicts:
#	source/audiolib/src/al_midi.cpp
#	source/audiolib/src/midi.cpp
#	source/audiolib/src/music.cpp
2019-10-24 19:22:49 +02:00
terminx
d6e52ed526 Use SDL audiolib driver on Windows
This shitcans the SDL_mixer requirement but leaves platforms other than Windows without built-in MIDI playback capability until Nuke.YKT's OPL3 emulator is merged. This also reworks sdlmusic.cpp into music_external.cpp, including an untested port of the code to Windows.

git-svn-id: https://svn.eduke32.com/eduke32@8214 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	GNUmakefile
#	platform/Windows/eduke32.vcxproj
#	platform/Windows/props/build_common.props
#	source/audiolib/src/sdlmusic.cpp

# Conflicts:
#	Common.mak
#	GNUmakefile
#	platform/Windows/audiolib.vcxproj
#	platform/Windows/eduke32.vcxproj
#	platform/Windows/eduke32.vcxproj.filters
#	platform/Windows/props/build_common.props
#	source/audiolib/src/driver_sdl.cpp
#	source/audiolib/src/sdlmusic.cpp
#	source/build/include/vfs.h
#	source/build/include/winbits.h
#	source/build/src/winbits.cpp
2019-10-24 19:22:06 +02:00
terminx
c0b7745013 Misc audiolib cleanups
git-svn-id: https://svn.eduke32.com/eduke32@8213 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/audiolib/src/fx_man.cpp
#	source/audiolib/src/multivoc.cpp

# Conflicts:
#	source/audiolib/include/multivoc.h
#	source/audiolib/src/multivoc.cpp
#	source/audiolib/src/vorbis.cpp
2019-10-24 19:20:33 +02:00
hendricks266
89cd122d14 Initialize sound before music
git-svn-id: https://svn.eduke32.com/eduke32@8255 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:06:04 +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
c1041a9c37 - removed the unused DN3D menu code from the Blood subproject. 2019-10-23 19:08:41 +02:00
Christoph Oelckers
ee5f0a7cf6 - cleaned out the remains of the frontends' CVAR definitions. 2019-10-23 18:58:34 +02:00
CommonLoon102
20a393871b fix compiler error: storage size of weaponQAV isn't known (#226) 2019-10-23 18:38:00 +02:00
Szilárd Biró
c419fae31b Fix compiling without OpenGL 2019-10-23 18:37:56 +02:00
Szilárd Biró
0f67b74a53 SEQFRAME big endian fix 2019-10-23 18:37:55 +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
7fd05edbba - missed one 2019-10-23 14:39:46 +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
fe2bb036b7 - fixed bad parameter. 2019-10-22 23:32:15 +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
Grind Core
b6c16abf6f Refactor:
- PLAYER.H structs
- ACTOR.H  structs

# Conflicts:
#	source/blood/src/db.h
#	source/blood/src/player.h
2019-10-22 17:49:59 +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
39c6af9b0a - cl_automsg 2019-10-22 00:14:39 +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
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
0d737ee130 - removed all code related to the -usecwd command line switch.
While feature-wise ok this was far too scattered throughout the frontends and needs to be done in a more concise way.
2019-10-21 19:51:12 +02:00
CommonLoon102
c342d25879 disable respawn for spawned dudes (#223)
makes sense
# Conflicts:
#	source/blood/src/view.cpp
2019-10-21 19:37:39 +02:00
terminx
91dac5c73a I swear, the amount of trivial differences between toolchain setups drives me up the wall sometimes
git-svn-id: https://svn.eduke32.com/eduke32@8247 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-21 19:37:14 +02:00
terminx
b2421887a1 Use stat() instead of fopen() to detect existing files when saving screenshots
git-svn-id: https://svn.eduke32.com/eduke32@8246 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-21 19:37:13 +02:00
Christoph Oelckers
72b87e5bd7 - fixed compilation. 2019-10-21 19:36:54 +02:00
Christoph Oelckers
8c7590e161 - refactored most of the remaining calls to kopen4load 2019-10-21 17:16:08 +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
0c4ffdea43 - do not use the cache for loading voxel data
This stuff is software rendering only so should be made optional anyway.

But aside from that it was the last non-sound data, being loaded into the cache.

With this gone the sound cache can be redone as a dedicated object and the atrocious cache1d implementation be tossed out.
2019-10-21 01:17:26 +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
5333f6adc1 - refactored a few more - simple stuff but lots of lines. 2019-10-21 00:13:17 +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
449a5a4717 - refactoring of palette loader. 2019-10-20 22:26:53 +02:00
Christoph Oelckers
6e7db1b63a - refactored file access in RR frontend's sound code. 2019-10-20 21:56:13 +02:00
terminx
9aae157e27 This helps the player not fall off of the edges of certain types of moving sectors as easily
git-svn-id: https://svn.eduke32.com/eduke32@8245 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 21:08:53 +02:00
terminx
4c28d25e3f Don't activate gamefunc_Toggle_Crouch if cheat_phase is non-zero
git-svn-id: https://svn.eduke32.com/eduke32@8244 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 21:08:51 +02:00
terminx
6f6d568720 This fixes most issues with the player clipping through the walls of rotating sectors
git-svn-id: https://svn.eduke32.com/eduke32@8243 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 21:08:50 +02:00
terminx
21025ea18f Prefer assignment of .vec2 union inside vec3_t instead of explicitly assigning .x and .y members
git-svn-id: https://svn.eduke32.com/eduke32@8242 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 21:08:49 +02:00
terminx
69a3f9e884 Band-aid fix for Duke3d E4L4 map "corruption"
The map isn't necessarily "corrupt", but it has a large water sector with half a dozen different SE7 teleporter sprites in it, of which all but one have destination SE7 sprites that are constantly moving while the matching SE7 in the large sector stays in place. When you teleport, the game code picks one. It doesn't always pick the one that matches.

Yeah, OK, it never picks the one that matches.

The area is a total clusterfuck.

git-svn-id: https://svn.eduke32.com/eduke32@8241 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 21:08:48 +02:00
Christoph Oelckers
2be5727137 - refactored all file reading in the savegame code to the FileReader interface.
In this case a different open function is used because this is normally files on the hard drive and not assets, so being able to have a different setup for finding them is important.
2019-10-20 21:04:55 +02:00
Christoph Oelckers
7cacb7203f - refactored all file access in SW frontend to use the FileReader variant and added a few utilities to avoid opening handles.
Because use of the handle API needs to be eliminated before a functioning resource management can be plugged in here.
2019-10-20 20:08:17 +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
bf8a2ee573 - started refactoring of file handling, starting with some nasty bits in Shadow Warrior. 2019-10-20 17:09:58 +02:00
Christoph Oelckers
06f4138202 - merge fixes in Blood frontend code. 2019-10-20 17:09:01 +02:00
Christoph Oelckers
d83b3f34a3 - restored original whitespacing in blood/actor.cpp.
This ensures that future cherry picks won't conflict as badly.
2019-10-20 16:50:47 +02:00
Grind Core
70e0ed9ec4 - Refactor: added names for powerups and updated some old.
- AI: there is printing error message in conosole added (instead of dassert)
- Updates for Player Control modern type

# Conflicts:
#	source/blood/src/actor.cpp
#	source/blood/src/actor.h
#	source/blood/src/globals.cpp
#	source/blood/src/globals.h
#	source/blood/src/player.h
#	source/blood/src/sound.cpp
#	source/blood/src/triggers.cpp
#	source/blood/src/triggers.h
#	source/blood/src/view.cpp
#	source/blood/src/weapon.cpp
#	source/blood/src/weapon.h
2019-10-20 12:30:16 +02:00
terminx
a278a85b3b Add const to dest parameter of MV_Reverb()
git-svn-id: https://svn.eduke32.com/eduke32@8184 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 11:53:25 +02:00
terminx
9756db95ca Use templates for audiolib mixing functions
Patch from NY00123.

git-svn-id: https://svn.eduke32.com/eduke32@8183 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/audiolib/src/mix.cpp
#	source/audiolib/src/mixst.cpp
2019-10-20 11:51:57 +02:00
Christoph Oelckers
75205ca69c - do not throw exceptions to exit without proper handling. 2019-10-20 11:28:16 +02:00
Christoph Oelckers
c3d742dda0 - really delete the textures. 2019-10-20 10:52:56 +02:00
Christoph Oelckers
489170b12c - fixed compilation again. 2019-10-20 10:52:38 +02:00
terminx
63d6e70e21 Apparently, a long while back when I limited snd_numvoices to 128 I forgot to change the menu to reflect it
git-svn-id: https://svn.eduke32.com/eduke32@8234 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 10:45:51 +02:00
Christoph Oelckers
76bceb81cd - removed time consuming load indicator from Duke3D frontend as well. 2019-10-20 10:45:50 +02:00
terminx
c68c50ddca Add snd_tryformats cvar to disable automatic loading of .ogg and .flac versions of sound and music
git-svn-id: https://svn.eduke32.com/eduke32@8212 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 10:45:50 +02:00
terminx
873440f06c Fix tiny header issue
git-svn-id: https://svn.eduke32.com/eduke32@8208 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/osdcmds.cpp
#	source/duke3d/src/osdcmds.h
2019-10-20 10:45:50 +02:00
terminx
b8f4651ab4 Don't try videoSetGameMode() if there aren't any valid modes
git-svn-id: https://svn.eduke32.com/eduke32@8207 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 10:45:50 +02:00
Christoph Oelckers
215a7cdff3 - removed unused animlock variable. 2019-10-20 10:45:49 +02:00
terminx
ca789dc4d0 Wait to run G_MoveLoop() until a frame has just been rendered
This should give G_MoveLoop() a better chance to not run past the time when another frame is to be drawn.

git-svn-id: https://svn.eduke32.com/eduke32@8195 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 10:45:49 +02:00
terminx
9fadf6032d Silence a warning
git-svn-id: https://svn.eduke32.com/eduke32@8194 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 10:45:49 +02:00
terminx
ba02bbaf67 Add #pragma once to debugbreak.h and remove it from separate inclusion in a couple of translation units as we're including it directly in compat.h now
git-svn-id: https://svn.eduke32.com/eduke32@8192 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/sdlayer.cpp
#	source/duke3d/src/gamedef.cpp
2019-10-20 10:45:48 +02:00
terminx
d7f779eaec Use EXIT_FAILURE and EXIT_SUCCESS from stdlib.h when calling exit()
git-svn-id: https://svn.eduke32.com/eduke32@8190 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
#	source/build/src/polymost.cpp
#	source/build/src/tiles.cpp
#	source/duke3d/src/astub.cpp
2019-10-20 10:45:48 +02:00
terminx
a15c2abf46 Update LZ4 to e8baeca51ef2003d6c9ec21c32f1563fef1065b9
git-svn-id: https://svn.eduke32.com/eduke32@8186 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 10:45:48 +02:00
terminx
8d74b9562f Update xxHash to 1ea98d6a38300f7224869de856a876a2050cdf78
git-svn-id: https://svn.eduke32.com/eduke32@8185 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 10:45:48 +02:00
Christoph Oelckers
462bd8d292 - cleaned out some commented out code. 2019-10-20 10:44:51 +02:00
Christoph Oelckers
2316957026 - made things compile again after updating enet. Also removed the redundant dumb and game_music_emu libraries which just got imported by accident when using other things from GZDoom.
Note: enet uses 'malloc' and 'free' as field names in a struct - this does not work with any compiler using some sort of heap instrumentation that #defines these names!
This had to be changed to allow MSVC debug builds to compile again.
2019-10-20 09:16:01 +02:00
terminx
63713002b3 Swap out our old deprecated version of ENet for a single-file header-based fork, including features like IPv6 support
git-svn-id: https://svn.eduke32.com/eduke32@8175 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	GNUmakefile
#	libraries/enet/LICENSE
#	libraries/enet/callbacks.c
#	libraries/enet/compress.c
#	libraries/enet/enet/callbacks.h
#	libraries/enet/enet/enet.h
#	libraries/enet/enet/list.h
#	libraries/enet/enet/protocol.h
#	libraries/enet/enet/time.h
#	libraries/enet/enet/types.h
#	libraries/enet/enet/unix.h
#	libraries/enet/enet/utility.h
#	libraries/enet/enet/win32.h
#	libraries/enet/host.c
#	libraries/enet/list.c
#	libraries/enet/packet.c
#	libraries/enet/peer.c
#	libraries/enet/protocol.c
#	libraries/enet/unix.c
#	libraries/enet/win32.c
#	platform/Windows/build.vcxproj
#	platform/Windows/build.vcxproj.filters
#	platform/Windows/eduke32.sln
#	platform/Windows/eduke32.vcxproj
#	source/duke3d/src/player.cpp
2019-10-20 08:43:36 +02:00
terminx
1667d4dd87 This is useless
git-svn-id: https://svn.eduke32.com/eduke32@8170 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 08:31:49 +02:00
terminx
8b43ed5777 Rename timerUpdate() and timerGetRate() to timerUpdateClock() and timerGetClockRate(), because they both only apply to totalclock
git-svn-id: https://svn.eduke32.com/eduke32@8169 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/timer.cpp
#	source/build/src/winlayer.cpp
2019-10-20 08:31:26 +02:00
terminx
91fde580ce Use nanosleep instead of usleep
git-svn-id: https://svn.eduke32.com/eduke32@8168 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 08:29:25 +02:00
terminx
ad6d94b0f5 Patch from Doom64hunter to address a couple of issues with per-map art
git-svn-id: https://svn.eduke32.com/eduke32@8167 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/tiles.cpp
2019-10-20 08:28:44 +02:00
terminx
8e088f6659 Equivalent to jfbuild commit b6a666745cea21c6f8193b046bcdd0636fb7c166
git-svn-id: https://svn.eduke32.com/eduke32@8158 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 08:17:35 +02:00
terminx
0270cc2df5 SDL_free() is not for pointers to SDL_RWops structures...
git-svn-id: https://svn.eduke32.com/eduke32@8151 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 08:16:02 +02:00
terminx
c86af959b9 Add optional duration parameter to idle()
git-svn-id: https://svn.eduke32.com/eduke32@8149 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/winlayer.h
2019-10-20 08:13:22 +02:00
terminx
a649130327 Clamp nextPageDelay in G_FPSLimit() to 0.0 - g_frameDelay
git-svn-id: https://svn.eduke32.com/eduke32@8148 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 08:12:26 +02:00
Christoph Oelckers
53248945e8 - added license headers. 2019-10-20 08:07:12 +02:00
Christoph Oelckers
e5ddb28a2b - renamed texcache.cpp and moved it to its proper place.
The old content no longer exists, this is entirely backend code now.
2019-10-20 08:04:54 +02:00
Christoph Oelckers
f29dd6c495 - include cleanup 2019-10-20 08:02:45 +02:00
Christoph Oelckers
efcf447398 - moved newly added file to its proper place. 2019-10-20 07:51:35 +02:00
terminx
4dfae31900 Update xxHash to git commit cd0f5c22095c49c35104dca86620322801f14893
git-svn-id: https://svn.eduke32.com/eduke32@8142 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	platform/Windows/build.vcxproj
#	platform/Windows/build.vcxproj.filters
2019-10-20 07:50:30 +02:00
terminx
70171ea341 Use timerGetHiTicks() instead of timerGetTicks() for timing in osdfunc_fileinfo()
git-svn-id: https://svn.eduke32.com/eduke32@8141 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 07:48:16 +02:00
terminx
85dd8e31a5 G_HandleAsync() -> gameHandleEvents()
git-svn-id: https://svn.eduke32.com/eduke32@8140 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 07:48:15 +02:00
terminx
802f69d324 Partial timer cleanup
After this revision, the only place timerUpdate() is called is from within handleevents(). S_Cleanup(), MUSIC_Update(), and G_HandleSpecialKeys() are now called from a timer callback set with timerSetCallback(). This more or less deprecates the usage of faketimerhandler() in EDuke32 and Mapster32, but other games still rely on the functionality.

git-svn-id: https://svn.eduke32.com/eduke32@8139 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/astub.cpp
2019-10-20 07:48:13 +02:00
terminx
593b5740e3 Reword stupid error message that has probably never even been seen
git-svn-id: https://svn.eduke32.com/eduke32@8138 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 07:48:05 +02:00
terminx
4d3dedd4ab ifdef DEBUGGINGAIDS for this quick exit crap
this is more like regular AIDS than DEBUGGINGAIDS though

git-svn-id: https://svn.eduke32.com/eduke32@8137 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 07:48:04 +02:00
terminx
4c4ffa80b4 Use tabledivide64() in timerUpdate()
git-svn-id: https://svn.eduke32.com/eduke32@8136 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 07:48:02 +02:00
terminx
b298ed19ff Ugh, apparently we rely on this for FURY
git-svn-id: https://svn.eduke32.com/eduke32@8135 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 07:48:01 +02:00
Christoph Oelckers
85d377647a - tweaked the fade ramp a bit.
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.
2019-10-20 01:14:48 +02:00
Christoph Oelckers
9437387b4a - fixed handling of FogDisabled flag 2019-10-20 00:45:47 +02:00
Christoph Oelckers
abaa1d19ee - fixed some bad setup in SetTextureInternal. 2019-10-20 00:31:27 +02:00
Christoph Oelckers
2162ce1f26 - disabled the Redneck Rampage load progress indicator because it only prolongs the precaching time by waiting for the screen to be refreshed. 2019-10-19 23:19:45 +02:00
Christoph Oelckers
bb4a19cf3a - added a few more texture formats to FHardwareTexture.
For brightmaps we do not need full RGBA8 data with mipmaps - RGBA2 without mipmaps is fully sufficient here and will save a lot of video memory.
2019-10-19 23:14:36 +02:00
Christoph Oelckers
7d2f61db2e - converted all boolean parameters of the shader into a single flag word.
- discarded the idea of transient palettes because the maintenance here stood in no relation to the savingd.
2019-10-19 22:46:37 +02:00
Christoph Oelckers
17816b0f63 - fixed compilation for NBlood update. 2019-10-19 20:48:59 +02:00
nukeykt
098740155b Use screentext in DrawStatNumber 2019-10-19 20:33:52 +02:00
nukeykt
182d5d2eb5 Use screentext in viewDrawText 2019-10-19 20:33:50 +02:00
nukeykt
90dc59749d Import screentext from eduke32
# Conflicts:
#	platform/Windows/nblood.vcxproj
#	platform/Windows/nblood.vcxproj.filters
2019-10-19 20:33:49 +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
5fa879d5d1 - use texture clamping for skies, because these textures do not always wrap. 2019-10-19 19:29:59 +02:00
Christoph Oelckers
39e32d560c - fixed progdir setup. 2019-10-19 19:22:23 +02:00
Christoph Oelckers
d4fc13fba5 - cleaned up the sampler manager's content names and added the missing types to allow easier switching between indexed (no filtering) and non-indexed (filter as per user option). 2019-10-19 19:10:09 +02:00
Christoph Oelckers
2152780806 - added some hackery to render voxels properly again.
Something about their data preparation is not right, their depth looks totally off and causes fog to become to dense.
One more reason to reconstruct the renderer in a sane fashion.
2019-10-19 18:14:13 +02:00
Christoph Oelckers
e2f9e12efb - implemented shade level based depth fading for the true color renderer. 2019-10-19 16:35:06 +02:00
Christoph Oelckers
cd7bbe35a8 - removed all legacy fog code. 2019-10-19 15:52:46 +02:00
Christoph Oelckers
2ef89abe08 - reworked palookupinfo output. 2019-10-19 13:27:09 +02:00
Christoph Oelckers
4a9f0248d7 - removed the texture ID cache.
Although this initially helped, it was only because it partially covered up the issues from the real problem which was using the sampler properties of the texture offsets.
With that one fixed this cache became pointless.
2019-10-19 10:40:47 +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
8b1f2f5fc9 - disabled console lockout option as a modding feature.
No, sorry, but this is something I consider unacceptable!
2019-10-19 00:27:34 +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
c6f973d05f - more palookup information dumping 2019-10-19 00:25:42 +02:00
Christoph Oelckers
00630f728f - fixed voxel rendering.
Still need to move the voxel textures into the texture manager but at least they render properly again.
2019-10-18 22:25:47 +02:00
Christoph Oelckers
00d59459a1 - fixed creation of true color textures and disabled fog in palette mode.
The fog should go away entirely but in palette mode it made everything too dark.
2019-10-18 22:09:19 +02:00
Christoph Oelckers
2ed722f329 - do not draw invalid textures. 2019-10-18 19:29:35 +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
ed415c1fa0 - silenced a few warnings. 2019-10-18 17:55:22 +02:00
Christoph Oelckers
23265ad213 - rework of texture management for models
Voxels yet to do.
This also removes the redundant texture matrix for the glow texture.
2019-10-18 14:04:32 +02:00
Christoph Oelckers
542994cc20 - added lookup for brightmap palettes. 2019-10-18 12:11:53 +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
304a906aa7 copy code 2019-10-17 14:21:51 +02:00
Christoph Oelckers
1426ebec20 Moved hightile replacement data into the textures
Not tested yet!
2019-10-17 12:45:25 +02:00
Christoph Oelckers
4f8e0dd936 - cleaned up a few copyright notices and unified licenses 2019-10-17 09:42:11 +02:00
Christoph Oelckers
6d7458fe42 - fixed bad endif() placing in CMake projects 2019-10-17 08:44:01 +02:00
Christoph Oelckers
452cfe385e - Blood's voxel loader override has somehow gotten lost. 2019-10-16 23:57:29 +02:00
Christoph Oelckers
0aa5db7969 - project rework to shorten compile times.
* subprojects fpr game frontends added and unsigned char option put into global flags.
2019-10-16 23:09:02 +02:00
Christoph Oelckers
c988165131 - added a temporary workaround for image-based tile replacements.
The texture management is not ready yet to seamlessly handle these textures so for now they always need to be installed as hightile replacements.
2019-10-16 22:02:27 +02:00
Christoph Oelckers
066a76c892 - missed this part. 2019-10-16 21:18:26 +02:00
Christoph Oelckers
4cd2c024fc - fixed crash in texture deinit code and ensure that everything gets deleted. 2019-10-16 21:16:40 +02:00
nukeykt
37322d001d Do not apply zero floorpal on color sectors 2019-10-16 20:40:54 +02:00
nukeykt
a94404232b Default target value to -1
# Conflicts:
#	source/blood/src/trig.cpp
2019-10-16 20:40:53 +02:00
nukeykt
97feb8d59c Fix mapedit compiling
# Conflicts:
#	source/blood/src/mapedit.cpp
2019-10-16 20:40:41 +02:00
CommonLoon102
70b5e67e6f fix cultist respawn time (#220)
# Conflicts:
#	source/blood/src/actor.cpp
2019-10-16 20:40:34 +02:00
Christoph Oelckers
64e116a4b1 - use special classes with [] operators to redirect the frequently used global arrays to the newly implemented texture manager.
This allows to use the contained storage without changing all the code.
2019-10-16 20:39:59 +02:00
Christoph Oelckers
4dc69620b7 - cleanup 2019-10-15 23:56:29 +02:00
Christoph Oelckers
57c221644a - transitioned all texture options of the def file 2019-10-15 23:38:01 +02:00
Christoph Oelckers
bb78db71bc - tileDelete / tileSetDummy 2019-10-15 23:29:47 +02:00
Christoph Oelckers
9a52e8039c - rerouted tileCreate and tileSetExternal calls. 2019-10-15 23:18:52 +02:00
Christoph Oelckers
c3bc690e98 - more updating and bug in UpdatePicSize fixed. 2019-10-15 20:02:37 +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
4b6f28e7c8 - hooked up the writable texture types. 2019-10-15 00:19:31 +02:00
Christoph Oelckers
039d948991 - update of new texture classes. 2019-10-14 23:11:01 +02:00
Grind Core
9dd46c1c7c - Fixes for refactor (wrong kills count)
- Fixes for refactor (proximity flag for dudes)
- Fixes for refactor (wrong kills count)

# Conflicts:
#	source/blood/src/actor.cpp
2019-10-14 22:42:43 +02:00
Grind Core
16d4aebbb4 - Fixes for refactor
- Some ThrowError() calls was replaced my viewSetSystemMessage()
- New modern type playQAV (WIP)

# Conflicts:
#	source/blood/src/actor.cpp
#	source/blood/src/weapon.h
2019-10-14 22:42:43 +02:00
Grind Core
08dfee073c - Added names for callbacks
- Added names for sprite, wall and sector types
- Added gModernMap protection for using new features only on different version of map

# Conflicts:
#	source/blood/src/actor.cpp
#	source/blood/src/callback.cpp
#	source/blood/src/callback.h
#	source/blood/src/triggers.h
2019-10-14 22:42:42 +02:00
Christoph Oelckers
9a4c07db27 - make it compile again. 2019-10-14 22:42:29 +02:00
Christoph Oelckers
17a4ddd51e - adjusted bit array helpers for the change of type for gotpic from (undefined) char to (defined) uint8_t. 2019-10-13 08:55:52 +02:00
Christoph Oelckers
a6ba81939a - reworked texture management, not yet active. 2019-10-12 22:49:46 +02:00
Christoph Oelckers
bb67a1ba38 - some reworking of the texture code to make integration of Build tiles easier. 2019-10-12 08:54:06 +02:00
Christoph Oelckers
fbc22e0125 - sanitized walock.
Sorry, but having a globally writable pointer to every texture is just insane and makes any functional management impossible.
This is merely a preparation for adding a real texture manager. That cannot be done if any code can write over the data at will. For that, it now has to make the texture writable first or create a writable empty texture.
2019-10-11 23:31:59 +02:00
Christoph Oelckers
3621aae3f0 - rerouted all write accesses to tilesiz and picsiz through a function interface.
These will have to do some texture management bookkeeping so directly changing the values is problematic.
This required changing the parameter interface in polymost.cpp because a few places hacked around with the global state to pass parameters to subfunctions.
2019-10-11 21:04:31 +02:00
Christoph Oelckers
fdbb27a796 - added back the paletted texture readers.
... after finding out what an inefficient and poorly working method the Build backend uses for downconverting true color textures.
2019-10-11 19:21:36 +02:00
Christoph Oelckers
14b21bab7a - merged playing_blood and bloodhack variables because they did the same thing.
The only difference was that bloodhack came from NBlood and playing_blood was added for unhandled differences between the backends of EDuke32 and NBlood.
2019-10-11 00:34:27 +02:00
Christoph Oelckers
d9d721bff6 - removed old sky code.
r_flatsky is now the only option.
2019-10-11 00:15:20 +02:00
Christoph Oelckers
79ef3413dc - removed a large block of fudging code for NPOT textures on non-supporting hardware.
We do not care about non-supporting hardware, so off this goes.
2019-10-10 23:38:06 +02:00
Christoph Oelckers
4d83a3c2a5 - moved all code related to texture creation to texache.cpp
Also go directly to the source when trying to determine translucency of a texture.
2019-10-10 23:29:13 +02:00
Christoph Oelckers
c588cd499a - let GLInstance::Draw set the palette indexing mode.
This can be trivially decided based on the texture type, so there's really no need to let the higher level code deal with this.
2019-10-10 23:14:57 +02:00
Christoph Oelckers
36ca38258e - hotfixed the transparency checkers to not create textures from regular tiles.
This caused some broken textures, apparently this gets called when not everything has been set up.
The hightile case will also have to be fixed.
2019-10-10 22:23:20 +02:00
Christoph Oelckers
fbc7e626e9 - removed the fullbright render pass, because this is better set up as a shader option.
- 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.
2019-10-10 21:05:10 +02:00
Christoph Oelckers
84b10bdb74 - cleaned up videoUpdatePalette function and removed the hardware texture invalidation from it.
This makes no sense because it'd toss out all the level textures that may still be needed for what probably is only a temporary palette change (like going underwater)
2019-10-10 20:28:41 +02:00
Christoph Oelckers
179076c4b1 - set up the texture matrix. 2019-10-10 19:46:46 +02:00
Christoph Oelckers
1407c18f8b - cleaned out some remains of the non-indexed render path.
All of this will be redone in the backend.
2019-10-10 19:40:33 +02:00
Christoph Oelckers
46ffea94a4 - cleanup of gloadtile_art. 2019-10-10 19:30:05 +02:00
Christoph Oelckers
34b7759b7e - removed the non-indexed parts of gloadtile_art.
This won't be needed anymore.
2019-10-10 19:25:03 +02:00
Christoph Oelckers
c428e367a0 - hotfix for texture filter settings.
This needs to be done differently later to choose the proper clamp setting.
2019-10-10 19:16:27 +02:00
Christoph Oelckers
1fee7a5f01 - cleanup of texture creation code.
There were several mostly pointless options complicating all of this.
2019-10-10 00:07:45 +02:00
Christoph Oelckers
eca099681a - hooked up the Shadow Warrior frontend.
It doesn't really work but this way it always gets compiled and linked so that it receives the changes to the backend code.
2019-10-09 20:14:04 +02:00
Christoph Oelckers
0f4abfa4f4 - SW compiles.
This required taking lots of function prototypes out of functions because they won't get a namespace in there.
2019-10-09 19:58:09 +02:00
Christoph Oelckers
70004665fd - added Shadow Warrior files to CMake project - not compiled yet. 2019-10-09 18:09:05 +02:00
nukeykt
1104065b47 Fix RR compiling on other platforms
Patch by NY00123
2019-10-09 17:31:13 +02:00
Christoph Oelckers
50a53bd2b9 - fixed: The precacher should not look for presence of the tile's pixel data.
For hardware rendered precaching this is meaningless.
2019-10-09 00:32:28 +02:00
Christoph Oelckers
9dc0ff08f5 - hotfixed compile error. 2019-10-09 00:26:54 +02:00
Grind Core
f5f012ccb9 - Added names for statnums
- Added names for system RX/TX channels
- Detect if map requires new features to work properly via special TX and command
- Effect Gen update

# Conflicts:
#	source/blood/src/actor.cpp
#	source/blood/src/eventq.h
#	source/blood/src/triggers.cpp
#	source/blood/src/triggers.h
2019-10-08 22:27:45 +02:00
Christoph Oelckers
ef0fd57367 - small bits of cleanup. 2019-10-08 22:23:48 +02:00
Christoph Oelckers
93f9303c62 - minor reorganization of tiles. 2019-10-08 19:46:39 +02:00
Christoph Oelckers
b78b53d75b - deleted unused function. 2019-10-08 18:48:14 +02:00
Christoph Oelckers
48a5dfe9a6 - skip -game in Blood menu 2019-10-08 01:38:01 +02:00
Christoph Oelckers
13115ad217 - another crash in Blood 2019-10-08 01:37:43 +02:00
Christoph Oelckers
50e6d364be - prevent crash on invalid textures. 2019-10-08 01:37:24 +02:00
Christoph Oelckers
7131fe6c6e - use separate textures for the palswap shade tables.
This creates a lot less mess than one big texture and also allows easier use of texelFetch in the server which is preferable for data textures.
2019-10-08 01:08:08 +02:00
Christoph Oelckers
06e9a60190 - nothing 2019-10-08 00:02:37 +02:00
Christoph Oelckers
82f6e2edb0 - fixed creation of paletted textures and added some palette debugging aids. 2019-10-07 23:32:38 +02:00
Christoph Oelckers
16dbb3526a - removed unused code. 2019-10-07 22:11:28 +02:00
Christoph Oelckers
dfaa162bb2 - finished the palswap handling in the palette manager. 2019-10-07 22:11:09 +02:00
CommonLoon102
3b463bc38e fix disappearing bodies in coop with respawning monsters (#211) 2019-10-07 17:41:16 +02:00
Christoph Oelckers
c050a0c4c8 - changed palswap management to handle the size of full lookup tables. 2019-10-07 00:34:15 +02:00
Christoph Oelckers
620897ecdd fix 2019-10-07 00:14:41 +02:00
Christoph Oelckers
7713860b63 wip. 2019-10-07 00:14:16 +02:00
CommonLoon102
70c4865ba4 Delete keybinding with delete or backspace (#208) 2019-10-07 00:10:04 +02:00
CommonLoon102
320eaae790 Fix F8 (#207) 2019-10-07 00:10:03 +02:00
Grind Core
05a1c94df4 - Changes for Enemy Target Changer
- Debris physics update

# Conflicts:
#	source/blood/src/actor.cpp
2019-10-07 00:09:32 +02:00
Christoph Oelckers
734d8b7d1e - moved the palette management into the backend. 2019-10-06 21:15:53 +02:00
Christoph Oelckers
b1aaafb973 - abstracted uploadpalswap out of the game code.
This needs special setup on the renderer side that needs to be done in a more controlled fashion.
2019-10-06 19:47:31 +02:00
Christoph Oelckers
ef2de97077 - the harmless changes of the failed refactoring of the shader. 2019-10-06 19:32:35 +02:00
Christoph Oelckers
e94ed3abf2 - fixed uninitialized bitmap object for texture generation. 2019-10-06 19:19:26 +02:00
Christoph Oelckers
cf30f5560b - upgraded the polymost fragment shader to GLSL 3.3 as well, removing all legacy features from it.
The only compatibility mode feature left is the main drawer function using glBegin/glEnd but changing that is not as urgent as the rest.
This also cleans up the fog application and adds the exponential fog mode again that somehow got lost over time.
2019-10-06 12:42:35 +02:00
Christoph Oelckers
3d538b4c8f - use explicit vertex attributes for everything.
No more glVertex, glTexCoord or glColor calls anywhere.
2019-10-06 10:46:23 +02:00
Christoph Oelckers
71d132b470 - use explicitly declared matrix uniforms.
The builtin matrices are no longer available in modern GLSL, preventing an upgrade of the shader.
Also perform better reporting of shader compilation errors.
2019-10-06 10:19:51 +02:00
Christoph Oelckers
126f670239 - draft class for in-game textures.
These will abstract away all the gory details so that the using code only sees a single entity to use.
2019-10-06 09:31:36 +02:00
Christoph Oelckers
4a866b0320 - use stb_image to read the image formats supported by kplib but not by GZDoom.
(No, sorry, kplib must go - a utility library like that being utterly dependent on a multitude of global variables is a no-go.)
2019-10-06 08:48:07 +02:00
Christoph Oelckers
d1a7c4225d - added a texture class for ART-format hightiles.
This allows to treat them like all other image formats.
2019-10-05 23:44:28 +02:00
Christoph Oelckers
0dfe99356d - stripped most of the image processing code from kplib, because it's not needed anymore - and also not salvageable for any refactoring. 2019-10-05 22:32:32 +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
cd0dabf2ae - this was missing 2019-10-05 19:39:41 +02:00
Christoph Oelckers
1a5e64329f - added stripped down versions of GZDoom's texture classes
We need something more manageable to deal with the textures - and the hightile code in particular needs a better backend to read the images.
2019-10-05 19:38:25 +02:00
Christoph Oelckers
bedfc262c4 - added a FileReader wrapper for kopen4load.
Needed when transitioning the hightile loader to GZDoom's texture loader.
2019-10-05 17:30:23 +02:00
Christoph Oelckers
3fb5154dc9 - make it work again. 2019-10-05 14:17:59 +02:00
Christoph Oelckers
f99492d6d5 - removed OpenGL headers from non-backend files. 2019-10-05 13:57:26 +02:00
Christoph Oelckers
3c193bb243 - moved the animvpx shader to the backend code.
This removes the final access to OpenGL from the rest of the source, with the exception of the glFinish call in the swap code.
2019-10-05 13:38:02 +02:00
Christoph Oelckers
0ee80628a2 - moved documentation out of the Source folder and added surface shader sources. 2019-10-05 13:17:26 +02:00
Christoph Oelckers
b83349fe6b - moved the surface shader to the backend and the shader source to the resource file. 2019-10-05 13:09:15 +02:00
Christoph Oelckers
644b07b718 - minor fixes. 2019-10-05 12:39:50 +02:00