diff --git a/code/_onclick/adjacent.dm b/code/_onclick/adjacent.dm index dbe16746d7b..f905d6b4aa3 100644 --- a/code/_onclick/adjacent.dm +++ b/code/_onclick/adjacent.dm @@ -113,7 +113,7 @@ Quick adjacency (to turf): */ /turf/proc/ClickCross(target_dir, border_only, target, atom/movable/mover) for(var/obj/O in src) - if((mover && O.CanPass(mover, target_dir)) || (!mover && !O.density)) + if((mover && O.CanPass(mover, target)) || (!mover && !O.density)) continue //If there's a dense object on the turf, only allow the click to pass if you can throw items over it or it has a special flag. diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 48ef3aeaeef..6ec36b9ebe5 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -85,14 +85,14 @@ /obj/machinery/door/window/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if(mover?.movement_type & PHASING) return TRUE - if(get_dir(loc, target) == dir) //Make sure looking at appropriate border + var/movingdir = get_dir(loc,target) + if(movingdir == 0) + movingdir = get_dir(loc,mover) + if(movingdir & dir) if(air_group) return FALSE - return !density - else - return TRUE /obj/machinery/door/window/CheckExit(atom/movable/mover as mob|obj, turf/target as turf) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 499c2592a25..54b1869e161 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -171,13 +171,16 @@ if(mover?.movement_type & PHASING) return TRUE if(istype(mover) && mover.pass_flags & PASSGLASS) - return 1 + return TRUE if(is_full_window()) return !density //full tile window, you can't move into it if it's solid! - if(get_dir(loc, target) & dir) + var/movingdir = get_dir(loc,target) + if(movingdir == 0) + movingdir = get_dir(loc,mover) + if(movingdir & dir) return !density else - return 1 + return TRUE /obj/structure/window/CheckExit(atom/movable/O, turf/target) if(istype(O) && O.pass_flags & PASSGLASS) diff --git a/html/changelogs/WindowFix.yml b/html/changelogs/WindowFix.yml new file mode 100644 index 00000000000..2c15dc01e67 --- /dev/null +++ b/html/changelogs/WindowFix.yml @@ -0,0 +1,6 @@ +author: TheGreyWolf + +delete-after: True + +changes: + - bugfix: "Glass panes and windoors once again are solid and stop interacting with the other side."