fixes hyperspace connect_loc_behalf bug (#60231)

turns out my move_stacks var doesnt work asynchronously since this bug made things with connect_loc_behalf runtime on every movement unless you somehow moved it back to the transit turf and off without it doing the runtime special.

(The sleep and hell the whole bit of code in space/Entered was unneeded, since it just happens normally as a part of move. Life is pain) -Lemon

also does misc code improvements i found while investigating ANOTHER c_l_b bug with stacks i found while testing this one, which i did NOT manage to fix unfortunately
This commit is contained in:
Kylerace
2021-07-15 19:54:20 -07:00
committed by GitHub
parent b435a17da3
commit c60bceba41
6 changed files with 7 additions and 13 deletions
+3 -2
View File
@@ -96,8 +96,9 @@
SIGNAL_HANDLER
UnregisterSignal(user, COMSIG_PARENT_PREQDELETED)
RemoveElement(/datum/element/connect_loc_behalf, holder, holder_connections)
holder = null
if(holder)
RemoveElement(/datum/element/connect_loc_behalf, holder, holder_connections)
holder = null
/*
* The slip proc, but for equipped items.
+1 -1
View File
@@ -89,7 +89,7 @@ Simple datum which is instanced once per type and is used for every object of sa
if(istype(source, /obj)) //objs
on_applied_obj(source, amount, material_flags)
if(istype(source, /turf)) //turfs
else if(istype(source, /turf)) //turfs
on_applied_turf(source, amount, material_flags)
source.mat_update_desc(src)
-5
View File
@@ -198,11 +198,6 @@
puller = pulling
pulling = next_pulling
//now we're on the new z_level, proceed the space drifting
stoplag()//Let a diagonal move finish, if necessary
arrived.newtonian_move(arrived.inertia_dir)
arrived.inertia_moving = TRUE
/turf/open/space/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent)
return
-1
View File
@@ -32,7 +32,6 @@
throw_atom(arrived)
/turf/open/space/transit/proc/throw_atom(atom/movable/AM)
set waitfor = FALSE
if(!AM || istype(AM, /obj/docking_port) || istype(AM, /obj/effect/abstract))
return
if(AM.loc != src) // Multi-tile objects are "in" multiple locs but its loc is it's true placement.
+1 -1
View File
@@ -158,7 +158,7 @@
if(isturf(I.loc) && !ignore_anim)
I.do_pickup_animation(src)
if(get_item_for_held_index(hand_index) != null)
if(get_item_for_held_index(hand_index))
dropItemToGround(get_item_for_held_index(hand_index), force = TRUE)
I.forceMove(src)
held_items[hand_index] = I
@@ -57,9 +57,8 @@
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
I.screen_loc = ui_hand_position(get_held_index_of_item(I))
client.screen += I
if(observers?.len)
for(var/M in observers)
var/mob/dead/observe = M
if(length(observers))
for(var/mob/dead/observe as anything in observers)
if(observe.client && observe.client.eye == src)
observe.client.screen += I
else