Commit graph

13460 commits

Author SHA1 Message Date
Christoph Oelckers
30f4e2b29d - replaced the engine automap drawer with one leveraging the newly added sector geometry data.
This eliminates a lot of code depending on Build's projection math.
2021-03-20 16:20:48 +01:00
Christoph Oelckers
88706e8e13 - added a cache for the sector geometry.
Now it only needs recreation if the sector changes.
2021-03-19 23:18:09 +01:00
Christoph Oelckers
5a0c8da6bf - Duke: fixed some incorrect assignments in CON parser 2021-03-19 23:18:09 +01:00
Christoph Oelckers
3df5c440f9 - added some helpers to make it easier to determine if a sector's geometry has been altered.
Walls had no sector reference so this was added for marking the sector as altered when a vertex gets dragged around.
2021-03-19 23:18:09 +01:00
Mitchell Richters
895b875453 - Invert rollang in hw_entrypoint.cpp:SetupView(). 2021-03-20 08:35:17 +11:00
Christoph Oelckers
93bb774573 - flat alignment.
This still gets redone each frame for each sector and needs to be buffered
2021-03-19 19:53:55 +01:00
Christoph Oelckers
a5b3a1dd3e - removed some unused things from engine.cpp. 2021-03-19 15:12:54 +01:00
Christoph Oelckers
76682c72e3 - removed krecipasm.
Analyzing the results, this is not needed as its precision is virtually the same as floating point math, so its one use got replaced.
2021-03-19 14:23:41 +01:00
Christoph Oelckers
dd15fc54c1 - top texture means RENDERWALL_TOP, not that it matters much at the moment... 2021-03-19 12:02:20 +01:00
Christoph Oelckers
ff8ca99e2b - fixed y alignment of bottom textures.
Despite other settings, they will always take the panning info from their backside.
2021-03-19 11:51:38 +01:00
Christoph Oelckers
f8de712b81 - fixed horizontal panning for bottom textures. 2021-03-19 11:22:24 +01:00
Christoph Oelckers
385cc8cbbd - NPOT texture alignment fixes.
The checks in CheckTexturePosition were not correct and caused unwanted texture shifting.
Also inlined GetYPanning into DoTexture because the pow2size value is needed there and the rest is a simple one-liner to scale the panning.
2021-03-19 10:29:38 +01:00
Christoph Oelckers
9406e6d2ad - fixed the biggest issues with flat rendering 2021-03-18 23:22:51 +01:00
Christoph Oelckers
7dd5b508c8 - flat rendering WIP.
Still buggy triangulation and no texture alignment, but it renders something.
2021-03-18 21:50:02 +01:00
Christoph Oelckers
0579368626 - removed render.cpp, now that everything is in its proper place. 2021-03-18 17:24:58 +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
Christoph Oelckers
4cf2493cfd set up the entry point for the renderer. 2021-03-18 14:49:36 +01:00
Christoph Oelckers
c4b3523f05 - moving utilities to more appropriate places. 2021-03-18 12:49:33 +01:00
Christoph Oelckers
6068427270 - port the bunch drawer to the backend's core. 2021-03-18 12:32:31 +01:00
Christoph Oelckers
af6c6c8ef0 - added the DrawInfo class. 2021-03-18 10:23:53 +01:00
Christoph Oelckers
e9dd1c104b - started adding the draw list code from GZDoom. 2021-03-18 10:19:13 +01:00
Christoph Oelckers
0f28069f96 - fixed NPOT shader parameters. RR E1L1's hedges render properly now.
- fixed a few places where wall[0] was accessed.
2021-03-18 09:20:38 +01:00
Christoph Oelckers
2d958745b4 - fixed: Polymost must set the viewpoint if renderers are switched.
- fixed coordinate order in renderSetViewpoint
- fixed backwall checks accidentally testing wall 0 instead of the current wall.
2021-03-18 00:28:38 +01:00
Christoph Oelckers
493294909b - fixed texture alignment
Most cases should be correct now.
2021-03-17 23:29:13 +01:00
Christoph Oelckers
47dce8de8c - partially fixed y-panning and removed the aspect factor.
y-panning is still not correct for all cases but better than before. The aspect factor is not needed, it looks like an artifact of both the software renderer and Polymost.
We get the same dimensions with proper matrices by setting this to 1.
2021-03-17 20:02:50 +01:00
Christoph Oelckers
65097c4098 - set proper visibility factor and viewport. 2021-03-17 19:07:00 +01:00
Christoph Oelckers
b492cbcebb - ported my old Build-style renderer for Doom from 2008 and the wall renderer from GZDoom to work with Build data.
It renders walls, but y-panning is still broken.
2021-03-17 16:54:36 +01:00
Christoph Oelckers
9ebd8fd4a5 - put all of Polymost in a namespace.
So that its static variables are properly separated from the rest.
2021-03-17 15:55:25 +01:00
Christoph Oelckers
c6f83fa8bd - added GZDoom's clipper. 2021-03-15 19:11:18 +01:00
Christoph Oelckers
a484e39e05 - removed integer square root code.
On modern systems using the sqrt function with a cast to int has no relevant performance disadvantage anymore so there's no need for all of this.
2021-03-15 19:02:08 +01:00
Christoph Oelckers
7c68261fbf - redirect Exhumed's shareware exit to the main menu. 2021-03-15 18:58:28 +01:00
Christoph Oelckers
ac82838859 - removed unused 'wallvisible' function. 2021-03-15 18:58:14 +01:00
Christoph Oelckers
8aa59f2385 - use clamp instead of bit masking to handle out of range interpolation factors for models. 2021-03-15 11:35:39 +01:00
Christoph Oelckers
60979ee478 - fixed: G_BuildTiccmd needs to clear the command struct.
This could otherwise pick up some stray data from earlier calls and create bogus input.
Fixes #97
2021-03-15 10:11:49 +01:00
Christoph Oelckers
d604ca732f - upgraded wadsrc/CMakeLists.txt 2021-03-15 08:38:31 +01:00
Christoph Oelckers
c3071edc60 - updated CMake project files. 2021-03-14 16:44:58 +01:00
Christoph Oelckers
834da8b83b - Exhumed: refresh the status bar after loading a saved game.
It is actually not necessary to save the state - but the RefreshStatus function must be called to update all current values.
Fixes #282
2021-03-14 12:57:23 +01:00
Christoph Oelckers
90cb82d244 - disable the player specific volume modifiers if replay gain is enabled.
These two functions would get into the way of each other otherwise.
2021-03-14 09:05:28 +01:00
Christoph Oelckers
aa789c7605 - adapt to changed value range of module master volume in ZMusic.
The default was far too quiet and had to be increased to let the player have comparable output to the rest of the music system.
2021-03-14 08:51:59 +01:00
Christoph Oelckers
8ae5d0b30e - backend update from GZDoom. 2021-03-13 01:21:38 +01:00
Christoph Oelckers
f4b27bbd27 - sort the game selection list by definition order in grpinfo.txt.
This is to have consistent ordering, independent of where the files are found.
Game order is: Duke, Blood, Shadow Warrior, Redneck Rampage, Nam, WW2GI, Exhumed, all the official mission packs are grouped below the game they belong to.
2021-03-12 23:45:03 +01:00
Christoph Oelckers
25bf0854cf - allow game specific music names for all games supporting an Ogg-format CD audio soundtrack.
New names are:

REDNECKxx.ogg for Redneck Rampage
REDNECKRIDESxx.ogg for RR Rides Again.
SHADOWxx.ogg for Shadow Warrior.

The motivation here is to allow copying all this music to a single folder or .zip file and reference it from all games.
2021-03-12 23:15:34 +01:00
Christoph Oelckers
d7f720664a - Exhumed: fixed uninitialized variables in Queen boss when reloading a savegame. 2021-03-09 22:18:43 +01:00
Christoph Oelckers
df742d25db - Exhumed: Replace asserts for range checks with if's.
Asserts are mere debugging aids, the code was still trashing valid date in release builds.
2021-03-09 20:02:08 +01:00
Christoph Oelckers
e375c799ce - CommonLoon102's weapon fixes from NBlood:
Fix bug when switching to another weapon from the spray while firing with primary fire won't switch to the new weapon. And telling Caleb not to put away his lighter if the spray is being switched to TNT.
Do not put away lighter after TNT is thrown if while throwing the weapon was switched already to spray.
Do not put away lighter if TNT was selected while throwing a spray can.
Fix next/prev weapon
2021-03-09 09:31:04 +01:00
Christoph Oelckers
ee5950e7ad - backend update from GZDoom. 2021-03-07 13:21:15 +01:00
Christoph Oelckers
ad8654ed06 - fixed maphack loader.
The duplicate 'currentSprite' variable prevented it from doing anything.
Also cleaned up the interface a bit to avoid using a global variable for parameter passing.

Fixes #279
2021-03-07 09:39:16 +01:00
Christoph Oelckers
9104fba3ec - moved colormap constants to backend. 2021-03-06 23:06:26 +01:00
Christoph Oelckers
5b85105762 - re-added the fix for the inverted card reader in Twin Dragon's Map 10.
This accidentally got lost when the one-sided key fix was generalized.
2021-03-06 12:20:03 +01:00
Christoph Oelckers
57a6bfcdcd - Blood: fixed typo in map loader that overwrote the floor y panning offset with its fractional part. 2021-03-03 13:26:58 +01:00