Revert turf signal preservation + open_space tweaks#12519
Conversation
|
May need to figure out why weeds were being handled in a very particular way, not able to currently find what may have needed the special treatment. |
fira
left a comment
There was a problem hiding this comment.
Things like the tents are also going to need a ChangeTurf signal handler to work properly
I think when i wrote them i incorrectly believed the turf signals already did stick, even though it was added much later
Test merge deployment history:Test Merge Deployed @ 07/03/2026 04:25:24 +00:00:Server InstanceRevisionTest Merge Updated @ 07/03/2026 05:47:46 +00:00:Server InstanceCM13 Live RevisionOrigin: c46d658 Test Merge Updated @ 07/03/2026 06:31:30 +00:00:Server InstanceRevisionTest Merge Updated @ 07/03/2026 07:18:14 +00:00:Server InstanceRevisionTest Merge Updated @ 07/04/2026 00:53:24 +00:00:Server InstanceCM13 Live RevisionOrigin: 37c049f Test Merge Updated @ 07/04/2026 03:13:06 +00:00:Server InstanceRevisionTest Merge Updated @ 07/04/2026 03:24:45 +00:00:Server InstanceCM13 Live RevisionOrigin: 82f219f Test Merge Updated @ 07/04/2026 03:55:33 +00:00:Server InstanceCM13 Live RevisionOrigin: bb16ac6 Test Merge Updated @ 07/04/2026 05:26:35 +00:00:Server InstanceRevisionTest Merge Updated @ 07/04/2026 05:46:46 +00:00:Server InstanceRevisionTest Merge Updated @ 07/04/2026 06:57:35 +00:00:Server InstanceRevisionTest Merge Updated @ 07/04/2026 07:14:57 +00:00:Server InstanceRevisionTest Merge Updated @ 07/04/2026 09:15:58 +00:00:Server InstanceRevisionTest Merge Updated @ 07/04/2026 09:58:55 +00:00:Server InstanceRevisionTest Merge Updated @ 07/04/2026 10:59:50 +00:00:Server InstanceRevisionTest Merge Updated @ 07/04/2026 11:22:52 +00:00:Server InstanceRevisionTest Merge Updated @ 07/04/2026 11:30:54 +00:00:Server InstanceRevisionTest Merge Updated @ 07/04/2026 20:33:37 +00:00:Server InstanceRevisionTest Merge Updated @ 07/05/2026 02:05:47 +00:00:Server InstanceCM13 Live RevisionOrigin: f4cbe98 Test Merge Updated @ 07/05/2026 02:36:47 +00:00:Server InstanceCM13 Live RevisionOrigin: 83b7e7a |
About the pull request
This PR partially reverts #11864 because of issues discovered when testing #12434. Basically the problems with the turf signal registration are:
Of note moveable atoms (obj inherit moveable) can just register themselves to
COMSIG_MOVABLE_TURF_ENTEREDto detect a self turf change because Entered will be called when the turf is New'd. turf/Entered() is now set it must call parent because that is where the signals are called.As far the open_space changes, they appear to be the only turf that Initializes that doesn't call parent, so weren't calling Entered on its contents until now. This then caused issues in the test room, so adjustments were made to accomodate for that as well as an assertion for their placement generally. Even if placed wrong though, mobs aren't allowed to be force moved to null, and attempting to climb them already says its too dangerous. Various things were set to not fall, but I ultimately ended going with
if(SSticker.current_state < GAME_STATE_PLAYING)because a couple maps were putting non-prop items ontop of walls in an open_space that I can't really accommodate w/o ignoring stuff pre-game.Explain why it's good for the game
Less runtimes (just about signal registrations lacking override) and hopefully correct signals that aren't messed up just by turfs changing. Also better open_space handling & assertions.
Testing Photographs and Procedure
Generally this is a return back to how things were signals wise, but I did test say how tents handled turfs changing to ensure all of their locs would trigger an Enter (and they do), as well as moving/exploding/changing turfs under a corpse (to test weed_food), and multiz stairs. See below:
Screenshots & Videos
Late spawned stairs:

Changed 3 turfs for late spawned stairs, and moved north, and stairs-up effects still triggered as normal:

More tent testing:
2026-06-25.17-00-32.mp4
Changelog
🆑 Drathek
del: Removed logic making turfs persist signals
fix: open_space now calls Entered for atoms in its contents on Initialize (making them fall automatically if game has started)
fix: Various props are now set to NO_ZFALL
fix: Multiloc objects now only fall in open_space if their main loc is in that turf
code: open_space now checks placement is valid when testing and doesn't attempt to forcemove anything out of the map
/:cl: