Moved the handling of P_PlayerInSpecialSector to P_PlayerAfterThink from P_PlayerThink.
* This allows the player to get hurt on sloped lava surfaces that are moving downwards.
* Also prevents the player from standing on death pits for 1 tic.
* Prevents the player moving 1 extra tic's worth of movement of pain when hit by sector.
* Thankfully, no consequences re conveyors.
* Like, the only consequences I've found have been positive. However, this DOES need to be thoroughly investigated before it can be allowed anywhere near Next itself.
(neither does P_CanRunOnWater, but I don't think it's necessary to make that check more complicated as you probably shouldn't be able to waterrun up steep surfaces anyways)
P_IsPointInSubsector fix! (Most importantly: Knuckles No Longer In Space)
Now works in GL by not relying on stuff which GL mutates! Thanks for the guidance, @MonsterIestyn! Tested in Steel_Titanium's Nightlight Ruins (in SUGOI), which had the perfect testbed for plenty of Knuckles issues AND is one of the first maps out to the public which eschews thok barriers altogether in some sections.
* Knuckles climbing on one sided lines is now super great and doesn't allow any space-climbing at all, OGL-exclusive OR renderer-independent. I was able to restore my earlier perfect-in-Software fix because now it also works fine in GL, too!
* The devmode TELEPORT command now actually prevents you from going outside maps which don't have thok barriers near where you were. (It only prevented you from going outside maps with thok barriers because the thok barriers bled outwards and failed some other conditions.)
* Camera now behaves identically between Software and GL. (Look closely at p_user.c - I didn't modify any code in that section, but the chasecam DOES call P_IsPointInSubsector...)
* Here's a biggun - OpenGL precipitation is ALSO fixed! Yup. That's right. It used P_IsPointInSubsector too, and THAT'S why it was broken for all this time. (I did have to do a few other changes beyond just flipping the ifdef, but HOLY SHIT.) Tested this in Mystic Realm's second zone, which kept rain all the way through in OGL!!
(And yes, I AM compiling with OGL on for this branch.)
See merge request !128
Also, the "teleport" devmode command can now gracefully handle coordinates specified outside maps with no/few thok barriers, which previously prevented teleport via the thok barrier bleed's sector floor and ceiling being equal.
Fixing various problems with MF_SOLID collision
(I, toast, wrote the original merge request, but Alam made this merge request because I made a mistake. Twice. In a row.)
* Solid objects are now no longer intangible when your z is less than the other object's.
* I originally thought the bug was limited to just solid objects on slopes (hence the branch name), and was wondering about undesired side effects - but looking at this gfy, this was a major bug that slopes made easier to expose.
* Unfixed = http://gfycat.com/BareLimitedCavy
* Fixed = http://gfycat.com/JubilantOffensiveGar
* You now properly lose your momentum when jumping at a solid object.
* The way I fixed this was a hack, but it was originally a much worse hack which resulted in very bizzare physics issues, so...
* Unfixed = http://gfycat.com/ShockingAbsoluteArthropods (also demonstrates the first bug)
* Fixed = http://gfycat.com/EmbellishedCourageousGordonsetter
See merge request !119
Fixed players disappearing when spindashing whilst wearing multi-layer shields
* Before: http://i.imgur.com/gxUFElo.png
* After: http://i.imgur.com/NxsOg94.png
The problem was that MT_OVERLAY's default radius and height were never getting changed from 1*FRACUNIT, and that meant that when you spindashed, the game considered it completely below the surface of the flat you were standing on. Since you're not usually clipped on flats that don't belong to FOFs, we didn't notice this aspect of the issue sooner.
(SORRY FOR THE MULTIPLE MR'S AGAIN I TOTALLY SUCK AT REMEMBERING TO MAKE SURE IT GOES TO NEXT INSTEAD OF MASTER)
See merge request !124
my P_SearchBlockmap_* functions are now a single searchBlockmap function, you can choose between "objects" and "lines" with the first arg to decide what to iterate through. I also rearranged the argument order a bit for easy stack cleanup etc
I'll remove the old stuff later, don't worry, it's disabled for now