From a3fed84d2919111e0e50fbcbd2d4dc171e761825 Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Sat, 22 Apr 2017 09:29:55 -0700 Subject: [PATCH 1/2] Tweaks bodybag relaymove(). Allows exit from morgue trays while in bodybags. --- code/game/objects/items/bodybag.dm | 8 +++++ html/changelogs/LorenLuke - Bodybags.yml | 37 ++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 html/changelogs/LorenLuke - Bodybags.yml diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index 1450fa94ce5..f90b4dd4ca0 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -86,6 +86,14 @@ qdel(src) return +/obj/structure/closet/body_bag/relaymove(mob/user,direction) + if(user.stat) + return + if(src.loc != get_turf(src)) + src.loc.relaymove(usr,direction) + else + ..() + /obj/structure/closet/body_bag/proc/get_occupants() var/list/occupants = list() for(var/mob/living/carbon/human/H in contents) diff --git a/html/changelogs/LorenLuke - Bodybags.yml b/html/changelogs/LorenLuke - Bodybags.yml new file mode 100644 index 00000000000..e9dbd374067 --- /dev/null +++ b/html/changelogs/LorenLuke - Bodybags.yml @@ -0,0 +1,37 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Belsima + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "Changes relaymove() code in bodybags." + - bugfix: "Above tweak used to allow exiting bodybag while in closed morgue tray." From b87fb2389f4a72383210a0179981daf6b75d0105 Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Sat, 22 Apr 2017 23:06:21 -0700 Subject: [PATCH 2/2] Adds morgue.dm changes. --- code/game/objects/items/bodybag.dm | 4 +- code/game/objects/structures/morgue.dm | 69 ++++++++++++-------------- 2 files changed, 34 insertions(+), 39 deletions(-) diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index f90b4dd4ca0..b4ba67e4c29 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -87,10 +87,8 @@ return /obj/structure/closet/body_bag/relaymove(mob/user,direction) - if(user.stat) - return if(src.loc != get_turf(src)) - src.loc.relaymove(usr,direction) + src.loc.relaymove(user,direction) else ..() diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index bd280787827..42ee6af2e3e 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -77,34 +77,44 @@ return return + /obj/structure/morgue/attack_hand(mob/user as mob) if (src.connected) - for(var/atom/movable/A as mob|obj in src.connected.loc) - if (!( A.anchored )) - A.forceMove(src) - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - qdel(src.connected) - src.connected = null + close() else - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - src.connected = new /obj/structure/m_tray( src.loc ) - step(src.connected, src.dir) - src.connected.layer = OBJ_LAYER - var/turf/T = get_step(src, src.dir) - if (T.contents.Find(src.connected)) - src.connected.connected = src - src.icon_state = "morgue0" - for(var/atom/movable/A as mob|obj in src) - A.forceMove(src.connected.loc) - src.connected.icon_state = "morguet" - src.connected.set_dir(src.dir) - else - qdel(src.connected) - src.connected = null + open() src.add_fingerprint(user) update() return + +/obj/structure/morgue/proc/close() + for(var/atom/movable/A as mob|obj in src.connected.loc) + if (!( A.anchored )) + A.forceMove(src) + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + qdel(src.connected) + src.connected = null + + +/obj/structure/morgue/proc/open() + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + src.connected = new /obj/structure/m_tray( src.loc ) + step(src.connected, src.dir) + src.connected.layer = OBJ_LAYER + var/turf/T = get_step(src, src.dir) + if (T.contents.Find(src.connected)) + src.connected.connected = src + src.icon_state = "morgue0" + for(var/atom/movable/A as mob|obj in src) + A.forceMove(src.connected.loc) + src.connected.icon_state = "morguet" + src.connected.set_dir(src.dir) + else + qdel(src.connected) + src.connected = null + + /obj/structure/morgue/attackby(P as obj, mob/user as mob) if (istype(P, /obj/item/weapon/pen)) var/t = input(user, "What would you like the label to be?", text("[]", src.name), null) as text @@ -123,21 +133,8 @@ /obj/structure/morgue/relaymove(mob/user as mob) if (user.stat) return - src.connected = new /obj/structure/m_tray( src.loc ) - step(src.connected, EAST) - src.connected.layer = OBJ_LAYER - var/turf/T = get_step(src, EAST) - if (T.contents.Find(src.connected)) - src.connected.connected = src - src.icon_state = "morgue0" - for(var/atom/movable/A as mob|obj in src) - A.forceMove(src.connected.loc) - src.connected.icon_state = "morguet" - else - qdel(src.connected) - src.connected = null - return - + if (user in src.occupants) + open() /* * Morgue tray