Skip to content

Revert turf signal preservation + open_space tweaks#12519

Open
Drulikar wants to merge 20 commits into
cmss13-devs:masterfrom
Drulikar:remove_turf_signal_retention
Open

Revert turf signal preservation + open_space tweaks#12519
Drulikar wants to merge 20 commits into
cmss13-devs:masterfrom
Drulikar:remove_turf_signal_retention

Conversation

@Drulikar

@Drulikar Drulikar commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

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:

  • They aren't even implemented correctly, just a LAZYOR is insufficient to replicate the (unnecessarily) complex series of associated lists
  • Its not feasible to account for all sideeffects that may occur during the Newing of a turf that make all previous signals correct to copy over
  • I think it generally more clear to expect things to explicitly implement themselves entering into a new turf than the reverse (side effects that could affect some unrelated signal that just happens to be caught in the crossfire)

Of note moveable atoms (obj inherit moveable) can just register themselves to COMSIG_MOVABLE_TURF_ENTERED to 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 image image

Late spawned stairs:
image

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

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:

@Drulikar Drulikar added the Needs Testing Need to test it on the guinea pigs (production server) label Jun 25, 2026
@github-project-automation github-project-automation Bot moved this to Awaiting Review in Review Backlog Jun 25, 2026
@cmss13-ci cmss13-ci Bot added Removal snap size/M Denotes a PR that changes 50-199 lines, ignoring generated files. labels Jun 25, 2026
@Drulikar Drulikar marked this pull request as draft June 25, 2026 04:06
@Drulikar Drulikar marked this pull request as ready for review June 25, 2026 05:03
@Drulikar

Copy link
Copy Markdown
Contributor Author

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 fira left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Comment thread code/modules/tents/deployed_tents.dm
@cmss13-ci cmss13-ci Bot added the Fix Fix one bug, make ten more label Jun 26, 2026
@cmss13-ci cmss13-ci Bot added the Code Improvement Make the code longer label Jun 26, 2026
@Drulikar Drulikar changed the title Revert turf signal preservation Revert turf signal preservation + open_space tweaks Jun 26, 2026
fira
fira previously approved these changes Jun 30, 2026
@github-project-automation github-project-automation Bot moved this from Awaiting Review to Partially Approved / Mergeable in Review Backlog Jun 30, 2026
@cm13-github

cm13-github commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Test merge deployment history:

Test Merge Deployed @ 07/03/2026 04:25:24 +00:00:
Server Instance

CM13 Live

Revision

Origin: 6fcc629
Pull Request: 5ca8655
Server: 5cc5540

Test Merge Updated @ 07/03/2026 05:47:46 +00:00:
Server Instance

CM13 Live

Revision

Origin: c46d658
Pull Request: 5ca8655
Server: 1314284be0772b3898f23e9a311f9ba2689512bd

Test Merge Updated @ 07/03/2026 06:31:30 +00:00:
Server Instance

CM13 Live

Revision

Origin: c46d658
Pull Request: d020948
Server: c5f638b

Test Merge Updated @ 07/03/2026 07:18:14 +00:00:
Server Instance

CM13 Live

Revision

Origin: c46d658
Pull Request: 6d6bd7f
Server: bad4ec5

Test Merge Updated @ 07/04/2026 00:53:24 +00:00:
Server Instance

CM13 Live

Revision

Origin: 37c049f
Pull Request: 6d6bd7f
Server: 8011e8f7a77e656fbd26ed09fc88ab985e75a352

Test Merge Updated @ 07/04/2026 03:13:06 +00:00:
Server Instance

CM13 Live

Revision

Origin: 37c049f
Pull Request: 6d6bd7f
Server: 5ef7c4f

Test Merge Updated @ 07/04/2026 03:24:45 +00:00:
Server Instance

CM13 Live

Revision

Origin: 82f219f
Pull Request: 6d6bd7f
Server: 7331e71b0b432648028b2d8abf7a17bbc2ce499e

Test Merge Updated @ 07/04/2026 03:55:33 +00:00:
Server Instance

CM13 Live

Revision

Origin: bb16ac6
Pull Request: 6d6bd7f
Server: b2128be42e0b24ea824c93f0fa4102b0f61bff91

Test Merge Updated @ 07/04/2026 05:26:35 +00:00:
Server Instance

CM13 Live

Revision

Origin: 6668a9e
Pull Request: 6d6bd7f
Server: 8e82186

Test Merge Updated @ 07/04/2026 05:46:46 +00:00:
Server Instance

CM13 Live

Revision

Origin: 6668a9e
Pull Request: 6d6bd7f
Server: 7bb46f9

Test Merge Updated @ 07/04/2026 06:57:35 +00:00:
Server Instance

CM13 Live

Revision

Origin: 30f0449
Pull Request: 6d6bd7f
Server: d93cd41

Test Merge Updated @ 07/04/2026 07:14:57 +00:00:
Server Instance

CM13 Live

Revision

Origin: 30f0449
Pull Request: 6d6bd7f
Server: d19887a

Test Merge Updated @ 07/04/2026 09:15:58 +00:00:
Server Instance

CM13 Live

Revision

Origin: 30f0449
Pull Request: 6d6bd7f
Server: 734871a

Test Merge Updated @ 07/04/2026 09:58:55 +00:00:
Server Instance

CM13 Live

Revision

Origin: 30f0449
Pull Request: 6d6bd7f
Server: 686c169

Test Merge Updated @ 07/04/2026 10:59:50 +00:00:
Server Instance

CM13 Live

Revision

Origin: 30f0449
Pull Request: 6d6bd7f
Server: 73ab40c

Test Merge Updated @ 07/04/2026 11:22:52 +00:00:
Server Instance

CM13 Live

Revision

Origin: 30f0449
Pull Request: 6d6bd7f
Server: 94bfdaf

Test Merge Updated @ 07/04/2026 11:30:54 +00:00:
Server Instance

CM13 Live

Revision

Origin: 30f0449
Pull Request: 6d6bd7f
Server: 312cc77

Test Merge Updated @ 07/04/2026 20:33:37 +00:00:
Server Instance

CM13 Live

Revision

Origin: 30f0449
Pull Request: 6d6bd7f
Server: 9b49176

Test Merge Updated @ 07/05/2026 02:05:47 +00:00:
Server Instance

CM13 Live

Revision

Origin: f4cbe98
Pull Request: 6d6bd7f
Server: 108b137a251249fb24c121e53f56549a0d1a4d0d

Test Merge Updated @ 07/05/2026 02:36:47 +00:00:
Server Instance

CM13 Live

Revision

Origin: 83b7e7a
Pull Request: 6d6bd7f
Server: 2fbfe8d2152d29e88da3f520d4d19f20ae510164

Test Merge Updated @ 07/05/2026 04:07:50 +00:00:
Server Instance

CM13 Live

Revision

Origin: 584ce29
Pull Request: 6d6bd7f
Server: 83b86abcc89dffce97601008fb9e6c79f8a04e63

Test Merge Updated @ 07/05/2026 06:16:15 +00:00:
Server Instance

CM13 Live

Revision

Origin: 584ce29
Pull Request: 6d6bd7f
Server: 4f94099

@cmss13-ci cmss13-ci Bot added size/L Denotes a PR that changes 200-799 lines, ignoring generated files. and removed size/M Denotes a PR that changes 50-199 lines, ignoring generated files. labels Jul 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Code Improvement Make the code longer Fix Fix one bug, make ten more Removal snap size/L Denotes a PR that changes 200-799 lines, ignoring generated files.

Projects

Status: Partially Approved / Mergeable

Development

Successfully merging this pull request may close these issues.

3 participants