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
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
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
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
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
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
terminx
4beaeb5426
Don't check clip objects for sprites in the keepaway() loop in clipmove()
...
This prevents some hilarious issues with deadly wall decorations. The "side blocker" clip lines that already exist for these sprites should already prevent the kinds of clipping issues this loop is intended to address, anyway.
git-svn-id: https://svn.eduke32.com/eduke32@7835 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:40 +02:00
terminx
dad28df269
OK, this is just a bit too restrictive
...
git-svn-id: https://svn.eduke32.com/eduke32@7834 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:38 +02:00
terminx
dc7ec3b2fe
Fix additional clipmove() issue
...
git-svn-id: https://svn.eduke32.com/eduke32@7832 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:33 +02:00
terminx
1da1331299
Clean up raytrace() and rename it to cliptrace()
...
git-svn-id: https://svn.eduke32.com/eduke32@7831 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:31 +02:00
terminx
52db0e37f7
Additional clipmove() reworks
...
This fixes a LOT of clipping errors but needs thorough testing.
git-svn-id: https://svn.eduke32.com/eduke32@7829 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:25 +02:00
terminx
17d3c302a3
Switch a few iterators in clipmove() from int to native_t
...
git-svn-id: https://svn.eduke32.com/eduke32@7828 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:23 +02:00
terminx
417318c271
clipmove() patch from Nuke.YKT:
...
"In some edge cases posx/y might be 'inside' of neighbor sector. I've added double check for this case"
git-svn-id: https://svn.eduke32.com/eduke32@7827 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:20 +02:00
terminx
dc0130625a
Minor pushmove() cleanup
...
git-svn-id: https://svn.eduke32.com/eduke32@7825 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:15 +02:00
terminx
ed457895f1
Replace check_floor_curb() with cliptestsector()
...
git-svn-id: https://svn.eduke32.com/eduke32@7824 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:12 +02:00
terminx
0fb77f8af3
Use corrected slope heights in getzrange() and pushmove()
...
git-svn-id: https://svn.eduke32.com/eduke32@7823 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:10 +02:00
terminx
43f263fc65
Try walldist + 8 instead of walldist << 1 in clipupdatesector()
...
git-svn-id: https://svn.eduke32.com/eduke32@7807 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:17:28 +02:00
terminx
6f54235b7a
Fix edge case in clipupdatesector()
...
git-svn-id: https://svn.eduke32.com/eduke32@7760 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:26 +02:00
terminx
82c37b78cc
Prevent uninitialized access to hitwalls[] in clipmove()
...
git-svn-id: https://svn.eduke32.com/eduke32@7759 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:24 +02:00
terminx
c122aa2178
Replace DO_TILE_ANIM() macro with tileUpdatePicnum() function
...
git-svn-id: https://svn.eduke32.com/eduke32@7722 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/engine_priv.h
# source/build/src/polymer.cpp
# source/build/src/polymost.cpp
2019-09-20 13:15:07 +02:00
terminx
ccdba037b5
Added Xfree() function to accompany the Xmalloc() family of functions and change all uses of Bfree() to Xfree()
...
This was necessary because everything is already allocated with the Xmalloc() functions, but a future commit will make blocks allocated with those functions no longer compatible with the system implementation of free(), which Bfree() wraps.
git-svn-id: https://svn.eduke32.com/eduke32@7705 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/build.cpp
# source/build/src/mdsprite.cpp
# source/build/src/polymer.cpp
# source/build/src/polymost.cpp
# source/build/src/texcache.cpp
# source/build/src/voxmodel.cpp
2019-09-20 12:07:10 +02:00
terminx
d34224a3de
"Fix" editor clipping bug allowing movement into null space
...
This doesn't so much fix the issue as band-aid over it--it appears to be an OG BUILD bug that has happened since long before I ever began improving the clipping, I don't know what causes it, and I don't want to fuck everything up trying to fix it right now.
git-svn-id: https://svn.eduke32.com/eduke32@7698 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:02:29 +02:00
terminx
02ef02872a
Replace manual casts of sprite and wall pointers to vec2/3_t with use of the anonymous union
...
git-svn-id: https://svn.eduke32.com/eduke32@7697 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/build.cpp
# source/build/src/polymost.cpp
2019-09-20 12:02:26 +02:00
hendricks266
3598e79dc7
Fix OOB access in clipmove
...
git-svn-id: https://svn.eduke32.com/eduke32@7685 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:14:35 +02:00
terminx
3db7512c69
Templatize bfirst_search_init() and bfirst_search_try() so they can be used with types other than int16_t
...
git-svn-id: https://svn.eduke32.com/eduke32@7629 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/build.cpp
2019-09-20 09:20:14 +02:00
Christoph Oelckers
0254bf82d3
- added NBlood source.
2019-09-20 00:42:45 +02:00
terminx
61b3a65e79
Improve check_floor_curb()
...
This should fix several remaining clipping bugs.
git-svn-id: https://svn.eduke32.com/eduke32@7611 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:52:41 +02:00
terminx
12eb413f9c
Fix SOS check in clipmove()
...
git-svn-id: https://svn.eduke32.com/eduke32@7610 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:52:40 +02:00
terminx
301ac48ccd
Utilize the types added in the previous commit
...
This patch is a bit large.
git-svn-id: https://svn.eduke32.com/eduke32@7603 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/mdsprite.h
# source/build/src/build.cpp
# source/build/src/polymer.cpp
# source/build/src/polymost.cpp
# source/build/src/voxmodel.cpp
2019-09-19 14:46:31 +02:00
terminx
ab857c4e8f
This should fix updatesector/updatesectorz performance while retaining the benefits of breadth-first search
...
git-svn-id: https://svn.eduke32.com/eduke32@7601 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:37:06 +02:00
terminx
1fae340426
Fix a bunch of improperly defined bitmap arrays
...
git-svn-id: https://svn.eduke32.com/eduke32@7594 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/build.cpp
2019-09-19 14:36:54 +02:00
terminx
e5bd221746
auto/const/constexpr bullshit
...
git-svn-id: https://svn.eduke32.com/eduke32@7587 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:49 +02:00
terminx
f9e866d32d
Rename clipwalldist() to getwalldist() and move both it and sectoradjacent() to engine.cpp
...
git-svn-id: https://svn.eduke32.com/eduke32@7586 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:48 +02:00
terminx
bb517b73e3
clip.cpp usectortype cleanup
...
git-svn-id: https://svn.eduke32.com/eduke32@7585 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:45 +02:00
terminx
d04c4203c5
Fix a really stupid bug in r7574
...
git-svn-id: https://svn.eduke32.com/eduke32@7584 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:43 +02:00
terminx
b46bc73322
Add a distance check to clipupdatesector() to prevent traversing through portals that are outside the wall distance passed to clipmove()
...
git-svn-id: https://svn.eduke32.com/eduke32@7582 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:40 +02:00
terminx
e2be7183b4
Fix addclipsect() accidentally being nested under #ifdef HAVE_CLIPSHAPE_FEATURE
...
git-svn-id: https://svn.eduke32.com/eduke32@7580 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:36 +02:00
terminx
bcf8ae4d84
Revert "Clean up clip.cpp struct casting including but not limited to r7466 changes"
...
git-svn-id: https://svn.eduke32.com/eduke32@7577 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:30 +02:00
hendricks266
f96e1c8e24
Clean up clip.cpp struct casting including but not limited to r7466 changes
...
git-svn-id: https://svn.eduke32.com/eduke32@7576 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:29 +02:00
hendricks266
cd499b2089
Fix clipshape regression in r7466
...
git-svn-id: https://svn.eduke32.com/eduke32@7575 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:27 +02:00
terminx
9af816af52
Replace manual search of clipsectorlist[] in clipmove() and friends with a bitmap
...
git-svn-id: https://svn.eduke32.com/eduke32@7574 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:25 +02:00
terminx
74944c9ed0
Fix clipupdatesector()
...
git-svn-id: https://svn.eduke32.com/eduke32@7573 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:23 +02:00
terminx
ad59875fa3
Improve warnings spewed by clipmove() when attempting to consider too many things for clipping
...
git-svn-id: https://svn.eduke32.com/eduke32@7572 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:21 +02:00
terminx
8a68bffdb0
Clean up clip.h and declare a bunch of stuff in clip.cpp static
...
git-svn-id: https://svn.eduke32.com/eduke32@7571 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:19 +02:00
terminx
b7d06c0bd8
clipmove/pushmove parameter const correctness
...
git-svn-id: https://svn.eduke32.com/eduke32@7567 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:12 +02:00
terminx
7abfcd28be
Add clipupdatesector(), a special version of updatesector() that only searches and returns results that are already in clipsectorlist[]
...
git-svn-id: https://svn.eduke32.com/eduke32@7546 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:20:47 +02:00
terminx
fd5ee7c561
Fix dumbass problem with r7463 that screwed up projectiles
...
git-svn-id: https://svn.eduke32.com/eduke32@7490 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:56:35 +02:00
terminx
303d0048ea
We probably don't want to be bailing out here when handling a clipshape
...
git-svn-id: https://svn.eduke32.com/eduke32@7486 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:52:35 +02:00
terminx
0edbd45145
Retire the original naive updatesector() and updatesectorz() in favor of the breadth-first versions
...
git-svn-id: https://svn.eduke32.com/eduke32@7484 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/build.cpp
# source/build/src/polymer.cpp
2019-09-19 13:52:32 +02:00
terminx
2591c69b44
Add updatesectorbreadthz(), change pushmove() to use updatesectorbreadth(), and modify updatesectorbreadth() to include the early inside_p() return regular updatesector() has
...
git-svn-id: https://svn.eduke32.com/eduke32@7482 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:51:55 +02:00