Commit graph

138 commits

Author SHA1 Message Date
Christoph Oelckers
bf577916ec - made the is*** checkers compiler intrinsics.
With the exception of isWorldTour, isPlutoPak and isShareware when playing Duke these are always constant and this way can be used to completely eliminate unneeded code.
2023-04-29 10:09:36 +02:00
Christoph Oelckers
44f4104eda - got rid of the last tilenum uses in Duke.
This meant refactoring the crosshair drawer to work on a named texture called "CROSSHAIR" and hard coding the magic numbers for spawndebris.
2023-04-29 09:54:15 +02:00
Mitchell Richters
272dfa762d - Remove backend crouch toggle solution redeploy with Duke/Exhumed/Blood using new ESyncBit bit.
* I tried to make this work in 2020 but its been nothing but headache. It's something for the game to control via a flag, not the backend to determine.
* For SW, this restores its original implementation.
2023-04-02 18:32:40 +10:00
Mitchell Richters
e85162df97 - Removed unused lastTic global. 2023-03-23 17:38:01 +11:00
Mitchell Richters
e5f3f5f149 - Make setForcedSyncInput() require a player index.
* This should only ever apply to the console player.
2023-03-23 17:09:02 +11:00
Mitchell Richters
7da3b097fb - Remove the extern status for gamesetinput.
* We don't need to save this variable, we reset it at the start of every tic anyway.
2023-03-23 17:03:43 +11:00
Mitchell Richters
672c53c35c - Move CCMD pause to gamecontrol.cpp so it can be static. 2023-03-18 19:54:05 +11:00
Christoph Oelckers
20edd800f9 - big texture system refactor.
Finally that quickly slapped together BuildTiles class is gone and replaced with something that better integrates with the underlying texture manager
2022-12-18 13:05:58 +01:00
Christoph Oelckers
9e3318a2fb - moved spawnclasses and breakwall definitions from .def to RMAPINFO.
.def is not the right place for this - it needs to run very early in the process, before scripted actors are loaded, so doing this stuff there means that half the initialization has to be postponed and error reporting is sub-par.
These are now part of RMAPINFO which gets parsed as one of the very last things - it is also where GZDoom is doing some of these things.

The better error reporting also allowed fixing some errors in these definitions.
2022-12-11 19:43:57 +01:00
Christoph Oelckers
c1a09196f0 - implemented breakable walls with external definitions.
The scripted case does not work yet due to bad loading order of files.
2022-12-11 19:43:57 +01:00
Christoph Oelckers
4397e65443 - cleaned up the generic destructible code and used it for several more things. 2022-12-11 19:43:50 +01:00
Christoph Oelckers
1d52963d4b - converted all simple destructible sprites.
Ironically the first item I used for testing needed a dedicated class, so here's that, too...
2022-12-11 19:43:46 +01:00
Christoph Oelckers
9e29c3970d - generic destructibles 2022-12-11 19:43:45 +01:00
Christoph Oelckers
52e5e2f59a - use a sepate file system filter for 'duke-like' games, i.e. Duke, NAM and WW2GI combined.
These 3 all require the same SNDINFO being loaded.
2022-12-11 18:41:52 +01:00
Mitchell Richters
ef52694365 - Improved crosshair drawing that factor's in look_ang better I've had stashed away for a little bit. 2022-11-30 10:03:52 +01:00
Christoph Oelckers
13e19bad36 - fixed handling of bad class assignment to map picnums. 2022-11-24 08:12:18 +01:00
Christoph Oelckers
479c732a72 - moved some more things out of build.h 2022-10-30 16:51:10 +01:00
Christoph Oelckers
479616a80f - got new CVar system from GZDoom. 2022-10-22 00:12:17 +02:00
Mitchell Richters
9eec69d810 - Blood: Floatify position drawing code and clean up now-unused wrappers.
* Still work to be done on bob/sway/zView variables.
2022-10-18 18:29:09 +02:00
Christoph Oelckers
c1d603e1e9 - backend update from GZDoom. 2022-10-02 20:33:18 +02:00
Rachael Alexanderson
735740e453 - add level names to title bar (and by proxy, to RPC) 2022-03-18 05:06:58 -04:00
Christoph Oelckers
cbd8de36a9 - added spawn number parser to .DEF.
This is for mapping actor classes to whatever the games use to decide what kind of actor a sprite is.
2022-01-26 23:53:05 +01:00
Christoph Oelckers
fab5a02ba3 - deleted unused variable. 2022-01-06 00:43:46 +01:00
Christoph Oelckers
a21f6b6240 - migrated Exhumed's sector extensions to the actual struct. 2021-12-25 21:28:49 +01:00
Christoph Oelckers
14907a9a97 - sector extension basics. 2021-12-25 21:28:48 +01:00
Christoph Oelckers
389f760d45 - address C++20 deprecation warnings with enums in floating point arithmetic. 2021-11-02 23:32:31 +01:00
Christoph Oelckers
5aa27bad3b - flag SW's cutscenes as 'boss death only'. 2021-08-13 22:25:13 +02:00
Mitchell Richters
77630dcbc7 - Rename DeferedStartGame() to DeferredStartGame(). 2021-07-20 18:43:17 +10:00
Mitchell Richters
4ac1376b9f - Make naming of multiplayer episode exclusion stuff from d0e6a7ea29 more generic and exclude invalid episodes from "Duke It Out in DC", "Duke Nuclear Winter" and "Duke Caribbean". 2021-07-19 12:24:47 +10:00
Mitchell Richters
d0e6a7ea29 - Allow CON-based games to have multiplayer episodes filtered from menu.
* Fixes #461.
* Fixes #462.
2021-07-16 20:55:29 +02:00
Mitchell Richters
ffba10a7c5 - SW: Set default skill level to match original release and what the manual says is default. 2021-07-11 12:08:12 +10:00
Christoph Oelckers
207298aeb4 - fixed compilation (again.) 2021-06-02 21:00:39 +02:00
Christoph Oelckers
7fa690082e - fixed cherry picked commit.
# Conflicts:
#	source/core/gamecontrol.h
2021-06-02 20:52:47 +02:00
Christoph Oelckers
d44500863b - removed the multiplayer scoreboard screens.
Since there is no plan to keep them in case MP gets implemented there's no need to maintain them.
These should later be replaced by a generic screen using a better font and a layout that takes higher resolutions into account.
2021-05-27 13:33:54 +02:00
Christoph Oelckers
d7a47b2f3a - route all accesses to gameaction from the backend through the sysCallbacks.
gameactions are frontend specific so this needs to be decoupled.
2021-05-22 13:02:34 +02:00
Christoph Oelckers
e10bcf6294 - split the screen job code into a generic and a Raze specific part.
Preparations for porting this to GZDoom.
2021-05-22 01:35:50 +02:00
Christoph Oelckers
499ed52972 - route savegame requests through the newwork, just like GZDoom does.
Although a bit overkill for single player saves only, this will ensure consistent behavior between both engines regarding the menu.
2021-05-12 00:21:26 +02:00
Christoph Oelckers
8003ab6fa3 Merge branch 'scriptable_cutscenes' into newrenderer 2021-05-02 22:37:46 +02:00
Christoph Oelckers
21aa5c9234 - added game flags for all supported add-ons. 2021-04-30 20:08:31 +02:00
Christoph Oelckers
7fbe153ae7 - more Duke screen porting. 2021-04-30 20:08:24 +02:00
Christoph Oelckers
8c379f7a44 Merge branch 'master' into newrenderer 2021-04-25 11:33:47 +02:00
Christoph Oelckers
5585351c0f - added a hack to help the new renderer with Lunatic Fringe.
This is by no means a permanent solution but having it buys some time to find something more universal that won't affect performance too badly and investigate the need for a more robust solution.
The idea here is to define pairs of walls where when the first element of the pair is seen, it will treat the second one as view blocking.
This is used as the two offending windows (sectors 151 and 152) to cope with the lack of a height sensitive clipper.
2021-04-24 20:00:54 +02:00
Mitchell Richters
8e53489487 - Remove some leftover stuff from gamecontrol.h. 2021-04-22 18:53:14 +10:00
Christoph Oelckers
9a58299bee Merge branch 'master' into newrenderer2 2021-04-14 22:37:59 +02:00
Christoph Oelckers
4fe3c50c7c - used the newly added game ID as reference for GAMEINFO to autoselect which game to start a mod with.
While in GZDoom this uses the IWAD name, the same approach is a lot more problematic here because of name duplications with far more incompatible content.
So this allows targeting a group of base games instead of one specific version.
2021-04-13 18:08:55 +02:00
Christoph Oelckers
42d02834b1 Merge branch 'master' into newrenderer2
# Conflicts:
#	source/build/include/build.h
#	source/build/src/polymost.cpp
#	source/build/src/voxmodel.cpp
#	source/core/gamecontrol.cpp
#	source/core/gamestruct.h
#	source/games/blood/src/animatesprite.cpp
#	source/games/blood/src/misc.h
#	source/games/blood/src/view.cpp
#	source/games/duke/src/render.cpp
#	source/games/sw/src/draw.cpp
#	source/games/sw/src/game.h
#	source/games/sw/src/jsector.cpp
#	source/glbackend/glbackend.cpp
2021-04-11 14:38:56 +02:00
Christoph Oelckers
db5fbe3bbb - make the startup banner in the initial console window work. 2021-04-10 19:14:30 +02:00
Christoph Oelckers
333581a084 Merge branch 'master' into newrenderer2
# Conflicts:
#	source/build/src/defs.cpp
2021-04-09 19:57:56 +02:00
Christoph Oelckers
fb02b38279 - better .def loading logic.
To allow cumulative loading without interfering with other ports, Raze will now look for files called xxxx-raze.def, where xxxx is the default .def name (e.g. duke3d-raze.def for Duke3D.) and if that is found, cumulatively load all same-named files - it will fall back on the default name if no such thing is found.
-def still overrides both and will not cumulatively load.
2021-04-09 14:30:01 +02:00
Christoph Oelckers
e30dc82676 - Cleanup of the voxel code.
* moving polymost_voxdraw into polymost.cpp.
* consolidated all remaining voxel code in hw_voxels.cpp. All original Build voxel code is completely gone now, except for polymost_voxdraw, so this got moved out of the build/ folder.
* integrate Blood's voxel init code into the main function.
* some further cleanup was allowed as a result of this, so engineInit is gone now because these parts can now be done outside the games' app_init functions.
2021-04-05 18:05:43 +02:00