diff --git a/code/__DEFINES/icon_smoothing.dm b/code/__DEFINES/icon_smoothing.dm
index 88f81aa6e7b..9711198b3b2 100644
--- a/code/__DEFINES/icon_smoothing.dm
+++ b/code/__DEFINES/icon_smoothing.dm
@@ -112,6 +112,7 @@ DEFINE_BITFIELD(smoothing_flags, list(
#define SMOOTH_GROUP_BRASS_TABLES S_OBJ(53) ///obj/structure/table/brass
#define SMOOTH_GROUP_ABDUCTOR_TABLES S_OBJ(54) ///obj/structure/table/abductor
#define SMOOTH_GROUP_GLASS_TABLES S_OBJ(55) ///obj/structure/table/glass
+#define SMOOTH_GROUP_REINFORCED_TABLES S_OBJ(56) ///obj/structure/table/reinforced, /obj/structure/table/glass/reinforced
#define SMOOTH_GROUP_ALIEN_RESIN S_OBJ(60) ///obj/structure/alien/resin
#define SMOOTH_GROUP_ALIEN_WALLS S_OBJ(61) ///obj/structure/alien/resin/wall, /obj/structure/alien/resin/membrane
diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm
index bae43ab4428..b6be18b0af5 100644
--- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm
+++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm
@@ -717,7 +717,7 @@ Congratulations! You are now trained for invasive xenobiology research!"}
/obj/structure/table/abductor
name = "alien table"
desc = "Advanced flat surface technology at work!"
- icon = 'icons/obj/smooth_structures/alien_table.dmi'
+ icon = 'icons/obj/smooth_structures/tables/alien_table.dmi'
icon_state = "alien_table-0"
base_icon_state = "alien_table"
buildstack = /obj/item/stack/sheet/mineral/abductor
diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm
index 3cec8d3bd60..2c6855d79cc 100644
--- a/code/game/machinery/computer/HolodeckControl.dm
+++ b/code/game/machinery/computer/HolodeckControl.dm
@@ -390,7 +390,7 @@
/obj/structure/table/holotable/wood
name = "wooden table"
desc = "A square piece of wood standing on four wooden legs. It can not move."
- icon = 'icons/obj/smooth_structures/wood_table.dmi'
+ icon = 'icons/obj/smooth_structures/tables/wood_table.dmi'
icon_state = "wood_table-0"
base_icon_state = "wood_table"
smoothing_groups = list(SMOOTH_GROUP_WOOD_TABLES) //Don't smooth with SMOOTH_GROUP_TABLES
@@ -408,8 +408,8 @@
/obj/structure/holowindow
name = "reinforced window"
- icon = 'icons/obj/structures.dmi'
- icon_state = "rwindow"
+ icon = 'icons/obj/smooth_structures/reinforced_window.dmi'
+ icon_state = "reinforced_window-0"
desc = "A window."
density = TRUE
layer = 3.2//Just above doors
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 712bc602826..ac1ea5a9e7b 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -15,7 +15,7 @@
/obj/structure/table
name = "table"
desc = "A square piece of metal standing on four metal legs. It can not move."
- icon = 'icons/obj/smooth_structures/table.dmi'
+ icon = 'icons/obj/smooth_structures/tables/table.dmi'
icon_state = "table-0"
base_icon_state = "table"
density = TRUE
@@ -399,7 +399,7 @@
/obj/structure/table/glass
name = "glass table"
desc = "Looks fragile. You should totally flip it. It is begging for it."
- icon = 'icons/obj/smooth_structures/glass_table.dmi'
+ icon = 'icons/obj/smooth_structures/tables/glass_table.dmi'
icon_state = "glass_table-0"
base_icon_state = "glass_table"
buildstack = /obj/item/stack/sheet/glass
@@ -409,11 +409,12 @@
resistance_flags = ACID_PROOF
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 100)
var/list/debris = list()
+ var/shardtype = /obj/item/shard
/obj/structure/table/glass/Initialize(mapload)
. = ..()
debris += new frame
- debris += new /obj/item/shard
+ debris += new shardtype
/obj/structure/table/glass/Destroy()
for(var/i in debris)
@@ -490,13 +491,90 @@
for(var/obj/item/shard/S in debris)
S.color = NARSIE_WINDOW_COLOUR
+/obj/structure/table/glass/plasma
+ name = "plasma glass table"
+ desc = "A table made from the blood, sweat, and tears of miners."
+ icon = 'icons/obj/smooth_structures/tables/plasmaglass_table.dmi'
+ icon_state = "plasmaglass_table-0"
+ base_icon_state = "plasmaglass_table"
+ buildstack = /obj/item/stack/sheet/plasmaglass
+ max_integrity = 140
+ shardtype = /obj/item/shard/plasma
+
+/obj/structure/table/glass/reinforced
+ name = "reinforced glass table"
+ desc = "Looks robust. You should totally flip it. It is begging for it."
+ icon = 'icons/obj/smooth_structures/tables/rglass_table.dmi'
+ icon_state = "rglass_table-0"
+ base_icon_state = "rglass_table"
+ buildstack = /obj/item/stack/sheet/rglass
+ max_integrity = 100
+ integrity_failure = 50
+ deconstruction_ready = FALSE
+ armor = list(MELEE = 10, BULLET = 30, LASER = 30, ENERGY = 100, BOMB = 20, BIO = 0, RAD = 0, FIRE = 80, ACID = 70)
+ smoothing_groups = list(SMOOTH_GROUP_REINFORCED_TABLES)
+ canSmoothWith = list(SMOOTH_GROUP_REINFORCED_TABLES)
+
+/obj/structure/table/reinforced/deconstruction_hints(mob/user) //look, it was either copy paste these 3 procs, or copy paste all of the glass stuff
+ if(deconstruction_ready)
+ to_chat(user, "The top cover has been welded loose and the main frame's bolts are exposed.")
+ else
+ to_chat(user, "The top cover is firmly welded on.")
+
+/obj/structure/table/reinforced/flip(direction)
+ if(!deconstruction_ready)
+ return FALSE
+ else
+ return ..()
+
+/obj/structure/table/reinforced/welder_act(mob/user, obj/item/I)
+ . = TRUE
+ if(!I.tool_use_check(user, 0))
+ return
+ to_chat(user, "You start [deconstruction_ready ? "strengthening" : "weakening"] the reinforced table...")
+ if(I.use_tool(src, user, 50, volume = I.tool_volume))
+ to_chat(user, "You [deconstruction_ready ? "strengthen" : "weaken"] the table.")
+ deconstruction_ready = !deconstruction_ready
+
+/obj/structure/table/glass/reinforced/check_break(mob/living/M)
+ if(has_gravity(M) && M.mob_size > MOB_SIZE_SMALL && (obj_integrity < (max_integrity / 2))) //big tables for big boys, only breaks under 50% hp
+ table_shatter(M)
+
+/obj/structure/table/glass/reinforced/plasma
+ name = "reinforced plasma glass table"
+ desc = "Seems a bit overkill for a table."
+ icon = 'icons/obj/smooth_structures/tables/rplasmaglass_table.dmi'
+ icon_state = "rplasmaglass_table-0"
+ base_icon_state = "rplasmaglass_table"
+ buildstack = /obj/item/stack/sheet/plasmarglass
+ max_integrity = 180
+ shardtype = /obj/item/shard/plasma
+
+/obj/structure/table/glass/reinforced/titanium
+ name = "reinforced titanium glass table"
+ desc = "A very sleek looking glass table, neat!"
+ icon = 'icons/obj/smooth_structures/tables/titaniumglass_table.dmi'
+ icon_state = "titaniumglass_table-0"
+ base_icon_state = "titaniumglass_table"
+ buildstack = /obj/item/stack/sheet/titaniumglass
+ max_integrity = 180
+
+/obj/structure/table/glass/reinforced/plastitanium
+ name = "reinforced plastitanium glass table"
+ desc = "The mother of all glass tables."
+ icon = 'icons/obj/smooth_structures/tables/plastitaniumglass_table.dmi'
+ icon_state = "plastitaniumglass_table-0"
+ base_icon_state = "plastitaniumglass_table"
+ buildstack = /obj/item/stack/sheet/plastitaniumglass
+ max_integrity = 200
+
/*
* Wooden tables
*/
/obj/structure/table/wood
name = "wooden table"
desc = "Do not apply fire to this. Rumour says it burns easily."
- icon = 'icons/obj/smooth_structures/wood_table.dmi'
+ icon = 'icons/obj/smooth_structures/tables/wood_table.dmi'
icon_state = "wood_table-0"
base_icon_state = "wood_table"
frame = /obj/structure/table_frame/wood
@@ -514,7 +592,7 @@
/obj/structure/table/wood/poker //No specialties, Just a mapping object.
name = "gambling table"
desc = "A seedy table for seedy dealings in seedy places."
- icon = 'icons/obj/smooth_structures/poker_table.dmi'
+ icon = 'icons/obj/smooth_structures/tables/poker_table.dmi'
icon_state = "poker_table-0"
base_icon_state = "poker_table"
buildstack = /obj/item/stack/tile/carpet
@@ -529,7 +607,7 @@
/obj/structure/table/wood/fancy
name = "fancy table"
desc = "A standard metal table frame covered with an amazingly fancy, patterned cloth."
- icon = 'icons/obj/smooth_structures/fancy_table.dmi'
+ icon = 'icons/obj/smooth_structures/tables/fancy/fancy_table.dmi'
icon_state = "fancy_table-0"
base_icon_state = "fancy_table"
frame = /obj/structure/table_frame
@@ -549,57 +627,57 @@
icon_state = "fancy_table_black-0"
base_icon_state = "fancy_table_black"
buildstack = /obj/item/stack/tile/carpet/black
- icon = 'icons/obj/smooth_structures/fancy_table_black.dmi'
+ icon = 'icons/obj/smooth_structures/tables/fancy/fancy_table_black.dmi'
/obj/structure/table/wood/fancy/blue
icon_state = "fancy_table_blue-0"
base_icon_state = "fancy_table_blue"
buildstack = /obj/item/stack/tile/carpet/blue
- icon = 'icons/obj/smooth_structures/fancy_table_blue.dmi'
+ icon = 'icons/obj/smooth_structures/tables/fancy/fancy_table_blue.dmi'
/obj/structure/table/wood/fancy/cyan
icon_state = "fancy_table_cyan-0"
base_icon_state = "fancy_table_cyan"
buildstack = /obj/item/stack/tile/carpet/cyan
- icon = 'icons/obj/smooth_structures/fancy_table_cyan.dmi'
+ icon = 'icons/obj/smooth_structures/tables/fancy/fancy_table_cyan.dmi'
/obj/structure/table/wood/fancy/green
icon_state = "fancy_table_green-0"
base_icon_state = "fancy_table_green"
buildstack = /obj/item/stack/tile/carpet/green
- icon = 'icons/obj/smooth_structures/fancy_table_green.dmi'
+ icon = 'icons/obj/smooth_structures/tables/fancy/fancy_table_green.dmi'
/obj/structure/table/wood/fancy/orange
icon_state = "fancy_table_orange-0"
base_icon_state = "fancy_table_orange"
buildstack = /obj/item/stack/tile/carpet/orange
- icon = 'icons/obj/smooth_structures/fancy_table_orange.dmi'
+ icon = 'icons/obj/smooth_structures/tables/fancy/fancy_table_orange.dmi'
/obj/structure/table/wood/fancy/purple
icon_state = "fancy_table_purple-0"
base_icon_state = "fancy_table_purple"
buildstack = /obj/item/stack/tile/carpet/purple
- icon = 'icons/obj/smooth_structures/fancy_table_purple.dmi'
+ icon = 'icons/obj/smooth_structures/tables/fancy/fancy_table_purple.dmi'
/obj/structure/table/wood/fancy/red
icon_state = "fancy_table_red-0"
base_icon_state = "fancy_table_red"
buildstack = /obj/item/stack/tile/carpet/red
- icon = 'icons/obj/smooth_structures/fancy_table_red.dmi'
+ icon = 'icons/obj/smooth_structures/tables/fancy/fancy_table_red.dmi'
/obj/structure/table/wood/fancy/royalblack
icon_state = "fancy_table_royalblack-0"
base_icon_state = "fancy_table_royalblack"
buildstack = /obj/item/stack/tile/carpet/royalblack
- icon = 'icons/obj/smooth_structures/fancy_table_royalblack.dmi'
+ icon = 'icons/obj/smooth_structures/tables/fancy/fancy_table_royalblack.dmi'
/obj/structure/table/wood/fancy/royalblue
icon_state = "fancy_table_royalblue-0"
base_icon_state = "fancy_table_royalblue"
buildstack = /obj/item/stack/tile/carpet/royalblue
- icon = 'icons/obj/smooth_structures/fancy_table_royalblue.dmi'
+ icon = 'icons/obj/smooth_structures/tables/fancy/fancy_table_royalblue.dmi'
/*
* Reinforced tables
@@ -607,12 +685,13 @@
/obj/structure/table/reinforced
name = "reinforced table"
desc = "A reinforced version of the four legged table."
- icon = 'icons/obj/smooth_structures/reinforced_table.dmi'
+ icon = 'icons/obj/smooth_structures/tables/reinforced_table.dmi'
icon_state = "reinforced_table-0"
base_icon_state = "reinforced_table"
deconstruction_ready = FALSE
buildstack = /obj/item/stack/sheet/plasteel
- canSmoothWith = list(SMOOTH_GROUP_TABLES)
+ smoothing_groups = list(SMOOTH_GROUP_REINFORCED_TABLES)
+ canSmoothWith = list(SMOOTH_GROUP_REINFORCED_TABLES)
max_integrity = 200
integrity_failure = 50
armor = list(MELEE = 10, BULLET = 30, LASER = 30, ENERGY = 100, BOMB = 20, BIO = 0, RAD = 0, FIRE = 80, ACID = 70)
@@ -641,7 +720,7 @@
/obj/structure/table/reinforced/brass
name = "brass table"
desc = "A solid, slightly beveled brass table."
- icon = 'icons/obj/smooth_structures/brass_table.dmi'
+ icon = 'icons/obj/smooth_structures/tables/brass_table.dmi'
icon_state = "brass_table-0"
base_icon_state = "brass_table"
resistance_flags = FIRE_PROOF | ACID_PROOF
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 4725565e171..fe700c82697 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -504,7 +504,7 @@
/obj/structure/window/reinforced/tinted/frosted
name = "frosted window"
desc = "It looks rather strong and frosted over. Looks like it might take a few less hits then a normal reinforced window."
- icon_state = "fwindow"
+ icon_state = "twindow"
max_integrity = 30
/obj/structure/window/reinforced/polarized
diff --git a/icons/obj/smooth_structures/glass_table.dmi b/icons/obj/smooth_structures/glass_table.dmi
deleted file mode 100644
index 747aaac3359..00000000000
Binary files a/icons/obj/smooth_structures/glass_table.dmi and /dev/null differ
diff --git a/icons/obj/smooth_structures/poker_table.dmi b/icons/obj/smooth_structures/poker_table.dmi
deleted file mode 100644
index b34193035d0..00000000000
Binary files a/icons/obj/smooth_structures/poker_table.dmi and /dev/null differ
diff --git a/icons/obj/smooth_structures/reinforced_table.dmi b/icons/obj/smooth_structures/reinforced_table.dmi
deleted file mode 100644
index 79f2042564b..00000000000
Binary files a/icons/obj/smooth_structures/reinforced_table.dmi and /dev/null differ
diff --git a/icons/obj/smooth_structures/table.dmi b/icons/obj/smooth_structures/table.dmi
deleted file mode 100644
index 526f8900a97..00000000000
Binary files a/icons/obj/smooth_structures/table.dmi and /dev/null differ
diff --git a/icons/obj/smooth_structures/table_greyscale.dmi b/icons/obj/smooth_structures/table_greyscale.dmi
deleted file mode 100644
index 988e41d9e4e..00000000000
Binary files a/icons/obj/smooth_structures/table_greyscale.dmi and /dev/null differ
diff --git a/icons/obj/smooth_structures/alien_table.dmi b/icons/obj/smooth_structures/tables/alien_table.dmi
similarity index 100%
rename from icons/obj/smooth_structures/alien_table.dmi
rename to icons/obj/smooth_structures/tables/alien_table.dmi
diff --git a/icons/obj/smooth_structures/brass_table.dmi b/icons/obj/smooth_structures/tables/brass_table.dmi
similarity index 100%
rename from icons/obj/smooth_structures/brass_table.dmi
rename to icons/obj/smooth_structures/tables/brass_table.dmi
diff --git a/icons/obj/smooth_structures/fancy_table.dmi b/icons/obj/smooth_structures/tables/fancy/fancy_table.dmi
similarity index 100%
rename from icons/obj/smooth_structures/fancy_table.dmi
rename to icons/obj/smooth_structures/tables/fancy/fancy_table.dmi
diff --git a/icons/obj/smooth_structures/fancy_table_black.dmi b/icons/obj/smooth_structures/tables/fancy/fancy_table_black.dmi
similarity index 100%
rename from icons/obj/smooth_structures/fancy_table_black.dmi
rename to icons/obj/smooth_structures/tables/fancy/fancy_table_black.dmi
diff --git a/icons/obj/smooth_structures/fancy_table_blue.dmi b/icons/obj/smooth_structures/tables/fancy/fancy_table_blue.dmi
similarity index 100%
rename from icons/obj/smooth_structures/fancy_table_blue.dmi
rename to icons/obj/smooth_structures/tables/fancy/fancy_table_blue.dmi
diff --git a/icons/obj/smooth_structures/fancy_table_cyan.dmi b/icons/obj/smooth_structures/tables/fancy/fancy_table_cyan.dmi
similarity index 100%
rename from icons/obj/smooth_structures/fancy_table_cyan.dmi
rename to icons/obj/smooth_structures/tables/fancy/fancy_table_cyan.dmi
diff --git a/icons/obj/smooth_structures/fancy_table_green.dmi b/icons/obj/smooth_structures/tables/fancy/fancy_table_green.dmi
similarity index 100%
rename from icons/obj/smooth_structures/fancy_table_green.dmi
rename to icons/obj/smooth_structures/tables/fancy/fancy_table_green.dmi
diff --git a/icons/obj/smooth_structures/fancy_table_orange.dmi b/icons/obj/smooth_structures/tables/fancy/fancy_table_orange.dmi
similarity index 100%
rename from icons/obj/smooth_structures/fancy_table_orange.dmi
rename to icons/obj/smooth_structures/tables/fancy/fancy_table_orange.dmi
diff --git a/icons/obj/smooth_structures/fancy_table_purple.dmi b/icons/obj/smooth_structures/tables/fancy/fancy_table_purple.dmi
similarity index 100%
rename from icons/obj/smooth_structures/fancy_table_purple.dmi
rename to icons/obj/smooth_structures/tables/fancy/fancy_table_purple.dmi
diff --git a/icons/obj/smooth_structures/fancy_table_red.dmi b/icons/obj/smooth_structures/tables/fancy/fancy_table_red.dmi
similarity index 100%
rename from icons/obj/smooth_structures/fancy_table_red.dmi
rename to icons/obj/smooth_structures/tables/fancy/fancy_table_red.dmi
diff --git a/icons/obj/smooth_structures/fancy_table_royalblack.dmi b/icons/obj/smooth_structures/tables/fancy/fancy_table_royalblack.dmi
similarity index 100%
rename from icons/obj/smooth_structures/fancy_table_royalblack.dmi
rename to icons/obj/smooth_structures/tables/fancy/fancy_table_royalblack.dmi
diff --git a/icons/obj/smooth_structures/fancy_table_royalblue.dmi b/icons/obj/smooth_structures/tables/fancy/fancy_table_royalblue.dmi
similarity index 100%
rename from icons/obj/smooth_structures/fancy_table_royalblue.dmi
rename to icons/obj/smooth_structures/tables/fancy/fancy_table_royalblue.dmi
diff --git a/icons/obj/smooth_structures/tables/glass_table.dmi b/icons/obj/smooth_structures/tables/glass_table.dmi
new file mode 100644
index 00000000000..09ecbc1bb44
Binary files /dev/null and b/icons/obj/smooth_structures/tables/glass_table.dmi differ
diff --git a/icons/obj/smooth_structures/tables/plasmaglass_table.dmi b/icons/obj/smooth_structures/tables/plasmaglass_table.dmi
new file mode 100644
index 00000000000..5dfe68d0673
Binary files /dev/null and b/icons/obj/smooth_structures/tables/plasmaglass_table.dmi differ
diff --git a/icons/obj/smooth_structures/tables/plastitaniumglass_table.dmi b/icons/obj/smooth_structures/tables/plastitaniumglass_table.dmi
new file mode 100644
index 00000000000..4c4a6438690
Binary files /dev/null and b/icons/obj/smooth_structures/tables/plastitaniumglass_table.dmi differ
diff --git a/icons/obj/smooth_structures/tables/poker_table.dmi b/icons/obj/smooth_structures/tables/poker_table.dmi
new file mode 100644
index 00000000000..64cc790947d
Binary files /dev/null and b/icons/obj/smooth_structures/tables/poker_table.dmi differ
diff --git a/icons/obj/smooth_structures/tables/reinforced_table.dmi b/icons/obj/smooth_structures/tables/reinforced_table.dmi
new file mode 100644
index 00000000000..b2867b57994
Binary files /dev/null and b/icons/obj/smooth_structures/tables/reinforced_table.dmi differ
diff --git a/icons/obj/smooth_structures/tables/rglass_table.dmi b/icons/obj/smooth_structures/tables/rglass_table.dmi
new file mode 100644
index 00000000000..3b645c72ad3
Binary files /dev/null and b/icons/obj/smooth_structures/tables/rglass_table.dmi differ
diff --git a/icons/obj/smooth_structures/tables/rplasmaglass_table.dmi b/icons/obj/smooth_structures/tables/rplasmaglass_table.dmi
new file mode 100644
index 00000000000..4e812c79c7a
Binary files /dev/null and b/icons/obj/smooth_structures/tables/rplasmaglass_table.dmi differ
diff --git a/icons/obj/smooth_structures/tables/table.dmi b/icons/obj/smooth_structures/tables/table.dmi
new file mode 100644
index 00000000000..3b6b1aab0ad
Binary files /dev/null and b/icons/obj/smooth_structures/tables/table.dmi differ
diff --git a/icons/obj/smooth_structures/tables/titaniumglass_table.dmi b/icons/obj/smooth_structures/tables/titaniumglass_table.dmi
new file mode 100644
index 00000000000..76dc30163f0
Binary files /dev/null and b/icons/obj/smooth_structures/tables/titaniumglass_table.dmi differ
diff --git a/icons/obj/smooth_structures/tables/wood_table.dmi b/icons/obj/smooth_structures/tables/wood_table.dmi
new file mode 100644
index 00000000000..84f1fd30ce2
Binary files /dev/null and b/icons/obj/smooth_structures/tables/wood_table.dmi differ
diff --git a/icons/obj/smooth_structures/wood_table.dmi b/icons/obj/smooth_structures/wood_table.dmi
deleted file mode 100644
index 8991b4a3a94..00000000000
Binary files a/icons/obj/smooth_structures/wood_table.dmi and /dev/null differ
diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi
index ec4facd953b..a80d009bab9 100644
Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ