Commit graph

1363 commits

Author SHA1 Message Date
Mitchell Richters
059f15c786 - Refactor floatified vector math to use inline wrapped around TVector2's Rotated() method.
* This will be used extensively in Duke and the other game as we finalise this conversion.
2022-10-14 18:13:49 +02:00
Christoph Oelckers
f7d2ab20d8 - handle more move_missile calls 2022-10-14 17:17:36 +02:00
Christoph Oelckers
81c7e7671f - fixed Clang warnings 2022-10-13 22:54:43 +02:00
Mitchell Richters
60f5d9b67c - Rework some automap functions in prep for floatification. 2022-10-13 00:59:04 +02:00
Mitchell Richters
7286585998 - Add missing header to vectors.h that GCC and Clang were complaining about. 2022-10-13 00:59:04 +02:00
Mitchell Richters
1e36aa0e7f - Move TAngle<> interpolation function to common and add ones for TVector<> classes. 2022-10-13 00:59:03 +02:00
Mitchell Richters
19d21555a6 - Duke: Change int_ang() usage in camera().
* This commit also restores the original method of incrementing the camera's angle that was replaced due to a hiccup/stutter where the angle suddenly skipped forward by 16 instead of 8, but with a fix from EDuke32. This avoids using 3x extra `temp_data[]` slots.
2022-10-13 00:59:03 +02:00
Mitchell Richters
a22300fe01 - Blood: Replace some set_int_ang() usage.
* A lot of this repeated code should be factored out into repeated blocks when all of this floatification is done.
2022-10-13 00:59:02 +02:00
Christoph Oelckers
2f896b859b - made the code mostly signed-char safe.
This eliminates all char function parameters that are not really ASCII characters and casts all char argument to the ctype is... functions.
2022-10-12 22:12:30 +02:00
Christoph Oelckers
9275c14c9c - floatify SE18 handler.
To store floars in temp_data without relying on map format conventions, the FixedTo functions were extended to allow custom precision.
2022-10-12 22:10:35 +02:00
Christoph Oelckers
45f37525e0 - minor angle stuff in Blood 2022-10-10 17:31:30 +02:00
Christoph Oelckers
b2d0d7f9e5 - normalize the timer with the app start, not the epoch.
This ensures smaller values and less wraparounds with integer values in scripts.
2022-10-09 14:50:45 +02:00
Christoph Oelckers
00b812a5ff - un-deprecated the integer MSTime variant.
Due to undefined downconversion rules from double to int, there is no way to safely downcast the return from MSTimef, meaning the function is completely useless for retrieving integral time stamps.
The old version is essential for these cases and must be kept around.
2022-10-09 13:47:55 +02:00
Christoph Oelckers
416be99967 - fixed: SW's intro video must not stop playing music. 2022-10-08 10:04:31 +02:00
Mitchell Richters
ca521f8a1e - Test whether texture filtering is allowed before unconditionally allowing anisotrophy in the GLES backend. 2022-10-08 10:04:31 +02:00
Christoph Oelckers
be2f61bce2 - optimized TVector3::XY() to return a writable reference. 2022-10-06 20:50:44 +02:00
Christoph Oelckers
661655fb67 - SW: use a DVector3 in SpawnVis 2022-10-06 20:50:43 +02:00
Mitchell Richters
d28d6cd4cf - Utilise actor sprite's full precision in instances where angle was converted to Build and back again. 2022-10-05 00:36:30 +02:00
Mitchell Richters
bd6b0eaac5 - Fix some constexpr issues with the latest DAngle works.
* We can't make `BAMs()` constexpr as we can't update to a C++20 compatible version of xs_Float where we use legal std::bit_cast instead of a union.
2022-10-05 00:36:29 +02:00
Mitchell Richters
13ea55b4cb - Replace player's rotscrnang and look_ang angles with DAngle objects.
* Went the el cheapo route and added some floating point Build angle methods. As these and the integer build methods are really just refactoring aids, we'll come back to this in due course.
2022-10-05 00:36:26 +02:00
Mitchell Richters
36d76a71ea - Change walltype::clipangle from binangle to angle_t. 2022-10-05 00:36:25 +02:00
Christoph Oelckers
41ba829665 - fixed compile 2022-10-02 20:45:53 +02:00
Christoph Oelckers
c1d603e1e9 - backend update from GZDoom. 2022-10-02 20:33:18 +02:00
Christoph Oelckers
fa53fcd085 - undid the fix that allocated one byte too many for loading a complete file into an FString.
Without this padding byte the voxel loader does not work.
2022-08-27 00:02:57 +02:00
Christoph Oelckers
111dbd7a7d - backend update from GZDoom.
mainly TAngle overhaul and needed code adjustments.
2022-08-26 18:28:22 +02:00
Christoph Oelckers
b196e67f40 ported SHA-1: 82e3f6af9367200853fe2af1b9665dd0c53b4f05 from NBlood
* - Change gBusyCount limit to a higher value since xsector limit raised.

gModernMap:
- The return of the event causer (kChannelEventCauser, TXID 50).
- Fix flags for kModernPropertiesChanger type.
- Add new modern type kModernVelocityChanger.
- New features for kMarkerWarpDest type.
- New features for kModernSectorFXChanger type.
- Fix sector condition 58.
- Fix sprite hitscan conditions (35 - 38).
- Add new command (kCmdEventKillFull).
- Misc changes.

# Conflicts:
#	source/games/blood/src/actor.cpp
#	source/games/blood/src/nnexts.cpp
2022-08-17 20:45:51 +02:00
Christoph Oelckers
77bc5999ce - Backend update from GZDoom.
* ZScript compiler fixes for type promotion
* FileSystem.FindLumpFullName
* Statusbar text scaling fixes.
* removed scalar addition operators from vectors.
2022-08-17 20:38:46 +02:00
Christoph Oelckers
864c0b71e0 -removed some xs_float casts that are not really necessary. 2022-08-07 10:54:52 +02:00
Christoph Oelckers
8aa96777b0 - allow FModel::FindFrame to not pick a default. 2022-08-07 10:42:07 +02:00
Christoph Oelckers
4260d334e2 - do not overwrite a textures sky cap color. 2022-08-06 09:26:08 +02:00
Christoph Oelckers
c2fc7577db - cleanup of 3D viewport code.
Removes all the hackery that Polymost needed and now uses a sane struct to store the info.
2022-08-05 17:04:45 +02:00
Christoph Oelckers
7e36e57639 - fix dangerous pointer arithmetic in ParseCommandLine
Should be rewritten entirely to sanitize, though.
2022-08-05 09:40:37 +02:00
Christoph Oelckers
7debab7ff4 - refined wall sprite check so that orthogonally aligned sprites are only aligned to orthogonal walls.
Here even the slightest deviation can create problems.
2022-08-03 14:13:42 +02:00
Christoph Oelckers
89e8d7ad58 - removed all remnants of the softpoly renderer which was never used in Raze. 2022-08-03 13:27:48 +02:00
Christoph Oelckers
6591b3b090 - Backend update from GZDoom.
Mainly new features for 2D drawer and model renderer.
2022-07-23 12:05:27 +02:00
Christoph Oelckers
abb7f87de3 - Backend update from GZDoom. 2022-07-23 12:10:08 +10:00
Dale Whinham
7856d30957 Improve KDE/kdialog detection
If KDE is running but kdialog is not present on the system (e.g. as is
the case on SteamOS), allow falling back on the GTK dialogs instead.
2022-07-23 10:36:15 +10:00
Dale Whinham
ed4e23f1ec Fix crash when exiting with no game data
When shutting down with no game data, GameConfig is saved and the
pointer is nulled. If a joystick was present, a null dereference occurs
when the engine tries to save the joystick config later in the shutdown
sequence.

Add a check to avoid a crash in this scenario.
2022-07-10 22:30:18 +02:00
Christoph Oelckers
2c3fcbaf51 - glslang compiler and Vulkan backend update. 2022-07-02 10:20:11 +02:00
Christoph Oelckers
3ec8a96ddf - partial backend update from GZDoom. 2022-07-02 09:30:37 +02:00
Christoph Oelckers
eb8fae761e - backend update from GZDoom. 2022-06-26 09:35:21 +02:00
Christoph Oelckers
998def2487 - another backend update from GZDoom. 2022-06-06 15:28:41 +02:00
Christoph Oelckers
f599040212 - GCC needs this commented out but really shouldn't. 2022-06-06 13:08:23 +02:00
Christoph Oelckers
e5c7c4f680 - don't use longs. 2022-06-06 12:05:50 +02:00
Christoph Oelckers
84173ee09b - backend update from GZDoom.
The main bulk of this is the new start screen code. To make this work in Raze some more work on the startup procedure is needed.
What this does provide is support for the DOS end-of-game text screens in Duke and SW on non-Windows systems.
2022-06-06 11:45:34 +02:00
Mitchell Richters
47aa110441 - Remove the ability to set a custom ticrate in calls to I_GetInputFrac(). There's no real world need for this. 2022-06-06 18:41:48 +10:00
Christoph Oelckers
e86899ed31 - fixed sky panning.
This picked the wrong overload - to make things robust one of the functions was renamed.
2022-06-06 10:12:26 +02:00
Mitchell Richters
3d8bc3294f - Slight cleanup to I_GetInputFrac(). 2022-05-30 20:46:09 +10:00
Christoph Oelckers
6b720f5f6c - fixed: FSkyVertexBuffer::RenderBox did not reset the object color after finishing. 2022-05-29 23:58:52 +02:00
Christoph Oelckers
0dc670da8e - added wipe transitions to screen job
Mainly to have the crossfade, the other styles are mostly bonus.
This also adds proper scoping to the cutscene code, which needs to run in UI scope.
2022-04-25 17:26:17 +02:00
Christoph Oelckers
21b4862460 - Backend update from GZDoom
* music system improvements
* Zip64 support
* fixes for menu scaling on ultrawide screens
* Mac default paths fixed
* lightmap code (not active yet)
2022-04-25 11:13:55 +02:00
Christoph Oelckers
380864d6fb - pass shade values to sky renderer 2022-04-19 14:44:10 +02:00
Christoph Oelckers
6354c1889d - fixed bad search path setup on macOS
This cannot include „Raze“ in the app_support path strings because some of these parts point to elsewhere. The two places where it is needed must be explicit.
2022-04-19 14:02:51 +02:00
Rachael Alexanderson
16c81f0b1f Pull commit eeb67bcec3 from GZDoom: Use RDTSC equivalent on AARCH64. 2022-03-25 14:58:51 -04:00
Rachael Alexanderson
4be214e33d - pull RDTSC for Linux from GZDoom 2022-03-18 04:35:20 -04:00
Rachael Alexanderson
da5d9fcde2 - implement discord rich presence, expand window title code. (still wip) 2022-03-18 04:17:46 -04:00
Rachael Alexanderson
9325f1d536 - replicate commit 28d9fe68ae 2022-02-17 01:15:18 -05:00
Christoph Oelckers
a12093af04 - use full precision math for rotating sectors in Blood. 2022-02-15 22:18:24 +01:00
Rachael Alexanderson
b7cb878ad8 - fix compiling on Linux/et-al 2022-02-01 12:36:26 -05:00
Rachael Alexanderson
cc57914bbf - fully implement uniform cvars 2022-02-01 11:03:39 -05:00
Christoph Oelckers
c27976b2e5 - added script exports for Duke's iterators 2022-01-26 00:16:21 +01:00
Christoph Oelckers
e035ce00b6 - hooked up the compiler extension and the static actor data setup. 2022-01-23 13:03:39 +01:00
Rachael Alexanderson
7b560a3d79 - add debug ccmds for custom shaders 2022-01-20 22:31:31 -05:00
Rachael Alexanderson
85aee83bf8 - backend sync with GZDoom 2022-01-21 01:15:22 +01:00
Rachael Alexanderson
13ca744ef8 - replicate GZDoom commit 12ed24d066 2022-01-21 01:15:22 +01:00
Christoph Oelckers
19d8d65fd0 - split names into common and Raze-specific 2022-01-20 01:11:23 +01:00
Christoph Oelckers
049fc5fb7c - proper maintenance of the depth bias state.
Change state must be combined, not overwritten, or it may miss some needed state changes.
2022-01-13 12:27:40 +01:00
Christoph Oelckers
26e9d33bfa - GCC didn't like this. :( 2022-01-12 00:19:41 +01:00
Christoph Oelckers
44e64a6a12 - backend update from GZDoom.
* GC fix
* better sound range check
* UE model loader license change.
2022-01-11 22:54:37 +01:00
Christoph Oelckers
e5dad53f6d - menu entries for light modes, plus handling of overbright shades. 2022-01-11 00:19:15 +01:00
Christoph Oelckers
98c919fbe4 - g_visibility stuff 2022-01-11 00:12:32 +01:00
Christoph Oelckers
2377b17106 - fixed bad aspect ratio calculation in DStatusBarCore::SetScale 2022-01-10 00:19:39 +01:00
Christoph Oelckers
a3162f6ccf - renamed testnewrenderer CVAR. 2022-01-07 12:49:41 +01:00
Christoph Oelckers
2ac83b733c - SW: clear some pointers before killing actors in TerminateLevel.
KillActor is an in-game function which may produce undefined behavior if being run on a partially deinitialized level.
All actor pointers it may operate upon should be cleared before taking down the actors.cpp
2022-01-02 15:06:57 +01:00
Christoph Oelckers
d0ab13f95a - use GPLv2 in all files dual-licensed with the Doom Source license.
None of this was ever GPLv3, the original id source was released under the GPLv2 so this should be, too.
2022-01-02 12:42:54 +01:00
Christoph Oelckers
46078323ff - backend update from GZDoom, mainly license updates. 2022-01-02 12:24:53 +01:00
Mitchell Richters
9bbb54fe2e - Replace every line that just contains spaces or tabs with an empty line feed in all files except 3rd party libraries. 2021-12-30 20:30:21 +11:00
Christoph Oelckers
69283bfb0c - tabified several Blood source files. 2021-12-30 09:58:47 +01:00
Christoph Oelckers
4f8f85c634 - backend update from GZDoom. 2021-12-30 09:58:46 +01:00
Christoph Oelckers
3be2128b3a - added utilities to read all usermaps into a directory tree 2021-12-30 09:58:08 +01:00
Christoph Oelckers
87a32d9095 Revert "- fixed music lookup for user maps."
This reverts commit 9558e7d518c1d5f7a898fcb2564078bd9ec956ac.
2021-12-30 09:58:08 +01:00
Christoph Oelckers
7204b7c616 - fixed music lookup for user maps.
This was only looking for real files, but instead needs to check the file system. The game directory's content will always be part of that so other checks are counterproductive.
2021-12-30 09:58:07 +01:00
Christoph Oelckers
7bbd4343a8 - renamed all shadowing variables in Duke. 2021-12-30 09:57:33 +01:00
Christoph Oelckers
9e14b168bb - addressed more shadowed variables in common code. 2021-12-30 09:57:32 +01:00
Christoph Oelckers
ca9d73ffee - renamed some shadowing variables in common code. 2021-12-30 09:57:32 +01:00
Christoph Oelckers
e41db411e4 - made TFlags mostly constexpr 2021-12-30 09:56:46 +01:00
Christoph Oelckers
b3873be514 - added some utilities to the Plane class that will be needed soon. 2021-12-30 09:53:07 +01:00
Christoph Oelckers
411e3e6f9c - make SectionGeometry create some data. 2021-12-30 09:53:07 +01:00
Christoph Oelckers
b1bf12df9d - section fixes. 2021-12-30 09:53:06 +01:00
Christoph Oelckers
ad018db80a - new section builder. 2021-12-30 09:53:06 +01:00
Christoph Oelckers
6db1ba47c2 - SW: fixed some savegame issues:
* the saveable tables were initialized too late when reading in the actors.
* the abort messages for the saveables did not show. We need to use I_FatalError here, plus some actor list modifications to make this work.
2021-12-26 23:10:07 +01:00
Mitchell Richters
a4d165a84e - Tidy some specified bound equals destination size warnings from GCC. 2021-12-26 23:10:05 +01:00
Christoph Oelckers
74da3e5fa7 - added savegame support for the new actor management. 2021-12-26 23:10:03 +01:00
Mitchell Richters
38842994e0 - Remove the constructors from TObjPtr class.
They're not used in Raze and were preventing build issues under POSIX environment as you can't use constructor objects in anonymous aggregate types (unnamed structs, etc).
2021-12-26 23:10:02 +01:00
Christoph Oelckers
2d913982da - changed map loader to work without relying on spritetype::sectnum.
All access to this field is done through access functions now.
2021-12-26 23:10:01 +01:00
Christoph Oelckers
8ee5d1b0d7 - activated the garbage collector
This finally gets rid of all static storage for actors - so no more indices ever! :)
2021-12-26 23:10:00 +01:00
Christoph Oelckers
0dd756fa32 - added GC handling for all backend pointers in the map data.
GC is not active yet!
2021-12-26 23:10:00 +01:00
Christoph Oelckers
138690d34e - do not use auto to make local copies of TObjPtr's.
This will just copy the object without performing the read barrier on the source data which is not what we want here.
For these assignments the type must be explicit.
2021-12-26 23:09:59 +01:00
Christoph Oelckers
fa62b20d76 - GC setup for Duke. 2021-12-26 23:09:58 +01:00
Christoph Oelckers
97b19a5cb1 - adapted Blood's sound engine to using actors.
Note: Savegames won't work on this commit for the other games!
2021-12-26 23:09:45 +01:00