diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 87332c776f..f023f3e395 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -7,7 +7,7 @@ var/climb_delay = 3.5 SECONDS var/breakable var/parts - var/list/climbers = list() + var/list/climbers var/block_turf_edges = FALSE // If true, turf edge icons will not be made on the turf this occupies. var/list/connections = list("0", "0", "0", "0") @@ -35,7 +35,7 @@ if(H.species.can_shred(user)) attack_generic(user,1,"slices") - if(climbers.len && !(user in climbers)) + if(LAZYLEN(climbers) && !(user in climbers)) user.visible_message("[user.name] shakes \the [src].", \ "You shake \the [src].") structure_shaken() @@ -103,21 +103,21 @@ return usr.visible_message("[user] starts climbing onto \the [src]!") - climbers |= user + LAZYDISTINCTADD(climbers, user) if(!do_after(user,(issmall(user) ? climb_delay * 0.6 : climb_delay))) - climbers -= user + LAZYREMOVE(climbers, user) return if (!can_climb(user, post_climb_check=1)) - climbers -= user + LAZYREMOVE(climbers, user) return usr.forceMove(get_turf(src)) if (get_turf(user) == get_turf(src)) usr.visible_message("[user] climbs onto \the [src]!") - climbers -= user + LAZYREMOVE(climbers, user) /obj/structure/proc/structure_shaken() for(var/mob/living/M in climbers) @@ -204,7 +204,7 @@ if(can_visually_connect_to(S)) if(S.can_visually_connect()) if(propagate) - //S.update_connections() //Not here + S.update_connections() S.update_icon() dirs += get_dir(src, S) diff --git a/code/game/objects/structures/fitness_vr.dm b/code/game/objects/structures/fitness_vr.dm index 6459cd469b..99978fe27c 100644 --- a/code/game/objects/structures/fitness_vr.dm +++ b/code/game/objects/structures/fitness_vr.dm @@ -26,14 +26,14 @@ return usr.visible_message("[user] starts climbing onto \the [src]!") - climbers |= user + LAZYDISTINCTADD(climbers, user) if(!do_after(user,(issmall(user) ? 20 : 34))) - climbers -= user + LAZYREMOVE(climbers, user) return if(!can_climb(user, post_climb_check=1)) - climbers -= user + LAZYREMOVE(climbers, user) return if(get_turf(user) == get_turf(src)) @@ -42,7 +42,7 @@ usr.forceMove(get_turf(src)) usr.visible_message("[user] climbed over \the [src]!") - climbers -= user + LAZYREMOVE(climbers, user) /obj/structure/fitness/boxing_ropes/can_climb(var/mob/living/user, post_climb_check=0) //Sets it to keep people from climbing over into the next turf if it is occupied. if(!..()) @@ -84,14 +84,14 @@ return usr.visible_message("[user] starts climbing onto \the [src]!") - climbers |= user + LAZYDISTINCTADD(climbers, user) if(!do_after(user,(issmall(user) ? 20 : 34))) - climbers -= user + LAZYREMOVE(climbers, user) return if(!can_climb(user, post_climb_check=1)) - climbers -= user + LAZYREMOVE(climbers, user) return if(get_turf(user) == get_turf(src)) @@ -100,7 +100,7 @@ usr.forceMove(get_turf(src)) usr.visible_message("[user] climbed over \the [src]!") - climbers -= user + LAZYREMOVE(climbers, user) /obj/structure/fitness/boxing_ropes_bottom/can_climb(var/mob/living/user, post_climb_check=0) if(!..()) @@ -143,14 +143,14 @@ return usr.visible_message("[user] starts climbing onto \the [src]!") - climbers |= user + LAZYDISTINCTADD(climbers, user) if(!do_after(user,(issmall(user) ? 20 : 34))) - climbers -= user + LAZYREMOVE(climbers, user) return if(!can_climb(user, post_climb_check=1)) - climbers -= user + LAZYREMOVE(climbers, user) return if(get_turf(user) == get_turf(src)) @@ -159,7 +159,7 @@ usr.forceMove(get_turf(src)) usr.visible_message("[user] climbed over \the [src]!") - climbers -= user + LAZYREMOVE(climbers, user) /obj/structure/fitness/boxing_turnbuckle/can_climb(var/mob/living/user, post_climb_check=0) if(!..()) diff --git a/code/game/objects/structures/ledges.dm b/code/game/objects/structures/ledges.dm index 1afa2efb01..cf7c88fc48 100644 --- a/code/game/objects/structures/ledges.dm +++ b/code/game/objects/structures/ledges.dm @@ -55,14 +55,14 @@ return usr.visible_message("[user] starts climbing onto \the [src]!") - climbers |= user + LAZYDISTINCTADD(climbers, user) if(!do_after(user,(issmall(user) ? 20 : 34))) - climbers -= user + LAZYREMOVE(climbers, user) return if(!can_climb(user, post_climb_check=1)) - climbers -= user + LAZYREMOVE(climbers, user) return if(get_turf(user) == get_turf(src)) @@ -71,7 +71,7 @@ usr.forceMove(get_turf(src)) usr.visible_message("[user] climbed over \the [src]!") - climbers -= user + LAZYREMOVE(climbers, user) /obj/structure/ledge/can_climb(var/mob/living/user, post_climb_check=0) if(!..()) diff --git a/code/game/objects/structures/railing.dm b/code/game/objects/structures/railing.dm index e039f7806f..c6c1e1aea5 100644 --- a/code/game/objects/structures/railing.dm +++ b/code/game/objects/structures/railing.dm @@ -286,14 +286,14 @@ return usr.visible_message("[user] starts climbing onto \the [src]!") - climbers |= user + LAZYDISTINCTADD(climbers, user) if(!do_after(user,(issmall(user) ? 20 : 34))) - climbers -= user + LAZYREMOVE(climbers, user) return if(!can_climb(user, post_climb_check=1)) - climbers -= user + LAZYREMOVE(climbers, user) return if(get_turf(user) == get_turf(src)) @@ -303,7 +303,7 @@ usr.visible_message("[user] climbed over \the [src]!") if(!anchored) take_damage(maxhealth) // Fatboy - climbers -= user + LAZYREMOVE(climbers, user) /obj/structure/railing/can_climb(var/mob/living/user, post_climb_check=0) if(!..()) diff --git a/code/modules/tables/tables.dm b/code/modules/tables/tables.dm index e37b684d3d..47cba8bf46 100644 --- a/code/modules/tables/tables.dm +++ b/code/modules/tables/tables.dm @@ -333,6 +333,8 @@ var/list/table_icon_cache = list() return FALSE if(istype(src,/obj/structure/table/bench) && !istype(S,/obj/structure/table/bench)) return FALSE + if(istype(src,/obj/structure/table/rack) && !istype(S,/obj/structure/table/rack)) + return FALSE if(istype(S,/obj/structure/table)) return TRUE ..()