Commit graph

224 commits

Author SHA1 Message Date
terminx
e513e1ceae Cleanup includes
git-svn-id: https://svn.eduke32.com/eduke32@7186 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:09:48 +00:00
terminx
5164ab4a25 More control/input cleanup
git-svn-id: https://svn.eduke32.com/eduke32@7181 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:08:53 +00:00
terminx
336a4650d5 This is supposed to fix some errors with HIGH_PRECISION_SPRITE reported by a static analyzer, wherein 32-bit values were shifted and truncated as 32-bit before being widened to a 64-bit type, which didn't seem like the intended behavior. This is the commit to look at if anything is suddenly fucked up in the classic software renderer.
git-svn-id: https://svn.eduke32.com/eduke32@7167 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:07:25 +00:00
terminx
a6e60e9723 Move pow2char and pow2long to build.h and make them constexpr
git-svn-id: https://svn.eduke32.com/eduke32@7146 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:05:26 +00:00
hendricks266
de5d358d32 Refresh BUILDLIC copyright headers
git-svn-id: https://svn.eduke32.com/eduke32@7139 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-05 07:28:01 +00:00
terminx
3b782aba60 Add CSTAT_SPRITE_ALIGNMENT_MASK. It's identical to CSTAT_SPRITE_ALIGNMENT_SLAB, but should be used in cases where you're checking either CSTAT_SPRITE_ALIGNMENT_WALL or CSTAT_SPRITE_ALIGNMENT_FLOOR rather than checking for a slab (voxel).
git-svn-id: https://svn.eduke32.com/eduke32@7129 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:33:32 +00:00
terminx
a6e7f601d3 Fix HIGH_PRECISION_SPRITE, broken when switching to std::min and std::max.
git-svn-id: https://svn.eduke32.com/eduke32@7111 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:31:40 +00:00
terminx
9079beadb4 Remove some dead statements, useless assigments, etc
git-svn-id: https://svn.eduke32.com/eduke32@7086 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:29:38 +00:00
terminx
1f8b23152e Replace remaining instances of regular malloc/calloc/realloc/strdup with our memory error handler versions
git-svn-id: https://svn.eduke32.com/eduke32@7079 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:28:56 +00:00
terminx
9613bbac33 Use std::min and std::max instead of min and max macros.
git-svn-id: https://svn.eduke32.com/eduke32@7078 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-16 06:09:54 +00:00
terminx
2e2731c119 Same sort of thing as the previous commits, but for the engine. Forward declaration cleanup and constification.
git-svn-id: https://svn.eduke32.com/eduke32@7072 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-16 06:09:09 +00:00
pogokeen
4b89c095e2 engine.cpp: fix crash when calling setrendermode 3 where PolymostProcessVoxels would be called before Polymost is initialized.
PolymostProcessVoxels would call videoNextPage during processing which would attempt to render the OSD and lead to a segfault due to Polymost not being properly initialized.

git-svn-id: https://svn.eduke32.com/eduke32@7067 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-10 21:04:42 +00:00
terminx
bcb1374391 Static analyzer says this condition is never true
git-svn-id: https://svn.eduke32.com/eduke32@7057 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-10 19:14:51 +00:00
terminx
15008d7aec Revert r7017. I misread the code mismeasured the result.
git-svn-id: https://svn.eduke32.com/eduke32@7056 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-10 19:14:46 +00:00
terminx
eb08f1443e Pass vec2_ts to get_screen_coords() by reference instead of by value
git-svn-id: https://svn.eduke32.com/eduke32@7027 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-07 05:22:17 +00:00
terminx
4f590f59c1 Fix potential OOB spriteext[] access when checking SPREXT_NOTMD to determine whether or not to render a sprite's model, if available
git-svn-id: https://svn.eduke32.com/eduke32@7023 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-07 05:21:58 +00:00
terminx
870f1c4dab Oh look, the first 3 arguments passed to parascan() are completely useless
git-svn-id: https://svn.eduke32.com/eduke32@7022 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-07 05:21:53 +00:00
terminx
12a77176e8 Fix overcomputation in the classic renderer due to a bug caused by a previous optimization attempt
git-svn-id: https://svn.eduke32.com/eduke32@7017 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-07 05:21:29 +00:00
pogokeen
1df7127609 Support software renderer upscaling engine-side in sdlayer and sdlayer12 with various scaling factors (beyond just pixel doubling).
When glsurface is available, use GL to upscale the render buffer.
Additionally, fix build issues with sdlayer12 introduced by GLAD changes (r6656).

git-svn-id: https://svn.eduke32.com/eduke32@6939 1a8010ca-5511-0410-912e-c29ae57300e0
2018-07-14 21:36:44 +00:00
pogokeen
1b932fddaf sdlayer.cpp: Don't destroy window resouces if switching between software rendering on glsurface and Polymost/Polymer
git-svn-id: https://svn.eduke32.com/eduke32@6938 1a8010ca-5511-0410-912e-c29ae57300e0
2018-07-14 21:36:34 +00:00
pogokeen
a0faeaf8f6 Revert a number of changes from r6929 and r6930 that are no longer necessary.
Fix root causes of issues causing crash and black screen in Mapster32 when switching back and forth between 3D & 2D modes

git-svn-id: https://svn.eduke32.com/eduke32@6931 1a8010ca-5511-0410-912e-c29ae57300e0
2018-06-25 14:53:42 +00:00
terminx
bcb7815118 Fix crash in Mapster32 when switching from GL 3d mode to 2d mode.
git-svn-id: https://svn.eduke32.com/eduke32@6929 1a8010ca-5511-0410-912e-c29ae57300e0
2018-06-24 00:55:23 +00:00
pogokeen
9d243606d0 When OpenGL is available, prefer using the new glsurface to blit the classic renderer's 8-bit buffer to the screen.
git-svn-id: https://svn.eduke32.com/eduke32@6919 1a8010ca-5511-0410-912e-c29ae57300e0
2018-06-13 19:15:16 +00:00
pogokeen
8bf9ad1c31 engine.cpp: fix issue introduced in r6905 where voxels with fractional scaling would not be handled correctly in Polymost
git-svn-id: https://svn.eduke32.com/eduke32@6907 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-30 12:01:42 +00:00
pogokeen
db1220cd11 engine.cpp: fix issue with voxmodel_t voxels not having their scale set properly due to defs being processed before PolymostProcessVoxels()
git-svn-id: https://svn.eduke32.com/eduke32@6905 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-23 15:04:56 +00:00
pogokeen
5ff4e22eb9 engine.cpp: fix classicDrawVoxel() positioning bugs by:
+avoid adding the pivot's z offset again after it was already added in classicDrawSprite()
+offset the voxel object by half of the voxel object's z size

git-svn-id: https://svn.eduke32.com/eduke32@6904 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-23 15:04:52 +00:00
pogokeen
d6d078114c engine.cpp/.h: clean up & fix lintersect(). Additionally, add support for finding intersections of collinear line segments.
git-svn-id: https://svn.eduke32.com/eduke32@6886 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-15 16:45:34 +00:00
terminx
87d19d5cde More function name shit
git-svn-id: https://svn.eduke32.com/eduke32@6832 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:04:00 +00:00
terminx
19c43b84b3 Function names
git-svn-id: https://svn.eduke32.com/eduke32@6831 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:03:47 +00:00
terminx
e5bcc1cf81 More function name cleanup
git-svn-id: https://svn.eduke32.com/eduke32@6830 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:03:30 +00:00
terminx
1fd209444f Continuing the quest for clearer function names
git-svn-id: https://svn.eduke32.com/eduke32@6829 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:03:12 +00:00
terminx
0340e3cc0f Engine function name cleanup round 2
git-svn-id: https://svn.eduke32.com/eduke32@6828 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:02:51 +00:00
terminx
ee63d2c070 Beginnings of baselayer.cpp/.h refactor. This is 99.9% renames.
git-svn-id: https://svn.eduke32.com/eduke32@6827 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:02:31 +00:00
terminx
4b5b6de13c Remove useless switch/case setup in nextpage()
git-svn-id: https://svn.eduke32.com/eduke32@6813 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-06 01:42:47 +00:00
terminx
1b2ab0edad cache1d changes, also implements lz4compressionlevel cvar to control the speed vs side trade-off for savegame compression
git-svn-id: https://svn.eduke32.com/eduke32@6807 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-05 04:39:30 +00:00
terminx
f3843a9a3a Branchless sectorofwall_internal()
git-svn-id: https://svn.eduke32.com/eduke32@6794 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-02 22:00:23 +00:00
pogokeen
a364b7bbfd Polymost palette-indexed texture rendering
git-svn-id: https://svn.eduke32.com/eduke32@6776 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-21 20:41:26 +00:00
hendricks266
01606bb6fb Instrument the code to build without the struct trackers and disable them when the build options eliminate all uses of them (currently USE_OPENGL=0).
git-svn-id: https://svn.eduke32.com/eduke32@6769 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-17 03:26:01 +00:00
terminx
ef853e8b92 Inline drawrooms() wrapper
git-svn-id: https://svn.eduke32.com/eduke32@6759 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-09 05:55:50 +00:00
terminx
ee37c04623 Remove attempt at being compatible with the original ranges of ang and horiz values, and introduce a q16 version of drawrooms (and showroom)
git-svn-id: https://svn.eduke32.com/eduke32@6735 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-07 12:02:03 +00:00
terminx
a76750df55 Q16.16 for player angle, too
git-svn-id: https://svn.eduke32.com/eduke32@6725 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-07 04:21:18 +00:00
terminx
4d8bb170a3 Use Q16.16 fixed point for player horiz
git-svn-id: https://svn.eduke32.com/eduke32@6724 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-07 04:21:05 +00:00
pogokeen
1f133cd049 Polymost: streaming VBO optimizations for polymost_drawpoly()
git-svn-id: https://svn.eduke32.com/eduke32@6662 1a8010ca-5511-0410-912e-c29ae57300e0
2018-02-16 06:38:48 +00:00
pogokeen
3ca5f33c73 Moved to GLAD for dynamic GL/WGL and extension loading.
Refactored extension usage that became core in GL2, and adjusted some types for GL2 compatibility.

git-svn-id: https://svn.eduke32.com/eduke32@6656 1a8010ca-5511-0410-912e-c29ae57300e0
2018-02-16 06:38:21 +00:00
hendricks266
ff0768eaa9 Fix build issues with ARM and USE_OPENGL=0. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@6651 1a8010ca-5511-0410-912e-c29ae57300e0
2018-02-15 03:49:23 +00:00
hendricks266
d68c9b45c6 Add "rtsname" token to grpinfo grammar.
git-svn-id: https://svn.eduke32.com/eduke32@6645 1a8010ca-5511-0410-912e-c29ae57300e0
2018-02-11 05:03:55 +00:00
hendricks266
392d5fc942 Fix visibility in Polymer with r_usenewshading 4 and palette emulation off.
Move some visibility-related constants from Polymer "core" code elsewhere.

Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6590 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-26 04:35:06 +00:00
pogokeen
9c695d6bc4 Fix line spacing tab issue in rev 6570.
git-svn-id: https://svn.eduke32.com/eduke32@6571 1a8010ca-5511-0410-912e-c29ae57300e0
2017-12-19 00:03:12 +00:00
pogokeen
741305e976 Fix a number of cases where files opened with cache1d.cpp's kopen_internal() could be leaked.
git-svn-id: https://svn.eduke32.com/eduke32@6570 1a8010ca-5511-0410-912e-c29ae57300e0
2017-12-18 23:36:05 +00:00
hendricks266
2f98d759f6 Fix visibility in Polymer with r_usenewshading 4.
Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6558 1a8010ca-5511-0410-912e-c29ae57300e0
2017-12-12 05:14:02 +00:00
terminx
d3417b763a Untabify engine.cpp
git-svn-id: https://svn.eduke32.com/eduke32@6547 1a8010ca-5511-0410-912e-c29ae57300e0
2017-12-09 02:56:31 +00:00
terminx
f97aee59c8 Address issue where timers will no longer update after several hours of runtime
git-svn-id: https://svn.eduke32.com/eduke32@6543 1a8010ca-5511-0410-912e-c29ae57300e0
2017-12-09 02:56:12 +00:00
hendricks266
5fbe1b89be New def token for "multipsky": "yscale".
multipsky <tile> { yscale <yscale> }

Default value is 65536.

Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6519 1a8010ca-5511-0410-912e-c29ae57300e0
2017-11-29 07:29:48 +00:00
hendricks266
66162032a0 Add r_usenewshading 4.
Uses a constant determined from the shade tables.

Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6515 1a8010ca-5511-0410-912e-c29ae57300e0
2017-11-29 07:29:33 +00:00
terminx
d33107808e Fix crash with "setrendermode 4" in builds with Polymer disabled
git-svn-id: https://svn.eduke32.com/eduke32@6488 1a8010ca-5511-0410-912e-c29ae57300e0
2017-10-16 21:17:53 +00:00
terminx
29fc836bb1 Switch palookup memory allocation to Xalligned_alloc and fix what looks like a botched preprocessor condition
git-svn-id: https://svn.eduke32.com/eduke32@6438 1a8010ca-5511-0410-912e-c29ae57300e0
2017-09-19 19:10:19 +00:00
terminx
fa02c6433b Switch allocation of sprite/wall/sector to individual aligned allocations instead of the weird thing I was doing with multiple pointers to different parts of a single large block
git-svn-id: https://svn.eduke32.com/eduke32@6381 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-27 09:13:15 +00:00
hendricks266
a782247eac inthi_rintf
git-svn-id: https://svn.eduke32.com/eduke32@6378 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-22 04:00:30 +00:00
terminx
dad337add8 Fix gcc 7.1.0 warnings
git-svn-id: https://svn.eduke32.com/eduke32@6370 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-18 20:53:41 +00:00
terminx
fd19569099 Drop libpng and zlib in favor of a custom < 100 line .png writer and a drop-in zlib replacement called miniz.
git-svn-id: https://svn.eduke32.com/eduke32@6365 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-18 20:53:00 +00:00
terminx
3706ac1b43 Allow scripts to change MAXSPRITESONSCREEN before calls to drawrooms() and friends
git-svn-id: https://svn.eduke32.com/eduke32@6347 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-08 19:42:11 +00:00
terminx
8d2fe8ec1d Fix old Build engine bug: setgotpic() not called from parascan()
git-svn-id: https://svn.eduke32.com/eduke32@6340 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-08 19:41:21 +00:00
hendricks266
01b6047377 Trailing whitespace.
git-svn-id: https://svn.eduke32.com/eduke32@6303 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-27 11:01:22 +00:00
terminx
c25aa4a790 OSD (console) cleanup
git-svn-id: https://svn.eduke32.com/eduke32@6297 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-27 02:24:14 +00:00
hendricks266
cb12f25cda Add a wallext structure for non-Lunatic builds so they can have a blend member too.
git-svn-id: https://svn.eduke32.com/eduke32@6276 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-25 11:23:53 +00:00
hendricks266
5ef942f4ec Shrink the tilesiz vector to use int16_t members as the original arrays were.
git-svn-id: https://svn.eduke32.com/eduke32@6263 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-24 09:21:13 +00:00
terminx
dac7679633 Replace 2 memcpys with assignments
git-svn-id: https://svn.eduke32.com/eduke32@6231 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-23 03:58:48 +00:00
terminx
4ae5f2e298 Remove "BUILD_NOP6", old cruft for running on ancient x86 processors without MMX.
git-svn-id: https://svn.eduke32.com/eduke32@6229 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-23 03:58:36 +00:00
terminx
b13deef232 The most minor of minor optimizations. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@6166 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-09 06:41:23 +00:00
hendricks266
62a921c409 Remove the implicit "static" from our FORCE_INLINE macro.
This will be important for C++ member functions.

git-svn-id: https://svn.eduke32.com/eduke32@6076 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-25 08:15:53 +00:00
hendricks266
aa04307ad1 Route all inclusion of libc headers and most of POSIX headers through compat.h.
git-svn-id: https://svn.eduke32.com/eduke32@6074 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-25 08:15:36 +00:00
hendricks266
d4ee6d00c8 Route inclusion of all Windows headers through a new header, windows_inc.h.
This allows us to make certain guarantees about limits on the extent of namespace pollution these headers introduce.

git-svn-id: https://svn.eduke32.com/eduke32@6065 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-19 22:15:44 +00:00
hendricks266
d43fb548cf Abolish all " ={ " when assigning a struct. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@6061 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-05 20:58:33 +00:00
hendricks266
1cc9d13ccf The great repository rearrangement of 2017.
Files moved but not modified. Changes to follow in a subsequent commit.

You down with CPP?

git-svn-id: https://svn.eduke32.com/eduke32@6055 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-01 10:01:11 +00:00
Renamed from polymer/eduke32/build/src/engine.c (Browse further)