Commit graph

760 commits

Author SHA1 Message Date
hendricks266
5381e729f8 Add a new aligned mode to alphatabs by defining numalphatabs to be a power of two minus one.
This provides fractionally better correspondence between 0-255 alpha values and blend table IDs.

git-svn-id: https://svn.eduke32.com/eduke32@5890 1a8010ca-5511-0410-912e-c29ae57300e0
2016-10-14 07:40:32 +00:00
hendricks266
9906b71023 Rigor-up the handling of 0% and 100% alpha with alphatabs in 8-bit.
git-svn-id: https://svn.eduke32.com/eduke32@5889 1a8010ca-5511-0410-912e-c29ae57300e0
2016-10-14 07:33:30 +00:00
hendricks266
8a1f1f2ede GL .blend support.
Consult me if you are interested in this feature.

TODO: Polymer.

git-svn-id: https://svn.eduke32.com/eduke32@5888 1a8010ca-5511-0410-912e-c29ae57300e0
2016-10-09 07:55:23 +00:00
hendricks266
2025aab189 In 8-bit, change the precedence of .alpha and .blend.
Previously: Non-zero alpha stacked with cstat translucency in an imitation of Polymost, potentially clobbering .blend if alphatabs are used.
Now: If cstat translucency is active, .alpha is ignored.

git-svn-id: https://svn.eduke32.com/eduke32@5887 1a8010ca-5511-0410-912e-c29ae57300e0
2016-10-09 07:55:18 +00:00
hendricks266
4d08f4d433 Cosmetic changes to some blend/alpha related code.
git-svn-id: https://svn.eduke32.com/eduke32@5886 1a8010ca-5511-0410-912e-c29ae57300e0
2016-10-09 07:55:13 +00:00
hendricks266
07d759234d Some float optimizations in the engine.
git-svn-id: https://svn.eduke32.com/eduke32@5877 1a8010ca-5511-0410-912e-c29ae57300e0
2016-10-03 02:43:48 +00:00
hendricks266
b768c35175 Ensure the cached float cast variables introduced in r4656 are updated any time the integer versions are.
This fixes the infinite loop when viewing an HUD model at a point when displayrooms is not running, such as the main menu upon initial game load.

git-svn-id: https://svn.eduke32.com/eduke32@5876 1a8010ca-5511-0410-912e-c29ae57300e0
2016-10-03 02:43:42 +00:00
hendricks266
972c92dc6a Fix ghost tsprite bug introduced in previous commit.
git-svn-id: https://svn.eduke32.com/eduke32@5858 1a8010ca-5511-0410-912e-c29ae57300e0
2016-09-09 12:01:30 +00:00
hendricks266
bca7e1a91e Finish what r5484 started but got reverted in r5723. Cstat 1024 now works properly in Polymost without causing any side effects in Classic. It remains unimplemented in Polymer.
git-svn-id: https://svn.eduke32.com/eduke32@5857 1a8010ca-5511-0410-912e-c29ae57300e0
2016-09-09 03:12:23 +00:00
hendricks266
b73f2f3e17 Reinstitute the cosmetic cleanups that should have been a separate commit from r5484 and were reverted in r5723.
git-svn-id: https://svn.eduke32.com/eduke32@5856 1a8010ca-5511-0410-912e-c29ae57300e0
2016-09-09 03:12:20 +00:00
terminx
3c34256867 Fix a software mode crash bug involving bad animation flags set on tiles
git-svn-id: https://svn.eduke32.com/eduke32@5836 1a8010ca-5511-0410-912e-c29ae57300e0
2016-08-27 01:42:07 +00:00
terminx
4575148c02 Use size_t or ssize_t in for loops where possible
git-svn-id: https://svn.eduke32.com/eduke32@5829 1a8010ca-5511-0410-912e-c29ae57300e0
2016-08-27 01:41:21 +00:00
helixhorned
46f39b725c engine.c: fix potential smostwall[-1] access. Found by ASan.
git-svn-id: https://svn.eduke32.com/eduke32@5807 1a8010ca-5511-0410-912e-c29ae57300e0
2016-07-04 14:09:05 +00:00
terminx
95f7cf0982 "return" is not a function.
git-svn-id: https://svn.eduke32.com/eduke32@5803 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:34:41 +00:00
terminx
951ad678c4 Usual cleanup type stuff involving vectors and variable scopes.
git-svn-id: https://svn.eduke32.com/eduke32@5802 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:34:29 +00:00
terminx
0e713e698f Separate art tile related functions out from engine.c and into tiles.c
git-svn-id: https://svn.eduke32.com/eduke32@5801 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:34:25 +00:00
terminx
03daded192 Vectorize a few more things.
git-svn-id: https://svn.eduke32.com/eduke32@5800 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:34:18 +00:00
terminx
5800cd588c tsectortype -> usectortype
twalltype -> uwalltype
tspritetype -> uspritetype

No other changes.

git-svn-id: https://svn.eduke32.com/eduke32@5796 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:33:58 +00:00
terminx
dd1d02a0e7 Change a bunch of engine functions that access sprites, walls, and sectors in a read-only fashion to use the untracked versions of those structs.
git-svn-id: https://svn.eduke32.com/eduke32@5794 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:33:39 +00:00
terminx
32450bdd68 Relocate maphack related code into mhk.c.
This commit also relocates clipping related code into clip.c and makes a few other minor changes, because I fucked up and merged the commits together. God damn it.

git-svn-id: https://svn.eduke32.com/eduke32@5792 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:33:30 +00:00
terminx
cb2382285f Separate screen capture code from engine.c into screenshot.c
git-svn-id: https://svn.eduke32.com/eduke32@5791 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:33:19 +00:00
terminx
3eb979f8da Split 2d mode editor stuff that remained in engine.c into 2d.c.
git-svn-id: https://svn.eduke32.com/eduke32@5790 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:33:14 +00:00
terminx
205a757109 Move palette related functionality from engine.c to palette.c/h.
git-svn-id: https://svn.eduke32.com/eduke32@5789 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:33:06 +00:00
terminx
cdcc983a22 Move hash table stuff out of engine.c and into hash.c/h.
git-svn-id: https://svn.eduke32.com/eduke32@5788 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:32:53 +00:00
terminx
85d0543763 This is stupid as fuck, but I swear I profiled it and it was faster this way. Looked like a cache miss on the first access of the pointers.
git-svn-id: https://svn.eduke32.com/eduke32@5785 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:32:40 +00:00
hendricks266
0434a87e3a Remove trailing whitespace from anything we don't need to rebase from an upstream.
git-svn-id: https://svn.eduke32.com/eduke32@5768 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-05 04:46:28 +00:00
terminx
2d9f205c69 Revert bad attempt at fixing cstat 1024
git-svn-id: https://svn.eduke32.com/eduke32@5723 1a8010ca-5511-0410-912e-c29ae57300e0
2016-05-13 22:15:20 +00:00
hendricks266
0331870c1b A quick hack so that Mapster can load more pre-v7 PALETTE.DAT files.
git-svn-id: https://svn.eduke32.com/eduke32@5718 1a8010ca-5511-0410-912e-c29ae57300e0
2016-05-05 19:50:22 +00:00
terminx
6363de0a4c Fix drawing voxels with ids >= 256
git-svn-id: https://svn.eduke32.com/eduke32@5671 1a8010ca-5511-0410-912e-c29ae57300e0
2016-03-16 00:22:44 +00:00
terminx
34f208afa2 Make sprite tails and label borders purple if the sprite is blocking.
git-svn-id: https://svn.eduke32.com/eduke32@5670 1a8010ca-5511-0410-912e-c29ae57300e0
2016-03-15 22:17:04 +00:00
terminx
99cb974d0c Fix Mapster32 sprite selection colors when using a tiles.cfg that defines tile groups using colors from the bright half of the original 16-color palette.
In layman's terms, this fixes the effect sprites flashing black in 2d mode.

git-svn-id: https://svn.eduke32.com/eduke32@5669 1a8010ca-5511-0410-912e-c29ae57300e0
2016-03-14 00:08:02 +00:00
terminx
facae6f175 Add some debug assertions for the hash table stuff.
git-svn-id: https://svn.eduke32.com/eduke32@5624 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-13 21:06:21 +00:00
hendricks266
a61d1b6a11 Lunatic: Fix discarded-qualifiers warnings.
git-svn-id: https://svn.eduke32.com/eduke32@5591 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-27 07:30:28 +00:00
hendricks266
f1d187d378 Lunatic: Fix cast-qual warnings having to do with L_RunString.
git-svn-id: https://svn.eduke32.com/eduke32@5590 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-27 07:30:23 +00:00
terminx
86a4660f08 const stuff
git-svn-id: https://svn.eduke32.com/eduke32@5572 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-21 19:35:06 +00:00
hendricks266
a35f3b13dc Replace the semicolon trailing empty-bodied loops with opening and closing braces.
I believe this is the clearest way to indicate that an empty-bodied loop is intended, as opposed to the possibility of a mistaken semicolon.

This eliminates "warning: suggest a space before β€˜;’ or explicit braces around empty body in β€˜for’ statement" with GCC 4.2, which is important for old OS X versions.

git-svn-id: https://svn.eduke32.com/eduke32@5556 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-12 10:31:12 +00:00
terminx
db8b4a00b6 Enable -Wwrite-strings and fix all instances where string constants were passed to functions accepting a char ptr.
git-svn-id: https://svn.eduke32.com/eduke32@5547 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-11 05:06:10 +00:00
terminx
a7e6ed8745 Fix quite a few issues with casting away const and volatile qualifiers, found with -Wcast-qual. If we're going to use const everywhere, we should really mean it!
git-svn-id: https://svn.eduke32.com/eduke32@5540 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-11 05:05:38 +00:00
hendricks266
2e968b90bf Add inthashtable_t, mapping intptr_t to intptr_t.
git-svn-id: https://svn.eduke32.com/eduke32@5532 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-08 01:33:46 +00:00
terminx
935e9fa197 Fix hard coded white and red color indexes used in on-screen debug output, to better operate with a palette dissimilar to Duke3D.
git-svn-id: https://svn.eduke32.com/eduke32@5497 1a8010ca-5511-0410-912e-c29ae57300e0
2015-12-28 02:04:36 +00:00
terminx
c00f933a37 Update LZ4
git-svn-id: https://svn.eduke32.com/eduke32@5485 1a8010ca-5511-0410-912e-c29ae57300e0
2015-12-23 04:06:05 +00:00
terminx
32ba947b4b Fix cstat 1024 in classic and Polymer
git-svn-id: https://svn.eduke32.com/eduke32@5484 1a8010ca-5511-0410-912e-c29ae57300e0
2015-12-23 04:05:58 +00:00
hendricks266
0646835719 Polymost: Remove "indrawroomsandmasks" variable and its only use in polymost_drawpoly as a condition for the fullbright pass.
git-svn-id: https://svn.eduke32.com/eduke32@5437 1a8010ca-5511-0410-912e-c29ae57300e0
2015-11-25 12:07:41 +00:00
helixhorned
f8076f9207 Mapster32: honor "blocking color" declared with DEF 'spritecol' et al.
Meaning tilegroup's 'colors' directive.

Also, to the packaged tiles.cfg, add a description of how to emulate the
earlier Mapster32 sprite coloring for one tile group.

git-svn-id: https://svn.eduke32.com/eduke32@5429 1a8010ca-5511-0410-912e-c29ae57300e0
2015-11-14 23:40:59 +00:00
helixhorned
5e61b28ebc Mapster32: in drawscreen_drawsprite(), "sprite[j]." -> "spr->".
Also a similar stylistic tweak in parsetilegroups().

git-svn-id: https://svn.eduke32.com/eduke32@5426 1a8010ca-5511-0410-912e-c29ae57300e0
2015-11-14 23:40:56 +00:00
helixhorned
185262be73 Mapster32: formatting changes around 2D sprite/wall color code.
git-svn-id: https://svn.eduke32.com/eduke32@5425 1a8010ca-5511-0410-912e-c29ae57300e0
2015-11-14 23:40:54 +00:00
helixhorned
3a7ed49c9a Mapster32: various stylistic tweaks, no functional changes. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5413 1a8010ca-5511-0410-912e-c29ae57300e0
2015-10-31 19:35:25 +00:00
terminx
ad8da7be99 Fix cstat 1024 with Polymer
git-svn-id: https://svn.eduke32.com/eduke32@5407 1a8010ca-5511-0410-912e-c29ae57300e0
2015-10-23 23:00:25 +00:00
terminx
3ae7f7ade3 Check whether the sprite is a wall, floor, or face sprite when deciding whether to bump it ahead of another entry based on position and owner.
git-svn-id: https://svn.eduke32.com/eduke32@5405 1a8010ca-5511-0410-912e-c29ae57300e0
2015-10-23 23:00:16 +00:00
terminx
7eec6b36a5 Sprite sorting changes:
-Sort by owner now occurs only when two sprites have matching x/y coordinates.
-Cstat 1024 now activates a special drawing mode that indicates a sprite should be drawn without depth after all other sprites have been drawn. The previous cstat 1024 functionality, an internal hack for shadows cast by models in Polymost, has been moved to bit 1 of a new graphical effects bitfield stored in a tsprite's .extra member.

git-svn-id: https://svn.eduke32.com/eduke32@5400 1a8010ca-5511-0410-912e-c29ae57300e0
2015-10-21 19:54:14 +00:00