Commit Graph

1295 Commits

Author SHA1 Message Date
Christoph Oelckers 97d8aee2e8 - savegame code cleanup. 2021-04-22 00:03:17 +02:00
Christoph Oelckers 8fee2b3ed7 - save SW's User array as JSON. 2021-04-22 00:03:15 +02:00
Christoph Oelckers 9c3aa7bb6c - use the proper file names for loading -adddefs. 2021-04-21 23:55:40 +02:00
Christoph Oelckers eb573bea23 - removed all compensation for the clamped shades.
None of this is needed, the shader can work with out of range shades to produce proper lighting.
2021-04-21 22:48:55 +02:00
Christoph Oelckers dc0df7d081 - don't clamp shade values in the setup pass.
We need their proper values when setting up the lighting.
2021-04-21 22:32:27 +02:00
Christoph Oelckers 9092b5c392 - removed some unused stuff from engine. 2021-04-21 22:32:27 +02:00
Christoph Oelckers b8f9bdb7c1 - made savepic work with new renderer. 2021-04-21 22:32:27 +02:00
Mitchell Richters 98a9963bb5 - Fix release builds of project and remove old `def_.cpp` stub file. 2021-04-22 06:30:44 +10:00
Christoph Oelckers c67a3e76b4 - seems I missed a bit... 2021-04-21 18:34:34 +02:00
Christoph Oelckers 35594a5516 - def parser cleanup, plus some better error messages. 2021-04-21 18:16:08 +02:00
Christoph Oelckers ba5e7d419c - cleaned up the remains of the old def parser. 2021-04-21 18:15:55 +02:00
Christoph Oelckers 1ea25e5d0e - reworked the def parser's main loop. 2021-04-21 18:15:25 +02:00
Christoph Oelckers 8c854441bc - model command migrated 2021-04-21 18:15:12 +02:00
Christoph Oelckers 542e1b2ba7 - ported all simple model commands.
'model' is the last remaining one.
2021-04-21 18:15:12 +02:00
Mitchell Richters 93edeac791 - Clean-up of input functions.
* Remove unused `getincanglef()`.
* Remove unused `getincangleq16()`.
* In `PlayerHorizon` struct, clamp value when setting target in `__settarget()`, not each public `settarget()` overload.
* Rename `PlayerAngle` method `applylook()` to `applyinput()`.
* Rename `PlayerHorizon` method `sethorizon()` to `applyinput()`.
* In `PlayerHorizon::applylook()`, slightly clean return to centre code so it doesn't do math if already at 0.
* In `PlayerAngle::applylook()`, slightly clean rotscrnang/look_ang code so it doesn't do math if already at 0 and reposition where mouse input is applied so that if input is applied, the player never enters a spin.
* In `Duke3d::player_struct::apply_seasick()`, use `buildfang()` method instead of scaling float to BAM within function.
2021-04-21 20:41:04 +10:00
Christoph Oelckers b49de68c86 - migrated highpalookup, basepalette and undefbasepaletterange. 2021-04-20 22:43:02 +02:00
Christoph Oelckers f51872db25 Merge branch 'master' into newrenderer 2021-04-20 20:46:06 +02:00
Christoph Oelckers 16f45ffe3d - fixed small oversight in makepalookup parser. 2021-04-20 20:44:22 +02:00
Christoph Oelckers 512411d0fa - parseUndefTexture(Range) 2021-04-20 20:41:15 +02:00
Christoph Oelckers 1518156386 - parseUndefPalookupRange 2021-04-20 20:41:15 +02:00
Christoph Oelckers 276fd19462 - parseMakePalookup 2021-04-20 20:41:15 +02:00
Christoph Oelckers 6fb09f36c7 - fixed a few parsing errors. 2021-04-20 20:41:04 +02:00
Christoph Oelckers aaad546729 - palookup. 2021-04-20 20:21:51 +02:00
Christoph Oelckers bb119fa928 - parseNumAlphaTabs 2021-04-20 20:21:51 +02:00
Christoph Oelckers 82a0b0502b - parseBlendTable 2021-04-20 20:21:51 +02:00
Christoph Oelckers 01f93f4cca - several smaller texture (un)definition commands. 2021-04-20 20:05:35 +02:00
Christoph Oelckers 8c5a9c23c3 - tileimportfromtexture and copytile. 2021-04-20 20:04:44 +02:00
Christoph Oelckers 97637e4d2d - parseArtFile. 2021-04-20 20:03:19 +02:00
Christoph Oelckers 2761ced670 - handle 2 dead .def commands. 2021-04-20 20:02:19 +02:00
Christoph Oelckers afb2cd3b82 - fixed NoFullbrightRange.
Ever since the texture system switchover this only set a dead bit, it has to explicitly mark the texture as not having a brightmap.
2021-04-20 20:02:08 +02:00
Christoph Oelckers 40a632a2ae - rffdefineid 2021-04-20 19:39:12 +02:00
Christoph Oelckers 643b969dff - added another weird Build specialty: no vertical sprite offset flipping for face sprites.
Just... why...? :?
2021-04-20 19:37:32 +02:00
Christoph Oelckers be20b6a839 - fixed: wall sprites do not need NPOT emulation. 2021-04-20 16:58:18 +02:00
Christoph Oelckers 9e40e49c2c - generalized the special key handling for skipping cutscenes. 2021-04-20 15:01:26 +02:00
Christoph Oelckers d078b511b8 - flip backwards oriented wall sprites before submitting them to the render list.
Backwards orientation will break the translucent object sorter so this needs to be sorted out beforehand.
2021-04-20 14:30:22 +02:00
Mitchell Richters d34070b8ae - gameinput.h: Remove precise bool from `horizsumfrac()`, `look_anghalf()` and `looking_arc()` added in a4895cb270.
* It looks terrible to have low precision math versions of look_anghalf and looking_arc since we always interpolate `look_ang` now, so lets just not.
2021-04-20 21:12:17 +10:00
Mitchell Richters 321bfe86f8 - `DSkippableScreenJob::OnEvent()`: Ensure previously ignored keys don't cause a screenjob to skip.
* Volume up/down on the keyboard when trying to listen to a cut-scene shouldn't skip it.
2021-04-20 20:07:20 +10:00
Christoph Oelckers ccdf9d13f1 - do not render sprites that are extremely close to the camera.
These can temorarily cover the entire screen so everything with a distance of less than 4 map units will now be skipped if it is a face sprite.
2021-04-20 00:15:11 +02:00
Christoph Oelckers a919e526ec - SW: the intro's sound may not be paused when the menu opens. 2021-04-19 21:39:44 +02:00
Mitchell Richters de06030ea0 - gameinput.cpp: Make `sethorizon()`, `applylook()` and `calcviewpitch()` class functions of `PlayerHorizon` and `PlayerAngle` where appropriate. 2021-04-19 20:50:10 +10:00
Mitchell Richters 171d541112 Merge branch 'master' into newrenderer 2021-04-18 10:05:10 +10:00
Christoph Oelckers 27ca71a6ec - allow specifying a .def file in GAMEINFO.
This will be loaded on top of the regular .def files and not replace them.
2021-04-17 23:52:45 +02:00
Christoph Oelckers eff7d66742 - fixed Clang compilation error. 2021-04-17 18:47:15 +02:00
Christoph Oelckers cdf89b9175 - portal rendering fix when viewing through two-sided walls outside the actual portal area.
If there's more portal area behind such a line its range in the clipper needs to be cleared again.
2021-04-17 18:32:40 +02:00
Christoph Oelckers 82194bbf6b Merge branch 'master' into newrenderer
# Conflicts:
#	source/games/exhumed/src/2d.cpp
2021-04-17 13:22:30 +02:00
Christoph Oelckers cd58b1d055 - made the tile size getters a bit more robust.
They should not crash on invalid sprites.
2021-04-17 12:40:23 +02:00
Christoph Oelckers 962e313eb2 - fixed screen job fadeout. 2021-04-17 00:16:18 +02:00
Christoph Oelckers 2b9a527aba - added a 'Start' method to DScreenJob.
Since the menu pauses the ticker this is needed to perform initial setup before the first frame.
2021-04-16 23:29:53 +02:00
Christoph Oelckers 584e4bfb4a - explicitly check for opening the console when running a screen job. 2021-04-16 22:39:48 +02:00
Christoph Oelckers 3910146740 - skip the fade-in of the screen job if it starts while the game is paused.
While this works with the current code it simply does not look good.
2021-04-16 22:21:57 +02:00
Christoph Oelckers f28aa8f06c - properly pause streaming soundtracks of movies as well.
This is not relevant for any of the stock movies as they use separate sound files, we need to be aware of mods using the streaming sound capabilities of MVE and SMK.
2021-04-16 22:14:11 +02:00
Christoph Oelckers 1852c0b802 - properly pause the screen job player if the menu is open.
Still needs a bit of work for movies with embedded streaming sound.
2021-04-16 22:03:01 +02:00
Christoph Oelckers 2942e011bf - cleaned up the screen job's fade handling, now that the jobs no longer depend on an external timer. 2021-04-16 21:27:54 +02:00
Christoph Oelckers e580407d7d - the remaining Exhumed screens.
These are not tested yet, a bit more work is needed to allow this.
2021-04-16 20:48:40 +02:00
Christoph Oelckers fed15a79e4 - Exhumed's intro screens. 2021-04-16 20:08:20 +02:00
Christoph Oelckers 4950b556c9 - handled SW's screens. 2021-04-16 18:43:59 +02:00
Christoph Oelckers 2a2c85c082 - migrated Duke's intro images and the first episode's ending animation. 2021-04-16 17:24:59 +02:00
Christoph Oelckers 6ed1d5e678 - DBlackScreen and DImageScreen migrated to event-based handling. 2021-04-16 17:24:58 +02:00
Christoph Oelckers aad6158288 - cleanup of movie player code, migration to event interface. 2021-04-16 17:24:58 +02:00
Christoph Oelckers dbd3e1de44 - Screen Job refactoring WIP.
Framework to let them handle proper input events.
Not used yet.
2021-04-16 17:24:58 +02:00
Christoph Oelckers 6cb84dc554 - split out the movie player into its own file. 2021-04-15 23:55:29 +02:00
Christoph Oelckers dc8b72b2ce Merge branch 'master' into newrenderer2
# Conflicts:
#	source/games/duke/src/actors.cpp
#	source/games/duke/src/hudweapon_d.cpp
#	source/games/duke/src/hudweapon_r.cpp
#	source/games/duke/src/render.cpp
2021-04-15 19:34:03 +02:00
Christoph Oelckers 61a6321cd6 - Exhumed: Change map command to start the level directly without going through the scrolling map. 2021-04-15 18:55:54 +02:00
Mitchell Richters a4895cb270 - All Games: Allow for HUD interpolation to be disabled.
* Requested by users, really don't know why...
* Interpolation values are guarded by the CVAR.
* For Blood, integer truncation is employed just like original game.
* For all games where more precise sine/cosine math has been utilised, no changes have been made.
2021-04-15 13:35:53 +10:00
Mitchell Richters 92d1d7fbde - Fix potential overflow issue in `binangle::tosigned()` and `getincanglebam()`. 2021-04-15 08:25:08 +10:00
Christoph Oelckers 9a58299bee Merge branch 'master' into newrenderer2 2021-04-14 22:37:59 +02:00
Christoph Oelckers f83e678ea0 - use the smooth ratio from the game logic in the renderer instead of calling I_GetTimeFrac again.
Unlike the higher level code this does not check for game over conditions.
2021-04-14 21:17:32 +02:00
Christoph Oelckers 2b1072eb91 - fixed bad sector addressing in flat sprites drawer. 2021-04-14 19:17:40 +02:00
Christoph Oelckers 5c306c61d6 - better fix for shadow rendering. 2021-04-14 14:46:15 +02:00
Christoph Oelckers bc007d75de - make map art work. 2021-04-14 14:16:09 +02:00
Christoph Oelckers f4ec9a1921 - 4 more .def commands ported 2021-04-13 18:14:46 +02:00
Christoph Oelckers b5dbc3cf29 - allow specifying startup .con files via GAMEINFO. 2021-04-13 18:08:55 +02:00
Christoph Oelckers 4fe3c50c7c - used the newly added game ID as reference for GAMEINFO to autoselect which game to start a mod with.
While in GZDoom this uses the IWAD name, the same approach is a lot more problematic here because of name duplications with far more incompatible content.
So this allows targeting a group of base games instead of one specific version.
2021-04-13 18:08:55 +02:00
Christoph Oelckers 6ad3ac8ef9 - added GameID field to GrpInfo.
This is for allowing new features easier referencing of the various records.
2021-04-13 18:08:55 +02:00
Christoph Oelckers 230312e7f3 - re-fixed Blood skill selection. 2021-04-13 18:08:55 +02:00
Christoph Oelckers 88fb2185fa - Blood: default skill is 2, not 3. 2021-04-13 00:31:49 +02:00
Christoph Oelckers 92cdec077d - fixed some bogus range checks in automap code. 2021-04-12 20:54:12 +02:00
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 9598b626c9 Merge branch 'master' into newrenderer2 2021-04-12 20:03:50 +02:00
Christoph Oelckers aed7e8166e - fixed setup of startup title. 2021-04-12 19:39:42 +02:00
Christoph Oelckers 89be30b720 - handle fullbright sprite hackery using negative shade values. 2021-04-12 18:57:10 +02:00
Christoph Oelckers bf019ac028 - Build must draw the sky for completely closed sectors as well. 2021-04-12 16:31:44 +02:00
Christoph Oelckers 3cc05e5532 - fixed handling of single-tile skies with palette translation. 2021-04-12 16:00:00 +02:00
Christoph Oelckers 26d737c279 - fixed double-add of xoffset for wall sprites. 2021-04-12 15:50:52 +02:00
Christoph Oelckers 10d0de8dbf Merge branch 'master' into newrenderer2 2021-04-12 15:06:12 +02:00
Christoph Oelckers a15ac43722 - enable embedding of blood.rff and sounds.rff in mod archives when playing Blood
Some mods provide pregenerated resources, this allows loading them without picking them apart first.
2021-04-12 00:31:36 +02:00
Christoph Oelckers f87e40131f - Blood: add a dummy sound entry at index 0.
Parts of the sound system treat entry 0 as "no sound" so nothing placed there would play.
This made the one custom sound in "The Way of Ira" not play because as the last sound being defined it ended up in the first, invalid slot.
2021-04-12 00:31:36 +02:00
Christoph Oelckers 135dd1f081 - added PlaySound CCNDs. 2021-04-12 00:31:23 +02:00
Christoph Oelckers ef95754e87 - fixed bad texture checks. 2021-04-11 18:38:26 +02:00
Christoph Oelckers aebcc13c4a - migrated voxel parsing stuff. 2021-04-11 18:37:11 +02:00
Christoph Oelckers c33eea2540 - migrating 'tint .def command. 2021-04-11 15:23:42 +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
Christoph Oelckers 0ee28fb45e - also handle SW's voxels. 2021-04-11 13:38:23 +02:00
Christoph Oelckers e5e23cd63c - make sure voxels are being precached.
In Blood's case it also needs to check the game-side array to find everything.
2021-04-11 13:19:48 +02:00
Christoph Oelckers e4cf768fa8 - call StartPrecaching to keep Vulkan happy. 2021-04-11 10:50:04 +02:00
Christoph Oelckers 9fd3ab6b5e - fixed texture precaching.
After the migration to GZDoom's full backend this never created any textureds when precaching things.
2021-04-11 09:59:55 +02:00
Mitchell Richters f343bd8d5e - Fix death camera issues stemming from f254eeb465.
* Adjustment in `__addadjustment()` needs to be signed.
* Output of `bvectangbam()` needs to be signed before Duke/SW left-shift the value.
2021-04-11 17:52:29 +10:00
Mitchell Richters 534271c62a - PlayerHorizon::interpolatedsum(): Cut over interpolation code to inline functions that was missed when doing e76f63e2c0. 2021-04-11 17:50:32 +10:00
Mitchell Richters 656705bcd7 - binangle: Add `signedrad()` and `signeddeg()` methods for consistency with the unsigned methods.
* Left out from f254eeb465.
2021-04-11 17:02:44 +10: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 184d9be6b1 - fixed palette setup for duplicate base palettes.
Due to some old code it could happen that these weren't fully set up and missed their translations.
Fixes #301 - Blood's invulnerability palette is identical to the base.
2021-04-10 21:42:53 +02:00
Christoph Oelckers addfe4e904 - activate the progress bar on the startup screen. 2021-04-10 19:28:46 +02:00
Christoph Oelckers db5fbe3bbb - make the startup banner in the initial console window work. 2021-04-10 19:14:30 +02:00
Christoph Oelckers a5ed7ba8a3 - two more simple .def commands. 2021-04-10 16:35:29 +02:00
Christoph Oelckers 6b684e74ba - migrated 'texture' .def command. 2021-04-10 14:09:08 +02:00
Christoph Oelckers 057b8a7354 - cleanup of bvectan family of functions.
This can be greatly simplified to a single bvectangbam function using atan2 directly.
2021-04-10 12:54:29 +02:00
Christoph Oelckers 35221188db - inlined Clipper::PointToAngle 2021-04-10 10:56:11 +02:00
Christoph Oelckers 2e191f2742 - consolidated the SetLightAndFog code fragments. 2021-04-10 10:34:20 +02:00
Mitchell Richters 8ebd1a9ebc - binaryangle.h: Clean up `HorizToPitch()` since we're on the new renderer. 2021-04-10 10:06:30 +10:00
Mitchell Richters 28fb752446 - Replace `gethiq16angle()` with `bvectangbam()` in renderer code. This addresses some observed clipping issues in the new renderer. 2021-04-10 09:23:02 +10:00
Christoph Oelckers e0dc261dfd - fixed edge case in wall sorter when the camera is exactly on a line that's being checked. 2021-04-10 00:05:29 +02:00
Christoph Oelckers 345275db5d - better handling for portal lines having sloped back sectors.
This is a very ugly special case that probably needs a bit more work to get right, for now this should be enough as this combination is rather rare.
2021-04-09 22:48:16 +02:00
Christoph Oelckers ff0a3df302 - fixed extended music lookup again.
# Conflicts:
#	source/core/parsefuncs.h
2021-04-09 21:28:23 +02:00
Christoph Oelckers 2084c53538 - fixed extended music lookup again. 2021-04-09 21:21:53 +02:00
Christoph Oelckers 333581a084 Merge branch 'master' into newrenderer2
# Conflicts:
#	source/build/src/defs.cpp
2021-04-09 19:57:56 +02:00
Christoph Oelckers fb02b38279 - better .def loading logic.
To allow cumulative loading without interfering with other ports, Raze will now look for files called xxxx-raze.def, where xxxx is the default .def name (e.g. duke3d-raze.def for Duke3D.) and if that is found, cumulatively load all same-named files - it will fall back on the default name if no such thing is found.
-def still overrides both and will not cumulatively load.
2021-04-09 14:30:01 +02:00
Christoph Oelckers 778a75c097 - fixed rffdefineid handler passing a bad file name to the backend. 2021-04-08 21:36:52 +02:00
Christoph Oelckers 9f08f9786a - consolidated a bit of dead content in .def parser. 2021-04-08 20:03:50 +02:00
Christoph Oelckers c9483353ff - some more translucency checks. 2021-04-08 19:56:18 +02:00
Christoph Oelckers 1362a7ebc5 - added extended translucency support and did a bit of code consolidation. 2021-04-08 19:45:18 +02:00
Christoph Oelckers a530dfbe35 Merge branch 'master' into newrenderer2 2021-04-08 18:52:54 +02:00
Christoph Oelckers 51c4c47183 - block manual advancing of intermission screens when already fading out.
This seems to cause some serious stability issues with how they handle the 2D drawer.
2021-04-08 18:01:42 +02:00
Christoph Oelckers 793d2d99ef - re-fixed the music lookup. 2021-04-08 17:46:53 +02:00
Christoph Oelckers fc1fbfe8b3 - fixed .def 'music' parsing.
This was incomplete and just ignored Duke's special music, and the levelnum generation used an outdated formula so that it never managed to assign any music to the maps.
2021-04-08 16:35:26 +02:00
Christoph Oelckers e2f570a70a - fixed: extended sound lookup must check the sound/ folder. 2021-04-08 16:05:32 +02:00
Christoph Oelckers 1439897b65 - fixed extended music lookup.
The logic was inverted for extended lookup which always resulted in failure to find the song.
2021-04-08 15:55:37 +02:00
Christoph Oelckers cecd34efc7 - moved a bit more script parsing functionality into the backend and tried it out on the 'skybox' command. 2021-04-08 14:00:08 +02:00
Christoph Oelckers 4d29cd2df2 - I shouldn't have used WT's skies as reference - they got front and back faces swapped. 2021-04-08 13:54:58 +02:00
Christoph Oelckers 38ecfc8fa5 - added handling for cubemapped skyboxes. 2021-04-08 12:47:31 +02:00
Christoph Oelckers b68512ef88 - on closer inspection, do not draw skies on intra-sky lines ever - the renderer already takes care of this elsewhere. 2021-04-08 10:10:15 +02:00
Christoph Oelckers d348377bd8 - when drawing skies on walls where both sides are sky, use the backside's texture.
This fixes a sky anomaly in RR's E1L1.
2021-04-08 09:45:17 +02:00
Christoph Oelckers 4cdc39c9b9 Merge branch 'master' into newrenderer2 2021-04-08 08:55:41 +02:00
Christoph Oelckers 58fb938aa7 - block opening of the menu in the fade out phase of a screenjob and in Exhumed's map/intermission screens.
At these places there's some inteference that can bring the engine into an unstable state.
This is not a real fix, just a quick workaround. The actual problem requires closer examination why these are the only places where this happens.
2021-04-07 19:39:48 +02:00
Christoph Oelckers 7a03967ceb - fixed clipping info not properly reset when rendering the scene in two passes.
We need to reset the gotsector array for that, but since we also need the accumulate result of both passes there's now two such arrays.
2021-04-07 16:52:17 +02:00
Christoph Oelckers caa8efd3d5 - fixed renderer to avoid bunches of walls that wrap around behind the camera's back. 2021-04-07 16:09:25 +02:00
Christoph Oelckers 4bd44f9d62 - flat sprites use different visibility rules.
Hooray, Build engine, yet another totally nonsensical magic factor with absolutely no reason why...
2021-04-07 12:58:45 +02:00
Christoph Oelckers 6ad0089524 - fixed flat sprites using the sector bit names for checking for being flipped.
Thank you, autocompletion... :(
2021-04-07 12:39:12 +02:00
Christoph Oelckers 59f18f5fa7 - ensure that all HWSprites are oriented with z1 > z2.
This is required by the sorting code to work as intended.
2021-04-07 12:31:47 +02:00
Christoph Oelckers f9f1d591b3 - must set up fog before textures.
Otherwise the PickTexture callback won't get all needed info.
2021-04-07 10:30:49 +02:00
Christoph Oelckers 3d846f341a - fixed a major clipping issue with the new renderer.
* the bunch drawer can at most process an angular range of 180°. If this gets exceeded it can run into wraparound issues that may cause holes in the geometry.
* there was no clipping to the current field of view so it always checked the full 360°.
2021-04-07 00:02:36 +02:00
Christoph Oelckers d823ae255e - fixed view clipping for portal sectors.
All lines within the portal must neither be added to the clipper nor checked for obstruction by other parts of the map.
2021-04-06 19:25:40 +02:00
Christoph Oelckers 5c2335bbeb - encapsulate setuptile(range) parsing in separate functions. 2021-04-06 16:22:24 +02:00
Christoph Oelckers 0b79649dc2 Merge branch 'master' into newrenderer2 2021-04-06 16:14:21 +02:00
Christoph Oelckers d193e199f1 - reorganized hightile offset storage. 2021-04-06 15:55:33 +02:00
Christoph Oelckers 424c0ce3f4 - testing some script parser improvements. 2021-04-06 15:07:12 +02:00
Christoph Oelckers fc314b6616 - allow loading Zips where all content is in a subdirectory.
The same logic as in GZDoom applies: The root must not have any other content and the subdirectory must contain identifiable game content.
Some handling was also added to strip out macOS resource fork folders because they can contain data that can confuse file detection.
2021-04-06 01:06:03 +02:00
Mitchell Richters 5984fda8a1 - PlayerAngle: Repair issues with `addadjustment()` method following changes in 4ffe004483 that were affecting negative input. 2021-04-06 06:01:54 +10:00
Christoph Oelckers 16ad5f0cc8 - fixed sky rendering in palette emulation mode.
The sky dome drawer cannot work with indexed textures, but since they are fullbright anyway we can just temporarily disable it.
2021-04-05 21:53:19 +02:00
Christoph Oelckers e098e0ca2e - added VR mode init code as this is actually functional with the new renderer.
Also moved a few things out of gl_texture.cpp as this file is scheduled to go away with Polymost.
2021-04-05 20:12:11 +02:00
Christoph Oelckers 7c4e9ea87e - moved palette manager for indexed textures out of glbackend 2021-04-05 20:00:21 +02:00
Christoph Oelckers 9a46fa7ef0 Merge branch 'master' into newrenderer2 2021-04-05 19:20:56 +02:00
Christoph Oelckers 869433ee2e - fixed invalidation of programmatic textures.
This is only relevant for Vulkan because it stores the descriptor sets with the material, not the hardware texture.
2021-04-05 19:18:57 +02:00
Christoph Oelckers f6b46e9f63 - added a few missing init calls. 2021-04-05 18:05:44 +02:00
Christoph Oelckers 7a9e58c31e - removed redundant cstat.h file.
Constants are already defined in buildtypes.h
2021-04-05 18:05:43 +02:00
Christoph Oelckers e30dc82676 - Cleanup of the voxel code.
* moving polymost_voxdraw into polymost.cpp.
* consolidated all remaining voxel code in hw_voxels.cpp. All original Build voxel code is completely gone now, except for polymost_voxdraw, so this got moved out of the build/ folder.
* integrate Blood's voxel init code into the main function.
* some further cleanup was allowed as a result of this, so engineInit is gone now because these parts can now be done outside the games' app_init functions.
2021-04-05 18:05:43 +02:00
Mitchell Richters ba90f444dd - PlayerAngle: Repair issues with `addadjustment()` method following changes in 4ffe004483 that were affecting negative input. 2021-04-05 21:41:11 +10:00
Christoph Oelckers 87efc84c84 - enable palette emulation for the new renderer. 2021-04-05 13:05:31 +02:00
Christoph Oelckers de2df926e1 - fixed render timing. 2021-04-05 11:54:28 +02:00
Mitchell Richters 172e3996bb - `HWSprite::Process()`: Added x-off-by-one-fix for sprites similar to yspans from b7bad558da. 2021-04-05 19:37:00 +10:00
Christoph Oelckers ba2defeb14 Merge branch 'master' into newrenderer2 2021-04-05 10:34:34 +02:00
Christoph Oelckers ba41bb4c61 - fixed the viewport setup.
There were two problems here - the math for calculating the rect was wrong and the initial aspect ratio was also not correct.
2021-04-05 10:34:03 +02:00
Christoph Oelckers 008391a2ad - license correction for ct_chat.cpp
This was supposed to get the same treatment as d_net.cpp, i.e get the old license restored and be released under a duplicate GPL/Doom Source license but it was somehow missed when it got added. Also removed all leftover Doom specific parts.
2021-04-05 08:59:06 +02:00
Christoph Oelckers 658712d893 - removed duplicate d_gui.h file. 2021-04-05 08:56:44 +02:00
Christoph Oelckers 8e31c34b06 - fixed tileImportFromTexture.
* the parser read numbers with leading zeros as octal, which is not wanted here
* texture lookup by file name must be forced for root directory entries.
2021-04-04 21:02:04 +02:00
Christoph Oelckers 8055ff1d86 - fixed tileImportFromTexture.
* the parser read numbers with leading zeros as octal, which is not wanted here
* texture lookup by file name must be forced for root directory entries.
2021-04-04 21:00:41 +02:00
Christoph Oelckers 6315a8b039 - removed now obsolete #define. 2021-04-04 20:41:44 +02:00
Christoph Oelckers c303884274 - better handling for Duke's scrolling cloudy skies.
* Using the Doom-style dome here because it looks better.
* this necessitated changes to the backend to allow both types of sky domes at the same time
* do not clamp panning fields for cloudy sky with the new renderer because this makes the texture jump.
2021-04-04 20:35:38 +02:00
Christoph Oelckers 39c457bbf2 - removed a few unused CVARs carried over from GZDoom. 2021-04-04 19:35:12 +02:00
Christoph Oelckers ea91b5ba5d - added a map patch for SW:WT's 'skyline' map.
This contains a badly tagged sky sector that makes the new renderer glitch out.
2021-04-04 18:57:03 +02:00
Christoph Oelckers 1201cc71ef - fixed voxel rendering.
No, that 'while' was even pointless in Polymost, much more here where it runs within another loop.
2021-04-04 13:45:43 +02:00
Christoph Oelckers d76c2ccc34 - voxel rotation. 2021-04-04 13:24:33 +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 d71ebace97 - fixed fog density of the new renderer.
The actual value needs to be a lot lower than for Polymost due to the different projection.
2021-04-03 22:51:31 +02:00
Christoph Oelckers 952bccbf5f - added a check for game-side-defined voxels when discarding one-sided wall sprites viewed from the back. 2021-04-03 21:49:28 +02:00
Christoph Oelckers d7a13fc9f2 - same for the new renderer. 2021-04-03 21:40:32 +02:00
Christoph Oelckers 9c95c902c7 - added a check for game-side-defined voxels when discarding one-sided wall sprites viewed from the back. 2021-04-03 21:40:16 +02:00
Christoph Oelckers ab36b86a59 - sky tweaking
* Build skies need a different mesh for the dome - the one from GZDoom distorts them too much.
* made adjustment to the positioning math after redoing the mesh
* Exhumed abuses some strange effect of the original sky placement math which means the y-offsetting must be disabled for this game.
* RRRA sky initialization fixed. It must be done after setting up the tiles.
2021-04-03 21:06:02 +02:00
Christoph Oelckers 82bcd90755 - fixed some remaining triangulation issues. 2021-04-03 15:10:06 +02:00
Christoph Oelckers f7dd0ec4a2 - use ZDoom's node builder for triangulating sectors that fail the simple approach.
As it turned out, the triangulator only works fine for regular polygons, but creates incomplete meshes for sectors with multiple sections or some degenerate areas, which are quite common with swinging doors.
The node builder is more costly and creates wall splits, of course, but it does not create broken output for degenerate sectors so it's a good fallback.
2021-04-03 12:44:30 +02:00
Christoph Oelckers 3ff3c6f50e - fixed: stale, but still active interpolations for wall positions should not trigger sector retriangulation. 2021-04-03 10:26:02 +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 54eee347a6 - do y-flipping of wall textures correctly.
1.f - h is not correct for NPOT texures due to hpw they tile.
2021-04-02 22:50:53 +02:00
Christoph Oelckers 7446d0441b - use LGPLv2 for all Raze specific render code. 2021-04-02 18:22:54 +02:00
Christoph Oelckers 638f19172a - voxel rendering.
The stock voxels of Blood and SW seem to work so far, but not all edge cases have been tested.
2021-04-02 18:20:07 +02:00
Mitchell Richters e3c2757f1c - sethorizon(): Ensure `SB_CENTERVIEW` bit is always cleared if horizon target is set. 2021-04-02 23:23:24 +11:00
Mitchell Richters 9c01bde44e - gameinput.cpp: Block player input within `sethorizon()` and `applylook()` if target for each has been set by the ticker.
* Stops players having the ability to provide input and fight the system trying to set an input.
2021-04-02 22:47:19 +11:00
Mitchell Richters 4ffe004483 - Further work within `PlayerAngle` and `PlayerHorizon` structs following 39fe9efaff and bf2d8078a4.
* Reduce code repetition.
* Clamp incoming horizon when using `settarget()` methods.
* Eliminate double calculation that was occurring in `processhelpers()`.
2021-04-02 22:47:17 +11: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 6afbb82e66 - fixed one-sided wall sprite checks. 2021-04-02 09:04:13 +02:00
Christoph Oelckers 80e5cd0dc5 - fixed some automap issues:
* Blood's automap was not drawn at all.
* SW's automap always showed all sectors
* SW's player sprite was not rendered.
* Non-automap: Forward gotsector to the game code because there's still a few places in Blood that need it.
2021-04-01 20:47:05 +02:00
Christoph Oelckers 85020b374a - use texture clamping on non-tiled walls. 2021-04-01 19:21:24 +02:00
Christoph Oelckers e1df17964e - fixed handling of SW's shadows.
An out of range shade will only work without fog.
2021-04-01 19:10:43 +02:00
Mitchell Richters 88695ef554 Merge branch 'master' into newrenderer2 2021-04-01 16:49:07 +11:00
Mitchell Richters c076310e34 - `InputState::ClearAllInput()`: Only clear `crouch_toggle` bool if outside of a level, and resend `SB_CROUCH` sync bit if inside a level and `crouch_toggle` is true.
* Fixes #287.
2021-04-01 13:46:16 +11:00
Mitchell Richters 4321efa21c - Re-arrange `swaddons[]` const char array so that `/gameroot` is picked up first following changes in f4b27bbd27.
* Since f4b27bbd27, `D:/Program Files (x86)/Steam/steamapps/common/Shadow Warrior Classic/gameroot/addons/Sw.grp` was being picked up instead of `D:/Program Files (x86)/Steam/steamapps/common/Shadow Warrior Classic/gameroot/SW.GRP`.
* Fixes #289.
2021-04-01 12:25:57 +11:00
Mitchell Richters 029f8807df - Make `360. / 2048.` a constant expression and replace all uses throughout code. 2021-04-01 10:42:22 +11:00
Mitchell Richters aa35b6a479 - binaryangle.h: Fix constexpr issue on GCC builds following bf2d8078a4. 2021-04-01 08:32:07 +11:00
Christoph Oelckers 3c4429f2a8 - fixed sector mesh generator to allow sectors with non-continuous wall loops.
Blood has a few such sectors.
2021-03-31 21:26:57 +02:00
Christoph Oelckers 4cc0afe587 - fixed texture coordinate generation for sloped planes.
Since these depend on the slope, the sector's ceiling and floorz need to be the same as for the mesh when creating them.
2021-03-31 20:20:19 +02:00
Mitchell Richters c630ad9110 Revert "- subjective fix to Duke 3D's RPG harsh recoil."
This reverts commit 839a7bcbe4.

Revert "- Duke: Restore RPG harsh recoil behind a CVAR."

This reverts commit 88a49b0d22.

# Conflicts:
#	source/core/gamecvars.cpp
#	source/core/gamecvars.h
2021-03-31 20:35:18 +11:00
Mitchell Richters bf2d8078a4 - PlayerHorizon: Replicate changes to `settarget()` and `processhelpers()` methods from 39fe9efaff. 2021-03-31 19:44:50 +11:00
Mitchell Richters 39fe9efaff - PlayerAngle: Adjust how `settarget()` methods store angle for unsynchronised angle adjustments and adjust `processhelpers()` method accordingly.
* Repairs angle issues raised in https://forum.zdoom.org/viewtopic.php?f=340&p=1185365.
2021-03-31 19:43:41 +11:00
Christoph Oelckers 7bea8ad6ba - fixed texture overlays for SW's sector portals. 2021-03-30 23:27:11 +02:00
Christoph Oelckers 15fb89d08f - workaround for SO interpolation potentially writing bad values to wall positions.
That messed up interpolation code really needs to be thrown away and replaced later, for now this has to suffice.
2021-03-30 21:30:12 +02:00
Christoph Oelckers a4174352c7 - keep separate sector compare data for floor and ceiling.
Otherwise there can be problems if floor and ceiling change at the same time.
2021-03-30 20:43:52 +02:00
Christoph Oelckers 9cccd6f89b - store plane meshes without height information.
This avoids retriangulation when just the plane's z changes.
2021-03-30 20:30:35 +02:00
Christoph Oelckers 6239734bdc - always create geometry for flat sprites in the collection pass.
This still depends on Build's tsprite array which is global so its contents are too volatile for delayed geometry generation.
This needs to be refactored later but it can only be done when Polymost is gone.
2021-03-30 19:58:42 +02:00
Christoph Oelckers 4647a0b2bc - fixed cases of small textures being used for the sky.
Case in Point: DukeDC uses a 64x64 texture with palette remap for the sky.
2021-03-29 23:25:43 +02:00
Christoph Oelckers 6fcb6fa1d5 - sky positioning tweaks.
It does not use the panning info of the wall and needs a texture height relative adjustment.
2021-03-29 22:34:46 +02:00
Christoph Oelckers 92bb9c5319 - fixed display of player in mirrors. 2021-03-29 21:48:23 +02:00
Christoph Oelckers d2a1f9ea88 - fixed issue with constantly regenerating sector ceiling triangle meshes. 2021-03-29 20:29:09 +02:00
Christoph Oelckers ab9c7de147 - use texture clamping for all sprites. 2021-03-29 20:18:49 +02:00
Christoph Oelckers 2d0360fa55 - apply depth bias to translucent geometry.
This is necessary to handle wall and floor sprites placed on actual walls and floors work as intended.
2021-03-29 19:45:04 +02:00
Christoph Oelckers b93502f0d0 - fixed bad assignments for vertex compare data in sector triangulator. 2021-03-29 10:15:06 +02:00
Christoph Oelckers e0fe8d2ed9 - fixed interpolation issues with sector objects in SW.
SO's vertex interpolation does not use the common framework so it got missed by the sector retriangulation checks.
We need to check two wall positions as well to make sure that sector movement is properly detected.
2021-03-29 09:25:26 +02:00
Christoph Oelckers 389d61d086 - fixed texture selection for one-sided walls with the one-way flag set. 2021-03-29 09:11:38 +02:00
Christoph Oelckers 18cf208b7d - fixed SW shadows in new renderer.
shade clamping and full sprite sort was missing,
2021-03-28 22:29:13 +02:00
Christoph Oelckers 0ae93318e3 - flip camera textures to have the correct orientation. 2021-03-28 21:00:24 +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 d9ff2fd1e2 - used display size for all texture positioning. 2021-03-28 18:22:30 +02:00
Christoph Oelckers 83760d4974 - fixed a few wall sprite rendering issues.
* masked walls were inserted into the sprite render list, causing sorting issues and depth fighting (see Duke's cameras and the 'closed' sign in Route66/Carnival.map)
* vertical and horizontal wall sprites needed their sorting functions swapped.
* plane clipping for wall sprites used bad coordinates.
2021-03-28 13:09:26 +02:00
Christoph Oelckers b7bad558da - added y-off-by-one-fix for y-centered sprites. 2021-03-28 12:05:29 +02:00
Mitchell Richters ffb956749d - `HWSprite::Process()`: Fix `yoff` adjustment when `spr->cstat & CSTAT_SPRITE_YCENTER`. 2021-03-28 20:46:50 +11:00
Christoph Oelckers 9f48b36627 - redid sprite projection math. 2021-03-28 10:49:34 +02:00
Christoph Oelckers fa44d75e98 - draw regular sprites.
Mostly functional, but the projected size is off.
2021-03-27 23:12:41 +01:00
Christoph Oelckers 7c991d59ac - fixed bad return in sprite processing code. 2021-03-27 15:52:20 +01:00
Christoph Oelckers 0da33096c6 - fixed some wall sprite flickering issues. 2021-03-27 15:24:09 +01:00
Christoph Oelckers d1c23d1ad0 - fixed wall sprite rendering. 2021-03-27 14:18:33 +01:00
Christoph Oelckers efe0d57fca - removed all the decal stubs.
Build has wall sprite for decals so this is redundant and ultimately not usable.
2021-03-27 13:26:11 +01:00
Christoph Oelckers d0f38d7362 - wall sprite WIP. 2021-03-27 13:22:34 +01:00
Christoph Oelckers 1dfb2672a8 - flat sprite rendering! 2021-03-26 20:28:44 +01:00
Christoph Oelckers fd0e9824b6 - call the game specific analyzesprites functions. 2021-03-26 15:06:14 +01:00
Christoph Oelckers 098db655ab - did some fudging on the scene viewport until thinks looked right again.
I have no idea, though, why it has to be this particular formula, though. It doesn't seem to make any sense.
2021-03-26 01:55:24 +01:00
Christoph Oelckers be7bca8e9e - expose animatesprite set of functions to new renderer as a callback. 2021-03-26 10:05:01 +01:00
Christoph Oelckers 0b1e81023f - added sprite collection loop to ProcessSector and did a bit of cleanup on the TSprite code. 2021-03-25 23:16:32 +01:00
Christoph Oelckers f6568fee0c - rewrote SW portal setup to use static data instead of ad-hoc setup.
This was by far the messiest game, there's two reasons for this.
First, the portal links do not need to be in an actual portal sector, so they cannot be used to detect portal sectors.
Second, the game moves portals in place, so all offsets are (0,0,0) so that not even these can be used for detection.

The only working method is the super-complicated original way to look up portals at run time, just being done at map start.
Having static portal links should reduce the render glitches quite significantly because the renderer knows now which sectors belong to a portal and can use this information to ensure proper processing.
2021-03-25 21:21:48 +01:00
Christoph Oelckers af54cf3a3c - made SW's sector portals operational.
Unlike the other games these are so poorly defined that the engine has to rely on the original fudging to pick the proper portal to link to. As a result they are just as limited as they always were.
In addition all the portal search code had to be reinstated.
2021-03-25 16:45:40 +01:00
Christoph Oelckers 168b0385cf - moved shadeToLight out of build.h. 2021-03-25 09:13:59 +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 13bbf0a4f9 - sector portals in RRRA are working. 2021-03-24 23:55:10 +01:00
Christoph Oelckers dbbdfaa4ba - sector portals in Blood are working. 2021-03-24 23:11:06 +01:00
Christoph Oelckers b7e8815133 - some further lightening of compat.h. 2021-03-24 21:13:36 +01:00
Christoph Oelckers 022edd2dc2 - cleaned engine.cpp off all code exclusive to the Polymost renderer. 2021-03-24 19:45:42 +01:00
Christoph Oelckers e47b4507e4 - serialize the sector portal offset table.
Due to where this happens, the init code for these portals cannot be run when loading a savegame so it has to be saved.
2021-03-24 18:42:00 +01:00
Christoph Oelckers 1297e4ed02 - SW's line to sprite portals are working now.
Also fixed a clipper issue with Blood's line to line portals.
2021-03-24 10:33:50 +01:00
Christoph Oelckers 9903b39cf5 - make Blood's line to line portal operational.
Note that these portals cannot be rotated, so to preserve bad setups this limitation needs to be replicated.
If we want proper line to line portals for all games they need to be made a different portal type.
2021-03-24 09:04:48 +01:00
Christoph Oelckers 829be9b56b - use value parameters for arguments in binaryangle.h. 2021-03-24 09:02:07 +01:00
Christoph Oelckers 087da46522 - finally got mirrors working. 2021-03-23 21:23:49 +01:00
Christoph Oelckers c681fa6699 - use Build math for mirror transitions. 2021-03-23 20:30:19 +01:00
Christoph Oelckers 46e0b16370 - fixed ordering issues in drawer
* do not check the clipper in the collection pass to reduce number of bunches. Clipping here brings no performance gain.
* fixed the loop reset in FindClosestBunch to actually process the array's first element.
2021-03-23 19:20:06 +01:00
Christoph Oelckers 0c7f05a416 - let the clipper work exclusively on Build coordinates. 2021-03-22 23:40:25 +01:00
Christoph Oelckers 096ce5e025 - initial sky fixes. 2021-03-22 16:02:52 +01:00
Christoph Oelckers e884a418f8 - portal WIP 2021-03-22 12:07:29 +01:00
Christoph Oelckers 63f057d93f - portal and sky WIP. 2021-03-21 22:48:01 +01:00
Christoph Oelckers 75159e06c0 - uncommented the portal code in hw_walls.cpp. 2021-03-21 19:36:55 +01:00
Christoph Oelckers 9fe462d358 - adapted GZDoom's portal framework.
Not tested yet and somewhat stripped down, as the portals this needs to support are a lot less complex - plus some of the issues in Doom do not apply here.
2021-03-21 18:41:23 +01:00
Christoph Oelckers a36377111c - engine-side portal setup for Blood and RRRA. 2021-03-21 14:48:35 +01:00
Christoph Oelckers b91441f849 - same render interface rework for Shadow Warrior. 2021-03-21 12:22:50 +01:00
Christoph Oelckers d42ce0ee7e - WIP 2021-03-20 23:01:16 +01:00
Christoph Oelckers 91957e40f1 - moved some original Raze code out if the Build folder. 2021-03-20 17:08:55 +01:00
Christoph Oelckers fedfc2cfa4 - removed global variables that were only being used by the automap drawer plus a few other obsolete things. 2021-03-20 16:46:06 +01:00
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 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 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 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 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 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 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 cb14e3023e - fixed "roll" in maphack parser 2021-03-02 21:47:43 +01:00
sinisterseed 8d5682fa97 - version bump.
We're past 0.8 for some time now, and slowly approaching 1.0 :) .
2021-03-02 17:53:25 +02:00
Mitchell Richters e0f1a83f40 Revert "- SW: Alt implementation for preparing a nuke."
This reverts commit 4fcec5f6d3.

Functionality wasn't working properly, most players will never use it and care only for 100% originality. Was a nice idea, though.

# Conflicts:
#	source/core/gamecvars.cpp
#	source/games/sw/src/panel.cpp
2021-03-02 20:02:20 +11:00
Christoph Oelckers d28d5a5e1f - use real fog, even in palette emulation mode.
Using the palette to apply fog is just far too broken and cannot be kept in check with all the hacks the Build engine allows.
This only works if all elements on screen use the identity translation lookup which is basically never the case.
Real fog, on the other hand, can easily be applied to everything.
2021-02-27 13:30:52 +01:00
Christoph Oelckers 2094b6420f - use local screen size variables in automap code. 2021-02-27 12:30:20 +01:00