Mitchell Richters
790fc0b28a
- Fix most warnings in Clang under Linux.
2023-12-05 22:39:24 +01:00
Mitchell Richters
d2af13b924
- Make some utilities in vectors.h
available as constexpr.
2023-12-05 22:39:18 +01:00
Mitchell Richters
a64de707e0
- Make TRotator<T>
available as constexpr.
2023-12-05 22:39:18 +01:00
Mitchell Richters
4ff3351dd1
- Make TMatrix3x3<T>
available as constexpr.
2023-12-05 22:39:18 +01:00
Mitchell Richters
eae8ebec31
- Make TVector4<T>
available as constexpr.
2023-12-05 22:39:18 +01:00
Mitchell Richters
6b9ec49038
- Make TVector3<T>
available as constexpr.
2023-12-05 22:39:18 +01:00
Mitchell Richters
ad694b7a8c
- Make TVector2<T>
available as constexpr.
2023-12-05 22:39:17 +01:00
Christoph Oelckers
60a36f4902
fix Vectoe3 clamp for real.
2023-12-05 22:39:17 +01:00
Mitchell Richters
e8451d3ddb
- Take better advantage of InputPacket::ang
's FRotator
status.
...
* Change it to a DRotator as that's what the game is expecting. Too many narrowings against DAngle objects needed.
* Utilise object methods where possible.
* Do all math against the object where possible, not its members.
2023-12-05 22:39:13 +01:00
Mitchell Richters
e2a949949c
- Take better advantage of InputPacket::vel
's FVector3
status.
...
* Change it to a DVector3 as that's what the game is expecting. Too many narrowings against DAngle objects needed.
* Utilise object methods where possible.
* Do all math against the object where possible, not its members.
2023-12-05 22:39:12 +01:00
Mitchell Richters
8c1e392afc
- Remove the TVector2 (const TVector3<vec_t> &other)
constructor.
...
* This narrowing constructor was causing a problem with a `clamp()` overload in the next commit.
* Believe this is a product of a by-gone time before we had the `XY()` method on `TVector3<T>` objects.
2023-12-05 22:39:12 +01:00
Christoph Oelckers
cf19d75242
- backend update from GZDoom without adapting other code.
2023-08-19 16:59:05 +02:00
Christoph Oelckers
5eee7b80b1
- backend update from GZDoom.
...
* controller handling improvements
* use stb_sprintf.
* various smaller fixes.
2023-08-09 12:17:17 +02:00
Christoph Oelckers
6aa61e72b5
- backend update from GZDoom.
...
* cleanup on the sound init code.
* added #pragma once in several headers.
* macOS version detection overhaul.
2023-07-22 09:54:00 +02:00
Mitchell Richters
ca4b9c5044
- Slight tidy-up in vectors.h.
2023-02-04 17:05:20 +11:00
Mitchell Richters
67b40ee1d5
- Convert angle in hud_drawsprite()
to work on true degrees, and in the right direction.
2022-12-11 19:46:26 +01:00
Mitchell Richters
59e8821332
- Use the interpolated sine table for tangent instead of Cephis math in TAngle<T>
.
...
* Performed testing and it's ~6.5x faster this way.
2022-12-11 18:41:38 +01:00
Christoph Oelckers
1061e3e2ca
- backend update from GZDoom.
2022-12-04 16:51:44 +01:00
Christoph Oelckers
2ffdf3d0e1
- backend update from GZDoom.
...
Mainly quaternion math and sound system cleanup.
2022-11-24 16:56:46 +01:00
Christoph Oelckers
2290f05dcb
Revert "- Use std::fma()
in the interpolation code."
...
This reverts commit ff7e0afa6f
.
On Visual Studio with precise math, which is our main target this generates a very expensive function call instead of optimized assembly which renders the function's purpose ad absurdum.
2022-11-07 10:36:34 +01:00
Mitchell Richters
ff7e0afa6f
- Use std::fma()
in the interpolation code.
...
* From everything I've read, this more accurate, can be ~5% faster and is heavily optimised on CPUs of the last 10-12 years.
* This homegrown solution can be removed for `std::lerp()` once we go C++20.
2022-11-07 19:28:34 +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
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
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
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
Christoph Oelckers
9f219ce809
- floatified bounce()
2022-10-22 09:34:14 +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
e7f581a4fd
- floatified AngleChase.
2022-10-18 18:34:25 +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
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
03bb820944
- Removed unused variable CamRoll
from TRotator<>
class.
...
* Residual value left behind in be9b25e760
.
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
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
45f37525e0
- minor angle stuff in Blood
2022-10-10 17:31:30 +02:00