Christoph Oelckers
ba117554b0
- fixed savegame issues.
...
Since the code is extremely volatile I changed the setup so that the save is a zip file with the regular snapshot plus all added data as separate entries.
This allows compressing everything properly without savegame breaking interference.
Blood does not yet load its savegames, need to check.
2019-11-14 21:07:43 +01:00
Rachael Alexanderson
5002dd866c
- fix compile on vs2017, change pow2char to static
...
- include nullptr check for mapname in music.cpp
2019-11-13 16:40:08 -05:00
Christoph Oelckers
7f3d00446d
- removed the unused File* functions which were the last remaining places to use stdio FILE for reading.
...
For writing FILE is mostly fine, but reading should exclusively use FileReader to ensure interoperability with the virtual file system.
2019-11-13 18:34:05 +01:00
Christoph Oelckers
c6a38faf39
- add savegame support for the statistics and secret hint feature.
2019-11-13 18:23:45 +01:00
Christoph Oelckers
8055d10362
- hooked up the secret hint system
2019-11-13 00:44:33 +01:00
Christoph Oelckers
35bc7f56fc
- added secret hint code.
...
Not hooked up yet.
2019-11-12 23:23:22 +01:00
Christoph Oelckers
dee1cba849
- hooked up Blood with the statistics code.
2019-11-12 22:59:51 +01:00
Christoph Oelckers
6ccef7201e
- hooked up the statistics code with EDuke and RedNukem frontends.
...
Not sure about the end of game conditions, I wasn't able to test that part yet.
2019-11-12 22:45:11 +01:00
Christoph Oelckers
74ed8fd1d9
- added GZDoom's statistics code
...
Not hooked up yet.
2019-11-12 22:00:33 +01:00
Christoph Oelckers
0bdec4ea2e
- fixed: Events were processed as key events without checking their type.
2019-11-12 20:17:17 +01:00
Christoph Oelckers
22ccea8677
- reworked music interface a bit.
...
Conmsidering how hard it is in Duke Nukem based games to modify the level music, there is now a setting for this in mussetting.txt to make the job easier and even allow setting level music in Redneck Rampage without replacing game data.
2019-11-12 00:43:07 +01:00
Christoph Oelckers
022c074ece
- fixed brightmaps again - hopefully for real this time.
...
The lighting model being used here is not really good for implementing render effect.
2019-11-11 23:54:09 +01:00
Christoph Oelckers
3be9deb070
- removed the different shadeDiv for Ion Fury.
...
This isn't necessary and was apparently caused by a bug that got fixed in the mean time.
2019-11-11 23:24:31 +01:00
Grind Core
0d82280b87
- Added event initiator for sectors and walls
...
- Added dynamic dispersion for custom dude
- Added dynamic attack distance for custom dude
- Added dynamic damage resistance scale for custom dude
- There was some refactor actions performed
- Added player RX channels for triggering the players
- Updates for modern types
- There was added player control modern type which can do a lot things. It's
still WIP
- Other updates and fixes mainly related to gModernMap
Note that your save games will be no longer compatible
# Conflicts:
# source/blood/src/actor.h
# source/blood/src/aiunicult.h
# source/blood/src/db.h
# source/blood/src/player.h
# source/blood/src/triggers.h
# source/blood/src/weapon.cpp
2019-11-11 22:59:05 +01:00
Grind Core
d79c45584a
- No weapon fix
...
I just forget to set default values
2019-11-11 22:54:03 +01:00
Christoph Oelckers
0f2c4f7760
- added stripped down SNDINFO parser so that the music related settings can be specified.
2019-11-11 22:52:07 +01:00
Christoph Oelckers
cee5891409
- so music is finally working but I don't know - adding a second sound backend because the existing one is such a piece of shit is certainly not the best solution.
...
I'll probably replace the SDL and DirectSound outputs with OpenAL later - let's hope that the mixer is at least flexible enough to handle that...
2019-11-11 21:50:20 +01:00
Christoph Oelckers
16a6cd909a
- this should work but doesn't...
2019-11-11 20:37:57 +01:00
Christoph Oelckers
51a5fecc02
- something can be heard, but it's crap.
...
This sound code is really strange.
2019-11-11 19:53:06 +01:00
Christoph Oelckers
9782b8180a
- removed libxmp.
2019-11-11 19:12:04 +01:00
Christoph Oelckers
ec6ce8b1ec
- hooked up ZMusic.
2019-11-11 19:10:46 +01:00
Christoph Oelckers
29d16868c9
- fixed compile errors.
2019-11-11 17:51:30 +01:00
Christoph Oelckers
f6a9bb770d
- fixed most issues with newly added music files
2019-11-11 01:01:18 +01:00
Christoph Oelckers
ae06d19008
- added remaining music files to project
2019-11-11 00:31:36 +01:00
Christoph Oelckers
5e95ef5322
- added the rest of GZDoom's music interface.
...
This still needs to be integrated.
2019-11-11 00:23:52 +01:00
Christoph Oelckers
9f9748ede6
- initial ZMusic hookup.
2019-11-10 23:58:51 +01:00
Christoph Oelckers
79561ace09
- use the precalculated or script-specified fade colors, if present.
2019-11-10 21:11:17 +01:00
Christoph Oelckers
5fc81d1bd4
- made brightmaps operational.
...
The logic is not yet optimal but at least it works.
2019-11-10 19:42:26 +01:00
Christoph Oelckers
21ac5e87b5
- added blend table translucency estimation instead of using a lame default.
...
- draw fullscreen blends below the console.
- moved all mouse event processing out of the SDL backend to D_PostEvent.
- removed all remaining code for dealing with mouse buttons directly.
2019-11-10 15:15:14 +01:00
Christoph Oelckers
87acd7fef6
- fixed blend mode for the 2D drawer.
2019-11-10 12:12:15 +01:00
Christoph Oelckers
55018aae7e
- fixed mouse scaling
2019-11-10 11:59:22 +01:00
Christoph Oelckers
a1a9770b44
- reworked the FPS display to use ZDoom's fstat class to get rid of the microscopic font it used.
...
- changed time display for rendering to exclude VSync and playsim times to get more meaningful information.
2019-11-10 11:42:25 +01:00
Christoph Oelckers
cae710bd59
- fixed alpha threshold.
...
Not only is this a deprecated feature - it also does not work right when complex lighting is at play, it must be done in the shader to get proper results.
2019-11-10 10:01:31 +01:00
Christoph Oelckers
7e70c217fe
- fixed console event processing and added a texture memory calculator.
2019-11-09 23:58:26 +01:00
Christoph Oelckers
672498be1d
- hooked up the keybind menu for Blood as well and disabled some obsolete mouse settings.
2019-11-09 22:58:34 +01:00
Christoph Oelckers
39df3d0560
- added 'logfile' CCMD.
2019-11-09 22:27:33 +01:00
Christoph Oelckers
2997bb6292
- the keybinding menu is finally working.
...
Obviously the existing menu implementation from Duke Nukem needs to be tossed out at some point, but at least the functionality is there again.
2019-11-09 22:22:51 +01:00
Christoph Oelckers
94baca8b1e
- same changes in RedNukem frontend.
2019-11-09 19:39:35 +01:00
Christoph Oelckers
299f596afc
- Changed EDuke menu to receive all settings storage locations as CVARs.
...
With this out of the way the only part that needs a real replacement immediately is the keybinds menu.
2019-11-09 19:15:03 +01:00
Christoph Oelckers
0f74a5c3a4
- make the ImGui popup close on request.
2019-11-09 14:05:52 +01:00
Christoph Oelckers
fd4680c347
Merge commit '3061e3860cd212893e7d08a09223d4e9ad78b204' into Dear_ImGui
2019-11-09 13:42:59 +01:00
Christoph Oelckers
d3e6807f61
- fixed infinite loop in compression code.
2019-11-08 17:50:32 +01:00
hendricks266
dc10a8b03d
SW, KenBuild: Replace strupr with Bstrupr
...
git-svn-id: https://svn.eduke32.com/eduke32@8283 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/kenbuild/src/kdmeng.cpp
# source/sw/src/bldscript.cpp
# source/sw/src/jbhlp.cpp
2019-11-08 17:42:09 +01:00
hendricks266
fbb75aae0b
SW: Replace UCHAR with unsigned char
...
git-svn-id: https://svn.eduke32.com/eduke32@8282 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-08 17:41:40 +01:00
hendricks266
125ec7ad2c
SW: Replace MAXLONG with INT32_MAX
...
git-svn-id: https://svn.eduke32.com/eduke32@8281 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-08 17:41:39 +01:00
Christoph Oelckers
f52a58d9ac
- fixed compilation.
2019-11-08 17:41:19 +01:00
Christoph Oelckers
9aa275f996
- got rid of some editor-only code and the entire buildvfs header
...
Nearly all file write access now uses the FileWriter class, which is UTF-8-safe on all platforms - unlike stdio.
2019-11-08 02:02:54 +01:00
Christoph Oelckers
4fc56203c2
- implemented savegame compression
...
Unfortunately necessary because Ion Fury savegames store 120 GB(!!) of data, mostly zeros.
Unlike the old method, this compresses the entire savegame as one block using a ZLib stream so it should be a lot more efficient now.
2019-11-08 01:36:32 +01:00
Christoph Oelckers
a40be954f1
- same change for RedNukem front end.
2019-11-08 01:04:27 +01:00
Christoph Oelckers
47227fc90f
- replaced FILE * with FileReader in savegame code.
...
FILE* is too inflexible, with FileReader I can plug in a transparent compressor.
2019-11-08 00:26:14 +01:00
Christoph Oelckers
2d46827ecc
font
...
- Dear ImGUI test.
2019-11-07 20:32:49 +01:00
Christoph Oelckers
d2cbd71dbf
- adjustments
2019-11-07 20:30:56 +01:00
Christoph Oelckers
e4735fdff1
- dead code removal.
2019-11-07 00:49:19 +01:00
Christoph Oelckers
51658de730
- fixed savegame path generation
2019-11-06 23:41:56 +01:00
Christoph Oelckers
b6a3a60251
- console output is functional.
2019-11-06 23:40:10 +01:00
Christoph Oelckers
81e9c867da
- fixed key binding
2019-11-06 20:34:00 +01:00
Christoph Oelckers
5d31119a49
- fixed the Shadow Warrior menu, but it doesn't do much good. The game appears to be thoroughly broken.
2019-11-06 19:22:14 +01:00
Christoph Oelckers
6ee807f225
- two things I forgot to save before committing.
2019-11-06 17:57:10 +01:00
Christoph Oelckers
cf6b4c64b1
- little bit of code cleanup
...
dead code removal and splitting app_main in two to separate its init part from the game loop
2019-11-06 14:12:50 +01:00
Christoph Oelckers
88bf056176
- added a class for cleaner savegame writing
2019-11-06 12:29:08 +01:00
Christoph Oelckers
e87642e197
- cleaned out the remains of the savegame compression hacks
...
This broke the savegame reader which still assumed it was working on compressed data. Everything will now take the uncompressed path.
In-stream optional compression is not a good idea anyway, this can and should be done better.
Also: Why is the savegame format architecture dependent???
2019-11-06 01:01:16 +01:00
Christoph Oelckers
f252eaffbc
- fixed font translation setup.
2019-11-06 00:00:33 +01:00
Christoph Oelckers
de829128ea
- hooked up the 2D drawer
...
compiles but not tested yet.
2019-11-05 23:35:38 +01:00
Christoph Oelckers
341ca9dd3a
- removed the EDuke revision data and replaced it with Demolition's own.
2019-11-05 20:48:34 +01:00
Christoph Oelckers
3a0b8364f7
- removed the OSD entirely.
2019-11-05 20:31:30 +01:00
Christoph Oelckers
8321bc6208
- removed most of the old OSD's hooks.
2019-11-05 20:25:57 +01:00
Christoph Oelckers
c46b22e52e
- more cleanup of obsolete OSD code.
2019-11-05 20:16:53 +01:00
Christoph Oelckers
a4483f131d
- Printf related cleanup.
2019-11-05 20:07:16 +01:00
Christoph Oelckers
d943fe036d
- added the ZDoom console and made all needed changes to get it compiled.
2019-11-05 19:57:48 +01:00
Christoph Oelckers
ffa16b2a53
- removed all command related code from the OSD.
...
None of this was used anymore.
2019-11-05 00:48:27 +01:00
Christoph Oelckers
e37cb782ca
- fixed dependency problems with OSD definitions being used in another header.
2019-11-05 00:39:00 +01:00
Christoph Oelckers
5b67d653ed
- removed the bind command set from the osdcmd files to make sure that they don't get called anympre. All input should be routed through the new console code now.
...
# Conflicts:
# source/blood/src/osdcmd.cpp
# source/build/src/osd.cpp
# source/common/console/c_cmdline.h
# source/common/console/c_dispatch.cpp
# source/common/console/c_dispatch.h
# source/duke3d/src/osdcmds.cpp
# source/rr/src/osdcmds.cpp
2019-11-05 00:22:42 +01:00
Christoph Oelckers
44f81ebd56
- let OSD_Dispatch forward everything to the ZDoom-based command dispatcher.
...
Essentially making the OSD a dumb terminal. :P
2019-11-05 00:12:20 +01:00
Christoph Oelckers
189ce21acf
- reactivated the binding reladed CCMDs.
2019-11-04 23:52:08 +01:00
Christoph Oelckers
8d089a11fa
- for initializing tab commands a separate static lookup function must be used to get the button names.
...
Because order of initialization for static objects is undefined.
2019-11-04 23:11:10 +01:00
Christoph Oelckers
570696fc09
- added ZDoom's CCMD code.
...
Not tested yet.
2019-11-04 23:01:50 +01:00
Christoph Oelckers
bbf0a73471
- input works again.
2019-11-04 20:29:07 +01:00
Christoph Oelckers
25341c7221
- hook up the buttons.
...
This is still just glue code, the Build implementation suffers from poor support for multiple keys bound to a single button so they are due for replacement as soon as input is working again.
2019-11-04 18:17:14 +01:00
Christoph Oelckers
1ee4efebb0
- fixed compilation.
2019-11-04 17:58:18 +01:00
Christoph Oelckers
e7f4433df6
- consolidation of mouse code and obsolete code removal
2019-11-04 02:07:59 +01:00
Christoph Oelckers
0b6db7eede
- cleanup of baselayer.cpp
2019-11-04 01:18:38 +01:00
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