diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm
index 01a6b2a46d..1d853c332b 100644
--- a/code/controllers/configuration.dm
+++ b/code/controllers/configuration.dm
@@ -5,6 +5,10 @@
#define SECURITY_HAS_MAINT_ACCESS 2
#define EVERYONE_HAS_MAINT_ACCESS 4
+GLOBAL_VAR_INIT(config_dir, "config/")
+GLOBAL_PROTECT(config_dir)
+
+
/datum/configuration/can_vv_get(var_name)
var/static/list/banned_gets = list("autoadmin", "autoadmin_rank")
if (var_name in banned_gets)
@@ -295,19 +299,20 @@
Reload()
/datum/configuration/proc/Reload()
- load("config/config.txt")
- load("config/comms.txt", "comms")
- load("config/game_options.txt","game_options")
- load("config/policies.txt", "policies")
- loadsql("config/dbconfig.txt")
+ load("config.txt")
+ load("comms.txt", "comms")
+ load("game_options.txt","game_options")
+ load("policies.txt", "policies")
+ loadsql("dbconfig.txt")
reload_custom_roundstart_items_list()
if (maprotation)
- loadmaplist("config/maps.txt")
+ loadmaplist("maps.txt")
// apply some settings from config..
GLOB.abandon_allowed = respawn
/datum/configuration/proc/load(filename, type = "config") //the type can also be game_options, in which case it uses a different switch. not making it separate to not copypaste code - Urist
+ filename = "[GLOB.config_dir][filename]"
var/list/Lines = world.file2list(filename)
for(var/t in Lines)
@@ -822,6 +827,7 @@
WRITE_FILE(GLOB.config_error_log, "Unknown setting in configuration: '[name]'")
/datum/configuration/proc/loadmaplist(filename)
+ filename = "[GLOB.config_dir][filename]"
var/list/Lines = world.file2list(filename)
var/datum/map_config/currentmap = null
@@ -874,6 +880,7 @@
/datum/configuration/proc/loadsql(filename)
+ filename = "[GLOB.config_dir][filename]"
var/list/Lines = world.file2list(filename)
for(var/t in Lines)
if(!t)
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index ea1f1f5214..5600fc16f3 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -535,6 +535,7 @@
name = "puddle"
desc = "A puddle used for washing one's hands and face."
icon_state = "puddle"
+ resistance_flags = UNACIDABLE
/obj/structure/sink/puddle/attack_hand(mob/M)
icon_state = "puddle-splash"
@@ -546,6 +547,10 @@
. = ..()
icon_state = "puddle"
+/obj/structure/sink/puddle/deconstruct(disassembled = TRUE)
+ qdel(src)
+
+
//Shower Curtains//
//Defines used are pre-existing in layers.dm//
diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm
index d15c7dd5f4..5cbbd1d3d5 100644
--- a/code/modules/clothing/head/misc_special.dm
+++ b/code/modules/clothing/head/misc_special.dm
@@ -125,17 +125,18 @@
desc = "A pair of kitty ears. Meow!"
icon_state = "kitty"
color = "#999999"
- dynamic_hair_suffix = ""
+ dynamic_hair_suffix = ""
dog_fashion = /datum/dog_fashion/head/kitty
-/obj/item/clothing/head/kitty/equipped(mob/user, slot)
- if(user && slot == slot_head)
+/obj/item/clothing/head/kitty/equipped(mob/living/carbon/human/user, slot)
+ if(ishuman(user) && slot == slot_head)
update_icon(user)
+ user.update_inv_head() //Color might have been changed by update_icon.
..()
/obj/item/clothing/head/kitty/update_icon(mob/living/carbon/human/user)
- if(istype(user))
+ if(ishuman(user))
add_atom_colour("#[user.hair_color]", FIXED_COLOUR_PRIORITY)
/obj/item/clothing/head/kitty/genuine
@@ -151,7 +152,7 @@
flags_inv = 0
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
brightness_on = 1 //luminosity when on
- dynamic_hair_suffix = ""
+ dynamic_hair_suffix = ""
dog_fashion = /datum/dog_fashion/head/reindeer
diff --git a/code/modules/hydroponics/beekeeping/beebox.dm b/code/modules/hydroponics/beekeeping/beebox.dm
index b01892e636..316b2298ca 100644
--- a/code/modules/hydroponics/beekeeping/beebox.dm
+++ b/code/modules/hydroponics/beekeeping/beebox.dm
@@ -25,7 +25,7 @@
/obj/structure/beebox
name = "apiary"
- desc = "Dr Miles Manners is just your average wasp-themed super hero by day, but by night he becomes DR BEES!"
+ desc = "Dr. Miles Manners is just your average wasp-themed super hero by day, but by night he becomes DR. BEES!"
icon = 'icons/obj/hydroponics/equipment.dmi'
icon_state = "beebox"
anchored = TRUE
@@ -45,9 +45,7 @@
/obj/structure/beebox/Destroy()
STOP_PROCESSING(SSobj, src)
bees.Cut()
- bees = null
honeycombs.Cut()
- honeycombs = null
queen_bee = null
return ..()
@@ -151,7 +149,7 @@
honey_frames += HF
else
to_chat(user, "There's no room for any more frames in the apiary!")
-
+ return
if(istype(I, /obj/item/wrench))
if(default_unfasten_wrench(user, I, time = 20))
return
@@ -187,6 +185,9 @@
to_chat(user, "The queen bee disappeared! Disappearing bees have been in the news lately...")
qdel(qb)
+ return
+
+ ..()
/obj/structure/beebox/attack_hand(mob/user)
@@ -203,8 +204,10 @@
bees = TRUE
if(bees)
visible_message("[user] disturbs the bees!")
+ else
+ visible_message("[user] disturbs the [name] to no effect!")
else
- var/option = alert(user, "What action do you wish to perform?","Apiary","Remove a Honey Frame","Remove the Queen Bee")
+ var/option = alert(user, "What action do you wish to perform?","Apiary","Remove a Honey Frame","Remove the Queen Bee", "Cancel")
if(!Adjacent(user))
return
switch(option)
@@ -244,3 +247,13 @@
QB.loc = get_turf(src)
visible_message("[user] removes the queen from the apiary.")
queen_bee = null
+
+/obj/structure/beebox/deconstruct(disassembled = TRUE)
+ new /obj/item/stack/sheet/mineral/wood (loc, 20)
+ for(var/mob/living/simple_animal/hostile/poison/bees/B in bees)
+ if(B.loc == src)
+ B.loc = get_turf(src)
+ for(var/obj/item/honey_frame/HF in honey_frames)
+ if(HF.loc == src)
+ HF.loc = get_turf(src)
+ qdel(src)
\ No newline at end of file
diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm
index 4c7af3250b..66a15ac705 100644
--- a/code/modules/hydroponics/hydroponics.dm
+++ b/code/modules/hydroponics/hydroponics.dm
@@ -915,9 +915,11 @@
name = "soil"
icon = 'icons/obj/hydroponics/equipment.dmi'
icon_state = "soil"
+ circuit = null
density = FALSE
use_power = NO_POWER_USE
- unwrenchable = 0
+ flags_1 = NODECONSTRUCT_1
+ unwrenchable = FALSE
/obj/machinery/hydroponics/soil/update_icon_hoses()
return // Has no hoses
diff --git a/code/modules/mob/living/simple_animal/friendly/butterfly.dm b/code/modules/mob/living/simple_animal/friendly/butterfly.dm
index 07222ade05..9c16c2a924 100644
--- a/code/modules/mob/living/simple_animal/friendly/butterfly.dm
+++ b/code/modules/mob/living/simple_animal/friendly/butterfly.dm
@@ -28,3 +28,6 @@
. = ..()
var/newcolor = rgb(rand(0, 255), rand(0, 255), rand(0, 255))
add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY)
+
+/mob/living/simple_animal/butterfly/bee_friendly()
+ return TRUE //treaty signed at the Beeneeva convention