Christoph Oelckers
f51cbf31ba
- sectp in runlist_ProcessSectorTag
2021-11-08 18:37:20 +01:00
Christoph Oelckers
afec39aded
- reworked non-functional anim detection when picking up an item.
...
This would not unregister the item's run list entries because the logic was insufficient.
2021-11-08 01:13:54 +01:00
Christoph Oelckers
43fdc1bb56
- Exhumed: fixed uninitialized variable in bullet code.
2021-11-07 23:33:39 +01:00
Christoph Oelckers
5d0c9a9fc8
- flush the network timer righr after loading and before starting a level.
...
Without this the entire load time may get registered as skipped frames-
2021-11-07 22:51:02 +01:00
Christoph Oelckers
0da2250efe
- Exhumed: try to improve timing of the menu plasma.
2021-11-07 22:14:58 +01:00
Christoph Oelckers
60faceaf59
- Exhumed: fixed serialization.
...
The exhumedActors array was not written out, resulting in all kinds of strange effects.
2021-11-07 21:45:51 +01:00
Christoph Oelckers
6b6c3f26a5
- use wallsofsector in a few more places.
2021-11-07 18:08:22 +01:00
Christoph Oelckers
59df3b0e19
- added a little utility that allows iterating over the walls of a sector with C++ for's.
2021-11-07 17:27:05 +01:00
Christoph Oelckers
4b0ffe5443
- looks I missed a few shorts.
...
Now all local short variables are gone, except for 2 lotags arrays.
2021-11-07 16:58:48 +01:00
Christoph Oelckers
ae08ae1d8d
- some leftover shorts plus utilities that ended up unused but may be useful later.
2021-11-07 16:46:23 +01:00
Christoph Oelckers
35b9318580
- Duke/RR: checked the rest of the code for shorts and replaced most local ones with ints.
2021-11-07 16:33:13 +01:00
Christoph Oelckers
3a73a9f8ed
- Duke/RR: replaced more local short variables with ints.
2021-11-07 16:30:56 +01:00
Christoph Oelckers
98f57a7ad4
- use explicitly sized types for static const arrays.
2021-11-07 16:30:56 +01:00
Christoph Oelckers
fd2764dc6e
- Duke: eliminated all local short variables in actors*.cpp.
2021-11-07 16:30:55 +01:00
Christoph Oelckers
9b2b34a026
- removed a few unneeded type casts.
2021-11-07 16:30:55 +01:00
Christoph Oelckers
15be44a931
- use explicitly sized types for static const arrays.
2021-11-07 16:30:55 +01:00
Christoph Oelckers
1eeb8864a4
- Duke/RR: eliminated all uses of 'char' outside of text management
2021-11-07 16:30:55 +01:00
Christoph Oelckers
e2faeec2ce
renamed all signed and unsigned chars to int8_t/uint8_t.
2021-11-07 16:30:55 +01:00
Christoph Oelckers
0eba3335c6
- eliminated some leftover 16 bit values used for storing indices.
2021-11-07 16:30:44 +01:00
Christoph Oelckers
977d668bef
- extended animatetarget to 32 bit.
2021-11-07 16:21:44 +01:00
Christoph Oelckers
f95af3368b
- use ints in hitscan wrapper as well.
2021-11-07 16:20:59 +01:00
Christoph Oelckers
de7a06bea4
- Duke: extended neartag wrapper to use 32 bit integers as return values.
2021-11-07 16:20:59 +01:00
Christoph Oelckers
887279f8a5
- RR: Use int instead of short in bowling functions.
2021-11-07 16:20:59 +01:00
Christoph Oelckers
b13398c268
- quick global wall[] replacements.
2021-11-07 15:57:29 +01:00
Christoph Oelckers
a594e6465c
- added nextSector access function to walltype and used it to eliminate a few more sector[] references.
2021-11-07 15:56:29 +01:00
Christoph Oelckers
0c64560fd8
- Duke: wall[] replacement in script code.
2021-11-07 15:00:08 +01:00
Christoph Oelckers
c8c8ca05d3
- Duke: sector[] handled in one more premap loop.
2021-11-07 15:00:08 +01:00
Christoph Oelckers
5eed73f7af
- Duke/RR: sector[] replacement in spawn code.
2021-11-07 15:00:08 +01:00
Christoph Oelckers
ca5a014a2d
- Duke: a few more sector[] replacements in precaching code.
2021-11-07 15:00:08 +01:00
Christoph Oelckers
2c1881530a
- Duke: use a sector pointer in spawneffector.
2021-11-07 15:00:07 +01:00
Christoph Oelckers
c068054fa0
- RR: most sector[] accesses replaced by pointers in actors_r.cpp.
2021-11-07 15:00:07 +01:00
Christoph Oelckers
7749bcbedf
- Duke: clean up actors_lava.cpp.
...
Use sector pointer variables and extend all arrays holding sector indices to 32 bit.
2021-11-07 15:00:07 +01:00
Christoph Oelckers
e0f3fa2aa0
-Duke: replaced sector array accesses in actors_d.cpp.
2021-11-07 15:00:07 +01:00
Christoph Oelckers
8c5e4a7fa9
- Duke: a large batch of quick'n easy sector[] replacements with pointers.
2021-11-07 15:00:07 +01:00
Christoph Oelckers
d45f687d4b
- pass a sector pointer to floorspace/ceilingspace.
2021-11-07 15:00:06 +01:00
Christoph Oelckers
060da8ec1d
- Duke: replaced most sector array accesses with pointers in actors.cpp.
...
This already helped to find one 16 bit value that stored a sector index.
2021-11-07 15:00:06 +01:00
Mitch Richters
bc9ea38aba
- Duke: Fix issue where calculated value for old player variable return_to_center
could have been negative, causing undefined behaviour.
2021-11-07 21:14:29 +11:00
Mitch Richters
bb20827027
- processMovement()
: Fix prescaling for Exhumed when using mouse or controller.
...
* Controller input before was too fast compared to other games, now it's 1:1.
* Mouse input when used without mouse look was too slow, now it's also 1:1 with the other games.
* `hid` in the context of `hidprescale` refers to 'Human Interface Device'.
2021-11-07 18:32:02 +11:00
Mitch Richters
b27f5e3be0
- gameinput.cpp/h: Internalise if statements used before calling PlayerHorizon
and PlayerAngle
class method scaletozero()
into method itself.
2021-11-07 18:25:37 +11:00
Mitch Richters
72531e61db
- gameinput.cpp/h: Consolidate all the return to zero code for angles and horizons into class members, using technique from horizoff
as basis.
2021-11-07 11:37:12 +11:00
Christoph Oelckers
9a1c80c464
- Duke: added a wrapper for player_struct::cursectnum to directly return the sector pointer.
...
This eliminates more than 10% of the existing direct references to the sector[] array.
2021-11-06 21:59:42 +01:00
Christoph Oelckers
c3cbd1b1eb
- Duke: cleanup of cycler code.
...
Now uses a struct instead of an array with magic indices.
2021-11-06 21:53:15 +01:00
Christoph Oelckers
1c0e3d849b
- addressed the updatesector related deprecation warnings with Duke.
2021-11-06 20:46:08 +01:00
Christoph Oelckers
d20aa47adf
- made sector parameter of updatesectorz an int and deprecated the short version.
2021-11-06 19:27:51 +01:00
Christoph Oelckers
13306e900d
- silence some warnings.
2021-11-06 18:26:47 +01:00
Christoph Oelckers
e69e1b9908
- some ?vel replacements.
2021-11-06 18:16:18 +01:00
Christoph Oelckers
cce3d8f440
- some minor stuff
2021-11-06 18:14:39 +01:00
Christoph Oelckers
41316f7f8f
- evSend
2021-11-06 18:14:08 +01:00
Christoph Oelckers
b8f8c0fe04
- more changesprite* renaming.
2021-11-06 18:13:16 +01:00
Christoph Oelckers
1bbcca5f28
- nnExtInitModernStuff
2021-11-06 17:21:08 +01:00
Christoph Oelckers
a184d919b8
- brace placement part taken out of following commit.
2021-11-06 17:19:24 +01:00
Christoph Oelckers
5f56423e88
- nnExtEraseModernStuff
2021-11-06 17:19:24 +01:00
Christoph Oelckers
9a1bcdbc84
- let's hope this works better.
...
CI complained about the iterator but the messages were very unclear about the problem.
2021-11-06 17:18:07 +01:00
Christoph Oelckers
6a96d6c354
- nnExtIsImmune
2021-11-06 17:00:52 +01:00
Christoph Oelckers
6846b50a21
- nnExtSpawnDude
2021-11-06 16:57:24 +01:00
Christoph Oelckers
5ee7505d11
- proper handling of actors in TRCONDITION.
2021-11-06 16:55:27 +01:00
Christoph Oelckers
19363ac23e
- project contortions to make MSVC print our own deprecations but silence the ones from the compiler.
...
Since everything uses the same warning number, the old setup resulted in [[deprecated]] being silenced.
So this explicitly adds the needed #defines to silence the very noisy warning from the MSVC headers but leaves warning 4996 active otherwise.
In particlular this does:
* silence all warnings in the subprojects
* do not derive TIterator from std::iterator anymore as C++17 deprecates this.
* silence the above for RapidJSON because altering that code is not desirable.
* explicitly disable warning 4996 in some Windows files that call the deprecated (but still needed) GetVersionEx function.
* define _CRT_SECURE_NO_DEPRECATE, _CRT_SECURE_NO_WARNINGS and _CRT_NONSTDC_NO_WARNINGS through CMake to disable the CRT's deprecation and security warnings.
Currently this will print several (intended) deprecation warnings about 'updatesector' that point to code that needs to be changed but cannot yet without other refactorings being done first.
2021-11-06 16:48:31 +01:00
Christoph Oelckers
83fe41e71e
- made updatesector receive a 32 bit int pointer and deprecated the 16 bit variant.
2021-11-06 15:53:16 +01:00
Christoph Oelckers
f2adeff8c1
- Duke: extended 3 arrays holding sector and wall indices to full ints.
...
Just to be prepared for the future.
2021-11-06 14:22:16 +01:00
Christoph Oelckers
f4cc5b5b89
- Duke: const-ify SE24 tile lists
2021-11-06 14:19:55 +01:00
Christoph Oelckers
c8d65a1f06
- use sector wrappers where easily doable with search and replace.
2021-11-06 14:19:55 +01:00
Christoph Oelckers
ba2d4acc18
- added a sector() method to spritetype.
...
For making game code working with sectors a bit easier to read.
2021-11-06 14:19:55 +01:00
Christoph Oelckers
9e4afd543c
- Duke/RR: Some quick wall[] replacements.
2021-11-06 14:19:55 +01:00
Christoph Oelckers
b548d9eca2
- a few more quick sector[] replacements.
2021-11-06 14:19:55 +01:00
Christoph Oelckers
bc56b5a28f
- RR: cleaned up STAT_DESTRUCT init code a bit
2021-11-06 14:19:54 +01:00
Christoph Oelckers
8818a3f1cb
- Duke: added a getSector method to DDukeActor.
2021-11-06 14:19:54 +01:00
Mitch Richters
a2a75fccc2
- Add support for Duke Nukem's Penthouse Paradise as shipped with the Zoom release of Duke Nukem 3D Atomic.
2021-11-06 23:26:56 +11:00
Mitch Richters
8cf115c444
- searchpaths.cpp: Patch in registry detection for Duke 3D Atomic + Expansions from Zoom on Windows.
...
* Fixes #567 .
2021-11-06 22:59:56 +11:00
Mitch Richters
8f37097e1b
- Exhumed: Revert change from edf54b4b0a
that wasn't meant to be committed.
2021-11-06 19:54:12 +11:00
Mitch Richters
edf54b4b0a
- Exhumed: Remove some dead input code that isn't in any usage.
2021-11-06 19:44:59 +11:00
Mitch Richters
3778327818
- Duke: Back up rotscrnang
if script sets target to new value so we can interpolate the changes.
2021-11-06 17:57:37 +11:00
Mitch Richters
5050947dca
- PlayerAngle::applyinput()
: Consolidate some mostly duplicated code into a lambda.
2021-11-06 17:57:00 +11:00
Mitch Richters
1bb0c04e61
Revert "- Blood: Add mechanism to be able to force QAV interpolation based on picnum for testing purposes and not for end-user usage."
...
This reverts commit 276c000f9f
.
* This was added for testing/debugging etc but it really doesn't work unless the QAV is built for it. As such, just get rid of it.
2021-11-06 17:32:55 +11:00
Mitch Richters
ed67d5d395
- PlayerHorizon::applyinput()
: Only run through all the horizon to pitch and back code if we have input to process.
2021-11-06 15:34:10 +11:00
Mitch Richters
8bd2b960ee
- Blood: Consolidate duplicated code in viewUpdateShake()
into a lambda.
2021-11-06 15:14:25 +11:00
Mitch Richters
5f8c8fe0a4
- PlayerHorizon::applyinput()
: Consolidate some mostly duplicated code into a lambda.
2021-11-06 15:07:28 +11:00
Mitch Richters
7499c84d0b
- Add interpolatedhorizon()
inlines to handle interpolating fixedhoriz
objects without having to convert old and new values back to Q16.16 first.
2021-11-06 14:07:58 +11:00
Mitch Richters
5ec5321034
- gameinput.h/cpp: Abstract the angle/horizon adjustment math into a few inlines to avoid repetition and having to cast enums as doubles for C++20 compliance.
2021-11-06 14:07:53 +11:00
Mitch Richters
4c02663842
- PlayerAngle::applyinput()
: Re-add addition of +/- 1. when returning rotscrnang to 0 lost long, long ago.
2021-11-06 14:07:36 +11:00
Mitch Richters
ab99b6b29d
- PlayerHorizon::calcviewpitch()
: Make returning horizoff
to 0 speed uniform across all games.
2021-11-06 13:31:29 +11:00
Mitch Richters
91f6b2954c
- binangle
class: Tidy up missed C++20 warning fixed about enum used in floating-point arithmetic.
2021-11-06 10:27:04 +11:00
Mitch Richters
0eb4ff4ad2
- PlayerHorizon::calcviewpitch()
: Provide commentary on how numeric literals used in function came to be and place into an enum for clarity.
2021-11-06 10:27:00 +11:00
Mitch Richters
1df2ba80ed
- PlayerAngle::applyinput()
: Provide commentary on how numeric literals used in rotscrnang/look_ang/spin math came to be and place into an enum for clarity.
2021-11-06 10:26:54 +11:00
Mitch Richters
8e8dfa9f9a
- PlayerHorizon::applyinput()
: Provide commentary on how numeric literals used in aim/look up/down and return to centre math came to be and place into an enum for clarity.
2021-11-06 09:30:03 +11:00
Mitch Richters
c424f7c8dd
- processMovement()
. Remove cl_exhumedoldturn
CVAR and tidy up numeric literals in use.
...
* In our older codebase before the input code was refactored, Exhumed's turning was broken and was only applying the base factor of 12, significantly slower than the other games.
* Upon doing some testing in PCExhumed, I noticed their turning was faster as when the counter meets its target, the turn value is shifted left by 2, effectively making it 48: b90417ed8e/source/exhumed/src/player.cpp (L336-L337)
* Removed this CVAR because of this.
* Reworked turning code so that pressing left+right together cancel each other out and that pressing both doesn't call `updateTurnHeldAmt(scaleAdjust)` twice.
* Redid turn averages factoring in Exhumed's speeds, rounded off values and stored in an enum for clarity.
2021-11-06 09:28:47 +11:00
Christoph Oelckers
389f760d45
- address C++20 deprecation warnings with enums in floating point arithmetic.
2021-11-02 23:32:31 +01:00
Mitch Richters
59850fa768
- SW: When adjusting horizon in DoPlayerDeathHoriz()
, just use integer horizon values and not Q16.16.
2021-11-02 10:29:31 +11:00
Mitch Richters
523285b9b0
- Duke (RR): Clean up some unnecessary FixedToFloat()
usage with the fixedhoriz
asbuildf()
method.
2021-11-02 10:29:26 +11:00
Christoph Oelckers
86166f5e67
Revert "- xs_Float.h
: Make all inlines return an unsigned value, and change previous unsigned inlines to signed."
...
Revert "- `xs_Float.h`: Add `getint()` getter to `_xs_doubleints` struct."
Revert "- SW: When adjusting horizon in `DoPlayerDeathHoriz()`, just use integer horizon values and not Q16.16."
Revert "- Duke (RR): Clean up some unnecessary `FixedToFloat()` usage with the `fixedhoriz` `asbuildf()` method."
Revert "- `binaryangle.h`: Use `constexpr` on inline functions where it was previously not possible to do so."
Revert "- `m_fixed.h`: Use `constexpr` on inline functions where it was previously not possible to do so."
Revert "- `xs_Float.h`: Convert header to `constexpr`."
This does nor work as it violates the constexpr rules for unions. The code will error out on compilation for accessing an inactive member of a union.
2021-11-01 20:25:38 +01:00
Mitch Richters
d9bbe1fa61
- xs_Float.h
: Make all inlines return an unsigned value, and change previous unsigned inlines to signed.
...
* Removes situations where calling `xs_CRoundToUInt()` and other unsigned inlines would go through extra casts (`uint32_t` > `int32_t` > `uint32_t`).
* Because the native data in the `_xs_doubleints` struct is a union of a double and `uint32_t`, it makes sense to do everything unsigned and convert to `int32_t` if needed instead.
2021-11-01 23:57:40 +11:00
Mitch Richters
d1274e76dc
- xs_Float.h
: Add getint()
getter to _xs_doubleints
struct.
2021-11-01 23:42:49 +11:00
Mitch Richters
3e25637385
- SW: When adjusting horizon in DoPlayerDeathHoriz()
, just use integer horizon values and not Q16.16.
2021-11-01 23:37:32 +11:00
Mitch Richters
1363ed654c
- Duke (RR): Clean up some unnecessary FixedToFloat()
usage with the fixedhoriz
asbuildf()
method.
2021-11-01 23:37:32 +11:00
Mitch Richters
f3a2de92a4
- binaryangle.h
: Use constexpr
on inline functions where it was previously not possible to do so.
2021-11-01 23:37:31 +11:00
Mitch Richters
306c0a3ebb
- m_fixed.h
: Use constexpr
on inline functions where it was previously not possible to do so.
2021-11-01 23:37:31 +11:00
Mitch Richters
a84aa84838
- xs_Float.h
: Convert header to constexpr
.
...
* Allow use of this library in static initialisers.
* Required re-arranging a little bit to order everything so inlines could be used without prototypes.
2021-11-01 23:37:31 +11:00
Mitch Richters
eb8b075727
- binaryangle.h
: Change binangle
bitshift operators to operate on signed value to properly handle angles > 1024.
2021-11-01 22:13:39 +11:00
Mitch Richters
a1570c185f
- Duke: Remove posx
/posy
/posz
variables and replace with points in the previously unionised pos
vec3_t
variable.
2021-10-31 17:52:52 +11:00
Mitch Richters
6ca6d5639b
- SW: Fix horizon of camera screens originating from changes in 09a05f354c
.
2021-10-31 11:06:13 +11:00
Mitch Richters
9495b9e6d0
- SW: Interpolate the player's weapon recoil.
...
* Reported as missing by @nashmuhandes.
2021-10-31 08:53:26 +11:00