Thanks, all. I think this is one and the same core issue.
We have a 32-bit integer overflow.
In the Steam player .dat files, starting IDs are 100M. When multiplied by 100, these roll over the 4.2B limit (multiple times). This causes the offset.
Wow...I'm surprised this issue did not come up once in our past year of testing. Sheesh.
I need to think of how to fix this...
Idea #1: Using 10M instead of 100M for the starting ID would work. That would require deleting all of your local .dat files and letting the game recreate them starting at this value. Can we think of a cleaner solution?
Idea #2: have a start-up step that looks for this situation and fixes up the level IDs and room Y coordinates automatically. Could be error prone and would take a good amount of development and validation to get precisely right.
I prefer #1.
____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.
[Last edited by mrimer at 09-25-2016 07:34 PM]