by InsanityBringer » Sun May 14, 2023 3:33 pm
Test wad by nova++:
https://cdn.discordapp.com/attachments/ ... scroll.wad
Scrolling walls, if they scroll for a long enough distance, will stop scrolling. The above test wad has two scrollers that stop scrolling after around 35 seconds and a minute respectively. I've determined that the cause seems to be in r_wallsetup, where the X offset of a wall is converted into a fixed_t before being sent to Project. But this seems unneeded because Project simply converts the fixed_t into a float. I duplicated Project and GetXOffset to take and return a double respectively, and the issue seemed to go away. (the jitter will probably still be there, though, since a lot of these calculations are using 32-bit floats). Overall the conversion to and from fixed_t seems unneeded.
(also, I seem unable to post in the software renderer bugs section?)
Test wad by nova++: https://cdn.discordapp.com/attachments/752235305771466932/1107407962198257684/scroll.wad
Scrolling walls, if they scroll for a long enough distance, will stop scrolling. The above test wad has two scrollers that stop scrolling after around 35 seconds and a minute respectively. I've determined that the cause seems to be in r_wallsetup, where the X offset of a wall is converted into a fixed_t before being sent to Project. But this seems unneeded because Project simply converts the fixed_t into a float. I duplicated Project and GetXOffset to take and return a double respectively, and the issue seemed to go away. (the jitter will probably still be there, though, since a lot of these calculations are using 32-bit floats). Overall the conversion to and from fixed_t seems unneeded.
(also, I seem unable to post in the software renderer bugs section?)