Commit graph

1585 commits

Author SHA1 Message Date
Christoph Oelckers
8fee2b3ed7 - save SW's User array as JSON. 2021-04-22 00:03:15 +02:00
Christoph Oelckers
32955621f8 - removed all parental lock garbage from SW.
Better get rid of it as it's a major complication as implemented.
2021-04-22 00:03:15 +02:00
Christoph Oelckers
bbb53bc717 - refactored the main User array into something that's automatically managed. 2021-04-22 00:03:14 +02:00
Christoph Oelckers
cd45a1f035 - made more parts of USER serialization friendly. 2021-04-22 00:03:14 +02:00
Christoph Oelckers
dcb393bc44 - started reorganizing SW's memory management.
Need to get rid of all those unmanaged allocations and present game data in an easily serializable form.
This adds a managed TPointer class that replicates the useful parts of std::unique_pointer but steers clear of its properties that often render it useless.
2021-04-22 00:03:14 +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
f51872db25 Merge branch 'master' into newrenderer 2021-04-20 20:46:06 +02:00
Christoph Oelckers
aaad546729 - palookup. 2021-04-20 20:21:51 +02:00
Christoph Oelckers
9e40e49c2c - generalized the special key handling for skipping cutscenes. 2021-04-20 15:01:26 +02:00
Mitchell Richters
0c5729b0f6 - SW: Ensure all sprite angles are backed up in the ticker.
* Fixes #326.
2021-04-20 21:33:42 +10: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
2f696e1a95 Merge branch 'master' into newrenderer 2021-04-19 20:50:37 +10: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
1daa346fdd - Exhumed: Make SB_CENTERVIEW work properly when cl_syncinput 1 is set. 2021-04-19 20:24:11 +10:00
Mitchell Richters
4eaf05d95e - Duke: Fix bad vehicle speed clamp change from e79c6bacd3.
- Fixes #325.
- 🤦
2021-04-19 19:33:13 +10:00
Mitchell Richters
171d541112 Merge branch 'master' into newrenderer 2021-04-18 10:05:10 +10:00
Mitchell Richters
3961fcc28a - Exhumed: When returning to center after going up/down stairs etc (slope tilting), don't use the backend's aim/look up/down return to center code as it's slower. 2021-04-18 10:04:17 +10:00
Christoph Oelckers
eb912604d2 - RFS compatibility with GDX: The outermost path component can be left out. 2021-04-17 23:59:10 +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
d2c9b5979d - gave key 7 a proper spawn record using the blue outline as image.
A proper definition here is needed to allow dropping this item.
The original code had a picnum of -1 here which caused crashes.
2021-04-17 12:05:37 +02:00
Christoph Oelckers
0cdb7a53ce - more char removal - mostly weapon.cpp 2021-04-17 10:34:12 +02:00
Christoph Oelckers
9828b0228e - made type of shade variables consistent.
Some were char, some signed char and the initializers needed type casts.
This wasn't serious but created a lot of casting noise.
2021-04-17 10:22:00 +02:00
Christoph Oelckers
ada28d8d04 - Blood: replaced 'unsigned char' with 'uint8_t' and 'signed char' with 'int8_t'.
Preparation for getting rid of all those excessively used plain chars which are a menace to code stability.
2021-04-17 10:14:03 +02:00
Christoph Oelckers
839547a9fc - Blood: gave FXDATA meaningful member names 2021-04-17 10:12:40 +02:00
Christoph Oelckers
42b87362ee - When keeping around a dummy sprite, make sure that the engine's utilities cannot find it anymore.
This was causing issues with the master switch sprites in Duke that have to be kept for sound purposes.
Unfortunately, both hitscan and neartag are far too dumb to analyze sprites they may hit in any way and needed some help skipping such sprites.
2021-04-17 09:37:38 +02:00
Christoph Oelckers
091a9b7fef - fixed Exhumed laptop cutscene. 2021-04-17 00:01:28 +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
49e07a47c6 - now that everything is fixed, the map in Exhumed can be initiated from the console. 2021-04-16 22:40:21 +02:00
Christoph Oelckers
03d517c509 - removed debug assert. 2021-04-16 22:16:21 +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
a43259c40c - Exhumed's map. 2021-04-16 20:10:46 +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
9dff494e6c - handle all of RR's screens. 2021-04-16 17:38:05 +02:00
Christoph Oelckers
f4b089b776 - fixed bad sound checkin Duke's intermission. 2021-04-16 17:37:08 +02:00
Christoph Oelckers
7895d67b18 - ported the Duke intermission screen.
This also got its timing code thoroughly cleaned up.
2021-04-16 17:24:59 +02:00
Christoph Oelckers
a78af92959 - migrated the Duke end of episode animations. 2021-04-16 17:24: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
Mitchell Richters
be4fbbf9ec - Exhumed: Hide player panning code behind cl_slopetilting.
* Fixes #303. again.
2021-04-16 23:37:05 +10:00
Christoph Oelckers
9c5f3f3673 - Exhumed: Skip the map when changing levels from the console.
The current screen job implementation does not coexist well with UI elements.
More like a hotfix, the screen job framework needs to be redone for properly handling input.
2021-04-15 23:04:14 +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
96d78ab9e6 - made DukeActor::s a pointer.
As a reference we would never be able to export this to scripting
2021-04-15 19:21:43 +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
e79c6bacd3 - Duke: Clamp RRRA vehicle input in processVehicleInput(). 2021-04-15 18:59:07 +10:00
Mitchell Richters
2176435831 - Duke: Replace sprite z pos numeric values with correct enum values for each game. 2021-04-15 18:02:16 +10:00
Mitchell Richters
6cebd7fca2 Merge branch 'master' into newrenderer2 2021-04-15 18:01:26 +10:00
Mitchell Richters
aeb16e390c - Duke: Add resurrected flag to handle resurrection via cheating or when pissing in RR. 2021-04-15 18:00:58 +10:00
Mitchell Richters
d5b14a8de3 - Duke: Remove some direct array accesses in lieu of player_struct pointer. 2021-04-15 16:34:24 +10:00
Mitchell Richters
242f958c41 - Duke: Clean up some duplicated code in hudweapon_*.cpp files. 2021-04-15 15:49:36 +10: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
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
Mitchell Richters
7b57df3c8f - Exhumed: Redo player panning code.
* Initial implementation from d32dcd5f8e was not working properly and already had some workarounds for when the player was underwater, etc.
* Re-read implementation in GDX and rebased off of it.
* Fixes #303.
2021-04-13 21:56:01 +10:00
Christoph Oelckers
eaebcfcd7d - Exhumed: hotfix for moving on sloped floors 2021-04-13 00:31:50 +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
1e40e93da4 - fixed the vertical offsets of the World Tour skies.
They were rendered too low.
2021-04-12 19:47:16 +02:00
Christoph Oelckers
efe76a6647 - Blood: fixed crash with badly defined drop objects.
Got -1 for picnum there, this was causing crashes.
2021-04-12 16:32:42 +02:00
Christoph Oelckers
10d0de8dbf Merge branch 'master' into newrenderer2 2021-04-12 15:06:12 +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
d25838fe15 - Blood: fixed issue with INI detection when having content added by RFS files. 2021-04-12 00:31:36 +02:00
Christoph Oelckers
9b977ba96e - fixed mixup of values 0 and -1 in sound code.
0 means 'default', -1 means 'silent'. This caused playback issues for useSoundGen. All other places were passing proper volume values along, this is the only one to read the volume from map data.
2021-04-11 22:42:24 +02:00
Christoph Oelckers
6142f9d795 - added CHANF_FORCE flag for forcing non-looped sounds to start, even when sound is paused.
Blood needs this for its PlayerSound controller, which is run right on map load - so without this it wouldn't start the sound when a map is initiated from the console.
2021-04-11 21:14:09 +02:00
Christoph Oelckers
fd6a71cac5 - fixed a random crash with an empty sprite I just experienced. 2021-04-11 21:14:09 +02:00
Christoph Oelckers
aebcc13c4a - migrated voxel parsing stuff. 2021-04-11 18:37:11 +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
32250f704f - mograted Blood's precaching to the backend's implementation. 2021-04-11 12:42:59 +02:00
Christoph Oelckers
6342926871 - disabled the QAV preload calls in Blood.
Aside from not having been functional, this is ultimately more harmful than useful as it forces loading of a large number of textures at the same time during gameplay instead of spreading them out.
2021-04-11 12:10:52 +02:00
Christoph Oelckers
d663d84596 - changed precaching setup for Exhumed.
This looks overly simplistic - I doubt it's enough to catch everything.
2021-04-11 10:54:10 +02:00
Mitchell Richters
e959226914 - Fix RRRA bike/boat angle adjustments following changes in f343bd8d5e.
* Because we're wrapping a negative number around to be unsigned, we need to do that after we've done our bit-shift operations.
2021-04-11 18:34:07 +10:00
Christoph Oelckers
387c62d584 - rewrote SW's precaching code.
* made it palette aware
* use backend facilities to track precached data.
* fixes bug in animation precaching loops - they only precached the base index over and over again.
2021-04-11 10:20:52 +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
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
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
b4d89cbac3 - got rid of the remaining occurences of gethiq16angle and all related tables. 2021-04-10 12:10:28 +02:00
Christoph Oelckers
02dedaad46 - Blood: undid restriction for original QAV for Guns Akimbo shotgun fix. 2021-04-09 22:48:39 +02:00
Christoph Oelckers
19a4c12e6a - Blood: undid restriction for original QAV for Guns Akimbo shotgun fix. 2021-04-09 22:11:16 +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
2820c50f3e - Blood: let the RFS parser handle forward slashes when cutting out the base directory of a given file name. 2021-04-09 18:25:32 +02:00
Christoph Oelckers
a530dfbe35 Merge branch 'master' into newrenderer2 2021-04-08 18:52:54 +02:00
Christoph Oelckers
a53ed46bae - fixed item placement on SW minihud.
Fixes #295
2021-04-08 17:43:56 +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
4cdc39c9b9 Merge branch 'master' into newrenderer2 2021-04-08 08:55:41 +02:00
Christoph Oelckers
a80c5db02b - forgot to save the Exhumed part of the last commit 2021-04-07 21:37:01 +02:00
Christoph Oelckers
68b7628f56 - RRRA: Sector effector type 156 is not supposed to scroll the floor texture. 2021-04-07 18:12:25 +02:00
Christoph Oelckers
3a34043267 Merge branch 'master' into newrenderer2 2021-04-07 15:12:27 +02:00
Christoph Oelckers
4a6a999f89 - SW: fixed interpolation for sector object sprites.
When checking for an existing interpolation it needs to check the actual sprite, not just the interpolation type.
2021-04-07 15:08:26 +02:00
Christoph Oelckers
0b79649dc2 Merge branch 'master' into newrenderer2 2021-04-06 16:14:21 +02:00
Christoph Oelckers
bfcedc2177 - autodetect .inis when loading Blood mods.
This works as long as the loaded mods have one single .ini file in them - in that case it is assumed that it is supposed to replace blood.ini, which will allow dragging & dropping such archives without further user intervention.
2021-04-06 00:57:31 +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
Christoph Oelckers
090b52f783 - fixed animatesprites call in Duke.
This passed z instead of angle.
2021-04-05 12:25:09 +02:00
Christoph Oelckers
ba2defeb14 Merge branch 'master' into newrenderer2 2021-04-05 10:34:34 +02:00
Christoph Oelckers
eb2e77fb75 - Apply fix from EDuke32 commit 7225643e.
Fix undefined behavior/potential OOB access in ST_21_FLOOR_DOOR. g_AnimateGoal does not take a sector number, it takes an animation index, and caps at 1024, not 4096.
2021-04-05 00:14:15 +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
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
55ad51ee1f Merge branch 'master' into newrenderer2 2021-04-04 13:23:51 +02:00
Christoph Oelckers
9828cd7129 - this better have a null check... 2021-04-04 13:02:26 +02:00
Christoph Oelckers
6ebbf1288d - Duke/RR: Don't delete master switch sprites.
The sound system may play sounds on them after their deletion - this resulted in undefined behavior. To ensure properly defined behavior the sprite needs to be retained at least as long as the sound controller may still need it - which cannot be reliably determined so it has to be kept around forever. This would be easier if the sound controller code had proper start and stop events instead of inferring what to do from secondary information.
Fixes #288.
2021-04-04 13:01:32 +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
a298a3d3df - disabled 'isRunning' in Blood entirely.
After discovering yet another misbehaving place in the game I think it can be safely concluded that this is better left off unconditionally.
The only remaining place where this still gets checked is in nnexts, but I wouldn't expect this to work either.
Fixes #292
2021-04-04 09:35:05 +02:00
Christoph Oelckers
ebac57fb4f - fixed music in Blood's menu
This is only supposed to play for the fade-in of the background but needs to stop when the menu appears.
Fixes #291
2021-04-04 09:25:41 +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
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
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
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
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
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
Mitchell Richters
88695ef554 Merge branch 'master' into newrenderer2 2021-04-01 16:49:07 +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
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
760c918e75 - Duke: Remove unnecessary int casts from gameexec.cpp.
* Incoming vars are already int and called functions only accept an int so really just no need at all.
2021-03-31 20:07:36 +11:00
Mitchell Richters
16886895b0 - Duke: DoPlayer(): Ensure SB_CENTERVIEW bit is cleared when setting a horiz target from CON.
* Repairs horizon issues raised in https://forum.zdoom.org/viewtopic.php?f=340&p=1185365.
2021-03-31 19:48:38 +11:00
Christoph Oelckers
7bea8ad6ba - fixed texture overlays for SW's sector portals. 2021-03-30 23:27:11 +02:00
Christoph Oelckers
a84060fda7 - SW: mark sector as dirty in wallmove. 2021-03-30 21:51:37 +02:00
Christoph Oelckers
f6984314b7 - SW: let sector objects properly invalidate the sector they are in. 2021-03-30 21:28:27 +02:00
Christoph Oelckers
92bb9c5319 - fixed display of player in mirrors. 2021-03-29 21:48:23 +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
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
81a690970b - SW: hide the player sprite before calling the renderer. 2021-03-28 15:28:08 +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
fd0e9824b6 - call the game specific analyzesprites functions. 2021-03-26 15:06:14 +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
d8627a2b3f - removed all remains of projection math weirdness from the automap code in the games plus a bit more cleanup of the engine code. 2021-03-24 20:28:58 +01:00
Christoph Oelckers
09a9e14feb - set up engine portals for SW.
Also moving more code to _polymost.cpp which is only needed for ad-hoc lookup of portals with a client side implementation of a two-layer renderer.
2021-03-21 17:04:06 +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
ecd6e68d69 - made render call adjustments to Exhumed.
This one was easy - no special cases at all. :)
2021-03-21 11:48:18 +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
9f36ef69e6 - fixed variable name clash caused by viewUpdateShake's global variables.
removed the redundant call in the Ticker, because all its results are discarded.
Use arguments instead of global variables to pass data around.
2021-03-21 08:58:38 +01:00
Christoph Oelckers
d42ce0ee7e - WIP 2021-03-20 23:01:16 +01:00
Christoph Oelckers
4109a256ac - Blood: cleanup of render code.
Renaming of disassembly variables and moving of disabled Crystal Ball renderer to a separate function.
2021-03-20 19:20:42 +01:00
Christoph Oelckers
91957e40f1 - moved some original Raze code out if the Build folder. 2021-03-20 17:08:55 +01:00