Christoph Oelckers
4ee93de36c
- added 'endofgame' CCMD.
...
Not really good yet, but it does what's needed, i.e. write out the statistics for the current session.
2021-07-17 09:42:59 +02:00
Mitchell Richters
d77e143ee8
- allow palette emulation for indexed hightiles.
2021-07-17 07:40:13 +10:00
Christoph Oelckers
3e76f71f02
- support for indexed hightiles.
2021-07-17 07:40:05 +10:00
Mitchell Richters
d0e6a7ea29
- Allow CON-based games to have multiplayer episodes filtered from menu.
...
* Fixes #461 .
* Fixes #462 .
2021-07-16 20:55:29 +02:00
Christoph Oelckers
e3737d3330
- fixed texture lookup for hightile lookup.
...
Not all commands had the proper flags to also look in the root folder.
2021-07-13 08:38:24 +02:00
alexey.lysiuk
577c6cb374
- fixed crash when parsing malformed .def file
...
This fixes #439
2021-07-11 10:16:26 +03:00
Mitchell Richters
3e30869aeb
- Remove some remains of Redneck Deer Huntin'.
2021-07-11 12:44:31 +10:00
Mitchell Richters
32283037ed
- Use isWW2GI()
in more places.
2021-07-11 12:42:33 +10:00
Mitchell Richters
fe652c9348
- Use isNamWW2GI()
in more places.
2021-07-11 12:41:08 +10:00
Mitchell Richters
aa13b50504
- Use isRR()
in more places.
2021-07-11 12:40:46 +10:00
Mitchell Richters
6894be4ad1
- Use the new isSWALL()
wrapper everywhere.
2021-07-11 12:40:01 +10:00
Mitchell Richters
ffba10a7c5
- SW: Set default skill level to match original release and what the manual says is default.
2021-07-11 12:08:12 +10:00
Mitchell Richters
b5b9452adb
- Optimise fFindDistance2D()
to multiply by inverse rather than divide by a constant.
2021-07-10 22:08:48 +10:00
Mitchell Richters
5d7938c24e
- SW: Rename cl_smoothsway
to cl_swsmoothsway
and enable by default
2021-07-10 22:07:05 +10:00
Christoph Oelckers
62a5a720e8
- Check for maps with bad setup of their wall lists.
...
Lo Wang In Time's map 11 does not include wall 0 into its sector, which caused crashes when trying to triangulate this sector.
2021-07-06 10:29:24 +02:00
Christoph Oelckers
e5cb1976d3
- disable texture name truncation for textures/ directory.
...
Unlike Doom, a similar limit does not exist here and must not be enforced. Any texture from this folder needs to be usable by its full name without extension to be able to replace named tiles.
2021-07-05 22:39:24 +02:00
Christoph Oelckers
2af2d29084
- add hitscan only autoaim for SW.
2021-06-26 12:18:27 +02:00
Christoph Oelckers
e9b2bf9e4e
- shortened the message for not found game data and restrict to non-Windows systems.
2021-06-26 12:10:46 +02:00
Hugo Locurcio
a10018bc36
Display game data path when no game data files are found
...
This helps users find the location where they should place
game data files.
2021-06-26 12:06:35 +02:00
Christoph Oelckers
0f7d3d0cbb
- streamlined and fixed game startup with '-map' option.
...
* Blood: Initialize global pointers in app_init so that they are not NULL.
* consider Mapinfo data when checking for a given level name.
* removed redundant level name output.
2021-06-26 10:11:50 +02:00
Christoph Oelckers
63bc36e3c4
- renamed some constants.
...
Manually copied from NBlood because the underlying code has changed too much already.
2021-06-24 14:14:16 +02:00
Mitchell Richters
acadd716f8
- For Unix systems, ensure that the root of the player's .config directory is scanned for content, not just subdirectories.
...
* Fixes #430 .
2021-06-24 20:47:14 +10:00
Mitchell Richters
39983f8144
- Fix maps loaded from the command line starting with corrupted sectors.
...
* Starting game same way `map` CCMD does it for now.
2021-06-24 18:50:10 +10:00
Mitchell Richters
9645009b28
- Fix -map
command-line argument not working.
...
* Fixes #441 .
2021-06-24 18:49:26 +10:00
Emile Belanger
b6e76337e0
Fix so small font is displayed correctly
2021-06-20 16:34:26 +02:00
Christoph Oelckers
0069af02e7
- use a slightly higher depth bias for translucent elements.
...
These can otherwise cause z-fighting when being used with non-translucent floor and wall sprites.
2021-06-13 09:39:07 +02:00
Christoph Oelckers
5556756d43
- map fix for Hickston Swamp (RR mod) E1L3:
...
Wall sprite is placed in the wrong sector which makes the new renderer's far stricter checks to reduce sprite flicker fail to position it correctly.
2021-06-13 09:32:30 +02:00
Christoph Oelckers
15635ec7c8
- fixed crash when trying to triangulate broken sectors.
...
In these cases it is possible that the wall index may go below 0.
2021-06-11 23:18:46 +02:00
Christoph Oelckers
1cea743536
- restrict lookup of engine/engine.def to the main game files.
...
Mods should not use this to load their data.
2021-06-09 08:38:40 +02:00
Christoph Oelckers
9d36e61d3f
- depth bias fixes.
2021-06-09 00:47:13 +02:00
Christoph Oelckers
a32489be31
- wall sprite positioning tweaks.
...
Turns out that a distance of one Build unit from a wall alone is not enough to render them glitch-free, some depth bias is still needed.
2021-06-09 00:31:54 +02:00
Christoph Oelckers
207298aeb4
- fixed compilation (again.)
2021-06-02 21:00:39 +02:00
Christoph Oelckers
7fa690082e
- fixed cherry picked commit.
...
# Conflicts:
# source/core/gamecontrol.h
2021-06-02 20:52:47 +02:00
Christoph Oelckers
f96521a7f4
- fixed: Floor sprites must set their view orientation.
...
The translucent element sorter needs this to operate properly.
2021-06-02 20:32:35 +02:00
Christoph Oelckers
3c5ef9c8e6
- properly render geometry that's fully shrouded in fog.
2021-06-01 21:48:39 +02:00
Christoph Oelckers
f0d2aef9d9
- fixed hires replacements for colorized font characters.
2021-06-01 11:29:39 +02:00
Christoph Oelckers
454816299e
- reorganized loading of textures.
...
Due to dependencies on initializing some data in app_init it was not possible to cleanly set up the fonts.
This adds a game-side function for loading the entire palettes before starting with the texture data and another one for loading game-side texture data.
This now allows fully setting up the palettes before starting with the textures and to fully set up the textures before reading the .def files.
All this is needed because to properly initialize, the fonts need to be able to access the fully initialized texture state, including replacements and hires substitutions from the .def files.
2021-06-01 11:05:26 +02:00
Christoph Oelckers
1636ddc00e
- set the main resource file's index in the file system.
...
Some checks need this.
2021-05-31 21:20:32 +02:00
Christoph Oelckers
25e57763af
- implemented substitution for incomplete fonts.
2021-05-31 21:20:32 +02:00
Christoph Oelckers
9c60ab791b
- implemented all needed font overrides for localization.
2021-05-31 21:20:31 +02:00
Christoph Oelckers
d174b61c3c
- allow switching between the two Duke BigFonts and fix Y in Duke's BigFont13.
2021-05-31 21:20:31 +02:00
Christoph Oelckers
90bcba302e
- layout adjustments for localized texts.
...
In particular SW's main menu was far too tightly spaced, allowing no room for accents.
2021-05-31 21:20:31 +02:00
Christoph Oelckers
af781e0422
- moved all font setup out of the C++ code.
...
All internal fonts now get defined through FONTDEFS.
Also fixing a few offsets.
2021-05-31 21:20:31 +02:00
Christoph Oelckers
cd56fd66d2
- RR: fixed advanced notify display's font size.
...
At some point the scale multiplier must have gotten lost, which with the twice as large fonts in this game resulted in text being too large.
2021-05-31 21:20:28 +02:00
Christoph Oelckers
2b8a80c6ce
- added the out-of-bounds vertex handler to the secondary triangulator as well.
...
If SW does this, triangulation must not be attempted as it will inevitably fail.
2021-05-29 13:19:44 +02:00
Christoph Oelckers
db21313c96
- add some hackery to deal with WT's bosses.
...
This was the result of some gross change to the spawning code which suddenly changed the rules about minibosses.
To reduce the impact, it is only enabled for the "Alien World Order" maps.
2021-05-29 13:12:50 +02:00
Christoph Oelckers
2e9732ce79
- fixed new renderer's use of fog on skies: The palette value from the wall was used instead of the one from the sky plane.
2021-05-29 12:09:16 +02:00
Christoph Oelckers
8fae793341
- defined a new constant, CR_NATIVEPAL, to use the font functions with a predefined palette.
...
This is mainly for code clarification, the value is the same as CR_UNDEFINED.
2021-05-29 11:47:05 +02:00
Christoph Oelckers
d44500863b
- removed the multiplayer scoreboard screens.
...
Since there is no plan to keep them in case MP gets implemented there's no need to maintain them.
These should later be replaced by a generic screen using a better font and a layout that takes higher resolutions into account.
2021-05-27 13:33:54 +02:00
Rachael Alexanderson
fd97da05b7
- allow UNC search paths on Windows
2021-05-26 10:47:36 -04:00
Christoph Oelckers
4ff4fa643b
- rewrote the default translation handling to be compatible with luminosity translations.
2021-05-25 12:59:09 +02:00
Christoph Oelckers
8b1757eee2
- got rid of most of the font system's baggage that's no longer needed.
...
Mainly this means that it's no longer necessary to reorder the palette to get working translated glyphs, so the FFontChar1 class and the TranslatedPic member and its invasive handling could all be cleaned out.
All font operations now take place on true color data, with the sole execption of FSpecialFont's 'notranslate' handling.
2021-05-25 12:59:09 +02:00
Christoph Oelckers
372d425e01
- use luminosity translations for single lump fonts and let them use their original palette.
2021-05-25 12:59:08 +02:00
Christoph Oelckers
377829d6a2
- let hex fonts use the luminosity translations.
2021-05-25 12:59:08 +02:00
Christoph Oelckers
0bab333f36
- redid font translation so that it doesn't need to crush the font characters' color set to the base palette.
...
Right now it creates a special type of luminance translation that can operate on a true color bitmap.
2021-05-25 12:59:08 +02:00
Christoph Oelckers
0b181c67b9
- don't skip lines when an empty one gets deleted.
2021-05-23 17:22:29 +02:00
Christoph Oelckers
f212421547
- don't let the triangulator choke on empty sectors.
2021-05-23 17:19:01 +02:00
Christoph Oelckers
8aed9063f8
- sector splitting hack for SW $bath.map.
2021-05-23 17:06:47 +02:00
Christoph Oelckers
572f45ca53
- delete lines in proper order when eliminating a pair.
...
Deleting the lower one first will delete the wrong second one.
2021-05-23 16:36:06 +02:00
Christoph Oelckers
b2545f8042
- PlayMusic script function.
2021-05-23 16:21:04 +02:00
Christoph Oelckers
d98a567597
- halt the game timer when setting up a cutscene and when starting movie playback.
...
These are both lengthy operations that can take several 100s of milliseconds, so when starting a streaming video they can throw off the timing quite significantly.
With this the intermissiondelay counter could be removed as it was only there to flush the accumulated time before starting video playback.
2021-05-23 14:36:54 +02:00
Christoph Oelckers
cc1def8d77
- fixed: When the node builder is used for triangulation, all zero-length lines must be eliminated first.
...
These can cause triangulation errors.
2021-05-23 09:16:30 +02:00
Brian Koropoff
bea0379830
Fix off-by-one error in group search
...
This could be hit when loading raze.pk3 from the build directory while
the file search path contains only one grp file
2021-05-23 08:51:32 +02:00
Brian Koropoff
9394ebe768
Resolve raze.pk3 via search paths
...
Linux installs typically don't have it next to the program binary
2021-05-23 08:51:32 +02:00
Christoph Oelckers
0c6e2f0c9e
- silenced some warnings.
2021-05-22 15:34:04 +02:00
Christoph Oelckers
d7a47b2f3a
- route all accesses to gameaction from the backend through the sysCallbacks.
...
gameactions are frontend specific so this needs to be decoupled.
2021-05-22 13:02:34 +02:00
Christoph Oelckers
5337513044
- ported GZDoom's subtitle drawer to the cutscene framework.
...
For later use, this isn't used yet.
2021-05-22 10:26:53 +02:00
Christoph Oelckers
f69fe334fc
- removed duplicate variable.
2021-05-22 09:22:30 +02:00
Christoph Oelckers
0d793a59fd
- moved the cutscene core to 'engine'.
...
More adjustments for making this code compatible with GZDoom.
2021-05-22 02:15:49 +02:00
Christoph Oelckers
e10bcf6294
- split the screen job code into a generic and a Raze specific part.
...
Preparations for porting this to GZDoom.
2021-05-22 01:35:50 +02:00
Christoph Oelckers
264d42179e
- optimized the wall drawer a bit to avoid repeated calls to the render API's deoth bias function.
...
The setters in FRenderState should check if the value actually changes and the wall drawer should only call it for non-translucent wall sprites.
2021-05-21 19:07:22 +02:00
Christoph Oelckers
4bb57cfab5
- fixed flickering floor sprites.
...
The SetDepthBias call was somehow gotten lost.
2021-05-21 19:03:39 +02:00
Christoph Oelckers
234f303348
- fixed typo in line segment culler.
2021-05-21 18:40:34 +02:00
Christoph Oelckers
f7a424cd06
- fixed precision issues with GetClosestPointOnWall for orthogonal lines.
...
The math failed for some large wall sprites (e.g. Blood E2M4, sprite #181 ), and in orthogonal cases it is better anyway to perform direct checks of the coordinates
2021-05-21 18:25:30 +02:00
Christoph Oelckers
b0cc5c14e2
- fixed bad argument count in ScreenJobRunner.Validate call.
2021-05-21 17:32:36 +02:00
Christoph Oelckers
24dbfc7827
- fixed BunchInFront to do a more thorough comparison in case it encounters colinear walls.
2021-05-21 14:32:01 +02:00
Christoph Oelckers
716b8840af
- when using the node builder to triangulate sectors we must delete overlapping walls.
...
The node builder can create bad geometry from them because it does bad ordering when two lines facing in opposite directions overlap.
2021-05-21 14:32:01 +02:00
Christoph Oelckers
079a95a0a3
- use a higher depth bias for non-orthogonal wall sprites.
...
Due to minor angular inaccuracies they are more sensitive to z-ordering than orthogonal ones when things are closely stacked.
2021-05-21 14:32:01 +02:00
Christoph Oelckers
d572e56839
- removed the indirection for the global arrays.
...
No idea what part of EDuke32 needed this, but it is not necessary.
2021-05-21 14:32:01 +02:00
Cacodemon345
75ecd173b6
Destroy FStartupScreen before initializing video
...
Fixes terminal output cutoff on console tab completion on Unix systems.
2021-05-20 19:32:48 +02:00
Christoph Oelckers
be97ee04f9
- re-enable flat sprite rendering.
...
This was commented out for testing but forgotten afterward.
2021-05-20 19:21:14 +02:00
Christoph Oelckers
5cfd810311
- new renderer: take fog properties for walls and ceilings from the proper elements.
2021-05-20 19:17:21 +02:00
Christoph Oelckers
b5358bc03c
- fixed typo in wall sprite offsetting code.
2021-05-20 18:25:19 +02:00
Christoph Oelckers
d4eb54d686
- render free standing wall sprites without depth bias.
...
Otherwise they can end up badly ordered with walls.
2021-05-20 12:36:35 +02:00
Christoph Oelckers
e99567cd70
- fixed bad array of arrays access in sector splitting code.
2021-05-20 00:30:54 +02:00
Christoph Oelckers
5fd41ab910
- new renderer: draw the fog layer for skies.
...
Code was active but alpha wasn't set.
2021-05-18 00:42:45 +02:00
Christoph Oelckers
24ce5d6130
- Exhumed: fix animation stopping for inventory torch item.
...
I have no idea how the old code could ever work...
2021-05-16 20:25:56 +02:00
Christoph Oelckers
5e94eaff8e
- new renderer: handle light level underflows.
2021-05-16 18:50:54 +02:00
Christoph Oelckers
a348508779
- handle the wall sprite clipping properly.
2021-05-16 16:00:00 +02:00
Christoph Oelckers
5e57b738d5
- removed redundant menu initializsation in M_StartControlPanel.
...
This was a leftover of early development and is no longer needed.
2021-05-16 12:21:08 +02:00
Christoph Oelckers
5bb438b817
- new renderer: fixed bad positioning when a y-flipped wall sprite had to be clipped to floor or ceiling.
2021-05-16 12:17:26 +02:00
Christoph Oelckers
60fe1d32fb
- Blood: unpositioned sounds must be limited to one per channel.
2021-05-16 11:51:51 +02:00
Christoph Oelckers
98ca5d5db4
- added 'load' and 'save' CCMDs.
2021-05-16 11:24:08 +02:00
Christoph Oelckers
7358f4344f
- pause the game when app is not active.
2021-05-16 10:53:38 +02:00
Christoph Oelckers
f2d75d4146
- made status bar configurable through rmapinfo.
2021-05-16 10:43:47 +02:00
Christoph Oelckers
ee559b7ba9
- removed all leftover parts of the native status bars.
2021-05-16 10:35:33 +02:00
Christoph Oelckers
8d8b3cda46
- scriptified SW's status bar.
...
Not tested yet. This just compiles without errors.
2021-05-16 09:34:08 +02:00
Christoph Oelckers
f136330628
- removed the native versions of Duke's and RR's status bar.
2021-05-15 17:15:29 +02:00
Christoph Oelckers
781cb32dcf
- fixed all issues with Duke's/RR's status bar.
2021-05-15 16:46:08 +02:00
Christoph Oelckers
f84f58e714
- ported Duke and RR status bars.
...
Compiles but not tested yet.
2021-05-15 14:27:32 +02:00
Christoph Oelckers
845ce63348
- make sure that all objects rendered as shadow reset the object color after the draw call.
2021-05-15 10:40:25 +02:00
Christoph Oelckers
b520d38bc0
- removed the native implementation od Exhumed's status bar.
2021-05-15 10:25:39 +02:00
Christoph Oelckers
b71c725e3e
- ported Exhumed's status bar.
...
Not tested yet.
2021-05-15 10:25:38 +02:00
Christoph Oelckers
5a6121d424
- status bar interface work.
2021-05-15 10:25:38 +02:00
Christoph Oelckers
c9361aff76
- Exhumed: moved nPlayerItem into PlayerList
2021-05-15 10:25:37 +02:00
Christoph Oelckers
55abb261c6
- this was in the wrong place. :(
2021-05-15 10:25:37 +02:00
Christoph Oelckers
db8572dbcc
- newrenderer: clip wall angles before doing any math with them.
...
In some cases these unclipped ranges ended up in other data structures, causing problems with bunch ordering.
2021-05-14 12:56:37 +02:00
Christoph Oelckers
3d6ae40bc0
- normalize all angles to the actual viewing range in the drawer.
...
This simplifies the debugging of this code a lot because we no longer have to deal with range overflows and can do direct comparisons everywhere.
2021-05-14 10:50:22 +02:00
Christoph Oelckers
d14d539144
- fixed issues with MAPINFO parser.
...
These cause problems with map progression, particularly with Exhumed.
2021-05-13 22:49:19 +02:00
Christoph Oelckers
e5dd4a8638
- made the scripted version of Blood's status bar functional.
2021-05-12 21:50:02 +02:00
Christoph Oelckers
778378fd5c
- scriptified version of Blood's status bar compiles.
...
Not tested yet.
2021-05-12 21:50:02 +02:00
Christoph Oelckers
acb4830eb5
- ported the BaseStatusBar class to ZScript.
...
Not hooked up yet, but it compiles.
2021-05-12 21:50:01 +02:00
Christoph Oelckers
cb2bc7967a
- fixed the remaining warnings.
2021-05-12 21:50:01 +02:00
Christoph Oelckers
d097c8e635
- removed the non-functional and long abandoned level music alias feature.
...
With RMAPINFO such a hack is no longer needed for anything.
2021-05-12 21:48:40 +02:00
Christoph Oelckers
783b94f922
- more warning fixes in 'core'.
2021-05-12 21:48:14 +02:00
Christoph Oelckers
1168341d5a
- fixed more warnings in 'core'.
2021-05-12 21:47:32 +02:00
Christoph Oelckers
7283de0084
- fixed some very noisy warnings in two headers.
2021-05-12 21:47:32 +02:00
Christoph Oelckers
03289f5097
- silenced some warnings.
2021-05-12 21:47:32 +02:00
Christoph Oelckers
fd6dd7f467
- Skip the load screen if the level is started from the console.
...
In this case the load screen is not helpful as it blocks the actual level start, requiring closing and reopening the console first before entering any commands that need the level.
2021-05-12 00:36:04 +02:00
Christoph Oelckers
9dd9dc8efd
- handle savegame loads like GZDoom.
...
They are synchronized with the game loop and should not be initiated directly from the menu.
2021-05-12 00:31:49 +02:00
Christoph Oelckers
499ed52972
- route savegame requests through the newwork, just like GZDoom does.
...
Although a bit overkill for single player saves only, this will ensure consistent behavior between both engines regarding the menu.
2021-05-12 00:21:26 +02:00
Christoph Oelckers
5d5af0cb09
- fixed error message spam when trying to load a non-existent voxel using .def.
2021-05-11 00:48:35 +02:00
Christoph Oelckers
d90b23ba9a
- take down the savegame loader's resources in proper order.
2021-05-10 20:14:38 +02:00
Christoph Oelckers
e74aca291c
- position tweaking for Nam's skies.
...
Why is this such an utter mess to get skies placed correctly? :(
2021-05-10 20:13:28 +02:00
Christoph Oelckers
d466ec081a
- fixed incorrect order of resource deallocation in savegame reader.
2021-05-08 09:22:08 +02:00
Christoph Oelckers
325af156e7
- fixed loop in ProcessBunch to account for array reallocation.
2021-05-08 09:16:06 +02:00
Christoph Oelckers
79823b430c
- reinstate the old code for rendering the first portal without stencil
...
The previous commit fixes the true issue causing the problems - with this back the restriction is not needed anymore.
2021-05-07 00:26:22 +02:00
Christoph Oelckers
b644000b02
- fixed texture y-flipping on bottom tiers of walls.
...
The flip flag was taken from the wrong side of the wall.
2021-05-07 00:18:13 +02:00
Christoph Oelckers
29b0106a96
- fixed yet another problem with the local 'sprite' variables in HWWall causing problems.
...
This variable and its companions in HWFlat and HWSprite have now been renamed to avoid these issues.
2021-05-07 00:09:30 +02:00
Christoph Oelckers
3fce8ab693
- added support for the 3 missing Duke Vacation SSIs.
2021-05-06 17:14:18 +02:00
Christoph Oelckers
2f9e32f748
Merge branch 'newrenderer'
2021-05-06 17:04:35 +02:00
Christoph Oelckers
72e4220929
- added an option to dump the list of discovered games to a JSON file.
2021-05-06 12:03:33 +02:00
Christoph Oelckers
c679f83f75
- make all games return to the main menu when the game is ended with F10.
...
Duke still went to the intro movies which was a bit problematic.
2021-05-04 11:32:09 +02:00
Christoph Oelckers
a7adef360b
- fixed compilation with Clang.
2021-05-04 00:11:43 +02:00
Christoph Oelckers
a303da37a9
- added a mapinfo dumper and used it to verify correctness of the data generated from game-native definitions.
...
Also simplified the levelnumber setup a bit.
2021-05-03 23:00:24 +02:00
Christoph Oelckers
7d77b2315f
- merged the few remaining contents of mmulti.h into d_net.h
2021-05-03 19:01:00 +02:00
Christoph Oelckers
6589222da6
Merge branch 'scriptable_cutscenes' into newrenderer
2021-05-03 18:50:41 +02:00
Christoph Oelckers
d206a767b2
- added render workaround for CP07.
2021-05-03 17:48:35 +02:00
Christoph Oelckers
d8b808576f
- restrict the sky portal shortcut to skies in scenes where there are no other portals.
...
This entire setup does not work with sector portals, causing various render glitches in Shadow Warrior's portals. This also applies to skies within portals so it is now restricted to single sky setups.
2021-05-03 14:52:23 +02:00
Christoph Oelckers
56fcf904b5
- Backend update from GZDoom.
2021-05-03 14:48:55 +02:00
Christoph Oelckers
389340f97c
- use sections for rendering.
2021-05-03 00:15:09 +02:00
Christoph Oelckers
30b1b046e4
- added an intermediate data structure to decouple the rendering from the immediate map data.
...
This will be needed for sectors consisting of disjoint parts and for providing some help with addressing rendering anomalies
2021-05-03 00:04:36 +02:00
Christoph Oelckers
f40e52ab34
- fixed issues with validation of command line specified main game GRP file name.
2021-05-02 22:56:53 +02:00
Christoph Oelckers
8003ab6fa3
Merge branch 'scriptable_cutscenes' into newrenderer
2021-05-02 22:37:46 +02:00
Christoph Oelckers
a1381c0ff2
- fixed Blood cutscene setup to avoid dependency on the sound code initialization.
...
It now only stores the sound name or ID but not the internal index which is only looked up when needed.
2021-05-02 18:10:59 +02:00
Christoph Oelckers
575a38d835
- added RMAPINFO handler for Blood's message array.
2021-05-02 18:00:11 +02:00
Christoph Oelckers
c1b4fdff83
- added a "clearall" instruction to RMAPINFO.
...
Since, unlike GZDoom, this format is additive and uses defaults for map progression it would otherwise a bit tricky to compile new episodes without accidentally pulling in some original special features.
2021-05-02 17:42:19 +02:00
Christoph Oelckers
dfd47ea33a
- migrated SW to RMAPINFO as well.
...
Also removed the 'definecutscene' code from the .def parser as this was never meant to be more than a temporary solution.
2021-05-02 17:35:25 +02:00
Christoph Oelckers
4b064b9f34
- migrated Exhumed's level setup to RMAPINFO.
...
This game never had a proper setup so this also fixes the crashes with visiting the multiplayer maps.
2021-05-02 15:54:19 +02:00
Christoph Oelckers
bb9d492db6
- migrated RRRA as well.
2021-05-02 14:01:10 +02:00
Christoph Oelckers
a28b4ea06a
- migrated Route66 and fixed some issues pointed out by this mod.
2021-05-02 13:29:41 +02:00
Christoph Oelckers
6f4e380728
- migrated RR's cutscene definitions.
...
Also turned several level-specific init options into map flags or map parameters.
2021-05-02 13:12:24 +02:00
Christoph Oelckers
15f9861633
- summary screens, too.
2021-05-02 12:28:32 +02:00
Christoph Oelckers
4458f8c929
- migrated the global cutscenes to RMAPINFO as well.
2021-05-02 12:22:40 +02:00
Christoph Oelckers
2d4e91615f
- migrated Duke's cutscene definitions to the new RMAPINFO.txt.
2021-05-02 12:02:55 +02:00
Christoph Oelckers
dbd179be5c
- RR progression fixes.
...
* E1L7 abuses an 'end the game' command to progress to E2L1, this needs special treatment.
* handle ENDGAME.MAP more cleanly by injecting an 'engine.con' into the compilation chain to define its map record. The main issue with this is that it needs to be defined before the regular CONs run.
* check the already defined 'clearinventory' and 'clearweapons' flags that are exposed through RMAPINFO (Duke/RR only so far.)
2021-05-02 10:55:22 +02:00
Christoph Oelckers
1798380f23
- adapted map transition in Duke/RR.
...
There's still some issues which will be taken care of by adding map flags.
2021-05-02 10:35:43 +02:00
Christoph Oelckers
e9385ed4e8
- adapted Blood to the new level progression features and simplified several parts, particularly the clumsy retrieval of the next level.
...
Some cheats in Duke will not work correctly with this commit!
2021-05-02 09:08:57 +02:00
Christoph Oelckers
93bfc35ad6
- use the volumes to find the starting maps for the menu and the clusters for the cutscenes.
2021-05-02 01:01:30 +02:00
Christoph Oelckers
825963661b
- migrated volumes to the new storage.
2021-05-02 00:35:56 +02:00
Christoph Oelckers
f732d4ec64
- added MAPINFO parser, based on GZDoom's.
...
This isn't hooked up yet, but all necessary structures and fields have been added so that selected pieces can be tested.
2021-05-01 22:52:28 +02:00
Christoph Oelckers
b21dadeef0
- we need to wait a bit before starting the intro scene.
...
The game timer actually starts before the main loop is ready so we have to wait with the cutscene until the loop is in sync with the timer.
2021-05-01 19:46:17 +02:00
Christoph Oelckers
27799def63
- rewrote movie player so that the decoder backends only perform the decoding but do not draw the frames themselves.
...
This caused twq problems:
1. It made it impossible to let the client apply effects to the video.
2. The client had no control when rendering stopped.
Now the backends only provide a texture handle that the client must draw. One immediate benefit is that Blood's fixed viewport scaling is now available to all video formats.
2021-05-01 18:59:16 +02:00
Christoph Oelckers
4069a5096a
- scriptified Exhumed's 2D content (minus the programmatic textures.)
2021-04-30 20:08:36 +02:00
Christoph Oelckers
cd1306dd05
- fixed mapinfo array.
...
Due to reallocations it must be an array of pointers.
2021-04-30 20:08:34 +02:00
Christoph Oelckers
eaf5e1fba5
- Cutscene support in Blood.
...
Intro tested, rest to do.
2021-04-30 20:08:34 +02:00
Christoph Oelckers
869dbd70e5
- fixed the design by merging the episode start handler into ShowIntermission.
...
Tying the start-of-episode cutscene to the cluster does not really work because it gets triggered by all maps of the cluster.
All currently existing intro cutscenes are tied to the map anyway.
Also correcting transition movie name for RRRA E2L1.
2021-04-30 20:08:34 +02:00
Christoph Oelckers
cdccdec3e7
- final cleanup on new cutscene interfacw
...
* fixed frame gaps when exiting a cutscene. This must be properly synchronized with the state handler in the main loop.
* reactivated the loading screens. With texture precaching working the delay when loading a map becomes significant enough to require a visual feedback.
* RR does not play 'bonusmusic' on its summary screen.
2021-04-30 20:08:34 +02:00
Christoph Oelckers
ad01aee5ec
- fixed RR summary screen
2021-04-30 20:08:33 +02:00
Christoph Oelckers
6d743ce921
- most of the summary screen is working
2021-04-30 20:08:33 +02:00
Christoph Oelckers
0dc6980e5c
- made episode intro cutscenes a game independent feature.
...
So far only defined for Duke E4 but all the logic is outside the game code now and can be universally handled.
2021-04-30 20:08:33 +02:00
Christoph Oelckers
3c27ec8cbd
- tested all of Duke's and RR's cutscenes.
2021-04-30 20:08:33 +02:00
Christoph Oelckers
06abc0cfe2
- removed debug output and fixed fade flag setup and missing OnTick return
2021-04-30 20:08:33 +02:00
Christoph Oelckers
26a7700579
- Duke's intro works, without fading.
2021-04-30 20:08:32 +02:00
Christoph Oelckers
1166b00af2
- switched intro movie playing over to the new system
...
Not tested yet.
2021-04-30 20:08:32 +02:00
Christoph Oelckers
af8d06994a
- implemented the scripting interface layer.
2021-04-30 20:08:32 +02:00
Christoph Oelckers
ef6d8c2c67
- added cutscene definitions for Duke and finalized the definecutscene parser.
2021-04-30 20:08:32 +02:00
Christoph Oelckers
021f1b7832
- make SummaryInfo a struct instead of passing a list of values to the script classes.
2021-04-30 20:08:32 +02:00
Christoph Oelckers
e05f900315
- added the data structures to hold the cutscene data.
2021-04-30 20:08:31 +02:00
Christoph Oelckers
21aa5c9234
- added game flags for all supported add-ons.
2021-04-30 20:08:31 +02:00
Christoph Oelckers
66799d9a6d
- more screen job setup work.
...
* interface for movie player done.
* first cutscene definition done.
* all converted classes removed from C++ code.
2021-04-30 20:08:30 +02:00
Christoph Oelckers
4ff2010bd1
- moved the entire screen job management to the script side.
...
This isn't hooked up yet and lots of code is commented out, the games won't start with this commit.
2021-04-30 20:08:30 +02:00
Christoph Oelckers
4636a52699
- MP summary screen ported.
2021-04-30 20:08:24 +02:00
Christoph Oelckers
7fbe153ae7
- more Duke screen porting.
2021-04-30 20:08:24 +02:00
Christoph Oelckers
e75f0c17e4
- ported the TitleScreen class.
2021-04-30 20:08:23 +02:00
Christoph Oelckers
1022564cab
- initial framework for scriptification of screen jobs.
2021-04-30 20:08:23 +02:00
Christoph Oelckers
4a7430c8e4
- got rid of JobDesc.
2021-04-30 20:08:23 +02:00
Christoph Oelckers
805b91b721
- put ScreenJobRunner declaration into header.
2021-04-30 20:08:23 +02:00
Christoph Oelckers
71e5f9b70f
- changed screen job list to work without per-job completion callbacks.
...
They made things more complex than necessary and do not translate well to scripting.
2021-04-30 20:08:22 +02:00
Christoph Oelckers
fb5e2fe0c0
- use flags instead of bools.
2021-04-30 20:08:22 +02:00
Christoph Oelckers
af3eac8456
- simplified screen job setup where all elements can be skipped in one go.
2021-04-30 20:08:22 +02:00
Christoph Oelckers
aa6bd8ffcc
- factor in angoff when placing sprites.
2021-04-25 11:58:03 +02:00
Christoph Oelckers
8c379f7a44
Merge branch 'master' into newrenderer
2021-04-25 11:33:47 +02:00
Christoph Oelckers
79875d44e0
- moved MD4 calculator out of backend.
...
Only map hacks use MD4, this does not need to be shared.
2021-04-25 11:33:38 +02:00
Christoph Oelckers
ad28630df6
- offloaded map patches to data files.
...
This is a lot easier to manage than having them in the code.
For now it piggybacks on the map hack feature, later this should use the same scripted approach as GZDoom.
2021-04-24 23:07:35 +02:00
Christoph Oelckers
a7046eaee4
- fixed animations on skies.
...
Lunatic Fringe made this very obvious.
2021-04-24 20:04:02 +02:00
Christoph Oelckers
5585351c0f
- added a hack to help the new renderer with Lunatic Fringe.
...
This is by no means a permanent solution but having it buys some time to find something more universal that won't affect performance too badly and investigate the need for a more robust solution.
The idea here is to define pairs of walls where when the first element of the pair is seen, it will treat the second one as view blocking.
This is used as the two offending windows (sectors 151 and 152) to cope with the lack of a height sensitive clipper.
2021-04-24 20:00:54 +02:00
Christoph Oelckers
be08a2f800
- clipper rework
...
* let the clipper work on relative angles to simplify the math.
* properly initialize the initial visible range and preserve it for multiple invocations.
* track the maximum visible angular range per sector. While possibly not sufficient to handle every edge case imaginable it has low overhead and is still useful to eliminate obvious cases that do not need more complex checks. It is enough to fix the blue door in Duke E3L4.
* removed unused elements of the clipper.
2021-04-24 12:08:38 +02:00
Christoph Oelckers
53e698e707
- 0.10.0
2021-04-22 22:03:50 +02:00
Christoph Oelckers
db7527fa43
- fix sky palette in Polymost mode.
2021-04-22 22:03:16 +02:00
Mitchell Richters
6fca2de7f3
- Fix clocking of timer when doing cumulative loads in loaddefinitionsfile()
.
2021-04-22 18:57:41 +10:00
Mitchell Richters
8e53489487
- Remove some leftover stuff from gamecontrol.h
.
2021-04-22 18:53:14 +10:00
Mitchell Richters
733f4f7aea
- Move all the timing code from LoadDefinitions()
to loaddefinitionsfile()
2021-04-22 18:50:49 +10:00
Mitchell Richters
27767f61ae
- Move for (auto& m : *userConfig.AddDefs)
loop from loaddefinitionsfile()
into LoadDefinitions()
and rework debug timer code to accommodate.
...
* Change also reverts 5af7be42a2
.
2021-04-22 16:33:45 +10:00
Mitchell Richters
c0e5599478
Merge branch 'master' into newrenderer
2021-04-22 08:58:26 +10:00
Mitchell Richters
ab4c18a73a
- processMovement()
: Remove attenuation of hidInput->dyaw
that was missed when scaling was removed from backend in 44e4c5ff78
.
2021-04-22 08:58:17 +10:00
Mitchell Richters
5af7be42a2
- LoadDefinitions()
: Remove if statement added in 1ea25e5d0e
that was causing added DEF files not to load.
...
* The loop for `userConfig.AddDefs` feels like it should be moved out of `loaddefinitionsfile()` and into `LoadDefinitions()`, but that's subject to discussion.
2021-04-22 08:44:59 +10:00
Christoph Oelckers
14971f9569
Merge branch 'master' into newrenderer
2021-04-22 00:10:37 +02:00
Christoph Oelckers
c17ec5fa45
- cleanup of savegame framework
2021-04-22 00:03:17 +02:00
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