diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm
index 3cc4b8e28cb..739c4370d6b 100644
--- a/_maps/map_files/cyberiad/cyberiad.dmm
+++ b/_maps/map_files/cyberiad/cyberiad.dmm
@@ -5137,6 +5137,7 @@
"bUO" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'BOMB RANGE"; name = "BOMB RANGE"},/turf/simulated/wall/r_wall,/area/toxins/test_area)
"bUP" = (/turf/simulated/shuttle/floor,/area/shuttle/mining/station)
"bUQ" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/mining/station)
+"bUR" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/autolathe{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/bodyscanner,/obj/item/weapon/circuitboard/bodyscanner_console,/obj/item/weapon/circuitboard/sleeper{pixel_x = 3},/obj/item/weapon/circuitboard/sleep_console{pixel_x = 3},/turf/simulated/floor/plating,/area/storage/tech)
"bUS" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "mining_dock_pump"},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/quartermaster/miningdock)
"bUT" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "mining_dock_airlock"; pixel_x = 25; pixel_y = -5; req_access_txt = "0"; req_one_access_txt = "13;48"; tag_airpump = "mining_dock_pump"; tag_chamber_sensor = "mining_dock_sensor"; tag_exterior_door = "mining_dock_outer"; tag_interior_door = "mining_dock_inner"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "mining_dock_sensor"; pixel_x = 25; pixel_y = 8},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1},/obj/item/weapon/ore/iron,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/quartermaster/miningdock)
"bUU" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/wall,/area/quartermaster/miningdock)
@@ -5901,7 +5902,6 @@
"cki" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/storage/tech)
"ckj" = (/obj/structure/table,/obj/item/device/aicard,/obj/item/weapon/aiModule/reset,/turf/simulated/floor/plating,/area/storage/tech)
"ckk" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/rdconsole{pixel_x = -4},/obj/item/weapon/circuitboard/rdserver{pixel_x = 4; pixel_y = -2},/obj/item/weapon/circuitboard/destructive_analyzer,/obj/item/weapon/circuitboard/protolathe{pixel_x = -2; pixel_y = 3},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/weapon/circuitboard/circuit_imprinter{pixel_x = -4; pixel_y = -3},/turf/simulated/floor/plating,/area/storage/tech)
-"ckl" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/autolathe{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/pandemic{pixel_x = -3; pixel_y = 3},/obj/item/weapon/circuitboard/bodyscanner,/obj/item/weapon/circuitboard/bodyscanner_console,/obj/item/weapon/circuitboard/sleeper{pixel_x = 3},/obj/item/weapon/circuitboard/sleep_console{pixel_x = 3},/turf/simulated/floor/plating,/area/storage/tech)
"ckm" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/message_monitor{pixel_y = -5},/obj/item/weapon/circuitboard/arcade/battle,/obj/item/weapon/circuitboard/arcade/orion_trail{pixel_x = -4; pixel_y = 2},/turf/simulated/floor/plating,/area/storage/tech)
"ckn" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor/plating,/area/storage/tech)
"cko" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft)
@@ -8118,7 +8118,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccZcgfcgecggbTCceIcghcghcghcghcghcghbTIbTIbTIbTIbTIbTIbTIcgicgjcgkcglcgmcgncgocgocgpcgqcfbbHTbHTcgrcgscgtbHTbHTbHTcgucgvcgwcdEcgxcgycgzcfucgAcgBcgCbQWcgBcgDcdTcdTcdTcdTcdTcdTcgBcdTcdTcdTbQWcgEcgFcgGcgHcgIcgJcgKcgLcaAcgMcgNcehcgOcehcgPcgQcgRcgScgTcgUcgVbzwcgWceobXVcgXbDbbDicgYcgZchabumbvWbvWbThchbchcchdchechfchgchhchichjchkchlbThchmchnchochpaacaacaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaachqbWFbWFbWFbWFbWFbWFbWFchrchsbWHbWHbWHbWHchtbdqbUNaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccZccZccZccZbTCceIccZaaaaaaaaaaaachuchvchwchxchychzchAchBchCchDchEbhrchGchHchIchIchJchKchLchMchMchMchMchNchMbHTbHTbNRchOchPchQchRchSchTcgIchUchVchWchXchYchZciacdTcdTcibcicbhsciebhscicbEDcifcigcigcihciicijcakcikcilcaAcimcinciocipciqcirciscaAcaAbDbcitbDbbDbbDbciucivciwbDbbvWcgYcixciybumbumbumbThbThbThbThbThbThbThbThbThbThbThbThbThbThbThbThbThaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabUNcbicbicbicbicbicbicizbWHcbhcbiciAbWHbWHbWHbWHbUNaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciBaaaaabaabciCciCciCciCciCciCciDciCbTCcdbbhtaaabhubjJbhYbjYciJciKciLciMciNciOciPciQciRciSciTciUciVciWciXciYciZchLcjacjbcjbcjbcjcchMbHTbHTcjdcjdcjdcjdcjecjdcjfcjfcjgcjdcjdcjhcjdcjicjjbkycjlbkycjmcjncjocjpcjqbuXbuXcjrcjscjtcjucjvcjwcjxcbScaAcaAcjycaAcjzcaAcjAcjBcjCcfdcjDcjFcjGcjHcjIcjJcjKcjLcjIbvWcgYcjMbvWcjNcjOcjPcjQcfQbvWbvWbvWbvWbvWbvWbvWcjRcjEaZCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUNbWHbWHbWHbWHbWHbWHceDbWHciAbWHbWHbWHbWHbWHbUNbUNaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjTcjUcjUcjUbkzcjWcjXcjYcjZckackbckccjScdbbhtaaabmZckgckhckickjciKckkcklckmcknchBckoceTbZUbhrckpcgockqcgockrcksbneckuckvckvckvckwchMbHTbHTcjdckxckyckzckAckBckCckCckDckEckFckGckHckIckJckKcdXcdXckLckMckNckOckPaaaaaacjvckQckRckScjrckdckUckVckWckWckXbGickYckZclaclbckZckZckZclcckZckZcldcleclfclgclhclicljclkbWycllclmbWybWybWybWyclnclobWybWybWybWyclpbvWaZCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUNbUNccYbWHbWHbWHbWHbWHbWHbWHbWHbWHbWHbWHbUNbUNaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjTcjUcjUcjUbkzcjWcjXcjYcjZckackbckccjScdbbhtaaabmZckgckhckickjciKckkbURckmcknchBckoceTbZUbhrckpcgockqcgockrcksbneckuckvckvckvckwchMbHTbHTcjdckxckyckzckAckBckCckCckDckEckFckGckHckIckJckKcdXcdXckLckMckNckOckPaaaaaacjvckQckRckScjrckdckUckVckWckWckXbGickYckZclaclbckZckZckZclcckZckZcldcleclfclgclhclicljclkbWycllclmbWybWybWybWyclnclobWybWybWybWyclpbvWaZCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUNbUNccYbWHbWHbWHbWHbWHbWHbWHbWHbWHbWHbWHbUNbUNaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclrclsclsclsclscltcluclvclwclxclxclyclzclAceIbhtaaabmZclBclCclDclEclFclGclHclEclEclIclJclKclLclMclMclNclOcgoclPclQbneckvckvckvckvclSchMbHTbHTcjdclTclUclVclWclXclYclYclZcmacmbcmccmdcmecjdcmfcdTcmgbEDcmhckNcmickPaaaaaacjvcmjcmkcmlcjvbHUcmmcmncmncmncmncmncmnckTcmpcmqcmocmscmsbnfbnfcmscmvcmwcmxcmycmzcmAcmBcmCcmAcmAcmAcmAcmAcmAcmAcmAcmAcmAcmAcmAbvWcmDcmraZCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZEbUNbUNcgbcgbbWHbWHbWHbWHbWHbWHbWHbWHbUNbUNaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmEcmFcmGcmHcmGcmIcmJcmKcmLbRSbGWclzcmNcdbbhtaaabmZcmOcmPcmQcmRciKcmScmTcmUcmVchBckoceTcmWcmXceVcmYcmZbhrbhrbhrcndcneckvckvcnfcngchMbHTcnhcjdcnicnjcnkcnlcnlcnlcnmcnncnlcnlcnocnkcnpcnqcnrcdTcnsbEDcntckNcnuckPaaaaaacjvcnvcnwcnxcjvcnybHTcnhcnzcnzcnzcnzcnzbngbnkbnjcnzcnzaaaaaaaaaaaacjIcnDcnEcnFcmAcnGcnIcnHcnKcnJcnMcnLcnOcnNcnQcnPcoXcnRcpacmAcnScnTcnUcnVcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnXcnYbUNbYcbUNbWHbWHbWHbWHbWHbWHbWHbUNbUNaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaacmEcnZcoacobcocclwcodclwcoeclwcofcogcohcoibhtaaabnlbjJbnIbjYcomciKciKconcoocopcoqcorcoscotcouceVcovcowcoxcoycozchLcoAckvckvckvcoBchMbHTbHTcoCcoCcoDcoEboQboQboQcoCbpobpobpocoLcoMcoDcoNcmfcdTcmgbEDcoOckNckOckPaaaaaacjvcoPcoQcoRcjvbHTbHTbHTcnzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpPcoTcoUcoVbqlcpbcoYcoYcoZcoYcoYcoYcoYcoYcpdcpccpfcpecphcpjcpjcpkcplcpjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUNcpmcpncpobUNbUNbWHbWHcppbWHbWHbUNbUNaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm
index 41963473640..8864fa8bba2 100644
--- a/code/game/machinery/computer/buildandrepair.dm
+++ b/code/game/machinery/computer/buildandrepair.dm
@@ -53,10 +53,6 @@
/obj/item/weapon/circuitboard/med_data
name = "Circuit board (Medical Records)"
build_path = "/obj/machinery/computer/med_data"
-/obj/item/weapon/circuitboard/pandemic
- name = "Circuit board (PanD.E.M.I.C. 2200)"
- build_path = "/obj/machinery/computer/pandemic"
- origin_tech = "programming=2;biotech=2"
/obj/item/weapon/circuitboard/scan_consolenew
name = "Circuit board (DNA Machine)"
build_path = "/obj/machinery/computer/scan_consolenew"
diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm
index c2fcb54de8c..04f4ab47ee4 100644
--- a/code/modules/hydroponics/grown.dm
+++ b/code/modules/hydroponics/grown.dm
@@ -29,7 +29,7 @@
sleep(250) // ugly hack, should mean roundstart plants are fine.
if(!plant_controller)
world << "Plant controller does not exist and [src] requires it. Aborting."
- del(src)
+ qdel(src)
return
seed = plant_controller.seeds[plantname]
@@ -80,7 +80,7 @@
sleep(250) // ugly hack, should mean roundstart plants are fine.
if(!plant_controller)
world << "Plant controller does not exist and [src] requires it. Aborting."
- del(src)
+ qdel(src)
return
if(plant_controller.product_descs["[seed.uid]"])
@@ -178,7 +178,7 @@
M.Weaken(5)
seed.thrown_at(src,M)
sleep(-1)
- if(src) del(src)
+ if(src) qdel(src)
return
/obj/item/weapon/reagent_containers/food/snacks/grown/throw_impact(atom/hit_atom)
@@ -198,7 +198,7 @@
user.put_in_hands(pocell)
pocell.maxcharge = src.potency * 10
pocell.charge = pocell.maxcharge
- del(src)
+ qdel(src)
return
else if(W.sharp)
var/reagents_per_slice
@@ -206,21 +206,21 @@
if(seed.kitchen_tag == "pumpkin") // Ugggh these checks are awful.
user.show_message("You carve a face into [src]!", 1)
new /obj/item/clothing/head/hardhat/pumpkinhead (user.loc)
- del(src)
+ qdel(src)
return
else if(seed.kitchen_tag == "potato")
user << "You slice \the [src] into sticks."
reagents_per_slice = reagents.total_volume
slice = new /obj/item/weapon/reagent_containers/food/snacks/rawsticks(get_turf(src))
reagents.trans_to(slice, reagents_per_slice)
- del(src)
+ qdel(src)
return
else if(seed.kitchen_tag == "carrot")
user << "You slice \the [src] into sticks."
reagents_per_slice = reagents.total_volume
slice = new /obj/item/weapon/reagent_containers/food/snacks/carrotfries(get_turf(src))
reagents.trans_to(slice, reagents_per_slice)
- del(src)
+ qdel(src)
return
else if(seed.kitchen_tag == "watermelon")
user << "You slice \the [src] into large slices."
@@ -228,14 +228,14 @@
for(var/i=0,i<5,i++)
slice = new /obj/item/weapon/reagent_containers/food/snacks/watermelonslice(get_turf(src))
reagents.trans_to(slice, reagents_per_slice)
- del(src)
+ qdel(src)
return
else if(seed.kitchen_tag == "soybeans")
user << "You roughly chop up \the [src]."
reagents_per_slice = reagents.total_volume
slice = new /obj/item/weapon/reagent_containers/food/snacks/soydope(get_turf(src))
reagents.trans_to(slice, reagents_per_slice)
- del(src)
+ qdel(src)
return
else if(seed.chems)
if(istype(W,/obj/item/weapon/hatchet) && !isnull(seed.chems["woodpulp"]))
@@ -250,7 +250,7 @@
continue
G.attackby(NG, user)
user << "You add the newly-formed wood to the stack. It now contains [NG.amount] planks."
- del(src)
+ qdel(src)
return
else if(istype(W, /obj/item/weapon/rollingpaper))
if(seed.kitchen_tag == "ambrosia" || seed.kitchen_tag == "ambrosiadeus" || seed.kitchen_tag == "tobacco" || seed.kitchen_tag == "stobacco")
@@ -259,22 +259,22 @@
var/obj/item/clothing/mask/cigarette/joint/J = new /obj/item/clothing/mask/cigarette/joint(user.loc)
J.chem_volume = src.reagents.total_volume
src.reagents.trans_to(J, J.chem_volume)
- del(W)
+ qdel(W)
user.put_in_active_hand(J)
else if(seed.kitchen_tag == "ambrosiadeus")
var/obj/item/clothing/mask/cigarette/joint/deus/J = new /obj/item/clothing/mask/cigarette/joint/deus(user.loc)
J.chem_volume = src.reagents.total_volume
src.reagents.trans_to(J, J.chem_volume)
- del(W)
+ qdel(W)
user.put_in_active_hand(J)
else if(seed.kitchen_tag == "tobacco" || seed.kitchen_tag == "stobacco")
var/obj/item/clothing/mask/cigarette/handroll/J = new /obj/item/clothing/mask/cigarette/handroll(user.loc)
J.chem_volume = src.reagents.total_volume
src.reagents.trans_to(J, J.chem_volume)
- del(W)
+ qdel(W)
user.put_in_active_hand(J)
user << "\blue You roll the [src] into a rolling paper."
- del(src)
+ qdel(src)
else
user << "\red You can't roll a smokable from the [src]."
@@ -333,7 +333,7 @@
if(user)
user << "\The [src] has fallen to bits."
//user.drop_from_inventory(src)
- del(src)
+ qdel(src)
add_fingerprint(user)
return 1
@@ -353,7 +353,7 @@
user.visible_message("\The [user] squashes \the [src]!")
seed.thrown_at(src,user)
sleep(-1)
- if(src) del(src)
+ if(src) qdel(src)
return
if(seed.kitchen_tag == "grass")
@@ -368,14 +368,14 @@
continue
NG.attackby(G, user)
user << "You add the newly-formed grass to the stack. It now contains [G.amount] tiles."
- del(src)
+ qdel(src)
return
if(seed.get_trait(TRAIT_SPREAD) > 0)
user << "You plant the [src.name]."
new /obj/machinery/portable_atmospherics/hydroponics/soil/invisible(get_turf(user),src.seed)
new /obj/effect/plant(get_turf(user), src.seed)
- del(src)
+ qdel(src)
return
/*
diff --git a/code/modules/hydroponics/grown_inedible.dm b/code/modules/hydroponics/grown_inedible.dm
index 8c23033a586..a5497298947 100644
--- a/code/modules/hydroponics/grown_inedible.dm
+++ b/code/modules/hydroponics/grown_inedible.dm
@@ -71,7 +71,7 @@
if(istype(W, /obj/item/weapon/circular_saw) || istype(W, /obj/item/weapon/hatchet) || istype(W, /obj/item/weapon/kitchen/utensil/knife) || istype(W, /obj/item/weapon/kitchenknife) || istype(W, /obj/item/weapon/kitchenknife/ritual))
user << "You use [W] to fashion a pipe out of the corn cob!"
new /obj/item/clothing/mask/cigarette/pipe/cobpipe (user.loc)
- del(src)
+ qdel(src)
return
/obj/item/weapon/bananapeel
diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm
index 2a4cade7c0c..5d90f365029 100644
--- a/code/modules/hydroponics/seed.dm
+++ b/code/modules/hydroponics/seed.dm
@@ -103,7 +103,7 @@
if(!istype(target))
if(istype(target, /mob/living/simple_animal/mouse) || istype(target, /mob/living/simple_animal/lizard))
new /obj/effect/decal/cleanable/blood/splatter(get_turf(target))
- del(target)
+ qdel(target)
return
@@ -228,7 +228,7 @@
apply_special_effect(M)
splatter(T,thrown)
origin_turf.visible_message("The [thrown.name] explodes!")
- del(thrown)
+ qdel(thrown)
return
if(istype(target,/mob/living))
@@ -241,7 +241,7 @@
if(get_trait(TRAIT_JUICY) && splatted)
splatter(origin_turf,thrown)
origin_turf.visible_message("The [thrown.name] splatters against [target]!")
- del(thrown)
+ qdel(thrown)
/datum/seed/proc/handle_environment(var/turf/current_turf, var/datum/gas_mixture/environment, var/light_supplied, var/obj/item/weapon/tank/holding, var/check_only)
diff --git a/code/modules/hydroponics/seed_controller.dm b/code/modules/hydroponics/seed_controller.dm
index 6a329b9d974..9a0db47790c 100644
--- a/code/modules/hydroponics/seed_controller.dm
+++ b/code/modules/hydroponics/seed_controller.dm
@@ -37,7 +37,7 @@ var/global/datum/controller/plants/plant_controller // Set in New().
/datum/controller/plants/New()
if(plant_controller && plant_controller != src)
log_debug("Rebuilding plant controller.")
- del(plant_controller)
+ qdel(plant_controller)
plant_controller = src
setup()
process()
@@ -136,7 +136,7 @@ var/global/datum/controller/plants/plant_controller // Set in New().
break
var/obj/effect/plant/plant = pick(plant_queue)
plant_queue -= plant
- if(!istype(plant))
+ if(!istype(plant) || !isnull(plant.gcDestroyed))
continue
plant.process()
processed++
diff --git a/code/modules/hydroponics/seed_machines.dm b/code/modules/hydroponics/seed_machines.dm
index cce982372c0..550a1935a02 100644
--- a/code/modules/hydroponics/seed_machines.dm
+++ b/code/modules/hydroponics/seed_machines.dm
@@ -224,7 +224,7 @@
genetics = seed.seed
degradation = 0
- del(seed)
+ qdel(seed)
seed = null
if(href_list["get_gene"])
diff --git a/code/modules/hydroponics/seed_storage.dm b/code/modules/hydroponics/seed_storage.dm
index e64ad1e8131..9b3797af6b5 100644
--- a/code/modules/hydroponics/seed_storage.dm
+++ b/code/modules/hydroponics/seed_storage.dm
@@ -188,16 +188,16 @@
N.seeds -= O
if (N.amount <= 0 || N.seeds.len <= 0)
piles -= N
- del(N)
+ qdel(N)
O.loc = src.loc
else
piles -= N
- del(N)
+ qdel(N)
else if (task == "purge")
for (var/obj/O in N.seeds)
- del(O)
+ qdel(O)
piles -= N
- del(N)
+ qdel(N)
break
updateUsrDialog()
diff --git a/code/modules/hydroponics/spreading/spreading.dm b/code/modules/hydroponics/spreading/spreading.dm
index b99e2ccf6b8..d4ed8c17e81 100644
--- a/code/modules/hydroponics/spreading/spreading.dm
+++ b/code/modules/hydroponics/spreading/spreading.dm
@@ -32,13 +32,13 @@
color = DEAD_PLANT_COLOUR
/obj/effect/dead_plant/attack_hand()
- del(src)
+ qdel(src)
/obj/effect/dead_plant/attackby()
..()
for(var/obj/effect/plant/neighbor in range(1))
neighbor.update_neighbors()
- del(src)
+ qdel(src)
/obj/effect/plant
name = "plant"
@@ -70,12 +70,12 @@
var/mob/living/buckled_mob = null
var/movable = 0
-/obj/effect/plant/Del()
+/obj/effect/plant/Destroy()
if(plant_controller)
plant_controller.remove_plant(src)
for(var/obj/effect/plant/neighbor in range(1,src))
plant_controller.add_plant(neighbor)
- ..()
+ return ..()
/obj/effect/plant/single
spread_chance = 0
@@ -91,14 +91,14 @@
sleep(250) // ugly hack, should mean roundstart plants are fine.
if(!plant_controller)
world << "Plant controller does not exist and [src] requires it. Aborting."
- del(src)
+ qdel(src)
return
if(!istype(newseed))
newseed = plant_controller.seeds[DEFAULT_SEED]
seed = newseed
if(!seed)
- del(src)
+ qdel(src)
return
name = seed.display_name
diff --git a/code/modules/hydroponics/spreading/spreading_growth.dm b/code/modules/hydroponics/spreading/spreading_growth.dm
index c360ba5c0e1..b86c3966aa8 100644
--- a/code/modules/hydroponics/spreading/spreading_growth.dm
+++ b/code/modules/hydroponics/spreading/spreading_growth.dm
@@ -104,6 +104,6 @@
for(var/obj/effect/plant/neighbor in check_turf.contents)
neighbor.neighbors |= check_turf
plant_controller.add_plant(neighbor)
- spawn(1) if(src) del(src)
+ spawn(1) if(src) qdel(src)
#undef NEIGHBOR_REFRESH_TIME
\ No newline at end of file
diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm
index b142a1fa9b1..c7c6b2201f0 100644
--- a/code/modules/hydroponics/trays/tray.dm
+++ b/code/modules/hydroponics/trays/tray.dm
@@ -574,7 +574,7 @@
weedlevel -= P.weed_kill_str
user << "You spray [src] with [O]."
playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6)
- del(O)
+ qdel(O)
check_level_sanity()
update_icon()
@@ -587,7 +587,7 @@
weedlevel -= W.weed_kill_str
user << "You spray [src] with [O]."
playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6)
- del(O)
+ qdel(O)
check_level_sanity()
update_icon()
@@ -682,7 +682,7 @@
if(!S.seed)
user << "The packet seems to be empty. You throw it away."
- del(O)
+ qdel(O)
return
user << "You plant the [S.seed.seed_name] [S.seed.seed_noun]."
@@ -693,7 +693,7 @@
health = (istype(S, /obj/item/seeds/cutting) ? round(seed.get_trait(TRAIT_ENDURANCE)/rand(2,5)) : seed.get_trait(TRAIT_ENDURANCE))
lastcycle = world.time
- del(O)
+ qdel(O)
check_health()
@@ -735,13 +735,13 @@
user << "[src] is already occupied!"
else
user.drop_item()
- del(O)
+ qdel(O)
var/obj/machinery/apiary/A = new(src.loc)
A.icon = src.icon
A.icon_state = src.icon_state
A.hydrotray_type = src.type
- del(src)
+ qdel(src)
else if ((istype(O, /obj/item/weapon/tank) && !( src.destroyed )))
if (src.holding)
user << "\blue There is alreadu a tank loaded into the [src]."
diff --git a/code/modules/hydroponics/trays/tray_apiary.dm b/code/modules/hydroponics/trays/tray_apiary.dm
index f2098e7481c..4ac67613a6c 100644
--- a/code/modules/hydroponics/trays/tray_apiary.dm
+++ b/code/modules/hydroponics/trays/tray_apiary.dm
@@ -51,7 +51,7 @@
health = 10
nutrilevel += 10
user.drop_item()
- del(O)
+ qdel(O)
user << "\blue You carefully insert the queen into [src], she gets busy making a hive."
bees_in_hive = 0
else if(istype(O, /obj/item/beezeez))
@@ -62,7 +62,7 @@
user << "\blue You insert [O] into [src]. A relaxed humming appears to pick up."
else
user << "\blue You insert [O] into [src]. Now it just needs some bees."
- del(O)
+ qdel(O)
else if(istype(O, /obj/item/weapon/minihoe))
if(health > 0)
user << "\red You begin to dislodge the apiary from the tray, the bees don't like that."
@@ -73,7 +73,7 @@
new hydrotray_type(src.loc)
new /obj/item/apiary(src.loc)
user << "\red You dislodge the apiary from the tray."
- del(src)
+ qdel(src)
else if(istype(O, /obj/item/weapon/bee_net))
var/obj/item/weapon/bee_net/N = O
if(N.caught_bees > 0)
@@ -115,11 +115,11 @@
if(swarming <= 0)
for(var/mob/living/simple_animal/bee/B in src.loc)
bees_in_hive += B.strength
- del(B)
+ qdel(B)
else if(bees_in_hive < 10)
for(var/mob/living/simple_animal/bee/B in src.loc)
bees_in_hive += B.strength
- del(B)
+ qdel(B)
if(world.time > (lastcycle + cycledelay))
lastcycle = world.time
@@ -199,7 +199,7 @@
B.target_turf = get_turf(src)
B.strength -= 1
if(B.strength <= 0)
- del(B)
+ qdel(B)
else if(B.strength <= 5)
B.icon_state = "bees[B.strength]"
bees_in_hive = 0
diff --git a/code/modules/hydroponics/trays/tray_soil.dm b/code/modules/hydroponics/trays/tray_soil.dm
index ff47f069707..d8c207c1c67 100644
--- a/code/modules/hydroponics/trays/tray_soil.dm
+++ b/code/modules/hydroponics/trays/tray_soil.dm
@@ -44,27 +44,27 @@
/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/remove_dead()
..()
- del(src)
+ qdel(src)
/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/harvest()
..()
if(!seed) // Repeat harvests are a thing.
- del(src)
+ qdel(src)
/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/die()
- del(src)
+ qdel(src)
/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/process()
if(!seed)
- del(src)
+ qdel(src)
return
else if(name=="plant")
name = seed.display_name
..()
-/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/Del()
+/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/Destroy()
// Check if we're masking a decal that needs to be visible again.
for(var/obj/effect/plant/plant in get_turf(src))
if(plant.invisibility == INVISIBILITY_MAXIMUM)
plant.invisibility = initial(plant.invisibility)
- ..()
+ return ..()
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index 44e077013bd..634519a7b83 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -705,273 +705,10 @@
return 0
-
/obj/machinery/chem_master/condimaster
name = "CondiMaster 3000"
condi = 1
-////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////
-
-/*
-
-/obj/machinery/computer/pandemic
- name = "PanD.E.M.I.C 2200"
- density = 1
- anchored = 1
- icon = 'icons/obj/chemical.dmi'
- icon_state = "mixer0"
- circuit = /obj/item/weapon/circuitboard/pandemic
- //use_power = 1
- //idle_power_usage = 20 //defaults make more sense.
- var/temphtml = ""
- var/wait = null
- var/obj/item/weapon/reagent_containers/glass/beaker = null
-
-
-/obj/machinery/computer/pandemic/set_broken()
- icon_state = (src.beaker?"mixer1_b":"mixer0_b")
- stat |= BROKEN
-
-
-/obj/machinery/computer/pandemic/power_change()
-
- if(stat & BROKEN)
- icon_state = (src.beaker?"mixer1_b":"mixer0_b")
-
- else if(powered())
- icon_state = (src.beaker?"mixer1":"mixer0")
- stat &= ~NOPOWER
-
- else
- spawn(rand(0, 15))
- src.icon_state = (src.beaker?"mixer1_nopower":"mixer0_nopower")
- stat |= NOPOWER
-
-
-/obj/machinery/computer/pandemic/Topic(href, href_list)
- if(stat & (NOPOWER|BROKEN)) return
- if(usr.stat || usr.restrained()) return
- if(!in_range(src, usr)) return
-
- usr.set_machine(src)
- if(!beaker) return
-
- if (href_list["create_vaccine"])
- if(!src.wait)
- var/obj/item/weapon/reagent_containers/glass/bottle/B = new/obj/item/weapon/reagent_containers/glass/bottle(src.loc)
- if(B)
- var/path = href_list["create_vaccine"]
- var/vaccine_type = text2path(path)
- var/datum/disease/D = null
-
- if(!vaccine_type)
- D = archive_diseases[path]
- vaccine_type = path
- else
- if(vaccine_type in diseases)
- D = new vaccine_type(0, null)
-
- if(D)
- B.name = "[D.name] vaccine bottle"
- B.reagents.add_reagent("vaccine",15,vaccine_type)
- wait = 1
- var/datum/reagents/R = beaker.reagents
- var/datum/reagent/blood/Blood = null
- for(var/datum/reagent/blood/L in R.reagent_list)
- if(L)
- Blood = L
- break
- var/list/res = Blood.data["resistances"]
- spawn(res.len*200)
- src.wait = null
- else
- src.temphtml = "The replicator is not ready yet."
- src.updateUsrDialog()
- return
- else if (href_list["create_virus_culture"])
- if(!wait)
- var/obj/item/weapon/reagent_containers/glass/bottle/B = new/obj/item/weapon/reagent_containers/glass/bottle(src.loc)
- B.icon_state = "bottle3"
- var/type = text2path(href_list["create_virus_culture"])//the path is received as string - converting
- var/datum/disease/D = null
- if(!type)
- var/datum/disease/advance/A = archive_diseases[href_list["create_virus_culture"]]
- if(A)
- D = new A.type(0, A)
- else
- if(type in diseases) // Make sure this is a disease
- D = new type(0, null)
- var/list/data = list("viruses"=list(D))
- var/name = sanitize(input(usr,"Name:","Name the culture",D.name))
- if(!name || name == " ") name = D.name
- B.name = "[name] culture bottle"
- B.desc = "A small bottle. Contains [D.agent] culture in synthblood medium."
- B.reagents.add_reagent("blood",20,data)
- src.updateUsrDialog()
- wait = 1
- spawn(1000)
- src.wait = null
- else
- src.temphtml = "The replicator is not ready yet."
- src.updateUsrDialog()
- return
- else if (href_list["empty_beaker"])
- beaker.reagents.clear_reagents()
- src.updateUsrDialog()
- return
- else if (href_list["eject"])
- beaker:loc = src.loc
- beaker = null
- icon_state = "mixer0"
- src.updateUsrDialog()
- return
- else if(href_list["clear"])
- src.temphtml = ""
- src.updateUsrDialog()
- return
- else if(href_list["name_disease"])
- var/new_name = stripped_input(usr, "Name the Disease", "New Name", "", MAX_NAME_LEN)
- if(stat & (NOPOWER|BROKEN)) return
- if(usr.stat || usr.restrained()) return
- if(!in_range(src, usr)) return
- var/id = href_list["name_disease"]
- if(archive_diseases[id])
- var/datum/disease/advance/A = archive_diseases[id]
- A.AssignName(new_name)
- for(var/datum/disease/advance/AD in active_diseases)
- AD.Refresh()
- src.updateUsrDialog()
-
-
- else
- usr << browse(null, "window=pandemic")
- src.updateUsrDialog()
- return
-
- src.add_fingerprint(usr)
- return
-
-/obj/machinery/computer/pandemic/attack_ai(mob/user as mob)
- return src.attack_hand(user)
-
-/obj/machinery/computer/pandemic/attack_paw(mob/user as mob)
- return src.attack_hand(user)
-
-/obj/machinery/computer/pandemic/attack_hand(mob/user as mob)
- if(stat & (NOPOWER|BROKEN))
- return
- user.set_machine(src)
- var/dat = ""
- if(src.temphtml)
- dat = "[src.temphtml]
Main Menu"
- else if(!beaker)
- dat += "Please insert beaker.
"
- dat += "Close"
- else
- var/datum/reagents/R = beaker.reagents
- var/datum/reagent/blood/Blood = null
- for(var/datum/reagent/blood/B in R.reagent_list)
- if(B)
- Blood = B
- break
- if(!R.total_volume||!R.reagent_list.len)
- dat += "The beaker is empty
"
- else if(!Blood)
- dat += "No blood sample found in beaker"
- else if(!Blood.data)
- dat += "No blood data found in beaker."
- else
- dat += "