Commit Graph

389 Commits

Author SHA1 Message Date
Christoph Oelckers 8bd5f12b42 - matching sound backend code with GZDoom.
# Conflicts:
#	source/core/sound/s_soundinternal.h
2020-05-23 12:59:11 +02:00
Christoph Oelckers cfe02cebf1 - moved music code to "common" 2020-05-23 12:37:47 +02:00
Christoph Oelckers 6a8efb7520 - update of music code, in particular separating the engine-specific lookup from the backend.
# Conflicts:
#	source/core/music/music.cpp

# Conflicts:
#	source/build/src/palette.cpp
2020-05-23 12:37:47 +02:00
Christoph Oelckers d0406e27b6 - all base palette data has been transitioned to GPalette. 2020-05-23 12:31:05 +02:00
Christoph Oelckers 6f9ee4b60f - store palettes in the palette container. 2020-05-23 12:31:05 +02:00
sirlemonhead 73a56f76af PCExhumed: Avoid some original memory read bugs and correct some bullet code branching. 2020-05-22 17:22:00 +02:00
sirlemonhead 20cfbc1786 PCExhumed: Fix the timing of credits text when not using CD audio.
# Conflicts:
#	source/exhumed/src/exhumed.cpp
2020-05-22 17:17:54 +02:00
Mitchell Richters bece408548 Exhumed: Set scaleAdjustmentToInterval to correct value for game's ticrate. 2020-05-13 15:10:18 +02:00
Richard C. Gobeille 98f4bac708 Exhumed: fix stupid input scaling bug 2020-05-11 21:27:29 +02:00
Mitchell Richters 8730bd9dda - allow game's clock to keep running while paused (restores interpolations/animations in menus). 2020-05-08 21:23:02 +02:00
Mitchell Richters 7b35e04c0c - reset buttonMap button states after returning from pause for Exhumed (stops keys acting stuck down if down prior to pausing). 2020-05-06 10:51:08 +02:00
Mitchell Richters 419329b5b2 - standardise main loop for Exhumed following changes to Duke3D/RR/SW main loops. 2020-05-06 10:51:08 +02:00
Mitchell Richters db428a4f03 All Games: Make more precise use of 'scaleAdjustmentToInterval()'.
- Inline function returns a double, therefore we should use it and not potentially truncate the mantissa.
- Use divisors to get true numbers of some floats (3.333 -> 10/3, etc).
- Remove a few brackets/parentheses where possible from what are already exceedingly bracketed lines.
2020-04-14 00:00:21 +02:00
Christoph Oelckers 156a225ff4 - renamed global palookup variable.
Since the same word gets used in text messages and local variables in the game code it is easier this way to search for it and facilitate its transition to the translation table management in PaletteContainer.
2020-04-13 23:58:46 +02:00
Christoph Oelckers fda4293013 - draw the movie franes outside of the tile system to reduce the palette maintenance.
The movie code has always been the part causing the most issues because it alters the palettes - the rest treats them as static data.
2020-04-13 23:58:45 +02:00
Christoph Oelckers fac004b4d2 - palette code cleanup 2020-04-13 23:58:44 +02:00
Christoph Oelckers f74ba52990 - compile fixes. 2020-04-12 05:40:16 +02:00
Christoph Oelckers 57cb22f135 - console code matching with GZDoom
Refactored the buttons to be definable locally per game for easier handling of differing input.
2020-04-12 08:30:41 +02:00
Christoph Oelckers 8e87674d4c - backend code matching with GZDoom 2020-04-12 08:30:40 +02:00
Christoph Oelckers 0ca4bbd0c4 - changed some menu related names to match GZDoom. 2020-04-12 08:30:40 +02:00
Christoph Oelckers 5584c726ba - file system update and adjustment. 2020-04-12 08:30:40 +02:00
Christoph Oelckers f671eb622f - migrated to GZDoom's utility code. 2020-04-12 08:30:39 +02:00
Christoph Oelckers 66ecb05eb8 - use Printf as the only command to print to the console.
All uses of OSD_Printf, initprintf etc. have been renamed.
2020-04-12 08:30:38 +02:00
Christoph Oelckers e2f5e8fe34 - renamed 'common' to 'core'.
We'll need 'common' for something else.
2020-04-12 08:30:36 +02:00
Mitchell Richters b801a73db9 Exhumed: Fix look up/down in line with input amendments. 2020-04-06 08:06:38 +02:00
Mitchell Richters 2ddc442e48 Exhumed: Improve player input.
- Input velocity now consistent irrespective of frame rate.
- Angle and horizon calculated at frame rate.
- Replace usage of F16() macro with fix16_from_int() in GetInterruptKeys().

Note: Known issues with look up/down keys that is to be repaired.
2020-04-06 08:06:38 +02:00
Christoph Oelckers 41545b644a - cleaned out most of the software renderer's static global variables. 2020-03-29 16:59:49 +02:00
Christoph Oelckers 73a4e0d1fe - made Blood's FullMap flag global and removed the hacks to show the full automap.
Also refactor show2dsector into a bit array to get rid of the bit shifting code at play here.
2020-03-07 19:30:18 +01:00
Christoph Oelckers a203e37aeb - removed buggy diagnostics print. 2020-03-05 01:01:04 +01:00
nukeykt b88eeea9a2 Exhumed: Correctly set player action id for mummified state 2020-03-04 17:57:16 +01:00
Christoph Oelckers 8eef69b1a6 - compile fixes. 2020-03-02 23:05:07 +01:00
sirlemonhead df34d8ca85 PCExhumed: Big bunch of AI tidying, code consistency changes and misc fixes. Aiming to get compatibility with new demos from DOS exe.
# Conflicts:
#	source/exhumed/src/anubis.cpp
#	source/exhumed/src/bubbles.cpp
#	source/exhumed/src/bubbles.h
#	source/exhumed/src/bullet.cpp
#	source/exhumed/src/bullet.h
#	source/exhumed/src/fish.cpp
#	source/exhumed/src/fish.h
#	source/exhumed/src/grenade.cpp
#	source/exhumed/src/grenade.h
#	source/exhumed/src/lavadude.cpp
#	source/exhumed/src/lavadude.h
#	source/exhumed/src/lion.cpp
#	source/exhumed/src/lion.h
#	source/exhumed/src/mummy.cpp
#	source/exhumed/src/mummy.h
#	source/exhumed/src/queen.cpp
#	source/exhumed/src/queen.h
#	source/exhumed/src/ra.cpp
#	source/exhumed/src/ra.h
#	source/exhumed/src/rat.cpp
#	source/exhumed/src/rat.h
#	source/exhumed/src/rex.cpp
#	source/exhumed/src/roach.cpp
#	source/exhumed/src/roach.h
#	source/exhumed/src/runlist.cpp
#	source/exhumed/src/scorp.cpp
#	source/exhumed/src/set.cpp
#	source/exhumed/src/set.h
#	source/exhumed/src/snake.cpp
#	source/exhumed/src/snake.h
#	source/exhumed/src/spider.cpp
#	source/exhumed/src/spider.h
#	source/exhumed/src/wasp.cpp
#	source/exhumed/src/wasp.h
2020-03-02 23:01:55 +01:00
Christoph Oelckers 951d28f15d - Exhumed movie fix. 2020-03-01 18:32:43 +01:00
Christoph Oelckers cf662de165 - commented out diagnostic messages. 2020-03-01 17:22:31 +01:00
Christoph Oelckers 12af524dcc - fixed Exhumed's ingame menu.
The bad setup here didn't let the menu's exit action pass to the game code, it still needed ugly workarounds.
2020-03-01 16:32:41 +01:00
Christoph Oelckers 4bc0531bf7 - disabled help screen in Exhumed and save menus in Deer Huntin'. 2020-02-29 12:55:12 +01:00
Christoph Oelckers 69e018d0c4 - added serialization of playing sounds.
For ambient sounds that can be cleanly restarted a new 'transient' flag was added so that these do not get written out.
Tested on SW so far, other games yet to do.
2020-02-29 12:33:35 +01:00
Christoph Oelckers 1a66878205 - fixed some issues with Exhumed's ambient and creepy sounds.
Both now refer to a proper target for bookkeeping.
2020-02-28 19:56:37 +01:00
sirlemonhead 69aba5f3ea PCExhumed: Don't modify coordinates with abs() in runlist_CheckRadialDamage(), correct to original behaviour. 2020-02-28 18:42:45 +01:00
sirlemonhead cd4090e531 PCExhumed: Fix Anubis drum not moving correctly when shot (bad angle calc). 2020-02-27 18:27:33 +01:00
Christoph Oelckers 0ed3b3b3ea - manual merge of * PCExhumed: Don't shrink/expand screen viewable area if in map mode. Fixes #327
Code was too different for cherry-picking.
2020-02-26 20:51:19 +01:00
Christoph Oelckers 6315bd3960 - Exhumed - fixed wrong sound origin for special effect sound 2020-02-26 00:20:52 +01:00
Christoph Oelckers b4a2a5c187 - fixed Exhumed's creepy sounds. 2020-02-25 20:10:36 +01:00
Christoph Oelckers 71083f2b23 - use sound rolloff settings for Exhumed that actually work.
I cannot say if this is correct because the sound in PCExhumed doesn't seem right so the rolloff distance was more or less guesswork based on what sounds ok.
2020-02-25 19:40:39 +01:00
Christoph Oelckers 7d725bfe8a Exhumed sound coordinate fixes 2020-02-25 00:40:51 +01:00
sirlemonhead 999840a9b5 PCExhumed: Corrected sector tag number handling for enemy death triggered sectors. Fixes issue #328 2020-02-24 22:13:32 +01:00
Christoph Oelckers 2f91c2f696 - fixed the Exhumed sequence reader.
There was interference with the sound loader here - both accessed the same file handle so the sequence's sound data wasn't read correctly, resulting in memory corruption.
2020-02-24 21:59:04 +01:00
Christoph Oelckers fe1133e5c2 - fixed EnumerateChannels. 2020-02-24 20:19:03 +01:00
Christoph Oelckers 920f424184 - pitch fix. 2020-02-24 18:34:15 +01:00
Christoph Oelckers 3a7067dbec - properly transitioned Exhumed's sound system to the OpenAL sound engine. 2020-02-23 20:40:45 +01:00
Christoph Oelckers 7909f29691 - allow starting Duke, NAM and WW2GI with the RedNukem-based game code for Redneck Rampage.
This mainly required some rework of the menu setup to be less explicit about the frontend's menu classes.
2020-02-12 20:25:59 +01:00
Christoph Oelckers 4b0db4893a - fixed a few changes constants. 2020-02-05 18:49:47 +01:00
sirlemonhead 5f2009eea5 PCExhumed: Remove function declaration for ServeSample in movie.cpp 2020-02-05 18:00:41 +01:00
sirlemonhead efaefff3d0 PCExhumed: Misc code tidying. Changed cases in runlist_ProcessSectorTag() to match editor tag numbers,
consolidated duplicate code in runlist_ProcessWallTag(), renamed ActiveSound struct vars etc.

# Conflicts:
#	source/exhumed/src/cd.cpp
#	source/exhumed/src/exhumed.cpp
#	source/exhumed/src/fish.cpp
#	source/exhumed/src/grenade.cpp
#	source/exhumed/src/mummy.cpp
#	source/exhumed/src/sound.cpp
2020-02-05 18:00:40 +01:00
Christoph Oelckers 4d7a43004c - use the new SW interpolation function for all games. 2020-02-02 10:27:47 +01:00
Christoph Oelckers ae9ad6612c - fixed: Exhumed did not pause when the console was open. 2020-02-02 00:10:18 +01:00
Christoph Oelckers 0e1eeea037 - use the game palette directly for palette lookups.
The setup here is far too messy for having a copy in a better format - it can be changed in some non-obvious places.
2020-02-01 23:05:43 +01:00
Christoph Oelckers ab3811bac0 - fixed: The 2D drawer must apply the render state before it finishes.
Otherwise the global state settings will not be reset.
2020-01-31 22:07:51 +01:00
Christoph Oelckers eac1007c56 - automap color fix. 2020-01-30 22:05:18 +01:00
Christoph Oelckers 4bf519dcb0 - fixed copy/pasted broken 'map' CCMD. 2020-01-30 20:25:52 +01:00
Christoph Oelckers 4aaf6c4cf6 - check for angular overflow in pitch calculations. 2020-01-29 21:52:17 +01:00
Christoph Oelckers 8657ecb35d - implemented 'map' CCMD for all games. 2020-01-28 11:20:30 +01:00
Christoph Oelckers 9ca1e56713 - added extended sound lookup as well plus menu options. 2020-01-27 22:29:45 +01:00
alexey.lysiuk 5510df77be - streamlined CMake configuration of game libraries
https://forum.zdoom.org/viewtopic.php?t=67121
2020-01-27 18:11:35 +01:00
Christoph Oelckers 245aa5d3bc - reworked global palette state for robustness. 2020-01-26 10:58:00 +01:00
sirlemonhead ccfefaa9be PCExhumed: Fixed player view not centring when the Ramses Head appears. 2020-01-24 19:51:42 +01:00
sirlemonhead d044b2a605 PCExhumed: Fix inconsistent HUD health and magic animation speed. 2020-01-24 19:51:42 +01:00
Christoph Oelckers a7b020d1a8 - implemented proper screen size scaling for Exhumed. 2020-01-22 16:14:01 +01:00
Christoph Oelckers 493525a58e - consolidation of engine save code.
This had discrepancies between the game modules so now all use the same code to save the common engine state.
2020-01-21 21:51:05 +01:00
Christoph Oelckers acf7f29dbd - moved Exhumed's engine state save code into the common part.
This needs to be save for all games and the discrepancies have already caused problems so engine state saving needs to be unified.
2020-01-21 19:22:38 +01:00
Christoph Oelckers cacbd7d8b6 - reset YAX data before loading a game.
This could cause random lockups when loading a savegame for a game not maintaining the feature. The entire engine state really needs to be handled globally instead of repeating this core 5 times...
2020-01-21 19:14:53 +01:00
Christoph Oelckers 2bc1708870 - removed the complete crosshair color hackery.
The code needs to be refactored anyway to allow better crosshair control but this also seemed to affect global render state, considering how poorly it was all implemented.
2020-01-18 16:14:31 +01:00
Christoph Oelckers 5739b4b024 - added savepic generation to Exhumed. 2020-01-14 21:48:01 +01:00
Christoph Oelckers dc5b8d27f8 - infrastructure for savegame pics.
Savepic generation implemented for Duke 3D, but results in a black image.
2020-01-12 23:16:21 +01:00
Christoph Oelckers 95f917a408 - added the main vertex buffer and some code to maintain it on systems where persistent mapping is not possible.
All games combined there's 11(!!!) scene render blocks, not counting the sub-blocks for ROR and mirrors.
Does it surprise anyone that most of these sub-blocks do not feature all engine capabilities?
2020-01-12 20:28:07 +01:00
sirlemonhead 1ddcc41ed8 PCExhumed: Fix spark effect when destroying an energy tower. 2020-01-10 17:32:28 +01:00
Christoph Oelckers cfed7afd02 - all source compile now on macOS 2020-01-08 01:00:57 +01:00
Christoph Oelckers 42f16a7b30 - removed merged code that doesn't work anymore. 2020-01-08 00:05:37 +01:00
Christoph Oelckers 8cbb313a96 - clearing the screen here is redundant. 2020-01-07 20:17:08 +01:00
sirlemonhead 56abec7ed4 PCExhumed: Add god, noclip and changelevel console commands.
# Conflicts:
#	source/exhumed/src/osdcmds.cpp
2020-01-07 20:12:12 +01:00
NY00123 86503338ec PCExhumed: Remove unused moveTimer variable from menu_DrawTheMap
(minor addition to world map code fixes and tidying from Oct 14).

# Conflicts:
#	source/exhumed/src/menu.cpp
2020-01-07 20:10:52 +01:00
NY00123 bb020c15f1 PCExhumed: Further improve the widescreen fix for the smoke in menu_DrawTheMap.
rotatesprite is now directly called, instead of going through the
overwritesprite wrapper, in order to trim the smoke sprites,
so they don't leave the map's boundaries in widescreen.

A technical side-effect is that picanm[tilenum].sf is not temporarily
set to 0, as done in overwritesprite.

The call to videoClearScreen is still required, in case the console is
shown and then hidden. It's now called after HandleAsync, just for the
sake of it (less useful in case of quit, and maybe also in another scenario).
2020-01-07 20:10:42 +01:00
Christoph Oelckers b8ac5aea84 Merge branch 'master' of https://github.com/coelckers/Raze 2020-01-07 01:11:33 +01:00
Christoph Oelckers fb985d2503 - more macOS compilation fixes
Still not complete…
2020-01-07 01:11:19 +01:00
NY00123 d5d60afdc3 PCExhumed: Improve the cheat code fixes in CheckKeys.
- Replace direct calls to strtok with calls to a new wrapper function,
safeStrtok. Whenever strtok returns a null pointer, safeStrtok returns
an empty string instead. This should assist with replicating
the behaviors with the DOS EXE, without leading to crashes.
- This way, the "GOTO" and "CREATURE" codes are fixed.
The code handling "LEVEL" is additionally simplified.
- The code executed if nStringLen == 0 || pToken == NULL is now gone.
As is the case under DOS, if you enter a non-empty string which isn't
matched at all, sHollyStr will be emptified, but you'll otherwise
still be able to enter a code, with no need to retype "HOLLY".
2020-01-06 18:16:36 +01:00
Christoph Oelckers 134122335b - first attempt to compile on a Mac
This could have gone better, there's far too many warnings here
2020-01-06 02:41:47 +01:00
sirlemonhead bddcde73f4 PCExhumed: Cheat code fixes.
Default to level 0 if no level number is specified and don't crash if only space characters are submitted. Thanks to NY00123 for reporting.
2020-01-05 10:48:55 +01:00
Christoph Oelckers 746aa4da82 - added a ClearScreen function to the 2D drawer to wrap the frequent occurence of this use case. 2020-01-05 10:48:44 +01:00
sirlemonhead 5e6c109d35 PCExhumed: Correct variable name/usage in runlist channel loop. 2020-01-04 10:06:15 +01:00
Evan Ramos e363cd53a5 tspritetype cleanup
# Conflicts:
#	source/blood/src/m32common.cpp
#	source/blood/src/m32exec.cpp
#	source/blood/src/m32structures.cpp
#	source/blood/src/mapedit.cpp
#	source/rr/src/astub.cpp
#	source/rr/src/m32common.cpp
#	source/rr/src/m32exec.cpp
#	source/rr/src/m32structures.cpp
2020-01-03 08:07:10 +01:00
Christoph Oelckers e63ca0f471 - removed redundant keyboard.h header 2020-01-02 19:56:57 +01:00
Christoph Oelckers d464017363 - cleaned up the input code a bit. 2020-01-01 11:35:47 +01:00
Christoph Oelckers bcb48d8441 - added handling for changing the screen size (dragging the window borders / change scale factor) 2020-01-01 09:49:06 +01:00
Christoph Oelckers 3d47652d08 - had a look at Exhumed's shade tables and implemented the necessary adjustments for the 3 with abnormal gradients. 2019-12-31 22:53:03 +01:00
Christoph Oelckers d3a57e6e74 - route all clearscreen calls that happen after drawing the scene through the 2D drawer.
Otherwise they aren't synchronized with the remaining content.
2019-12-31 19:25:49 +01:00
Jonathan Gray 5ea5d87664 PCExhumed: fix triddat.cpp build with libc++
Include cstdlib for abs() with an int argument.  Fixes the following
compile error with libc++.

source/exhumed/src/trigdat.cpp:159:9: error: call to 'abs' is ambiguous
    if (abs(diff) > c)
        ^~~
/usr/include/c++/v1/math.h:761:1: note: candidate function
abs(float __lcpp_x) _NOEXCEPT {return ::fabsf(__lcpp_x);}
^
/usr/include/c++/v1/math.h:765:1: note: candidate function
abs(double __lcpp_x) _NOEXCEPT {return ::fabs(__lcpp_x);}
^
/usr/include/c++/v1/math.h:769:1: note: candidate function
abs(long double __lcpp_x) _NOEXCEPT {return ::fabsl(__lcpp_x);}
^
1 error generated.
2019-12-31 09:19:58 +01:00
Jonathan Gray 64d3d38014 PCExhumed: remove uneeded malloc.h include
malloc.h is a non-standard header and isn't required here
fixes build on OpenBSD which has no malloc.h

# Conflicts:
#	source/exhumed/src/enginesubs.cpp
2019-12-31 09:19:58 +01:00
Christoph Oelckers ad24a1ce31 - place weapon sprites in a separate render list.
They need to be drawn in a different pass than the 2D overlay HUD so the backend must have them separately.
2019-12-30 20:16:51 +01:00
Christoph Oelckers f1891c7750 - fixed compilation. 2019-12-29 22:47:40 +01:00
nukeykt 62c37b64ae Fix exhumed compiling
# Conflicts:
#	source/exhumed/src/exhumed.cpp
#	source/exhumed/src/menu.cpp
2019-12-29 22:30:13 +01:00