Commit graph

3968 commits

Author SHA1 Message Date
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
Christoph Oelckers
de2c07aa6a - revert all consolidation efforts between Duke and RR frontends.
Too many problems with different code.
2020-03-18 08:24:31 +01:00
Christoph Oelckers
ef63e47cbf - fixed per-level music in RR. 2020-03-14 18:14:50 +01:00
Christoph Oelckers
c9a69d96b2 - SW: copied fix from SWR to always spawn anime girls for the addons. 2020-03-08 20:53:04 +01:00
Christoph Oelckers
80cc12001f - a bit of cleanup. 2020-03-08 13:54:00 +01:00
Christoph Oelckers
62fa254497 - 0.5.1 2020-03-08 08:05:19 +01:00
ny00123
d98bf9ba62 sw/src/draw.cpp:ResizeView: Make map zooming less dependent
on the frame rate

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

# Conflicts:
#	source/sw/src/draw.cpp
2020-03-08 08:02:01 +01:00
Christoph Oelckers
93eea97477 - allow selecting frontend for Duke3D in gameinfo.txt 2020-03-07 20:14:03 +01:00
ny00123
68f249873c sw/src/weapon.cpp: Comment out unused MissileSeek and ComboMissileSeek
params, but leave them for documentation. Note that currently, the
only use of ComboMissileSeek is in the saveable_weapon_code array.

git-svn-id: https://svn.eduke32.com/eduke32@8698 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-07 19:49:24 +01:00
ny00123
cf093e9ea6 SW: Comment out function parameters accessed only in commented out code
git-svn-id: https://svn.eduke32.com/eduke32@8697 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-07 19:48:28 +01:00
ny00123
4842f18f1b SW: Mark function parameters as unused in cases we can't easily change
the functions' signatures (often due to being used as callbacks/hooks)

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

# Conflicts:
#	source/sw/src/jnstub.cpp
#	source/sw/src/menus.cpp
#	source/sw/src/panel.cpp
#	source/sw/src/text.cpp
2020-03-07 19:48:14 +01:00
ny00123
3e8dc4e509 SW: Remove a bunch of unused function parameters
git-svn-id: https://svn.eduke32.com/eduke32@8694 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/sw/src/brooms.cpp
#	source/sw/src/draw.cpp
#	source/sw/src/game.cpp
#	source/sw/src/inv.cpp
#	source/sw/src/save.cpp
#	source/sw/src/spike.cpp
#	source/sw/src/text.cpp
#	source/sw/src/weapon.cpp
2020-03-07 19:45:38 +01:00
ny00123
f9155048fc sw/src/weapon.cpp: Remove conditional set of unused variable hsp
in InitMineShrap, as well as unused variable sp in TestDontStick

git-svn-id: https://svn.eduke32.com/eduke32@8693 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-07 19:38:46 +01:00
ny00123
9c7553c776 sw/src/weapon.cpp: Insert unused SHRAP structs into #if 0 blocks
git-svn-id: https://svn.eduke32.com/eduke32@8692 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-07 19:38:21 +01:00
Christoph Oelckers
73a4e0d1fe - made Blood's FullMap flag global and removed the hacks to show the full automap.
Also refactor show2dsector into a bit array to get rid of the bit shifting code at play here.
2020-03-07 19:30:18 +01:00
ny00123
14a2560d5f sw/src/player.cpp: Remove unused globals related to mouse status
git-svn-id: https://svn.eduke32.com/eduke32@8690 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-07 19:30:18 +01:00
ny00123
f5df1b5a19 sw/src/player.cpp: A bit more complicated cases of unused vars
git-svn-id: https://svn.eduke32.com/eduke32@8689 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-07 19:30:18 +01:00
ny00123
ed6e9df07c SW: Handle cases in which the result of an expression
with (possible) side-effects is written to an unused var.

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

# Conflicts:
#	source/sw/src/console.cpp
#	source/sw/src/jnstub.cpp
#	source/sw/src/save.cpp
#	source/sw/src/sounds.cpp
#	source/sw/src/swconfig.cpp
2020-03-07 19:30:18 +01:00
ny00123
d55871927a SW: Comment out unused vars, which would become
used if previously commented out code was uncommented
(including a few instances of uninitialized var reads).

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

# Conflicts:
#	source/sw/src/brooms.cpp
#	source/sw/src/cheats.cpp
#	source/sw/src/draw.cpp
#	source/sw/src/game.cpp
#	source/sw/src/jnstub.cpp
#	source/sw/src/menus.cpp
#	source/sw/src/rts.cpp
#	source/sw/src/sector.cpp
#	source/sw/src/setup.cpp
#	source/sw/src/sounds.cpp
#	source/sw/src/weapon.cpp
2020-03-07 19:30:17 +01:00
ny00123
896de8aa1c SW: Remove a ton of unused vars
git-svn-id: https://svn.eduke32.com/eduke32@8685 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/sw/src/anim.cpp
#	source/sw/src/border.cpp
#	source/sw/src/brooms.cpp
#	source/sw/src/config.cpp
#	source/sw/src/console.cpp
#	source/sw/src/coolie.cpp
#	source/sw/src/draw.cpp
#	source/sw/src/game.cpp
#	source/sw/src/hornet.cpp
#	source/sw/src/jbhlp.cpp
#	source/sw/src/jnstub.cpp
#	source/sw/src/jsector.cpp
#	source/sw/src/menus.cpp
#	source/sw/src/miscactr.cpp
#	source/sw/src/network.cpp
#	source/sw/src/ninja.cpp
#	source/sw/src/player.cpp
#	source/sw/src/save.cpp
#	source/sw/src/serp.cpp
#	source/sw/src/setup.cpp
#	source/sw/src/sounds.cpp
#	source/sw/src/sprite.cpp
#	source/sw/src/swconfig.cpp
#	source/sw/src/weapon.cpp
2020-03-07 19:30:17 +01:00
Christoph Oelckers
5a6096c740 - no Lunatic 2020-03-07 19:30:17 +01:00
alexey.lysiuk
53cda00747 - added detection of Redneck Deer Huntin' installed from Steam 2020-03-07 11:31:46 +02:00
Christoph Oelckers
2c203fbf80 - more consolidation between RR and Duke. 2020-03-06 19:29:13 +01:00
Christoph Oelckers
cb322a1a1b Merge branch 'master' of https://github.com/coelckers/Raze 2020-03-06 17:44:53 +01:00
Christoph Oelckers
6095808503 - consolidation of dynamic sound remapping 2020-03-06 17:23:30 +01:00
Christoph Oelckers
a5c2152530 - consolidated the dynamic tile handling for Duke and RR frontends 2020-03-06 17:12:38 +01:00
alexey.lysiuk
12a655b58f - fixed build with GCC and Clang
source/duke3d/src/gameexec.h:109:35: error: expected primary-expression before ‘)’ token
source/duke3d/src/gameexec.h:115:35: error: expected primary-expression before ‘)’ token
2020-03-06 13:26:32 +02:00
NoOneBlood
aa5b7033de - Condition type update (WIP)
- IncDec type update (can iterate multiple data fields)
- Fix compile warning (?)
2020-03-05 22:11:22 +01:00
Christoph Oelckers
86278fc79c - fixed bad annotation. 2020-03-05 21:14:45 +01:00
Christoph Oelckers
a519861571 - I think this is needed... 2020-03-05 21:14:34 +01:00
Christoph Oelckers
b3c1d5001e - used double frame buffering for VPX playback.
With a single buffer this tends to run into situations where an unrendered texture gets deleted before it is drawn.
2020-03-05 20:56:41 +01:00
Christoph Oelckers
e2fab16fd4 - fixed crashes with VM asserts.
No idea what went wrong here - formatting the string in two stages works fine, though.
2020-03-05 20:28:37 +01:00
Christoph Oelckers
4a76674f4b - deleted a few unused files 2020-03-05 01:20:58 +01:00
Christoph Oelckers
4788dc42fb - cleanup of the screentext consolidation
Since SetIfGreater is only used by the text code, the redundant copies could be removed.
2020-03-05 01:17:31 +01:00
Christoph Oelckers
822079abe0 fixed some compiler warnings listed by XCode 2020-03-05 01:01:05 +01:00
Christoph Oelckers
2c50554c6f - Hmmm... Clang... 2020-03-05 01:01:05 +01:00
Christoph Oelckers
a00bb4cbea - started consolidation of EDuke/RedNukem code by moving the identical parts of actor.h to a shared namespace. 2020-03-05 01:01:05 +01:00
Christoph Oelckers
a203e37aeb - removed buggy diagnostics print. 2020-03-05 01:01:04 +01:00