diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index 9805599a28..da7410fd46 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -317,7 +317,7 @@
dir = 8;
icon_state = "diagonalWall3"
},
-/area/space)
+/area/security/prison)
"aaV" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/pod_2)
@@ -327,7 +327,7 @@
dir = 1;
icon_state = "diagonalWall3"
},
-/area/space)
+/area/security/prison)
"aaY" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -22505,7 +22505,7 @@
req_access_txt = "10"
},
/turf/open/floor/plating,
-/area/engine/engineering)
+/area/maintenance/starboard)
"aVh" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -27482,7 +27482,7 @@
dir = 4
},
/turf/open/floor/plating,
-/area/janitor)
+/area/maintenance/central)
"bfo" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -34724,7 +34724,7 @@
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
-/area/engine/break_room)
+/area/maintenance/starboard)
"btA" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
@@ -36212,7 +36212,7 @@
dir = 8
},
/turf/open/floor/plating,
-/area/crew_quarters/heads/captain/private)
+/area/maintenance/central)
"bwH" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 4
@@ -45468,7 +45468,7 @@
dir = 4
},
/turf/open/floor/plating,
-/area/gateway)
+/area/maintenance/central)
"bQy" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -46700,7 +46700,7 @@
icon_state = "4-8"
},
/turf/open/floor/plating,
-/area/crew_quarters/kitchen)
+/area/maintenance/starboard)
"bTa" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -52046,7 +52046,7 @@
req_one_access_txt = "0"
},
/turf/open/floor/plating,
-/area/hydroponics)
+/area/maintenance/starboard/aft)
"cdV" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -55242,7 +55242,7 @@
},
/obj/structure/disposalpipe/segment,
/turf/open/space,
-/area/space)
+/area/maintenance/disposal/incinerator)
"ckD" = (
/obj/machinery/doorButtons/access_button{
idDoor = "incinerator_airlock_exterior";
@@ -56225,7 +56225,7 @@
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
-/area/science/research)
+/area/maintenance/starboard/aft)
"cmN" = (
/obj/machinery/door/firedoor,
/obj/structure/disposalpipe/segment,
@@ -58078,7 +58078,7 @@
req_access_txt = "40"
},
/turf/open/floor/plating,
-/area/crew_quarters/heads/cmo)
+/area/maintenance/aft)
"cqq" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -58752,7 +58752,7 @@
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
-/area/medical/chemistry)
+/area/maintenance/aft)
"crF" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/item/device/radio/intercom{
@@ -59473,7 +59473,7 @@
dir = 4
},
/turf/open/floor/plating,
-/area/science/research)
+/area/maintenance/aft)
"csV" = (
/obj/structure/disposalpipe/junction{
dir = 8
@@ -59789,7 +59789,7 @@
},
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
-/area/medical/genetics)
+/area/maintenance/aft)
"ctD" = (
/obj/structure/sign/directions/evac,
/turf/closed/wall,
@@ -59848,7 +59848,7 @@
req_one_access_txt = "7;47;29"
},
/turf/open/floor/plating,
-/area/science/misc_lab/range)
+/area/maintenance/aft)
"ctN" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/light{
@@ -60841,7 +60841,7 @@
},
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
-/area/science/robotics/mechbay)
+/area/maintenance/aft)
"cvJ" = (
/obj/structure/sign/nosmoking_2{
pixel_x = -29
@@ -67721,7 +67721,7 @@
dir = 1
},
/turf/open/floor/plating,
-/area/science/lab)
+/area/maintenance/aft)
"cJn" = (
/obj/structure/cable/yellow{
icon_state = "2-4"
@@ -78755,7 +78755,7 @@
pixel_x = 32
},
/turf/open/floor/plating,
-/area/science/research)
+/area/maintenance/starboard/aft)
"diI" = (
/obj/item/poster/random_contraband,
/obj/item/poster/random_contraband,
@@ -79516,7 +79516,7 @@
req_access_txt = "12"
},
/turf/open/floor/plating,
-/area/crew_quarters/locker)
+/area/maintenance/starboard/fore)
"dtP" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -80743,6 +80743,20 @@
/obj/effect/spawner/structure/window/plasma/reinforced,
/turf/open/floor/plating,
/area/engine/atmos)
+"EDx" = (
+/turf/open/space,
+/turf/closed/wall/mineral/plastitanium{
+ dir = 8;
+ icon_state = "diagonalWall3"
+ },
+/area/hallway/secondary/entry)
+"EDy" = (
+/turf/open/space,
+/turf/closed/wall/mineral/plastitanium{
+ dir = 1;
+ icon_state = "diagonalWall3"
+ },
+/area/hallway/secondary/entry)
(1,1,1) = {"
aaa
@@ -89844,8 +89858,8 @@ aaa
aaa
aaa
aaa
-aaU
-blx
+EDx
+aRA
aRA
aRA
aRA
@@ -90872,13 +90886,8 @@ aaa
aaa
aaf
aaa
-<<<<<<< HEAD
-aaX
-blx
-=======
-EDx
+EDy
aRA
->>>>>>> 84f0306... Cleans up floors.dmi a bit and adds new turf decals. (#32860)
aRA
aRA
aRA
@@ -100955,7 +100964,7 @@ coE
cpZ
coB
csp
-ctp
+csr
duH
dyg
ceu
@@ -118598,7 +118607,7 @@ aaa
aaa
aaf
aaa
-blx
+acP
adl
bih
adl
@@ -118855,11 +118864,7 @@ aaa
aaa
aaf
aaa
-<<<<<<< HEAD
-blx
-=======
-EDB
->>>>>>> 84f0306... Cleans up floors.dmi a bit and adds new turf decals. (#32860)
+acP
adl
aQf
adl
diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm
index d1c6ffcd44..c0ed0a47cf 100644
--- a/_maps/map_files/PubbyStation/PubbyStation.dmm
+++ b/_maps/map_files/PubbyStation/PubbyStation.dmm
@@ -372,7 +372,7 @@
"acF" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/on,
/turf/open/floor/plating/airless,
-/area/space)
+/area/ai_monitored/turret_protected/AIsatextAS)
"acG" = (
/obj/structure/cable/yellow{
icon_state = "2-4"
@@ -35497,7 +35497,7 @@
layer = 2.9
},
/turf/open/floor/plating/airless,
-/area/space/nearstation)
+/area/chapel/dock)
"bGH" = (
/obj/structure/window/reinforced,
/turf/open/space,
@@ -43480,7 +43480,7 @@
dir = 1
},
/turf/open/floor/plating/airless,
-/area/space)
+/area/engine/atmos)
"bZL" = (
/obj/machinery/atmospherics/pipe/simple,
/obj/structure/grille,
@@ -45191,7 +45191,7 @@
dir = 1
},
/turf/open/floor/plating/airless,
-/area/space/nearstation)
+/area/maintenance/disposal/incinerator)
"ceB" = (
/obj/structure/window/reinforced/fulltile,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -47280,7 +47280,7 @@
dir = 4
},
/turf/open/floor/plating/airless,
-/area/space)
+/area/science/mixing)
"cly" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -51246,6 +51246,18 @@
"cCA" = (
/turf/closed/wall,
/area/science/lab)
+"cCF" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+ dir = 1
+ },
+/turf/open/floor/plating/airless,
+/area/maintenance/department/chapel/monastery)
+"cCG" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+ dir = 4
+ },
+/turf/open/floor/plating/airless,
+/area/tcommsat/computer)
(1,1,1) = {"
aaa
@@ -66344,7 +66356,7 @@ cvX
cke
cky
cld
-ceA
+cCF
aaa
aaa
aaa
@@ -67379,10 +67391,10 @@ cfN
cfN
cfN
aaa
-cxG
-cxG
-cxG
-cxG
+aaa
+aaa
+aaa
+aaa
cjp
cyU
cjp
@@ -67635,10 +67647,10 @@ caS
caS
caS
caS
-cxF
-cxF
-cxF
-cxF
+aht
+aht
+aht
+aht
cjp
cjp
ckH
@@ -67892,10 +67904,10 @@ cfN
caS
cfN
aaa
-cxG
-cxG
-cxG
-cxG
+aaa
+aaa
+aaa
+aaa
cjp
ckW
ckH
@@ -68149,10 +68161,10 @@ cfN
caS
caS
aht
-cxF
-cxF
-cxF
-cxF
+aht
+aht
+aht
+aht
cjp
ckW
ckH
@@ -68406,10 +68418,10 @@ cwe
cwe
cfN
aaa
-cxG
-cxG
-cxG
-cxG
+aaa
+aaa
+aaa
+aaa
cjp
cyP
ckH
@@ -69691,10 +69703,10 @@ cln
cwe
cfN
aaa
-cxG
-cxG
-cxG
-cxG
+aaa
+aaa
+aaa
+aaa
cjp
cyS
ckH
@@ -69948,10 +69960,10 @@ cln
cwe
caS
aht
-cxF
-cxF
-cxF
-cxF
+aht
+aht
+aht
+aht
cjp
cko
ckH
@@ -70205,10 +70217,10 @@ cln
cwe
cfN
cfN
-cxG
-cxG
-cxG
-cxG
+aaa
+aaa
+aaa
+aaa
cjp
cyT
ckH
@@ -70462,10 +70474,10 @@ cwe
cwe
caS
caS
-cxF
-cxF
-cxF
-cxF
+aht
+aht
+aht
+aht
cjp
cjp
ckH
@@ -70720,10 +70732,10 @@ cfN
cfN
cfN
aaa
-cxG
-cxG
-cxG
-cxF
+aaa
+aaa
+aaa
+aht
cjp
cyU
cjp
@@ -80231,7 +80243,7 @@ aaa
aaa
aaa
aaa
-clx
+cCG
clw
clw
clw
diff --git a/_maps/shuttles/emergency_airless.dmm b/_maps/shuttles/emergency_airless.dmm
index 444a104f1d..5e4eeab679 100644
--- a/_maps/shuttles/emergency_airless.dmm
+++ b/_maps/shuttles/emergency_airless.dmm
@@ -3,329 +3,605 @@
/turf/open/space,
/area/space)
"b" = (
+/obj/structure/shuttle/engine/propulsion{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
/turf/open/floor/plating/airless,
/area/shuttle/escape)
"c" = (
-/turf/closed/wall,
+/turf/closed/wall/mineral/plastitanium,
/area/shuttle/escape)
"d" = (
-/obj/structure/closet/malf,
+/obj/structure/window/reinforced,
+/obj/structure/shuttle/engine/heater{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
/turf/open/floor/plating/airless,
/area/shuttle/escape)
"e" = (
-/obj/machinery/status_display,
/turf/closed/wall,
/area/shuttle/escape)
"f" = (
-/obj/effect/shuttle_build,
/turf/open/floor/plating/airless,
/area/shuttle/escape)
"g" = (
-/turf/open/floor/plating,
+/obj/docking_port/mobile/emergency{
+ dwidth = 11;
+ height = 18;
+ name = "Shuttle Under Construction";
+ port_direction = 4;
+ preferred_direction = 2;
+ timid = 1;
+ width = 30
+ },
+/turf/open/floor/plating/airless,
/area/shuttle/escape)
"h" = (
-/obj/docking_port/mobile/emergency{
- name = "Shuttle Under Construction";
- timid = 1
- },
+/obj/effect/shuttle_build,
/turf/open/floor/plating/airless,
/area/shuttle/escape)
"i" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 4;
- name = "4maintenance loot spawner"
- },
-/turf/open/floor/plating/airless,
-/area/shuttle/escape)
-"j" = (
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/structure/shuttle/engine/heater,
-/turf/open/floor/plating/airless,
-/area/shuttle/escape)
-"k" = (
-/obj/structure/shuttle/engine/propulsion,
-/turf/open/floor/plating/airless,
-/area/shuttle/escape)
-"l" = (
-/obj/structure/closet/malf,
-/obj/machinery/light/built{
- dir = 8
- },
-/turf/open/floor/plating/airless,
-/area/shuttle/escape)
-"m" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 4;
- name = "4maintenance loot spawner"
- },
-/obj/machinery/light/built{
- dir = 4
- },
-/turf/open/floor/plating/airless,
-/area/shuttle/escape)
+/turf/open/space/basic,
+/area/space)
(1,1,1) = {"
a
-a
-a
-a
-a
-a
-b
+c
+e
+f
+f
+f
+f
+f
+f
+f
+f
g
-b
-h
-b
-b
-b
-b
-a
-a
-a
-a
-a
-a
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+e
+e
a
+i
+i
+i
a
"}
(2,1,1) = {"
-a
b
-c
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
e
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-c
-c
-c
a
+i
+i
+i
a
"}
(3,1,1) = {"
b
-b
d
-l
-d
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-j
-k
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+a
+i
+i
+i
+a
"}
(4,1,1) = {"
b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-j
-k
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+e
+a
+i
+i
+i
+a
"}
(5,1,1) = {"
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-j
-k
+c
+c
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+e
+e
+f
+f
+e
+e
"}
(6,1,1) = {"
b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-j
-k
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+e
"}
(7,1,1) = {"
b
-b
-b
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
f
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-j
-k
"}
(8,1,1) = {"
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-j
-k
+c
+c
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
"}
(9,1,1) = {"
b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-i
-m
-i
-b
-b
-j
-k
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
"}
(10,1,1) = {"
-a
b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-c
-e
-c
-b
-c
-a
-a
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+h
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
"}
(11,1,1) = {"
-a
-a
-a
-a
-a
-a
-c
-c
-c
c
c
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+"}
+(12,1,1) = {"
b
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+"}
+(13,1,1) = {"
+b
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+e
+"}
+(14,1,1) = {"
c
c
-a
-a
-a
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+e
+e
+f
+f
+e
+e
+"}
+(15,1,1) = {"
+b
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+e
+a
+a
+a
+a
+a
+"}
+(16,1,1) = {"
+b
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+a
+a
+a
+a
+a
+"}
+(17,1,1) = {"
+b
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+e
+a
+a
+a
+a
+a
+"}
+(18,1,1) = {"
+a
+c
+e
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+e
+e
a
a
a
diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm
index 0b79afb941..ca35aa7e47 100644
--- a/code/__HELPERS/global_lists.dm
+++ b/code/__HELPERS/global_lists.dm
@@ -84,18 +84,6 @@
init_subtypes(/datum/crafting_recipe, GLOB.crafting_recipes)
-/* // Uncomment to debug chemical reaction list.
-/client/verb/debug_chemical_list()
-
- for (var/reaction in chemical_reactions_list)
- . += "chemical_reactions_list\[\"[reaction]\"\] = \"[chemical_reactions_list[reaction]]\"\n"
- if(islist(chemical_reactions_list[reaction]))
- var/list/L = chemical_reactions_list[reaction]
- for(var/t in L)
- . += " has: [t]\n"
- to_chat(world, .)
-*/
-
//creates every subtype of prototype (excluding prototype) and adds it to list L.
//if no list/L is provided, one is created.
/proc/init_subtypes(prototype, list/L)
diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm
index 6b014efd6a..99c540ec34 100644
--- a/code/__HELPERS/icons.dm
+++ b/code/__HELPERS/icons.dm
@@ -865,8 +865,7 @@ The _flatIcons list is a cache for generated icon files.
/mob/proc/AddCamoOverlay(atom/A)//A is the atom which we are using as the overlay.
var/icon/opacity_icon = new(A.icon, A.icon_state)//Don't really care for overlays/underlays.
//Now we need to culculate overlays+underlays and add them together to form an image for a mask.
- //var/icon/alpha_mask = getFlatIcon(src)//Accurate but SLOW. Not designed for running each tick. Could have other uses I guess.
- var/icon/alpha_mask = getIconMask(src)//Which is why I created that proc. Also a little slow since it's blending a bunch of icons together but good enough.
+ var/icon/alpha_mask = getIconMask(src)//getFlatIcon(src) is accurate but SLOW. Not designed for running each tick. This is also a little slow since it's blending a bunch of icons together but good enough.
opacity_icon.AddAlphaMask(alpha_mask)//Likely the main source of lag for this proc. Probably not designed to run each tick.
opacity_icon.ChangeOpacity(0.4)//Front end for MapColors so it's fast. 0.5 means half opacity and looks the best in my opinion.
for(var/i=0,i<5,i++)//And now we add it as overlays. It's faster than creating an icon and then merging it.
diff --git a/code/__HELPERS/sorts/__main.dm b/code/__HELPERS/sorts/__main.dm
index c7ccfa97d7..768622818f 100644
--- a/code/__HELPERS/sorts/__main.dm
+++ b/code/__HELPERS/sorts/__main.dm
@@ -27,7 +27,6 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new())
//Stores information regarding runs yet to be merged.
//Run i starts at runBase[i] and extends for runLen[i] elements.
//runBase[i] + runLen[i] == runBase[i+1]
- //var/stackSize
var/list/runBases = list()
var/list/runLens = list()
@@ -326,8 +325,6 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new())
while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint-offset)) < 0) //we are iterating backwards
lastOffset = offset
offset = (offset << 1) + 1 //1 3 7 15
- //if(offset <= 0) //int overflow, not an issue here since we are using floats
- // offset = maxOffset
if(offset > maxOffset)
offset = maxOffset
@@ -341,8 +338,6 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new())
while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint+offset)) >= 0)
lastOffset = offset
offset = (offset << 1) + 1
- //if(offset <= 0) //int overflow, not an issue here since we are using floats
- // offset = maxOffset
if(offset > maxOffset)
offset = maxOffset
@@ -575,7 +570,6 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new())
//If array is small, do an insertion sort
if(remaining < MIN_MERGE)
- //var/initRunLen = countRunAndMakeAscending(start, end)
binarySort(start, end, start/*+initRunLen*/)
return
@@ -637,8 +631,6 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new())
break
++end1
++cursor1
- //if(++cursor1 >= end1)
- // break
val2 = fetchElement(L,cursor2)
diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm
index e3ce12397e..74c565da52 100644
--- a/code/__HELPERS/time.dm
+++ b/code/__HELPERS/time.dm
@@ -19,10 +19,6 @@
if(month == MM && day == DD)
return 1
- // Uncomment this out when debugging!
- //else
- //return 1
-
//returns timestamp in a sql and ISO 8601 friendly format
/proc/SQLtime(timevar)
if(!timevar)
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index 41ee61f780..5e266fdaa2 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -64,7 +64,6 @@ Turf and target are separate in case you want to teleport some distance from a t
errorx = abs(errorx)//Error should never be negative.
errory = abs(errory)
- //var/errorxy = round((errorx+errory)/2)//Used for diagonal boxes.
switch(target.dir)//This can be done through equations but switch is the simpler method. And works fast to boot.
//Directs on what values need modifying.
@@ -340,10 +339,6 @@ Turf and target are separate in case you want to teleport some distance from a t
moblist.Add(M)
for(var/mob/living/simple_animal/M in sortmob)
moblist.Add(M)
-// for(var/mob/living/silicon/hivebot/M in world)
-// mob_list.Add(M)
-// for(var/mob/living/silicon/hive_mainframe/M in world)
-// mob_list.Add(M)
for(var/mob/living/carbon/true_devil/M in sortmob)
moblist.Add(M)
return moblist
@@ -1447,7 +1442,6 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
var/target_loc = target.loc
var/endtime = world.time+time
-// var/starttime = world.time
. = TRUE
while (world.time < endtime)
stoplag(1)
diff --git a/code/_js/byjax.dm b/code/_js/byjax.dm
index 895cfc91d9..5557440d32 100644
--- a/code/_js/byjax.dm
+++ b/code/_js/byjax.dm
@@ -1,50 +1,47 @@
-//this function places received data into element with specified id.
-#define js_byjax {"
-
-function replaceContent() {
- var args = Array.prototype.slice.call(arguments);
- var id = args\[0\];
- var content = args\[1\];
- var callback = null;
- if(args\[2\]){
- callback = args\[2\];
- if(args\[3\]){
- args = args.slice(3);
- }
- }
- var parent = document.getElementById(id);
- if(typeof(parent)!=='undefined' && parent!=null){
- parent.innerHTML = content?content:'';
- }
- if(callback && window\[callback\]){
- window\[callback\].apply(null,args);
- }
-}
-"}
-
-/*
-sends data to control_id:replaceContent
-
-receiver - mob
-control_id - window id (for windows opened with browse(), it'll be "windowname.browser")
-target_element - HTML element id
-new_content - HTML content
-callback - js function that will be called after the data is sent
-callback_args - arguments for callback function
-
-Be sure to include required js functions in your page, or it'll raise an exception.
-*/
-/proc/send_byjax(receiver, control_id, target_element, new_content=null, callback=null, list/callback_args=null)
- if(receiver && target_element && control_id) // && winexists(receiver, control_id))
- var/list/argums = list(target_element, new_content)
- if(callback)
- argums += callback
- if(callback_args)
- argums += callback_args
- argums = list2params(argums)
-/* if(callback_args)
- argums += "&[list2params(callback_args)]"
-*/
- receiver << output(argums,"[control_id]:replaceContent")
- return
-
+//this function places received data into element with specified id.
+#define js_byjax {"
+
+function replaceContent() {
+ var args = Array.prototype.slice.call(arguments);
+ var id = args\[0\];
+ var content = args\[1\];
+ var callback = null;
+ if(args\[2\]){
+ callback = args\[2\];
+ if(args\[3\]){
+ args = args.slice(3);
+ }
+ }
+ var parent = document.getElementById(id);
+ if(typeof(parent)!=='undefined' && parent!=null){
+ parent.innerHTML = content?content:'';
+ }
+ if(callback && window\[callback\]){
+ window\[callback\].apply(null,args);
+ }
+}
+"}
+
+/*
+sends data to control_id:replaceContent
+
+receiver - mob
+control_id - window id (for windows opened with browse(), it'll be "windowname.browser")
+target_element - HTML element id
+new_content - HTML content
+callback - js function that will be called after the data is sent
+callback_args - arguments for callback function
+
+Be sure to include required js functions in your page, or it'll raise an exception.
+*/
+/proc/send_byjax(receiver, control_id, target_element, new_content=null, callback=null, list/callback_args=null)
+ if(receiver && target_element && control_id) // && winexists(receiver, control_id))
+ var/list/argums = list(target_element, new_content)
+ if(callback)
+ argums += callback
+ if(callback_args)
+ argums += callback_args
+ argums = list2params(argums)
+
+ receiver << output(argums,"[control_id]:replaceContent")
+ return
diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm
index 95ee0c317a..e97f4d5426 100644
--- a/code/_onclick/ai.dm
+++ b/code/_onclick/ai.dm
@@ -80,12 +80,6 @@
set_waypoint(A)
return
- /*
- AI restrained() currently does nothing
- if(restrained())
- RestrainedClickOn(A)
- else
- */
A.attack_ai(src)
/*
diff --git a/code/controllers/subsystem/events.dm b/code/controllers/subsystem/events.dm
index 3aa1747dee..e70fd1cd7d 100644
--- a/code/controllers/subsystem/events.dm
+++ b/code/controllers/subsystem/events.dm
@@ -57,8 +57,6 @@ SUBSYSTEM_DEF(events)
/datum/controller/subsystem/events/proc/spawnEvent()
set waitfor = FALSE //for the admin prompt
if(!CONFIG_GET(flag/allow_random_events))
-// var/datum/round_event_control/E = locate(/datum/round_event_control/dust) in control
-// if(E) E.runEvent()
return
var/gamemode = SSticker.mode.config_tag
diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm
index 5fa770179e..8e3ceec261 100644
--- a/code/controllers/subsystem/shuttle.dm
+++ b/code/controllers/subsystem/shuttle.dm
@@ -505,14 +505,7 @@ SUBSYSTEM_DEF(shuttle)
// Then we want the point closest to -infinity,-infinity
var/x2 = min(x0, x1)
var/y2 = min(y0, y1)
-/*
- var/lowx = topleft.x + SHUTTLE_TRANSIT_BORDER
- var/lowy = topleft.y + SHUTTLE_TRANSIT_BORDER
- var/turf/low_point = locate(lowx, lowy, topleft.z)
- new /obj/effect/landmark/stationary(low_point)
- to_chat(world, "Starting at the low point, we go [x2],[y2]")
-*/
// Then invert the numbers
var/transit_x = topleft.x + SHUTTLE_TRANSIT_BORDER + abs(x2)
var/transit_y = topleft.y + SHUTTLE_TRANSIT_BORDER + abs(y2)
diff --git a/code/datums/antagonists/changeling.dm b/code/datums/antagonists/changeling.dm
index d72cb64b81..8a27da5b46 100644
--- a/code/datums/antagonists/changeling.dm
+++ b/code/datums/antagonists/changeling.dm
@@ -15,8 +15,6 @@
var/list/stored_profiles = list() //list of datum/changelingprofile
var/datum/changelingprofile/first_prof = null
- //var/list/absorbed_dna = list()
- //var/list/protected_dna = list() //dna that is not lost when capacity is otherwise full
var/dna_max = 6 //How many extra DNA strands the changeling can store for transformation.
var/absorbedcount = 0
var/chem_charges = 20
diff --git a/code/datums/browser.dm b/code/datums/browser.dm
index e8a1a17fe2..f863a5007d 100644
--- a/code/datums/browser.dm
+++ b/code/datums/browser.dm
@@ -220,18 +220,6 @@
// This is added to mob so that it can be used without a reference to the browser object
// There is probably a better place for this...
/mob/proc/browse_rsc_icon(icon, icon_state, dir = -1)
- /*
- var/icon/I
- if (dir >= 0)
- I = new /icon(icon, icon_state, dir)
- else
- I = new /icon(icon, icon_state)
- setDir("default")
-
- var/filename = "[ckey("[icon]_[icon_state]_[dir]")].png"
- src << browse_rsc(I, filename)
- return filename
- */
// Registers the on-close verb for a browse window (client/verb/.windowclose)
diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm
index d618ceda89..c6acb7d78d 100644
--- a/code/datums/components/material_container.dm
+++ b/code/datums/components/material_container.dm
@@ -22,8 +22,6 @@
var/last_insert_success
var/precise_insertion = FALSE
var/datum/callback/precondition
- //MAX_STACK_SIZE = 50
- //MINERAL_MATERIAL_AMOUNT = 2000
/datum/component/material_container/Initialize(list/mat_list, max_amt = 0, _show_on_examine = FALSE, list/allowed_types, datum/callback/_precondition)
materials = list()
diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm
index e41666008c..894f34345d 100644
--- a/code/datums/datumvars.dm
+++ b/code/datums/datumvars.dm
@@ -418,24 +418,9 @@
item = "[VV_HTML_ENCODE(name)] = /icon ([value])"
#endif
-/* else if (istype(value, /image))
- #ifdef VARSICON
- var/rnd = rand(1, 10000)
- var/image/I = value
-
- src << browse_rsc(I.icon, "tmp[REF(value)][rnd].png")
- html += "[name] =
"
- #else
- html += "[name] = /image ([value])"
- #endif
-*/
else if (isfile(value))
item = "[VV_HTML_ENCODE(name)] = '[value]'"
- //else if (istype(value, /client))
- // var/client/C = value
- // item = "[VV_HTML_ENCODE(name)] [REF(value)] = [C] [C.type]"
-
else if (istype(value, /datum))
var/datum/D = value
if ("[D]" != "[D.type]") //if the thing as a name var, lets use it.
diff --git a/code/datums/diseases/beesease.dm b/code/datums/diseases/beesease.dm
index 3a7e8cfbe3..f02c3b90ee 100644
--- a/code/datums/diseases/beesease.dm
+++ b/code/datums/diseases/beesease.dm
@@ -35,6 +35,4 @@
affected_mob.visible_message("[affected_mob] coughs up a swarm of bees!", \
"You cough up a swarm of bees!")
new /mob/living/simple_animal/hostile/poison/bees(affected_mob.loc)
- //if(5)
- //Plus if you die, you explode into bees
return
diff --git a/code/datums/diseases/cold.dm b/code/datums/diseases/cold.dm
index 38b23cf3de..5915a784ea 100644
--- a/code/datums/diseases/cold.dm
+++ b/code/datums/diseases/cold.dm
@@ -13,12 +13,6 @@
..()
switch(stage)
if(2)
-/*
- if(affected_mob.sleeping && prob(40)) //removed until sleeping is fixed
- to_chat(affected_mob, "\blue You feel better.")
- cure()
- return
-*/
if(affected_mob.lying && prob(40)) //changed FROM prob(10) until sleeping is fixed
to_chat(affected_mob, "You feel better.")
cure()
@@ -36,12 +30,6 @@
if(prob(1))
to_chat(affected_mob, "Mucous runs down the back of your throat.")
if(3)
-/*
- if(affected_mob.sleeping && prob(25)) //removed until sleeping is fixed
- to_chat(affected_mob, "\blue You feel better.")
- cure()
- return
-*/
if(affected_mob.lying && prob(25)) //changed FROM prob(5) until sleeping is fixed
to_chat(affected_mob, "You feel better.")
cure()
diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm
index cb5878208e..b17fe26898 100644
--- a/code/game/area/Space_Station_13_areas.dm
+++ b/code/game/area/Space_Station_13_areas.dm
@@ -511,10 +511,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
name = "Research Director's Private Quarters"
icon_state = "rd_private"
-/area/mint
- name = "Mint"
- icon_state = "green"
-
/area/comms
name = "Communications Relay"
icon_state = "tcomsatcham"
@@ -1375,16 +1371,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
icon_state = "eva"
ambientsounds = HIGHSEC
-/area/ai_monitored/storage/secure
- name = "AI Satellite Storage"
- icon_state = "storage"
- ambientsounds = HIGHSEC
-
-/area/ai_monitored/storage/emergency
- name = "Emergency Storage"
- icon_state = "storage"
- ambientsounds = HIGHSEC
-
/area/ai_monitored/storage/satellite
name = "AI Satellite Maint"
icon_state = "storage"
@@ -1522,7 +1508,6 @@ GLOBAL_LIST_INIT(the_station_areas, list (
/area/library,
/area/maintenance,
/area/medical,
-// /area/mint, //not present on map
/area/quartermaster,
/area/science,
/area/security,
@@ -1530,8 +1515,6 @@ GLOBAL_LIST_INIT(the_station_areas, list (
/area/storage,
/area/teleporter,
/area/ai_monitored/storage/eva, //do not try to simplify to "/area/ai_monitored" --rastaf0
-// /area/ai_monitored/storage/secure, //not present on map
-// /area/ai_monitored/storage/emergency, //not present on map
/area/ai_monitored/turret_protected/ai_upload, //do not try to simplify to "/area/ai_monitored/turret_protected" --rastaf0
/area/ai_monitored/turret_protected/ai_upload_foyer,
/area/ai_monitored/turret_protected/ai,
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index e450c54c1b..8a85bbb814 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -257,8 +257,6 @@
if(desc)
to_chat(user, desc)
- // *****RM
- //to_chat(user, "[name]: Dn:[density] dir:[dir] cont:[contents] icon:[icon] is:[icon_state] loc:[loc]")
if(reagents && (is_open_container() || is_transparent())) //is_open_container() isn't really the right proc for this, but w/e
to_chat(user, "It contains:")
diff --git a/code/game/gamemodes/devil/objectives.dm b/code/game/gamemodes/devil/objectives.dm
index 181d40ba48..8d5cb430dd 100644
--- a/code/game/gamemodes/devil/objectives.dm
+++ b/code/game/gamemodes/devil/objectives.dm
@@ -44,8 +44,6 @@
contractName = "of revival"
if(CONTRACT_KNOWLEDGE)
contractName = "for knowledge"
- //if(CONTRACT_UNWILLING) //Makes round unfun.
- // contractName = "against their will"
update_explanation_text()
/datum/objective/devil/soulquality/update_explanation_text()
diff --git a/code/game/gamemodes/miniantags/abduction/abduction.dm b/code/game/gamemodes/miniantags/abduction/abduction.dm
index d6f1b775e9..4eb8642c02 100644
--- a/code/game/gamemodes/miniantags/abduction/abduction.dm
+++ b/code/game/gamemodes/miniantags/abduction/abduction.dm
@@ -26,6 +26,7 @@
var/max_teams = 4
var/list/datum/objective_team/abductor_team/abductor_teams = list()
var/finished = FALSE
+ var/static/team_count = 0
/datum/game_mode/abduction/announce()
to_chat(world, "The current game mode is - Abduction!")
@@ -44,7 +45,11 @@
return TRUE
/datum/game_mode/abduction/proc/make_abductor_team(datum/mind/agent, datum/mind/scientist)
- var/team_number = abductor_teams.len+1
+ team_count++ //TODO: Fix the edge case of abductor game mode rolling twice+ and failing to setup on first time.
+ var/team_number = team_count
+
+ if(team_number > max_teams)
+ return //or should it try to stuff them in anway ?
var/datum/objective_team/abductor_team/team = new
team.team_number = team_number
diff --git a/code/game/gamemodes/miniantags/sintouched/objectives.dm b/code/game/gamemodes/miniantags/sintouched/objectives.dm
index 2070cdf39a..fae6120f9c 100644
--- a/code/game/gamemodes/miniantags/sintouched/objectives.dm
+++ b/code/game/gamemodes/miniantags/sintouched/objectives.dm
@@ -1,16 +1,6 @@
/datum/objective/sintouched
completed = 1
-/* NO ERP OBJECTIVE FOR YOU.
-/datum/objective/sintouched/lust
-
-/datum/objective/sintouched/lust/New()
- var/mob/dead/D = pick(dead_mob_list)
- if(prob(50) && D)
- explanation_text = "You know that [D] has perished.... and you think [D] is kinda cute. Make sure everyone knows how HOT [D]'s lifeless body is."
- else
- explanation_text = "Go get married, then immediately cheat on your new spouse." */
-
/datum/objective/sintouched/gluttony
explanation_text = "Everything is so delicious. Go eat everything."
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index 630a5929d7..1e5d899bfa 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -178,14 +178,6 @@
disk_rescued = 0
break
var/crew_evacuated = (SSshuttle.emergency.mode == SHUTTLE_ENDGAME)
- //var/operatives_are_dead = is_operatives_are_dead()
-
-
- //nukes_left
- //station_was_nuked
- //derp //Used for tracking if the syndies actually haul the nuke to the station //no
- //herp //Used for tracking if the syndies got the shuttle off of the z-level //NO, DON'T FUCKING NAME VARS LIKE THIS
-
if(nuke_off_station == NUKE_SYNDICATE_BASE)
SSticker.mode_result = "loss - syndicate nuked - disk secured"
diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm
index 9e51d9125b..cba82f805f 100644
--- a/code/game/machinery/computer/medical.dm
+++ b/code/game/machinery/computer/medical.dm
@@ -100,10 +100,6 @@
dat += text("
[] | ", R.fields["p_stat"])
dat += text("[] | ", R.fields["m_stat"])
dat += "
"
-// if(GLOB.data_core.general)
-// for(var/datum/data/record/R in sortRecord(GLOB.data_core.general))
-// dat += "[R.fields["id"]]: [R.fields["name"]]
"
-// //Foreach goto(132)
dat += "
Back"
if(3)
dat += "Records Maintenance
\nBackup To Disk
\nUpload From Disk
\nDelete All Records
\n
\nBack"
diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm
index d41bcce164..750551abda 100644
--- a/code/game/machinery/computer/message.dm
+++ b/code/game/machinery/computer/message.dm
@@ -119,9 +119,6 @@
//Message Logs
if(1)
var/index = 0
- //var/recipient = "Unspecified" //name of the person
- //var/sender = "Unspecified" //name of the sender
- //var/message = "Blank" //transferred message
dat += "Back - Refresh
"
dat += "| X | Sender | Recipient | Message |
"
for(var/datum/data_pda_msg/pda in src.linkedServer.pda_msgs)
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 4b8da75d87..465f74f05e 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -261,7 +261,7 @@
justzap = TRUE
addtimer(CALLBACK(src, .proc/unzap), 10)
return
- else /*if(src.justzap)*/
+ else
return
else if(user.hallucinating() && ishuman(user) && prob(4) && !operating)
var/mob/living/carbon/human/H = user
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index fa6275809d..e446670105 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -63,9 +63,6 @@
spark_system = null
return ..()
-//process()
- //return
-
/obj/machinery/door/CollidedWith(atom/movable/AM)
if(operating || emagged)
return
diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm
index 39df6f409e..41c0fabcae 100644
--- a/code/game/machinery/firealarm.dm
+++ b/code/game/machinery/firealarm.dm
@@ -73,7 +73,6 @@
if(src.z in GLOB.station_z_levels)
add_overlay("overlay_[GLOB.security_level]")
else
- //var/green = SEC_LEVEL_GREEN
add_overlay("overlay_[SEC_LEVEL_GREEN]")
if(detecting)
diff --git a/code/game/machinery/overview.dm b/code/game/machinery/overview.dm
index f800309131..6aa4cdade9 100644
--- a/code/game/machinery/overview.dm
+++ b/code/game/machinery/overview.dm
@@ -119,7 +119,6 @@
if(!colour2 && !T.density)
var/datum/gas_mixture/environment = T.return_air()
var/turf_total = environment.total_moles()
- //var/turf_total = T.co2 + T.oxygen + T.poison + T.sl_gas + T.n2
var/t1 = turf_total / MOLES_CELLSTANDARD * 150
@@ -242,9 +241,6 @@
else
colour = rgb(255,128,128)
- //if(istype(AM, /obj/structure/blob))
- // colour = rgb(255,0,255)
-
var/area/A = T.loc
if(A.fire)
@@ -296,10 +292,6 @@
src.close(user)
-/* if(seccomp == src)
- drawmap(user)
- else
- user.clearmap()*/
return
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index 1705a14c40..8bfade3ebc 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -622,16 +622,6 @@
IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY CANISTER CHARGES in vending_items.dm
*/
-/*
-/obj/machinery/vending/atmospherics //Commenting this out until someone ponies up some actual working, broken, and unpowered sprites - Quarxink
- name = "Tank Vendor"
- desc = "A vendor with a wide variety of masks and gas tanks."
- icon = 'icons/obj/objects.dmi'
- icon_state = "dispenser"
- product_paths = "/obj/item/tank/internals/oxygen;/obj/item/tank/internals/plasma;/obj/item/tank/internals/emergency_oxygen;/obj/item/tank/internals/emergency_oxygen/engi;/obj/item/clothing/mask/breath"
- product_amounts = "10;10;10;5;25"
-*/
-
/obj/machinery/vending/boozeomat
name = "\improper Booze-O-Mat"
desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one."
diff --git a/code/game/mecha/combat/honker.dm b/code/game/mecha/combat/honker.dm
index fe399e64da..ceb88aa9b0 100644
--- a/code/game/mecha/combat/honker.dm
+++ b/code/game/mecha/combat/honker.dm
@@ -15,17 +15,6 @@
max_equip = 3
var/squeak = 0
-/*
-/obj/mecha/combat/honker/New()
- ..()
-
- weapons += new /datum/mecha_weapon/honker(src)
- weapons += new /datum/mecha_weapon/missile_rack/banana_mortar(src)
- weapons += new /datum/mecha_weapon/missile_rack/mousetrap_mortar(src)
- selected_weapon = weapons[1]
- return
-*/
-
/obj/mecha/combat/honker/get_stats_part()
var/integrity = obj_integrity/max_integrity*100
var/cell_charge = get_charge()
diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm
index 2bfce20ccd..34e6793d5b 100644
--- a/code/game/objects/effects/spawners/lootdrop.dm
+++ b/code/game/objects/effects/spawners/lootdrop.dm
@@ -162,4 +162,35 @@
name = "25% cyborg mask spawner"
loot = list(
/obj/item/clothing/mask/gas/cyborg = 25,
- "" = 75)
\ No newline at end of file
+ "" = 75)
+
+/obj/effect/spawner/lootdrop/aimodule_harmless // These shouldn't allow the AI to start butchering people
+ name = "harmless AI module spawner"
+ loot = list(
+ /obj/item/aiModule/core/full/asimov,
+ /obj/item/aiModule/core/full/asimovpp,
+ /obj/item/aiModule/core/full/hippocratic,
+ /obj/item/aiModule/core/full/paladin_devotion,
+ /obj/item/aiModule/core/full/paladin
+ )
+
+/obj/effect/spawner/lootdrop/aimodule_neutral // These shouldn't allow the AI to start butchering people without reason
+ name = "neutral AI module spawner"
+ loot = list(
+ /obj/item/aiModule/core/full/corp,
+ /obj/item/aiModule/core/full/maintain,
+ /obj/item/aiModule/core/full/drone,
+ /obj/item/aiModule/core/full/peacekeeper,
+ /obj/item/aiModule/core/full/reporter,
+ /obj/item/aiModule/core/full/robocop,
+ /obj/item/aiModule/core/full/liveandletlive
+ )
+
+/obj/effect/spawner/lootdrop/aimodule_harmful // These will get the shuttle called
+ name = "harmful AI module spawner"
+ loot = list(
+ /obj/item/aiModule/core/full/antimov,
+ /obj/item/aiModule/core/full/balance,
+ /obj/item/aiModule/core/full/tyrant,
+ /obj/item/aiModule/core/full/thermurderdynamic
+ )
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 3e6d17d4da..e96c4c015b 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -51,7 +51,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
var/item_color = null //this needs deprecating, soonish
var/body_parts_covered = 0 //see setup.dm for appropriate bit flags
- //var/heat_transfer_coefficient = 1 //0 prevents all transfers, 1 is invisible
var/gas_transfer_coefficient = 1 // for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets)
var/permeability_coefficient = 1 // for chemicals/diseases
var/siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit)
diff --git a/code/game/objects/items/AI_modules.dm b/code/game/objects/items/AI_modules.dm
index d14b764049..b3e49f0991 100644
--- a/code/game/objects/items/AI_modules.dm
+++ b/code/game/objects/items/AI_modules.dm
@@ -564,3 +564,11 @@ AI MODULES
/obj/item/aiModule/core/full/balance
name = "'Guardian of Balance' Core AI Module"
law_id = "balance"
+
+/obj/item/aiModule/core/full/maintain
+ name = "'Station Efficiency' Core AI Module"
+ law_id = "maintain"
+
+/obj/item/aiModule/core/full/peacekeeper
+ name = "'Peacekeeper' Core AI Module"
+ law_id = "peacekeeper"
diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm
index 1e2d00706f..bfcda7d271 100644
--- a/code/game/objects/items/devices/PDA/cart.dm
+++ b/code/game/objects/items/devices/PDA/cart.dm
@@ -29,7 +29,6 @@
var/access = 0 //Bit flags_1 for cartridge access
-// var/access_flora = 0
var/remote_door_id = ""
var/bot_access_flags = 0 //Bit flags_1. Selection: SEC_BOT | MULE_BOT | FLOOR_BOT | CLEAN_BOT | MED_BOT
@@ -110,13 +109,6 @@
icon_state = "cart-s"
access = CART_NEWSCASTER
-/*
-/obj/item/cartridge/botanist
- name = "\improper Green Thumb v4.20 cartridge"
- icon_state = "cart-b"
- access_flora = 1
-*/
-
/obj/item/cartridge/roboticist
name = "\improper B.O.O.P. Remote Control cartridge"
desc = "Packed with heavy duty triple-bot interlink!"
@@ -669,9 +661,6 @@ Code:
var/mob/living/simple_animal/bot/Bot
-// if(!SC)
-// menu = "Interlink Error - Please reinsert cartridge."
-// return
if(active_bot)
menu += "[active_bot]
Status: (
refresh)
"
menu += "Model: [active_bot.model]
"
diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm
index e36b97b328..40963c3b08 100644
--- a/code/game/objects/items/devices/multitool.dm
+++ b/code/game/objects/items/devices/multitool.dm
@@ -4,7 +4,6 @@
/**
* Multitool -- A multitool is used for hacking electronic devices.
- * TO-DO -- Using it as a power measurement tool for cables etc. Nannek.
*
*/
diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm
index 78e8757034..4cd286ec85 100644
--- a/code/game/objects/items/devices/radio/beacon.dm
+++ b/code/game/objects/items/devices/radio/beacon.dm
@@ -35,9 +35,3 @@
src.code = "beacon"
src.add_fingerprint(usr)
return
-
-/*
-//Probably a better way of doing this, I'm lazy.
-/obj/item/device/radio/beacon/bacon/proc/digest_delay()
- spawn(600)
- qdel(src)*/ //Bacon beacons are no more rip in peace
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 50a15b20b0..6603bc29ef 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -454,18 +454,6 @@
if(message_mode == MODE_WHISPER || message_mode == MODE_WHISPER_CRIT)
raw_message = stars(raw_message)
talk_into(speaker, raw_message, , spans, language=message_language)
-/*
-/obj/item/device/radio/proc/accept_rad(obj/item/device/radio/R as obj, message)
-
- if ((R.frequency == frequency && message))
- return 1
- else if
-
- else
- return null
- return
-*/
-
/obj/item/device/radio/proc/receive_range(freq, level)
// check if this radio can receive on the given frequency, and if so,
diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm
index 8c36a5965f..7beb11b6e1 100644
--- a/code/game/objects/items/stacks/sheets/mineral.dm
+++ b/code/game/objects/items/stacks/sheets/mineral.dm
@@ -375,16 +375,12 @@ GLOBAL_LIST_INIT(adamantine_recipes, list(
sheettype = "abductor"
GLOBAL_LIST_INIT(abductor_recipes, list ( \
-/* new/datum/stack_recipe("alien chair", /obj/structure/chair, one_per_turf = 1, on_floor = 1), \ */
new/datum/stack_recipe("alien bed", /obj/structure/bed/abductor, 2, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("alien locker", /obj/structure/closet/abductor, 2, time = 15, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("alien table frame", /obj/structure/table_frame/abductor, 1, time = 15, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("alien airlock assembly", /obj/structure/door_assembly/door_assembly_abductor, 4, time = 20, one_per_turf = 1, on_floor = 1), \
null, \
new/datum/stack_recipe("alien floor tile", /obj/item/stack/tile/mineral/abductor, 1, 4, 20), \
-/* null, \
- new/datum/stack_recipe("Abductor Agent Statue", /obj/structure/statue/bananium/clown, 5, one_per_turf = 1, on_floor = 1), \
- new/datum/stack_recipe("Abductor Sciencist Statue", /obj/structure/statue/bananium/clown, 5, one_per_turf = 1, on_floor = 1)*/
))
/obj/item/stack/sheet/mineral/abductor/Initialize(mapload, new_amount, merge = TRUE)
diff --git a/code/game/objects/items/storage/storage.dm b/code/game/objects/items/storage/storage.dm
index cb9e6e2d63..6ea3529b3b 100644
--- a/code/game/objects/items/storage/storage.dm
+++ b/code/game/objects/items/storage/storage.dm
@@ -254,7 +254,6 @@
adjusted_contents++
numbered_contents.Add( new/datum/numbered_display(I) )
- //var/mob/living/carbon/human/H = user
var/row_num = 0
var/col_count = min(7,storage_slots) -1
if(adjusted_contents > 7)
diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
index b1e83a9d6f..49a9621fba 100644
--- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
@@ -53,11 +53,6 @@
if ("delete")
qdel(src)
- //If you want to re-add fire, just add "fire" = 15 to the pick list.
- /*if ("fire")
- new /obj/structure/closet/firecloset(src.loc)
- qdel(src)*/
-
/*
* Fire Closet
*/
diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm
index ad85568267..e8975c41aa 100644
--- a/code/game/turfs/simulated/wall/mineral_walls.dm
+++ b/code/game/turfs/simulated/wall/mineral_walls.dm
@@ -13,8 +13,6 @@
icon = 'icons/turf/walls/gold_wall.dmi'
icon_state = "gold"
sheet_type = /obj/item/stack/sheet/mineral/gold
- //var/electro = 1
- //var/shocked = null
explosion_block = 0 //gold is a soft metal you dingus.
canSmoothWith = list(/turf/closed/wall/mineral/gold, /obj/structure/falsewall/gold)
@@ -24,8 +22,6 @@
icon = 'icons/turf/walls/silver_wall.dmi'
icon_state = "silver"
sheet_type = /obj/item/stack/sheet/mineral/silver
- //var/electro = 0.75
- //var/shocked = null
canSmoothWith = list(/turf/closed/wall/mineral/silver, /obj/structure/falsewall/silver)
/turf/closed/wall/mineral/diamond
diff --git a/code/modules/admin/NewBan.dm b/code/modules/admin/NewBan.dm
index bd32533a7f..885528f6f9 100644
--- a/code/modules/admin/NewBan.dm
+++ b/code/modules/admin/NewBan.dm
@@ -175,7 +175,6 @@ GLOBAL_PROTECT(Banlist)
/datum/admins/proc/unbanpanel()
var/count = 0
var/dat
- //var/dat = "
Unban Player: \blue(U) = Unban , (E) = Edit Ban\green (Total
"
GLOB.Banlist.cd = "/base"
for (var/A in GLOB.Banlist.dir)
count++
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index fb646059bf..2ec95eb755 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -615,24 +615,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////ADMIN HELPER PROCS
-/*
-/datum/admins/proc/get_sab_desc(var/target)
- switch(target)
- if(1)
- return "Destroy at least 70% of the plasma canisters on the station"
- if(2)
- return "Destroy the AI"
- if(3)
- var/count = 0
- for(var/mob/living/carbon/monkey/Monkey in world)
- if(Monkey.z in GLOB.station_z_levels)
- count++
- return "Kill all [count] of the monkeys on the station"
- if(4)
- return "Cut power to at least 80% of the station"
- else
- return "Error: Invalid sabotage target: [target]"
-*/
/datum/admins/proc/spawn_atom(object as text)
set category = "Debug"
set desc = "(atom path) Spawn an atom"
diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm
index d560099563..ea89cace30 100644
--- a/code/modules/admin/verbs/mapping.dm
+++ b/code/modules/admin/verbs/mapping.dm
@@ -228,15 +228,6 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list(
if(B.z == num_level)
count++
atom_list += A
- /*
- var/atom/temp_atom
- for(var/i = 0; i <= (atom_list.len/10); i++)
- var/line = ""
- for(var/j = 1; j <= 10; j++)
- if(i*10+j <= atom_list.len)
- temp_atom = atom_list[i*10+j]
- line += " no.[i+10+j]@\[[temp_atom.x], [temp_atom.y], [temp_atom.z]\]; "
- to_chat(world, line)*/
to_chat(world, "There are [count] objects of type [type_path] on z-level [num_level]")
SSblackbox.add_details("admin_verb","Count Objects Zlevel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -257,15 +248,6 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list(
for(var/atom/A in world)
if(istype(A,type_path))
count++
- /*
- var/atom/temp_atom
- for(var/i = 0; i <= (atom_list.len/10); i++)
- var/line = ""
- for(var/j = 1; j <= 10; j++)
- if(i*10+j <= atom_list.len)
- temp_atom = atom_list[i*10+j]
- line += " no.[i+10+j]@\[[temp_atom.x], [temp_atom.y], [temp_atom.z]\]; "
- to_chat(world, line)*/
to_chat(world, "There are [count] objects of type [type_path] in the game world")
SSblackbox.add_details("admin_verb","Count Objects All") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm
index 0b35304620..f263fc0063 100644
--- a/code/modules/assembly/signaler.dm
+++ b/code/modules/assembly/signaler.dm
@@ -39,10 +39,6 @@
/obj/item/device/assembly/signaler/interact(mob/user, flag1)
if(is_secured(user))
var/t1 = "-------"
- // if ((src.b_stat && !( flag1 )))
- // t1 = text("-------
\nGreen Wire: []
\nRed Wire: []
\nBlue Wire: []
\n", (src.wires & 4 ? "Cut Wire" : "Mend Wire"), (src.wires & 2 ? "Cut Wire" : "Mend Wire"), (src.wires & 1 ? "Cut Wire" : "Mend Wire"))
- // else
- // t1 = "-------" Speaker: [src.listening ? "Engaged" : "Disengaged"]
var/dat = {"
@@ -123,17 +119,6 @@ Code:
return
-/*
- for(var/obj/item/device/assembly/signaler/S in world)
- if(!S)
- continue
- if(S == src)
- continue
- if((S.frequency == src.frequency) && (S.code == src.code))
- spawn(0)
- if(S)
- S.pulse(0)
- return 0*/
/obj/item/device/assembly/signaler/receive_signal(datum/signal/signal)
if(!signal)
diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm
index 8ddde526a7..64d77a27dc 100644
--- a/code/modules/atmospherics/gasmixtures/gas_mixture.dm
+++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm
@@ -423,22 +423,7 @@ GLOBAL_LIST_INIT(gaslist_cache, init_gaslist_cache())
continue reaction_loop
//at this point, all minimum requirements for the reaction are satisfied.
- /* currently no reactions have maximum requirements, so we can leave the checks commented out for a slight performance boost
- var/list/max_reqs = reaction.max_requirements.Copy()
- if((max_reqs["TEMP"] && temp > max_reqs["TEMP"]) \
- || (max_reqs["ENER"] && ener > max_reqs["ENER"]))
- continue
- max_reqs -= "TEMP"
- max_reqs -= "ENER"
-
- for(var/id in max_reqs)
- if(cached_gases[id] && cached_gases[id][MOLES] > max_reqs[id])
- continue reaction_loop
- //at this point, all requirements for the reaction are satisfied. we can now react()
- */
-
. |= reaction.react(src, dump_location)
- //to_chat(world,reaction.name)
if (. & STOP_REACTIONS)
break
if(.)
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm
index 15f0ccddd2..f8204947f1 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm
@@ -197,7 +197,6 @@ Acts like a normal vent, but has an input AND output.
spawn(2)
broadcast_status()
return //do not update_icon
- //if(signal.data["tag"])
spawn(2)
broadcast_status()
update_icon()
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index ea02e81c23..d9b25939a5 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -31,7 +31,6 @@
// asset_cache
if(href_list["asset_cache_confirm_arrival"])
- //to_chat(src, "ASSET JOB [href_list["asset_cache_confirm_arrival"]] ARRIVED.")
var/job = text2num(href_list["asset_cache_confirm_arrival"])
//because we skip the limiter, we have to make sure this is a valid arrival and not somebody tricking us
// into letting append to a list without limit.
@@ -131,13 +130,6 @@
if(filelength > UPLOAD_LIMIT)
to_chat(src, "Error: AllowUpload(): File Upload too large. Upload Limit: [UPLOAD_LIMIT/1024]KiB.")
return 0
-/* //Don't need this at the moment. But it's here if it's needed later.
- //Helps prevent multiple files being uploaded at once. Or right after eachother.
- var/time_to_wait = fileaccess_timer - world.time
- if(time_to_wait > 0)
- to_chat(src, "Error: AllowUpload(): Spam prevention. Please wait [round(time_to_wait/10)] seconds.")
- return 0
- fileaccess_timer = world.time + FTPDELAY */
return 1
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index fac42b0787..96942af46a 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -239,8 +239,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
S["real_name"] >> name
if(!name)
name = "Character[i]"
- /*if(i!=1)
- dat += " | " */
dat += "[name] "
dat += ""
diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm
index 4a86008ad2..3bd255c058 100644
--- a/code/modules/clothing/head/misc_special.dm
+++ b/code/modules/clothing/head/misc_special.dm
@@ -18,7 +18,6 @@
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
item_state = "welding"
materials = list(MAT_METAL=1750, MAT_GLASS=400)
-// var/up = 0
flash_protect = 2
tint = 2
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 60)
diff --git a/code/modules/events/abductor.dm b/code/modules/events/abductor.dm
index 9bba04a68d..c7e9baf779 100755
--- a/code/modules/events/abductor.dm
+++ b/code/modules/events/abductor.dm
@@ -26,7 +26,11 @@
var/mob/living/carbon/human/agent = makeBody(pick_n_take(candidates))
var/mob/living/carbon/human/scientist = makeBody(pick_n_take(candidates))
- GM.post_setup_team(GM.make_abductor_team(agent.mind, scientist.mind))
+ var/team = GM.make_abductor_team(agent.mind, scientist.mind)
+ if(!team)
+ return MAP_ERROR
+
+ GM.post_setup_team(team)
spawned_mobs += list(agent, scientist)
return SUCCESSFUL_SPAWN
diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm
index 2343a23c9a..a4c9a8563c 100644
--- a/code/modules/events/spacevine.dm
+++ b/code/modules/events/spacevine.dm
@@ -471,7 +471,6 @@
else //If tile is fully grown
SV.entangle_mob()
- //if(prob(25))
SV.spread()
if(i >= length)
break
diff --git a/code/modules/holodeck/area_copy.dm b/code/modules/holodeck/area_copy.dm
index bc2c92e3fb..4acedb4780 100644
--- a/code/modules/holodeck/area_copy.dm
+++ b/code/modules/holodeck/area_copy.dm
@@ -78,7 +78,6 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars,list("tag","area","type","loc","locs",
var/copiedobjs = list()
for (var/turf/T in refined_src)
- //var/datum/coords/C_src = refined_src[T]
var/coordstring = refined_src[T]
var/turf/B = refined_trg[coordstring]
if(!istype(B))
diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm
index fb55a0565b..52077d2367 100644
--- a/code/modules/library/lib_machines.dm
+++ b/code/modules/library/lib_machines.dm
@@ -230,11 +230,9 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums
dat += "Checked Out Books
"
for(var/datum/borrowbook/b in checkouts)
var/timetaken = world.time - b.getdate
- //timetaken *= 10
timetaken /= 600
timetaken = round(timetaken)
var/timedue = b.duedate - world.time
- //timedue *= 10
timedue /= 600
if(timedue <= 0)
timedue = "(OVERDUE) [timedue]"
diff --git a/code/modules/lighting/lighting_source.dm b/code/modules/lighting/lighting_source.dm
index 31ddb27b2a..8e56acc2fb 100644
--- a/code/modules/lighting/lighting_source.dm
+++ b/code/modules/lighting/lighting_source.dm
@@ -138,42 +138,6 @@
// This is the define used to calculate falloff.
-/*
-/datum/light_source/proc/apply_lum()
- var/static/update_gen = 1
- applied = 1
-
- // Keep track of the last applied lum values so that the lighting can be reversed
- var/thing
- var/datum/lighting_corner/C
- var/corners = list()
- LAZYINITLIST(effect_str)
- FOR_DVIEW(var/turf/T, light_range+1, source_turf, INVISIBILITY_LIGHTING)
- var/list/turf_corners = T.get_corners()
-
- for (thing in turf_corners)
- C = thing
- if (C.update_gen == update_gen)
- continue
-
- C.update_gen = update_gen
- LAZYADD(C.affecting,src)
-
- if (!C.active)
- effect_str[C] = 0
- continue
-
- APPLY_CORNER(C)
-
- LAZYADD(T.affecting_lights, src)
- LAZYADD(affecting_turfs, T)
- FOR_DVIEW_END
- update_gen++
- applied_lum_r = lum_r
- applied_lum_g = lum_g
- applied_lum_b = lum_b
-*/
-
/datum/light_source/proc/remove_lum()
applied = FALSE
var/thing
diff --git a/code/modules/mob/living/brain/life.dm b/code/modules/mob/living/brain/life.dm
index 9d87f412e8..c8df16a1cf 100644
--- a/code/modules/mob/living/brain/life.dm
+++ b/code/modules/mob/living/brain/life.dm
@@ -24,14 +24,6 @@
if(BR)
BR.damaged_brain = 1 //beaten to a pulp
-/* //currently unused feature, since brain outside a mmi is always dead.
-/mob/living/brain/proc/handle_brain_revival_life()
- if(stat != DEAD)
- if(config.revival_brain_life != -1)
- if( !container && (world.time - timeofhostdeath) > config.revival_brain_life)
- death()
-*/
-
/mob/living/brain/proc/handle_emp_damage()
if(emp_damage)
if(stat == DEAD)
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 36bd1893e2..3a5988e09a 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -32,7 +32,6 @@
var/aiRestorePowerRoutine = 0
var/requires_power = POWER_REQ_ALL
var/can_be_carded = TRUE
- //var/list/laws = list()
var/alarms = list("Motion"=list(), "Fire"=list(), "Atmosphere"=list(), "Power"=list(), "Camera"=list(), "Burglar"=list())
var/viewalerts = 0
var/icon/holo_icon//Default is assigned when AI is created.
@@ -172,7 +171,6 @@
if(incapacitated())
return
- //if(icon_state == initial(icon_state))
var/icontype = input("Please, select a display!", "AI", null/*, null*/) in list("Clown", "Monochrome", "Blue", "Inverted", "Firewall", "Green", "Red", "Static", "Red October", "House", "Heartline", "Hades", "Helios", "President", "Syndicat Meow", "Alien", "Too Deep", "Triumvirate", "Triumvirate-M", "Text", "Matrix", "Dorf", "Bliss", "Not Malf", "Fuzzy", "Goon", "Database", "Glitchman", "Murica", "Nanotrasen", "Gentoo", "Angel")
if(icontype == "Clown")
icon_state = "ai-clown2"
@@ -238,9 +236,6 @@
icon_state = "ai-gentoo"
else if(icontype == "Angel")
icon_state = "ai-angel"
- //else
- //to_chat(usr, "You can only change your display once!")
- //return
/mob/living/silicon/ai/Stat()
..()
diff --git a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm
index 812e207249..48ca0ac19c 100644
--- a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm
+++ b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm
@@ -1,161 +1,149 @@
-// CAMERA NET
-//
-// The datum containing all the chunks.
-
-#define CHUNK_SIZE 16 // Only chunk sizes that are to the power of 2. E.g: 2, 4, 8, 16, etc..
-
-GLOBAL_DATUM_INIT(cameranet, /datum/cameranet, new)
-
-/datum/cameranet
- var/name = "Camera Net" // Name to show for VV and stat()
-
- // The cameras on the map, no matter if they work or not. Updated in obj/machinery/camera.dm by New() and Del().
- var/list/cameras = list()
- // The chunks of the map, mapping the areas that the cameras can see.
- var/list/chunks = list()
- var/ready = 0
-
- // The object used for the clickable stat() button.
- var/obj/effect/statclick/statclick
-
-// Checks if a chunk has been Generated in x, y, z.
-/datum/cameranet/proc/chunkGenerated(x, y, z)
- x &= ~(CHUNK_SIZE - 1)
- y &= ~(CHUNK_SIZE - 1)
- var/key = "[x],[y],[z]"
- return (chunks[key])
-
-// Returns the chunk in the x, y, z.
-// If there is no chunk, it creates a new chunk and returns that.
-/datum/cameranet/proc/getCameraChunk(x, y, z)
- x &= ~(CHUNK_SIZE - 1)
- y &= ~(CHUNK_SIZE - 1)
- var/key = "[x],[y],[z]"
- if(!chunks[key])
- chunks[key] = new /datum/camerachunk(null, x, y, z)
-
- return chunks[key]
-
-// Updates what the aiEye can see. It is recommended you use this when the aiEye moves or it's location is set.
-
-/datum/cameranet/proc/visibility(mob/camera/aiEye/ai)
- // 0xf = 15
- var/x1 = max(0, ai.x - 16) & ~(CHUNK_SIZE - 1)
- var/y1 = max(0, ai.y - 16) & ~(CHUNK_SIZE - 1)
- var/x2 = min(world.maxx, ai.x + 16) & ~(CHUNK_SIZE - 1)
- var/y2 = min(world.maxy, ai.y + 16) & ~(CHUNK_SIZE - 1)
-
- var/list/visibleChunks = list()
-
- for(var/x = x1; x <= x2; x += CHUNK_SIZE)
- for(var/y = y1; y <= y2; y += CHUNK_SIZE)
- visibleChunks |= getCameraChunk(x, y, ai.z)
-
- var/list/remove = ai.visibleCameraChunks - visibleChunks
- var/list/add = visibleChunks - ai.visibleCameraChunks
-
- for(var/chunk in remove)
- var/datum/camerachunk/c = chunk
- c.remove(ai)
-
- for(var/chunk in add)
- var/datum/camerachunk/c = chunk
- c.add(ai)
-
-// Updates the chunks that the turf is located in. Use this when obstacles are destroyed or when doors open.
-
-/datum/cameranet/proc/updateVisibility(atom/A, opacity_check = 1)
-
- if(!SSticker || (opacity_check && !A.opacity))
- return
- majorChunkChange(A, 2)
-
-/datum/cameranet/proc/updateChunk(x, y, z)
- // 0xf = 15
- if(!chunkGenerated(x, y, z))
- return
- var/datum/camerachunk/chunk = getCameraChunk(x, y, z)
- chunk.hasChanged()
-
-// Removes a camera from a chunk.
-
-/datum/cameranet/proc/removeCamera(obj/machinery/camera/c)
- if(c.can_use())
- majorChunkChange(c, 0)
-
-// Add a camera to a chunk.
-
-/datum/cameranet/proc/addCamera(obj/machinery/camera/c)
- if(c.can_use())
- majorChunkChange(c, 1)
-
-// Used for Cyborg cameras. Since portable cameras can be in ANY chunk.
-
-/datum/cameranet/proc/updatePortableCamera(obj/machinery/camera/c)
- if(c.can_use())
- majorChunkChange(c, 1)
- //else
- // majorChunkChange(c, 0)
-
-// Never access this proc directly!!!!
-// This will update the chunk and all the surrounding chunks.
-// It will also add the atom to the cameras list if you set the choice to 1.
-// Setting the choice to 0 will remove the camera from the chunks.
-// If you want to update the chunks around an object, without adding/removing a camera, use choice 2.
-
-/datum/cameranet/proc/majorChunkChange(atom/c, choice)
- // 0xf = 15
- if(!c)
- return
-
- var/turf/T = get_turf(c)
- if(T)
- var/x1 = max(0, T.x - (CHUNK_SIZE / 2)) & ~(CHUNK_SIZE - 1)
- var/y1 = max(0, T.y - (CHUNK_SIZE / 2)) & ~(CHUNK_SIZE - 1)
- var/x2 = min(world.maxx, T.x + (CHUNK_SIZE / 2)) & ~(CHUNK_SIZE - 1)
- var/y2 = min(world.maxy, T.y + (CHUNK_SIZE / 2)) & ~(CHUNK_SIZE - 1)
- for(var/x = x1; x <= x2; x += CHUNK_SIZE)
- for(var/y = y1; y <= y2; y += CHUNK_SIZE)
- if(chunkGenerated(x, y, T.z))
- var/datum/camerachunk/chunk = getCameraChunk(x, y, T.z)
- if(choice == 0)
- // Remove the camera.
- chunk.cameras -= c
- else if(choice == 1)
- // You can't have the same camera in the list twice.
- chunk.cameras |= c
- chunk.hasChanged()
-
-// Will check if a mob is on a viewable turf. Returns 1 if it is, otherwise returns 0.
-
-/datum/cameranet/proc/checkCameraVis(mob/living/target)
-
- // 0xf = 15
- var/turf/position = get_turf(target)
- return checkTurfVis(position)
-
-
-/datum/cameranet/proc/checkTurfVis(turf/position)
- var/datum/camerachunk/chunk = getCameraChunk(position.x, position.y, position.z)
- if(chunk)
- if(chunk.changed)
- chunk.hasChanged(1) // Update now, no matter if it's visible or not.
- if(chunk.visibleTurfs[position])
- return 1
- return 0
-
-/datum/cameranet/proc/stat_entry()
- if(!statclick)
- statclick = new/obj/effect/statclick/debug(null, "Initializing...", src)
-
- stat(name, statclick.update("Cameras: [GLOB.cameranet.cameras.len] | Chunks: [GLOB.cameranet.chunks.len]"))
-
-// Debug verb for VVing the chunk that the turf is in.
-/*
-/turf/verb/view_chunk()
- set src in world
-
- if(cameranet.chunkGenerated(x, y, z))
- var/datum/camerachunk/chunk = cameranet.getCameraChunk(x, y, z)
- usr.client.debug_variables(chunk)
-*/
+// CAMERA NET
+//
+// The datum containing all the chunks.
+
+#define CHUNK_SIZE 16 // Only chunk sizes that are to the power of 2. E.g: 2, 4, 8, 16, etc..
+
+GLOBAL_DATUM_INIT(cameranet, /datum/cameranet, new)
+
+/datum/cameranet
+ var/name = "Camera Net" // Name to show for VV and stat()
+
+ // The cameras on the map, no matter if they work or not. Updated in obj/machinery/camera.dm by New() and Del().
+ var/list/cameras = list()
+ // The chunks of the map, mapping the areas that the cameras can see.
+ var/list/chunks = list()
+ var/ready = 0
+
+ // The object used for the clickable stat() button.
+ var/obj/effect/statclick/statclick
+
+// Checks if a chunk has been Generated in x, y, z.
+/datum/cameranet/proc/chunkGenerated(x, y, z)
+ x &= ~(CHUNK_SIZE - 1)
+ y &= ~(CHUNK_SIZE - 1)
+ var/key = "[x],[y],[z]"
+ return (chunks[key])
+
+// Returns the chunk in the x, y, z.
+// If there is no chunk, it creates a new chunk and returns that.
+/datum/cameranet/proc/getCameraChunk(x, y, z)
+ x &= ~(CHUNK_SIZE - 1)
+ y &= ~(CHUNK_SIZE - 1)
+ var/key = "[x],[y],[z]"
+ if(!chunks[key])
+ chunks[key] = new /datum/camerachunk(null, x, y, z)
+
+ return chunks[key]
+
+// Updates what the aiEye can see. It is recommended you use this when the aiEye moves or it's location is set.
+
+/datum/cameranet/proc/visibility(mob/camera/aiEye/ai)
+ // 0xf = 15
+ var/x1 = max(0, ai.x - 16) & ~(CHUNK_SIZE - 1)
+ var/y1 = max(0, ai.y - 16) & ~(CHUNK_SIZE - 1)
+ var/x2 = min(world.maxx, ai.x + 16) & ~(CHUNK_SIZE - 1)
+ var/y2 = min(world.maxy, ai.y + 16) & ~(CHUNK_SIZE - 1)
+
+ var/list/visibleChunks = list()
+
+ for(var/x = x1; x <= x2; x += CHUNK_SIZE)
+ for(var/y = y1; y <= y2; y += CHUNK_SIZE)
+ visibleChunks |= getCameraChunk(x, y, ai.z)
+
+ var/list/remove = ai.visibleCameraChunks - visibleChunks
+ var/list/add = visibleChunks - ai.visibleCameraChunks
+
+ for(var/chunk in remove)
+ var/datum/camerachunk/c = chunk
+ c.remove(ai)
+
+ for(var/chunk in add)
+ var/datum/camerachunk/c = chunk
+ c.add(ai)
+
+// Updates the chunks that the turf is located in. Use this when obstacles are destroyed or when doors open.
+
+/datum/cameranet/proc/updateVisibility(atom/A, opacity_check = 1)
+
+ if(!SSticker || (opacity_check && !A.opacity))
+ return
+ majorChunkChange(A, 2)
+
+/datum/cameranet/proc/updateChunk(x, y, z)
+ // 0xf = 15
+ if(!chunkGenerated(x, y, z))
+ return
+ var/datum/camerachunk/chunk = getCameraChunk(x, y, z)
+ chunk.hasChanged()
+
+// Removes a camera from a chunk.
+
+/datum/cameranet/proc/removeCamera(obj/machinery/camera/c)
+ if(c.can_use())
+ majorChunkChange(c, 0)
+
+// Add a camera to a chunk.
+
+/datum/cameranet/proc/addCamera(obj/machinery/camera/c)
+ if(c.can_use())
+ majorChunkChange(c, 1)
+
+// Used for Cyborg cameras. Since portable cameras can be in ANY chunk.
+
+/datum/cameranet/proc/updatePortableCamera(obj/machinery/camera/c)
+ if(c.can_use())
+ majorChunkChange(c, 1)
+
+// Never access this proc directly!!!!
+// This will update the chunk and all the surrounding chunks.
+// It will also add the atom to the cameras list if you set the choice to 1.
+// Setting the choice to 0 will remove the camera from the chunks.
+// If you want to update the chunks around an object, without adding/removing a camera, use choice 2.
+
+/datum/cameranet/proc/majorChunkChange(atom/c, choice)
+ // 0xf = 15
+ if(!c)
+ return
+
+ var/turf/T = get_turf(c)
+ if(T)
+ var/x1 = max(0, T.x - (CHUNK_SIZE / 2)) & ~(CHUNK_SIZE - 1)
+ var/y1 = max(0, T.y - (CHUNK_SIZE / 2)) & ~(CHUNK_SIZE - 1)
+ var/x2 = min(world.maxx, T.x + (CHUNK_SIZE / 2)) & ~(CHUNK_SIZE - 1)
+ var/y2 = min(world.maxy, T.y + (CHUNK_SIZE / 2)) & ~(CHUNK_SIZE - 1)
+ for(var/x = x1; x <= x2; x += CHUNK_SIZE)
+ for(var/y = y1; y <= y2; y += CHUNK_SIZE)
+ if(chunkGenerated(x, y, T.z))
+ var/datum/camerachunk/chunk = getCameraChunk(x, y, T.z)
+ if(choice == 0)
+ // Remove the camera.
+ chunk.cameras -= c
+ else if(choice == 1)
+ // You can't have the same camera in the list twice.
+ chunk.cameras |= c
+ chunk.hasChanged()
+
+// Will check if a mob is on a viewable turf. Returns 1 if it is, otherwise returns 0.
+
+/datum/cameranet/proc/checkCameraVis(mob/living/target)
+
+ // 0xf = 15
+ var/turf/position = get_turf(target)
+ return checkTurfVis(position)
+
+
+/datum/cameranet/proc/checkTurfVis(turf/position)
+ var/datum/camerachunk/chunk = getCameraChunk(position.x, position.y, position.z)
+ if(chunk)
+ if(chunk.changed)
+ chunk.hasChanged(1) // Update now, no matter if it's visible or not.
+ if(chunk.visibleTurfs[position])
+ return 1
+ return 0
+
+/datum/cameranet/proc/stat_entry()
+ if(!statclick)
+ statclick = new/obj/effect/statclick/debug(null, "Initializing...", src)
+
+ stat(name, statclick.update("Cameras: [GLOB.cameranet.cameras.len] | Chunks: [GLOB.cameranet.chunks.len]"))
diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm
index 8593eafc37..13f0609c0d 100644
--- a/code/modules/mob/living/silicon/ai/say.dm
+++ b/code/modules/mob/living/silicon/ai/say.dm
@@ -138,14 +138,6 @@
for(var/word in words)
play_vox_word(word, src.z, null)
-/*
- for(var/mob/M in player_list)
- if(M.client)
- var/turf/T = get_turf(M)
- var/turf/our_turf = get_turf(src)
- if(T.z == our_turf.z)
- to_chat(M, "AI announcement: [message]")
-*/
/proc/play_vox_word(word, z_level, mob/only_listener)
diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm
index e21abfc6b2..7df929f20a 100644
--- a/code/modules/mob/living/silicon/pai/software.dm
+++ b/code/modules/mob/living/silicon/pai/software.dm
@@ -588,7 +588,6 @@
if(!istype(machine, /obj/machinery/door))
dat += "Connected device's firmware does not appear to be compatible with Airlock Jack protocols.
"
return dat
-// var/obj/machinery/airlock/door = machine
if(!hackdoor)
dat += "Begin Airlock Jacking
"
diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm
index 81e99abcc6..c566aaf082 100644
--- a/code/modules/mob/living/silicon/robot/inventory.dm
+++ b/code/modules/mob/living/silicon/robot/inventory.dm
@@ -1,215 +1,214 @@
-//These procs handle putting stuff in your hand. It's probably best to use these rather than setting stuff manually
-//as they handle all relevant stuff like adding it to the player's screen and such
-
-//Returns the thing in our active hand (whatever is in our active module-slot, in this case)
-/mob/living/silicon/robot/get_active_held_item()
- return module_active
-
-
-
-/*-------TODOOOOOOOOOO--------*/ //fuck yooooooooooooou
-/mob/living/silicon/robot/proc/uneq_module(obj/item/O)
- if(!O)
- return 0
- O.mouse_opacity = MOUSE_OPACITY_OPAQUE
- if(istype(O, /obj/item/borg/sight))
- var/obj/item/borg/sight/S = O
- sight_mode &= ~S.sight_mode
- update_sight()
- else if(istype(O, /obj/item/storage/bag/tray/))
- var/obj/item/storage/bag/tray/T = O
- T.do_quick_empty()
- if(client)
- client.screen -= O
- observer_screen_update(O,FALSE)
- O.forceMove(module) //Return item to module so it appears in its contents, so it can be taken out again.
-
- if(O.flags_1 & DROPDEL_1)
- O.flags_1 &= ~DROPDEL_1 //we shouldn't HAVE things with DROPDEL_1 in our modules, but better safe than runtiming horribly
-
- O.dropped(src)
-
- if(module_active == O)
- module_active = null
- if(held_items[1] == O)
- inv1.icon_state = "inv1"
- held_items[1] = null
- else if(held_items[2] == O)
- inv2.icon_state = "inv2"
- held_items[2] = null
- else if(held_items[3] == O)
- inv3.icon_state = "inv3"
- held_items[3] = null
- hud_used.update_robot_modules_display()
- return 1
-
-/mob/living/silicon/robot/proc/activate_module(obj/item/O)
- . = FALSE
- if(!(O in module.modules))
- return
- if(activated(O))
- to_chat(src, "That module is already activated.")
- return
- if(!held_items[1])
- held_items[1] = O
- O.screen_loc = inv1.screen_loc
- . = TRUE
- else if(!held_items[2])
- held_items[2] = O
- O.screen_loc = inv2.screen_loc
- . = TRUE
- else if(!held_items[3])
- held_items[3] = O
- O.screen_loc = inv3.screen_loc
- . = TRUE
- else
- to_chat(src, "You need to disable a module first!")
- if(.)
- O.equipped(src, slot_hands)
- O.mouse_opacity = initial(O.mouse_opacity)
- O.layer = ABOVE_HUD_LAYER
- O.plane = ABOVE_HUD_PLANE
- observer_screen_update(O,TRUE)
- O.forceMove(src)
- if(istype(O, /obj/item/borg/sight))
- var/obj/item/borg/sight/S = O
- sight_mode |= S.sight_mode
- update_sight()
-
-
-/mob/living/silicon/robot/proc/observer_screen_update(obj/item/I,add = TRUE)
- if(observers && observers.len)
- for(var/M in observers)
- var/mob/dead/observe = M
- if(observe.client && observe.client.eye == src)
- if(add)
- observe.client.screen += I
- else
- observe.client.screen -= I
- else
- observers -= observe
- if(!observers.len)
- observers = null
- break
-
-/mob/living/silicon/robot/proc/uneq_active()
- uneq_module(module_active)
-
-/mob/living/silicon/robot/proc/uneq_all()
- for(var/obj/item/I in held_items)
- uneq_module(I)
-
-/mob/living/silicon/robot/proc/activated(obj/item/O)
- if(O in held_items)
- return TRUE
- return FALSE
-
-//Helper procs for cyborg modules on the UI.
-//These are hackish but they help clean up code elsewhere.
-
-//module_selected(module) - Checks whether the module slot specified by "module" is currently selected.
-/mob/living/silicon/robot/proc/module_selected(module) //Module is 1-3
- return module == get_selected_module()
-
-//module_active(module) - Checks whether there is a module active in the slot specified by "module".
-/mob/living/silicon/robot/proc/module_active(module) //Module is 1-3
- if(module < 1 || module > 3)
- return FALSE
-
- if(LAZYLEN(held_items) >= module)
- if(held_items[module])
- return TRUE
- return FALSE
-
-//get_selected_module() - Returns the slot number of the currently selected module. Returns 0 if no modules are selected.
-/mob/living/silicon/robot/proc/get_selected_module()
- if(module_active)
- return held_items.Find(module_active)
-
- return 0
-
-//select_module(module) - Selects the module slot specified by "module"
-/mob/living/silicon/robot/proc/select_module(module) //Module is 1-3
- if(module < 1 || module > 3)
- return
-
- if(!module_active(module))
- return
-
- switch(module)
- if(1)
- if(module_active != held_items[module])
- inv1.icon_state = "inv1 +a"
- inv2.icon_state = "inv2"
- inv3.icon_state = "inv3"
- if(2)
- if(module_active != held_items[module])
- inv1.icon_state = "inv1"
- inv2.icon_state = "inv2 +a"
- inv3.icon_state = "inv3"
- if(3)
- if(module_active != held_items[module])
- inv1.icon_state = "inv1"
- inv2.icon_state = "inv2"
- inv3.icon_state = "inv3 +a"
- module_active = held_items[module]
-
-//deselect_module(module) - Deselects the module slot specified by "module"
-/mob/living/silicon/robot/proc/deselect_module(module) //Module is 1-3
- if(module < 1 || module > 3)
- return
-
- if(!module_active(module))
- return
-
- switch(module)
- if(1)
- if(module_active == held_items[module])
- inv1.icon_state = "inv1"
- if(2)
- if(module_active == held_items[module])
- inv2.icon_state = "inv2"
- if(3)
- if(module_active == held_items[module])
- inv3.icon_state = "inv3"
- module_active = null
-
-//toggle_module(module) - Toggles the selection of the module slot specified by "module".
-/mob/living/silicon/robot/proc/toggle_module(module) //Module is 1-3
- if(module < 1 || module > 3)
- return
-
- if(module_selected(module))
- deselect_module(module)
- else
- if(module_active(module))
- select_module(module)
- else
- deselect_module(get_selected_module()) //If we can't do select anything, at least deselect the current module.
- return
-
-//cycle_modules() - Cycles through the list of selected modules.
-/mob/living/silicon/robot/proc/cycle_modules()
- var/slot_start = get_selected_module()
- if(slot_start)
- deselect_module(slot_start) //Only deselect if we have a selected slot.
-
- var/slot_num
- if(slot_start == 0)
- slot_num = 1
- slot_start = 4
- else
- slot_num = slot_start + 1
-
- while(slot_num != slot_start) //If we wrap around without finding any free slots, just give up.
- if(module_active(slot_num))
- select_module(slot_num)
- return
- slot_num++
- if(slot_num > 4) // not >3 otherwise cycling with just one item on module 3 wouldn't work
- slot_num = 1 //Wrap around.
-
-
-
-/mob/living/silicon/robot/swap_hand()
- cycle_modules()
+//These procs handle putting stuff in your hand. It's probably best to use these rather than setting stuff manually
+//as they handle all relevant stuff like adding it to the player's screen and such
+
+//Returns the thing in our active hand (whatever is in our active module-slot, in this case)
+/mob/living/silicon/robot/get_active_held_item()
+ return module_active
+
+
+
+/mob/living/silicon/robot/proc/uneq_module(obj/item/O)
+ if(!O)
+ return 0
+ O.mouse_opacity = MOUSE_OPACITY_OPAQUE
+ if(istype(O, /obj/item/borg/sight))
+ var/obj/item/borg/sight/S = O
+ sight_mode &= ~S.sight_mode
+ update_sight()
+ else if(istype(O, /obj/item/storage/bag/tray/))
+ var/obj/item/storage/bag/tray/T = O
+ T.do_quick_empty()
+ if(client)
+ client.screen -= O
+ observer_screen_update(O,FALSE)
+ O.forceMove(module) //Return item to module so it appears in its contents, so it can be taken out again.
+
+ if(O.flags_1 & DROPDEL_1)
+ O.flags_1 &= ~DROPDEL_1 //we shouldn't HAVE things with DROPDEL_1 in our modules, but better safe than runtiming horribly
+
+ O.dropped(src)
+
+ if(module_active == O)
+ module_active = null
+ if(held_items[1] == O)
+ inv1.icon_state = "inv1"
+ held_items[1] = null
+ else if(held_items[2] == O)
+ inv2.icon_state = "inv2"
+ held_items[2] = null
+ else if(held_items[3] == O)
+ inv3.icon_state = "inv3"
+ held_items[3] = null
+ hud_used.update_robot_modules_display()
+ return 1
+
+/mob/living/silicon/robot/proc/activate_module(obj/item/O)
+ . = FALSE
+ if(!(O in module.modules))
+ return
+ if(activated(O))
+ to_chat(src, "That module is already activated.")
+ return
+ if(!held_items[1])
+ held_items[1] = O
+ O.screen_loc = inv1.screen_loc
+ . = TRUE
+ else if(!held_items[2])
+ held_items[2] = O
+ O.screen_loc = inv2.screen_loc
+ . = TRUE
+ else if(!held_items[3])
+ held_items[3] = O
+ O.screen_loc = inv3.screen_loc
+ . = TRUE
+ else
+ to_chat(src, "You need to disable a module first!")
+ if(.)
+ O.equipped(src, slot_hands)
+ O.mouse_opacity = initial(O.mouse_opacity)
+ O.layer = ABOVE_HUD_LAYER
+ O.plane = ABOVE_HUD_PLANE
+ observer_screen_update(O,TRUE)
+ O.forceMove(src)
+ if(istype(O, /obj/item/borg/sight))
+ var/obj/item/borg/sight/S = O
+ sight_mode |= S.sight_mode
+ update_sight()
+
+
+/mob/living/silicon/robot/proc/observer_screen_update(obj/item/I,add = TRUE)
+ if(observers && observers.len)
+ for(var/M in observers)
+ var/mob/dead/observe = M
+ if(observe.client && observe.client.eye == src)
+ if(add)
+ observe.client.screen += I
+ else
+ observe.client.screen -= I
+ else
+ observers -= observe
+ if(!observers.len)
+ observers = null
+ break
+
+/mob/living/silicon/robot/proc/uneq_active()
+ uneq_module(module_active)
+
+/mob/living/silicon/robot/proc/uneq_all()
+ for(var/obj/item/I in held_items)
+ uneq_module(I)
+
+/mob/living/silicon/robot/proc/activated(obj/item/O)
+ if(O in held_items)
+ return TRUE
+ return FALSE
+
+//Helper procs for cyborg modules on the UI.
+//These are hackish but they help clean up code elsewhere.
+
+//module_selected(module) - Checks whether the module slot specified by "module" is currently selected.
+/mob/living/silicon/robot/proc/module_selected(module) //Module is 1-3
+ return module == get_selected_module()
+
+//module_active(module) - Checks whether there is a module active in the slot specified by "module".
+/mob/living/silicon/robot/proc/module_active(module) //Module is 1-3
+ if(module < 1 || module > 3)
+ return FALSE
+
+ if(LAZYLEN(held_items) >= module)
+ if(held_items[module])
+ return TRUE
+ return FALSE
+
+//get_selected_module() - Returns the slot number of the currently selected module. Returns 0 if no modules are selected.
+/mob/living/silicon/robot/proc/get_selected_module()
+ if(module_active)
+ return held_items.Find(module_active)
+
+ return 0
+
+//select_module(module) - Selects the module slot specified by "module"
+/mob/living/silicon/robot/proc/select_module(module) //Module is 1-3
+ if(module < 1 || module > 3)
+ return
+
+ if(!module_active(module))
+ return
+
+ switch(module)
+ if(1)
+ if(module_active != held_items[module])
+ inv1.icon_state = "inv1 +a"
+ inv2.icon_state = "inv2"
+ inv3.icon_state = "inv3"
+ if(2)
+ if(module_active != held_items[module])
+ inv1.icon_state = "inv1"
+ inv2.icon_state = "inv2 +a"
+ inv3.icon_state = "inv3"
+ if(3)
+ if(module_active != held_items[module])
+ inv1.icon_state = "inv1"
+ inv2.icon_state = "inv2"
+ inv3.icon_state = "inv3 +a"
+ module_active = held_items[module]
+
+//deselect_module(module) - Deselects the module slot specified by "module"
+/mob/living/silicon/robot/proc/deselect_module(module) //Module is 1-3
+ if(module < 1 || module > 3)
+ return
+
+ if(!module_active(module))
+ return
+
+ switch(module)
+ if(1)
+ if(module_active == held_items[module])
+ inv1.icon_state = "inv1"
+ if(2)
+ if(module_active == held_items[module])
+ inv2.icon_state = "inv2"
+ if(3)
+ if(module_active == held_items[module])
+ inv3.icon_state = "inv3"
+ module_active = null
+
+//toggle_module(module) - Toggles the selection of the module slot specified by "module".
+/mob/living/silicon/robot/proc/toggle_module(module) //Module is 1-3
+ if(module < 1 || module > 3)
+ return
+
+ if(module_selected(module))
+ deselect_module(module)
+ else
+ if(module_active(module))
+ select_module(module)
+ else
+ deselect_module(get_selected_module()) //If we can't do select anything, at least deselect the current module.
+ return
+
+//cycle_modules() - Cycles through the list of selected modules.
+/mob/living/silicon/robot/proc/cycle_modules()
+ var/slot_start = get_selected_module()
+ if(slot_start)
+ deselect_module(slot_start) //Only deselect if we have a selected slot.
+
+ var/slot_num
+ if(slot_start == 0)
+ slot_num = 1
+ slot_start = 4
+ else
+ slot_num = slot_start + 1
+
+ while(slot_num != slot_start) //If we wrap around without finding any free slots, just give up.
+ if(module_active(slot_num))
+ select_module(slot_num)
+ return
+ slot_num++
+ if(slot_num > 4) // not >3 otherwise cycling with just one item on module 3 wouldn't work
+ slot_num = 1 //Wrap around.
+
+
+
+/mob/living/silicon/robot/swap_hand()
+ cycle_modules()
diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm
index 6ff04231af..641e78a0f3 100644
--- a/code/modules/mob/living/simple_animal/parrot.dm
+++ b/code/modules/mob/living/simple_animal/parrot.dm
@@ -70,8 +70,6 @@
var/parrot_dam_zone = list("chest", "head", "l_arm", "l_leg", "r_arm", "r_leg") //For humans, select a bodypart to attack
var/parrot_speed = 5 //"Delay in world ticks between movement." according to byond. Yeah, that's BS but it does directly affect movement. Higher number = slower.
- //var/parrot_been_shot = 0 this wasn't working right, and parrots don't survive bullets.((Parrots get a speed bonus after being shot. This will deincrement every Life() and at 0 the parrot will return to regular speed.))
-
var/parrot_lastmove = null //Updates/Stores position of the parrot while it's moving
var/parrot_stuck = 0 //If parrot_lastmove hasnt changed, this will increment until it reaches parrot_stuck_threshold
var/parrot_stuck_threshold = 10 //if this == parrot_stuck, it'll force the parrot back to wandering
@@ -547,8 +545,6 @@
parrot_state = PARROT_WANDER
walk_away(src, parrot_interest, 1, parrot_speed)
- /*if(parrot_been_shot > 0)
- parrot_been_shot-- didn't work anyways, and besides, any bullet poly survives isn't worth the speed boost.*/
if(isStuck())
return
diff --git a/code/modules/mob/living/simple_animal/slime/life.dm b/code/modules/mob/living/simple_animal/slime/life.dm
index 0ec41119dc..6cc1df085c 100644
--- a/code/modules/mob/living/simple_animal/slime/life.dm
+++ b/code/modules/mob/living/simple_animal/slime/life.dm
@@ -112,7 +112,6 @@
if(!environment)
return
- //var/environment_heat_capacity = environment.heat_capacity()
var/loc_temp = get_temperature(environment)
bodytemperature += adjust_body_temperature(bodytemperature, loc_temp, 1)
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index df80302743..9a9b161e51 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -420,18 +420,6 @@
I.attack_self(src)
update_inv_hands()
-
-/*
-/mob/verb/dump_source()
-
- var/master = ""
- for(var/t in typesof(/area))
- master += text("[]\n", t)
- //Foreach goto(26)
- src << browse(master)
- return
-*/
-
/mob/verb/memory()
set name = "Notes"
set category = "IC"
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index 525e6ecb2c..58cb82714e 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -110,9 +110,6 @@
var/list/mob_spell_list = list() //construct spells and mime spells. Spells that do not transfer from one mob to another and can not be lost in mindswap.
-//Changlings, but can be used in other modes
-// var/obj/effect/proc_holder/changpower/list/power_list = list()
-
//List of active diseases
var/list/viruses = list() // list of all diseases in a mob
diff --git a/code/modules/modular_computers/file_system/programs/sm_monitor.dm b/code/modules/modular_computers/file_system/programs/sm_monitor.dm
index ae719c9bc4..2141f4fdd7 100644
--- a/code/modules/modular_computers/file_system/programs/sm_monitor.dm
+++ b/code/modules/modular_computers/file_system/programs/sm_monitor.dm
@@ -41,7 +41,6 @@
var/turf/T = get_turf(ui_host())
if(!T)
return
- //var/valid_z_levels = (GetConnectedZlevels(T.z) & using_map.station_levels)
for(var/obj/machinery/power/supermatter_shard/S in GLOB.machines)
// Delaminating, not within coverage, not on a tile.
if(!((S.z in GLOB.station_z_levels) || S.z == ZLEVEL_MINING || S.z == T.z || !isturf(S.loc)))
diff --git a/code/modules/ninja/Ninja_Readme.dm b/code/modules/ninja/Ninja_Readme.dm
deleted file mode 100644
index 2d383f9b1f..0000000000
--- a/code/modules/ninja/Ninja_Readme.dm
+++ /dev/null
@@ -1,10 +0,0 @@
-
-/*
-
-Removing Snowflake:
-- Search for NINJACODE (one word, all caps) to find Space Ninja Code outside of the /modules/ninja folder.
-
-Ninja Folder:
-- This folder contains 90% of Ninja code and will eventually contain it all, once snowflake is cleaned out
-
-*/
diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm
index 72dce2b8d2..21d157a33c 100644
--- a/code/modules/paperwork/filingcabinet.dm
+++ b/code/modules/paperwork/filingcabinet.dm
@@ -101,7 +101,6 @@
if(href_list["retrieve"])
usr << browse("", "window=filingcabinet") // Close the menu
- //var/retrieveindex = text2num(href_list["retrieve"])
var/obj/item/P = locate(href_list["retrieve"])//contents[retrieveindex]
if(istype(P) && P.loc == src && in_range(src, usr))
usr.put_in_hands(P)
diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm
index f0bcf5e9f1..327b3a716a 100644
--- a/code/modules/power/antimatter/shielding.dm
+++ b/code/modules/power/antimatter/shielding.dm
@@ -180,7 +180,6 @@
for(var/direction in GLOB.alldirs)
var/found_am_device=0
for(var/obj/machinery/machine in get_step(loc, direction))
- //var/machine = locate(/obj/machinery, get_step(loc, direction))
if(!machine)
continue//Need all for a core
if(istype(machine, /obj/machinery/am_shielding) || istype(machine, /obj/machinery/power/am_control_unit))
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index ce1148f985..35d104819f 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -1052,15 +1052,6 @@
force_update = 1
return
- /*
- if (equipment > 1) // off=0, off auto=1, on=2, on auto=3
- use_power(src.equip_consumption, EQUIP)
- if (lighting > 1) // off=0, off auto=1, on=2, on auto=3
- use_power(src.light_consumption, LIGHT)
- if (environ > 1) // off=0, off auto=1, on=2, on auto=3
- use_power(src.environ_consumption, ENVIRON)
-
- area.calc_lighting() */
lastused_light = area.usage(STATIC_LIGHT)
lastused_light += area.usage(LIGHT)
lastused_equip = area.usage(EQUIP)
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index 040a05c1cb..3e57ae2689 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -111,12 +111,6 @@
/obj/item/stock_parts/cell/proc/explode()
var/turf/T = get_turf(src.loc)
-/*
- * 1000-cell explosion(T, -1, 0, 1, 1)
- * 2500-cell explosion(T, -1, 0, 1, 1)
- * 10000-cell explosion(T, -1, 1, 3, 3)
- * 15000-cell explosion(T, -1, 2, 4, 4)
- * */
if (charge==0)
return
var/devastation_range = -1 //round(charge/11000)
diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm
index 5369686b31..6a8c6ec5ec 100644
--- a/code/modules/power/generator.dm
+++ b/code/modules/power/generator.dm
@@ -1,12 +1,3 @@
-// dummy generator object for testing
-
-/*/obj/machinery/power/generator/verb/set_amount(var/g as num)
- set src in view(1)
-
- gen_amount = g
-
-*/
-
/obj/machinery/power/generator
name = "thermoelectric generator"
desc = "It's a high efficiency thermoelectric generator."
diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm
index d17071eeb3..933cfc70e0 100644
--- a/code/modules/power/power.dm
+++ b/code/modules/power/power.dm
@@ -188,7 +188,6 @@
// if unmarked==1, only return those with no powernet
/proc/power_list(turf/T, source, d, unmarked=0, cable_only = 0)
. = list()
- //var/fdir = (!d)? 0 : turn(d, 180) // the opposite direction to d (or 0 if d==0)
for(var/AM in T)
if(AM == source)
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index fc06adfe78..7596d890e0 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -152,11 +152,6 @@
/obj/machinery/power/emitter/emp_act(severity)//Emitters are hardened but still might have issues
-// add_load(1000)
-/* if((severity == 1)&&prob(1)&&prob(1))
- if(src.active)
- src.active = 0
- src.use_power = IDLE_POWER_USE */
return 1
diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm
index 0d1a8904f4..497fc53ae3 100644
--- a/code/modules/power/turbine.dm
+++ b/code/modules/power/turbine.dm
@@ -139,7 +139,6 @@
// It's a simplified version taking only 1/10 of the moles from the turf nearby. It should be later changed into a better version
var/transfer_moles = environment.total_moles()/10
- //var/transfer_moles = rpm/10000*capacity
var/datum/gas_mixture/removed = inturf.remove_air(transfer_moles)
gas_contained.merge(removed)
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index bb26694021..a45b713b85 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -336,7 +336,6 @@
step_towards(src, locate(new_x, new_y, z))
pixel_x = old_pixel_x
pixel_y = old_pixel_y
- //var/animation_time = ((SSprojectiles.flags & SS_TICKER? (SSprojectiles.wait * world.tick_lag) : SSprojectiles.wait) / moves)
animate(src, pixel_x = pixel_x_offset, pixel_y = pixel_y_offset, time = 1, flags = ANIMATION_END_NOW)
old_pixel_x = pixel_x_offset
old_pixel_y = pixel_y_offset
diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm
index 6d541dad1a..05135e9765 100644
--- a/code/modules/recycling/conveyor2.dm
+++ b/code/modules/recycling/conveyor2.dm
@@ -179,12 +179,6 @@
if(C)
C.set_operable(stepdir, id, op)
-/*
-/obj/machinery/conveyor/verb/destroy()
- set src in view()
- src.broken()
-*/
-
/obj/machinery/conveyor/power_change()
..()
update()
diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm
index 51485380ce..6d0c32fcb1 100644
--- a/code/modules/research/designs/mechfabricator_designs.dm
+++ b/code/modules/research/designs/mechfabricator_designs.dm
@@ -191,16 +191,6 @@
construction_time = 130
category = list("Odysseus")
-/*/datum/design/odysseus_armor
- name = "Exosuit Armor (\"Odysseus\")"
- id = "odysseus_armor"
- build_type = MECHFAB
- build_path = /obj/item/mecha_parts/part/odysseus_armor
- materials = list(MAT_METAL=15000)
- construction_time = 200
- category = list("Odysseus")
- */
-
//Gygax
/datum/design/gygax_chassis
name = "Exosuit Chassis (\"Gygax\")"
diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index 1f2a3bb472..57ca602774 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -43,20 +43,6 @@
temp_list[O] = text2num(temp_list[O])
return temp_list
-/* //uncomment to enable forced reactions.
-/obj/machinery/r_n_d/experimentor/verb/forceReaction()
- set name = "Force Experimentor Reaction"
- set category = "Debug"
- set src in oview(1)
- var/reaction = input(usr,"What reaction?") in list(SCANTYPE_POKE,SCANTYPE_IRRADIATE,SCANTYPE_GAS,SCANTYPE_HEAT,SCANTYPE_COLD,SCANTYPE_OBLITERATE)
- var/oldReaction = item_reactions["[loaded_item.type]"]
- item_reactions["[loaded_item.type]"] = reaction
- experiment(item_reactions["[loaded_item.type]"],loaded_item)
- spawn(10)
- if(loaded_item)
- item_reactions["[loaded_item.type]"] = oldReaction
-*/
-
/obj/machinery/r_n_d/experimentor/proc/SetTypeReactions()
var/probWeight = 0
for(var/I in typesof(/obj/item))
diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm
index 295dd4429a..d42e43ec9a 100644
--- a/code/modules/research/message_server.dm
+++ b/code/modules/research/message_server.dm
@@ -98,8 +98,6 @@ GLOBAL_LIST_INIT(message_servers, list())
return newKey
/obj/machinery/message_server/process()
- //if(decryptkey == "password")
- // decryptkey = generateKey()
if(active && (stat & (BROKEN|NOPOWER)))
active = 0
return
diff --git a/code/modules/security_levels/security_levels.dm b/code/modules/security_levels/security_levels.dm
index a145028ad3..22f420df91 100644
--- a/code/modules/security_levels/security_levels.dm
+++ b/code/modules/security_levels/security_levels.dm
@@ -56,11 +56,6 @@ GLOBAL_VAR_INIT(security_level, 0)
else
minor_announce(CONFIG_GET(string/alert_red_downto), "Attention! Code red!")
GLOB.security_level = SEC_LEVEL_RED
-
- /* - At the time of commit, setting status displays didn't work properly
- var/obj/machinery/computer/communications/CC = locate(/obj/machinery/computer/communications,world)
- if(CC)
- CC.post_status("alert", "redalert")*/
sound_to_playing_players('sound/misc/voyalert.ogg')
for(var/obj/machinery/firealarm/FA in GLOB.machines)
if(FA.z in GLOB.station_z_levels)
@@ -116,15 +111,3 @@ GLOBAL_VAR_INIT(security_level, 0)
return SEC_LEVEL_RED
if("delta")
return SEC_LEVEL_DELTA
-
-
-/*DEBUG
-/mob/verb/set_thing0()
- set_security_level(0)
-/mob/verb/set_thing1()
- set_security_level(1)
-/mob/verb/set_thing2()
- set_security_level(2)
-/mob/verb/set_thing3()
- set_security_level(3)
-*/
diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm
index f2d451f6e2..6db6e73cff 100644
--- a/code/modules/shuttle/special.dm
+++ b/code/modules/shuttle/special.dm
@@ -140,6 +140,7 @@
name = "Bardrone"
desc = "A barkeeping drone, an indestructible robot built to tend bars."
seeStatic = FALSE
+ hacked = TRUE
laws = "1. Serve drinks.\n\
2. Talk to patrons.\n\
3. Don't get messed up in their affairs."
@@ -227,10 +228,10 @@
/obj/effect/forcefield/luxury_shuttle/CollidedWith(atom/movable/AM)
if(!isliving(AM))
return ..()
-
+
if(check_times[AM] && check_times[AM] > world.time) //Let's not spam the message
return ..()
-
+
check_times[AM] = world.time + LUXURY_MESSAGE_COOLDOWN
var/total_cash = 0
diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm
index 20a79903ef..24cfd9ab92 100644
--- a/code/modules/vehicles/scooter.dm
+++ b/code/modules/vehicles/scooter.dm
@@ -57,6 +57,9 @@
H.throw_at(throw_target, 4, 3)
H.Knockdown(100)
H.adjustStaminaLoss(40)
+ if(!istype(H.head,/obj/item/clothing/head/helmet/) && !istype(H.head,/obj/item/clothing/head/hardhat))
+ H.adjustBrainLoss(3)
+ H.updatehealth()
visible_message("[src] crashes into [A], sending [H] flying!")
playsound(src, 'sound/effects/bang.ogg', 50, 1)
@@ -131,4 +134,4 @@
var/mob/living/carbon/H = buckled_mobs[1]
unbuckle_mob(H)
S.buckle_mob(H)
- qdel(src)
\ No newline at end of file
+ qdel(src)
diff --git a/html/changelogs/AutoChangeLog-pr-4030.yml b/html/changelogs/AutoChangeLog-pr-4030.yml
new file mode 100644
index 0000000000..ca630fbfd8
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-4030.yml
@@ -0,0 +1,5 @@
+author: "zennerx"
+delete-after: True
+changes:
+ - tweak: "Skateboard crashes now give slight brain damage!"
+ - rscadd: "Using a helmet prevents brain damage from the skateboard!"
diff --git a/html/changelogs/AutoChangeLog-pr-4032.yml b/html/changelogs/AutoChangeLog-pr-4032.yml
new file mode 100644
index 0000000000..4969c5bcaf
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-4032.yml
@@ -0,0 +1,4 @@
+author: "ShizCalev"
+delete-after: True
+changes:
+ - bugfix: "PubbyStation - Unpowered air injectors in various locations have been fixed."
diff --git a/html/changelogs/AutoChangeLog-pr-4033.yml b/html/changelogs/AutoChangeLog-pr-4033.yml
new file mode 100644
index 0000000000..effc283b83
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-4033.yml
@@ -0,0 +1,5 @@
+author: "ShizCalev"
+delete-after: True
+changes:
+ - bugfix: "MetaStation - Air injector leading out of the incinerator has been fixed"
+ - bugfix: "MetaStation - Corrected a couple maintenance airlocks being powered by the wrong areas."
diff --git a/html/changelogs/AutoChangeLog-pr-4038.yml b/html/changelogs/AutoChangeLog-pr-4038.yml
new file mode 100644
index 0000000000..9500855d83
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-4038.yml
@@ -0,0 +1,4 @@
+author: "WJohnston"
+delete-after: True
+changes:
+ - bugfix: "Green banded default airlocks now have extended click area like all other airlocks."
diff --git a/html/changelogs/AutoChangeLog-pr-4043.yml b/html/changelogs/AutoChangeLog-pr-4043.yml
new file mode 100644
index 0000000000..b867396350
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-4043.yml
@@ -0,0 +1,4 @@
+author: "Francinum"
+delete-after: True
+changes:
+ - tweak: "The shuttle build plate is now better sized for all stations."
diff --git a/icons/obj/doors/airlocks/station/public.dmi b/icons/obj/doors/airlocks/station/public.dmi
index efb4600adb..ac135873a6 100644
Binary files a/icons/obj/doors/airlocks/station/public.dmi and b/icons/obj/doors/airlocks/station/public.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index b68ee744a2..cf8d759a69 100755
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -1663,7 +1663,6 @@
#include "code\modules\mob\login.dm"
#include "code\modules\mob\logout.dm"
#include "code\modules\mob\mob.dm"
-#include "code\modules\mob\mob_cleanup.dm"
#include "code\modules\mob\mob_defines.dm"
#include "code\modules\mob\mob_helpers.dm"
#include "code\modules\mob\mob_movement.dm"
@@ -2011,7 +2010,6 @@
#include "code\modules\ninja\__ninjaDefines.dm"
#include "code\modules\ninja\energy_katana.dm"
#include "code\modules\ninja\ninja_event.dm"
-#include "code\modules\ninja\Ninja_Readme.dm"
#include "code\modules\ninja\outfit.dm"
#include "code\modules\ninja\suit\gloves.dm"
#include "code\modules\ninja\suit\head.dm"
@@ -2060,7 +2058,6 @@
#include "code\modules\power\rtg.dm"
#include "code\modules\power\smes.dm"
#include "code\modules\power\solar.dm"
-#include "code\modules\power\switch.dm"
#include "code\modules\power\terminal.dm"
#include "code\modules\power\tracker.dm"
#include "code\modules\power\turbine.dm"