Commit graph

8892 commits

Author SHA1 Message Date
Christoph Oelckers
5ff17fec35 - patrolalarm 2021-11-29 00:53:46 +01:00
Christoph Oelckers
ffdb976f5b - marker stuff. 2021-11-29 00:53:46 +01:00
Christoph Oelckers
af7164c91d - partial rework of aiPatrolSetMarker 2021-11-29 00:53:45 +01:00
Christoph Oelckers
f8a4ecc90f - findNextMarker + markerIsNode 2021-11-29 00:53:45 +01:00
Christoph Oelckers
a76f2feb63 - aiPatrolStop API changed to actors. 2021-11-29 00:53:45 +01:00
Christoph Oelckers
7175439496 - aiPatrolStop cleaned up. 2021-11-29 00:53:45 +01:00
Christoph Oelckers
5c1b2bee37 - minor cleanup. 2021-11-29 00:53:45 +01:00
Christoph Oelckers
e11f118d3c - formatting 2021-11-29 00:53:45 +01:00
Christoph Oelckers
2f5be23171 - validate actors before processing them in the event queue. 2021-11-29 00:53:44 +01:00
Christoph Oelckers
118b3e1d70 - all calls to CheckSpriteSect/Stat handled. 2021-11-29 00:53:44 +01:00
Christoph Oelckers
48073a2cd6 - sanitized the abuse of using XSPRITE's target field to pass along some info with explosions.
This is neither safe nor future proof, so now it uses a separate variable.
2021-11-29 00:53:44 +01:00
Christoph Oelckers
146de69169 - some more patrol code. 2021-11-29 00:53:44 +01:00
Christoph Oelckers
4ae32fb223 - first part of patrol code. 2021-11-29 00:53:44 +01:00
Christoph Oelckers
2044f591f2 - formatting and cleanup. 2021-11-29 00:53:43 +01:00
Christoph Oelckers
3928407eae - several is...() functions. 2021-11-29 00:53:43 +01:00
Christoph Oelckers
49879af921 - usePictureChanger 2021-11-29 00:53:43 +01:00
Christoph Oelckers
088fa6690c - reformatting only. 2021-11-29 00:53:43 +01:00
Christoph Oelckers
94ae3c22d5 - final part and cleanup of useTargetChanger. 2021-11-29 00:53:43 +01:00
Christoph Oelckers
6c465dff3c - the fourth block 2021-11-29 00:53:42 +01:00
Christoph Oelckers
dc4c632b08 - the third block. 2021-11-29 00:53:42 +01:00
Christoph Oelckers
ff29570675 - second block. 2021-11-29 00:53:42 +01:00
Christoph Oelckers
c3a1e8f46b - targetactor in the first block of useTargetChanger 2021-11-29 00:53:42 +01:00
Christoph Oelckers
17bd466801 - first pass over useTargetChanger
using 'actor' wherever easily doable.
2021-11-29 00:53:42 +01:00
Christoph Oelckers
d59f78a5f0 - formatting only 2021-11-29 00:53:41 +01:00
Christoph Oelckers
a60617c688 - more use* functions. 2021-11-29 00:53:41 +01:00
Christoph Oelckers
c54dd079fb - formatting only. 2021-11-29 00:53:41 +01:00
Christoph Oelckers
e3b8980ecd - sprite2sectorSlope + useSlopeChanger 2021-11-29 00:53:41 +01:00
Christoph Oelckers
b7465ab67b - spriteGetSlope/spriteSetSlope take spritetype pointer arguments. 2021-11-29 00:53:41 +01:00
Christoph Oelckers
c32ff483a9 - formatting only 2021-11-29 00:53:41 +01:00
Christoph Oelckers
ca131f2dcf - fixed a few oversights. 2021-11-29 00:53:40 +01:00
Christoph Oelckers
c2f6084988 - merged genDudeExtra into DBloodActor. 2021-11-29 00:53:40 +01:00
Christoph Oelckers
017bcb056f - useIncDecGen + setDataValueOfObject 2021-11-29 00:53:40 +01:00
Christoph Oelckers
ab41ac9e05 - formatting only. 2021-11-29 00:53:40 +01:00
Christoph Oelckers
239faad4c5 - useSoundGen 2021-11-29 00:53:39 +01:00
Christoph Oelckers
a8ee9b3969 - useUniMissileGen 2021-11-29 00:53:39 +01:00
Christoph Oelckers
c65c936d27 - useCondition + 2021-11-29 00:53:39 +01:00
Christoph Oelckers
24a11b3f2f - txIsRanged and several of its callers. 2021-11-29 00:53:39 +01:00
Christoph Oelckers
174783e57b - formatting only 2021-11-29 00:53:39 +01:00
Christoph Oelckers
a4f7fabbfa - modernTypeOperateSprite 2021-11-29 00:53:39 +01:00
Christoph Oelckers
fe3da5eaab - split off formatting 2021-11-29 00:53:38 +01:00
Christoph Oelckers
766999118c - sectorKillSounds + useDudeSpawn 2021-11-29 00:53:38 +01:00
Christoph Oelckers
3761424501 - the remaining AIFight stuff. 2021-11-29 00:53:38 +01:00
Christoph Oelckers
a5471b1079 - aiFightDudeIsAffected + aiFightGetDudesForBattle 2021-11-29 00:53:38 +01:00
Christoph Oelckers
55716c9409 - aiFightGet(Fine)TargetDist 2021-11-29 00:53:38 +01:00
Christoph Oelckers
baf4bb0785 - formatting only. 2021-11-29 00:53:37 +01:00
Christoph Oelckers
57c3571555 - several aiFight functions. 2021-11-29 00:53:37 +01:00
Christoph Oelckers
ca3d7c9bdf - formatting only 2021-11-29 00:53:37 +01:00
Christoph Oelckers
78cbb4ed0a - aiFightGetTargetInRange 2021-11-29 00:53:37 +01:00
Christoph Oelckers
a449d97b86 - modernTypeTrigger 2021-11-29 00:53:37 +01:00
Christoph Oelckers
ea8166871a - formatting only. 2021-11-29 00:53:36 +01:00
Christoph Oelckers
43e9e07910 - 2 modernType functions. 2021-11-29 00:53:36 +01:00
Christoph Oelckers
1ff6dc7c69 - useSeqSpawnerGen 2021-11-29 00:53:36 +01:00
Christoph Oelckers
c59a6bbb86 - clean up some loops 2021-11-29 00:53:36 +01:00
Christoph Oelckers
9714febaab - eliminated the actPostSprite wrapper with an index parameter. 2021-11-29 00:53:36 +01:00
Christoph Oelckers
e0f1948ccc - wrapped all setsprite calls in Blood and adapted a few leftover uses of the index version of actPostSprite. 2021-11-29 00:53:35 +01:00
Christoph Oelckers
5cda9d0858 - tabified two files in Duke that were missed somehow, plus some comment cleanup elsewhere. 2021-11-29 00:53:35 +01:00
Christoph Oelckers
b54d3f3567 - useSpriteDamager + damageSprite 2021-11-29 00:53:35 +01:00
Christoph Oelckers
1689efe698 - useEffectGen + useSectorWindGen 2021-11-29 00:53:35 +01:00
Christoph Oelckers
1847b905ba - useTeleportTarget 2021-11-29 00:53:35 +01:00
Christoph Oelckers
f21dc51207 - usePropertiesChanger 2021-11-29 00:53:34 +01:00
Christoph Oelckers
cd98e940aa - useObjResizer 2021-11-29 00:53:34 +01:00
Christoph Oelckers
63ae861765 - DropVoodooCb 2021-11-29 00:53:34 +01:00
Christoph Oelckers
be9e423d7c - trPlayer* functions. 2021-11-29 00:53:34 +01:00
Christoph Oelckers
470f82bc26 - Blood: fixed loading of actors with extended AI states. 2021-11-29 00:51:35 +01:00
Christoph Oelckers
b7c7328cdd - backend update fromGZDoom.
most importantly this addresses issues with key down/key up events being sent in the same tic not having an effect on game actions that require a key being held down.
2021-11-21 10:19:52 +01:00
Mitch Richters
1228cb6044 - InputState::AddEvent(): Partially revert changes performed in 4d629e7de8 that were believed not necessary. This functionality is still needed in some of Exhumed's cutscenes that are performed in-engine and not as a screenjob. 2021-11-19 08:11:32 +11:00
Mitch Richters
4d629e7de8 - Make screenjob valid keys for skipping ignore the Alt key as its used for modifiers, and special keys like the screenshot bind.
* Partially revert 8bb13bc4c2 as its changes are no longer needed.
* Partially revert 9e40e49c2c as its changes are no longer needed.
* Fixes #577.
2021-11-18 20:59:07 +11:00
Mitch Richters
719724da53 - Ensure g_nextskill is re-initialised everytime a save is loaded.
* Fixes #582.
2021-11-18 20:06:33 +11:00
Christoph Oelckers
aac02d52db - Duke/RR: fixed hitradius
The recent optimization did not update the sector pointer inside the loop
2021-11-15 00:18:52 +01:00
Christoph Oelckers
dc1d97b6bd - SW: fix bad return value in QueueWallBlood.
Had been known for some time, it just wasn't unclear if this is bad.
Now I was able to confirm that this is indeed bad and can cause crashes.
2021-11-13 19:30:16 +01:00
Christoph Oelckers
5732bb2db3 - Blood: fixed loading of maps with tracking conditions.
These use a pointer in the DBloodActor structure, but this part wasn't cleared for sprites loaded with the map.

# Conflicts:
#	source/games/blood/src/nnexts.cpp
2021-11-13 13:55:25 +01:00
Christoph Oelckers
01deb13694 - SW: fixed NORM_xxx macros
kHitIndexMask already has the -1 considered, it is 0x3fff.
2021-11-12 11:09:24 +01:00
Christoph Oelckers
401f3cf1d7 - Blood: removed unused CSectorListMgr class. 2021-11-11 23:48:19 +01:00
Christoph Oelckers
9b21233c98 - little bit of cleanup 2021-11-11 23:47:26 +01:00
Christoph Oelckers
5a6d4f88d5 - Exhumed: eliminate all remaining MAXSECTORS references 2021-11-11 23:46:50 +01:00
Christoph Oelckers
794c4483ca -Exhumed: better handling of BuildNear/BelowNear.
BuildNear was only called right before calling BelowNear - now both functions are merged and use the global GlobalSectorList array for storage.
Since the data in this is local to this function it is also unnecessary to write it out to a savegame as it will get recereate each time before it is used.
2021-11-11 23:45:59 +01:00
Christoph Oelckers
d70e76e5c6 - Exhumed: use dynamic arrays for the palette backup in DrawView. 2021-11-11 23:34:03 +01:00
Christoph Oelckers
2e3c212444 - Duke: moved the temtempsector* arrays into the only function using them 2021-11-11 23:32:49 +01:00
Christoph Oelckers
8f19dc12d8 - SW: code/data pointer saving cleanup.
* a large number of code pointer records were removed because none of these functions ever gets assigned to a pointer
* instead of looking up entries by index, do it by name. This is far less fragile and will survive deeper refactoring. The old storage by table index will break as soon as a single entry gets removed.

Since the old savegames got broken due to this problem recently it was a good time to change the setup.
2021-11-11 23:28:28 +01:00
Christoph Oelckers
f109f6c857 - Duke/RR: fixed two bad assignments to wall 0. 2021-11-11 21:58:15 +01:00
Christoph Oelckers
2164d244d2 - SW: removed 3 unused global arrays. 2021-11-11 21:58:14 +01:00
Christoph Oelckers
25a6774540 - SW: got rid of MAXWALLS.
Only places left are declarations of global arrays.
2021-11-11 21:58:14 +01:00
Christoph Oelckers
b6579809ad - SW: eliminated all remaining MAXSECTORS references, except static array declarations. 2021-11-11 21:58:14 +01:00
Christoph Oelckers
75e2d801a7 - SW: only check valid sectors for SecUser entries. 2021-11-11 21:58:14 +01:00
Christoph Oelckers
6bd239c5b7 - SW: use the global sector list in PreMapCombineFloors 2021-11-11 21:58:14 +01:00
Christoph Oelckers
a79f7a3784 - SW: use a dynamic array to track already visited sectors in TraverseBreakableWalls. 2021-11-11 21:57:55 +01:00
Christoph Oelckers
cc16c02baa - fixed BitArray constructor. 2021-11-11 21:55:46 +01:00
Christoph Oelckers
642088ed80 - let ValidateSprite print better messages when developer mode is set to warning and also call it for Blood. 2021-11-11 21:28:53 +01:00
Christoph Oelckers
f2e344a235 - removed magic flags added to sector indices in Polymost.
These are better done as separate function arguments.
2021-11-11 21:28:53 +01:00
Mitch Richters
6581d9d709 - InputScale(): Tidy up some math I just put in.
* Time for bed... *yarns*.
2021-11-10 22:23:59 +11:00
Mitch Richters
3c4afaa6ee - InputScale(): Add enabled-by-default scaler to returned value from function to correct drift that occurs as the frame-rate increases, taking into account different scaling ratios needed for differing ticrates. 2021-11-10 20:27:19 +11:00
Mitch Richters
5a33caa635 - InputScale(): Add enabled-by-default scaler to returned value from function to correct drift that occurs as the frame-rate increases, taking into account different scaling ratios needed for differing ticrates. 2021-11-10 20:13:06 +11:00
Christoph Oelckers
9433e9bdb1 - trPlayerCtrlStartScene + changing index to initiator pointer in QAVSCENE.
- clear QAVSCENE's initiator pointer at the start of a level or when it holds an actor that's about to be deleted.

Seems there is no proper bookkeeping here, so until we can GC actors it needs to be done manually.
2021-11-09 23:16:16 +01:00
Christoph Oelckers
ad36916fd3 - formatting again and fallthrough annotations. 2021-11-09 23:11:54 +01:00
Christoph Oelckers
bb094fd003 - 3 smaller functions. 2021-11-09 23:10:34 +01:00
Christoph Oelckers
733d9b2e2b - debrisMove 2021-11-09 23:10:03 +01:00
Christoph Oelckers
942e93b2e7 - debris functions. 2021-11-09 22:51:01 +01:00
Christoph Oelckers
6e2f8ec47f - vel replacements. 2021-11-09 22:49:43 +01:00
Christoph Oelckers
7430a630bd - yet another commit with extracted formatting stuff and minor cleanup.
# Conflicts:
#	source/games/blood/src/nnexts.cpp
2021-11-09 22:49:28 +01:00
Christoph Oelckers
5558c3e896 - debrisGetIndex and some related code. 2021-11-09 22:18:38 +01:00
Christoph Oelckers
ce622c9c88 - two missed lines 2021-11-09 21:51:51 +01:00
Christoph Oelckers
5b057415da - sanitized tileGetSurfType. 2021-11-09 21:42:51 +01:00
Christoph Oelckers
9221262dfc - refactoring of all getzrange code to use the Collision struct. 2021-11-09 21:39:59 +01:00
Christoph Oelckers
55362edce4 - cleanup and formatting in getSpriteMassBySize 2021-11-09 21:00:27 +01:00
Christoph Oelckers
6f8fe44bb0 - getSpriteMassBySize 2021-11-09 20:59:52 +01:00
Christoph Oelckers
81c3443af9 - nnExtProcessSuperSprites, plus replacing xindex with actor in TRCONDITION. 2021-11-09 20:58:27 +01:00
Christoph Oelckers
a898dfc4ec - some cleanup in nnExtProcessSuperSprites before refactoring. 2021-11-09 20:46:54 +01:00
Christoph Oelckers
754042e10a - windGenDoVerticalWind 2021-11-09 20:45:10 +01:00
Christoph Oelckers
06be31daea - pure formatting stuff split out of following commit. 2021-11-09 20:43:11 +01:00
Christoph Oelckers
18b608df1a - randomDropPickupObject + randomSpawnDude 2021-11-09 20:40:39 +01:00
Christoph Oelckers
c427669595 - randomGetDataValue 2021-11-09 20:37:10 +01:00
Christoph Oelckers
1cc5dbccb9 - GetDataVal 2021-11-09 20:33:16 +01:00
Christoph Oelckers
5465c9976c - replaced a few chars in Exhumed 2021-11-09 17:46:39 +01:00
Christoph Oelckers
baa3e531d4 - Exhumed: more ints for shorts 2021-11-09 17:32:50 +01:00
Christoph Oelckers
c46c8a68cd - fixed nextsectorneighborzptr 2021-11-09 17:29:03 +01:00
Christoph Oelckers
9b52b3b451 - made all nSector variables full ints.
This already takes care of most sector[] accesses in Exhumed
2021-11-09 17:27:54 +01:00
Christoph Oelckers
366df9d4b6 - Exhumed: use the sprite's sector() member where possible. 2021-11-09 00:26:46 +01:00
Christoph Oelckers
ef241acda2 - Exhumed: some quick sector[] substitution 2021-11-09 00:12:18 +01:00
Christoph Oelckers
a35900362e - only use un-deprecated variants of updatesector(z) in SW. 2021-11-09 00:09:48 +01:00
Christoph Oelckers
94b2b0af31 - widen sector index in engineLoadBoard to 32 bit 2021-11-09 00:07:00 +01:00
Christoph Oelckers
762ebafc2a - made clipmoveboxtracenum a function argument of clipmove
There’e zero need for hackery here.
2021-11-08 23:22:48 +01:00
Christoph Oelckers
0ffe52791e - delete deprecated pushmove variants 2021-11-08 23:22:06 +01:00
Christoph Oelckers
2d91786516 - changed all sector variables being passed to pushmove to full ints 2021-11-08 23:18:40 +01:00
Christoph Oelckers
4aa0477574 - make internal pushmove use a 32 bit sector index. 2021-11-08 23:17:40 +01:00
Christoph Oelckers
52a2862963 - removed the deprecated clipmove wrappers. 2021-11-08 23:15:05 +01:00
Christoph Oelckers
a5f51cfd88 - SW: migrate everything to the main clipmove function 2021-11-08 23:11:30 +01:00
Christoph Oelckers
16f9d4ec36 - got rid of COVERupdatesector
Not needed as it just forwards to the engine’s updatesector - and it gets in the way of other changes
2021-11-08 23:11:30 +01:00
Christoph Oelckers
3811147f70 - use proper clipmove variant in Blood and Exhumed
This merely extends some shorts to full ints to match the desired parameter's size.
2021-11-08 23:11:30 +01:00
Christoph Oelckers
2e1ff313b0 - Duke: only use the main clipmove function and match clipmove_ex’s interface 2021-11-08 23:11:29 +01:00
Christoph Oelckers
567d054d42 - remove unused clipmovex function, extend clipmove sector return to 32bit, mark obsolete clipmove variants deprecated 2021-11-08 23:11:29 +01:00
Christoph Oelckers
5510efd920 - removed TROR specific parts of updatesectorz
None of this is ever called, in particular the parts that muck around with the sectorindex and add magic bits to it.
2021-11-08 23:11:29 +01:00
Christoph Oelckers
5ba005276f Revert "- redid the 'inside' function."
This reverts commit c034c2a299.

While the function works, it is subtly different for points exactly on a line - enough to cause problems with Shadow Warrior's waypoint implementation.
2021-11-08 23:11:20 +01:00
Christoph Oelckers
c034c2a299 - redid the 'inside' function.
This is based on external information and does not use any of the original Build code.
Despite being a lot clearer than Build's bit masking voodoo and using 64 bit math to avoid overflows it is roughly 10% faster. :)

Code was moved to gamefuncs.cpp because this no longer falls under the Build license.
2021-11-08 21:29:21 +01:00
Christoph Oelckers
5cfc418c5f - did some tests with the inside function and decided to only retain the 'old' one.
The one from EDuke32 is ambiguous - it considers any point on a wall to be part of both sectors touching that wall. This wasn't used anyway with the current engine compatibility settings.
I was not able to get different values out of the 'ps' version - this seems to only be important for demo playback concerns, for regular playback the differences appear to be totally irrelevant.

Ultimately this should be replaced anyway with a license-unencumbered variant of the same basic common algorithm.
2021-11-08 19:46:22 +01:00
Christoph Oelckers
eeaa7f98f0 - inlines for validating sector and wall indices. 2021-11-08 18:56:10 +01:00
Christoph Oelckers
2840b5f25d - added reverse iterators to tarray.h 2021-11-08 18:55:46 +01:00
Christoph Oelckers
94f40d11ae - SparseArrayView class
We need this to merge the game specific sector/wall extensions with the base but still allow the engine to access such arrays. For that they need a runtime settable stride.
2021-11-08 18:55:35 +01:00
Christoph Oelckers
477a2a23e6 - nextSector in runlist 2021-11-08 18:37:21 +01:00
Christoph Oelckers
52389ae02e - sectp in osdcmd_spawn 2021-11-08 18:37:21 +01:00
Christoph Oelckers
066896db8e - warnings fix 2021-11-08 18:37:20 +01:00
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
Christoph Oelckers
e8f9afb174 - DoScaleSprite. 2021-10-30 17:30:03 +02:00
Christoph Oelckers
e84d61e80a - redid the iterators in _polymost.cpp. 2021-10-30 17:30:03 +02:00
Christoph Oelckers
d6bdc735d6 - patch up Blood's GetZRange to compile with getzrange_old being gone. 2021-10-30 17:30:03 +02:00
Mitch Richters
f0a347263a - SW: Replace use of getzrange_old() inline wrapper with getzrange() and remove inline wrappers. 2021-10-30 17:30:02 +02:00
Mitch Richters
1d39bb371e - Exhumed: Replace use of getzrange_old() inline wrapper with getzrange(). 2021-10-30 17:30:02 +02:00
Mitch Richters
add3481e40 - SW: Replace use of pushmove_old() inline wrapper with pushmove() and remove inline wrappers. 2021-10-30 17:30:02 +02:00
Mitch Richters
bdbe57a6b6 - Exhumed: Replace use of pushmove_old() inline wrapper with pushmove(). 2021-10-30 17:30:02 +02:00
Mitch Richters
0ee3b5af1c - Blood: Replace use of pushmove_old() inline wrapper with pushmove(). 2021-10-30 17:30:02 +02:00
Mitch Richters
adcdbdc931 - SW: Replace use of clipmove_old() inline wrapper with clipmove() and remove inline wrappers. 2021-10-30 17:30:02 +02:00
Mitch Richters
0ac63fd663 - Exhumed: Replace use of clipmove_old() inline wrapper with clipmove(). 2021-10-30 17:30:01 +02:00