Desync Because Gravship Abort Landing Generates Maps On Different Tiles Sometimes
Label: 1.6, Odyssey, Bug, low prio, Desync
Not game-breaking - resync works fine.
Reproduce:
- Use gravship to fly to an anchored map
- Press abort landing
- Sometimes the map tile is different on clients and therefore the map itself.
- This does not happen 100% of the time.
This is most likely the part that produces the different maps:
WorldComponent_GravshipController.AbortLanding calls:
layer.FastTileFinder.Query(query, null, null, default(FastTileFinder.TileQueryParams)).RandomElementWithFallback(PlanetTile.Invalid)
https://github.com/rwmt/Multiplayer/blob/8b9b44e3e2040302565c3a17b581e65b2e66019a/Source/Client/Syncing/Game/SyncMethods.cs#L430 Setting the context reduced the issue, but I haven’t looked into why.
https://github.com/rwmt/Multiplayer/blob/fd405999f7a08a992acddea6c1108f94297f6646/Source/Client/Patches/GravshipTravelSessionPatches.cs#L284-L304
I post the harmony patch details, because I'm not sure what happens with the link above when the file gets changed.
[HarmonyPatch(typeof(WorldComponent_GravshipController), nameof(WorldComponent_GravshipController.LandingEnded))]
I think this might be the same problem. I haven’t checked whether the Rand is still necessary here, or what the original reason was for adding it. (not added by me)