Commit graph

2933 commits

Author SHA1 Message Date
Christoph Oelckers
fd9a3a9f16 - fixed lump filtering. 2019-12-16 13:03:22 +01:00
Christoph Oelckers
84b6a89057 - fixed inconsistent coordinate system transformations
- fixed bad sound ID being passed in S_CalcDistAndAng;
- cleaned up CalcPosVel.
- lowered the volume of unattenuated sounds a bit. They were disproportionately loud compared to the old sound system.
2019-12-16 13:02:43 +01:00
Christoph Oelckers
9adb4dd98d - pass correct sound ID to frontend for position calculation and minor improvements on debug printer. 2019-12-16 12:32:42 +01:00
Christoph Oelckers
ea9a84752f - switched the volume slider to the OpenAL backend. 2019-12-16 09:32:58 +01:00
Christoph Oelckers
b1b33ef231 - fixed hang with skill sound on game start.
This waits inside code where S_Update wasn't called. To make things clearer the waiting loop was moved closer to where it gets played.
2019-12-16 09:19:04 +01:00
Christoph Oelckers
938db6d35d - sounds in the menu are working now.
Since the in-game sound is paused in the menu these sounds need the CHAN_UI flag to play.
2019-12-16 08:19:57 +01:00
Christoph Oelckers
9b9c009de9 - copybyte is not the same as memcpy.
It should be inlined to use it, though, because homegrown loops for this stuff may have been ok in 1995, but not in 2019.
2019-12-15 21:06:41 +01:00
Christoph Oelckers
c9198729b0 - did some tweaks to the sound.
The angle was wrong and the rolloff type apparently as well. It sounds a lot better now, especially after also altering the minimum distance for the rolloff. This one is interesting, it looks like a bug where the desired value was shifted two bits too much, quadrupling the distance where volume reduction starts.
2019-12-15 20:55:15 +01:00
Christoph Oelckers
22ef66209d - sound is finally playing, but the volume needs balancing and positioning doesn't seem to be 100% correct. 2019-12-15 20:16:36 +01:00
Christoph Oelckers
4f9eda189a - a few sounds play, but it's still very buggy. 2019-12-15 19:00:41 +01:00
Christoph Oelckers
38dc39b8cd - got it to start, cannot hear anything... 2019-12-15 17:16:11 +01:00
Christoph Oelckers
d7ddd620e4 - added some final missing pieces to the sound code. 2019-12-15 16:32:39 +01:00
Christoph Oelckers
a28cd17454 - refactoring of DN3D sound code complete but not tested yet. 2019-12-15 13:34:00 +01:00
Christoph Oelckers
62660e76f3 - sound system rework. Not complete. 2019-12-15 10:00:25 +01:00
Christoph Oelckers
dba1a348d5 Merge branch 'master' into sound 2019-12-15 07:57:48 +01:00
nukeykt
9cc8dee5fe Add guard to prevent OOB error 2019-12-15 07:54:29 +01:00
nukeykt
1719b70559 Oops, i've missed do while here
# Conflicts:
#	source/rr/src/game.cpp
2019-12-15 07:54:27 +01:00
Christoph Oelckers
d23b4a7e33 - hooked up ZDoom' joystick code and removed the remaining parts of the old MACT input library. 2019-12-14 20:15:15 +01:00
Christoph Oelckers
957d997353 - made joystick configuration menu operational. 2019-12-14 19:21:49 +01:00
Christoph Oelckers
6c1a8fb8c2 - cleaned out a bit more unused code. 2019-12-14 17:47:48 +01:00
Christoph Oelckers
91f83d4c55 - input code cleanup and addition of ZDoom's joystick code, which is not fully connected yet. 2019-12-14 17:15:17 +01:00
nukeykt
f2dd7326d0 Backport changes related to timing from mainline
# Conflicts:
#	source/rr/src/game.cpp
2019-12-14 00:21:32 +01:00
nukeykt
bff0646263 Recalculate horizycent because ydim can be changed in renderSetTarget 2019-12-14 00:20:58 +01:00
Christoph Oelckers
773c480940 - this sound system is too insane to be ported. 2019-12-12 21:42:58 +01:00
Christoph Oelckers
c5c2873223 - added GZDoom's sound engine.
This is not connected with the games yet.
2019-12-12 19:21:36 +01:00
Christoph Oelckers
b5cc3ef883 - moved a few bits of code around in Duke's sounds.cpp.
- refactored the only place in the entire code that used the return of S_PlaySound.
2019-12-12 18:43:27 +01:00
Christoph Oelckers
86dc909559 - added detection logic for zipped versions of the Cryptic Passage add-on for Blood and the Route66 add-on for Redneck Rampage.
- added command line options to load the original file dump of both mods in the game directory.
- both also require loading additional non-standard-named .art files
2019-12-11 23:41:05 +01:00
Christoph Oelckers
7942bc9490 - completed work on Shadow Warrior main menu.
This one will definitely be a problem for localization because the font is extremely large.
2019-12-11 20:35:25 +01:00
Christoph Oelckers
95625567e0 - fixed compile errors. 2019-12-11 18:40:42 +01:00
Christoph Oelckers
3f524d7026 - set currentLevel in SW 2019-12-11 02:30:34 +01:00
Christoph Oelckers
875678f20b - transitioned Shadow Warrior to the global mapinfo 2019-12-11 02:01:11 +01:00
Christoph Oelckers
250dd36289 - this better uses currentLevel for consistency 2019-12-11 01:19:32 +01:00
Christoph Oelckers
ec96ae8992 - cleanup of -map setup. 2019-12-11 01:11:35 +01:00
Christoph Oelckers
cb051b44ea - removed unused compression records from savegame header 2019-12-11 01:10:59 +01:00
Christoph Oelckers
69fd6cf69d - removed currentBoardFilename
This was only used for displaying the name for user maps, everything else was using other means of getting the data already, and even here currentLevel is better suited.
2019-12-11 01:01:03 +01:00
Christoph Oelckers
5c0cd5114d - transitioned Blood to the common mapinfo system. 2019-12-11 00:57:53 +01:00
Christoph Oelckers
cc33c6a0ed - deactivate statistics for user maps.
This really isn't controllable.
2019-12-10 23:11:02 +01:00
Christoph Oelckers
ebb43f9129 - use the currentLevel record for the status screens. What was there could be broken by scripts thanks to the non-existent access control to critical variables.
- give the final map in RR a proper mapinfo record. Without this the map is not really stable with the current savegame system.
2019-12-10 23:04:06 +01:00
Christoph Oelckers
0e19d4262e - savegame and mapinfo cleanup in DN3D and RR frontends.
Also added an "end game" flag to the mapinfo. For those who like to assemble single levels into custom episodes. More features for that to come. ;)
2019-12-10 22:22:59 +01:00
Christoph Oelckers
4cc22e155f - better handling for maps without names.
Use the file's base part as name if that happens.
2019-12-10 17:35:28 +01:00
Christoph Oelckers
db29fc1a01 - removed the mostly useless changelevel CCMDs.
It makes more sense to do a real 'map' CCMD instead once the level management is working properly.
2019-12-10 17:25:45 +01:00
Christoph Oelckers
4f04fe66de - transitioned RR to the new mapinfo 2019-12-10 00:31:55 +01:00
Christoph Oelckers
3b57f38e55 - started transitioning to a global mapinfo list.
This will make it a lot easier for cross-game parts of the engine to query game state.
So far the EDuke frontend has been ported over.
2019-12-10 00:01:45 +01:00
Christoph Oelckers
16818d2d71 - exported Shadow Warrior strings to stringtable.
The MP obituaries are not handled yet, they were only copied but there's no code using them.
2019-12-09 21:19:05 +01:00
Christoph Oelckers
6ef1f96b40 - added SWP's parser for theme music definitions.
Because, why not? The SWCustom I use already contains them.
However, since the original source does not play theme MIDIs - only CDA, there's a switch to disable them.
2019-12-09 20:12:54 +01:00
Christoph Oelckers
e62f6cbc20 - weapon and ammo names are now also localizable. 2019-12-09 19:49:36 +01:00
Christoph Oelckers
da1900dc8a - same for inventory pickup messages. 2019-12-09 19:00:30 +01:00
Christoph Oelckers
670c8b1408 - use the quote array to store the key, door and fortune cookie messages in Shadow Warrior.
This is infinitely better than leaking char pointers.
2019-12-09 18:40:07 +01:00
Christoph Oelckers
782dfcdc54 - changed licenses in a few files.
These originated from GZDoom and originally contained original Doom code, but for Demolition the offending parts are no longer present so the ZDoom-BSD license applies now.
2019-12-09 17:29:31 +01:00
Christoph Oelckers
f658b0f33d - deleted duplicated music code.
Apparently this got back in with some cherry pick.
2019-12-09 17:29:31 +01:00
hendricks266
0d7fc1263e Improve diagnostic printing of slopalookup overflows
git-svn-id: https://svn.eduke32.com/eduke32@8419 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-09 17:25:25 +01:00
hendricks266
b71ef4a140 Fix regression in software rendering of slopes in r8363
git-svn-id: https://svn.eduke32.com/eduke32@8418 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-09 17:25:16 +01:00
Christoph Oelckers
ba978ab0d9 - text update and missing includes. 2019-12-09 17:17:15 +01:00
Christoph Oelckers
5e9b874610 - exported most of Blood's text to the string table
MP messages with %s yet to do.
2019-12-09 02:01:30 +01:00
Christoph Oelckers
0604c72586 - code cleanup
removed some unused definitions
replaced the copybuf* functions with memcpy. These days doing homegrown copy loops is not efficient anymore.
2019-12-09 01:39:40 +01:00
Christoph Oelckers
66218dd074 - connect SW with statistics code and added missing function for Blood
# Conflicts:
#	source/blood/src/blood.h
#	source/common/menu/messagebox.cpp
#	source/sw/src/game.cpp
#	source/sw/src/game.h
2019-12-09 01:03:18 +01:00
Christoph Oelckers
4ef9ec6708 - call STAT_StartNewGame globally from the menu 2019-12-09 01:00:46 +01:00
Christoph Oelckers
9f25c9c117 - some string rework
* removed temporary placeholder content from string init function. All this gets properly read from definition files now.
* preinitialize a few quotes that are used for status display purposes and are needed in all games
* only use the global episode name table in Blood to avoid redundancy
* let SW's swcustom parser write to the global tables instead of local ones.
2019-12-09 01:00:46 +01:00
Christoph Oelckers
a74797b97c - fix merge errors. 2019-12-08 08:51:54 +01:00
terminx
0456d8f36d These shouldn't be references
git-svn-id: https://svn.eduke32.com/eduke32@8408 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-08 08:39:20 +01:00
terminx
694863a8a1 Fix cacheAllSounds() being called before .def parsing... oops!
git-svn-id: https://svn.eduke32.com/eduke32@8404 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-08 08:37:51 +01:00
terminx
f5e3b4bb5a Fix osdcmd_changelevel
git-svn-id: https://svn.eduke32.com/eduke32@8397 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-08 08:30:57 +01:00
terminx
0b2f550f09 This change to Gv_DivVar() is faster when benchmarked
git-svn-id: https://svn.eduke32.com/eduke32@8396 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-08 08:30:35 +01:00
terminx
a2fd43da2f Clean up CON_FOR a little
git-svn-id: https://svn.eduke32.com/eduke32@8395 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-08 08:29:24 +01:00
terminx
949d2f311e Remove driver_nosound from audiolib
Why? Because it's fucking useless. If we want to waste CPU on outputting nothing, SDL has us covered with its "dummy" audio backend.

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

# Conflicts:
#	GNUmakefile
#	platform/Windows/audiolib.vcxproj
#	platform/Windows/audiolib.vcxproj.filters
#	source/audiolib/src/driver_nosound.cpp
#	source/audiolib/src/driver_nosound.h
#	source/audiolib/src/drivers.cpp
2019-12-08 08:21:59 +01:00
terminx
9146dc9a89 Remove duplicate call to cacheAllSounds() from S_SoundStartup()
git-svn-id: https://svn.eduke32.com/eduke32@8375 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/sounds.cpp
2019-12-08 08:13:15 +01:00
terminx
fd1656fbf2 Move atoi_safe() from editor.h to compat.h and #define Batoi atoi_safe
They were the same thing so they might as well be in the same place.

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

# Conflicts:
#	source/build/include/editor.h
2019-12-08 08:11:04 +01:00
terminx
0af13dcde0 Minor changes to hash table code
git-svn-id: https://svn.eduke32.com/eduke32@8372 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/hash.h
2019-12-08 08:09:13 +01:00
terminx
15b76f2041 Add Xaligned_calloc()
git-svn-id: https://svn.eduke32.com/eduke32@8371 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/compat.h
2019-12-08 08:08:55 +01:00
terminx
c851da92a6 Improve interaction between cheat entry and player input
git-svn-id: https://svn.eduke32.com/eduke32@8369 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/cheats.cpp
#	source/duke3d/src/player.cpp
2019-12-08 08:05:14 +01:00
terminx
cf0a74a888 Fix noclip in Duke3d
git-svn-id: https://svn.eduke32.com/eduke32@8368 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-08 07:59:31 +01:00
terminx
441b0460aa Map SDL joystick device trackball input to mouse input
git-svn-id: https://svn.eduke32.com/eduke32@8367 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/sdlayer.cpp
2019-12-08 07:59:14 +01:00
terminx
cbfb675577 Shitcan the few uses of the bool type in the VM after reading some things and dicking around on godbolt.org
git-svn-id: https://svn.eduke32.com/eduke32@8366 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/gameexec.cpp
#	source/duke3d/src/gameexec.h
2019-12-08 07:56:50 +01:00
terminx
265e7109aa Equivalent to 04e7e6af69
git-svn-id: https://svn.eduke32.com/eduke32@8363 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-08 07:53:27 +01:00
terminx
8452f01310 A small amount of driver_adlib cleanup
git-svn-id: https://svn.eduke32.com/eduke32@8361 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	platform/Windows/audiolib.vcxproj
#	platform/Windows/audiolib.vcxproj.filters
#	source/audiolib/src/driver_adlib.cpp
#	source/audiolib/src/driver_adlib.h
#	source/audiolib/src/fx_man.cpp
2019-12-08 07:52:52 +01:00
Christoph Oelckers
b4f8960d95 - removed unused code. 2019-12-08 07:51:49 +01:00
Christoph Oelckers
f2d0665557 - connected the screen size CVAR and slider with Shadow Warrior's internal setting. 2019-12-07 21:39:17 +01:00
Christoph Oelckers
8f90cc8324 - more Shadow Warrior cleanup. 2019-12-07 20:48:16 +01:00
Christoph Oelckers
0157446ad1 - thorough cleanup of the Shadow Warrior music code.
This was one huge mess where nothing fit together.
Also added an enhancement that the CD Audio boss theme tracks are also played when CD music is generally off, because these have no equivalent in MIDI. This needs to be checked if it's stylistically ok, though.
2019-12-07 19:57:19 +01:00
Christoph Oelckers
ff50a1681f - simplified the music playing interface a bit.
#
2019-12-07 18:28:30 +01:00
Christoph Oelckers
a05dab66f7 - color tweaking for the options menu. 2019-12-07 15:45:29 +01:00
Christoph Oelckers
2ed03214b1 - disable the save option in SW's main menu if no game is running. 2019-12-07 15:07:43 +01:00
Christoph Oelckers
13c7dcecf6 - exported all game relevant texts from Duke Nukem and Redneck Rampage. 2019-12-07 14:53:13 +01:00
Christoph Oelckers
9960b505e8 - added captions to SW's game menus.
- made Duke Nukem's quote strings localizable.
2019-12-07 12:42:25 +01:00
Christoph Oelckers
a45b1ca637 - fixed anim loading in Shadow Warrior. 2019-12-07 11:48:41 +01:00
Christoph Oelckers
0b8da78ff5 - toupperlookup was no longer referenced anywhere. 2019-12-07 10:56:35 +01:00
Christoph Oelckers
0342b96335 - cleaned out the remaining wrappers from cache1d.h and use the file system directly instead. 2019-12-07 10:49:23 +01:00
Christoph Oelckers
30cbcb54b1 - renamed the remaining file system access wrappers in cache1d.h 2019-12-07 10:31:27 +01:00
Christoph Oelckers
749eda32c5 - moved kopenfilereader into the FileSystem class. 2019-12-07 10:14:51 +01:00
Christoph Oelckers
ef87d2d4f9 - always pause the game when the console is open. 2019-12-07 10:01:03 +01:00
Christoph Oelckers
ddfb2223db - added a directory list function to the file system.
- fixed lookup for resources by ID - it always picked the first candidate from the hash chain without checking the actual ID.
2019-12-07 09:44:43 +01:00
Christoph Oelckers
7d7507d453 - always add movie and music subdirectories. 2019-12-07 00:57:45 +01:00
Christoph Oelckers
5c7b05a791 - made THINGINFO const. 2019-12-07 00:07:02 +01:00
Christoph Oelckers
7a8208eb2f - fixed out of bounds memory access. 2019-12-06 23:20:18 +01:00
Christoph Oelckers
06d2f9fcf1 - fixed music names in Blood 2019-12-06 20:31:17 +01:00
Christoph Oelckers
66756bfa13 - final fixes for Blood's and Duke Nukem's menus. 2019-12-06 18:36:49 +01:00
Christoph Oelckers
a0fe7f4048 - more mouse fixes. Most of the menu is now mouse controllable again.
The exceptions are the text screens which do not react to the mouse and the confirmation screen which treats a mouse click as a cancel event.
2019-12-06 00:06:41 +01:00
Christoph Oelckers
3d10d006a7 - fixing mouse menu control, part 1. 2019-12-05 23:49:32 +01:00
Christoph Oelckers
7a9138cde0 - made the confirmation screen functional.
This works but still needs a bit of visual work.
2019-12-05 23:17:55 +01:00
Christoph Oelckers
db425a1228 - fixed keybinding and mouse cursor display.
- fixed some merge issues in Shadow Warrior.
2019-12-05 21:39:02 +01:00