diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index d1322f40908..6621d21f62d 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -84,20 +84,27 @@ -//border_only fire doors are special when it comes to air groups /obj/machinery/door/firedoor/border_only + icon = 'icons/obj/doors/edge_Doorfire.dmi' + glass = 1 //There is a glass window so you can see through the door + //This is needed due to BYOND limitations in controlling visibility CanPass(atom/movable/mover, turf/target, height=0, air_group=0) - if(air_group) - var/direction = get_dir(src,target) - return (dir != direction) - else if(density) - if(!height) - var/direction = get_dir(src,target) - return (dir != direction) - else - return 0 - return 1 + if(istype(mover) && mover.checkpass(PASSGLASS)) + return 1 + if(get_dir(loc, target) == dir) //Make sure looking at appropriate border + if(air_group) return 0 + return !density + else + return 1 + + CheckExit(atom/movable/mover as mob|obj, turf/target as turf) + if(istype(mover) && mover.checkpass(PASSGLASS)) + return 1 + if(get_dir(loc, target) == dir) + return !density + else + return 1 update_nearby_tiles(need_rebuild) diff --git a/icons/obj/doors/edge_Doorfire.dmi b/icons/obj/doors/edge_Doorfire.dmi new file mode 100644 index 00000000000..4930940d76c Binary files /dev/null and b/icons/obj/doors/edge_Doorfire.dmi differ