Mitchell Richters
274899c9db
- Get rid of useless lerp()
function I added last night for lack of C++20.
...
* We already have a generic linear interpolator that _I_ added, so let's use it.
2022-11-07 17:31:17 +11:00
Mitchell Richters
c8114e7ed0
- Revert change to TAngle<T>
's /
operator that snuck in.
2022-11-07 15:43:00 +11:00
Mitchell Richters
8ec475aec8
- Replace clamped off tangent values with a linear interpolation of the player's pitch.
...
* Gives a tangent-like ramping where it's noticeable without having to use the tangent at all.
* Had to do homegrown lerper since we're not C++20 yet.
2022-11-06 21:59:04 +11:00
Christoph Oelckers
41fc5660e5
- Backend update from GZDoom
...
* IQM enhancements
* config storage in Users
* moving of savegame filename generation to the backend
2022-11-06 11:46:26 +01:00
Christoph Oelckers
a3dbfab54b
- return some invalid but recognizable magic value when IntersectLines is being passed two collinear lines.
...
This actually should check if the two lines are identical but since this is rather expensive and rarely needed it's better handled by returning a distinct value the caller can handle if needed.
2022-10-30 16:51:37 +01:00
Christoph Oelckers
e3254a8546
- fixed an edge case in cansee where an actor placed directly on a two-sided wall would fail to register that wall's back sector.
2022-10-30 16:51:37 +01:00
Christoph Oelckers
98e2fecd37
- another bunch of type conversion warnings fixed.
...
the ones in the findplayer functions are not critical in singleplayer.
2022-10-30 16:51:35 +01:00
Christoph Oelckers
902f8c9706
- silenced lots of warnings for deliberate type conversions.
...
The ones in d_net.cpp are not in active code.
2022-10-30 16:51:35 +01:00
Christoph Oelckers
a4dd5bb4ce
- rewrote the model storage code.
...
Using proper C++ containers now.
2022-10-27 16:55:54 +02:00
Mitchell Richters
75047b6ad5
- Eliminate MulScaleF()
.
2022-10-27 16:55:52 +02:00
Christoph Oelckers
8e9ddf370c
- rewrote getzrange
...
Not using any old Build code anymore. Aside from the trivial stuff this uses code from Doom and SW instead.
2022-10-27 16:55:28 +02:00
Mitchell Richters
bb6e12a2b1
- Eliminate remaining calls to TAngle<T>::fromBuildf()
.
2022-10-25 07:07:03 +02:00
Mitchell Richters
5d8cc1b4fc
- Store all input speed constants as DAngle to avoid calling DAngle::fromDeg()
all the time.
2022-10-25 07:07:02 +02:00
Christoph Oelckers
2fe5655394
- added 'Resized()' to TVector2 and fixed its const state for all vectors.
2022-10-25 07:06:56 +02:00
Christoph Oelckers
0672a1a958
- replaced mapangle(85) with DAngle15.
2022-10-25 07:06:50 +02:00
Christoph Oelckers
861423248f
- Backend update from GZDoom.
...
Mainly fixing CVar setup.
2022-10-25 07:03:25 +02:00
alexey.lysiuk
2df33e7d8a
- removed obsolete defaults from Cocoa backend
...
This legacy code from the time of exclusive fullscreen mode began to crash after changes in console variables handling
2022-10-24 10:26:57 +03:00
Christoph Oelckers
de70e802ec
- downgraded all LGPL3 license headers in the backend to LGPL2.
...
This had already been agreed by all involved authors, but apparently not all files were changed accordingly.
2022-10-23 18:46:17 +02:00
Christoph Oelckers
2991bc752b
- split out the pure math stuff from gamefuncs.h into a utility header in 'common'.
...
Also did a bit of reshuffling on gamefuncs.h to group content better.
2022-10-22 20:41:26 +02:00
Christoph Oelckers
243c071834
- got rid of bsinf and bcosf.
2022-10-22 12:17:04 +02:00
Christoph Oelckers
0501482160
- added missing distance check for sprites to hitscan.
2022-10-22 12:17:03 +02:00
Mitchell Richters
8e851c8b00
- Blood: Initial pass at floatifying actFloorBounceVector()
.
...
* Direct translation of the original code.
2022-10-22 12:16:58 +02:00
Mitchell Richters
6efe565f7c
- Blood: Floatified vector addition in ConcussSprite()
.
2022-10-22 12:16:57 +02:00
Christoph Oelckers
04e98f2f77
- avoid inflation of random functions.
2022-10-22 12:16:56 +02:00
Christoph Oelckers
9f219ce809
- floatified bounce()
2022-10-22 09:34:14 +02:00
Christoph Oelckers
1111251887
type safe CVAR declaration.
2022-10-22 09:25:27 +02:00
Mitchell Richters
70b6aa848f
- Clean up the availability detection of kdialog
and gxmessage
in POSIX sources.
...
* Both `kdialog` and `gxmessage` are not core components of the KDE or GNOME desktop environments.
* The environment variable `GNOME_DESKTOP_SESSION_ID` has been deprecated for nearly a decade.
* Systems like Steam Deck are shipping with stripped down DEs where these environment variables were set, but without the associated binaries.
2022-10-22 13:51:27 +11:00
Mitchell Richters
3f9a2a2103
- Don't copy delayed events in D_ProcessEvents()
, instead store the current pointer.
2022-10-22 13:51:23 +11:00
Christoph Oelckers
479616a80f
- got new CVar system from GZDoom.
2022-10-22 00:12:17 +02:00
Christoph Oelckers
1a597c4e0b
- fixed and floatified chickenarrow.
2022-10-21 00:00:02 +02:00
Christoph Oelckers
3352783be2
- added a Sum function to TVector familiy
...
Duke uses this kind of distance check quite a lot so it makes sense to add it to the vectors.
2022-10-21 00:00:02 +02:00
Christoph Oelckers
5eb9af1e00
- Backend update from GZDoom
...
IQM model support and a few bugfixes.
2022-10-20 22:24:25 +02:00
Christoph Oelckers
50a9ca49f3
- floatified player_struct::hitang
2022-10-20 00:33:31 +02:00
Christoph Oelckers
c51a71ed94
- made some changes to let the engine start up with ASAN enabled on MSVC.
2022-10-19 18:01:28 +02:00
Mitchell Richters
bdc6a5cf69
- Remove fudging from I_GetInputFrac()
and correct getPushBuild()
.
2022-10-18 19:52:02 +02:00
Christoph Oelckers
e7f581a4fd
- floatified AngleChase.
2022-10-18 18:34:25 +02:00
Christoph Oelckers
9d8f06612f
- floatified MoveSector
2022-10-18 18:34:25 +02:00
Christoph Oelckers
31eb2e5f10
- fixed: Arrays serialized as array elements may not skip their serialization if their content are all zero.
2022-10-16 23:47:18 +02:00
Christoph Oelckers
7f3c5ae18d
- added a 'dot' function to DVector2 because using the '|' operator is not intuitive.
2022-10-15 17:52:07 +02:00
Mitchell Richters
acee39ad68
- Restore a dedicated interpolatedvalue()
overload just for angles, which need special treatment.
2022-10-15 13:32:03 +02:00
Mitchell Richters
74167e1a7c
- Remove interpolators for TVector and TAngle objects, replacing with single generic version.
2022-10-15 13:32:01 +02:00
Christoph Oelckers
2b5422cc53
- floatified USER::goalAng
2022-10-15 13:32:00 +02:00
Christoph Oelckers
45690a0e23
- cleanup of the DrawLine interface,
2022-10-15 12:10:46 +02:00
Christoph Oelckers
62ba753585
- remove vel clear wrappers
2022-10-15 10:15:21 +02:00
Christoph Oelckers
e361abb96d
- added some utilities
2022-10-14 23:55:32 +02:00
Mitchell Richters
7cef3ac655
- Restore non-vector F2DDrawer::AddLine()
and F2DDrawer::AddThickLine()
interfaces.
2022-10-14 23:55:31 +02:00
Christoph Oelckers
09b31afd40
- movieplayer update from GZDoom.
2022-10-14 20:20:06 +02:00
Christoph Oelckers
5a580c145e
- Backend update from GZDoom.
2022-10-14 20:19:48 +02:00
Christoph Oelckers
972df67d92
- sound system update from GZDoom.
2022-10-14 19:58:39 +02:00
Mitchell Richters
03bb820944
- Removed unused variable CamRoll
from TRotator<>
class.
...
* Residual value left behind in be9b25e760
.
2022-10-14 18:19:04 +02:00
Mitchell Richters
d63fb33dd0
- Pass DVector2
objects directly through to F2DDrawer::AddLine()
and F2DDrawer::AddThickLine()
.
...
* Since all the external code calling through to these methods are built on vectors, makes sense to pass them around by reference.
2022-10-14 18:19:04 +02:00
Mitchell Richters
d9f8ac4d2a
- Convert automap's follow_x
/follow_y
variables into a proper vector.
...
* Should have done this from the start, but anyhow...
2022-10-14 18:13:49 +02:00
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