mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 05:30:05 +01:00
Fixes connect_loc not reconnecting turf changes (#58507)
This commit is contained in:
@@ -88,6 +88,12 @@
|
||||
post_change_callbacks += changeturf_callback
|
||||
|
||||
/datum/element/connect_loc/proc/post_turf_change(turf/new_turf)
|
||||
for (var/atom/movable/tracked as anything in targets[new_turf])
|
||||
var/datum/listener = targets[new_turf][tracked]
|
||||
// If we don't cut the targets list before iterating,
|
||||
// then we won't re-register the change turf signal.
|
||||
var/list/turf_targets = targets[new_turf]
|
||||
var/list/targets_copy = turf_targets.Copy()
|
||||
turf_targets.Cut()
|
||||
|
||||
for (var/atom/movable/tracked as anything in targets_copy)
|
||||
var/datum/listener = targets_copy[tracked]
|
||||
update_signals(listener, tracked)
|
||||
|
||||
@@ -35,10 +35,13 @@
|
||||
|
||||
current_turf.ChangeTurf(/turf/closed/wall)
|
||||
|
||||
current_turf = get_turf(watcher)
|
||||
SEND_SIGNAL(current_turf, COMSIG_MOCK_SIGNAL)
|
||||
TEST_ASSERT_EQUAL(watcher.times_called, 2, "After changing turf, connect_loc didn't reconnect it")
|
||||
|
||||
current_turf.ChangeTurf(/turf/open/floor/carpet)
|
||||
SEND_SIGNAL(current_turf, COMSIG_MOCK_SIGNAL)
|
||||
TEST_ASSERT_EQUAL(watcher.times_called, 3, "After changing turf a second time, connect_loc didn't reconnect it")
|
||||
|
||||
/datum/unit_test/connect_loc_change_turf/Destroy()
|
||||
run_loc_floor_bottom_left.ChangeTurf(old_turf_type)
|
||||
return ..()
|
||||
|
||||
Reference in New Issue
Block a user