Commit Graph

1775 Commits

Author SHA1 Message Date
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 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
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 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 95625567e0 - fixed compile errors. 2019-12-11 18:40:42 +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 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 ba978ab0d9 - text update and missing includes. 2019-12-09 17:17:15 +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 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 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 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
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 13c7dcecf6 - exported all game relevant texts from Duke Nukem and Redneck Rampage. 2019-12-07 14:53:13 +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 66756bfa13 - final fixes for Blood's and Duke Nukem's menus. 2019-12-06 18:36:49 +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 54177cd27d - added the animated player display. 2019-12-05 19:52:46 +01:00
Christoph Oelckers 169d68f583 - fixed stuff and cleaned out most of the old menu code. 2019-12-05 19:00:40 +01:00
Christoph Oelckers 628bd9efc6 Filled in the rest of the menus
Sound is only partially functional, video mode completely nonfunctional, but it makes no sense adjusting them to the current backend code when it's due for replacement.
2019-12-05 00:47:05 +01:00
Christoph Oelckers cb0538d0f2 - mouse aiming cleanup.
Reverted this to a sane setting, as it was in the original games and in all other games I have ever seen, i.e. there is a global setting to enable mouse view, and a button to manually trigger it. The toggle can be easily handled by flipping the CVAR directly.
The main problem here was that it triggered a few cases for mouse-less gameplay in the default case with a mouse present, because the mouseaim CVAR was no longer what the game expected.
This misguided change seems to have originated in JFDuke but by now had propagated to all the other games as well, the code was in all 4 frontends.
2019-12-05 01:08:35 +01:00
Christoph Oelckers 3ea526055f - added a generic message display, using ZDoom's code.
This is mainly meant for Nam and WW2GI which have an ugly-as-hell font for these texts.
2019-12-04 23:07:02 +01:00
Christoph Oelckers 6d04f0f159 - added option to print custom messages with Duke Nukem's quote system.
- hooked up all front ends with a generic message printing function so that common code can access the native message displays. This is needed for consolidation of some input actions which are mostly identical but print messages.
- preparations for a generic message system.
2019-12-04 21:35:35 +01:00
Christoph Oelckers 138326314e - text update. 2019-12-04 17:30:41 +01:00
Christoph Oelckers 7d1eb74b5e - more menus implemented 2019-12-04 01:38:51 +01:00
Christoph Oelckers 72857db17b - refactor of the quote storage.
This was consolidated for both EDuke and RedNukem frontends, put into a class with strict access control and the length limit was lifted.
The new class will eventually allow better localization control.
2019-12-04 00:28:28 +01:00
Christoph Oelckers c561255018 - moved the application of in_mousebias and in_mousedeadzone into the backend code.
This piece was repeated 6x for each call to CONTROL_GetInput, creating quite a bit of redundancy.
2019-12-03 20:58:43 +01:00
Christoph Oelckers 6245a0e2e2 - added mouse and controller menus
The controller menu obviously does not work yet, it needs quite a bit of backing code fron GZDoom first.
2019-12-03 01:21:27 +01:00
Christoph Oelckers 65ae00fb74 - completion of controls menu
- some message printing cleanup in SW frontend. This still has its native console that needs to be removed.
2019-12-03 00:57:03 +01:00
Christoph Oelckers 26daff79db - fixed compile errors and updated string table. 2019-12-02 18:11:10 +01:00
Christoph Oelckers 00b2467eea - WIP keybinding cleanup 2019-12-02 02:07:32 +01:00
Christoph Oelckers 36cf2583e4 - removed some dead code. 2019-12-02 00:19:35 +01:00
Christoph Oelckers e2be025433 - fixed the Ion Fury credit screens.
The entire 'fix' here consisted of hacks to give the CON script exactly what it needs to show them as intended.
2019-12-01 17:48:56 +01:00
Christoph Oelckers b372cb5f35 - the primary Blood menus are working.
Now this was magnitudes easier than the EDuke menu - NBlood's menu is actually clean and usable code but still nothing compared to a unified menu system.
2019-12-01 15:31:08 +01:00
Christoph Oelckers aed05840ae - removed the mouseInactiveConditional interface function.
This was only a crutch to let the input interface work with the original menus.

Now that the one in Blood is gone, all the conditions are no longer relevant. (Shadow Warrior never got far enough to implement this)
2019-12-01 10:31:44 +01:00
Christoph Oelckers 5d0d37df25 - disconnected Blood's menu.
This is due for replacement next.
2019-12-01 10:18:38 +01:00
Christoph Oelckers 55ba1116ec - fixing the last commit. 2019-12-01 09:03:51 +01:00
Christoph Oelckers 8a98f9b3ca - removed quitevent.
This was some meticulously preserved relic of bad old DOS times used to block OS facilities to close an app.
Since this has been worked around at a lower level already the variable was essentially without function but some quite bad code depended on it.
2019-12-01 09:02:17 +01:00
Christoph Oelckers d8c74a8b00 - don't show the map name when the menu is active
Since it uses the same font this causes ugly visual clashes.
2019-12-01 08:25:24 +01:00
Christoph Oelckers c36402eb5c - fixed savegame validation and recursive ticker calls. 2019-11-30 23:33:04 +01:00
Christoph Oelckers 41b116e2f2 - save menu in Duke Nukem is working. 2019-11-30 22:46:00 +01:00
Christoph Oelckers 2a9e4fca46 WIP safety commit 2019-11-30 19:23:54 +01:00
Christoph Oelckers d5c3991c2e - fixed compile errors in menu code. 2019-11-30 10:03:20 +01:00
Christoph Oelckers b3c335cd1d Merge branch 'menu_for_real' of https://github.com/coelckers/demolition into menu_for_real
# Conflicts:
#	source/common/menu/loadsavemenu.cpp
#	source/duke3d/src/d_menu.cpp
#	source/rr/src/d_menu.cpp
2019-11-30 01:06:37 +01:00
Christoph Oelckers 79ce4563eb - fixed game resuming when closing the load and save menus. 2019-11-30 01:03:14 +01:00
Christoph Oelckers 90c5ea6acc - updated option menu code to latest scripted version
This mainly means being able to use the generic font.
This also adds more generalization to the menu sound handling, plus an option to turn menu sound off. This is motivated by the pig sounds which RR uses in the menu.
2019-11-29 01:28:13 +01:00
Christoph Oelckers 0cedad6390 - started work on load/save menus. 2019-11-29 00:37:19 +01:00
Christoph Oelckers 1f1b927b6b - fixed a few issues. 2019-11-28 20:11:27 +01:00
Christoph Oelckers 59ebb10512 - fixed compilation and unhooked the Redneck Rampage menu so that it can be replaced. 2019-11-28 19:35:35 +01:00
Christoph Oelckers 324056ad88 - more cleanup on music code
* removed some redundant functionality (e.g. Shift-F5 to change - use the console for that!)
* removed a few more leftover parts of the old music system
* savegames should not do more than resuming the music at the point of saving. (DN3D and RR only so far. Blood to be done.)
* handle music enabling/disabling in the backend, which simply knows better what to do. This was only working in the menu, so changing the CVAR had no effect.
2019-11-28 03:18:58 +01:00
Christoph Oelckers a59917b35d - more cleanup of sound code
removed the remaining parts of the old music system in EDuke32 and RedNukem frontends.
2019-11-28 03:02:33 +01:00
Christoph Oelckers d569cd76c1 - cleanup of sound code - removal of the cache lock
This has been inoperable for a long time and by now the cache is entirely gone.
2019-11-28 02:36:34 +01:00
Christoph Oelckers f62611e90d - cleaned out a large chunk of menus.cpp
… leaving only the parts still needed for reference.
2019-11-28 01:49:50 +01:00
Christoph Oelckers b12377962a - moved the game interface function to d_menu 2019-11-28 01:30:24 +01:00
Christoph Oelckers 4e5f59a373 - Menu WIP
* implemented single image screens
* implemented skeleton of the image scroller
* added RR-specific definitions to the menus (need to copy and adjust d_menu.cpp)
* added definitions for credits screens.
2019-11-28 01:02:45 +01:00
Christoph Oelckers ef3ad690da - initial work on credits screens. 2019-11-28 00:02:36 +01:00
Christoph Oelckers 5f5fe271f7 - fixed handling of the custom game mode menus in Ion Fury.
Sadly the scripting which necessitates this all is such a hack that it's probably necessary to fix again if the next project comes along that uses the same kind of "creativity" instead of providing a robust implementation.
2019-11-27 23:35:12 +01:00
Christoph Oelckers 8492e3c67a - migrated SW's savegame code to the same containers as the other front ends.
Fortunately everything here was wrapped in macros so that it was relatively simple to change.
2019-11-27 19:31:58 +01:00
Christoph Oelckers 3bb46a4d8d Merge branch 'master' into menu_for_real 2019-11-27 18:04:44 +01:00
hendricks266 7698f73b55 Fix tautological comparison in savegame.cpp
git-svn-id: https://svn.eduke32.com/eduke32@8314 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-27 18:01:57 +01:00
Christoph Oelckers a4a4b230fd - deleted a large batch of code from the menu that is no longer needed. 2019-11-27 17:58:14 +01:00
Christoph Oelckers 723b210c95 - major work on savegame code
Not tested yet!

* Added a JSON-based header to the savegames so that the unified menu can read from a common data source.
* moved loading and saving of frontend independent data to the wrapper so that support is automatic.
2019-11-27 00:41:26 +01:00
Christoph Oelckers 3b7aa74c27 - connecting the dots in the menu. Duke Nukem can now start a level. 2019-11-26 23:20:54 +01:00
Christoph Oelckers 0f4d80b5d3 Merge branch 'master' into menu_for_real 2019-11-26 19:19:21 +01:00
hendricks266 348ccdfd5b Templatize the branchless negation method used for GV_FLAG_NEGATIVE
git-svn-id: https://svn.eduke32.com/eduke32@8312 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/compat.h
2019-11-26 18:09:00 +01:00
hendricks266 a51e91d4e9 SW: Fix keyboard input
git-svn-id: https://svn.eduke32.com/eduke32@8303 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/config.cpp
#	source/duke3d/src/menus.cpp
#	source/mact/include/control.h
#	source/mact/src/control.cpp
#	source/sw/src/config.cpp
#	source/sw/src/menus.cpp
2019-11-26 18:03:13 +01:00
Christoph Oelckers 6782d817b7 - reformatting and deletion of unused code. 2019-11-26 17:43:31 +01:00
Christoph Oelckers dce633de8b - use a floating point origin in the menu's implementation
Using fixed point here makes no sense, let's keep that to the code that still lives in the 90's.
2019-11-26 00:20:21 +01:00
Christoph Oelckers a74a670c99 -- more work on the menu - episode and skill menus are working in DN3D. 2019-11-25 23:21:51 +01:00
Christoph Oelckers d73f915c66 - episode menu setup. 2019-11-25 18:41:39 +01:00
Christoph Oelckers 556c61b60b - fixed compile errors.
(Include dependencies suck, it's time for modules to become an option.)
2019-11-25 17:19:48 +01:00
Christoph Oelckers a9ee5940fc - localization wrappers
Currently a no-op, but if it's in it won't be forgotten later.
2019-11-25 00:28:59 +01:00
Christoph Oelckers 1f1e39fac0 - consolidation of texts for episode and skill menus
So far without localization capability - the engine cannot handle it yet.
2019-11-25 00:02:00 +01:00
Christoph Oelckers 28a05422fc Merge branch 'master' into menu_for_real 2019-11-24 22:31:53 +01:00
Christoph Oelckers 42b3d12630 - Ion Fury's main menu now looks correct. 2019-11-24 22:31:27 +01:00
Christoph Oelckers a4fcf9ee2b - fixed savegame writing for Ion Fury.
The composite's writers may not be deleted, they are needed for creating the final savegame file.
2019-11-24 21:21:15 +01:00
Christoph Oelckers 57b542671c - Ion Fury main menu fixes. 2019-11-24 20:40:53 +01:00
Christoph Oelckers a96f1b25f7 - fixed recursion issue with menu and CON scripting.
Curse all those busy loops in the engine.
2019-11-24 17:52:54 +01:00
Christoph Oelckers 52cfb7fb92 - completely disconnected the old menu from the rest of the game to allow rebuilding the new one.
Sadly this uncovered a few more places where script events are allowed too broad access to the game state.
2019-11-23 23:05:24 +01:00
Christoph Oelckers 326d0f5f76 - the new menu displays something. 2019-11-23 17:50:36 +01:00
Christoph Oelckers 9529adb3e1 - font tables moved. 2019-11-23 12:41:13 +01:00
Christoph Oelckers f2fc3fc2cb - WIP commit. 2019-11-23 12:38:38 +01:00
Christoph Oelckers ceb07280cf - more work on the menu.
Duke Nukem's menu title is getting rendered.
2019-11-22 22:52:11 +01:00
Christoph Oelckers 3e0075a34d - disabled the broken savegame pic code for the GL renderer.
I have no idea how this is supposed to work, but all it does is create corrupt images, so for now it reverts to the software renderer which generates working 320x200 images.
2019-11-15 19:07:24 +01:00
Christoph Oelckers ab9c532d89 - save custom data as JSON.
This makes it a lot easier to debug and test than binary blobs.
2019-11-15 18:57:26 +01:00
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
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 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 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 29d16868c9 - fixed compile errors. 2019-11-11 17:51:30 +01:00
Christoph Oelckers 9f9748ede6 - initial ZMusic hookup. 2019-11-10 23:58:51 +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 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 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 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 e4735fdff1 - dead code removal. 2019-11-07 00:49:19 +01:00
Christoph Oelckers b6a3a60251 - console output is functional. 2019-11-06 23:40:10 +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 341ca9dd3a - removed the EDuke revision data and replaced it with Demolition's own. 2019-11-05 20:48:34 +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 570696fc09 - added ZDoom's CCMD code.
Not tested yet.
2019-11-04 23:01:50 +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 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 b747df60ee - moved all keyboard related code into the InputState class, so that looking for this stuff is easier.
Sadly there's 1ß00 lines of code using this...
2019-11-04 00:53:55 +01:00
Christoph Oelckers c7af86bd00 - use proper key names. 2019-11-03 22:20:19 +01:00
Christoph Oelckers 1b958a7f9f - removed more backing data for the old keybinding code.
Unfortunately this means that the keybinding menus in all games except Blood are shot to shit right now because of how they passed the data on to its destination.
These menus are not fixable, this will have to wait until the replacement is up.
2019-11-03 20:58:10 +01:00
Christoph Oelckers eb049abc3a - it compiles again (safety commit) 2019-11-03 20:24:50 +01:00
Christoph Oelckers 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 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 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 dc9d75685e - fixed keybind setup. 2019-11-02 20:13:00 +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 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 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
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
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 7f250fc3e8 - WIP on game data search. 2019-10-30 18:09:00 +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 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
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 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 68b64d2091 - fixed compilation. 2019-10-27 23:18:44 +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
Christoph Oelckers 2e7ba30068 - a bit more config cleanup. 2019-10-27 14:09:56 +01:00
Christoph Oelckers c0d5ca8ab8 - Config work almost done.
The only thing still referencing the old config file is Shadow Warrior's config read function.
2019-10-27 13:40:24 +01:00
Christoph Oelckers 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 db1a9a9363 - the config finally get saved.
Still with a few errors, though.
2019-10-26 20:47:37 +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
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 cfaafcede7 - everything compiles again (not tested yet.) 2019-10-26 00:32:49 +02:00
Christoph Oelckers 6f6c850d80 - fixed some search&replace errors 2019-10-25 19:02:27 +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
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
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 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 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
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 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 20df360778 - converted the Polymost CVARs. 2019-10-23 21:11:37 +02:00
Christoph Oelckers ee5f0a7cf6 - cleaned out the remains of the frontends' CVAR definitions. 2019-10-23 18:58:34 +02:00
Christoph Oelckers 21d90fd08b - fixed compilation. 2019-10-23 18:36:48 +02:00
Christoph Oelckers 02fff2df06 - refactored wchoice and sensitivity CVARS
This is all that's needed for now, the remaining ones can wait.
2019-10-23 17:21:14 +02:00
Christoph Oelckers 18430c6c9f - refactored r_fpslimit
Also removed the entire cruft related to this - the pointless offsetting value and the precalculation of the timer value (as if we could not afford a single division for something that WAITS!

Unfortunately this required removal of the menu option for the time being.
2019-10-23 17:07:29 +02:00
Christoph Oelckers 43413e4dff - r_useprecache 2019-10-23 14:39:33 +02:00
Christoph Oelckers 63f020996e - a few more CVARs 2019-10-23 01:30:43 +02:00
Christoph Oelckers 5dec4736ce - r_drawweapon, r_showfps, r_showfpsperiod 2019-10-23 01:04:07 +02:00
Christoph Oelckers e5d38b2d30 - in_mouseflip and in_mousesmoothing
in_mousemode removed from persistent state because of how it is used.
Saving it makes no sense.
2019-10-23 00:59:01 +02:00
Christoph Oelckers b73cf76f05 - in_mousebias and in_mousedeadzone
Actually, two totally useless options being preserved for historical significance.

Urgh.
2019-10-23 00:55:48 +02:00
Christoph Oelckers c0c62fe367 - in_mouseaiming 2019-10-23 00:51:49 +02:00
Christoph Oelckers 7501120dc8 - in_mouse and in_joystick 2019-10-23 00:41:28 +02:00
Christoph Oelckers 713250cc64 - refactored a few more CVARs. 2019-10-23 00:20:27 +02:00
Christoph Oelckers d476037f45 - hooked up hud_custom. 2019-10-22 23:43:16 +02:00
Christoph Oelckers e5aa6c5df0 - refactored the HUD scaling into something manageable.
Blood was fine, albeit with an inverted scale, but the EDuke implementation was something very special - and not in a good way, using 4 CVARs to store the scaling state instead of one.
2019-10-22 23:31:46 +02:00
Christoph Oelckers a829f1cb52 - fixed all compile errors. 2019-10-22 17:47:24 +02:00
Christoph Oelckers edce0d33e3 - refactored crosshairscale CVAR 2019-10-22 17:00:22 +02:00
Christoph Oelckers bdf2d24b21 - refactored cl_weaponswitch 2019-10-22 02:31:14 +02:00
Christoph Oelckers 8431266d27 - refactoring of music CVARs
This is a lot of changes in a lot of code because nothing here was abstracted into the sound system. :(

Hopefully most of the affected code here can be tossed out soon, it's not pretty.
2019-10-22 02:01:05 +02:00
Christoph Oelckers 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 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 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
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
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
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 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 75205ca69c - do not throw exceptions to exit without proper handling. 2019-10-20 11:28:16 +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 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
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 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 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
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 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 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 cd7bbe35a8 - removed all legacy fog code. 2019-10-19 15:52:46 +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 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