Commit graph

1693 commits

Author SHA1 Message Date
Christoph Oelckers
7dc26a3162 - stop all playing sound when starting a new game.
- give all bonus screen sounds in Duke the CHANF_UI flag.
2020-02-17 19:43:58 +01:00
Christoph Oelckers
57a3f89105 - workaround for cl_autoaim not being set anymore.
Only for singleplayer for now, the network implementation for this flag leaves a lot to be desired.
2020-02-16 21:31:29 +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
f2043c4e3d - fixed palette in 3D Realms screen and first end-of-episode animation in Duke3D. 2020-02-11 19:29:05 +01:00
terminx
9bd966c77e Macros for a couple hardcoded values
git-svn-id: https://svn.eduke32.com/eduke32@8641 1a8010ca-5511-0410-912e-c29ae57300e0
2020-02-11 18:24:50 +01:00
terminx
a9e8666b07 This lets the player jump into the vents in DUKEDC3.MAP
Since this is Duke3D, I'm sure this change breaks something else.

git-svn-id: https://svn.eduke32.com/eduke32@8640 1a8010ca-5511-0410-912e-c29ae57300e0
2020-02-11 18:24:39 +01:00
terminx
376c29dba6 Rename ZOFFSET1 to ACTOR_FLOOR_OFFSET and use ACTOR_MAXFALLINGZVEL in several places where it should have been used
git-svn-id: https://svn.eduke32.com/eduke32@8637 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/player.cpp
2020-02-11 18:23:49 +01:00
terminx
46b62aa6aa Fix for E1L1 dumpster fire issue
git-svn-id: https://svn.eduke32.com/eduke32@8636 1a8010ca-5511-0410-912e-c29ae57300e0
2020-02-11 18:23:14 +01:00
hendricks266
a2f507d044 CON: Add getarraysequence and setarraysequence
Patch from Fox.

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

# Conflicts:
#	source/duke3d/src/game.h
2020-02-11 18:20:04 +01:00
hendricks266
8adb6be002 CON: Factor out implementations of setarray and resizearray commands
Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@8622 1a8010ca-5511-0410-912e-c29ae57300e0
2020-02-11 18:19:12 +01:00
Christoph Oelckers
37f3bb37d4 - re-added menu opening sound for Duke and RR. 2020-02-11 18:13:15 +01:00
Christoph Oelckers
f0039afa5e - fixed: INI sections for game vars were never created. 2020-02-11 00:22:56 +01:00
Christoph Oelckers
e3f8fca36e - fixed two crash bugs I found while testing some mods. 2020-02-09 22:32:13 +01:00
terminx
b214a67853 Minor clipping fix
git-svn-id: https://svn.eduke32.com/eduke32@8608 1a8010ca-5511-0410-912e-c29ae57300e0
2020-02-07 18:55:56 +01:00
terminx
ba7de01d7f This should be ifndef NETCODE_DISABLE
git-svn-id: https://svn.eduke32.com/eduke32@8604 1a8010ca-5511-0410-912e-c29ae57300e0
2020-02-07 18:55:56 +01:00
alexey.lysiuk
1479e1feae - unified demo path handling for all platforms
The current game subdirectory is now created on all platforms
2020-02-06 12:04:51 +01:00
Christoph Oelckers
67a2952ead - fixed RR's music. 2020-02-05 22:03:42 +01:00
Christoph Oelckers
f6d9b5602b - fixed hud_scale. 2020-02-05 19:06:36 +01:00
Christoph Oelckers
a90185bea9 - cleaned up the remaining dependencies on windows.h
This file now only gets included by code that really needs it.
2020-02-03 21:30:57 +01:00
Christoph Oelckers
4350a4dd31 - netcode cleanup.
This moves all parts in the Duke/Redneck modules that access ENet into net.cpp/network.cpp and changes global ENet structs to use C++ notation instead of typedefs so that anonymous definitions for them can be added where needed.
These changes are done to avoid including enet.h globally which is a major issue because this file does not work without including windows.h, making it extremely dirty.
2020-02-03 21:06:03 +01:00
Christoph Oelckers
ca21852945 - hook up -nologo. 2020-02-02 20:44:57 +01:00
hendricks266
3e023684f4 Fix -Wsign-compare warnings in anim.cpp
git-svn-id: https://svn.eduke32.com/eduke32@8584 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/anim.cpp
2020-02-02 20:35:43 +01:00
Christoph Oelckers
4d7a43004c - use the new SW interpolation function for all games. 2020-02-02 10:27:47 +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
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
terminx
8aee2f9489 Calculate game loop timing using fractional ticks
git-svn-id: https://svn.eduke32.com/eduke32@8572 1a8010ca-5511-0410-912e-c29ae57300e0
2020-01-29 19:36:55 +01:00
terminx
af816fdf00 This fixes things like shrunk player behavior at the expense of the return of issues like the player automatically stepping up onto sprite architecture.
git-svn-id: https://svn.eduke32.com/eduke32@8568 1a8010ca-5511-0410-912e-c29ae57300e0
2020-01-29 19:35:34 +01:00
terminx
102c7a6293 Remove useless G_MoveLoop() function
git-svn-id: https://svn.eduke32.com/eduke32@8563 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/game.cpp
2020-01-29 19:22:40 +01:00
terminx
0fcdf3c1af Rename G_CheckPlayerInSector() to G_GetPlayerInSector()
git-svn-id: https://svn.eduke32.com/eduke32@8560 1a8010ca-5511-0410-912e-c29ae57300e0
2020-01-29 19:20:45 +01:00
terminx
8543f476d7 Ion Fury compatibility improvements
git-svn-id: https://svn.eduke32.com/eduke32@8559 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/game.cpp
2020-01-29 19:20:35 +01:00
terminx
eee0509856 Fix issue where radius damage wasn't able to hit/damage sectors, walls, and sprites it should have been able to
git-svn-id: https://svn.eduke32.com/eduke32@8558 1a8010ca-5511-0410-912e-c29ae57300e0
2020-01-29 19:18:26 +01:00
terminx
aebc2632f3 Bail out of A_MoveSpriteClipdist() early if passed no velocity
git-svn-id: https://svn.eduke32.com/eduke32@8546 1a8010ca-5511-0410-912e-c29ae57300e0
2020-01-29 19:11:15 +01:00
terminx
470e9afe22 Macro safety
git-svn-id: https://svn.eduke32.com/eduke32@8545 1a8010ca-5511-0410-912e-c29ae57300e0
2020-01-29 19:11:02 +01:00
terminx
5bd62f666e Add "maxhealth" console command to set the player's maximum health
git-svn-id: https://svn.eduke32.com/eduke32@8542 1a8010ca-5511-0410-912e-c29ae57300e0
2020-01-29 19:10:09 +01:00
terminx
92a6178429 Fix forward movement with the mouse when mouse aiming is disabled
This was missed back when input between the x and y axes was normalized to use the same scale.

git-svn-id: https://svn.eduke32.com/eduke32@8541 1a8010ca-5511-0410-912e-c29ae57300e0
2020-01-29 19:09:48 +01:00
terminx
e4add4956b Factor conditions for locking player movement out into new P_CheckLockedMovement() function
git-svn-id: https://svn.eduke32.com/eduke32@8539 1a8010ca-5511-0410-912e-c29ae57300e0
2020-01-29 19:09:33 +01:00
terminx
9e86e83da8 Use ClockTicks class for the timer values saved and restored when creating a savegame
git-svn-id: https://svn.eduke32.com/eduke32@8537 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/savegame.cpp
2020-01-29 19:09:17 +01:00
Christoph Oelckers
8657ecb35d - implemented 'map' CCMD for all games. 2020-01-28 11:20:30 +01:00
Christoph Oelckers
809b687969 - removed the Build color matching code
For the handful of lookups it got used for the needed data is too large and the lookup not precise enough. ZDoom's BestColor yields better results, does not need any tables and for the small amount of lookups being performed is more than adequate.
2020-01-28 10:31:59 +01:00
Rachael Alexanderson
212cfde186 - add levelwarp cheat to Redneck and Duke 2020-01-27 22:29:47 -05:00
Christoph Oelckers
9ca1e56713 - added extended sound lookup as well plus menu options. 2020-01-27 22:29:45 +01:00
Christoph Oelckers
5de7fbca37 - consolidation of music lookup code for user maps. 2020-01-27 20:53:41 +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
cb652ad147 - use Pal_2D for Duke's title screen.
This has transparent overlays so it must not disable translucency.
2020-01-26 11:47:40 +01:00
Christoph Oelckers
245aa5d3bc - reworked global palette state for robustness. 2020-01-26 10:58:00 +01:00
Christoph Oelckers
e8231f904f - I have no idea why a fov of exactly 90° does not work.
Changing this by one in either direction makes the problem go away.
2020-01-25 11:56:13 +01:00
Christoph Oelckers
f8a807e3bb - cleaned out a tiny bit of the garbage that has accumulated in compat.h.
This file really needs to go away, we do not need this kind of "compatibility".
2020-01-25 10:56:30 +01:00
pogokeen
dbc8e63b8b game.h: fix calc_smoothratio_demo() to take into account differences between timerGetClockRate() and TICRATE when calculating the refresh frequency to interpolate between
git-svn-id: https://svn.eduke32.com/eduke32@8534 1a8010ca-5511-0410-912e-c29ae57300e0
2020-01-21 23:57:44 +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
e555d15cc7 renamed the swap function in pragmas.h
This conflicts with std::swap on some setups.
2020-01-20 01:32:39 +01:00
Christoph Oelckers
ef3ade08d3 - silence debug diagnostics for non-test builds 2020-01-20 00:42:40 +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
8cd9775513 - fixed VP8 video player.
Also do the color space conversion on the CPU to avoid the shader hassle, performance wise it is utterly irrelevant here.
2020-01-18 16:14:30 +01:00
Christoph Oelckers
298bbb4c97 - removed some leftover pieces of the original savepic code in RR. 2020-01-15 20:52:36 +01:00
Christoph Oelckers
a4d8e68b9f - added an engine credits menu page. 2020-01-15 20:39:41 +01:00
Christoph Oelckers
c0c18db7cd - dynamically allocate the large networking buffers.
These waste a whopping 800MB of address space, which on 32 bit could be the deciding factor for exhausting available memory.
2020-01-15 18:36:53 +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
Christoph Oelckers
9ca2819ad1 - added missing validation to S_GetUserFlags functions. 2020-01-12 09:32:30 +01:00
CommonLoon102
851a82c01f Blood: prefix the new maphack tokens with md
# Conflicts:
#	source/duke3d/src/lunatic/con_lang.lua
#	source/rr/src/lunatic/con_lang.lua
2020-01-11 22:24:13 +01:00
CommonLoon102
bc4a4bea23 Add possibility to move voxels/models via maphacks
# Conflicts:
#	source/build/src/engine.cpp
#	source/build/src/polymer.cpp
#	source/build/src/polymost.cpp
#	source/duke3d/src/lunatic/con_lang.lua
#	source/rr/src/lunatic/con_lang.lua
2020-01-11 22:23:53 +01:00
Christoph Oelckers
55dab6d3d3 - hooked up the high color texture colorization code.
Not tested and probably still not working correctly, the entire feature was a nearly impenetrable mess of convoluted code. This definitely needs verification with multiple mods using it.
2020-01-11 22:18:06 +01:00
Christoph Oelckers
dc6e7c52c1 - don't pop up the menu over the intro movies when ending a game. 2020-01-08 17:36:21 +01:00
Christoph Oelckers
fb985d2503 - more macOS compilation fixes
Still not complete…
2020-01-07 01:11:19 +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
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
hendricks266
6a4870e7fb actors.cpp: Address -Wsometimes-uninitialized warnings
git-svn-id: https://svn.eduke32.com/eduke32@8528 1a8010ca-5511-0410-912e-c29ae57300e0
2020-01-03 11:48:42 +01:00
Magnus Norddahl
b3e754ecbe Fix uninitialized variables causing black screen sometimes when playing videos 2020-01-03 09:45:15 +01:00
Christoph Oelckers
d09b83d4a5 - moved the last remaining function out of baselayer.cpp and removed that file.
g_logFlushWindow was deleted entirely because with the current console this is not needed anymore.
2020-01-01 12:01:26 +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
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
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
hendricks266
456d975392 Make the Polymode cstat bits Duke-only by translating them to tspr->clipdist
git-svn-id: https://svn.eduke32.com/eduke32@8523 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymer.cpp
#	source/build/src/polymost.cpp
#	source/duke3d/src/astub.cpp
#	source/duke3d/src/common_game.h

# Conflicts:
#	source/duke3d/src/common_game.h
2019-12-29 22:23:18 +01:00
hendricks266
6a5906833b Move TSPR_EXTRA_MDHACK from extra to clipdist
git-svn-id: https://svn.eduke32.com/eduke32@8522 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/mdsprite.cpp
#	source/build/src/polymer.cpp
2019-12-29 22:22:20 +01:00
hendricks266
6465feb438 Refactor tsprite creation into renderAddTSpriteFromSprite
git-svn-id: https://svn.eduke32.com/eduke32@8521 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymer.cpp
#	source/duke3d/src/m32exec.cpp
2019-12-29 22:22:19 +01:00
Christoph Oelckers
6dc064a178 - another unused one. 2019-12-29 17:13:12 +01:00
Christoph Oelckers
3a6d0b8f84 - more cleanup. 2019-12-29 17:04:38 +01:00
Christoph Oelckers
2e261a7468 - cleanup and removal of unused code.
compat.h probably needs a bit more attention, it's a horrendous mess of the wrong type of "compatibility" concerns.
2019-12-29 16:35:51 +01:00
Christoph Oelckers
f6dee38d28 - route all 2D drawing through the 2D drawer unconditionally.
This is needed so that the postprocessor receives a clean 3D view to process without messing up the 2D parts.
2019-12-28 19:10:23 +01:00
Christoph Oelckers
a021b96119 - added the needed parts of GZDoom's render backend to have the postprocessor working.
Not hooked up yet.
2019-12-28 18:20:47 +01:00
Christoph Oelckers
2b95808d42 - fixed ambient sounds not restarting in DN3D and RR. 2019-12-28 12:59:19 +01:00
Christoph Oelckers
62e9112133 - renamed the internal resource directory to "engine" and routed most literal mentions of the engine name through version.h
All this comes from a time when I didn't use version.h so it's better to do it the same way as GZDoom to allow easy renaming of the engine.
2019-12-26 14:04:53 +01:00
Christoph Oelckers
d8dfe752b5 - fixed handling of music in Redneck Rampage and Shadow Warrior.
After merging the CD enabling CVAR they had the same default (off) as Blood which is wrong.
This also addresses other music related issues, like not properly cycling through the RR music.
2019-12-26 13:04:29 +01:00
hendricks266
8e6a54a1e4 Mostly clean up the codebase in preparation for tspritetype != uspritetype
Remaining exceptions:
SW - ConnectCopySprite
CON and M32Script - pSprite/pUSprite

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

# Conflicts:
#	source/build/include/polymer.h
#	source/build/src/engine.cpp
#	source/build/src/engine_priv.h
#	source/build/src/polymer.cpp
#	source/build/src/polymost.cpp
#	source/duke3d/src/astub.cpp
#	source/duke3d/src/game.h
#	source/duke3d/src/m32common.cpp
#	source/duke3d/src/m32exec.cpp
#	source/duke3d/src/m32structures.cpp
#	source/kenbuild/src/bstub.cpp
#	source/kenbuild/src/game.cpp
#	source/sw/src/jnstub.cpp
#	source/sw/src/jsector.cpp
2019-12-26 08:58:25 +01:00
hendricks266
33ad4b9860 Fix -Wfallthrough error in gamevars.h
git-svn-id: https://svn.eduke32.com/eduke32@8495 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-26 08:26:09 +01:00
Christoph Oelckers
dd984c94b0 - fixed extended quote management. 2019-12-25 17:13:36 +01:00
Christoph Oelckers
414201e741 - fixed palette translucency after aborting movie playback. 2019-12-25 17:13:10 +01:00
Christoph Oelckers
120a985b98 - disable palette transparency for color 255 when running an animation.
There's several intro cutscenes using the full palette and for these the color must not be nulled as it should for in-game textures.
2019-12-25 14:13:15 +01:00
Christoph Oelckers
b0cefdedce - plugged all memory leaks that were reported with Shadow Warrior when starting the first level. 2019-12-25 11:26:19 +01:00
Christoph Oelckers
5e821de481 - replaced the leaky hash table that was used to handle the animations.
Just replaced with a linear array - for a hash table indexed with a string to be efficient, a much larger amount of data is needed than 20 or 30 entries.
This is also hardly the kind of data where losing a microsecond for performing the search matters.
2019-12-25 09:51:44 +01:00
Christoph Oelckers
055b310d60 - rewrote all remaining places that used wm_msgbox to throw a fatal error instead so that the global error handler can deal with the messages.
This eliminates another piece of hideous code.
This commit also moves the memory error handler to the common code, so that all games can call it if triggered.
2019-12-24 19:59:14 +01:00
Christoph Oelckers
2820dc85a8 - plugged more memory leaks.
I can now start the first Duke Nukem level, exit with Alt-F4 and no leaked memory blocks get reported.
2019-12-24 18:53:29 +01:00
Christoph Oelckers
0d908960ed - started fixing memory leaks: Console and clip shapes done. 2019-12-24 16:09:43 +01:00
Christoph Oelckers
1b9a2f5932 - disabled the message entering code.
This needs to be replaced with the game independent ZDoom version and hooked up properly, but it of low priority because it's a multiplayer only feature.
2019-12-24 13:21:36 +01:00
Christoph Oelckers
a870df840e - hooked up the input system and did a major cleanup.
Much of the old system is no longer needed with all buttons being handled as keys.
Mouse axis movement is not working yet.
2019-12-24 12:59:26 +01:00
Christoph Oelckers
9ab8a8c737 - refactored the coordinate printout to a stat and removed printext256 and the associated font. 2019-12-23 20:55:12 +01:00