* Player state upon collision with ground after rolling now sets state properly.
* Fix the thing where Knuckles can glide up a slope like it's nothing WHILE keeping things working for bouncers.
While I believe the opposite behavior was intentional at first, it has proven to be problematic and makes alignment a tedious task for copied planes.
Signed-off-by: Nev3r <apophycens@gmail.com>
- Removed unused vars from the slope struct. I'm pretty sure they were meant for something at some point, but right now there's nothing using them and frankly I find it hard to understand what they were meant for.
- Removed unused slope flags.
- Flipped dynamic slope flag naming convention.
Signed-off-by: Nev3r <apophycens@gmail.com>
* Moved dynamic slope-related data into its own thinker.
* Vertex slopes no longer use the mapthings directly.
Signed-off-by: Nev3r <apophycens@gmail.com>
* Made the name of P_PrepareSlopeToWallTransfer (now P_GetWallTransferMomz) make sense.
* Bugfixed the case where you couldn't reliably guess the angle of the wall you just hit.
* Seriously reworked a lot of stuff behind the scenes, thanks to Red's comments.
* More consistent behaviour.
* Launching power is now scaled to the slope's angle relative to the wall you hit, so no massive launches when you hit the side of a steep slope.
* The code is a lot messier and the function name doesn't make any sense any more, so I need to clean that up in the morning.
* Need to figure out how to prevent tiny launches that uncurl you when spindashing up against walls.
* Spindashing trails now takes into account vertical momentum as well as horizontal - it was stupid not seeing your spintrail just because you weren't moving very fast horizontally!
No exe uploaded because it's almost 2am.
Also, the teetering angle on slopes is now FRACUNIT/2 because there's literally no way to stand still on a slope that steep unless it doesn't have physics.
When I first wrote this, I thought the .h file that contained a function declaration needed to have the same name as the .c file the function was in. Now I know that's not the case, off to p_local.h with you.
*Didn't take into account object scale
*Doubled force when on the ground (ignore what the comment of the line I moved says, it was relevant for slopes...)
This also led to a mistake with slopes, where I was double-multiplying by the gravity constant to get half (because of a quirk of numbers...)