diff --git a/code/game/objects/structures/table_flipped.dm b/code/game/objects/structures/table_flipped.dm
index c006695a7df0..28af5d0b63bd 100644
--- a/code/game/objects/structures/table_flipped.dm
+++ b/code/game/objects/structures/table_flipped.dm
@@ -17,10 +17,22 @@
AddElement(/datum/element/connect_loc, loc_connections)
+/obj/structure/flippedtable/examine(mob/user)
+ . = ..()
+ . += span_notice("You could right the [name] by control shift-clicking it.")
+
+/obj/structure/flippedtable/proc/check_dir()
+ if(dir == NORTHEAST || dir == SOUTHEAST)
+ return EAST
+ if(dir == NORTHWEST || dir == SOUTHWEST)
+ return WEST
+ return dir
+
/obj/structure/flippedtable/CanAllowThrough(atom/movable/mover, turf/target)
. = ..()
- var/attempted_dir = get_dir(loc, target)
- if(table_type == /obj/structure/table/glass) //Glass table, jolly ranchers pass
+ var/table_dir = check_dir()
+ var/attempted_dir = get_dir(loc, mover)
+ if(table_type == /obj/structure/table/glass) //Glass table, lasers can pass
if(istype(mover) && (mover.pass_flags & PASSGLASS))
return TRUE
if(istype(mover, /obj/projectile))
@@ -29,20 +41,20 @@
if(proj_obj.trajectory && angle2dir_cardinal(proj_obj.trajectory.angle) == dir)
return TRUE
return FALSE
- return attempted_dir != dir
+ return attempted_dir != table_dir
/obj/structure/flippedtable/proc/on_exit(datum/source, atom/movable/exiter, direction)
SIGNAL_HANDLER
-
+ var/table_dir = check_dir()
if(exiter == src)
return // Let's not block ourselves.
- if(table_type == /obj/structure/table/glass) //Glass table, jolly ranchers pass
+ if(table_type == /obj/structure/table/glass) //Glass table, lasers pass
if(istype(exiter) && (exiter.pass_flags & PASSGLASS))
return
if(istype(exiter, /obj/projectile))
return
- if(direction == dir)
+ if(direction == table_dir)
exiter.Bump(src)
return COMPONENT_ATOM_BLOCK_EXIT
return
@@ -51,10 +63,10 @@
. = ..()
if(!istype(user) || !user.can_interact_with(src))
return FALSE
- user.visible_message("[user] starts flipping [src]!", "You start flipping over the [src]!")
+ user.visible_message(span_danger("[user] starts flipping [src]!"), span_notice("You start flipping over the [src]!"))
if(do_after(user, max_integrity/4))
var/obj/structure/table/table_unflip = new table_type(src.loc)
table_unflip.obj_integrity = obj_integrity
- user.visible_message("[user] flips over the [src]!", "You flip over the [src]!")
+ user.visible_message(span_danger("[user] flips over the [src]!"), span_notice("You flip over the [src]!"))
playsound(src, 'sound/items/trayhit2.ogg', 100)
qdel(src)