Map exchange string format in Wiki outdated (at least 0.17.79+)
Posted: Sun Jul 05, 2020 4:29 pm
Hello,
Working on a TAS, I worked on a small command to start a fresh headless server from a map exchange string in a VM. I have this working now, but it took a while because it seems like the wiki entry for Map exchange string format is partially outdated. Is this page maintained in any way by the developers, or should I try to contribute my findings from reverse engineering some parts?
For instance, in Map Gen Settings (which is the only part I reverse engineered so far), there seems to be a new byte before water frequency and water size. Both those values seem to be floats now. Also water size seems to have the inverse behavior than UI, ie. setting to 600% in GUI results in value if .17, while a value of 17% in GUI results in value of 6.0. All autoplace_controls values are also floats. There seems to be 24 bytes of new data before the starting_area, which is also now a float. Things like that.
I would also love a description on how to decode the space optimized integer there. I am not sure how one is supposed to determine if a number is <255 on decode, unless the decoded number turns out to be > to buffer size, but that could be wrong in certain cases.
Thank you
Working on a TAS, I worked on a small command to start a fresh headless server from a map exchange string in a VM. I have this working now, but it took a while because it seems like the wiki entry for Map exchange string format is partially outdated. Is this page maintained in any way by the developers, or should I try to contribute my findings from reverse engineering some parts?
For instance, in Map Gen Settings (which is the only part I reverse engineered so far), there seems to be a new byte before water frequency and water size. Both those values seem to be floats now. Also water size seems to have the inverse behavior than UI, ie. setting to 600% in GUI results in value if .17, while a value of 17% in GUI results in value of 6.0. All autoplace_controls values are also floats. There seems to be 24 bytes of new data before the starting_area, which is also now a float. Things like that.
I would also love a description on how to decode the space optimized integer there. I am not sure how one is supposed to determine if a number is <255 on decode, unless the decoded number turns out to be > to buffer size, but that could be wrong in certain cases.
Thank you