From 226734ebc21efee801b512c30387eedbb9bbbcf3 Mon Sep 17 00:00:00 2001
From: tmtmtl30 <53132901+tmtmtl30@users.noreply.github.com>
Date: Sun, 14 Jan 2024 12:39:38 -0800
Subject: [PATCH] (probably) actually fixes outpost baseturfs, removes
holodecks (#2598)
## About The Pull Request
changes the behavior downstream of /datum/map_template's
should_place_on_top (the particular proc in question is
build_coordinate, and its placeOnTop variable) so that, when false, the
baseturfs of the resulting turf are set to the baseturfs of the type
being placed, instead of the previous behavior, which preserved the old
baseturfs entirely.
this odd behavior seemed to be specialized for holodecks, and i
mistakenly assumed it'd work for outposts given the variable name and an
experiment on a testing map. the behavior has been changed to alter the
baseturfs according to the type (so that placing a template with
should_place_on_top = FALSE results in the same baseturfs list as you'd
get from a changeturf(type, initial(type.baseturfs) call), so that
outposts should now place with the correct baseturfs. this enables
planetary outposts with a special baseturf defined in a ztrait; before,
they would be stuck with a space turf hiding in the baseturf list,
making their baseturfs basically always broken.
in order to accommodate this change without breaking holodeck code,
holodeck code has been largely removed, with a few exceptions where it'd
be a slight pain to remove certain turfs / objects that were originally
used in holodecks but which had been since used in other maps. there's
also a bit of admin functionality upstream of some holodeck procs that i
didn't want to touch
## Why It's Good For The Game
outposts spacing themselves when people pry up tiles is bad, and a fix
like this is necessary for planetary outposts to ever have the right
baseturfs.
## Changelog
:cl:
del: Holodeck code has been removed.
fix: Outposts should end up erroneously spaced less frequently.
/:cl:
---
.../SpaceRuins/corporate_mining.dmm | 2 +-
_maps/templates/holodeck_animeschool.dmm | 177 ----
_maps/templates/holodeck_anthophillia.dmm | 130 ---
_maps/templates/holodeck_basketball.dmm | 389 -------
_maps/templates/holodeck_beach.dmm | 173 ----
_maps/templates/holodeck_burntest.dmm | 117 ---
_maps/templates/holodeck_chapelcourt.dmm | 465 ---------
_maps/templates/holodeck_dodgeball.dmm | 297 ------
_maps/templates/holodeck_emptycourt.dmm | 203 ----
_maps/templates/holodeck_firingrange.dmm | 345 -------
_maps/templates/holodeck_gamer.dmm | 129 ---
_maps/templates/holodeck_holdoutbunker.dmm | 164 ---
_maps/templates/holodeck_kobayashi.dmm | 362 -------
_maps/templates/holodeck_lounge.dmm | 418 --------
_maps/templates/holodeck_medicalsim.dmm | 976 ------------------
_maps/templates/holodeck_offline.dmm | 113 --
_maps/templates/holodeck_petpark.dmm | 256 -----
_maps/templates/holodeck_photobooth.dmm | 173 ----
_maps/templates/holodeck_refuelingstation.dmm | 121 ---
_maps/templates/holodeck_skatepark.dmm | 117 ---
_maps/templates/holodeck_spacecheckers.dmm | 187 ----
_maps/templates/holodeck_thunderdome.dmm | 148 ---
_maps/templates/holodeck_thunderdome1218.dmm | 221 ----
_maps/templates/holodeck_wildlifesim.dmm | 117 ---
_maps/templates/holodeck_winterwonderland.dmm | 247 -----
code/__DEFINES/is_helpers.dm | 2 -
code/__DEFINES/misc.dm | 5 -
code/controllers/subsystem/mapping.dm | 14 -
code/game/area/areas/holodeck.dm | 52 -
.../circuitboards/computer_circuitboards.dm | 5 -
code/game/objects/items/toys.dm | 3 -
code/game/turfs/change_turf.dm | 38 +-
code/game/turfs/open/floor/reinf_floor.dm | 1 -
code/game/turfs/turf.dm | 11 +-
code/modules/holodeck/computer.dm | 414 --------
code/modules/holodeck/holo_effect.dm | 121 ---
.../holodeck/holodeck_map_templates.dm | 198 ----
code/modules/holodeck/mobs.dm | 23 -
code/modules/holodeck/turfs.dm | 1 -
code/modules/mapping/map_template.dm | 6 +-
code/modules/mapping/reader.dm | 7 +-
shiptest.dme | 5 -
42 files changed, 35 insertions(+), 6918 deletions(-)
delete mode 100644 _maps/templates/holodeck_animeschool.dmm
delete mode 100644 _maps/templates/holodeck_anthophillia.dmm
delete mode 100644 _maps/templates/holodeck_basketball.dmm
delete mode 100644 _maps/templates/holodeck_beach.dmm
delete mode 100644 _maps/templates/holodeck_burntest.dmm
delete mode 100644 _maps/templates/holodeck_chapelcourt.dmm
delete mode 100644 _maps/templates/holodeck_dodgeball.dmm
delete mode 100644 _maps/templates/holodeck_emptycourt.dmm
delete mode 100644 _maps/templates/holodeck_firingrange.dmm
delete mode 100644 _maps/templates/holodeck_gamer.dmm
delete mode 100644 _maps/templates/holodeck_holdoutbunker.dmm
delete mode 100644 _maps/templates/holodeck_kobayashi.dmm
delete mode 100644 _maps/templates/holodeck_lounge.dmm
delete mode 100644 _maps/templates/holodeck_medicalsim.dmm
delete mode 100644 _maps/templates/holodeck_offline.dmm
delete mode 100644 _maps/templates/holodeck_petpark.dmm
delete mode 100644 _maps/templates/holodeck_photobooth.dmm
delete mode 100644 _maps/templates/holodeck_refuelingstation.dmm
delete mode 100644 _maps/templates/holodeck_skatepark.dmm
delete mode 100644 _maps/templates/holodeck_spacecheckers.dmm
delete mode 100644 _maps/templates/holodeck_thunderdome.dmm
delete mode 100644 _maps/templates/holodeck_thunderdome1218.dmm
delete mode 100644 _maps/templates/holodeck_wildlifesim.dmm
delete mode 100644 _maps/templates/holodeck_winterwonderland.dmm
delete mode 100644 code/game/area/areas/holodeck.dm
delete mode 100644 code/modules/holodeck/computer.dm
delete mode 100644 code/modules/holodeck/holo_effect.dm
delete mode 100644 code/modules/holodeck/holodeck_map_templates.dm
delete mode 100644 code/modules/holodeck/mobs.dm
diff --git a/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm b/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm
index 10f841b29619..42000bba1dd9 100644
--- a/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm
+++ b/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm
@@ -641,7 +641,7 @@
/area/ruin/space)
"ov" = (
/obj/structure/table/wood/poker,
-/obj/effect/holodeck_effect/cards,
+/obj/item/toy/cards/deck,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 10
},
diff --git a/_maps/templates/holodeck_animeschool.dmm b/_maps/templates/holodeck_animeschool.dmm
deleted file mode 100644
index 05c9b1ad3d54..000000000000
--- a/_maps/templates/holodeck_animeschool.dmm
+++ /dev/null
@@ -1,177 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/open/floor/holofloor,
-/area/template_noop)
-"j" = (
-/obj/structure/chair{
- dir = 1
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"n" = (
-/obj/structure/table,
-/obj/item/paper,
-/obj/item/pen,
-/obj/item/clothing/under/costume/schoolgirl,
-/obj/item/toy/katana,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"s" = (
-/obj/structure/table/wood,
-/obj/item/toy/crayon/white,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"x" = (
-/obj/structure/table,
-/obj/item/paper,
-/obj/item/pen,
-/obj/item/clothing/under/costume/schoolgirl/orange,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"E" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/snacks/grown/apple,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"H" = (
-/obj/structure/table,
-/obj/item/paper,
-/obj/item/pen,
-/obj/item/clothing/under/costume/schoolgirl,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"R" = (
-/obj/structure/chair{
- pixel_y = -2
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"S" = (
-/obj/structure/table,
-/obj/item/paper,
-/obj/item/pen,
-/obj/item/clothing/under/costume/schoolgirl/green,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"T" = (
-/obj/structure/table,
-/obj/item/paper,
-/obj/item/pen,
-/obj/item/clothing/under/costume/schoolgirl/red,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"Y" = (
-/obj/structure/table/wood,
-/obj/item/folder,
-/obj/item/melee/classic_baton/telescopic,
-/turf/open/floor/holofloor,
-/area/template_noop)
-
-(1,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(2,1,1) = {"
-a
-a
-a
-S
-j
-n
-j
-H
-j
-a
-"}
-(3,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(4,1,1) = {"
-a
-Y
-a
-H
-j
-x
-j
-T
-j
-a
-"}
-(5,1,1) = {"
-R
-s
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(6,1,1) = {"
-a
-E
-a
-S
-j
-T
-j
-H
-j
-a
-"}
-(7,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(8,1,1) = {"
-a
-a
-a
-S
-j
-S
-j
-x
-j
-a
-"}
-(9,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
diff --git a/_maps/templates/holodeck_anthophillia.dmm b/_maps/templates/holodeck_anthophillia.dmm
deleted file mode 100644
index c50ff32ebced..000000000000
--- a/_maps/templates/holodeck_anthophillia.dmm
+++ /dev/null
@@ -1,130 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/obj/effect/holodeck_effect/mobspawner/bee,
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"v" = (
-/obj/effect/holodeck_effect/mobspawner/bee,
-/obj/effect/decal/remains/human,
-/obj/item/clothing/suit/beekeeper_suit,
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"U" = (
-/obj/effect/holodeck_effect/mobspawner/bee,
-/obj/item/clothing/head/beekeeper_head,
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"W" = (
-/obj/effect/holodeck_effect/mobspawner/bee,
-/obj/item/melee/flyswatter,
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-
-(1,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(2,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(3,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(4,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(5,1,1) = {"
-a
-a
-a
-a
-U
-v
-a
-a
-a
-a
-"}
-(6,1,1) = {"
-a
-a
-a
-a
-a
-W
-a
-a
-a
-a
-"}
-(7,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(8,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(9,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
diff --git a/_maps/templates/holodeck_basketball.dmm b/_maps/templates/holodeck_basketball.dmm
deleted file mode 100644
index 31bd5f081354..000000000000
--- a/_maps/templates/holodeck_basketball.dmm
+++ /dev/null
@@ -1,389 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/obj/structure/table,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"b" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/structure/holohoop{
- dir = 1;
- layer = 4.1
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"c" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"e" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"f" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"h" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"i" = (
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"j" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/red,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"k" = (
-/obj/structure/holohoop{
- layer = 3.9
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"l" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"m" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"n" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"q" = (
-/obj/structure/table,
-/obj/item/storage/box/cups,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"r" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"s" = (
-/obj/structure/chair{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"u" = (
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"w" = (
-/turf/open/floor/holofloor,
-/area/template_noop)
-"x" = (
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"y" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"B" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"E" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"F" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"J" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/obj/item/toy/beach_ball/holoball,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"L" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"M" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"R" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"T" = (
-/obj/structure/chair{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"U" = (
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"V" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"W" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"Y" = (
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"Z" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-
-(1,1,1) = {"
-a
-s
-s
-w
-s
-s
-w
-s
-s
-a
-"}
-(2,1,1) = {"
-q
-s
-s
-w
-s
-s
-w
-s
-s
-q
-"}
-(3,1,1) = {"
-y
-r
-r
-r
-j
-h
-e
-e
-e
-F
-"}
-(4,1,1) = {"
-n
-L
-l
-w
-x
-R
-w
-Y
-B
-Z
-"}
-(5,1,1) = {"
-k
-w
-l
-w
-x
-J
-w
-f
-w
-b
-"}
-(6,1,1) = {"
-M
-m
-l
-w
-x
-R
-w
-f
-V
-c
-"}
-(7,1,1) = {"
-i
-u
-u
-u
-U
-W
-V
-V
-V
-E
-"}
-(8,1,1) = {"
-q
-T
-T
-w
-T
-T
-w
-T
-T
-q
-"}
-(9,1,1) = {"
-a
-T
-T
-w
-T
-T
-w
-T
-T
-a
-"}
diff --git a/_maps/templates/holodeck_beach.dmm b/_maps/templates/holodeck_beach.dmm
deleted file mode 100644
index f410142ea646..000000000000
--- a/_maps/templates/holodeck_beach.dmm
+++ /dev/null
@@ -1,173 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/open/floor/holofloor/beach/water,
-/area/template_noop)
-"f" = (
-/obj/item/shovel/spade,
-/turf/open/floor/holofloor/beach/coast_t,
-/area/template_noop)
-"g" = (
-/obj/item/toy/beach_ball,
-/turf/open/floor/holofloor/beach,
-/area/template_noop)
-"h" = (
-/obj/item/clothing/under/color/rainbow,
-/obj/item/clothing/glasses/sunglasses,
-/turf/open/floor/holofloor/beach,
-/area/template_noop)
-"k" = (
-/turf/open/floor/holofloor/beach/coast_b,
-/area/template_noop)
-"q" = (
-/obj/item/reagent_containers/glass/bucket,
-/turf/open/floor/holofloor/beach/coast_t,
-/area/template_noop)
-"t" = (
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"H" = (
-/obj/effect/holodeck_effect/mobspawner/monkey,
-/turf/open/floor/holofloor/beach,
-/area/template_noop)
-"J" = (
-/turf/open/floor/holofloor/beach/coast_t,
-/area/template_noop)
-"M" = (
-/obj/item/toy/seashell,
-/turf/open/floor/holofloor/beach,
-/area/template_noop)
-"Q" = (
-/mob/living/simple_animal/crab{
- name = "Jon"
- },
-/turf/open/floor/holofloor/beach/coast_t,
-/area/template_noop)
-"R" = (
-/turf/open/floor/holofloor/beach,
-/area/template_noop)
-"S" = (
-/obj/structure/fluff/beach_umbrella/cap,
-/turf/open/floor/holofloor/beach,
-/area/template_noop)
-"T" = (
-/obj/effect/overlay/palmtree_l,
-/obj/effect/overlay/coconut,
-/turf/open/floor/holofloor/beach,
-/area/template_noop)
-"W" = (
-/obj/structure/flora/ausbushes/sparsegrass,
-/turf/open/floor/holofloor/beach,
-/area/template_noop)
-"X" = (
-/obj/effect/overlay/palmtree_r,
-/turf/open/floor/holofloor/beach,
-/area/template_noop)
-
-(1,1,1) = {"
-R
-R
-R
-R
-R
-R
-R
-J
-k
-a
-"}
-(2,1,1) = {"
-R
-R
-R
-X
-R
-S
-R
-Q
-k
-a
-"}
-(3,1,1) = {"
-X
-H
-R
-R
-R
-t
-t
-J
-k
-a
-"}
-(4,1,1) = {"
-R
-R
-R
-R
-h
-R
-R
-J
-k
-a
-"}
-(5,1,1) = {"
-R
-R
-W
-R
-R
-t
-t
-J
-k
-a
-"}
-(6,1,1) = {"
-R
-R
-R
-R
-X
-g
-R
-q
-k
-a
-"}
-(7,1,1) = {"
-R
-T
-H
-R
-R
-R
-R
-f
-k
-a
-"}
-(8,1,1) = {"
-W
-R
-R
-R
-H
-R
-M
-J
-k
-a
-"}
-(9,1,1) = {"
-R
-R
-R
-R
-R
-R
-R
-J
-k
-a
-"}
diff --git a/_maps/templates/holodeck_burntest.dmm b/_maps/templates/holodeck_burntest.dmm
deleted file mode 100644
index 4c7affa23f62..000000000000
--- a/_maps/templates/holodeck_burntest.dmm
+++ /dev/null
@@ -1,117 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/open/floor/holofloor/plating/burnmix,
-/area/template_noop)
-"l" = (
-/obj/effect/holodeck_effect/sparks,
-/turf/open/floor/holofloor/plating/burnmix,
-/area/template_noop)
-
-(1,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(2,1,1) = {"
-a
-a
-a
-a
-l
-l
-a
-a
-a
-a
-"}
-(3,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(4,1,1) = {"
-a
-l
-a
-a
-a
-a
-a
-a
-l
-a
-"}
-(5,1,1) = {"
-a
-a
-a
-l
-a
-a
-l
-a
-a
-a
-"}
-(6,1,1) = {"
-a
-l
-a
-a
-a
-a
-a
-a
-l
-a
-"}
-(7,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(8,1,1) = {"
-a
-a
-a
-a
-l
-l
-a
-a
-a
-a
-"}
-(9,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
diff --git a/_maps/templates/holodeck_chapelcourt.dmm b/_maps/templates/holodeck_chapelcourt.dmm
deleted file mode 100644
index 7edf26e85929..000000000000
--- a/_maps/templates/holodeck_chapelcourt.dmm
+++ /dev/null
@@ -1,465 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/obj/structure/closet/secure_closet/courtroom,
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"b" = (
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/snacks/grown/harebell,
-/obj/item/reagent_containers/food/snacks/grown/harebell,
-/obj/item/reagent_containers/food/snacks/grown/harebell,
-/obj/item/reagent_containers/food/snacks/grown/harebell,
-/obj/item/reagent_containers/food/snacks/grown/harebell,
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"c" = (
-/obj/structure/chair{
- dir = 1
- },
-/turf/open/floor/holofloor/chapel/bottom_left,
-/area/template_noop)
-"d" = (
-/obj/structure/table/wood/fancy,
-/obj/item/clothing/suit/chaplainsuit/nun,
-/obj/item/clothing/head/nun_hood,
-/obj/item/clothing/suit/chaplainsuit/holidaypriest,
-/obj/effect/turf_decal/corner/transparent/neutral,
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"f" = (
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"g" = (
-/turf/open/floor/holofloor/chapel/top_left,
-/area/template_noop)
-"h" = (
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/snacks/grown/poppy,
-/obj/item/reagent_containers/food/snacks/grown/poppy,
-/obj/item/reagent_containers/food/snacks/grown/poppy,
-/obj/item/reagent_containers/food/snacks/grown/poppy,
-/obj/item/reagent_containers/food/snacks/grown/poppy,
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"i" = (
-/turf/open/floor/holofloor/chapel/bottom_right,
-/area/template_noop)
-"k" = (
-/obj/structure/chair{
- dir = 1
- },
-/turf/open/floor/holofloor/chapel/top_right,
-/area/template_noop)
-"l" = (
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/obj/structure/table/wood,
-/obj/item/folder/blue,
-/obj/item/pen/red,
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"m" = (
-/obj/item/clothing/head/helmet/chaplain/witchunter_hat,
-/obj/effect/turf_decal/corner/transparent/neutral,
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/obj/structure/table/wood/fancy,
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"o" = (
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/obj/structure/table/wood,
-/obj/item/storage/fancy/candle_box,
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"p" = (
-/obj/structure/table/wood,
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/corner/transparent/neutral,
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"q" = (
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/obj/structure/table/wood,
-/obj/item/folder/red,
-/obj/item/pen/red,
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"r" = (
-/obj/item/gavelblock,
-/obj/item/gavelhammer,
-/obj/structure/table/wood,
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/corner/transparent/neutral,
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"s" = (
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"u" = (
-/obj/structure/table/wood/fancy,
-/obj/item/storage/book/bible,
-/obj/effect/turf_decal/corner/transparent/neutral,
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"w" = (
-/obj/effect/turf_decal/corner/transparent/neutral,
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"x" = (
-/obj/effect/turf_decal/corner/transparent/neutral,
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"y" = (
-/obj/item/toy/figure/chaplain,
-/obj/effect/turf_decal/corner/transparent/neutral,
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/obj/structure/table/wood/fancy,
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"A" = (
-/turf/open/floor/holofloor/chapel/bottom_left,
-/area/template_noop)
-"C" = (
-/obj/structure/chair{
- dir = 1
- },
-/turf/open/floor/holofloor/chapel,
-/area/template_noop)
-"E" = (
-/obj/structure/chair{
- dir = 1
- },
-/turf/open/floor/holofloor/chapel/bottom_right,
-/area/template_noop)
-"F" = (
-/obj/item/clothing/suit/judgerobe,
-/obj/item/clothing/head/powdered_wig,
-/obj/effect/turf_decal/corner/transparent/neutral,
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/obj/structure/table/wood/fancy,
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"H" = (
-/obj/structure/table/wood/fancy,
-/obj/item/book/manual/wiki/security_space_law,
-/obj/effect/turf_decal/corner/transparent/neutral,
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"I" = (
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 1
- },
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"K" = (
-/turf/open/floor/holofloor/chapel/top_right,
-/area/template_noop)
-"L" = (
-/obj/structure/chair{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"N" = (
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/neutral,
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"O" = (
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/obj/structure/table/wood,
-/obj/item/paper_bin,
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"Q" = (
-/obj/structure/chair,
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"S" = (
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral,
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"T" = (
-/obj/structure/chair{
- dir = 1
- },
-/turf/open/floor/holofloor/chapel/top_left,
-/area/template_noop)
-"U" = (
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/obj/structure/table/wood,
-/obj/item/hand_labeler,
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"W" = (
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/corner/transparent/neutral,
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"X" = (
-/obj/item/clothing/suit/chaplainsuit/bishoprobe,
-/obj/effect/turf_decal/corner/transparent/neutral,
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/obj/structure/table/wood/fancy,
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-
-(1,1,1) = {"
-x
-g
-A
-g
-c
-T
-A
-L
-L
-a
-"}
-(2,1,1) = {"
-y
-K
-i
-K
-C
-k
-i
-L
-L
-O
-"}
-(3,1,1) = {"
-F
-I
-N
-g
-c
-T
-A
-L
-L
-q
-"}
-(4,1,1) = {"
-d
-f
-p
-K
-C
-k
-i
-L
-L
-l
-"}
-(5,1,1) = {"
-u
-Q
-r
-S
-S
-S
-S
-s
-s
-h
-"}
-(6,1,1) = {"
-H
-f
-p
-g
-c
-T
-A
-L
-L
-b
-"}
-(7,1,1) = {"
-m
-w
-W
-K
-E
-k
-i
-L
-L
-o
-"}
-(8,1,1) = {"
-X
-g
-A
-g
-c
-T
-A
-L
-L
-U
-"}
-(9,1,1) = {"
-x
-K
-i
-K
-E
-k
-i
-L
-L
-a
-"}
diff --git a/_maps/templates/holodeck_dodgeball.dmm b/_maps/templates/holodeck_dodgeball.dmm
deleted file mode 100644
index ec1e4fbe4dd1..000000000000
--- a/_maps/templates/holodeck_dodgeball.dmm
+++ /dev/null
@@ -1,297 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"b" = (
-/obj/structure/window{
- dir = 1
- },
-/obj/item/toy/beach_ball/holoball/dodgeball,
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"c" = (
-/obj/structure/window,
-/obj/item/toy/beach_ball/holoball/dodgeball,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"f" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"h" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"n" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"o" = (
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"p" = (
-/obj/structure/window,
-/obj/item/toy/beach_ball/holoball/dodgeball,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"q" = (
-/obj/structure/window{
- dir = 1
- },
-/obj/item/toy/beach_ball/holoball/dodgeball,
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"t" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/red,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"y" = (
-/obj/structure/window,
-/obj/item/toy/beach_ball/holoball/dodgeball,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"C" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"F" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"G" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"J" = (
-/obj/machinery/readybutton,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"K" = (
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"V" = (
-/obj/structure/window{
- dir = 1
- },
-/obj/item/toy/beach_ball/holoball/dodgeball,
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"W" = (
-/obj/machinery/readybutton,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"X" = (
-/turf/open/floor/holofloor,
-/area/template_noop)
-
-(1,1,1) = {"
-W
-G
-G
-G
-b
-p
-F
-F
-F
-a
-"}
-(2,1,1) = {"
-f
-X
-t
-X
-V
-y
-X
-C
-X
-n
-"}
-(3,1,1) = {"
-f
-X
-t
-X
-V
-y
-X
-C
-X
-n
-"}
-(4,1,1) = {"
-f
-X
-t
-X
-V
-y
-X
-C
-X
-n
-"}
-(5,1,1) = {"
-f
-X
-t
-X
-V
-y
-X
-C
-X
-n
-"}
-(6,1,1) = {"
-f
-X
-t
-X
-V
-y
-X
-C
-X
-n
-"}
-(7,1,1) = {"
-f
-X
-t
-X
-V
-y
-X
-C
-X
-n
-"}
-(8,1,1) = {"
-f
-X
-t
-X
-V
-y
-X
-C
-X
-n
-"}
-(9,1,1) = {"
-o
-K
-K
-K
-q
-c
-h
-h
-h
-J
-"}
diff --git a/_maps/templates/holodeck_emptycourt.dmm b/_maps/templates/holodeck_emptycourt.dmm
deleted file mode 100644
index 8b9b86fa0345..000000000000
--- a/_maps/templates/holodeck_emptycourt.dmm
+++ /dev/null
@@ -1,203 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"e" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"h" = (
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"j" = (
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"s" = (
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"y" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"D" = (
-/turf/open/floor/holofloor,
-/area/template_noop)
-"E" = (
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"F" = (
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"L" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"X" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-
-(1,1,1) = {"
-X
-L
-L
-L
-L
-y
-y
-y
-y
-a
-"}
-(2,1,1) = {"
-e
-D
-D
-D
-D
-D
-D
-D
-D
-h
-"}
-(3,1,1) = {"
-e
-D
-D
-D
-D
-D
-D
-D
-D
-h
-"}
-(4,1,1) = {"
-e
-D
-D
-D
-D
-D
-D
-D
-D
-h
-"}
-(5,1,1) = {"
-e
-D
-D
-D
-D
-D
-D
-D
-D
-h
-"}
-(6,1,1) = {"
-e
-D
-D
-D
-D
-D
-D
-D
-D
-h
-"}
-(7,1,1) = {"
-e
-D
-D
-D
-D
-D
-D
-D
-D
-h
-"}
-(8,1,1) = {"
-e
-D
-D
-D
-D
-D
-D
-D
-D
-h
-"}
-(9,1,1) = {"
-j
-F
-F
-F
-F
-E
-E
-E
-E
-s
-"}
diff --git a/_maps/templates/holodeck_firingrange.dmm b/_maps/templates/holodeck_firingrange.dmm
deleted file mode 100644
index a57386442fc4..000000000000
--- a/_maps/templates/holodeck_firingrange.dmm
+++ /dev/null
@@ -1,345 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"b" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"c" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/structure/window/reinforced{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"j" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"k" = (
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/structure/window/reinforced{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"n" = (
-/obj/item/target,
-/obj/item/target/clown,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"o" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"s" = (
-/obj/item/target,
-/obj/item/target/syndicate,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"t" = (
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/structure/window/reinforced{
- dir = 4
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"y" = (
-/obj/structure/window/reinforced{
- dir = 8
- },
-/turf/open/floor/holofloor{
- dir = 8;
- icon_state = "white"
- },
-/area/template_noop)
-"z" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"E" = (
-/obj/structure/table/reinforced,
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/item/training_toolbox{
- pixel_y = 4
- },
-/obj/item/training_toolbox,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"F" = (
-/obj/structure/window/reinforced{
- dir = 8
- },
-/turf/open/floor/holofloor{
- dir = 10;
- icon_state = "white"
- },
-/area/template_noop)
-"G" = (
-/obj/structure/table/reinforced,
-/obj/machinery/recharger,
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"H" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"J" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"K" = (
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"L" = (
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"N" = (
-/obj/structure/rack,
-/obj/item/gun/energy/laser/practice,
-/obj/item/clothing/ears/earmuffs,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/turf/open/floor/holofloor,
-/area/template_noop)
-"P" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"Q" = (
-/turf/open/floor/holofloor,
-/area/template_noop)
-"S" = (
-/obj/structure/training_machine,
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"T" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"U" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"Y" = (
-/obj/structure/window/reinforced{
- dir = 1
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"Z" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-
-(1,1,1) = {"
-J
-J
-J
-J
-J
-J
-J
-J
-J
-a
-"}
-(2,1,1) = {"
-Q
-Q
-Q
-Q
-Q
-Q
-Q
-Q
-Q
-o
-"}
-(3,1,1) = {"
-b
-b
-b
-b
-b
-b
-b
-b
-T
-n
-"}
-(4,1,1) = {"
-k
-y
-F
-L
-L
-L
-L
-G
-Z
-N
-"}
-(5,1,1) = {"
-Y
-S
-K
-Q
-Q
-Q
-Q
-Q
-Z
-N
-"}
-(6,1,1) = {"
-t
-U
-U
-c
-c
-c
-c
-E
-Z
-N
-"}
-(7,1,1) = {"
-P
-P
-P
-P
-P
-P
-P
-P
-z
-s
-"}
-(8,1,1) = {"
-Q
-Q
-Q
-Q
-Q
-Q
-Q
-Q
-Q
-o
-"}
-(9,1,1) = {"
-H
-H
-H
-H
-H
-H
-H
-H
-H
-j
-"}
diff --git a/_maps/templates/holodeck_gamer.dmm b/_maps/templates/holodeck_gamer.dmm
deleted file mode 100644
index 570992d24379..000000000000
--- a/_maps/templates/holodeck_gamer.dmm
+++ /dev/null
@@ -1,129 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"d" = (
-/obj/machinery/computer/arcade/battle,
-/turf/open/floor/holofloor/basalt,
-/area/template_noop)
-"x" = (
-/obj/machinery/computer/arcade,
-/turf/open/floor/holofloor/basalt,
-/area/template_noop)
-"C" = (
-/obj/machinery/computer/arcade/orion_trail,
-/turf/open/floor/holofloor/basalt,
-/area/template_noop)
-"D" = (
-/obj/machinery/computer/arcade/amputation,
-/turf/open/floor/holofloor/basalt,
-/area/template_noop)
-"I" = (
-/turf/open/floor/holofloor/basalt,
-/area/template_noop)
-
-(1,1,1) = {"
-I
-I
-I
-I
-I
-I
-I
-I
-I
-I
-"}
-(2,1,1) = {"
-I
-I
-I
-x
-I
-I
-x
-I
-I
-I
-"}
-(3,1,1) = {"
-I
-I
-I
-D
-I
-I
-D
-I
-I
-I
-"}
-(4,1,1) = {"
-I
-I
-I
-I
-I
-I
-I
-I
-I
-I
-"}
-(5,1,1) = {"
-I
-I
-I
-I
-I
-I
-I
-I
-I
-I
-"}
-(6,1,1) = {"
-I
-I
-I
-I
-I
-I
-I
-I
-I
-I
-"}
-(7,1,1) = {"
-I
-I
-I
-d
-I
-I
-d
-I
-I
-I
-"}
-(8,1,1) = {"
-I
-I
-I
-C
-I
-I
-C
-I
-I
-I
-"}
-(9,1,1) = {"
-I
-I
-I
-I
-I
-I
-I
-I
-I
-I
-"}
diff --git a/_maps/templates/holodeck_holdoutbunker.dmm b/_maps/templates/holodeck_holdoutbunker.dmm
deleted file mode 100644
index 39e68f17ee52..000000000000
--- a/_maps/templates/holodeck_holdoutbunker.dmm
+++ /dev/null
@@ -1,164 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/obj/structure/foamedmetal,
-/obj/structure/window{
- dir = 8
- },
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"b" = (
-/obj/structure/foamedmetal,
-/obj/structure/window{
- dir = 4
- },
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"l" = (
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"t" = (
-/obj/structure/foamedmetal,
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"u" = (
-/obj/structure/table,
-/obj/machinery/recharger,
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"v" = (
-/obj/structure/table,
-/obj/item/stack/medical/ointment{
- heal_burn = 10
- },
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"x" = (
-/obj/structure/foamedmetal,
-/obj/structure/window{
- dir = 4
- },
-/obj/structure/bookcase/random/fiction,
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"I" = (
-/obj/structure/table,
-/obj/item/gun/energy/laser,
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"J" = (
-/obj/structure/table,
-/obj/item/stack/medical/bruise_pack{
- heal_brute = 10
- },
-/obj/item/soap,
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-
-(1,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(2,1,1) = {"
-b
-x
-b
-b
-b
-b
-b
-b
-b
-b
-"}
-(3,1,1) = {"
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-"}
-(4,1,1) = {"
-l
-l
-l
-l
-l
-l
-l
-l
-l
-l
-"}
-(5,1,1) = {"
-l
-l
-l
-l
-l
-l
-l
-l
-l
-l
-"}
-(6,1,1) = {"
-l
-l
-l
-l
-l
-l
-l
-l
-l
-l
-"}
-(7,1,1) = {"
-l
-l
-l
-l
-l
-l
-l
-l
-l
-l
-"}
-(8,1,1) = {"
-l
-l
-l
-l
-l
-l
-l
-l
-l
-l
-"}
-(9,1,1) = {"
-v
-u
-I
-l
-I
-I
-l
-I
-u
-J
-"}
diff --git a/_maps/templates/holodeck_kobayashi.dmm b/_maps/templates/holodeck_kobayashi.dmm
deleted file mode 100644
index c58dae60ebda..000000000000
--- a/_maps/templates/holodeck_kobayashi.dmm
+++ /dev/null
@@ -1,362 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"c" = (
-/obj/machinery/button/massdriver/indestructible{
- id = "trektorpedo1";
- layer = 3.9;
- name = "photon torpedo button";
- pixel_x = -16;
- pixel_y = -5
- },
-/obj/machinery/button/massdriver/indestructible{
- id = "trektorpedo2";
- layer = 3.9;
- name = "photon torpedo button";
- pixel_x = 16;
- pixel_y = -5
- },
-/obj/machinery/computer/arcade/orion_trail/kobayashi,
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"d" = (
-/obj/machinery/computer/station_alert{
- dir = 8
- },
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"f" = (
-/obj/machinery/door/window/westleft{
- dir = 2
- },
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"j" = (
-/obj/structure/chair/office{
- dir = 1
- },
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"k" = (
-/obj/structure/chair/office{
- dir = 8
- },
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"l" = (
-/obj/structure/window/reinforced,
-/obj/machinery/computer/station_alert{
- dir = 4
- },
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"m" = (
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 1
- },
-/obj/structure/window/reinforced{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"o" = (
-/obj/structure/chair/comfy/beige{
- dir = 1
- },
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"p" = (
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/machinery/computer/arcade/orion_trail/kobayashi,
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"r" = (
-/obj/structure/table,
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"s" = (
-/obj/effect/turf_decal/corner/transparent/neutral,
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"t" = (
-/obj/structure/table/glass,
-/obj/item/gun/energy/e_gun/mini/practice_phaser,
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/machinery/recharger,
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"w" = (
-/obj/structure/table,
-/obj/item/folder,
-/obj/item/pen/blue,
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"x" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/machinery/computer/arcade/orion_trail/kobayashi,
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"y" = (
-/turf/open/floor/holofloor/hyperspace,
-/area/template_noop)
-"z" = (
-/obj/machinery/computer/atmos_alert{
- dir = 8
- },
-/obj/structure/window/reinforced,
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"A" = (
-/obj/structure/window/reinforced,
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"B" = (
-/obj/structure/window/reinforced,
-/turf/open/floor/holofloor/hyperspace,
-/area/template_noop)
-"C" = (
-/obj/machinery/computer/station_alert{
- dir = 4
- },
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"E" = (
-/obj/structure/chair{
- dir = 1
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"F" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 1
- },
-/obj/structure/window/reinforced{
- dir = 4;
- layer = 2.9
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"H" = (
-/obj/machinery/door/window/westleft{
- dir = 2;
- icon_state = "right"
- },
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"J" = (
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 1
- },
-/obj/structure/window/reinforced{
- dir = 4;
- layer = 2.9
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"L" = (
-/obj/structure/table/glass,
-/obj/item/gun/energy/e_gun/mini/practice_phaser,
-/obj/structure/window/reinforced{
- dir = 4
- },
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"Q" = (
-/obj/structure/table,
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/item/folder,
-/obj/item/pen/red,
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"T" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 1
- },
-/obj/structure/window/reinforced{
- dir = 8
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"V" = (
-/obj/structure/window/reinforced,
-/obj/machinery/mass_driver{
- dir = 1;
- id = "trektorpedo2";
- name = "photon torpedo tube"
- },
-/obj/item/toy/minimeteor{
- desc = "A primitive long-range weapon, inferior to Nanotrasen's perfected bluespace artillery.";
- icon = 'icons/effects/effects.dmi';
- icon_state = "impact_laser";
- name = "photon torpedo"
- },
-/turf/open/floor/holofloor/hyperspace,
-/area/template_noop)
-"X" = (
-/obj/structure/chair/office{
- dir = 4
- },
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"Z" = (
-/obj/structure/table,
-/obj/item/folder,
-/obj/item/pen,
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-
-(1,1,1) = {"
-y
-y
-B
-a
-C
-l
-a
-a
-a
-a
-"}
-(2,1,1) = {"
-y
-y
-B
-a
-k
-k
-a
-a
-a
-a
-"}
-(3,1,1) = {"
-y
-V
-t
-a
-a
-a
-a
-H
-m
-T
-"}
-(4,1,1) = {"
-B
-p
-a
-a
-a
-a
-A
-w
-E
-s
-"}
-(5,1,1) = {"
-B
-c
-j
-a
-a
-o
-A
-Z
-E
-s
-"}
-(6,1,1) = {"
-B
-x
-a
-a
-a
-r
-A
-Q
-E
-s
-"}
-(7,1,1) = {"
-y
-V
-L
-a
-a
-a
-a
-f
-J
-F
-"}
-(8,1,1) = {"
-y
-y
-B
-a
-X
-X
-a
-a
-a
-a
-"}
-(9,1,1) = {"
-y
-y
-B
-a
-d
-z
-a
-a
-a
-a
-"}
diff --git a/_maps/templates/holodeck_lounge.dmm b/_maps/templates/holodeck_lounge.dmm
deleted file mode 100644
index ecf82f53a424..000000000000
--- a/_maps/templates/holodeck_lounge.dmm
+++ /dev/null
@@ -1,418 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/glass/rag{
- pixel_x = 10;
- pixel_y = 1
- },
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"b" = (
-/obj/structure/closet/crate/bin,
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"c" = (
-/obj/machinery/door/window{
- base_state = "right";
- dir = 4;
- icon_state = "right";
- layer = 3
- },
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"d" = (
-/obj/structure/table/wood,
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"f" = (
-/obj/structure/table/wood,
-/obj/item/flashlight/lamp/green{
- layer = 3.3
- },
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"h" = (
-/obj/structure/table/wood,
-/obj/item/clothing/mask/cigarette/pipe,
-/obj/item/book/manual/random,
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"i" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/drinks/shaker,
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"j" = (
-/obj/structure/window/reinforced{
- dir = 4;
- layer = 2.9
- },
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"k" = (
-/obj/structure/table/wood/poker,
-/obj/item/storage/box/matches,
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"l" = (
-/obj/structure/chair/stool/bar,
-/obj/structure/window/reinforced{
- dir = 4;
- layer = 2.9
- },
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"m" = (
-/obj/structure/chair/wood,
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"o" = (
-/obj/structure/chair/wood{
- dir = 1
- },
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"p" = (
-/obj/structure/table/wood,
-/obj/item/instrument/guitar,
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"q" = (
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"t" = (
-/obj/structure/table/wood,
-/obj/item/book/manual/wiki/barman_recipes,
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"u" = (
-/obj/structure/chair/wood{
- dir = 4
- },
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"w" = (
-/obj/structure/table/wood,
-/obj/item/instrument/saxophone,
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"x" = (
-/obj/structure/table/wood,
-/obj/item/instrument/violin,
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"z" = (
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"A" = (
-/obj/structure/table/wood,
-/obj/item/paper_bin,
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"C" = (
-/obj/structure/chair/stool/bar,
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"D" = (
-/obj/structure/table/wood,
-/obj/item/kirbyplants{
- icon_state = "plant-05";
- pixel_y = 10
- },
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"E" = (
-/obj/structure/chair/comfy/brown{
- dir = 8
- },
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"F" = (
-/turf/open/floor/holofloor{
- icon_state = "stairs-r"
- },
-/area/template_noop)
-"G" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/structure/table/wood,
-/obj/item/storage/box/cups,
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"H" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = -12
- },
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"I" = (
-/obj/structure/chair/wood{
- dir = 8
- },
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"J" = (
-/obj/structure/table/wood,
-/obj/item/book/manual/random,
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"K" = (
-/obj/structure/table/wood,
-/obj/item/storage/fancy/cigarettes/cigars/cohiba,
-/obj/item/lighter,
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"L" = (
-/turf/open/floor/holofloor{
- icon_state = "stairs-l"
- },
-/area/template_noop)
-"M" = (
-/obj/structure/chair/comfy/brown{
- buildstackamount = 0;
- dir = 1
- },
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"N" = (
-/obj/structure/table/wood,
-/obj/item/instrument/piano_synth/headphones,
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"O" = (
-/obj/structure/table/wood,
-/obj/item/flashlight/lamp/green{
- pixel_y = 4
- },
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"P" = (
-/obj/structure/table/wood/poker,
-/obj/effect/holodeck_effect/cards,
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"R" = (
-/obj/structure/window/reinforced,
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"S" = (
-/obj/structure/table/wood/poker,
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"T" = (
-/obj/structure/table/wood/poker,
-/obj/item/clothing/mask/cigarette/pipe,
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"U" = (
-/obj/structure/table/wood/poker,
-/obj/item/storage/pill_bottle/dice,
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"V" = (
-/obj/structure/chair/stool/bar,
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"Y" = (
-/obj/structure/table/wood,
-/obj/structure/window/reinforced{
- dir = 4;
- layer = 2.9
- },
-/turf/open/floor/holofloor{
- dir = 9;
- icon_state = "wood"
- },
-/area/template_noop)
-"Z" = (
-/obj/structure/musician/piano{
- icon_state = "piano"
- },
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-
-(1,1,1) = {"
-K
-z
-z
-z
-z
-z
-V
-t
-H
-a
-"}
-(2,1,1) = {"
-f
-z
-z
-z
-z
-z
-V
-d
-z
-i
-"}
-(3,1,1) = {"
-z
-u
-u
-z
-z
-j
-l
-Y
-c
-G
-"}
-(4,1,1) = {"
-m
-S
-U
-o
-R
-w
-N
-Z
-q
-x
-"}
-(5,1,1) = {"
-m
-k
-S
-o
-z
-L
-q
-C
-q
-p
-"}
-(6,1,1) = {"
-m
-P
-T
-o
-z
-F
-q
-q
-q
-M
-"}
-(7,1,1) = {"
-z
-I
-I
-z
-R
-J
-q
-q
-q
-M
-"}
-(8,1,1) = {"
-b
-z
-z
-z
-R
-D
-q
-q
-q
-M
-"}
-(9,1,1) = {"
-A
-z
-z
-z
-R
-O
-q
-E
-E
-h
-"}
diff --git a/_maps/templates/holodeck_medicalsim.dmm b/_maps/templates/holodeck_medicalsim.dmm
deleted file mode 100644
index 4a7fe27b96a0..000000000000
--- a/_maps/templates/holodeck_medicalsim.dmm
+++ /dev/null
@@ -1,976 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"ap" = (
-/obj/effect/turf_decal/corner/opaque/yellow,
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 1
- },
-/obj/structure/table,
-/obj/item/reagent_containers/dropper,
-/obj/item/assembly/igniter,
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"aL" = (
-/obj/structure/table/glass,
-/obj/item/clothing/gloves/color/latex/nitrile,
-/obj/item/clothing/suit/apron/surgical,
-/obj/item/clothing/mask/surgical,
-/obj/structure/window{
- dir = 4
- },
-/obj/item/surgicaldrill,
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"ba" = (
-/obj/machinery/iv_drip,
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"bw" = (
-/obj/effect/turf_decal/corner/opaque/yellow,
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 4
- },
-/obj/structure/table,
-/obj/machinery/reagentgrinder,
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"cI" = (
-/obj/structure/closet/crate/freezer/blood,
-/obj/structure/window{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"cO" = (
-/obj/machinery/stasis,
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"cR" = (
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"cT" = (
-/obj/structure/table,
-/obj/item/folder/white,
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"dx" = (
-/obj/structure/table,
-/obj/item/flashlight/lamp,
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/obj/structure/window{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"dX" = (
-/obj/structure/window{
- dir = 1
- },
-/obj/structure/table/glass,
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/item/storage/box/masks,
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"gp" = (
-/obj/structure/window,
-/obj/effect/turf_decal/corner/opaque/blue,
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 1
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"gr" = (
-/obj/structure/table/glass,
-/obj/item/retractor,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"hK" = (
-/obj/structure/window{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/structure/table/glass,
-/obj/item/storage/box/gloves{
- pixel_x = 3;
- pixel_y = 3
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"hQ" = (
-/obj/structure/window{
- dir = 1
- },
-/obj/structure/table/glass,
-/obj/item/healthanalyzer,
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"jr" = (
-/obj/effect/turf_decal/corner/opaque/blue,
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"kJ" = (
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"lU" = (
-/obj/effect/turf_decal/corner/opaque/yellow,
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 8
- },
-/obj/structure/table,
-/obj/item/storage/box/syringes,
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"nj" = (
-/obj/structure/window{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue,
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"pe" = (
-/obj/structure/window,
-/obj/effect/turf_decal/corner/opaque/blue,
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/obj/item/kirbyplants{
- icon_state = "plant-10"
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"pY" = (
-/obj/machinery/computer/operating{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"qw" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"qV" = (
-/obj/machinery/shower{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"qX" = (
-/obj/structure/bed,
-/obj/item/bedsheet/medical,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"tI" = (
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"uj" = (
-/obj/machinery/chem_master,
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 1
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"wu" = (
-/obj/structure/filingcabinet,
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"wV" = (
-/obj/structure/window{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/structure/bed/roller,
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"xf" = (
-/obj/structure/table/optable,
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"xz" = (
-/obj/structure/closet/wardrobe/white,
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"yk" = (
-/obj/structure/window{
- dir = 8
- },
-/obj/machinery/computer/crew{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"zd" = (
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/obj/structure/table,
-/obj/item/paper_bin,
-/obj/item/pen,
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"Ac" = (
-/obj/machinery/washing_machine,
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"An" = (
-/obj/machinery/computer/operating{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"BI" = (
-/obj/structure/window{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"BS" = (
-/obj/machinery/computer/pandemic,
-/obj/effect/turf_decal/corner/opaque/yellow,
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"BT" = (
-/obj/structure/bed,
-/obj/item/bedsheet/medical,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"Ck" = (
-/obj/machinery/shower{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/blue,
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"Ct" = (
-/obj/structure/chair/office/light{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"CQ" = (
-/obj/structure/table,
-/obj/item/clothing/neck/stethoscope,
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"DT" = (
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"DW" = (
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"Ea" = (
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 8
- },
-/obj/structure/table,
-/obj/item/reagent_containers/glass/beaker,
-/obj/item/reagent_containers/glass/beaker,
-/obj/item/reagent_containers/glass/beaker,
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"Ga" = (
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"GN" = (
-/obj/machinery/door/window/westleft{
- dir = 2
- },
-/obj/effect/turf_decal/corner/opaque/blue,
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"Ig" = (
-/obj/machinery/iv_drip,
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"Ke" = (
-/obj/structure/window,
-/obj/effect/turf_decal/corner/opaque/blue,
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"KD" = (
-/obj/effect/turf_decal/corner/opaque/blue,
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 1
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"Lt" = (
-/obj/effect/turf_decal/corner/opaque/blue,
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"LW" = (
-/obj/structure/window{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/item/kirbyplants{
- icon_state = "plant-21"
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"NV" = (
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 1
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"PJ" = (
-/obj/structure/window{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/item/kirbyplants{
- icon_state = "plant-08"
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"Qu" = (
-/obj/structure/table/glass,
-/obj/item/stack/medical/gauze,
-/obj/item/cautery,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"RA" = (
-/obj/structure/window{
- dir = 8
- },
-/obj/machinery/computer/med_data{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"RJ" = (
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 8
- },
-/obj/structure/table,
-/obj/item/reagent_containers/glass/beaker/large,
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"Sb" = (
-/obj/structure/table/glass,
-/obj/item/scalpel{
- pixel_y = 10
- },
-/obj/item/circular_saw,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"Sj" = (
-/obj/effect/turf_decal/corner/opaque/yellow,
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"Tt" = (
-/obj/machinery/stasis,
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"TI" = (
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/green,
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 4
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"WK" = (
-/obj/structure/bodycontainer/morgue{
- dir = 2
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"Xm" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"XM" = (
-/obj/structure/window,
-/obj/effect/turf_decal/corner/opaque/blue,
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"Zq" = (
-/obj/structure/table/glass,
-/obj/item/razor,
-/obj/item/hemostat,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-
-(1,1,1) = {"
-WK
-Xm
-DT
-kJ
-Ck
-qV
-gp
-qX
-qw
-ba
-"}
-(2,1,1) = {"
-Zq
-tI
-xf
-LW
-jr
-NV
-Ke
-BT
-tI
-Tt
-"}
-(3,1,1) = {"
-Sb
-tI
-pY
-dX
-jr
-NV
-Ke
-BT
-tI
-Ig
-"}
-(4,1,1) = {"
-gr
-tI
-An
-hQ
-jr
-NV
-GN
-TI
-cR
-cO
-"}
-(5,1,1) = {"
-Qu
-tI
-xf
-hK
-jr
-NV
-pe
-yk
-RA
-dx
-"}
-(6,1,1) = {"
-cI
-BI
-aL
-wV
-jr
-NV
-Ke
-Ga
-Ct
-cT
-"}
-(7,1,1) = {"
-Ea
-RJ
-lU
-PJ
-jr
-NV
-GN
-Ga
-Ga
-zd
-"}
-(8,1,1) = {"
-uj
-tI
-Sj
-DW
-jr
-NV
-Ke
-xz
-Ga
-CQ
-"}
-(9,1,1) = {"
-ap
-bw
-BS
-nj
-Lt
-KD
-XM
-Ac
-Ga
-wu
-"}
diff --git a/_maps/templates/holodeck_offline.dmm b/_maps/templates/holodeck_offline.dmm
deleted file mode 100644
index 962ba7b16d40..000000000000
--- a/_maps/templates/holodeck_offline.dmm
+++ /dev/null
@@ -1,113 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-
-(1,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(2,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(3,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(4,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(5,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(6,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(7,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(8,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(9,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
diff --git a/_maps/templates/holodeck_petpark.dmm b/_maps/templates/holodeck_petpark.dmm
deleted file mode 100644
index 9ff44986d3d6..000000000000
--- a/_maps/templates/holodeck_petpark.dmm
+++ /dev/null
@@ -1,256 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/obj/structure/flora/ausbushes/sparsegrass,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"b" = (
-/obj/structure/flora/ausbushes/fernybush,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"c" = (
-/obj/machinery/hydroponics/soil,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"f" = (
-/obj/structure/flora/ausbushes/genericbush,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"g" = (
-/obj/effect/holodeck_effect/mobspawner/pet,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"k" = (
-/obj/structure/flora/tree/jungle/small,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"l" = (
-/obj/structure/flora/ausbushes/ppflowers,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"p" = (
-/obj/structure/flora/ausbushes/ywflowers,
-/obj/effect/holodeck_effect/mobspawner/pet,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"q" = (
-/obj/machinery/hydroponics/soil,
-/obj/effect/holodeck_effect/mobspawner/pet,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"v" = (
-/obj/structure/flora/ausbushes/palebush,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"w" = (
-/obj/effect/holodeck_effect/mobspawner/pet,
-/obj/structure/flora/ausbushes/brflowers,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"y" = (
-/obj/structure/flora/ausbushes/pointybush,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"C" = (
-/obj/structure/flora/ausbushes/ywflowers,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"D" = (
-/obj/structure/flora/ausbushes/reedbush,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"G" = (
-/obj/structure/flora/ausbushes/lavendergrass,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"H" = (
-/obj/effect/holodeck_effect/mobspawner/pet,
-/obj/structure/flora/ausbushes/sparsegrass,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"I" = (
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"M" = (
-/obj/structure/flora/ausbushes/sunnybush,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"N" = (
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"R" = (
-/obj/structure/flora/ausbushes/brflowers,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"S" = (
-/obj/item/trash/plate,
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"U" = (
-/obj/machinery/hydroponics/soil,
-/obj/item/cultivator,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"V" = (
-/obj/item/shovel/spade{
- pixel_x = 2;
- pixel_y = -2
- },
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-"X" = (
-/obj/item/reagent_containers/glass/bucket,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"Z" = (
-/obj/effect/holodeck_effect/mobspawner/pet,
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/turf/open/floor/holofloor,
-/area/template_noop)
-
-(1,1,1) = {"
-g
-I
-I
-I
-f
-I
-I
-f
-I
-a
-"}
-(2,1,1) = {"
-I
-f
-I
-v
-g
-I
-v
-H
-M
-I
-"}
-(3,1,1) = {"
-M
-g
-R
-I
-k
-l
-I
-c
-c
-I
-"}
-(4,1,1) = {"
-I
-l
-M
-I
-I
-G
-R
-U
-q
-I
-"}
-(5,1,1) = {"
-y
-w
-N
-Z
-D
-M
-X
-q
-c
-f
-"}
-(6,1,1) = {"
-I
-I
-S
-V
-I
-p
-I
-c
-c
-I
-"}
-(7,1,1) = {"
-I
-M
-g
-v
-I
-f
-C
-I
-I
-v
-"}
-(8,1,1) = {"
-f
-C
-f
-I
-I
-I
-g
-I
-b
-I
-"}
-(9,1,1) = {"
-I
-I
-I
-I
-I
-R
-I
-I
-I
-I
-"}
diff --git a/_maps/templates/holodeck_photobooth.dmm b/_maps/templates/holodeck_photobooth.dmm
deleted file mode 100644
index 64a6bb0f7205..000000000000
--- a/_maps/templates/holodeck_photobooth.dmm
+++ /dev/null
@@ -1,173 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/open/floor/holofloor/white,
-/area/template_noop)
-"c" = (
-/obj/structure/dresser,
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"g" = (
-/obj/structure/easel,
-/obj/item/canvas/twentythreeXtwentythree,
-/obj/item/canvas/twentythreeXtwentythree,
-/obj/item/canvas/twentythreeXtwentythree,
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"r" = (
-/obj/structure/table/wood,
-/obj/item/paint/anycolor{
- pixel_x = 7
- },
-/obj/item/paint/anycolor{
- pixel_x = -5
- },
-/obj/item/paint/anycolor{
- pixel_x = 7
- },
-/obj/item/paint/anycolor{
- pixel_x = 7
- },
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"t" = (
-/obj/structure/table/wood,
-/obj/item/toy/crayon/spraycan{
- pixel_x = 5;
- pixel_y = 5
- },
-/obj/item/toy/crayon/spraycan{
- pixel_x = -5;
- pixel_y = 5
- },
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"u" = (
-/obj/structure/table/wood,
-/obj/item/paper_bin,
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"w" = (
-/obj/structure/table/wood,
-/obj/item/camera,
-/obj/item/camera,
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"H" = (
-/obj/structure/table/wood,
-/obj/item/storage/crayons,
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-"L" = (
-/obj/structure/falsewall/wood,
-/obj/structure/mirror,
-/turf/open/floor/holofloor/carpet,
-/area/template_noop)
-
-(1,1,1) = {"
-H
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(2,1,1) = {"
-L
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(3,1,1) = {"
-u
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(4,1,1) = {"
-r
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(5,1,1) = {"
-w
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(6,1,1) = {"
-t
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(7,1,1) = {"
-t
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(8,1,1) = {"
-g
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(9,1,1) = {"
-c
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
diff --git a/_maps/templates/holodeck_refuelingstation.dmm b/_maps/templates/holodeck_refuelingstation.dmm
deleted file mode 100644
index e066ff996229..000000000000
--- a/_maps/templates/holodeck_refuelingstation.dmm
+++ /dev/null
@@ -1,121 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"j" = (
-/obj/structure/reagent_dispensers/fueltank,
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"F" = (
-/obj/item/weldingtool,
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-
-(1,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(2,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(3,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(4,1,1) = {"
-a
-j
-j
-a
-j
-j
-a
-j
-j
-a
-"}
-(5,1,1) = {"
-a
-j
-j
-F
-j
-j
-F
-j
-j
-a
-"}
-(6,1,1) = {"
-a
-j
-j
-a
-j
-j
-a
-j
-j
-a
-"}
-(7,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(8,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(9,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
diff --git a/_maps/templates/holodeck_skatepark.dmm b/_maps/templates/holodeck_skatepark.dmm
deleted file mode 100644
index 21388e50a289..000000000000
--- a/_maps/templates/holodeck_skatepark.dmm
+++ /dev/null
@@ -1,117 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"t" = (
-/obj/structure/table,
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-
-(1,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(2,1,1) = {"
-a
-t
-t
-a
-a
-a
-a
-a
-a
-a
-"}
-(3,1,1) = {"
-a
-t
-t
-t
-t
-a
-t
-t
-a
-a
-"}
-(4,1,1) = {"
-a
-a
-t
-t
-t
-t
-t
-a
-a
-a
-"}
-(5,1,1) = {"
-a
-a
-t
-t
-a
-t
-t
-a
-a
-a
-"}
-(6,1,1) = {"
-a
-a
-t
-t
-t
-t
-a
-a
-a
-a
-"}
-(7,1,1) = {"
-a
-t
-t
-t
-t
-a
-t
-t
-a
-a
-"}
-(8,1,1) = {"
-a
-t
-a
-a
-a
-a
-t
-t
-a
-a
-"}
-(9,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
diff --git a/_maps/templates/holodeck_spacecheckers.dmm b/_maps/templates/holodeck_spacecheckers.dmm
deleted file mode 100644
index c59da010a2aa..000000000000
--- a/_maps/templates/holodeck_spacecheckers.dmm
+++ /dev/null
@@ -1,187 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"c" = (
-/obj/item/cardboard_cutout/adaptive{
- icon_state = "cutout_greytide";
- name = "White Pawn"
- },
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"d" = (
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-"g" = (
-/obj/item/cardboard_cutout/adaptive{
- icon_state = "cutout_clown";
- name = "White King"
- },
-/obj/item/cardboard_cutout/adaptive{
- icon_state = "cutout_clown";
- name = "White King"
- },
-/obj/item/cardboard_cutout/adaptive{
- icon_state = "cutout_clown";
- name = "White King"
- },
-/obj/item/cardboard_cutout/adaptive{
- icon_state = "cutout_clown";
- name = "White King"
- },
-/obj/item/cardboard_cutout/adaptive{
- icon_state = "cutout_clown";
- name = "White King"
- },
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"z" = (
-/obj/item/cardboard_cutout/adaptive{
- color = "#9999BB";
- icon_state = "cutout_clown";
- name = "Black King"
- },
-/obj/item/cardboard_cutout/adaptive{
- color = "#9999BB";
- icon_state = "cutout_clown";
- name = "Black King"
- },
-/obj/item/cardboard_cutout/adaptive{
- color = "#9999BB";
- icon_state = "cutout_clown";
- name = "Black King"
- },
-/obj/item/cardboard_cutout/adaptive{
- color = "#9999BB";
- icon_state = "cutout_clown";
- name = "Black King"
- },
-/obj/item/cardboard_cutout/adaptive{
- color = "#9999BB";
- icon_state = "cutout_clown";
- name = "Black King"
- },
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"J" = (
-/turf/open/floor/holofloor{
- icon_state = "white"
- },
-/area/template_noop)
-"M" = (
-/obj/item/cardboard_cutout/adaptive{
- color = "#9999BB";
- icon_state = "cutout_greytide";
- name = "Black Pawn"
- },
-/turf/open/floor/holofloor/dark,
-/area/template_noop)
-
-(1,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(2,1,1) = {"
-a
-J
-M
-J
-d
-J
-c
-J
-c
-a
-"}
-(3,1,1) = {"
-a
-M
-J
-M
-J
-d
-J
-c
-J
-a
-"}
-(4,1,1) = {"
-a
-J
-M
-J
-d
-J
-c
-J
-c
-a
-"}
-(5,1,1) = {"
-a
-M
-J
-M
-J
-d
-J
-c
-J
-a
-"}
-(6,1,1) = {"
-a
-J
-M
-J
-d
-J
-c
-J
-c
-a
-"}
-(7,1,1) = {"
-a
-M
-J
-M
-J
-d
-J
-c
-J
-a
-"}
-(8,1,1) = {"
-a
-J
-M
-J
-d
-J
-c
-J
-c
-a
-"}
-(9,1,1) = {"
-z
-M
-J
-M
-J
-d
-J
-c
-J
-g
-"}
diff --git a/_maps/templates/holodeck_thunderdome.dmm b/_maps/templates/holodeck_thunderdome.dmm
deleted file mode 100644
index b6c522a3ed44..000000000000
--- a/_maps/templates/holodeck_thunderdome.dmm
+++ /dev/null
@@ -1,148 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/obj/structure/table,
-/turf/open/floor/holofloor/basalt,
-/area/template_noop)
-"c" = (
-/obj/structure/window{
- dir = 1
- },
-/turf/open/floor/holofloor/basalt,
-/area/template_noop)
-"h" = (
-/obj/structure/table,
-/obj/item/clothing/head/helmet/thunderdome,
-/obj/item/clothing/suit/armor/tdome/green,
-/obj/item/clothing/under/color/green,
-/obj/item/holo/esword/green,
-/turf/open/floor/holofloor/basalt,
-/area/template_noop)
-"q" = (
-/obj/structure/table,
-/obj/item/clothing/head/helmet/thunderdome,
-/obj/item/clothing/suit/armor/tdome/red,
-/obj/item/clothing/under/color/red,
-/obj/item/holo/esword/red,
-/turf/open/floor/holofloor/basalt,
-/area/template_noop)
-"x" = (
-/obj/structure/window,
-/turf/open/floor/holofloor/basalt,
-/area/template_noop)
-"B" = (
-/turf/open/floor/holofloor/basalt,
-/area/template_noop)
-"Q" = (
-/obj/structure/table,
-/obj/machinery/readybutton,
-/turf/open/floor/holofloor/basalt,
-/area/template_noop)
-
-(1,1,1) = {"
-Q
-B
-B
-B
-x
-c
-B
-B
-B
-a
-"}
-(2,1,1) = {"
-q
-B
-B
-B
-x
-c
-B
-B
-B
-h
-"}
-(3,1,1) = {"
-q
-B
-B
-B
-x
-c
-B
-B
-B
-h
-"}
-(4,1,1) = {"
-q
-B
-B
-B
-x
-c
-B
-B
-B
-h
-"}
-(5,1,1) = {"
-q
-B
-B
-B
-x
-c
-B
-B
-B
-h
-"}
-(6,1,1) = {"
-q
-B
-B
-B
-x
-c
-B
-B
-B
-h
-"}
-(7,1,1) = {"
-q
-B
-B
-B
-x
-c
-B
-B
-B
-h
-"}
-(8,1,1) = {"
-q
-B
-B
-B
-x
-c
-B
-B
-B
-h
-"}
-(9,1,1) = {"
-a
-B
-B
-B
-x
-c
-B
-B
-B
-Q
-"}
diff --git a/_maps/templates/holodeck_thunderdome1218.dmm b/_maps/templates/holodeck_thunderdome1218.dmm
deleted file mode 100644
index 94556b2bdc7d..000000000000
--- a/_maps/templates/holodeck_thunderdome1218.dmm
+++ /dev/null
@@ -1,221 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/obj/structure/chair/wood{
- dir = 1
- },
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"f" = (
-/obj/structure/window/reinforced,
-/obj/item/banner/red,
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"g" = (
-/obj/structure/window/reinforced,
-/obj/item/banner/blue,
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"k" = (
-/obj/structure/table/wood/fancy,
-/obj/item/clothing/suit/armor/riot/knight/blue,
-/obj/item/clothing/head/helmet/knight/blue,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"n" = (
-/obj/machinery/door/window/westleft{
- dir = 2
- },
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"p" = (
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"r" = (
-/obj/structure/table/wood,
-/obj/item/scythe,
-/obj/item/spear,
-/obj/item/melee/chainofcommand{
- name = "chain whip"
- },
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"s" = (
-/obj/machinery/door/window/westleft{
- dir = 2;
- icon_state = "right"
- },
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"x" = (
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"y" = (
-/obj/structure/table/wood,
-/obj/item/melee/chainofcommand{
- name = "chain whip"
- },
-/obj/item/spear,
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"B" = (
-/turf/open/floor/holofloor{
- icon_state = "stairs-old"
- },
-/area/template_noop)
-"C" = (
-/obj/structure/table/wood/fancy,
-/obj/item/clothing/head/crown/fancy{
- pixel_y = 6
- },
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"E" = (
-/obj/structure/window/reinforced,
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"H" = (
-/obj/structure/statue/diamond/captain,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"J" = (
-/obj/structure/window/reinforced,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"N" = (
-/obj/structure/table/wood,
-/obj/item/spear,
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"Q" = (
-/obj/structure/table/wood/fancy,
-/obj/item/clothing/suit/armor/riot/knight/blue,
-/obj/item/clothing/head/helmet/knight/blue,
-/obj/item/claymore/weak,
-/turf/open/floor/holofloor/grass,
-/area/template_noop)
-"R" = (
-/obj/machinery/door/window/westleft{
- dir = 2
- },
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"T" = (
-/obj/structure/table/wood,
-/obj/item/spear,
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-"X" = (
-/obj/structure/table/wood,
-/obj/item/scythe,
-/obj/item/spear,
-/turf/open/floor/holofloor/asteroid,
-/area/template_noop)
-
-(1,1,1) = {"
-H
-J
-N
-p
-p
-p
-p
-g
-x
-a
-"}
-(2,1,1) = {"
-x
-J
-r
-p
-p
-p
-p
-E
-x
-a
-"}
-(3,1,1) = {"
-k
-s
-B
-p
-p
-p
-p
-E
-x
-a
-"}
-(4,1,1) = {"
-Q
-J
-y
-p
-p
-p
-p
-R
-x
-a
-"}
-(5,1,1) = {"
-C
-J
-X
-p
-p
-p
-p
-E
-x
-a
-"}
-(6,1,1) = {"
-Q
-J
-T
-p
-p
-p
-p
-R
-x
-a
-"}
-(7,1,1) = {"
-k
-n
-B
-p
-p
-p
-p
-E
-x
-a
-"}
-(8,1,1) = {"
-x
-J
-y
-p
-p
-p
-p
-E
-x
-a
-"}
-(9,1,1) = {"
-H
-J
-T
-p
-p
-p
-p
-f
-x
-a
-"}
diff --git a/_maps/templates/holodeck_wildlifesim.dmm b/_maps/templates/holodeck_wildlifesim.dmm
deleted file mode 100644
index cc01ef83518e..000000000000
--- a/_maps/templates/holodeck_wildlifesim.dmm
+++ /dev/null
@@ -1,117 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-"H" = (
-/obj/effect/holodeck_effect/mobspawner,
-/turf/open/floor/holofloor/plating,
-/area/template_noop)
-
-(1,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(2,1,1) = {"
-a
-a
-H
-a
-a
-a
-a
-a
-H
-a
-"}
-(3,1,1) = {"
-a
-a
-a
-a
-H
-a
-a
-a
-a
-a
-"}
-(4,1,1) = {"
-a
-a
-H
-a
-a
-a
-a
-a
-H
-a
-"}
-(5,1,1) = {"
-a
-a
-a
-a
-a
-H
-H
-a
-a
-a
-"}
-(6,1,1) = {"
-a
-a
-H
-a
-a
-a
-a
-a
-H
-a
-"}
-(7,1,1) = {"
-a
-a
-a
-a
-H
-a
-a
-a
-a
-a
-"}
-(8,1,1) = {"
-a
-a
-H
-a
-a
-a
-a
-a
-H
-a
-"}
-(9,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
diff --git a/_maps/templates/holodeck_winterwonderland.dmm b/_maps/templates/holodeck_winterwonderland.dmm
deleted file mode 100644
index f072ddd9b278..000000000000
--- a/_maps/templates/holodeck_winterwonderland.dmm
+++ /dev/null
@@ -1,247 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/obj/structure/flora/grass/both,
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"c" = (
-/obj/structure/flora/bush{
- pixel_x = -2;
- pixel_y = 3
- },
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"d" = (
-/obj/structure/flora/tree/pine,
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"h" = (
-/obj/structure/flora/tree/pine{
- pixel_y = -6
- },
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"l" = (
-/obj/structure/flora/tree/pine{
- pixel_x = -21
- },
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"m" = (
-/obj/effect/holodeck_effect/mobspawner/penguin,
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"n" = (
-/obj/item/stack/sheet/mineral/coal{
- pixel_x = -8;
- pixel_y = -4
- },
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"q" = (
-/obj/structure/flora/grass/brown,
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"s" = (
-/obj/structure/flora/tree/pine/xmas,
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"u" = (
-/obj/item/clothing/gloves/color/green{
- pixel_x = -7;
- pixel_y = -7
- },
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"w" = (
-/obj/item/clothing/suit/hooded/wintercoat,
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"A" = (
-/obj/structure/flora/bush,
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"D" = (
-/obj/structure/statue/snow/snowman{
- anchored = 1
- },
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"E" = (
-/obj/effect/holodeck_effect/mobspawner/penguin_baby,
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"G" = (
-/obj/item/clothing/head/trapper{
- pixel_x = -5;
- pixel_y = 6
- },
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"H" = (
-/obj/item/clothing/neck/stripedredscarf{
- pixel_x = -3;
- pixel_y = -5
- },
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"L" = (
-/obj/structure/flora/grass/green,
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"O" = (
-/obj/structure/flora/bush{
- pixel_x = 5;
- pixel_y = 7
- },
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"P" = (
-/obj/item/clothing/head/collectable/tophat{
- pixel_x = 9;
- pixel_y = 7
- },
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"Q" = (
-/obj/item/clothing/shoes/winterboots{
- pixel_y = 12
- },
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"R" = (
-/obj/structure/flora/tree/pine{
- pixel_x = -10
- },
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"S" = (
-/obj/item/hatchet/wooden{
- pixel_x = 7;
- pixel_y = -8
- },
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"U" = (
-/obj/item/toy/snowball{
- pixel_y = 6
- },
-/obj/item/toy/snowball{
- pixel_x = 5
- },
-/obj/item/toy/snowball{
- pixel_x = -4
- },
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-"Z" = (
-/turf/open/floor/holofloor/snow,
-/area/template_noop)
-
-(1,1,1) = {"
-L
-S
-Z
-Z
-A
-Z
-Z
-Z
-Z
-a
-"}
-(2,1,1) = {"
-Z
-h
-Z
-Z
-Z
-Z
-Z
-Z
-l
-Z
-"}
-(3,1,1) = {"
-Z
-P
-U
-Z
-Z
-Z
-Z
-Z
-Z
-c
-"}
-(4,1,1) = {"
-H
-D
-Z
-Z
-Z
-Z
-Z
-Z
-m
-Z
-"}
-(5,1,1) = {"
-A
-n
-Z
-Z
-Z
-s
-E
-Z
-w
-Q
-"}
-(6,1,1) = {"
-Z
-Z
-m
-Z
-Z
-Z
-Z
-U
-u
-G
-"}
-(7,1,1) = {"
-Z
-Z
-d
-O
-Z
-Z
-Z
-Z
-Z
-Z
-"}
-(8,1,1) = {"
-Z
-Z
-Z
-Z
-Z
-Z
-Z
-Z
-Z
-R
-"}
-(9,1,1) = {"
-Z
-a
-Z
-Z
-Z
-L
-Z
-Z
-Z
-q
-"}
diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index 8fd5d549c086..c0a4d30aba8b 100644
--- a/code/__DEFINES/is_helpers.dm
+++ b/code/__DEFINES/is_helpers.dm
@@ -224,8 +224,6 @@ GLOBAL_LIST_INIT(glass_sheet_types, typecacheof(list(
#define iseffect(O) (istype(O, /obj/effect))
-#define isholoeffect(O) (istype(O, /obj/effect/holodeck_effect))
-
#define isblobmonster(O) (istype(O, /mob/living/simple_animal/hostile/blob))
#define isshuttleturf(T) (length(T.baseturfs) && (/turf/baseturf_skipover/shuttle in T.baseturfs))
diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm
index 9dbe4fae64e9..0f2f39ee0240 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -470,11 +470,6 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
/// Possible value of [/atom/movable/buckle_lying]. If set to a different (positive-or-zero) value than this, the buckling thing will force a lying angle on the buckled.
#define NO_BUCKLE_LYING -1
-#define STATION_HOLODECK (1<<0)
-#define CUSTOM_HOLODECK_ONE (1<<1)
-#define CUSTOM_HOLODECK_TWO (1<<2)
-#define HOLODECK_DEBUG (1<<3)//you should never see this
-
#define ROUND_END_NOT_DELAYED 0
#define ROUND_END_DELAYED 1
#define ROUND_END_TGS 2
diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm
index f9c5c9c86399..92b8d146c4fc 100644
--- a/code/controllers/subsystem/mapping.dm
+++ b/code/controllers/subsystem/mapping.dm
@@ -22,7 +22,6 @@ SUBSYSTEM_DEF(mapping)
var/list/shuttle_templates = list()
var/list/shelter_templates = list()
- var/list/holodeck_templates = list()
// List mapping TYPES of outpost map templates to instances of their singletons.
var/list/outpost_templates = list()
@@ -91,13 +90,11 @@ SUBSYSTEM_DEF(mapping)
shuttle_templates = SSmapping.shuttle_templates
shelter_templates = SSmapping.shelter_templates
- holodeck_templates = SSmapping.holodeck_templates
outpost_templates = SSmapping.outpost_templates
shuttle_templates = SSmapping.shuttle_templates
shelter_templates = SSmapping.shelter_templates
- holodeck_templates = SSmapping.holodeck_templates
areas_in_z = SSmapping.areas_in_z
map_zones = SSmapping.map_zones
@@ -127,7 +124,6 @@ SUBSYSTEM_DEF(mapping)
preloadShuttleTemplates()
load_ship_templates()
preloadShelterTemplates()
- preloadHolodeckTemplates()
preloadOutpostTemplates()
/datum/controller/subsystem/mapping/proc/preloadRuinTemplates()
@@ -279,16 +275,6 @@ SUBSYSTEM_DEF(mapping)
add_new_zlevel("Quadrant Allocation Level", allocation_type = ALLOCATION_QUADRANT)
CHECK_TICK
-/datum/controller/subsystem/mapping/proc/preloadHolodeckTemplates()
- for(var/item in subtypesof(/datum/map_template/holodeck))
- var/datum/map_template/holodeck/holodeck_type = item
- if(!(initial(holodeck_type.mappath)))
- continue
- var/datum/map_template/holodeck/holo_template = new holodeck_type()
-
- holodeck_templates[holo_template.template_id] = holo_template
- map_templates[holo_template.template_id] = holo_template
-
/datum/controller/subsystem/mapping/proc/preloadOutpostTemplates()
for(var/datum/map_template/outpost/outpost_type as anything in subtypesof(/datum/map_template/outpost))
var/datum/map_template/outpost/outpost_template = new outpost_type()
diff --git a/code/game/area/areas/holodeck.dm b/code/game/area/areas/holodeck.dm
deleted file mode 100644
index c8741a23ae7e..000000000000
--- a/code/game/area/areas/holodeck.dm
+++ /dev/null
@@ -1,52 +0,0 @@
-/area/holodeck
- name = "Holodeck"
- icon_state = "Holodeck"
- dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
- flags_1 = NONE
- area_flags = VALID_TERRITORY | UNIQUE_AREA
- sound_environment = SOUND_ENVIRONMENT_PADDED_CELL
-
- var/obj/machinery/computer/holodeck/linked
- var/restricted = 0 // if true, program goes on emag list
-
-/*
- Power tracking: Use the holodeck computer's power grid
- Asserts are to avoid the inevitable infinite loops
-*/
-
-/area/holodeck/powered(chan)
- if(!requires_power)
- return TRUE
- if(always_unpowered)
- return FALSE
- if(!linked)
- return FALSE
- var/area/A = get_area(linked)
- ASSERT(!istype(A, /area/holodeck))
- return A.powered(chan)
-
-/area/holodeck/addStaticPower(value, powerchannel)
- if(!linked)
- return
- var/area/A = get_area(linked)
- ASSERT(!istype(A, /area/holodeck))
- return ..()
-
-/area/holodeck/use_power(amount, chan)
- if(!linked)
- return 0
- var/area/A = get_area(linked)
- ASSERT(!istype(A, /area/holodeck))
- return ..()
-
-
-/*
- This is the standard holodeck. It is intended to allow you to
- blow off steam by doing stupid things like laying down, throwing
- spheres at holes, or bludgeoning people.
-*/
-/area/holodeck/rec_center
- name = "\improper Recreational Holodeck"
-
-/area/holodeck/rec_center/offstation_one
- name = "\improper Recreational Holodeck"
diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm
index 8cbda2b3af5a..54dcfb36c131 100644
--- a/code/game/objects/items/circuitboards/computer_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm
@@ -180,11 +180,6 @@
icon_state = "generic"
build_path = /obj/machinery/computer/arcade/orion_trail
-/obj/item/circuitboard/computer/holodeck// Not going to let people get this, but it's just here for future
- name = "Holodeck Control (Computer Board)"
- icon_state = "generic"
- build_path = /obj/machinery/computer/holodeck
-
/obj/item/circuitboard/computer/libraryconsole
name = "Library Visitor Console (Computer Board)"
build_path = /obj/machinery/computer/libraryconsole
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 211c03d1d98a..a976c49fb45c 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -617,7 +617,6 @@
icon_state = "deck_nanotrasen_full"
w_class = WEIGHT_CLASS_SMALL
var/cooldown = 0
- var/obj/machinery/computer/holodeck/holo = null // Holodeck cards should not be infinite
var/list/cards = list()
/obj/item/toy/cards/deck/Initialize()
@@ -649,8 +648,6 @@
to_chat(user, "There are no more cards to draw!")
return
var/obj/item/toy/cards/singlecard/H = new/obj/item/toy/cards/singlecard(user.loc)
- if(holo)
- holo.spawned += H // track them leaving the holodeck
choice = cards[1]
H.cardname = choice
H.parentdeck = src
diff --git a/code/game/turfs/change_turf.dm b/code/game/turfs/change_turf.dm
index a8567072f56b..07976f05631f 100644
--- a/code/game/turfs/change_turf.dm
+++ b/code/game/turfs/change_turf.dm
@@ -255,10 +255,12 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list(
if(flags_1 & INITIALIZED_1)
stack_trace("CHANGETURF_SKIP was used in a PlaceOnTop call for a turf that's initialized. This is a mistake. [src]([type])")
assemble_baseturfs()
+
+ if(!length(baseturfs))
+ baseturfs = list(baseturfs)
+
if(fake_turf_type)
if(!new_baseturfs) // If no baseturfs list then we want to create one from the turf type
- if(!length(baseturfs))
- baseturfs = list(baseturfs)
var/list/old_baseturfs = baseturfs.Copy()
if(!istype(src, /turf/closed))
old_baseturfs += type
@@ -269,25 +271,23 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list(
// The old baseturfs are put underneath, and we sort out the unwanted ones
newT.baseturfs = baseturfs_string_list(old_baseturfs + (newT.baseturfs - GLOB.blacklisted_automated_baseturfs), newT)
return newT
- if(!length(baseturfs))
- baseturfs = list(baseturfs)
- if(!istype(src, /turf/closed))
- new_baseturfs = list(type) + new_baseturfs
- baseturfs = baseturfs_string_list(baseturfs + new_baseturfs, src)
- return ChangeTurf(fake_turf_type, null, flags)
- if(!length(baseturfs))
- baseturfs = list(baseturfs)
- if(!istype(src, /turf/closed))
- baseturfs = baseturfs_string_list(baseturfs + type, src)
- var/turf/change_type
- if(length(new_baseturfs))
- change_type = new_baseturfs[new_baseturfs.len]
- new_baseturfs.len--
- if(new_baseturfs.len)
+ else
+ if(!istype(src, /turf/closed))
+ new_baseturfs = list(type) + new_baseturfs
baseturfs = baseturfs_string_list(baseturfs + new_baseturfs, src)
+ return ChangeTurf(fake_turf_type, null, flags)
else
- change_type = new_baseturfs
- return ChangeTurf(change_type, null, flags)
+ if(!istype(src, /turf/closed))
+ baseturfs = baseturfs_string_list(baseturfs + type, src)
+ var/turf/change_type
+ if(length(new_baseturfs))
+ change_type = new_baseturfs[new_baseturfs.len]
+ new_baseturfs.len--
+ if(new_baseturfs.len)
+ baseturfs = baseturfs_string_list(baseturfs + new_baseturfs, src)
+ else
+ change_type = new_baseturfs
+ return ChangeTurf(change_type, null, flags)
// Copy an existing turf and put it on top
// Returns the new turf
diff --git a/code/game/turfs/open/floor/reinf_floor.dm b/code/game/turfs/open/floor/reinf_floor.dm
index 04f005417eb0..68a96846adbb 100644
--- a/code/game/turfs/open/floor/reinf_floor.dm
+++ b/code/game/turfs/open/floor/reinf_floor.dm
@@ -3,7 +3,6 @@
name = "reinforced floor"
desc = "Extremely sturdy."
icon_state = "engine"
- holodeck_compatible = TRUE
thermal_conductivity = 0.025
heat_capacity = INFINITY
floor_tile = /obj/item/stack/sheet/metal
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index ca5a6fe3fd25..4202be74b347 100644
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -12,7 +12,7 @@ GLOBAL_LIST_EMPTY(created_baseturf_lists)
// In class definition like here it should always be a single type.
// A list will be created in initialization that figures out the baseturf's baseturf etc.
// In the case of a list it is sorted from bottom layer to top.
- // This shouldn't be modified directly, use the helper procs.
+ // This shouldn't be modified directly; use the helper procs, as many baseturf lists are shared between turfs.
var/list/baseturfs = /turf/baseturf_bottom
/// How hot the turf is, in kelvin
@@ -73,9 +73,6 @@ GLOBAL_LIST_EMPTY(created_baseturf_lists)
/// Used to stop radiation from travelling across virtual z-levels such as transit zones and planetary encounters.
var/rad_fullblocker = FALSE
- ///the holodeck can load onto this turf if TRUE
- var/holodeck_compatible = FALSE
-
hitsound_volume = 90
/turf/vv_edit_var(var_name, new_value)
@@ -388,7 +385,11 @@ GLOBAL_LIST_EMPTY(created_baseturf_lists)
if(!AM.zfalling)
zFall(AM)
-// A proc in case it needs to be recreated or badmins want to change the baseturfs
+// Initializes the baseturfs list, given an optional "fake_baseturf_type".
+// If "fake_baseturf_type" is a list, then this turf's baseturfs are set to that list.
+// Otherwise, if "fake_baseturf_type" is non-null, it is used as the top of the baseturf stack.
+// If no fake_baseturf_type is passed, and the current turf's baseturfs variable is not a list,
+// baseturfs are initialized using the intial baseturfs variable as the top of the baseturf stack.
/turf/proc/assemble_baseturfs(turf/fake_baseturf_type)
var/turf/current_target
if(fake_baseturf_type)
diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm
deleted file mode 100644
index e6a1c90ede6e..000000000000
--- a/code/modules/holodeck/computer.dm
+++ /dev/null
@@ -1,414 +0,0 @@
-/*
-Map Template Holodeck
-
-Holodeck finds the location of mapped_start_area and loads offline_program in it on LateInitialize. It then loads the programs that have the
-same holodeck_access flag as it (e.g. the station holodeck has the holodeck_access flag STATION_HOLODECK, and it loads all programs with this
-flag). These program templates are then given to Holodeck.js in the form of program_cache and emag_programs. when a user selects a program the
-ui calls load_program() with the id of the selected program.
-load_program() -> map_template/load() on map_template/holodeck.
-
-holodeck map templates:
-1. have an update_blacklist that doesnt allow placing on non holofloors (except for engine floors so you can repair it)
-2. has should_place_on_top = FALSE, so that the baseturfs list doesnt pull a kilostation oom crash
-3. has returns_created = TRUE, so that SSatoms gives the map template a list of spawned atoms
-all the fancy flags and shit are added to holodeck objects in finish_spawn()
-
-Easiest way to add new holodeck programs:
-1. Define new map template datums in code/modules/holodeck/holodeck_map_templates, make sure they have the access flags
-of the holodeck you want them to be able to load, for the onstation holodeck the flag is STATION_HOLODECK.
-2. Create the new map templates in _maps/templates (remember theyre 9x10, and make sure they have area/noop or else it will fuck with linked)
-all turfs in holodeck programs MUST be of type /turf/open/floor/holofloor, OR /turf/open/floor/engine, or they will block future programs!
-
-Note: if youre looking at holodeck code because you want to see how returns_created is handled so that templates return a list of atoms
-created from them: make sure you handle that list correctly! Either copy them by value and delete them or reference it and handle qdel'ing
-and clear when youre done! if you dont i will use :newspaper2: on you
-*/
-
-#define HOLODECK_CD 2 SECONDS
-#define HOLODECK_DMG_CD 5 SECONDS
-
-
-/obj/machinery/computer/holodeck
- name = "holodeck control console"
- desc = "A computer used to control a nearby holodeck."
- icon_screen = "holocontrol"
- idle_power_usage = 10
- active_power_usage = 50
-
- //new vars
- ///what access type this holodeck has, used to specify programs for another holodeck that others cant load.
- var/holodeck_access = STATION_HOLODECK
-
- ///what area type this holodeck loads into. linked turns into the nearest instance of this area
- var/area/mapped_start_area = /area/holodeck/rec_center
-
- ///the currently used map template
- var/datum/map_template/holodeck/template
-
- ///bottom left corner of the loading room, used for placing
- var/turf/bottom_left
-
- ///if TRUE the holodeck is busy spawning another simulation and should immediately stop loading the newest one
- var/spawning_simulation = FALSE
-
- //old vars
-
- ///the area that this holodeck loads templates into, used for power and deleting holo objects that leave it
- var/area/holodeck/linked
-
- ///what program is loaded right now or is about to be loaded
- var/program = "holodeck_offline"
- var/last_program
-
- ///the default program loaded by this holodeck when spawned and when deactivated
- var/offline_program = "holodeck_offline"
-
- ///stores all of the unrestricted holodeck map templates that this computer has access to
- var/list/program_cache
- ///stores all of the restricted holodeck map templates that this computer has access to
- var/list/emag_programs
-
- ///subtypes of this (but not this itself) are loadable programs
- var/program_type = /datum/map_template/holodeck
-
- ///every holo object created by the holodeck goes in here to track it
- var/list/spawned = list()
- var/list/effects = list() //like above, but for holo effects
-
- ///TRUE if the holodeck is using extra power because of a program, FALSE otherwise
- var/active = FALSE
- ///increases the holodeck cooldown if TRUE, causing the holodeck to take longer to allow loading new programs
- var/damaged = FALSE
-
- //creates the timer that determines if another program can be manually loaded
- COOLDOWN_DECLARE(holodeck_cooldown)
-
-/obj/machinery/computer/holodeck/Initialize(mapload)
- ..()
- return INITIALIZE_HINT_LATELOAD
-
-/obj/machinery/computer/holodeck/LateInitialize()//from here linked is populated and the program list is generated. its also set to load the offline program
- linked = GLOB.areas_by_type[mapped_start_area]
-
- var/area/computer_area = get_area(src)
- if(istype(computer_area, /area/holodeck))
- log_mapping("Holodeck computer cannot be in a holodeck, This would cause circular power dependency.")
- qdel(src)
- return
-
- // the following is necessary for power reasons
- if(!linked)
- log_mapping("No matching holodeck area found")
- qdel(src)
- return
- else if (!offline_program)
- stack_trace("Holodeck console created without an offline program")
- qdel(src)
- return
-
- else
- linked.linked = src
- var/area/my_area = get_area(src)
- if(my_area)
- linked.power_usage = my_area.power_usage
- else
- linked.power_usage = list(AREA_USAGE_LEN)
-
- bottom_left = locate(linked.x, linked.y, z)
- COOLDOWN_START(src, holodeck_cooldown, HOLODECK_CD)
- generate_program_list()
- load_program(offline_program,TRUE)
-
-///adds all programs that this holodeck has access to, and separates the restricted and unrestricted ones
-/obj/machinery/computer/holodeck/proc/generate_program_list()
- for(var/typekey in subtypesof(program_type))
- var/datum/map_template/holodeck/program = typekey
- var/list/info_this = list("id" = initial(program.template_id), "name" = initial(program.name))
- if(initial(program.restricted) && (initial(program.access_flags) & holodeck_access))
- LAZYADD(emag_programs, list(info_this))
- else if (initial(program.access_flags) & holodeck_access)
- LAZYADD(program_cache, list(info_this))
-
-/obj/machinery/computer/holodeck/ui_interact(mob/user, datum/tgui/ui)
- ui = SStgui.try_update_ui(user, src, ui)
- if(!ui)
- ui = new(user, src, "Holodeck", name)
- ui.open()
-
-/obj/machinery/computer/holodeck/ui_data(mob/user)
- var/list/data = list()
-
- data["default_programs"] = program_cache
- if(obj_flags & EMAGGED)
- data["emagged"] = TRUE
- data["emag_programs"] = emag_programs
- data["program"] = program
- data["can_toggle_safety"] = issilicon(user) || isAdminGhostAI(user)
- return data
-
-/obj/machinery/computer/holodeck/ui_act(action, params)
- . = ..()
- if(.)
- return
- . = TRUE
- switch(action)
- if("load_program")
- var/program_to_load = params["id"]
-
- var/list/checked = program_cache.Copy()
- if (obj_flags & EMAGGED)
- checked |= emag_programs
- var/valid = FALSE //dont tell security about this
-
- for (var/prog in checked)//checks if program_to_load is any one of the loadable programs, if it isnt then it rejects it
- var/list/check_list = prog
- if (check_list["id"] == program_to_load)
- valid = TRUE
- break
- if (!valid)
- return FALSE
- //load the map_template that program_to_load represents
- if(program_to_load)
- load_program(program_to_load)
- if("safety")
- if((obj_flags & EMAGGED) && program)
- emergency_shutdown()
- nerf(obj_flags & EMAGGED,FALSE)
- obj_flags ^= EMAGGED
- say("Safeties reset. Restarting...")
-
-///this is what makes the holodeck not spawn anything on broken tiles (space and non engine plating / non holofloors)
-/datum/map_template/holodeck/update_blacklist(turf/placement, list/input_blacklist)
- for (var/_turf in get_affected_turfs(placement))
- var/turf/possible_blacklist = _turf
- if (possible_blacklist.holodeck_compatible)
- continue
- input_blacklist[possible_blacklist] = TRUE
-
-///loads the template whose id string it was given ("offline_program" loads datum/map_template/holodeck/offline)
-/obj/machinery/computer/holodeck/proc/load_program(map_id, force = FALSE, add_delay = TRUE)
- if (program == map_id)
- return
-
- if (is_operational)//load_program is called once with a timer (in toggle_power) we dont want this to load anything if its off
- map_id = offline_program
- force = TRUE
-
- if ((!COOLDOWN_FINISHED(src, holodeck_cooldown) && !force) || spawning_simulation)
- say("ERROR. Recalibrating projection apparatus.")
- return
-
- if (add_delay)
- COOLDOWN_START(src, holodeck_cooldown, (damaged ? HOLODECK_CD + HOLODECK_DMG_CD : HOLODECK_CD))
- if (damaged && floorcheck())
- damaged = FALSE
-
- spawning_simulation = TRUE
- active = (map_id != offline_program)
- use_power = active + IDLE_POWER_USE
- program = map_id
-
- //clear the items from the previous program
- for (var/_item in spawned)
- var/obj/holo_item = _item
- derez(holo_item)
-
- for (var/_effect in effects)
- var/obj/effect/holodeck_effect/holo_effect = _effect
- effects -= holo_effect
- holo_effect.deactivate(src)
-
- //makes sure that any time a holoturf is inside a baseturf list (e.g. if someone put a wall over it) its set to the OFFLINE turf
- //so that you cant bring turfs from previous programs into other ones (like putting the plasma burn turf into lounge for example)
- for (var/turf/closed/holo_turf in linked)
- for (var/_baseturf in holo_turf.baseturfs)
- if (ispath(_baseturf, /turf/open/floor/holofloor))
- holo_turf.baseturfs -= _baseturf
- holo_turf.baseturfs += /turf/open/floor/holofloor/plating
-
- template = SSmapping.holodeck_templates[map_id]
- template.load(bottom_left) //this is what actually loads the holodeck simulation into the map
-
- spawned = template.created_atoms //populate the spawned list with the atoms belonging to the holodeck
-
- nerf(!(obj_flags & EMAGGED))
- finish_spawn()
-
-///finalizes objects in the spawned list
-/obj/machinery/computer/holodeck/proc/finish_spawn()
- //this is used for holodeck effects (like spawners). otherwise they dont do shit
- //holo effects are taken out of the spawned list and added to the effects list
- //turfs and overlay objects are taken out of the spawned list
- //objects get resistance flags added to them
- for (var/_atom in spawned)
- var/atom/atoms = _atom
-
- if (isturf(atoms) || istype(atoms, /obj/effect/overlay/vis)) //ssatoms
- spawned -= atoms
- continue
-
- atoms.flags_1 |= HOLOGRAM_1
- RegisterSignal(atoms, COMSIG_PARENT_PREQDELETED, PROC_REF(remove_from_holo_lists))
-
- if (isholoeffect(atoms))//activates holo effects and transfers them from the spawned list into the effects list
- var/obj/effect/holodeck_effect/holo_effect = atoms
- effects += holo_effect
- spawned -= holo_effect
- var/atom/active_effect = holo_effect.activate(src)
- if(istype(active_effect) || islist(active_effect))
- spawned += active_effect // we want mobs or objects spawned via holoeffects to be tracked as objects
- continue
-
- if (isobj(atoms))
- var/obj/holo_object = atoms
- holo_object.resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
-
- if (isstructure(holo_object))
- holo_object.flags_1 |= NODECONSTRUCT_1
- continue
-
- if (ismachinery(holo_object))
- var/obj/machinery/machines = holo_object
- machines.flags_1 |= NODECONSTRUCT_1
- machines.power_change()
-
- if(istype(machines, /obj/machinery/button))
- var/obj/machinery/button/buttons = machines
- buttons.setup_device()
- spawning_simulation = FALSE
-
-///this qdels holoitems that should no longer exist for whatever reason
-/obj/machinery/computer/holodeck/proc/derez(obj/object, silent = TRUE, forced = FALSE)
- if(!object)
- return
-
- spawned -= object
- UnregisterSignal(object, COMSIG_PARENT_PREQDELETED)
- var/turf/target_turf = get_turf(object)
- for(var/c in object) //make sure that things inside of a holoitem are moved outside before destroying it
- var/atom/movable/object_contents = c
- object_contents.forceMove(target_turf)
-
- if(!silent)
- visible_message("[object] fades away!")
-
- qdel(object)
-
-/obj/machinery/computer/holodeck/proc/remove_from_holo_lists(datum/to_remove, _forced)
- spawned -= to_remove
- UnregisterSignal(to_remove, COMSIG_PARENT_PREQDELETED)
-
-/obj/machinery/computer/holodeck/process()
- if(damaged && prob(10))
- for(var/turf/T in linked)
- if(prob(5))
- do_sparks(2, 1, T)
- return
- . = ..()
- if(!. || program == offline_program)//we dont need to scan the holodeck if the holodeck is offline
- return
-
- if(!floorcheck()) //if any turfs in the floor of the holodeck are broken
- emergency_shutdown()
- damaged = TRUE
- visible_message("The holodeck overloads!")
- for(var/turf/holo_turf in linked)
- if(prob(30))
- do_sparks(2, 1, holo_turf)
- SSexplosions.lowturf += holo_turf
- holo_turf.hotspot_expose(1000,500,1)
-
- if(!(obj_flags & EMAGGED))
- for(var/item in spawned)
- if(!(get_turf(item) in linked))
- derez(item)
- for(var/_effect in effects)
- var/obj/effect/holodeck_effect/holo_effect = _effect
- holo_effect.tick()
- active_power_usage = 50 + spawned.len * 3 + effects.len * 5
-
-/obj/machinery/computer/holodeck/proc/toggle_power(toggleOn = FALSE)
- if(active == toggleOn)
- return
-
- if(toggleOn)
- if(last_program && (last_program != offline_program))
- addtimer(CALLBACK(src, PROC_REF(load_program), last_program, TRUE), 25)
- active = TRUE
- else
- last_program = program
- load_program(offline_program, TRUE)
- active = FALSE
-
-/obj/machinery/computer/holodeck/power_change()
- . = ..()
- INVOKE_ASYNC(src, PROC_REF(toggle_power), !machine_stat)
-
-///shuts down the holodeck and force loads the offline_program
-/obj/machinery/computer/holodeck/proc/emergency_shutdown()
- last_program = program
- active = FALSE
- load_program(offline_program, TRUE)
-
-///returns TRUE if the entire floor of the holodeck is intact, returns FALSE if any are broken
-/obj/machinery/computer/holodeck/proc/floorcheck()
- for(var/turf/holo_floor in linked)
- if(isspaceturf(holo_floor))
- return FALSE
- if(!holo_floor.intact)
- return FALSE
- return TRUE
-
-///changes all weapons in the holodeck to do stamina damage if set
-/obj/machinery/computer/holodeck/proc/nerf(nerf_this, is_loading = TRUE)
- if (!nerf_this && is_loading)
- return
- for(var/obj/item/to_be_nerfed in spawned)
- to_be_nerfed.damtype = nerf_this ? STAMINA : initial(to_be_nerfed.damtype)
- for(var/to_be_nerfed in effects)
- var/obj/effect/holodeck_effect/holo_effect = to_be_nerfed
- holo_effect.safety(nerf_this)
-
-/obj/machinery/computer/holodeck/emag_act(mob/user)
- if(obj_flags & EMAGGED)
- return
- if(!LAZYLEN(emag_programs))
- to_chat(user, "[src] does not seem to have a card swipe port. It must be an inferior model.")
- return
- playsound(src, "sparks", 75, TRUE)
- obj_flags |= EMAGGED
- to_chat(user, "You vastly increase projector power and override the safety and security protocols.")
- say("Warning. Automatic shutoff and derezzing protocols have been corrupted. Please call Nanotrasen maintenance and do not use the simulator.")
- log_game("[key_name(user)] emagged the Holodeck Control Console")
- nerf(!(obj_flags & EMAGGED),FALSE)
-
-/obj/machinery/computer/holodeck/emp_act(severity)
- . = ..()
- if(. & EMP_PROTECT_SELF)
- return
- emergency_shutdown()
-
-/obj/machinery/computer/holodeck/ex_act(severity, target)
- emergency_shutdown()
- return ..()
-
-/obj/machinery/computer/holodeck/Destroy()
- emergency_shutdown()
- if(linked)
- linked.linked = null
- linked.power_usage = list(AREA_USAGE_LEN)
- return ..()
-
-/obj/machinery/computer/holodeck/blob_act(obj/structure/blob/B)
- emergency_shutdown()
- return ..()
-
-/obj/machinery/computer/holodeck/offstation //second holodeck if you want to add one to a ruin :flushed:
- name = "holodeck control console"
- desc = "A computer used to control a nearby holodeck."
- offline_program = "holodeck_offline"
- holodeck_access = HOLODECK_DEBUG | STATION_HOLODECK
- mapped_start_area = /area/holodeck/rec_center/offstation_one
-
-#undef HOLODECK_CD
-#undef HOLODECK_DMG_CD
diff --git a/code/modules/holodeck/holo_effect.dm b/code/modules/holodeck/holo_effect.dm
deleted file mode 100644
index 122c852fbc9a..000000000000
--- a/code/modules/holodeck/holo_effect.dm
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- The holodeck activates these shortly after the program loads,
- and deactivates them immediately before changing or disabling the holodeck.
-
- These remove snowflake code for special holodeck functions.
-*/
-/obj/effect/holodeck_effect
- icon = 'icons/hud/screen_gen.dmi'
- icon_state = "x2"
- invisibility = INVISIBILITY_ABSTRACT
-
-/obj/effect/holodeck_effect/proc/activate(obj/machinery/computer/holodeck/HC)
- return
-
-/obj/effect/holodeck_effect/proc/deactivate(obj/machinery/computer/holodeck/HC)
- qdel(src)
- return
-
-// Called by the holodeck computer as long as the program is running
-/obj/effect/holodeck_effect/proc/tick(obj/machinery/computer/holodeck/HC)
- return
-
-/obj/effect/holodeck_effect/proc/safety(active)
- return
-
-
-// Generates a holodeck-tracked card deck
-/obj/effect/holodeck_effect/cards
- icon = 'icons/obj/toy.dmi'
- icon_state = "deck_nanotrasen_full"
- var/obj/item/toy/cards/deck/deck
-
-/obj/effect/holodeck_effect/cards/activate(obj/machinery/computer/holodeck/HC)
- deck = new(loc)
- safety(!(HC.obj_flags & EMAGGED))
- deck.holo = HC
- RegisterSignal(deck, COMSIG_PARENT_QDELETING, PROC_REF(handle_card_delete))
- return deck
-
-/obj/effect/holodeck_effect/cards/proc/handle_card_delete(datum/source)
- SIGNAL_HANDLER
- deck = null
-
-/obj/effect/holodeck_effect/cards/safety(active)
- if(!deck)
- return
- if(active)
- deck.card_hitsound = null
- deck.card_force = 0
- deck.card_throwforce = 0
- deck.card_throw_speed = 3
- deck.card_throw_range = 7
- deck.card_attack_verb = list("attacked")
- else
- deck.card_hitsound = 'sound/weapons/bladeslice.ogg'
- deck.card_force = 5
- deck.card_throwforce = 10
- deck.card_throw_speed = 3
- deck.card_throw_range = 7
- deck.card_attack_verb = list("attacked", "sliced", "diced", "slashed", "cut")
-
-
-/obj/effect/holodeck_effect/sparks/activate(obj/machinery/computer/holodeck/HC)
- var/turf/T = get_turf(src)
- if(T)
- var/datum/effect_system/spark_spread/s = new
- s.set_up(3, 1, T)
- s.start()
- T.set_temperature(5000)
- T.hotspot_expose(50000,50000,1)
-
-
-
-/obj/effect/holodeck_effect/mobspawner
- var/mobtype = /mob/living/simple_animal/hostile/carp/holocarp
- var/mob/our_mob = null
-
-/obj/effect/holodeck_effect/mobspawner/activate(obj/machinery/computer/holodeck/HC)
- if(islist(mobtype))
- mobtype = pick(mobtype)
- our_mob = new mobtype(loc)
- our_mob.flags_1 |= HOLOGRAM_1
-
- // these vars are not really standardized but all would theoretically create stuff on death
- for(var/v in list("butcher_results","corpse","weapon1","weapon2","blood_volume") & our_mob.vars)
- our_mob.vars[v] = null
- RegisterSignal(our_mob, COMSIG_PARENT_QDELETING, PROC_REF(handle_mob_delete))
- return our_mob
-
-/obj/effect/holodeck_effect/mobspawner/deactivate(obj/machinery/computer/holodeck/HC)
- if(our_mob)
- HC.derez(our_mob)
- qdel(src)
-
-/obj/effect/holodeck_effect/mobspawner/proc/handle_mob_delete(datum/source)
- SIGNAL_HANDLER
- our_mob = null
-
-/obj/effect/holodeck_effect/mobspawner/pet
- mobtype = list(
- /mob/living/simple_animal/butterfly, /mob/living/simple_animal/chick/holo,
- /mob/living/simple_animal/pet/cat, /mob/living/simple_animal/pet/cat/kitten,
- /mob/living/simple_animal/pet/dog/corgi, /mob/living/simple_animal/pet/dog/corgi/puppy,
- /mob/living/simple_animal/pet/dog/pug, /mob/living/simple_animal/pet/fox)
-
-/obj/effect/holodeck_effect/mobspawner/bee
- mobtype = /mob/living/simple_animal/hostile/poison/bees/toxin
-
-/obj/effect/holodeck_effect/mobspawner/monkey
- mobtype = /mob/living/simple_animal/holodeck_monkey
-
-/obj/effect/holodeck_effect/mobspawner/penguin
- mobtype = /mob/living/simple_animal/pet/penguin/emperor
-
-/obj/effect/holodeck_effect/mobspawner/penguin/Initialize()
- if(prob(1))
- mobtype = /mob/living/simple_animal/pet/penguin/emperor/shamebrero
- return ..()
-
-/obj/effect/holodeck_effect/mobspawner/penguin_baby
- mobtype = /mob/living/simple_animal/pet/penguin/baby
diff --git a/code/modules/holodeck/holodeck_map_templates.dm b/code/modules/holodeck/holodeck_map_templates.dm
deleted file mode 100644
index 2f4a790a3366..000000000000
--- a/code/modules/holodeck/holodeck_map_templates.dm
+++ /dev/null
@@ -1,198 +0,0 @@
-/datum/map_template/holodeck
- var/template_id
- var/description
- var/access_flags //bitflags representing what holodeck is allowed to access them
- var/restricted = FALSE
- var/datum/parsed_map/lastparsed
-
- should_place_on_top = FALSE
- returns_created_atoms = TRUE
- keep_cached_map = TRUE
-
- var/obj/machinery/computer/holodeck/linked
-
-/datum/map_template/holodeck/offline
- name = "Holodeck - Offline"
- template_id = "holodeck_offline"
- description = "benis"
- mappath = "_maps/templates/holodeck_offline.dmm"
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/emptycourt
- name = "Holodeck - Empty Court"
- template_id = "holodeck_emptycourt"
- description = "benis"
- mappath = "_maps/templates/holodeck_emptycourt.dmm"
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/dodgeball
- name = "Holodeck - Dodgeball Court"
- template_id = "holodeck_dodgeball"
- description = "benis"
- mappath = "_maps/templates/holodeck_dodgeball.dmm"
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/basketball
- name = "Holodeck - Basketball Court"
- template_id = "holodeck_basketball"
- description = "benis"
- mappath = "_maps/templates/holodeck_basketball.dmm"
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/thunderdome
- name = "Holodeck - Thunderdome Arena"
- template_id = "holodeck_thunderdome"
- description = "benis"
- mappath = "_maps/templates/holodeck_thunderdome.dmm"
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/beach
- name = "Holodeck - Beach"
- template_id = "holodeck_beach"
- description = "benis"
- mappath = "_maps/templates/holodeck_beach.dmm"
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/lounge
- name = "Holodeck - Lounge"
- template_id = "holodeck_lounge"
- description = "benis"
- mappath = "_maps/templates/holodeck_lounge.dmm"
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/petpark
- name = "Holodeck - Pet Park"
- template_id = "holodeck_petpark"
- description = "benis"
- mappath = "_maps/templates/holodeck_petpark.dmm"
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/firingrange
- name = "Holodeck - Firing Range"
- template_id = "holodeck_firingrange"
- description = "benis"
- mappath = "_maps/templates/holodeck_firingrange.dmm"
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/anime_school
- name = "Holodeck - Anime School"
- template_id = "holodeck_animeschool"
- description = "benis"
- mappath = "_maps/templates/holodeck_animeschool.dmm"
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/chapelcourt
- name = "Holodeck - Chapel Courtroom"
- template_id = "holodeck_chapelcourt"
- description = "benis"
- mappath = "_maps/templates/holodeck_chapelcourt.dmm"
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/spacechess
- name = "Holodeck - Space Chess"
- template_id = "holodeck_spacechess"
- description = "benis"
- mappath = "_maps/templates/holodeck_spacechess.dmm"
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/spacecheckers
- name = "Holodeck - Space Checkers"
- template_id = "holodeck_spacecheckers"
- description = "benis"
- mappath = "_maps/templates/holodeck_spacecheckers.dmm"
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/kobayashi
- name = "Holodeck - Kobayashi Maru"
- template_id = "holodeck_kobayashi"
- description = "benis"
- mappath = "_maps/templates/holodeck_kobayashi.dmm"
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/winterwonderland
- name = "Holodeck - Winter Wonderland"
- template_id = "holodeck_winterwonderland"
- description = "benis"
- mappath = "_maps/templates/holodeck_winterwonderland.dmm"
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/photobooth
- name = "Holodeck - Photobooth"
- template_id = "holodeck_photobooth"
- description = "benis"
- mappath = "_maps/templates/holodeck_photobooth.dmm"
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/skatepark
- name = "Holodeck - Skatepark"
- template_id = "holodeck_skatepark"
- description = "benis"
- mappath = "_maps/templates/holodeck_skatepark.dmm"
- access_flags = STATION_HOLODECK
-
-//bad evil no good programs
-
-/datum/map_template/holodeck/medicalsim
- name = "Holodeck - Emergency Medical"
- template_id = "holodeck_medicalsim"
- description = "benis"
- mappath = "_maps/templates/holodeck_medicalsim.dmm"
- restricted = TRUE
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/thunderdome1218
- name = "Holodeck - 1218 AD"
- template_id = "holodeck_thunderdome1218"
- description = "benis"
- mappath = "_maps/templates/holodeck_thunderdome1218.dmm"
- restricted = TRUE
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/burntest
- name = "Holodeck - Atmospheric Burn Test"
- template_id = "holodeck_burntest"
- description = "benis"
- mappath = "_maps/templates/holodeck_burntest.dmm"
- restricted = TRUE
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/wildlifesim
- name = "Holodeck - Wildlife Simulation"
- template_id = "holodeck_wildlifesim"
- description = "benis"
- mappath = "_maps/templates/holodeck_wildlifesim.dmm"
- restricted = TRUE
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/holdoutbunker
- name = "Holodeck - Holdout Bunker"
- template_id = "holodeck_holdoutbunker"
- description = "benis"
- mappath = "_maps/templates/holodeck_holdoutbunker.dmm"
- restricted = TRUE
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/anthophillia
- name = "Holodeck - Anthophillia"
- template_id = "holodeck_anthophillia"
- description = "benis"
- mappath = "_maps/templates/holodeck_anthophillia.dmm"
- restricted = TRUE
- access_flags = STATION_HOLODECK
-
-/datum/map_template/holodeck/refuelingstation
- name = "Holodeck - Refueling Station"
- template_id = "holodeck_refuelingstation"
- description = "benis"
- mappath = "_maps/templates/holodeck_refuelingstation.dmm"
- restricted = TRUE
- access_flags = STATION_HOLODECK
-
-//flag debug holodeck
-
-/datum/map_template/holodeck/gamer
- name = "Holodeck - Gamer"
- template_id = "holodeck_gamer"
- description = "benis"
- mappath = "_maps/templates/holodeck_gamer.dmm"
- access_flags = HOLODECK_DEBUG
diff --git a/code/modules/holodeck/mobs.dm b/code/modules/holodeck/mobs.dm
deleted file mode 100644
index 121989bf1e71..000000000000
--- a/code/modules/holodeck/mobs.dm
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- Mobs
-*/
-
-/mob/living/simple_animal/holodeck_monkey
- name = "monkey"
- desc = "A holographic creature fond of bananas."
- icon = 'icons/mob/monkey.dmi'
- icon_state = "monkey1"
- icon_living = "monkey1"
- icon_dead = "monkey1_dead"
- speak_emote = list("chimpers")
- emote_hear = list("chimpers.")
- emote_see = list("scratches.", "looks around.")
- speak_chance = 1
- turns_per_move = 2
- butcher_results = list()
- response_help_continuous = "pets"
- response_help_simple = "pet"
- response_disarm_continuous = "pushes aside"
- response_disarm_simple = "push aside"
- response_harm_continuous = "kicks"
- response_harm_simple = "kick"
diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm
index b69c05e34653..59e9a46341e6 100644
--- a/code/modules/holodeck/turfs.dm
+++ b/code/modules/holodeck/turfs.dm
@@ -1,6 +1,5 @@
/turf/open/floor/holofloor
icon_state = "floor"
- holodeck_compatible = TRUE
thermal_conductivity = 0
flags_1 = NONE
var/direction = SOUTH
diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm
index b3f5b1078b20..fe66d3a99836 100644
--- a/code/modules/mapping/map_template.dm
+++ b/code/modules/mapping/map_template.dm
@@ -7,7 +7,11 @@
var/datum/parsed_map/cached_map
var/keep_cached_map = FALSE
- ///if true, turfs loaded from this template are placed on top of the turfs already there, defaults to TRUE
+ /// Defaults to TRUE.
+ /// If TRUE, the baseturfs of the new turfs (ignoring baseturf_bottom and space) are added
+ /// to the top of the pre-existing baseturf lists, in accordance with the behavior of PlaceOnTop.
+ /// If FALSE, the old turfs are replaced entirely, including their baseturfs.
+ /// Note that FALSE-case behavior is altered from the original implementation, which ignored baseturfs entirely; it was intended for holodecks, which have been removed.
var/should_place_on_top = TRUE
///if true, creates a list of all atoms created by this template loading, defaults to FALSE
diff --git a/code/modules/mapping/reader.dm b/code/modules/mapping/reader.dm
index 9e12fb7d4ce7..3a8e2706d6b6 100644
--- a/code/modules/mapping/reader.dm
+++ b/code/modules/mapping/reader.dm
@@ -494,14 +494,15 @@ GLOBAL_LIST_EMPTY(map_model_default)
if(members_attributes[index] != default_list)
world.preloader_setup(members_attributes[index], members[index])
+ var/turf/new_turf_type = members[index]
// Note: we make the assertion that the last path WILL be a turf. if it isn't, this will fail.
var/old_virtual_z = crds.virtual_z
if(placeOnTop)
- instance = crds.PlaceOnTop(null, members[index], CHANGETURF_DEFER_CHANGE | (no_changeturf ? CHANGETURF_SKIP : NONE))
+ instance = crds.PlaceOnTop(null, new_turf_type, CHANGETURF_DEFER_CHANGE | (no_changeturf ? CHANGETURF_SKIP : NONE))
else if(!no_changeturf)
- instance = crds.ChangeTurf(members[index], null, CHANGETURF_DEFER_CHANGE)
+ instance = crds.ChangeTurf(new_turf_type, initial(new_turf_type.baseturfs), CHANGETURF_DEFER_CHANGE)
else
- instance = create_turf(members[index], crds , old_virtual_z)//first preloader pass
+ instance = create_turf(new_turf_type, crds , old_virtual_z)//first preloader pass
var/turf/new_turf = instance
new_turf.virtual_z = old_virtual_z //UNDER NO CIRCUMSTANCES LOOSE THIS VARIABLE
diff --git a/shiptest.dme b/shiptest.dme
index df737d985b37..86c3e10672b8 100644
--- a/shiptest.dme
+++ b/shiptest.dme
@@ -793,7 +793,6 @@
#include "code\game\area\Space_Station_13_areas.dm"
#include "code\game\area\areas\away_content.dm"
#include "code\game\area\areas\centcom.dm"
-#include "code\game\area\areas\holodeck.dm"
#include "code\game\area\areas\outpost.dm"
#include "code\game\area\areas\shuttles.dm"
#include "code\game\area\areas\ruins\_ruins.dm"
@@ -2171,11 +2170,7 @@
#include "code\modules\holiday\foreign_calendar.dm"
#include "code\modules\holiday\holidays.dm"
#include "code\modules\holodeck\area_copy.dm"
-#include "code\modules\holodeck\computer.dm"
-#include "code\modules\holodeck\holo_effect.dm"
-#include "code\modules\holodeck\holodeck_map_templates.dm"
#include "code\modules\holodeck\items.dm"
-#include "code\modules\holodeck\mobs.dm"
#include "code\modules\holodeck\turfs.dm"
#include "code\modules\hydroponics\biogenerator.dm"
#include "code\modules\hydroponics\fermenting_barrel.dm"