diff --git a/_maps/map_files/MetaStation/z2.dmm b/_maps/map_files/MetaStation/z2.dmm
index 0d5b4fdb20e..a6c9869ef7c 100644
--- a/_maps/map_files/MetaStation/z2.dmm
+++ b/_maps/map_files/MetaStation/z2.dmm
@@ -6264,10 +6264,6 @@
icon_state = "dark"
},
/area/centcom/ferry)
-"Dq" = (
-/obj/effect/landmark/ai_multicam_room,
-/turf/unsimulated/ai_visible,
-/area/ai_multicam_room)
"EE" = (
/obj/machinery/light/small,
/obj/structure/chair/comfy/shuttle{
@@ -6315,12 +6311,6 @@
icon_state = "floor4"
},
/area/shuttle/escape)
-"HX" = (
-/turf/unsimulated/ai_visible,
-/area/ai_multicam_room)
-"It" = (
-/turf/unsimulated/wall,
-/area/ai_multicam_room)
"Iz" = (
/obj/structure/chair/comfy/brown{
dir = 1
@@ -54344,27 +54334,27 @@ ab
ab
ab
ab
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -54601,27 +54591,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -54858,27 +54848,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -55115,27 +55105,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -55372,27 +55362,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -55629,27 +55619,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -55886,27 +55876,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -56143,27 +56133,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -56400,27 +56390,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -56657,27 +56647,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -56914,27 +56904,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-Dq
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -57171,27 +57161,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -57428,27 +57418,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -57685,27 +57675,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -57942,27 +57932,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -58199,27 +58189,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -58456,27 +58446,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -58713,27 +58703,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -58970,27 +58960,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -59227,27 +59217,27 @@ ab
ab
ab
ab
-It
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-HX
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
@@ -59484,27 +59474,27 @@ ab
ab
ab
ab
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
-It
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
ab
ab
ab
diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm
index 6d3c4b74c64..d5681c2e8d4 100644
--- a/_maps/map_files/cyberiad/z2.dmm
+++ b/_maps/map_files/cyberiad/z2.dmm
@@ -12398,10 +12398,6 @@
dir = 6
},
/area/syndicate_mothership/jail)
-"Qr" = (
-/obj/effect/landmark/ai_multicam_room,
-/turf/unsimulated/ai_visible,
-/area/ai_multicam_room)
"Qt" = (
/obj/machinery/poolcontroller/invisible,
/turf/unsimulated/beach/water,
@@ -12671,9 +12667,6 @@
dir = 8
},
/area/syndicate_mothership/jail)
-"Vc" = (
-/turf/unsimulated/ai_visible,
-/area/ai_multicam_room)
"Vm" = (
/obj/structure/table/wood,
/obj/item/storage/box/donkpockets,
@@ -12681,9 +12674,6 @@
icon_state = "dark"
},
/area/syndicate_mothership/jail)
-"Vz" = (
-/turf/unsimulated/wall,
-/area/ai_multicam_room)
"VA" = (
/obj/effect/decal/warning_stripes/northwest,
/turf/unsimulated/floor{
@@ -64190,27 +64180,27 @@ aN
aN
aN
aN
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -64447,27 +64437,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -64704,27 +64694,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -64961,27 +64951,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -65218,27 +65208,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -65475,27 +65465,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -65732,27 +65722,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -65989,27 +65979,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -66246,27 +66236,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -66503,27 +66493,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -66760,27 +66750,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Qr
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -67017,27 +67007,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -67274,27 +67264,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -67531,27 +67521,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -67788,27 +67778,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -68045,27 +68035,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -68302,27 +68292,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -68559,27 +68549,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -68816,27 +68806,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -69073,27 +69063,27 @@ aN
aN
aN
aN
-Vz
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vc
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
@@ -69330,27 +69320,27 @@ aN
aN
aN
aN
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
-Vz
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
aN
diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm
index 4652ee2f20b..a907a5dfc45 100644
--- a/code/_onclick/ai.dm
+++ b/code/_onclick/ai.dm
@@ -32,14 +32,6 @@
return
changeNext_click(1)
- if(multicam_on)
- var/turf/T = get_turf(A)
- if(T)
- for(var/obj/screen/movable/pic_in_pic/ai/P in T.vis_locs)
- if(P.ai == src)
- P.Click(params)
- break
-
if(control_disabled || stat)
return
diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm
index b069ff31eb7..58fd73656cb 100644
--- a/code/_onclick/hud/_defines.dm
+++ b/code/_onclick/hud/_defines.dm
@@ -153,8 +153,6 @@
#define ui_ai_take_picture "SOUTH:6,WEST+12"
#define ui_ai_view_images "SOUTH:6,WEST+13"
#define ui_ai_sensor "SOUTH:6,WEST+14"
-#define ui_ai_multicam "SOUTH+1:6,WEST+13"
-#define ui_ai_add_multicam "SOUTH+1:6,WEST+14"
// Bots
#define ui_bot_radio "EAST-1:28,SOUTH:7"
diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm
index 856f724f925..63783a04467 100644
--- a/code/_onclick/hud/ai.dm
+++ b/code/_onclick/hud/ai.dm
@@ -140,26 +140,6 @@
var/mob/living/silicon/robot/borg = usr
borg.sensor_mode()
-/obj/screen/ai/multicam
- name = "Multicamera Mode"
- icon_state = "multicam"
-
-/obj/screen/ai/multicam/Click()
- if(..())
- return
- var/mob/living/silicon/ai/AI = usr
- AI.toggle_multicam()
-
-/obj/screen/ai/add_multicam
- name = "New Camera"
- icon_state = "new_cam"
-
-/obj/screen/ai/add_multicam/Click()
- if(..())
- return
- var/mob/living/silicon/ai/AI = usr
- AI.drop_new_multicam()
-
/mob/living/silicon/ai/create_mob_hud()
if(client && !hud_used)
hud_used = new /datum/hud/ai(src)
@@ -248,16 +228,6 @@
using.screen_loc = ui_ai_sensor
static_inventory += using
-//Multicamera mode
- using = new /obj/screen/ai/multicam()
- using.screen_loc = ui_ai_multicam
- static_inventory += using
-
-//Add multicamera camera
- using = new /obj/screen/ai/add_multicam()
- using.screen_loc = ui_ai_add_multicam
- static_inventory += using
-
//Intent
using = new /obj/screen/act_intent/robot/AI()
using.icon_state = mymob.a_intent
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 58bb69355ea..a01ea315e58 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -95,7 +95,7 @@
screen_loc = ui_borg_intents
/obj/screen/act_intent/robot/AI
- screen_loc = "EAST-1:32,SOUTH:70"
+ screen_loc = "SOUTH+1:6,EAST-1:32"
/obj/screen/mov_intent
name = "run/walk toggle"
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 53db4916510..2bd990f1f85 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -108,12 +108,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
var/announce_arrivals = TRUE
var/arrivalmsg = "$name, $rank, has arrived on the station."
- var/multicam_allowed = FALSE
- var/multicam_on = FALSE
- var/obj/screen/movable/pic_in_pic/ai/master_multicam
- var/list/multicam_screens = list()
var/list/all_eyes = list()
- var/max_multicams = 6
/mob/living/silicon/ai/proc/add_ai_verbs()
verbs |= GLOB.ai_verbs_default
@@ -766,13 +761,10 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
light_cameras()
if(istype(A, /obj/machinery/camera))
current = A
- if(A != GLOB.ai_camera_room_landmark)
- end_multicam()
. = ..()
if(.)
if(!A && isturf(loc) && eyeobj)
- end_multicam()
client.eye = eyeobj
client.perspective = MOB_PERSPECTIVE
eyeobj.get_remote_view_fullscreens(src)
@@ -1360,11 +1352,6 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
/mob/living/silicon/ai/proc/camera_visibility(mob/camera/aiEye/moved_eye)
GLOB.cameranet.visibility(moved_eye, client, all_eyes)
-/mob/living/silicon/ai/forceMove(atom/destination)
- . = ..()
- if(.)
- end_multicam()
-
/mob/living/silicon/ai/handle_fire()
return
diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm
index faacf9ba359..3b6f98be205 100644
--- a/code/modules/mob/living/silicon/ai/freelook/eye.dm
+++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm
@@ -29,12 +29,10 @@
loc = T
if(use_static)
ai.camera_visibility(src)
- if(ai.client && !ai.multicam_on)
+ if(ai.client)
ai.client.eye = src
update_parallax_contents()
//Holopad
- if(ai.master_multicam)
- ai.master_multicam.refresh_view()
if(istype(ai.current, /obj/machinery/hologram/holopad))
var/obj/machinery/hologram/holopad/H = ai.current
H.move_hologram(ai, T)
@@ -66,7 +64,7 @@
/atom/proc/move_camera_by_click()
if(istype(usr, /mob/living/silicon/ai))
var/mob/living/silicon/ai/AI = usr
- if(AI.eyeobj && (AI.multicam_on || (AI.client.eye == AI.eyeobj)) && (AI.eyeobj.z == z))
+ if(AI.eyeobj && (AI.client.eye == AI.eyeobj) && (AI.eyeobj.z == z))
AI.cameraFollow = null
if(isturf(loc) || isturf(src))
AI.eyeobj.setLoc(src)
diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm
index 106eaf86d37..9f1213df282 100644
--- a/code/modules/mob/living/silicon/ai/life.dm
+++ b/code/modules/mob/living/silicon/ai/life.dm
@@ -60,7 +60,6 @@
spawn(20)
to_chat(src, "Backup battery online. Scanners, camera, and radio interface offline. Beginning fault-detection.")
- end_multicam()
sleep(50)
my_area = get_area(src)
T = get_turf(src)
diff --git a/code/modules/mob/living/silicon/ai/login.dm b/code/modules/mob/living/silicon/ai/login.dm
index 7d4244d9aec..545e1569fc1 100644
--- a/code/modules/mob/living/silicon/ai/login.dm
+++ b/code/modules/mob/living/silicon/ai/login.dm
@@ -10,6 +10,4 @@
for(var/obj/machinery/ai_status_display/O in GLOB.machines) //change status
O.mode = 1
O.emotion = "Neutral"
- if(multicam_on)
- end_multicam()
view_core()
diff --git a/code/modules/mob/living/silicon/ai/multicam.dm b/code/modules/mob/living/silicon/ai/multicam.dm
deleted file mode 100644
index d33e57ea971..00000000000
--- a/code/modules/mob/living/silicon/ai/multicam.dm
+++ /dev/null
@@ -1,260 +0,0 @@
-//Picture in picture
-
-/obj/screen/movable/pic_in_pic/ai
- var/mob/living/silicon/ai/ai
- var/mutable_appearance/highlighted_background
- var/highlighted = FALSE
- var/mob/camera/aiEye/pic_in_pic/aiEye
-
-/obj/screen/movable/pic_in_pic/ai/Initialize()
- . = ..()
- aiEye = new /mob/camera/aiEye/pic_in_pic()
- aiEye.screen = src
-
-/obj/screen/movable/pic_in_pic/ai/Destroy()
- set_ai(null)
- QDEL_NULL(aiEye)
- return ..()
-
-/obj/screen/movable/pic_in_pic/ai/Click()
- ..()
- if(ai)
- ai.select_main_multicam_window(src)
-
-/obj/screen/movable/pic_in_pic/ai/make_backgrounds()
- ..()
- highlighted_background = new /mutable_appearance()
- highlighted_background.icon = 'icons/misc/pic_in_pic.dmi'
- highlighted_background.icon_state = "background_highlight"
- highlighted_background.layer = SPACE_LAYER
-
-/obj/screen/movable/pic_in_pic/ai/add_background()
- if((width > 0) && (height > 0))
- var/matrix/M = matrix()
- M.Scale(width + 0.5, height + 0.5)
- M.Translate((width-1)/2 * world.icon_size, (height-1)/2 * world.icon_size)
- highlighted_background.transform = M
- standard_background.transform = M
- overlays += highlighted ? highlighted_background : standard_background
-
-/obj/screen/movable/pic_in_pic/ai/set_view_size(width, height, do_refresh = TRUE)
- aiEye.static_visibility_range = (round(max(width, height) / 2) + 1)
- if(ai)
- ai.camera_visibility(aiEye)
- ..()
-
-/obj/screen/movable/pic_in_pic/ai/set_view_center(atom/target, do_refresh = TRUE)
- ..()
- aiEye.setLoc(get_turf(target))
-
-/obj/screen/movable/pic_in_pic/ai/refresh_view()
- ..()
- aiEye.setLoc(get_turf(center))
-
-/obj/screen/movable/pic_in_pic/ai/proc/highlight()
- if(highlighted)
- return
- highlighted = TRUE
- overlays -= standard_background
- overlays += highlighted_background
-
-/obj/screen/movable/pic_in_pic/ai/proc/unhighlight()
- if(!highlighted)
- return
- highlighted = FALSE
- overlays -= highlighted_background
- overlays += standard_background
-
-/obj/screen/movable/pic_in_pic/ai/proc/set_ai(mob/living/silicon/ai/new_ai)
- if(ai)
- ai.multicam_screens -= src
- ai.all_eyes -= aiEye
- if(ai.master_multicam == src)
- ai.master_multicam = null
- if(ai.multicam_on)
- unshow_to(ai.client)
- ai = new_ai
- if(new_ai)
- new_ai.multicam_screens += src
- ai.all_eyes += aiEye
- if(new_ai.multicam_on)
- show_to(new_ai.client)
-
-//Turf, area, and landmark for the viewing room
-
-/turf/unsimulated/ai_visible
- name = ""
- icon = 'icons/misc/pic_in_pic.dmi'
- icon_state = "room_background"
- flags = NOJAUNT
-
-/turf/unsimulated/ai_visible/Initialize()
- . = ..()
- obscured = image(null, src, null)
-
-/area/ai_multicam_room
- name = "ai_multicam_room"
- icon_state = "ai_camera_room"
- dynamic_lighting = FALSE
- valid_territory = FALSE
- ambientsounds = list()
-
-GLOBAL_DATUM(ai_camera_room_landmark, /obj/effect/landmark/ai_multicam_room)
-
-/obj/effect/landmark/ai_multicam_room
- name = "ai camera room"
- icon = 'icons/mob/screen_gen.dmi'
- icon_state = "x"
-
-/obj/effect/landmark/ai_multicam_room/Initialize()
- . = ..()
- qdel(GLOB.ai_camera_room_landmark)
- GLOB.ai_camera_room_landmark = src
-
-/obj/effect/landmark/ai_multicam_room/Destroy()
- if(GLOB.ai_camera_room_landmark == src)
- GLOB.ai_camera_room_landmark = null
- return ..()
-
-//Dummy camera eyes
-
-/mob/camera/aiEye/pic_in_pic
- name = "Secondary AI Eye"
- var/obj/screen/movable/pic_in_pic/ai/screen
- var/list/cameras_telegraphed = list()
- var/telegraph_cameras = TRUE
- var/telegraph_range = 7
-
-/mob/camera/aiEye/pic_in_pic/GetViewerClient()
- if(screen && screen.ai)
- return screen.ai.client
-
-/mob/camera/aiEye/pic_in_pic/setLoc(turf/T)
- T = get_turf(T)
- forceMove(T)
- if(screen && screen.ai)
- screen.ai.camera_visibility(src)
- else
- GLOB.cameranet.visibility(src)
- update_camera_telegraphing()
-
-/mob/camera/aiEye/pic_in_pic/proc/update_camera_telegraphing()
- if(!telegraph_cameras)
- return
- var/list/obj/machinery/camera/add = list()
- var/list/obj/machinery/camera/remove = list()
- var/list/obj/machinery/camera/visible = list()
- for(var/VV in visibleCameraChunks)
- var/datum/camerachunk/CC = VV
- for(var/V in CC.cameras)
- var/obj/machinery/camera/C = V
- if (!C.can_use() || (get_dist(C, src) > telegraph_range))
- continue
- visible |= C
-
- add = visible - cameras_telegraphed
- remove = cameras_telegraphed - visible
-
- for(var/V in remove)
- var/obj/machinery/camera/C = V
- if(QDELETED(C))
- continue
- cameras_telegraphed -= C
- C.in_use_lights--
- C.update_icon()
- for(var/V in add)
- var/obj/machinery/camera/C = V
- if(QDELETED(C))
- continue
- cameras_telegraphed |= C
- C.in_use_lights++
- C.update_icon()
-
-/mob/camera/aiEye/pic_in_pic/proc/disable_camera_telegraphing()
- telegraph_cameras = FALSE
- for(var/V in cameras_telegraphed)
- var/obj/machinery/camera/C = V
- if(QDELETED(C))
- continue
- C.in_use_lights--
- C.update_icon()
- cameras_telegraphed.Cut()
-
-/mob/camera/aiEye/pic_in_pic/Destroy()
- disable_camera_telegraphing()
- return ..()
-
-//AI procs
-
-/mob/living/silicon/ai/proc/drop_new_multicam(silent = FALSE)
- if(!multicam_allowed)
- if(!silent)
- to_chat(src, "This action is currently disabled. Contact an administrator to enable this feature.")
- return
- if(!eyeobj)
- return
- if(multicam_screens.len >= max_multicams)
- if(!silent)
- to_chat(src, "Cannot place more than [max_multicams] multicamera windows.")
- return
- var/obj/screen/movable/pic_in_pic/ai/C = new /obj/screen/movable/pic_in_pic/ai()
- C.set_view_size(3, 3, FALSE)
- C.set_view_center(get_turf(eyeobj))
- C.set_ai(src)
- if(!silent)
- to_chat(src, "Added new multicamera window.")
- return C
-
-/mob/living/silicon/ai/proc/toggle_multicam()
- if(!multicam_allowed)
- to_chat(src, "This action is currently disabled. Contact an administrator to enable this feature.")
- return
- if(multicam_on)
- end_multicam()
- else
- start_multicam()
-
-/mob/living/silicon/ai/proc/start_multicam()
- if(multicam_on || aiRestorePowerRoutine || !isturf(loc))
- return
- if(!GLOB.ai_camera_room_landmark)
- to_chat(src, "This function is not available at this time.")
- return
- multicam_on = TRUE
- refresh_multicam()
- to_chat(src, "Multiple-camera viewing mode activated.")
-
-/mob/living/silicon/ai/proc/refresh_multicam()
- reset_perspective(GLOB.ai_camera_room_landmark)
- if(client)
- for(var/V in multicam_screens)
- var/obj/screen/movable/pic_in_pic/P = V
- P.show_to(client)
-
-/mob/living/silicon/ai/proc/end_multicam()
- if(!multicam_on)
- return
- multicam_on = FALSE
- select_main_multicam_window(null)
- if(client)
- for(var/V in multicam_screens)
- var/obj/screen/movable/pic_in_pic/P = V
- P.unshow_to(client)
- reset_perspective()
- to_chat(src, "Multiple-camera viewing mode deactivated.")
-
-
-/mob/living/silicon/ai/proc/select_main_multicam_window(obj/screen/movable/pic_in_pic/ai/P)
- if(master_multicam == P)
- return
-
- if(master_multicam)
- master_multicam.set_view_center(get_turf(eyeobj), FALSE)
- master_multicam.unhighlight()
- master_multicam = null
-
- if(P)
- P.highlight()
- eyeobj.setLoc(get_turf(P.center))
- P.set_view_center(eyeobj)
- master_multicam = P
diff --git a/paradise.dme b/paradise.dme
index d1a011e86b2..5c9729e83ec 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -1904,7 +1904,6 @@
#include "code\modules\mob\living\silicon\ai\life.dm"
#include "code\modules\mob\living\silicon\ai\login.dm"
#include "code\modules\mob\living\silicon\ai\logout.dm"
-#include "code\modules\mob\living\silicon\ai\multicam.dm"
#include "code\modules\mob\living\silicon\ai\say.dm"
#include "code\modules\mob\living\silicon\ai\update_status.dm"
#include "code\modules\mob\living\silicon\ai\freelook\cameranet.dm"