Commit graph

8650 commits

Author SHA1 Message Date
pogokeen
4d22a44a5d tiles.cpp: backup & restore picsiz, walock, & waloff alongside other per tile arrays in artClearMapArt() and artSetupMapArt()
This fixes an issue with viewscreens as tiles that are setup game-side after a map is loaded could have their sizes reset to 0 while not being properly cleared from walock/waloff

git-svn-id: https://svn.eduke32.com/eduke32@7892 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:43:58 +02:00
pogokeen
67522909c5 sector.cpp: ensure that if scripts have told us not to render normally to the tile, that we still handle restoring our target & setting up the tile appropriately for what the script may have rendered
git-svn-id: https://svn.eduke32.com/eduke32@7891 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:43:56 +02:00
pogokeen
5fad944ed1 engine.cpp: make renderSetTarget() more robust so that passing an xsiz or ysiz <= 0 is not accepted and can't cause a segmentation fault
git-svn-id: https://svn.eduke32.com/eduke32@7890 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:43:55 +02:00
pogokeen
a844fd4b13 polymost.cpp: Fix issue where tiles whose dimensions had grown would not have their sizes updated in GL and could fail to update their texture data
git-svn-id: https://svn.eduke32.com/eduke32@7888 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2019-09-20 15:42:29 +02:00
pogokeen
e1f4800e3a build.vcxproj: Execute custom build tools & step before BuildGenerateSources
git-svn-id: https://svn.eduke32.com/eduke32@7885 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:33 +02:00
terminx
6931d448ff Oops
git-svn-id: https://svn.eduke32.com/eduke32@7884 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:30 +02:00
terminx
2126d215ed Fix crashes when passing invalid variable names to a couple of debugging commands in the console
git-svn-id: https://svn.eduke32.com/eduke32@7883 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:26 +02:00
terminx
3c28f6cfc6 Don't attempt to draw TILE_LOADSHOT unless it's already in memory
This works around a flaw in the .ext loading logic that I don't have time to debug right now.

git-svn-id: https://svn.eduke32.com/eduke32@7882 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:23 +02:00
terminx
c5dbbe892c Fix automapping not working when looking at the textured map mode
git-svn-id: https://svn.eduke32.com/eduke32@7881 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:21 +02:00
terminx
7553bb043f Skip drawing invalid polygons in polymost_drawpoly()
git-svn-id: https://svn.eduke32.com/eduke32@7880 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:18 +02:00
terminx
e9e9067251 Fix warning
git-svn-id: https://svn.eduke32.com/eduke32@7879 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:16 +02:00
terminx
95598e08f9 getwalldist() tweak
git-svn-id: https://svn.eduke32.com/eduke32@7878 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:14 +02:00
terminx
db85a55dfd Use I_AdvanceTrigger() instead of I_CheckAllInput() for the skip condition in Anim_Play()
git-svn-id: https://svn.eduke32.com/eduke32@7877 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:11 +02:00
terminx
9f9a158946 Replace runtime pow2 calculations with pow2char LUT usage
I don't know that this is any faster, but there's something to be said for standardization and consistency. I will be making most of this stuff use bitmap_set/test/clear() soon.

git-svn-id: https://svn.eduke32.com/eduke32@7876 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
#	source/build/src/polymost.cpp
2019-09-20 15:34:08 +02:00
terminx
9c5db5aac0 Sanitize walock[] usage
git-svn-id: https://svn.eduke32.com/eduke32@7875 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:33:07 +02:00
terminx
2a3c80f95d Fix issue with sounds being expired from cache
git-svn-id: https://svn.eduke32.com/eduke32@7874 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:33:05 +02:00
terminx
1a0c56f0f1 This adds back in the engine's old automapping feature
This was removed a long time ago because Duke3D and Shadow Warrior don't use it.

git-svn-id: https://svn.eduke32.com/eduke32@7873 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymer.cpp
#	source/build/src/polymost.cpp
2019-09-20 15:32:13 +02:00
terminx
6ad445d47b Make most things in screens.cpp use I_AdvanceTrigger() instead of I_CheckAllInput()
git-svn-id: https://svn.eduke32.com/eduke32@7872 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:40 +02:00
terminx
1a83ec15e4 Fix silly branching logic in engineLoadBoard()
git-svn-id: https://svn.eduke32.com/eduke32@7871 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:38 +02:00
terminx
c7e403619b Don't blow away wall cstat bit 14 for use as a temp flag in the editor
Patch from Nuke.YKT.

git-svn-id: https://svn.eduke32.com/eduke32@7870 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
2019-09-20 15:29:35 +02:00
terminx
a949665f26 Work around an issue with far plane clipping with voxels without mipmaps in software mode
Patch from Nuke.YKT.

git-svn-id: https://svn.eduke32.com/eduke32@7869 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:20 +02:00
terminx
9335b339b0 Emulate slope overflow in Polymost in order to match the rest of the engine's slope algorithms
Patch from Nuke.YKT.

git-svn-id: https://svn.eduke32.com/eduke32@7868 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:19 +02:00
terminx
0f4ccaf970 Hopefully work around more Polymost polygon leakages
Patch from Nuke.YKT.

git-svn-id: https://svn.eduke32.com/eduke32@7867 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:17 +02:00
terminx
acc0b527a9 Cache the distrecip[] table
Patch from Nuke.YKT.

git-svn-id: https://svn.eduke32.com/eduke32@7866 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:15 +02:00
terminx
0091acc858 "Another dumb polymost optimization. Probably worth few fps in heavy scenes"
Patch from Nuke.YKT

git-svn-id: https://svn.eduke32.com/eduke32@7865 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:12 +02:00
terminx
0652b5b6d6 Make ksgn() return int instead of int32_t
git-svn-id: https://svn.eduke32.com/eduke32@7864 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:09 +02:00
terminx
26272f6755 if 0 out our klabs() function and just define it as abs()
The compiler generates much better code for this now.

git-svn-id: https://svn.eduke32.com/eduke32@7863 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:06 +02:00
terminx
752cf77887 Untabify a couple of headers
git-svn-id: https://svn.eduke32.com/eduke32@7862 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:05 +02:00
terminx
24a53db8f5 I'm not aware of any particular issues this change fixes, but I definitely don't intend this hack to ever affect anything while the player is on the ground
git-svn-id: https://svn.eduke32.com/eduke32@7861 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:02 +02:00
terminx
ed40842bad Apply "reset object trackers on savegame load" patch
git-svn-id: https://svn.eduke32.com/eduke32@7860 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:01 +02:00
terminx
f84e161e52 Wahhh, I'm MSVC and I cry about applying unary negation to a boolean
git-svn-id: https://svn.eduke32.com/eduke32@7859 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:28:59 +02:00
terminx
751b734795 Fix issue rendering TROR when the camera's z coordinate is right on the portal
git-svn-id: https://svn.eduke32.com/eduke32@7858 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:28:57 +02:00
terminx
6e4951bdb6 Another clipping fix
git-svn-id: https://svn.eduke32.com/eduke32@7857 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:28:53 +02:00
terminx
762c3ebbf6 Add sc_Space to I_AdvanceTrigger() and I_AdvanceTriggerClear()
git-svn-id: https://svn.eduke32.com/eduke32@7856 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:28:50 +02:00
terminx
e65fb8ab2a Switch fadepal() and fadepaltile() over to using I_CheckAllInput()/I_ClearAllInput() instead of checking for the spacebar exclusively
git-svn-id: https://svn.eduke32.com/eduke32@7855 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:28:47 +02:00
pogokeen
a0231cf90c polymost_scansector(): avoid using a culling method not designed for voxels when handling 1-sided wall aligned sprites that have voxel replacements
git-svn-id: https://svn.eduke32.com/eduke32@7854 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:28:45 +02:00
pogokeen
83e863422a Fix mixing offscreenrendering (render targets) and mirrors. Don't allow recursing beyond 1 level of mirroring through multiple levels of render targets.
git-svn-id: https://svn.eduke32.com/eduke32@7853 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:28:42 +02:00
pogokeen
5377b128a9 Fix rendering skyboxes to a tile by altering renderSetTarget() & renderRestoreTarget() to set & reset xdim & ydim so that G_ShowView() can render while a render target is set,
and additionally modifying G_SetupCamTile() to call EVENT_DISPLAYROOMSCAMERATILE after calling renderSetTarget()

git-svn-id: https://svn.eduke32.com/eduke32@7852 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:28:41 +02:00
hendricks266
fdaee03dfb ext loading
git-svn-id: https://svn.eduke32.com/eduke32@7850 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:26:44 +02:00
terminx
ae36202ac7 Fix for emerging from TROR water
git-svn-id: https://svn.eduke32.com/eduke32@7848 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:26:24 +02:00
terminx
e0e517aaed Revise r7838 again
git-svn-id: https://svn.eduke32.com/eduke32@7847 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:26:22 +02:00
terminx
f3e4dd4463 Patch from Nuke.YKT to work around precision-based inaccuracy problems in Polymost TROR
git-svn-id: https://svn.eduke32.com/eduke32@7846 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:25:31 +02:00
terminx
1d14991acc Add MERGE_NODES macro for Polymost... this will be used in the following commit
git-svn-id: https://svn.eduke32.com/eduke32@7845 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:25:28 +02:00
terminx
ee92304087 Patch from Nuke.YKT to clip bunches to screen boundaries in Polymost
git-svn-id: https://svn.eduke32.com/eduke32@7844 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:25:24 +02:00
terminx
47fa1eccd4 Patch from Nuke.YKT to fix sloped floor and ceiling textures wiggling around in Polymost
git-svn-id: https://svn.eduke32.com/eduke32@7843 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2019-09-20 15:24:54 +02:00
terminx
a3b6d0e70b Revise r7838: one less dumbass typo
git-svn-id: https://svn.eduke32.com/eduke32@7842 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:57 +02:00
terminx
56604e5e25 Make it easier to jump into vents
git-svn-id: https://svn.eduke32.com/eduke32@7841 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:55 +02:00
terminx
7c88548074 Remember to delete .esv.ext file when deleting .esv file itself
git-svn-id: https://svn.eduke32.com/eduke32@7840 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:52 +02:00
terminx
28c778c8a3 Automatic source file dependency generation for GNUmakefile
This automatically saves the dependencies used for a given object file during the first compilation, then uses the generated data for each subsequent compile to determine if the object needs to be rebuilt. Why? Because if I see one more warning about the C++ One Definition Rule, I'm going to fucking snap.

git-svn-id: https://svn.eduke32.com/eduke32@7839 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:50 +02:00
terminx
565383e1d2 Revise r7835: instead of not testing wall sprites, we'll just ignore the side blockers
git-svn-id: https://svn.eduke32.com/eduke32@7838 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:47 +02:00