Commit graph

4005 commits

Author SHA1 Message Date
Richard C. Gobeille
01bb5491af Rename G_HaveActor() and G_DefaultActorHealth() for clarity
The new names are G_TileHasActor() and G_DefaultActorHealthForTile().

# Conflicts:
#	source/duke3d/src/duke3d.h
2020-04-08 00:38:50 +02:00
Richard C. Gobeille
c8f15f8e4b Demote labeltype to uint8_t 2020-04-08 00:38:49 +02:00
NY00123
3610609659 Add a workaround for possible rounding errors in calculations of
sintable and radarang. sintable[512] was different in a 32-bit build.

From-SVN: r8796
2020-04-08 00:38:48 +02:00
Evan Ramos
b54a6e0565 WT Incinerator projectile velocity hotfix from Nuke.YKT
From-SVN: r8791
2020-04-08 00:38:48 +02:00
Evan Ramos
fd025374d4 Implement WT episode 5 ending
From-SVN: r8790
2020-04-08 00:38:47 +02:00
Evan Ramos
52eab0545b Implement WT's widescreen tiles
From-SVN: r8789
# Conflicts:
#	source/duke3d/src/menus.cpp
#	source/duke3d/src/premap.cpp
#	source/duke3d/src/sbar.h
2020-04-08 00:38:46 +02:00
Evan Ramos
e6940cd591 Implement hardcoded WT stuff
Includes the new weapon, enemy projectiles, and breakable objects.

Patch from Nuke.YKT.

I edited it some, mostly to add the proper "if (WORLDTOUR)" checks.

From-SVN: r8788
# Conflicts:
#	source/duke3d/src/namesdyn.cpp
2020-04-08 00:38:45 +02:00
Evan Ramos
0d576cf798 Fix negative viewtypes to match what World Tour expects
From-SVN: r8787
2020-04-08 00:38:45 +02:00
Evan Ramos
2dbbfd4db2 Cleanup some Duke game logic, mostly to allow easier chaining to the default case
From-SVN: r8786
2020-04-08 00:38:44 +02:00
Richard C. Gobeille
ec3e8bffe1 Are you kidding me? This fixes the elevator in Duke3D E2L3. 2020-04-08 00:38:43 +02:00
Richard C. Gobeille
53baf228eb Fix stupid typo that broke the camera aiming at the enemy that killed you in Duke3D 2020-04-08 00:38:43 +02:00
Christoph Oelckers
eaf27c2583 - fixed joystick CVAR use. 2020-04-08 00:38:42 +02:00
Mitchell Richters
1aa1e62c4d SW: Don't process input at frame rate if ScrollMode2D is true.
- ScrollMode2D was running at the frame rate, turning off vsync made it unacceptable.
2020-04-06 21:28:36 +02:00
Mitchell Richters
b801a73db9 Exhumed: Fix look up/down in line with input amendments. 2020-04-06 08:06:38 +02:00
Mitchell Richters
2ddc442e48 Exhumed: Improve player input.
- Input velocity now consistent irrespective of frame rate.
- Angle and horizon calculated at frame rate.
- Replace usage of F16() macro with fix16_from_int() in GetInterruptKeys().

Note: Known issues with look up/down keys that is to be repaired.
2020-04-06 08:06:38 +02:00
Mitchell Richters
039022d9ac SW: Further refine turning and optimise horizon adjustment.
- Move DoPlayerTurn() into getinput(). Vehicle code remains external for now.
- Remove horizAdjust boolean and always do horizon code in getinput(). Eliminates single off frame at start of a new level until DoPlayerMove() is called at least once.
2020-04-05 21:28:25 +02:00
Mitchell Richters
377ba68344 SW: Minor tweaks. 2020-04-05 21:28:25 +02:00
NY00123
a178961a3e sw/src/game.cpp:LoadLevel: Rename q16ang -> ang 2020-04-05 21:28:25 +02:00
NY00123
d2e9595980 sw/src/draw.cpp:drawscreen: We can set the pp->si* fields just once,
a bit later.
2020-04-05 21:28:25 +02:00
NY00123
537313f620 SW: Revert commented out horiz->q16horiz renames in DSPRINTF strings 2020-04-05 21:28:25 +02:00
NY00123
3bc46078b8 Fix multiplayer desync after the change to q16 angle and horiz.
Note that this includes non-portable unaligned accesses, but this
already applies to surrounding code. Just add comments for now.
2020-04-05 21:28:25 +02:00
Christoph Oelckers
536ed3827d - removed debug messages in Blood's savegame code. 2020-04-03 23:35:52 +02:00
Mitchell Richters
5db8047b41 SW: Remove line accidentally left from 'MoveScrollMode2D()'. 2020-04-02 08:18:23 +02:00
Christoph Oelckers
a7caa7b63c - fixed some reporting stuff for Blood. 2020-04-01 22:35:56 +02:00
Mitchell Richters
68bf97462a Blood: Remove constexpr on player horizon values. 2020-04-01 22:34:57 +02:00
Mitchell Richters
e6420e1eb4 Blood: Rebalance q16mlook.
- Make scaling more consistent with other games.
- Fix CONSTEXPR to constexpr.
- Remove usage of macro 'F16()' by using explicit fix16_from_*() type.
2020-04-01 22:34:57 +02:00
Mitchell Richters
8e94c48eff SW: Make map follow mode work better.
- Input was too fast following input code changes.
- Speed of input can now be changed with toggling the run key.
- Remove function 'MoveScrollMode2D()' and incorporate into 'getinput()' to reduce code duplication.
- Store map follow coordinates in PLAYERp struct and remove old globals.
2020-04-01 13:05:54 +02:00
Mitchell Richters
4630c8a0b7 SW: Get PLAYER_TURN_SCALE to be just right.
- Original value was 12 and was far, far too high following the Q16.16 implementation.
- Value of 3 is too fast.
- Value of 2 is too slow.
- Value of 2.4 (12 / 5) feels just right.
2020-03-31 23:15:09 +02:00
Mitchell Richters
2852536dbf SW: Adjust look and snap up/down keys and slightly tune PLAYER_TURN_AMOUNT.
- Look and snap up/down action was too aggressive and unlike vanilla, corrected.
- PLAYER_TURN_AMOUNT was slightly high, unbalancing the axes.
2020-03-31 08:58:56 +02:00
Mitchell Richters
533d5dd42f Blood: Repair issue with strafing following cherry pick merge conflicts. 2020-03-31 08:56:36 +02:00
nukeykt
348cecb644 Blood: revert change that broke demos 2020-03-31 08:56:36 +02:00
nukeykt
c50f54d064 Blood: don't update view angle when game is paused 2020-03-31 08:56:36 +02:00
nukeykt
c8372c233e Blood: Tie player input to the frame rate instead of the game tickrate
Look up/down and spin180 are a bit broken right now.
Big thanks to terminx for similar commit for eduke32.
2020-03-31 08:56:36 +02:00
nukeykt
371b613ebe Blood: reduce handleevents calls 2020-03-31 08:56:36 +02:00
Mitchell Richters
5ebc65a1fb SW: Refinements to new input code.
- videoNextPage() moved to after restoring interpolations.
- Properly use Q16.16 in as many places as possible. This fixes the angle/X-axis issues.
- Remove unnecessary call to timerUpdate() in main loop, only needs calling once and is called by eventhandlers().
2020-03-30 16:20:25 +02:00
ny00123
28e69d0793 Revert the change of call to FAF_DrawRooms into a conditional one,
as done in r8766, since this breaks status bar output in tiled
overhead map with Polymost. Do add comment about this for now.

git-svn-id: https://svn.eduke32.com/eduke32@8779 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/sw/src/draw.cpp
2020-03-30 09:55:30 +02:00
CommonLoon102
26344d1193 Blood: fix ILLUSION.MAP crash 2020-03-30 09:55:15 +02:00
Mitchell Richters
9e8e441d02 Further improve Duke3D and RR main game loop.
- Replace if statement containing nested do/while loop with a while loop.
2020-03-30 09:53:04 +02:00
Mitchell Richters
d4dd737cd5 SW: Amend scaleAdjustmentToInterval() with correct value for SW. 2020-03-30 09:52:14 +02:00
Mitchell Richters
1cdd5b08d8 SW: Fix incorrectly declared function input type. 2020-03-30 09:52:14 +02:00
Mitchell Richters
eaa51138ad SW: Amendments to accommodate changes in master. 2020-03-30 09:52:14 +02:00
Mitchell Richters
c162014dab SW: Process input at frame rate. 2020-03-30 09:52:14 +02:00
Mitchell Richters
d78d046bad SW: Minor repairs for Q16.16 implementation. 2020-03-30 09:52:14 +02:00
Mitchell Richters
1ecc74c2ec SW: Use Q16.16 for angle. 2020-03-30 09:52:14 +02:00
Mitchell Richters
f07a0ae01e SW: Use Q16.16 for horiz. 2020-03-30 09:52:14 +02:00
Mitchell Richters
e878c5bab8 SW: Improve main game loop.
- Remove MoveLoop() as it's only ever called by RunLevel().
- Continuously call getinput() and domovethings() within the game's tic rate.
2020-03-30 09:52:14 +02:00
Christoph Oelckers
5af0217db7 - got rid of the software rendering blend tables. 2020-03-29 17:23:57 +02:00
Christoph Oelckers
41545b644a - cleaned out most of the software renderer's static global variables. 2020-03-29 16:59:49 +02:00
Christoph Oelckers
7392b699e4 - cleaning out a few more parts of the software renderer. 2020-03-29 15:54:02 +02:00
Christoph Oelckers
3f69044770 - removed all references to sdlayer.cpp as all that was left in there was only needed for software rendering.
- removed now unused a-c.cpp.
2020-03-29 15:22:07 +02:00
Christoph Oelckers
0de4b134da - stripped out most of the software renderer.
Now that the camera textures can be handled through the hardware renderer this isn't needed anymore.
2020-03-29 14:55:09 +02:00
Christoph Oelckers
621a9338e5 - render camera textures with the hardware renderer.
This removes the last active use case for the software renderer and allows rendering the camera views at a higher resolution.
For Shadow Warrior this necessitated a split of JS_DrawMirrors, because it processed cameras and mirrors in the same loop which cannot be done with the hardware renderer.
2020-03-29 14:01:46 +02:00
Christoph Oelckers
8f3cc0b5af - removed screen tilting code for software renderer.
Since this doesn't work anymore the code is no longer needed - and it stands in the way of doing camera textures purely in hardware.
2020-03-29 08:36:39 +02:00
Mitchell Richters
2cbbe9ec61 Remove last vestiges of input latency from Duke3D and RR main game loops.
- Hack code to break loop early removed. If game code is running slow, that's not the fix.
- Get input and fill the input_t struct in same loop as G_DoMoveThings().
- Remove unnecessary do/while (0) loop.
2020-03-25 14:42:51 +01:00
Mitchell Richters
1a2663f7ac Change detection arrays for Redneck games.
- Redneck Deer Huntin' also comes with Redneck Rampage Rides Again.
- Changes permit all games to be detected, including RRRA if you own Deer Huntin'.
2020-03-22 12:05:01 +01:00
Mitchell Richters
b1ebb897e8 Repair HUD scaling returning to 100% when relaunching Duke or RR games.
- Resolves https://forum.zdoom.org/viewtopic.php?f=340&t=67811
2020-03-22 10:37:43 +01:00
Mitchell Richters
e272286df5 Repair vehicle acceleration following changes to input handling.
- Make localInput.fvel only equal to input.fvel + pPlayer->moto_speed.
- Define MOTOTURN and MAXVELMOTO in line with other defines used throughout P_GetInput*() functions.
- Clamped minimum fvel value is also now correct.
2020-03-21 11:30:36 +01:00
alexey.lysiuk
b923f9612b - fixed compilation with MSVC 16.5.0 when using std::sort() with TArray<>
error C2676: binary '[': 'TIterator<T>' does not define this operator or a conversion to a type acceptable to the predefined operator
2020-03-21 11:18:04 +02:00
Mitchell Richters
f1b7707f7a Repair vehicle input functions following changes to input handling.
- Calculate turnAmount in 1st 'if (turn)' statement to save on a 2nd.
- Divide all subsequent values from turAmount for cascasing effect.
- Rearrange some code to save on if statements checking the same condition.
- Remove q16horz code since player has no vertical movement on a vehicle.
- Remove horizAngleAdjust code as it's not necessary and has a jarring effect.
2020-03-20 23:21:54 +01:00
Christoph Oelckers
fca147c83b - fixed compilation. 2020-03-20 21:26:28 +01:00
ny00123
da1d97ba9c sw/src/draw.cpp: Don't draw rooms if textured overhead map is drawn
later. This also turns out to fix a Polymost-specific bug revealed
in SVN r8711. Further remove a call to PicInView which does nothing.

git-svn-id: https://svn.eduke32.com/eduke32@8766 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:39:35 +01:00
terminx
c110c1018d Fix IF crouch jumping and unintentional automatic crouching under sprites
git-svn-id: https://svn.eduke32.com/eduke32@8737 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:38:33 +01:00
terminx
6c9bdae0ec Reduce width of a couple fields in memberlabel_t
git-svn-id: https://svn.eduke32.com/eduke32@8735 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:38:05 +01:00
terminx
7dc1a3c904 Make gamestructures a proper object
git-svn-id: https://svn.eduke32.com/eduke32@8734 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	GNUmakefile
#	platform/Windows/eduke32.vcxproj
#	platform/Windows/eduke32.vcxproj.filters
#	source/duke3d/src/gamedef.cpp
#	source/duke3d/src/gameexec.cpp
#	source/duke3d/src/gamevars.cpp
#	source/duke3d/src/m32def.cpp
#	source/duke3d/src/m32def.h
#	source/duke3d/src/m32exec.cpp
#	source/duke3d/src/m32structures.cpp
2020-03-20 17:37:54 +01:00
terminx
21ec33ac51 Eliminate unnecessary goto
git-svn-id: https://svn.eduke32.com/eduke32@8731 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:35:25 +01:00
terminx
2e17467a8f Fix return type of A_CheckHitSprite()
Since the returned value is a distance, it should be int32_t.

git-svn-id: https://svn.eduke32.com/eduke32@8730 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:35:09 +01:00
terminx
4bdffa4f0f Patch from Nuke.YKT to fix a y-flipped voxel rendering issue in Polymost
git-svn-id: https://svn.eduke32.com/eduke32@8727 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:34:48 +01:00
terminx
a7e1d3f307 Patch from Nuke.YKT to fix a couple of NAM/WW2GI issues
git-svn-id: https://svn.eduke32.com/eduke32@8726 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:34:27 +01:00
terminx
3941fccc4c Patch from Striker to improve sprite interpolation
git-svn-id: https://svn.eduke32.com/eduke32@8724 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:34:19 +01:00
terminx
8c5e3116c9 Make SE_13_EXPLOSIVE call A_GetZLimits() for all statnum 0-2 sprites in sector when triggering
This fixes the fire sprites inside exploding walls not waking up after the wall explodes.

git-svn-id: https://svn.eduke32.com/eduke32@8723 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:33:51 +01:00
terminx
7ed8f5aec4 Fix a bug with swinging doors
This fixes a bug with swinging doors where multiple swinging doors linked together could become out of sync with each other if you block one door from moving and activate the second door again while the first is still blocked.

git-svn-id: https://svn.eduke32.com/eduke32@8721 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:33:25 +01:00
terminx
086141e205 Fix off-by-one error in various CON text truncation warnings
git-svn-id: https://svn.eduke32.com/eduke32@8720 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/gamedef.cpp
2020-03-20 17:33:15 +01:00
terminx
19630b0d4e Add missing diagnostic information for getactor/setactor
Internally, there are several different permutations of the opcodes that implement CON_GETACTOR and CON_SETACTOR. This maps the internal opcodes back to the external keywords that generated them and makes sure they all have the script line number attached to them for use in diagnostic warning and error messages.

git-svn-id: https://svn.eduke32.com/eduke32@8719 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:32:13 +01:00
terminx
e88535a228 Fix tripbomb laser
git-svn-id: https://svn.eduke32.com/eduke32@8718 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:31:46 +01:00
terminx
8def930980 Replace MERGE_NODES macro with vsmerge() function
git-svn-id: https://svn.eduke32.com/eduke32@8715 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2020-03-20 17:31:21 +01:00
terminx
05b59467f5 Merge fix16.cpp and fix16_str.cpp
git-svn-id: https://svn.eduke32.com/eduke32@8709 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	GNUmakefile
#	platform/Windows/build.vcxproj
#	platform/Windows/build.vcxproj.filters
#	source/thirdparty/src/fix16_str.cpp
2020-03-20 17:29:20 +01:00
Mitchell Richters
88502f9962 Manually merge missed aliasing from EDuke32 SVN commit 8555. 2020-03-20 17:04:34 +01:00
Mitchell Richters
8bef451ed9 Manually merge EDuke32 SVN commit 8619. 2020-03-20 17:04:33 +01:00
Mitchell Richters
029b0bbb45 Manually merge EDuke32 SVN commit 8617. 2020-03-20 17:04:33 +01:00
Mitchell Richters
15a362f9ac Manually merge EDuke32 SVN commit 8605. 2020-03-20 17:04:33 +01:00
Mitchell Richters
a5612b1a02 Manually merge EDuke32 SVN commit 8565. 2020-03-20 17:04:33 +01:00
Mitchell Richters
1222a3a56a Manually merge parts of EDuke32 SVN commit 8559. 2020-03-20 17:04:33 +01:00
Mitchell Richters
062850c30a Manually merge parts of EDuke32 SVN commit 8243. 2020-03-20 17:04:32 +01:00
Mitchell Richters
53c9d8425c Manually merge EDuke32 SVN commit 8555. 2020-03-20 17:04:32 +01:00
Mitchell Richters
2124862a9a Manually merge EDuke32 SVN commit 8554. 2020-03-20 17:04:32 +01:00
Mitchell Richters
e964837219 Manually merge EDuke32 SVN commit 8552. 2020-03-20 17:04:32 +01:00
Mitchell Richters
84c518a067 Manually merge EDuke32 SVN commit 8551. 2020-03-20 17:04:31 +01:00
Mitchell Richters
61135e2635 Manually merge EDuke32 SVN commit 8541. 2020-03-20 17:04:31 +01:00
Mitchell Richters
71ada1d674 Manually merge EDuke32 SVN commit 8539. 2020-03-20 17:04:31 +01:00
Mitchell Richters
63edfcf7c7 Manually merge EDuke32 SVN commit 7775. 2020-03-20 17:04:31 +01:00
terminx
cefb1a5551 Fix stupid typo that broke conveyor belts
git-svn-id: https://svn.eduke32.com/eduke32@8620 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:01:12 +01:00
terminx
9630126a6d Improve player input locking logic
This fixes the issue with mouse input and viewscreens.

git-svn-id: https://svn.eduke32.com/eduke32@8619 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:01:12 +01:00
terminx
bcb561014d Fix hilarious bug where holding the strafe modifier and pressing turn left/right moved the player in the wrong direction
git-svn-id: https://svn.eduke32.com/eduke32@8617 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:01:11 +01:00
terminx
ce2c378dcb Emulate previous behavior for player oang/ohoriz/angvel struct members
git-svn-id: https://svn.eduke32.com/eduke32@8605 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:01:11 +01:00
terminx
b48de3ca3c Take CRANE sprites into account before applying mouse input
git-svn-id: https://svn.eduke32.com/eduke32@8565 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:01:11 +01:00
terminx
d04bf2cfb9 Ion Fury compatibility improvements
git-svn-id: https://svn.eduke32.com/eduke32@8559 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:01:11 +01:00
terminx
ae9b6915ce Get rid of the globals used when implementing the framerate based input polling
git-svn-id: https://svn.eduke32.com/eduke32@8555 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:01:11 +01:00
terminx
e94ce88b27 Use the saturating versions of the fix16 functions for player input
git-svn-id: https://svn.eduke32.com/eduke32@8554 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:01:10 +01:00
terminx
659ebf82d8 Improve player view recentering
git-svn-id: https://svn.eduke32.com/eduke32@8552 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:01:10 +01:00
terminx
3b43bba32f Tie player input to the frame rate instead of the game tickrate
This voodoo bullshit entirely eliminates any and all player viewport input latency.

git-svn-id: https://svn.eduke32.com/eduke32@8551 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:01:10 +01:00