Christoph Oelckers
798cf2f973
Merge branch 'newrenderer2' of https://github.com/coelckers/Raze-private into newrenderer2
2021-04-12 20:25:56 +02:00
Christoph Oelckers
42d02834b1
Merge branch 'master' into newrenderer2
...
# Conflicts:
# source/build/include/build.h
# source/build/src/polymost.cpp
# source/build/src/voxmodel.cpp
# source/core/gamecontrol.cpp
# source/core/gamestruct.h
# source/games/blood/src/animatesprite.cpp
# source/games/blood/src/misc.h
# source/games/blood/src/view.cpp
# source/games/duke/src/render.cpp
# source/games/sw/src/draw.cpp
# source/games/sw/src/game.h
# source/games/sw/src/jsector.cpp
# source/glbackend/glbackend.cpp
2021-04-11 14:38:56 +02:00
Mitchell Richters
e76f63e2c0
- Consolidate all game interpolation code into inline functions.
2021-04-11 16:45:35 +10:00
Christoph Oelckers
b3bcedda6c
- moved backend independent HUD code out of glbackend.cpp.
2021-04-11 08:40:18 +02:00
Mitchell Richters
f254eeb465
- binaryangle.h: Remove lookangle
class and replace use with binangle
.
...
* Added in fca846272e
to deal with signed adjustments but its just not needed.
* Made better use of `binangle`/`fixedhoriz` class getters and setters than before as well.
2021-04-11 15:45:53 +10:00
Christoph Oelckers
090b52f783
- fixed animatesprites call in Duke.
...
This passed z instead of angle.
2021-04-05 12:25:09 +02:00
Christoph Oelckers
55ad51ee1f
Merge branch 'master' into newrenderer2
2021-04-04 13:23:51 +02:00
Christoph Oelckers
97a0cb2a10
- handle voxel rotation in the backend to enable it for all games.
...
This was previously only present in the Blood module and missed in Exhumed from upstream so the entire option was rather pointless.
Fixes #290
2021-04-04 10:33:29 +02:00
Christoph Oelckers
dc234ea72d
- implemented RR's geometry effect.
...
The grossest of all gross render hack that were ever done with Build...
2021-04-02 22:52:46 +02:00
Christoph Oelckers
c8a75a8664
- give each DrawInfo its own list of tsprites.
...
Since these do not fully get processed sequentially the contents need to be preserved until needed.
This required getting rid of the global tsprite array. Polymost still uses a static vatiable, though, but this is only accessed in polymost-exclusive code.
2021-04-02 10:28:40 +02:00
Christoph Oelckers
92bb9c5319
- fixed display of player in mirrors.
2021-03-29 21:48:23 +02:00
Christoph Oelckers
e8edb32e0d
- fixed camera texture setup.
...
They still are upside-down but aside from that work as expected.
2021-03-28 19:22:51 +02:00
Christoph Oelckers
d3e0a9590c
- renderDrawMasks may only be called for Polymost.
2021-03-28 15:14:32 +02:00
Mitchell Richters
6f65eb2270
- Duke: Amend 7e8ef99ec9
to adjust view height where it was originally adjusted.
...
* Doing this in `renderView()` unconditionally isn't correct as it can lead to a double adjustment if `p->spritebridge == 0 && p->newOwner == nullptr`.
2021-03-28 23:21:07 +11:00
Christoph Oelckers
7e8ef99ec9
- fixed view height in Duke.
2021-03-28 13:38:27 +02:00
Christoph Oelckers
be7bca8e9e
- expose animatesprite set of functions to new renderer as a callback.
2021-03-26 10:05:01 +01:00
Mitchell Richters
957f7e9487
- Accept binangle, fixedhoriz and lookangle classes in SetupViewpoint()
vs. Q16.16 variables.
...
* Allows for more precision than Q16.16.
* Used as opportunity for `rollang` to be set using the `asdeg()` method, not `asbuildf()`.
2021-03-25 19:06:01 +11:00
Christoph Oelckers
b91441f849
- same render interface rework for Shadow Warrior.
2021-03-21 12:22:50 +01:00
Christoph Oelckers
6f7e7459ea
- did some cleanup on Duke's render code to prepare for the new way of handling portals.
...
Like for Blood, the Polymost-only code has been moved aside.
Closer examination of the preparations the engine is doing for rendering SE40/150-portals shows that all this was merely done to avoid glitches with a two-phase rendering setup - nothing of this will be needed for doing it properly.
They can just be treated as run-of-the-mill stacked sectors. when using hardware rendering capabilities for clipping.
2021-03-21 10:58:11 +01:00
Christoph Oelckers
547ed4e415
- route everything through the full backend, now completely bypassing the intermediate GLInstance layer.
2021-03-18 17:18:03 +01:00
Mitchell Richters
ba57429ac6
- Blood, Duke & SW: Create new backend chasecam function and replace game-specific versions with it.
...
* Based off SW's implementation.
2021-02-18 21:47:37 +11:00
Mitchell Richters
2abda0e27d
- All Games: Migrate each game's clock counter to backend solution.
2021-02-18 21:47:33 +11:00
Mitchell Richters
97159c20c1
- Duke: Leverage new spritetype
methods within Duke, removing bposx
/bposy
/bposz
from hittype.
2021-01-06 06:22:29 +11:00
Mitchell Richters
aae175f287
- Replace divscale##()
calls with MulScale()
from common.
...
* Regex for reference: divscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:20 +11:00
Mitchell Richters
2396179dfc
- Replace mulscale##()
calls with MulScale()
from common.
...
* Regex for reference: mulscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:15 +11:00
Mitchell Richters
8cf2588bad
- Replace fmulscale##()
calls with MulScaleF()
from common.
...
* Regex for reference: fmulscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:13 +11:00
Mitchell Richters
d3b95d4d70
- Build/Duke: Remove the only use case for drawrooms()
inline wrapper and change getcamspriteang()
to return binangle instead of a build angle.
2021-01-03 17:35:19 +11:00
Mitchell Richters
a0a710c56a
- Duke: Fix camera horizon when viewing the screen from in-game.
...
* Leftover horizon offset that was missed when doing 09a05f354c
.
2020-12-30 18:31:51 +11:00
Christoph Oelckers
ae36ea88c3
- wrap all checks of cl_syncinput in an inline function.
2020-11-30 23:40:16 +01:00
Christoph Oelckers
b9477f147e
- migrated Duke's interpolations to the common system and added handling for texture scrollers.
2020-11-26 18:32:36 +01:00
Mitchell Richters
5ba2e7863d
- binaryangle.h: Add asbuildf()
method to all classes and use where appropriate.
2020-11-22 21:18:12 +01:00
Christoph Oelckers
ed599d0f05
- moved the hires texture replacement logic into a backend callback.
...
This way it can be handled transparently to the calling code.
Fonts do not work yet, though.
2020-11-10 16:22:02 +01:00
Mitchell Richters
c823e33bb3
- Duke/RR: Fix remaining issues with drug mode.
...
* Primary issue was call to `renderSetAspect()` within `setdrugmode()` wasn't mulscaling with `viewingrange`.
* Changed `setdrugmode()` to `getdrugmode()` to return `p->drug_aspect`. This is so `renderSetAspect()` needs to only be called from one place only.
2020-11-06 20:52:43 +11:00
Christoph Oelckers
977223287e
- cap the frame rate of RRRA's cactus drug mode.
...
This was running at full render speed.
2020-11-05 07:31:48 +01:00
Christoph Oelckers
d8e331ef0f
- changed Duke/RR palette handling to only retrieve the currently active palette right before rendering.
...
Storing this in the player_struct is pointless and a relic from having to use real hardware palette switches.
With this now just being a translation index being passed to the backend it can be cheaply retrieved right when used and nowhere else.
Also making some changes to how RRRA's psychedelic cactus handles the projection. This fixes issues with occasionally passing a bad matrix.
2020-11-05 07:31:48 +01:00
Christoph Oelckers
083454986b
- made camsprite an actor variable.
2020-11-04 20:40:26 +01:00
Christoph Oelckers
0eb10f0313
- newowner and related code.
2020-11-04 20:40:25 +01:00
Christoph Oelckers
d0db810ab0
- ud.camerasprite -> actor.
2020-11-04 20:40:08 +01:00
Christoph Oelckers
770897b8b9
- player.i, part 1
2020-11-04 20:39:42 +01:00
Christoph Oelckers
7c6ea9cff7
- activatebysector.
2020-11-04 19:55:17 +01:00
Christoph Oelckers
7aca51a6c4
- 6 more loops.
2020-11-04 19:55:17 +01:00
Christoph Oelckers
4d4cb2da9b
- handle the cheap-ass ROR code.
2020-11-04 19:55:17 +01:00
Christoph Oelckers
773aa9976d
- fixed compilation of release build.
2020-11-04 07:01:25 +01:00
Christoph Oelckers
33f730baf3
- replaced "sprite[p->i]" globally.
2020-11-03 19:21:42 +01:00
Christoph Oelckers
3d36381752
- converted all stat iterators outside sector*.cpp.
2020-10-15 01:34:28 +02:00
Christoph Oelckers
760a557f73
- converted the remaining sector iterators in Duke.
2020-10-15 01:34:27 +02:00
Mitchell Richters
6ecbb2587e
- Duke: Fix z position when on certain cameras following changes in 09a05f354c
.
2020-10-10 16:17:02 +11:00
Mitchell Richters
fca846272e
- gamecontrol: Initial setup of PlayerAngle
struct and deployment within Duke.
...
* Struct made up of binangle class units.
* Create signed clone of binangle for use with look_ang and rotscrnang.
* Append currently outgoing function names with `2` at the end to avoid conflict.
2020-10-07 23:13:29 +11:00
Mitchell Richters
e2691d4184
- Duke: Clean up a few missed things during f39939d114
.
2020-10-07 18:34:52 +11:00
Mitchell Richters
f39939d114
- gamecontrol: Initial setup of PlayerHorizon
struct and deployment within Duke.
...
* Started with the most complicated game first.
* Struct made up of fixedhoriz class units.
* Append currently outgoing function names with `2` at the end to avoid conflict.
2020-10-07 17:12:48 +11:00