Commit Graph

360 Commits

Author SHA1 Message Date
Christoph Oelckers db425a1228 - fixed keybinding and mouse cursor display.
- fixed some merge issues in Shadow Warrior.
2019-12-05 21:39:02 +01:00
Christoph Oelckers 1b9d1943c9 - initialize all dynamic music related menus. 2019-12-05 20:50:19 +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 6914408453 - fixed writeback of hud_size CVAR
G_ChangeHudLayout must ensure that the written value is ok, otherwise the auto validation in the CVAR can screw things up.
2019-12-05 00:54:55 +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 1b1fad6e13 - forgot to save this. 2019-12-05 01:17:28 +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 525cf28d29 - commented FBaseCVar::GetHumanString back in.
This had to be deactivated when adding the code, but was forgotten when everything was ready.
2019-12-04 23:09:09 +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 dca118881a - added graphics for the mouse back button and reactivated the code for it. 2019-12-04 17:55:43 +01:00
Christoph Oelckers 7d1eb74b5e - more menus implemented 2019-12-04 01:38:51 +01:00
Christoph Oelckers 6a6d6e3694 - fixed quote init. 2019-12-04 00:38:43 +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 fb5d944170 - made the mouse sensitivity CVARs floating point so that the menu can display them properly.
- disabled the mouse movement sensitivity CVARs pending a refactoring of the code to handle them in the input backend instead of the individual input handlers.
2019-12-03 20:49:56 +01:00
Christoph Oelckers 49e0e551d6 - fixed the sliders. 2019-12-03 20:32:35 +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 79ced02d36 - implemented the Shadow Warrior menu interface. 2019-12-03 00:01:04 +01:00
Christoph Oelckers bc3a921a72 - fixed newly added menu content. 2019-12-02 19:21:45 +01:00
Christoph Oelckers 026cc7153c - externalized the controller bindings and removed all code responsible for maintaining them separately.
Bindings were changed a bit because what was there was a very poor default for my own controller.
2019-12-02 18:33:11 +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 71c2a8f33a - made the main option menu work. 2019-12-02 00:16:48 +01:00
Christoph Oelckers e743268c4b - Blood load/save works. 2019-12-01 22:54:52 +01:00
Christoph Oelckers eb668180c8 - implemented help and credits menu for Blood. 2019-12-01 21:44:50 +01:00
Christoph Oelckers e8c5939695 - more work on Blood menus. Game start works. 2019-12-01 20:17:30 +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 5d0d37df25 - disconnected Blood's menu.
This is due for replacement next.
2019-12-01 10:18:38 +01:00
Christoph Oelckers 79fd4e830a - removed the code for Doom's help screens. 2019-12-01 08:23:35 +01:00
Christoph Oelckers 0fc439a969 - fixed Redneck Rampage ingame menu and added selection validation to the load menu. 2019-11-30 23:59:22 +01:00
Christoph Oelckers 06d5705ae6 - formatting fix and null check for aborted transition. 2019-11-30 23:45:43 +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 e266044391 - update of load/save menu to latest GZDoom code.
Input in save menu working.
2019-11-30 00:49:50 +01:00
Christoph Oelckers ebcc25f36d - prototyping the Blood fullscreen menu entries
These are a bit more sophisticated than what the other games have. ;)
2019-11-29 02:12:38 +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 943cb64eda - image scroller menus working. 2019-11-28 23:27:10 +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 cd4ff92266 - handle Blood. 2019-11-28 03:32:02 +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 6ad9c1c0e3 - set up d_menu.cpp for Redneck Rampage 2019-11-28 02:14:30 +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 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 2c36e986b9 - fixed most issues with Ion Fury's game startup menus. 2019-11-27 22:41:15 +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 46d1f8517a - animated transitions are working. 2019-11-26 22:05:52 +01:00
Christoph Oelckers a5a0c38474 - removed DObject.
Just for the menu this can be done much simpler - the entire setup here doesn't work well with the game frontends being compiled as separate modules anyway.
2019-11-26 21:25:45 +01:00
Christoph Oelckers 1adceb82ef - consolidation of defbinds definitions.
Putting all the generic definitions in files used by all games greatly reduces the clutter and chance for errors.
2019-11-26 21:06:43 +01:00
Christoph Oelckers 0597b4cf12 - enabled the menu transitions. 2019-11-26 00:43:20 +01:00
Christoph Oelckers 2ed598bb6c - menu transition animation added. 2019-11-26 00:29:51 +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 42b3d12630 - Ion Fury's main menu now looks correct. 2019-11-24 22:31:27 +01:00
Christoph Oelckers 57b542671c - Ion Fury main menu fixes. 2019-11-24 20:40:53 +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 5f9b57519a - hooked up the menu code so that it can receive events.
Nothing pretty yet but a start is made.
2019-11-21 22:31:46 +01:00
Christoph Oelckers 2740913c60 - added a redirection hack for rotatesprite so that it can be transitionally used in the 2D drawer. 2019-11-21 19:30:27 +01:00
Christoph Oelckers 81ddf22d5d - added ZDoom's menu system as a base to build a new menu on.
# Conflicts:
#	source/CMakeLists.txt
#	source/build/src/engine.cpp
2019-11-21 18:03:09 +01:00
Christoph Oelckers 4be63d55d3 - added a stripped down version of ZDoom's DObject.
This only retains the objecct factory feature, but removes the garbage collector which I have no use for.

# Conflicts:
#	source/CMakeLists.txt
2019-11-21 18:02:22 +01:00
Christoph Oelckers 2da4294ba5 - hooked up the event processing for Shadow Warrior, so keyboard input is working now. Mouse movement is not being processed yet.
Also removed some leftover code from the old input system.
2019-11-20 22:01:44 +01:00
Christoph Oelckers caa450dcb9 - debugprintf 2019-11-20 20:07:33 +01:00
Christoph Oelckers fd31d4fa6a - replaced 32 bit SDL library - the preincluded one appeared to be broken.
- fixed main group autochoice.
- fixed uninitialized player links for Shadow Warrior.
2019-11-19 22:35:52 +01:00
Christoph Oelckers f24de03501 - fixed auto-picking of game GRPS from the command line. 2019-11-19 21:35:35 +01:00
Christoph Oelckers dc60c7f72e - fixed use of brightmaps.
Due to the blending they are essentially inactive on translucent content and Duke Nukem heavily abuses this.
2019-11-15 20:51:02 +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 619a7541f1 - "fixed" keybinding not responding for all keys.
This looks like an ImGui bug - it doesn't like two identically labelled buttons on the same page, it seems. I now work around this by using strings with different numbers of spaces. Stupid but effective.
2019-11-14 22:48:23 +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
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 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 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
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 ec6ce8b1ec - hooked up ZMusic. 2019-11-11 19:10:46 +01:00