Skip to content

Fix CR_PLAYER interpolation in reverse gravity

Fixes a CR_PLAYER (and CR_PTERABYTE) interpolation issue in reverse-gravity, caused by Sonic's old_z (Z interpolation) being adjusted in P_MovePlayer based on the ratio between his current height and his "default" height, where the "default" height didn't take "you're slightly shorter while being carried" into account. While I was at it, also fixes Tails carrying Sonic "4 FracUnits" in front of him, instead of "4 times Tails' scale". Also fixes Sonic immediately getting detached due to that if he's much smaller than Tails (and theoretically a Pterabyte, if it also gets changed to carry players "in front of" itself later).


I assume that "Sonic is slightly shorter while being carried" is meant to avoid Tails landing on top of Sonic while carrying him, but can Tails even carry Sonic in the first place when players are solid? (Or maybe it's a leftover from pre-v2.2 days, where Sonic's X/Y was set to Tails' X/Y instead of a little in front of Tails, to somehow ensure that Sonic was always displayed in front of or behind Tails from all angles by not overlapping their hitbox heights? I don't know whether that's applicable.)
In other words, is the correct fix here to "make Sonic remain shorter while being carried during P_MovePlayer" (like this merge request currently does), or is it to "make Sonic never be shorter while being carried in the first place"?

-

TL;DR:
- Fixed an interpolation artefact
- Fixed Tails carrying players incorrectly when scaled up or down

Merge request reports

Loading