From 2847c08b77fbaf5ca040491542820caf57d64d4e Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Fri, 14 Aug 2015 21:30:09 +0100 Subject: [PATCH 01/10] Fix not being able to select Siik'tajr or Sinta'unathi as default via Check-Known-Languages --- code/modules/mob/language/language.dm | 6 +++--- code/modules/mob/living/silicon/silicon.dm | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/language/language.dm b/code/modules/mob/language/language.dm index bf5b51a1b13..03ab8ea2970 100644 --- a/code/modules/mob/language/language.dm +++ b/code/modules/mob/language/language.dm @@ -171,7 +171,7 @@ if(L == default_language) dat += "[L.name] (:[L.key]) - default - reset
[L.desc]

" else - dat += "[L.name] (:[L.key]) - set default
[L.desc]

" + dat += "[L.name] (:[L.key]) - set default
[L.desc]

" src << browse(dat, "window=checklanguage") @@ -180,8 +180,8 @@ if(href_list["default_lang"] == "reset") set_default_language(null) else - var/datum/language/L = all_languages[href_list["default_lang"]] - if(L) + var/datum/language/L = locate(href_list["default_lang"]) + if(L && (L in languages)) set_default_language(L) check_languages() return 1 diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index ab557410098..2f47247e129 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -222,7 +222,7 @@ if(L == default_language) default_str = " - default - reset" else - default_str = " - set default" + default_str = " - set default" var/synth = (L in speech_synthesizer_langs) dat += "[L.name] (:[L.key])[synth ? default_str : null]
Speech Synthesizer: [synth ? "YES" : "NOT SUPPORTED"]
[L.desc]

" From e7adce2163a2c914cea7c4d64d7acffe1689ad1d Mon Sep 17 00:00:00 2001 From: Atlantis Date: Fri, 14 Aug 2015 22:51:59 +0200 Subject: [PATCH 02/10] Better feedback - Attempting to hack already hacked APC now correctly produces "You already control this APC" message. --- .../malfunction/newmalf_ability_trees/HELPERS.dm | 9 ++++----- .../malfunction/newmalf_ability_trees/tree_networking.dm | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/code/game/gamemodes/malfunction/newmalf_ability_trees/HELPERS.dm b/code/game/gamemodes/malfunction/newmalf_ability_trees/HELPERS.dm index f757ed5e9e3..69794c9af33 100644 --- a/code/game/gamemodes/malfunction/newmalf_ability_trees/HELPERS.dm +++ b/code/game/gamemodes/malfunction/newmalf_ability_trees/HELPERS.dm @@ -163,14 +163,13 @@ command_announcement.Announce(fulltext) -// Proc: get_unhacked_apcs() +// Proc: get_all_apcs() // Parameters: None -// Description: Returns a list of APCs that are not yet hacked. -/proc/get_unhacked_apcs() +// Description: Returns a list of all APCs +/proc/get_all_apcs() var/list/H = list() for(var/obj/machinery/power/apc/A in machines) - if(!A.hacker) - H.Add(A) + H.Add(A) return H diff --git a/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_networking.dm b/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_networking.dm index 9c3c584d9e4..f1bad288ad0 100644 --- a/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_networking.dm +++ b/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_networking.dm @@ -38,7 +38,7 @@ // END RESEARCH DATUMS // BEGIN ABILITY VERBS -/datum/game_mode/malfunction/verb/basic_encryption_hack(obj/machinery/power/apc/A as obj in get_unhacked_apcs()) +/datum/game_mode/malfunction/verb/basic_encryption_hack(obj/machinery/power/apc/A as obj in get_all_apcs()) set category = "Software" set name = "Basic Encryption Hack" set desc = "10 CPU - Basic encryption hack that allows you to overtake APCs on the station." From 20961ae9b6ef07436c58def27df0dd13e54e4652 Mon Sep 17 00:00:00 2001 From: Atlantis Date: Fri, 14 Aug 2015 23:00:53 +0200 Subject: [PATCH 03/10] Corrects wrongly displayed CPU generation. - Value displayed was per decisecond, not per second. Corrected. --- code/modules/mob/living/silicon/ai/ai.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 888622ff38e..76fc8362697 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -830,7 +830,7 @@ var/list/ai_verbs_default = list( if(src.research) stat(null, "Available CPU: [src.research.stored_cpu] TFlops") stat(null, "Maximal CPU: [src.research.max_cpu] TFlops") - stat(null, "CPU generation rate: [src.research.cpu_increase_per_tick] TFlops/s") + stat(null, "CPU generation rate: [src.research.cpu_increase_per_tick * 10] TFlops/s") stat(null, "Current research focus: [src.research.focus ? src.research.focus.name : "None"]") if(src.research.focus) stat(null, "Research completed: [round(src.research.focus.invested, 0.1)]/[round(src.research.focus.price)]") From 7e8bfde893587099495950dd8561c2cdc7a2704c Mon Sep 17 00:00:00 2001 From: Atlantis Date: Fri, 14 Aug 2015 23:03:48 +0200 Subject: [PATCH 04/10] Increases CPU income from APC hacking - CPU generation from APCs is now doubled --- code/modules/mob/living/silicon/ai/ai.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 76fc8362697..937f25a0b47 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -769,7 +769,7 @@ var/list/ai_verbs_default = list( // Off-Station APCs should not count towards CPU generation. for(var/obj/machinery/power/apc/A in hacked_apcs) if(A.z in config.station_levels) - cpu_gain += 0.002 + cpu_gain += 0.004 cpu_storage += 10 research.max_cpu = cpu_storage + override_CPUStorage From 74f47de0e55518f301227f101fbb05a200546747 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Sat, 15 Aug 2015 03:18:40 +0100 Subject: [PATCH 05/10] 'fixes' spacestation13.com's server banner they appear to just use the 8th field of the reply for the player count, rather than parsing the reply; this moves player count back to being the 8th entry --- code/world.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/world.dm b/code/world.dm index 9adfe9968a5..2b8b0f07f39 100644 --- a/code/world.dm +++ b/code/world.dm @@ -112,6 +112,9 @@ var/world_topic_spam_protect_time = world.timeofday s["vote"] = config.allow_vote_mode s["ai"] = config.allow_ai s["host"] = host ? host : null + + // This is dumb, but spacestation13.com's banners break if player count isn't the 8th field of the reply, so... this has to go here. + s["players"] = 0 s["stationtime"] = worldtime2text() if(input["status"] == "2") From cd153ad975d1303e98cd535cc534e19e0480c5bd Mon Sep 17 00:00:00 2001 From: mwerezak Date: Fri, 14 Aug 2015 22:41:51 -0400 Subject: [PATCH 06/10] Aghosted mobs no longer act as SSD Removed player_logged var since it didn't serve it's intended purpose and replaced with aghosted var. Changed SSD checks to only look at client since regardless of what key gets set to I think we probably don't want players being told a mob is SSD if there is some client controlling it. --- code/modules/admin/admin_verbs.dm | 6 ++++-- code/modules/mob/dead/observer/observer.dm | 1 + code/modules/mob/living/carbon/carbon.dm | 2 +- code/modules/mob/living/carbon/human/life.dm | 10 ++++------ code/modules/mob/living/login.dm | 1 - code/modules/mob/living/logout.dm | 8 +++----- code/modules/mob/mob_defines.dm | 4 ++-- 7 files changed, 15 insertions(+), 17 deletions(-) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 2036e209b8b..6f5524ef25e 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -398,8 +398,10 @@ var/list/admin_verbs_mentor = list( var/mob/body = mob var/mob/dead/observer/ghost = body.ghostize(1) ghost.admin_ghosted = 1 - if(body && !body.key) - body.key = "@[key]" //Haaaaaaaack. But the people have spoken. If it breaks; blame adminbus + if(body) + body.aghosted = ghost + if(!body.key) + body.key = "@[key]" //Haaaaaaaack. But the people have spoken. If it breaks; blame adminbus feedback_add_details("admin_verb","O") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index d8645f72995..a3187358da9 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -216,6 +216,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return mind.current.ajourn=0 mind.current.key = key + mind.current.aghosted = null if(!admin_ghosted) announce_ghost_joinleave(mind, 0, "They now occupy their body again.") return 1 diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 9a8db5b898c..6a307246e9a 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -257,7 +257,7 @@ var/show_ssd var/mob/living/carbon/human/H = src if(istype(H)) show_ssd = H.species.show_ssd - if(show_ssd && (!client || !key || player_logged)) + if(show_ssd && !client && !aghosted) M.visible_message("[M] shakes [src] trying to wake [t_him] up!", \ "You shake [src], but they do not respond... Maybe they have S.S.D?") else if(lying || src.sleeping) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 18312abf924..574a7024c28 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -941,8 +941,8 @@ if(status_flags & GODMODE) return 0 //SSD check, if a logged player is awake put them back to sleep! - if(sleeping < 2 && species.show_ssd && (!client || !key || player_logged)) - sleeping = 2 + if(species.show_ssd && !client && !aghosted) + Sleeping(2) if(stat == DEAD) //DEAD. BROWN BREAD. SWIMMING WITH THE SPESS CARP blinded = 1 @@ -1002,10 +1002,8 @@ adjustHalLoss(-3) if (mind) //Are they SSD? If so we'll keep them asleep but work off some of that sleep var in case of stoxin or similar. - if(player_logged) - sleeping = max(sleeping-1, 2) - else - sleeping = max(sleeping-1, 0) + if(client || sleeping > 3) + AdjustSleeping(-1) blinded = 1 stat = UNCONSCIOUS animate_tail_reset() diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm index 383a81f13b5..b41baabef97 100644 --- a/code/modules/mob/living/login.dm +++ b/code/modules/mob/living/login.dm @@ -5,6 +5,5 @@ mind_initialize() //updates the mind (or creates and initializes one if one doesn't exist) mind.active = 1 //indicates that the mind is currently synced with a client //If they're SSD, remove it so they can wake back up. - player_logged = 0 update_antag_icons(mind) return . diff --git a/code/modules/mob/living/logout.dm b/code/modules/mob/living/logout.dm index 1f2551b6b85..577221a03ed 100644 --- a/code/modules/mob/living/logout.dm +++ b/code/modules/mob/living/logout.dm @@ -1,8 +1,6 @@ /mob/living/Logout() ..() - if (mind) - if(!key) //key and mind have become seperated. I believe this is for when a staff member aghosts. + if (mind) + //Per BYOND docs key remains set if the player DCs, becomes null if switching bodies. + if(!key) //key and mind have become seperated. mind.active = 0 //This is to stop say, a mind.transfer_to call on a corpse causing a ghost to re-enter its body. - //This tags a player as SSD. See appropriate life.dm files for furthering SSD effects such as falling asleep. - if(mind.active) - player_logged = 1 diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 109e29f0368..89a4957e3fb 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -214,8 +214,8 @@ var/stance_damage = 0 //Whether this mob's ability to stand has been affected - //SSD var, changed it up some so people can have special things happen for different mobs when SSD. - var/player_logged = 0 + //Indicates if a clientless mob is actually an admin aghosting + var/mob/dead/observer/aghosted = null var/turf/listed_turf = null //the current turf being examined in the stat panel var/list/shouldnt_see = list() //list of objects that this mob shouldn't see in the stat panel. this silliness is needed because of AI alt+click and cult blood runes From 133bc96344ad9b4ff476090df216a257530390cb Mon Sep 17 00:00:00 2001 From: mwerezak Date: Fri, 14 Aug 2015 23:20:10 -0400 Subject: [PATCH 07/10] Fixes #10645 Sets unacidable where appropriate. --- code/game/objects/items/weapons/paint.dm | 1 + code/modules/detectivework/footprints_and_rag.dm | 1 + code/modules/reagents/dispenser/cartridge.dm | 1 + .../modules/reagents/reagent_containers/food/drinks/bottle.dm | 4 ++++ .../reagents/reagent_containers/food/drinks/drinkingglass.dm | 1 + code/modules/reagents/reagent_containers/food/drinks/jar.dm | 1 + code/modules/reagents/reagent_containers/glass.dm | 2 ++ code/modules/reagents/reagent_containers/hypospray.dm | 1 + code/modules/reagents/reagent_containers/spray.dm | 1 + code/modules/reagents/reagent_containers/syringes.dm | 1 + 10 files changed, 14 insertions(+) diff --git a/code/game/objects/items/weapons/paint.dm b/code/game/objects/items/weapons/paint.dm index d92812b3fde..fe1247cc899 100644 --- a/code/game/objects/items/weapons/paint.dm +++ b/code/game/objects/items/weapons/paint.dm @@ -14,6 +14,7 @@ var/global/list/cached_icons = list() amount_per_transfer_from_this = 10 possible_transfer_amounts = list(10,20,30,60) volume = 60 + unacidable = 0 flags = OPENCONTAINER var/paint_type = "red" diff --git a/code/modules/detectivework/footprints_and_rag.dm b/code/modules/detectivework/footprints_and_rag.dm index aedf6e4c9f6..38cac18fbb0 100644 --- a/code/modules/detectivework/footprints_and_rag.dm +++ b/code/modules/detectivework/footprints_and_rag.dm @@ -24,6 +24,7 @@ volume = 5 can_be_placed_into = null flags = OPENCONTAINER | NOBLUDGEON + unacidable = 0 /obj/item/weapon/reagent_containers/glass/rag/attack_self(mob/user as mob) return diff --git a/code/modules/reagents/dispenser/cartridge.dm b/code/modules/reagents/dispenser/cartridge.dm index 569da4cc731..2f7369cba0d 100644 --- a/code/modules/reagents/dispenser/cartridge.dm +++ b/code/modules/reagents/dispenser/cartridge.dm @@ -9,6 +9,7 @@ amount_per_transfer_from_this = 50 // Large, but inaccurate. Use a chem dispenser or beaker for accuracy. possible_transfer_amounts = list(50, 100) + unacidable = 1 var/spawn_reagent = null var/label = "" diff --git a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm index 7e289a45f35..8db599bf524 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm @@ -9,6 +9,10 @@ var/const/duration = 13 //Directly relates to the 'weaken' duration. Lowered by armor (i.e. helmets) var/isGlass = 1 //Whether the 'bottle' is made of glass or not so that milk cartons dont shatter when someone gets hit by it +/obj/item/weapon/reagent_containers/food/drinks/bottle/New() + ..() + if(isGlass) unacidable = 1 + /obj/item/weapon/reagent_containers/food/drinks/bottle/proc/smash(mob/living/target as mob, mob/living/user as mob) //Creates a shattering noise and replaces the bottle with a broken_bottle diff --git a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm index 0dc30124935..c7f0f0a9fee 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm @@ -6,6 +6,7 @@ icon_state = "glass_empty" amount_per_transfer_from_this = 5 volume = 30 + unacidable = 1 //glass center_of_mass = list("x"=16, "y"=10) on_reagent_change() diff --git a/code/modules/reagents/reagent_containers/food/drinks/jar.dm b/code/modules/reagents/reagent_containers/food/drinks/jar.dm index 7cca924261b..47abb8637a3 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/jar.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/jar.dm @@ -8,6 +8,7 @@ icon_state = "jar" item_state = "beaker" center_of_mass = list("x"=15, "y"=8) + unacidable = 1 New() ..() reagents.add_reagent("slime", 50) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 123bbc9d1fa..359e6b2c99e 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -14,6 +14,7 @@ volume = 60 w_class = 2 flags = OPENCONTAINER + unacidable = 1 //glass doesn't dissolve in acid var/label_text = "" @@ -219,6 +220,7 @@ possible_transfer_amounts = list(10,20,30,60,120) volume = 120 flags = OPENCONTAINER + unacidable = 0 attackby(var/obj/D, mob/user as mob) if(isprox(D)) diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 6656eeecc0a..a2ae1ebaad8 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -9,6 +9,7 @@ item_state = "hypo" icon_state = "hypo" amount_per_transfer_from_this = 5 + unacidable = 1 volume = 30 possible_transfer_amounts = null flags = OPENCONTAINER diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 0da6f7e0c4c..d9d5bc7ce81 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -11,6 +11,7 @@ throw_speed = 2 throw_range = 10 amount_per_transfer_from_this = 10 + unacidable = 1 //plastic possible_transfer_amounts = list(5,10) //Set to null instead of list, if there is only one. var/spray_size = 3 var/list/spray_sizes = list(1,3) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 0f3076fdb69..f186d6d87f4 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -18,6 +18,7 @@ w_class = 1 slot_flags = SLOT_EARS sharp = 1 + unacidable = 1 //glass var/mode = SYRINGE_DRAW var/image/filling //holds a reference to the current filling overlay var/visible_name = "a syringe" From a5fd2d386c8d9848752fc23c7cd2d69d19cb5310 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Fri, 14 Aug 2015 23:34:24 -0400 Subject: [PATCH 08/10] Fixes #10637 --- code/modules/research/circuitprinter.dm | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index 1eaf9ba97e0..437bf8c8146 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -126,11 +126,10 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). amount = min(stack.amount, round((max_material_amount - TotalMaterials()) / stack.perunit)) busy = 1 - use_power(max(1000, (3750 * amount / 10))) var/stacktype = stack.type - stack.use(amount) - if(do_after(usr, 16)) + if(do_after(usr, 16) && stack.use(amount)) user << "You add [amount] sheets to \the [src]." + use_power(max(1000, (3750 * amount / 10))) switch(stacktype) if(/obj/item/stack/material/glass) g_amount += amount * 3750 @@ -140,8 +139,6 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). diamond_amount += amount * 2000 if(/obj/item/stack/material/uranium) uranium_amount += amount * 2000 - else - new stacktype(loc, amount) busy = 0 updateUsrDialog() return From 3163de7a50e4327d105673250297961c24351754 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Fri, 14 Aug 2015 23:44:46 -0400 Subject: [PATCH 09/10] Fixes #10621 Coffee now adds jittery as an overdose effect. Set overdose so that drinking two full cups in one go (60 units) will result in 150 jitteriness. --- .../Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm index 97db6ceab5e..0d04d8ad99b 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm @@ -563,6 +563,7 @@ adj_drowsy = -3 adj_sleepy = -2 adj_temp = 25 + overdose = 45 glass_icon_state = "hot_coffee" glass_name = "cup of coffee" @@ -572,10 +573,14 @@ ..() if(alien == IS_DIONA) return - M.make_jittery(5) if(adj_temp > 0) holder.remove_reagent("frostoil", 10 * removed) +/datum/reagent/drink/coffee/overdose(var/mob/living/carbon/M, var/alien) + if(alien == IS_DIONA) + return + M.make_jittery(5) + /datum/reagent/drink/coffee/icecoffee name = "Iced Coffee" id = "icecoffee" From 0255b7911408d5ce310a5ddb27be4984cce973bb Mon Sep 17 00:00:00 2001 From: Null Snapshot Date: Fri, 14 Aug 2015 22:47:53 -0700 Subject: [PATCH 10/10] Fixes a problem with crates containing animals not spitting out their mobs. --- code/game/objects/structures/crates_lockers/largecrate.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm index 54a9fc8092b..281c6b93678 100644 --- a/code/game/objects/structures/crates_lockers/largecrate.dm +++ b/code/game/objects/structures/crates_lockers/largecrate.dm @@ -13,8 +13,8 @@ if(istype(W, /obj/item/weapon/crowbar)) new /obj/item/stack/material/wood(src) var/turf/T = get_turf(src) - for(var/obj/O in contents) - O.loc = T + for(var/atom/movable/M in contents) + M.loc = T user.visible_message("[user] pries \the [src] open.", \ "You pry open \the [src].", \ "You hear splitting wood.")