From 013dd622004efc59537cefa7ada0fe2ee9b79f3b Mon Sep 17 00:00:00 2001 From: Bloop <13398309+vinylspiders@users.noreply.github.com> Date: Sun, 7 Sep 2025 03:03:40 -0400 Subject: [PATCH] Fixes flaky runtime issue for maps with space terrain near their borders by making maploaded movables stay put (#92862) ## About The Pull Request Ever since https://github.com/tgstation/tgstation/pull/91920 we have been getting a very persistent CI failure downstream, and upon investigating the transitions of this map seem weird and cut off, almost like it's taking pieces of the other side and trying to superimpose them on itself. image I looked at what it changed, and this line stuck out to me as suspicious. image It stuck out to me because it seems like it might not appropriately handle space maps that have terrain near the borders (we have a map that is surrounded by an asteroid field, for instance, and that's the one that's been causing issues).
Asteroid field map shown here StrongDMM_BP2oO3sKtf
~~@Time-Green Do you have any insights to this?~~ ~~I am drafting it for now because I don't think this is the right 'fix' as it will likely interfere with/break the icebox wilderness stuff.~~ ~~The main issue is (possibly?) that `atom/movable`s (including these rocks) which end up on the border of the map transition are being yeeted into space, on the opposite end of the map, because of their location.~~ ~~Movables that are maploaded probably shouldn't be transitioned, might be the solution there?~~ EDIT: Fairly certain that the issue has been found out, it's due to movable rocks which are mapped near the edge of the map getting instantly teleported upon maploading. Seems like this is something we should prevent from happening. ## Why It's Good For The Game Fixes an oversight ## Changelog Not player-facing --- code/game/turfs/open/_open.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/game/turfs/open/_open.dm b/code/game/turfs/open/_open.dm index 2dd779a7f1f..78af79d750f 100644 --- a/code/game/turfs/open/_open.dm +++ b/code/game/turfs/open/_open.dm @@ -137,6 +137,9 @@ if(!destination_z || !destination_x || !destination_y || arrived.pulledby || arrived.currently_z_moving) return + if(SSatoms.initialized == INITIALIZATION_INNEW_MAPLOAD) // we don't want to be transitioning atoms to another z-level while we are still in mapload + return + var/tx = destination_x var/ty = destination_y var/turf/DT = locate(tx, ty, destination_z)