From 072bdcde60148890a6a150087c90f2c555b3a919 Mon Sep 17 00:00:00 2001 From: Aryn Date: Wed, 19 Mar 2014 01:02:27 -0600 Subject: [PATCH] I think I fixed everything it is possible to stuff a light source into. Conflicts: code/game/dna/dna_modifier.dm code/game/machinery/Sleeper.dm code/game/objects/structures/transit_tubes.dm code/modules/reagents/Chemistry-Machinery.dm code/modules/recycling/disposal.dm --- code/__HELPERS/loc.dm | 7 +++ code/game/atoms_movable.dm | 2 +- code/game/dna/dna_modifier.dm | 25 +++++----- code/game/machinery/Sleeper.dm | 43 ++++++++++++----- code/game/machinery/adv_med.dm | 18 +++---- code/game/machinery/cryo.dm | 4 +- code/game/machinery/cryopod.dm | 16 +++---- code/game/machinery/rechargestation.dm | 4 +- code/game/machinery/suit_storage_unit.dm | 12 ++--- code/game/mecha/mecha.dm | 2 +- .../items/weapons/implants/implantchair.dm | 4 +- .../objects/items/weapons/storage/storage.dm | 8 ++-- .../structures/crates_lockers/closets.dm | 28 +++++------ .../structures/crates_lockers/crates.dm | 16 +++---- .../structures/crates_lockers/largecrate.dm | 4 +- code/game/objects/structures/morgue.dm | 32 ++++++------- code/game/objects/structures/safe.dm | 4 +- code/game/objects/structures/transit_tubes.dm | 15 +++--- code/game/objects/structures/watercloset.dm | 4 +- code/modules/DetectiveWork/detective_work.dm | 12 ++--- code/modules/reagents/Chemistry-Machinery.dm | 18 +++---- code/modules/recycling/disposal.dm | 47 +++++++++---------- .../machinery/geosample_scanner.dm | 12 ++--- 23 files changed, 179 insertions(+), 158 deletions(-) create mode 100644 code/__HELPERS/loc.dm diff --git a/code/__HELPERS/loc.dm b/code/__HELPERS/loc.dm new file mode 100644 index 00000000000..91be708854d --- /dev/null +++ b/code/__HELPERS/loc.dm @@ -0,0 +1,7 @@ +atom/movable/proc/setloc(newloc) + if(light) + var/oldloc = loc + loc = newloc + if(isturf(newloc) != isturf(oldloc)) light.Reset() + else + loc = newloc diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 3ccb3547a86..8a413b89872 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -43,7 +43,7 @@ if(destination) if(loc) loc.Exited(src) - loc = destination + setloc(destination) loc.Entered(src) for(var/atom/movable/AM in loc) AM.Crossed(src) diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index e2224b2c496..5931d0e069b 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -86,14 +86,11 @@ /obj/machinery/dna_scannernew/proc/eject_occupant() src.go_out() for(var/obj/O in src) - if(!istype(O,/obj/item/weapon/circuitboard/clonescanner) && \ - !istype(O,/obj/item/weapon/stock_parts) && \ - !istype(O,/obj/item/stack/cable_coil) && \ - O != beaker) - O.loc = get_turf(src)//Ejects items that manage to get in there (exluding the components and beaker) + if((!istype(O,/obj/item/weapon/reagent_containers)) && (!istype(O,/obj/item/weapon/circuitboard/clonescanner)) && (!istype(O,/obj/item/weapon/stock_parts)) && (!istype(O,/obj/item/stack/cable_coil))) + O.setloc(get_turf(src))//Ejects items that manage to get in there (exluding the components) if(!occupant) for(var/mob/M in src)//Failsafe so you can get mobs out - M.loc = get_turf(src) + M.setloc(get_turf(src)) /obj/machinery/dna_scannernew/verb/move_inside() set src in oview(1) @@ -116,7 +113,7 @@ usr.stop_pulling() usr.client.perspective = EYE_PERSPECTIVE usr.client.eye = src - usr.loc = src + usr.setloc(src) src.occupant = usr src.icon_state = "scanner_1" src.add_fingerprint(usr) @@ -194,7 +191,7 @@ beaker = item user.drop_item() - item.loc = src + item.setloc(src) user.visible_message("[user] adds \a [item] to \the [src]!", "You add \a [item] to \the [src]!") return else if (!istype(item, /obj/item/weapon/grab)) @@ -217,7 +214,7 @@ if(M.client) M.client.perspective = EYE_PERSPECTIVE M.client.eye = src - M.loc = src + M.setloc(src) src.occupant = M src.icon_state = "scanner_1" @@ -240,7 +237,7 @@ if (src.occupant.client) src.occupant.client.eye = src.occupant.client.mob src.occupant.client.perspective = MOB_PERSPECTIVE - src.occupant.loc = src.loc + src.occupant.setloc(src.loc) src.occupant = null src.icon_state = "scanner_0" return @@ -249,7 +246,7 @@ switch(severity) if(1.0) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) ex_act(severity) //Foreach goto(35) //SN src = null @@ -258,7 +255,7 @@ if(2.0) if (prob(50)) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) ex_act(severity) //Foreach goto(108) //SN src = null @@ -267,7 +264,7 @@ if(3.0) if (prob(25)) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) ex_act(severity) //Foreach goto(181) //SN src = null @@ -280,7 +277,7 @@ /obj/machinery/dna_scannernew/blob_act() if(prob(75)) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) del(src) /obj/machinery/computer/scan_consolenew diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 03a67b4f719..0be949dbb01 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -187,7 +187,7 @@ blob_act() if(prob(75)) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) A.blob_act() del(src) return @@ -198,7 +198,7 @@ if(!beaker) beaker = G user.drop_item() - G.loc = src + G.setloc(src) user.visible_message("[user] adds \a [G] to \the [src]!", "You add \a [G] to \the [src]!") src.updateUsrDialog() return @@ -228,7 +228,7 @@ if(M.client) M.client.perspective = EYE_PERSPECTIVE M.client.eye = src - M.loc = src + M.setloc(src) src.occupant = M src.icon_state = "sleeper_1" if(orient == "RIGHT") @@ -248,21 +248,21 @@ switch(severity) if(1.0) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) ex_act(severity) qdel(src) return if(2.0) if(prob(50)) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) ex_act(severity) qdel(src) return if(3.0) if(prob(25)) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) ex_act(severity) qdel(src) return @@ -309,7 +309,7 @@ if(src.occupant.client) src.occupant.client.eye = src.occupant.client.mob src.occupant.client.perspective = MOB_PERSPECTIVE - src.occupant.loc = src.loc + src.occupant.setloc(src.loc) src.occupant = null if(orient == "RIGHT") icon_state = "sleeper_0-r" @@ -411,8 +411,29 @@ if(orient == "RIGHT") icon_state = "sleeper_1-r" - for(var/obj/O in src) - del(O) - src.add_fingerprint(usr) + for(var/mob/living/carbon/slime/M in range(1,usr)) + if(M.Victim == usr) + usr << "You're too busy getting your life sucked out of you." + return + visible_message("[usr] starts climbing into the sleeper.", 3) + if(do_after(usr, 20)) + if(src.occupant) + usr << "\blue The sleeper is already occupied!" + return + usr.stop_pulling() + usr.client.perspective = EYE_PERSPECTIVE + usr.client.eye = src + usr.setloc(src) + src.occupant = usr + src.icon_state = "sleeper_1" + if(orient == "RIGHT") + icon_state = "sleeper_1-r" + + usr << "\blue You feel cool air surround you. You go numb as your senses turn inward." + + for(var/obj/O in src) + del(O) + src.add_fingerprint(usr) + return return - return \ No newline at end of file + return diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 5c61d2cf226..adc0a84ade5 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -46,7 +46,7 @@ usr.pulling = null usr.client.perspective = EYE_PERSPECTIVE usr.client.eye = src - usr.loc = src + usr.setloc(src) src.occupant = usr src.icon_state = "body_scanner_1" for(var/obj/O in src) @@ -60,12 +60,12 @@ if ((!( src.occupant ) || src.locked)) return for(var/obj/O in src) - O.loc = src.loc + O.setloc(src.loc) //Foreach goto(30) if (src.occupant.client) src.occupant.client.eye = src.occupant.client.mob src.occupant.client.perspective = MOB_PERSPECTIVE - src.occupant.loc = src.loc + src.occupant.setloc(src.loc) src.occupant = null src.icon_state = "body_scanner_0" return @@ -83,11 +83,11 @@ if (M.client) M.client.perspective = EYE_PERSPECTIVE M.client.eye = src - M.loc = src + M.setloc(src) src.occupant = M src.icon_state = "body_scanner_1" for(var/obj/O in src) - O.loc = src.loc + O.setloc(src.loc) //Foreach goto(154) src.add_fingerprint(user) //G = null @@ -98,7 +98,7 @@ switch(severity) if(1.0) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) ex_act(severity) //Foreach goto(35) //SN src = null @@ -107,7 +107,7 @@ if(2.0) if (prob(50)) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) ex_act(severity) //Foreach goto(108) //SN src = null @@ -116,7 +116,7 @@ if(3.0) if (prob(25)) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) ex_act(severity) //Foreach goto(181) //SN src = null @@ -128,7 +128,7 @@ /obj/machinery/bodyscanner/blob_act() if(prob(50)) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) del(src) /obj/machinery/body_scanconsole/ex_act(severity) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 34a2f8a4f8a..52464306d80 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -251,7 +251,7 @@ if (occupant.client) occupant.client.eye = occupant.client.mob occupant.client.perspective = MOB_PERSPECTIVE - occupant.loc = get_step(loc, SOUTH) //this doesn't account for walls or anything, but i don't forsee that being a problem. + occupant.setloc(get_step(loc, SOUTH)) //this doesn't account for walls or anything, but i don't forsee that being a problem. if (occupant.bodytemperature < 261 && occupant.bodytemperature >= 70) //Patch by Aranclanos to stop people from taking burn damage after being ejected occupant.bodytemperature = 261 // occupant.metabslow = 0 @@ -275,7 +275,7 @@ M.client.perspective = EYE_PERSPECTIVE M.client.eye = src M.stop_pulling() - M.loc = src + M.setloc(src) if(M.health > -100 && (M.health < 0 || M.sleeping)) M << "\blue You feel a cold liquid surround you. Your skin starts to freeze up." occupant = M diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 5246d97e321..5d537787b75 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -80,7 +80,7 @@ obj/machinery/computer/cryopod/Topic(href, href_list) visible_message("\blue The console beeps happily as it disgorges \the [I].", 3) - I.loc = get_turf(src) + I.setloc(get_turf(src)) frozen_items -= I else if(href_list["allitems"]) @@ -92,7 +92,7 @@ obj/machinery/computer/cryopod/Topic(href, href_list) visible_message("\blue The console beeps happily as it disgorges the desired objects.", 3) for(var/obj/item/I in frozen_items) - I.loc = get_turf(src) + I.setloc(get_turf(src)) frozen_items -= I else if(href_list["crew"]) @@ -186,11 +186,11 @@ obj/machinery/computer/cryopod/Topic(href, href_list) //Drop all items into the pod. for(var/obj/item/W in occupant) occupant.drop_from_inventory(W) - W.loc = src + W.setloc(src) if(W.contents.len) //Make sure we catch anything not handled by del() on the items. for(var/obj/item/O in W.contents) - O.loc = src + O.setloc(src) //Delete all items not on the preservation list. var/list/items = src.contents @@ -240,7 +240,7 @@ obj/machinery/computer/cryopod/Topic(href, href_list) current_mode.possible_traitors.Remove(occupant) // Delete them from datacore. - + if(PDA_Manifest.len) PDA_Manifest.Cut() for(var/datum/data/record/R in data_core.medical) @@ -305,7 +305,7 @@ obj/machinery/computer/cryopod/Topic(href, href_list) if(do_after(user, 20)) if(!M || !G || !G:affecting) return - M.loc = src + M.setloc(src) if(M.client) M.client.perspective = EYE_PERSPECTIVE @@ -375,7 +375,7 @@ obj/machinery/computer/cryopod/Topic(href, href_list) usr.stop_pulling() usr.client.perspective = EYE_PERSPECTIVE usr.client.eye = src - usr.loc = src + usr.setloc(src) src.occupant = usr if(orient_right) @@ -401,7 +401,7 @@ obj/machinery/computer/cryopod/Topic(href, href_list) occupant.client.eye = src.occupant.client.mob occupant.client.perspective = MOB_PERSPECTIVE - occupant.loc = get_turf(src) + occupant.setloc(get_turf(src)) occupant = null if(orient_right) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index c78bc0bb393..2daaee476c5 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -75,7 +75,7 @@ if (src.occupant.client) src.occupant.client.eye = src.occupant.client.mob src.occupant.client.perspective = MOB_PERSPECTIVE - src.occupant.loc = src.loc + src.occupant.setloc(src.loc) src.occupant = null build_icon() src.use_power = 1 @@ -179,7 +179,7 @@ if(usr && usr.client) usr.client.perspective = EYE_PERSPECTIVE usr.client.eye = src - usr.loc = src + usr.setloc(src) src.occupant = usr /*for(var/obj/O in src) O.loc = src.loc*/ diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index ec282f5096f..7308ede2a4b 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -410,7 +410,7 @@ src.OCCUPANT.client.eye = src.OCCUPANT.client.mob src.OCCUPANT.client.perspective = MOB_PERSPECTIVE - src.OCCUPANT.loc = src.loc + src.OCCUPANT.setloc(src.loc) src.OCCUPANT = null if(!src.isopen) src.isopen = 1 @@ -453,7 +453,7 @@ usr.stop_pulling() usr.client.perspective = EYE_PERSPECTIVE usr.client.eye = src - usr.loc = src + usr.setloc(src) // usr.metabslow = 1 src.OCCUPANT = usr src.isopen = 0 //Close the thing after the guy gets inside @@ -499,7 +499,7 @@ if (M.client) M.client.perspective = EYE_PERSPECTIVE M.client.eye = src - M.loc = src + M.setloc(src) src.OCCUPANT = M src.isopen = 0 //close ittt @@ -520,7 +520,7 @@ return user << "You load the [S.name] into the storage compartment." user.drop_item() - S.loc = src + S.setloc(src) src.SUIT = S src.update_icon() src.updateUsrDialog() @@ -534,7 +534,7 @@ return user << "You load the [H.name] into the storage compartment." user.drop_item() - H.loc = src + H.setloc(src) src.HELMET = H src.update_icon() src.updateUsrDialog() @@ -548,7 +548,7 @@ return user << "You load the [M.name] into the storage compartment." user.drop_item() - M.loc = src + M.setloc(src) src.MASK = M src.update_icon() src.updateUsrDialog() diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index eb296c5c764..9bbc4e83192 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -535,7 +535,7 @@ var/obj/mecha/working/ripley/R = src if(R.cargo) for(var/obj/O in R.cargo) //Dump contents of stored cargo - O.loc = T + O.setloc(T) R.cargo -= O T.Entered(O) diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm index 0edd1a87362..51e0e0dbca4 100644 --- a/code/game/objects/items/weapons/implants/implantchair.dm +++ b/code/game/objects/items/weapons/implants/implantchair.dm @@ -97,7 +97,7 @@ if (src.occupant.client) src.occupant.client.eye = src.occupant.client.mob src.occupant.client.perspective = MOB_PERSPECTIVE - src.occupant.loc = src.loc + src.occupant.setloc(src.loc) if(injecting) implant(src.occupant) injecting = 0 @@ -117,7 +117,7 @@ M.client.perspective = EYE_PERSPECTIVE M.client.eye = src M.stop_pulling() - M.loc = src + M.setloc(src) src.occupant = M src.add_fingerprint(usr) icon_state = "implantchair_on" diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index c49a79f07c6..8bb855047f7 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -250,7 +250,7 @@ if(usr) usr.u_equip(W) usr.update_icons() //update our overlays - W.loc = src + W.setloc(src) W.on_enter_storage(src) if(usr) if (usr.client && usr.s_active != src) @@ -293,9 +293,9 @@ W.layer = 20 else W.layer = initial(W.layer) - W.loc = new_location + W.setloc(new_location) else - W.loc = get_turf(src) + W.setloc(get_turf(src)) if(usr) src.orient2hud(usr) @@ -325,7 +325,7 @@ user << "\red The tray won't fit in [src]." return 1 else - W.loc = user.loc + W.setloc(user.loc) if ((user.client && user.s_active != src)) user.client.screen -= W W.dropped(user) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 3a9ab2f0ac5..06362c81752 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -21,7 +21,7 @@ if(!opened) // if closed, any item at the crate's loc is put in the contents for(var/obj/item/I in src.loc) if(I.density || I.anchored || I == src) continue - I.loc = src + I.setloc(src) // Fix for #383 - C4 deleting fridges with corpses /obj/structure/closet/Destroy() @@ -49,13 +49,13 @@ /obj/structure/closet/proc/dump_contents() //Cham Projector Exception for(var/obj/effect/dummy/chameleon/AD in src) - AD.loc = src.loc + AD.setloc(src.loc) for(var/obj/I in src) - I.loc = src.loc + I.setloc(src.loc) for(var/mob/M in src) - M.loc = src.loc + M.setloc(src.loc) if(M.client) M.client.eye = M.client.mob M.client.perspective = MOB_PERSPECTIVE @@ -92,14 +92,14 @@ for(var/obj/effect/dummy/chameleon/AD in src.loc) if(itemcount >= storage_capacity) break - AD.loc = src + AD.setloc(src) itemcount++ for(var/obj/item/I in src.loc) if(itemcount >= storage_capacity) break if(!I.anchored) - I.loc = src + I.setloc(src) itemcount++ for(var/mob/M in src.loc) @@ -114,7 +114,7 @@ M.client.perspective = EYE_PERSPECTIVE M.client.eye = src - M.loc = src + M.setloc(src) itemcount++ src.icon_state = src.icon_closed @@ -139,19 +139,19 @@ switch(severity) if(1) for(var/atom/movable/A as mob|obj in src)//pulls everything out of the locker and hits it with an explosion - A.loc = src.loc + A.setloc(src.loc) A.ex_act(severity++) qdel(src) if(2) if(prob(50)) for (var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) A.ex_act(severity++) qdel(src) if(3) if(prob(5)) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) A.ex_act(severity++) qdel(src) @@ -160,7 +160,7 @@ ..() if(health <= 0) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) del(src) return @@ -169,14 +169,14 @@ if(user.environment_smash) visible_message("\red [user] destroys the [src]. ") for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) del(src) // this should probably use dump_contents() /obj/structure/closet/blob_act() if(prob(75)) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) del(src) /obj/structure/closet/meteorhit(obj/O as obj) @@ -268,7 +268,7 @@ return usr.drop_item() if(W) - W.loc = src.loc + W.setloc(src.loc) else if(istype(W, /obj/item/weapon/packageWrap)) return else if(istype(W, /obj/item/weapon/weldingtool)) diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 8170bfae2ab..73b06da6a87 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -33,7 +33,7 @@ playsound(src.loc, 'sound/machines/click.ogg', 15, 1, -3) for(var/obj/O in src) - O.loc = get_turf(src) + O.setloc(get_turf(src)) icon_state = icon_opened src.opened = 1 return 1 @@ -55,7 +55,7 @@ var/obj/structure/stool/bed/B = O if(B.buckled_mob) continue - O.loc = src + O.setloc(src) itemcount++ icon_state = icon_closed @@ -68,7 +68,7 @@ return user.drop_item() if(W) - W.loc = src.loc + W.setloc(src.loc) else if(istype(W, /obj/item/weapon/packageWrap)) return else if(istype(W, /obj/item/stack/cable_coil)) @@ -84,7 +84,7 @@ if(rigged) user << "You attach [W] to [src]." user.drop_item() - W.loc = src + W.setloc(src) return else if(istype(W, /obj/item/weapon/wirecutters)) if(rigged) @@ -385,12 +385,12 @@ continue if(!S.anchored) found = 1 - S.loc = src + S.setloc(src) break if(!found) for(var/obj/machinery/M in src.loc) if(!M.anchored) - M.loc = src + M.setloc(src) break return @@ -413,12 +413,12 @@ continue if(!S.anchored) found = 1 - S.loc = src + S.setloc(src) break if(!found) for(var/obj/machinery/M in src.loc) if(!M.anchored) - M.loc = src + M.setloc(src) break return diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm index 96ed8ef9169..0fac1f53035 100644 --- a/code/game/objects/structures/crates_lockers/largecrate.dm +++ b/code/game/objects/structures/crates_lockers/largecrate.dm @@ -15,7 +15,7 @@ new /obj/item/stack/sheet/wood(src) var/turf/T = get_turf(src) for(var/obj/O in contents) - O.loc = T + O.setloc(T) user.visible_message("[user] pries \the [src] open.", \ "You pry open \the [src].", \ "You hear splitting wood.") @@ -84,4 +84,4 @@ /obj/structure/largecrate/cat/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/crowbar)) new /mob/living/simple_animal/cat(loc) - ..() \ No newline at end of file + ..() diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 991c4bb873f..999315b9053 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -46,21 +46,21 @@ switch(severity) if(1.0) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) ex_act(severity) qdel(src) return if(2.0) if (prob(50)) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) ex_act(severity) qdel(src) return if(3.0) if (prob(5)) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) ex_act(severity) qdel(src) return @@ -76,7 +76,7 @@ if (src.connected) for(var/atom/movable/A as mob|obj in src.connected.loc) if (!( A.anchored )) - A.loc = src + A.setloc(src) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) //src.connected = null del(src.connected) @@ -90,7 +90,7 @@ src.connected.connected = src src.icon_state = "morgue0" for(var/atom/movable/A as mob|obj in src) - A.loc = src.connected.loc + A.setloc(src.connected.loc) src.connected.icon_state = "morguet" src.connected.dir = src.dir else @@ -126,7 +126,7 @@ src.connected.connected = src src.icon_state = "morgue0" for(var/atom/movable/A as mob|obj in src) - A.loc = src.connected.loc + A.setloc(src.connected.loc) //Foreach goto(106) src.connected.icon_state = "morguet" else @@ -156,7 +156,7 @@ if (src.connected) for(var/atom/movable/A as mob|obj in src.loc) if (!( A.anchored )) - A.loc = src.connected + A.setloc(src.connected) //Foreach goto(26) src.connected.connected = null src.connected.update() @@ -173,7 +173,7 @@ return if (!ismob(user) || user.stat || user.lying || user.stunned) return - O.loc = src.loc + O.setloc(src.loc) if (user != O) for(var/mob/B in viewers(user, 3)) if ((B.client && !( B.blinded ))) @@ -211,21 +211,21 @@ switch(severity) if(1.0) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) ex_act(severity) qdel(src) return if(2.0) if (prob(50)) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) ex_act(severity) qdel(src) return if(3.0) if (prob(5)) for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + A.setloc(src.loc) ex_act(severity) qdel(src) return @@ -250,7 +250,7 @@ if ((src.connected) && (src.locked == 0)) for(var/atom/movable/A as mob|obj in src.connected.loc) if (!( A.anchored )) - A.loc = src + A.setloc(src) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) //src.connected = null del(src.connected) @@ -264,7 +264,7 @@ src.connected.connected = src src.icon_state = "crema0" for(var/atom/movable/A as mob|obj in src) - A.loc = src.connected.loc + A.setloc(src.connected.loc) src.connected.icon_state = "cremat" else //src.connected = null @@ -298,7 +298,7 @@ src.connected.connected = src src.icon_state = "crema0" for(var/atom/movable/A as mob|obj in src) - A.loc = src.connected.loc + A.setloc(src.connected.loc) //Foreach goto(106) src.connected.icon_state = "cremat" else @@ -374,7 +374,7 @@ if (src.connected) for(var/atom/movable/A as mob|obj in src.loc) if (!( A.anchored )) - A.loc = src.connected + A.setloc(src.connected) //Foreach goto(26) src.connected.connected = null src.connected.update() @@ -391,7 +391,7 @@ return if (!ismob(user) || user.stat || user.lying || user.stunned) return - O.loc = src.loc + O.setloc(src.loc) if (user != O) for(var/mob/B in viewers(user, 3)) if ((B.client && !( B.blinded ))) diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index 00946b8678c..cdab10c884b 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -36,7 +36,7 @@ FLOOR SAFES return if(I.w_class + space <= maxspace) space += I.w_class - I.loc = src + I.setloc(src) /obj/structure/safe/proc/check_unlocked(mob/user as mob, canhear) @@ -147,7 +147,7 @@ FLOOR SAFES if(I.w_class + space <= maxspace) space += I.w_class user.drop_item() - I.loc = src + I.setloc(src) user << "You put [I] in [src]." updateUsrDialog() return diff --git a/code/game/objects/structures/transit_tubes.dm b/code/game/objects/structures/transit_tubes.dm index df52dd0995c..cb1780afa5c 100644 --- a/code/game/objects/structures/transit_tubes.dm +++ b/code/game/objects/structures/transit_tubes.dm @@ -49,7 +49,7 @@ /obj/structure/transit_tube_pod/Destroy() for(var/atom/movable/AM in contents) - AM.loc = loc + AM.setloc(loc) ..() @@ -60,8 +60,7 @@ obj/structure/ex_act(severity) switch(severity) if(1.0) for(var/atom/movable/AM in contents) - AM.loc = loc - // TODO: What the fuck are you doing + AM.setloc(loc) AM.ex_act(severity++) qdel(src) @@ -69,7 +68,7 @@ obj/structure/ex_act(severity) if(2.0) if(prob(50)) for(var/atom/movable/AM in contents) - AM.loc = loc + AM.setloc(loc) AM.ex_act(severity++) qdel(src) @@ -104,7 +103,7 @@ obj/structure/ex_act(severity) AM << "The tube's support pylons block your way." return ..() else - AM.loc = src.loc + AM.setloc(src.loc) AM << "You slip under the tube." /obj/structure/transit_tube/station/New(loc) @@ -116,7 +115,7 @@ obj/structure/ex_act(severity) if(!pod_moving && icon_state == "open" && istype(AM, /mob)) for(var/obj/structure/transit_tube_pod/pod in loc) if(!pod.moving && pod.dir in directions()) - AM.loc = pod + AM.setloc(pod) return @@ -436,7 +435,7 @@ obj/structure/ex_act(severity) if(istype(mob, /mob) && mob.client) // If the pod is not in a tube at all, you can get out at any time. if(!(locate(/obj/structure/transit_tube) in loc)) - mob.loc = loc + mob.setloc(loc) mob.client.Move(get_step(loc, direction), direction) //if(moving && istype(loc, /turf/space)) @@ -449,7 +448,7 @@ obj/structure/ex_act(severity) if(!station.pod_moving) if(direction == station.dir) if(station.icon_state == "open") - mob.loc = loc + mob.setloc(loc) mob.client.Move(get_step(loc, direction), direction) else diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 8bdaad4672a..8a81e93d1a9 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -31,7 +31,7 @@ if(ishuman(user)) user.put_in_hands(I) else - I.loc = get_turf(src) + I.setloc(get_turf(src)) user << "You find \an [I] in the cistern." w_items -= I.w_class return @@ -84,7 +84,7 @@ user << "The cistern is full." return user.drop_item() - I.loc = src + I.setloc(src) w_items += I.w_class user << "You carefully place \the [I] into the cistern." return diff --git a/code/modules/DetectiveWork/detective_work.dm b/code/modules/DetectiveWork/detective_work.dm index 047fa29e506..b9ecfdc3e68 100644 --- a/code/modules/DetectiveWork/detective_work.dm +++ b/code/modules/DetectiveWork/detective_work.dm @@ -142,7 +142,7 @@ obj/machinery/computer/forensic_scanning temp = null if("eject") if(scanning) - scanning.loc = loc + scanning.setloc(loc) scanning = null else temp = "Eject Failed: No Object" @@ -152,13 +152,13 @@ obj/machinery/computer/forensic_scanning if(I && istype(I)) if(istype(I, /obj/item/weapon/evidencebag)) scanning = I.contents[1] - scanning.loc = src + scanning.setloc(src) I.overlays -= scanning I.icon_state = "evidenceobj" else scanning = I M.drop_item() - I.loc = src + I.setloc(src) else usr << "Invalid Object Rejected." if("card") //Processing a fingerprint card. @@ -173,11 +173,11 @@ obj/machinery/computer/forensic_scanning if(card.amount > 1 || !card.fingerprints.len) usr << "\red ERROR: No prints/too many cards." if(card.loc == src) - card.loc = src.loc + card.setloc(src.loc) card = null return M.drop_item() - I.loc = src + I.setloc(src) process_card() else usr << "\red Invalid Object Rejected." @@ -607,7 +607,7 @@ obj/machinery/computer/forensic_scanning else usr << "\red ERROR: No prints/too many cards." if(card.loc == src) - card.loc = src.loc + card.setloc(src.loc) card = null return return diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index c0e2d00165d..5ce114f8114 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -208,7 +208,7 @@ if(istype(B, /obj/item/weapon/reagent_containers/glass) || istype(B,/obj/item/weapon/reagent_containers/food)) src.beaker = B user.drop_item() - B.loc = src + B.setloc(src) user << "You set [B] on the machine." nanomanager.update_uis(src) // update all UIs attached to src icon_state = "[icon_state]2" @@ -325,7 +325,7 @@ return src.beaker = B user.drop_item() - B.loc = src + B.setloc(src) user << "You add the beaker to the machine!" src.updateUsrDialog() icon_state = "mixer1" @@ -338,7 +338,7 @@ src.loaded_pill_bottle = B user.drop_item() - B.loc = src + B.setloc(src) user << "You add the pill bottle into the dispenser slot!" src.updateUsrDialog() return @@ -354,7 +354,7 @@ if (href_list["ejectp"]) if(loaded_pill_bottle) - loaded_pill_bottle.loc = src.loc + loaded_pill_bottle.setloc(src.loc) loaded_pill_bottle = null else if(href_list["close"]) usr << browse(null, "window=chemmaster") @@ -966,7 +966,7 @@ else src.beaker = O user.drop_item() - O.loc = src + O.setloc(src) update_icon() src.updateUsrDialog() return 0 @@ -980,7 +980,7 @@ for (var/obj/item/weapon/reagent_containers/food/snacks/grown/G in O.contents) O.contents -= G - G.loc = src + G.setloc(src) holdingitems += G if(holdingitems && holdingitems.len >= limit) //Sanity checking so the blender doesn't overfill user << "You fill the All-In-One grinder to the brim." @@ -1003,7 +1003,7 @@ return 1 user.before_take_item(O) - O.loc = src + O.setloc(src) holdingitems += O src.updateUsrDialog() return 0 @@ -1086,7 +1086,7 @@ return if (!beaker) return - beaker.loc = src.loc + beaker.setloc(src.loc) beaker = null update_icon() @@ -1098,7 +1098,7 @@ return for(var/obj/item/O in holdingitems) - O.loc = src.loc + O.setloc(src.loc) holdingitems -= O holdingitems = list() diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 4b1ad0470e4..3bbcd394262 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -112,7 +112,7 @@ if (GM.client) GM.client.perspective = EYE_PERSPECTIVE GM.client.eye = src - GM.loc = src + GM.setloc(src) for (var/mob/C in viewers(src)) C.show_message("\red [GM.name] has been placed in the [src] by [user].", 3) del(G) @@ -125,7 +125,7 @@ user.drop_item() if(I) - I.loc = src + I.setloc(src) user << "You place \the [I] into the [src]." for(var/mob/M in viewers(src)) @@ -170,7 +170,7 @@ if (target.client) target.client.perspective = EYE_PERSPECTIVE target.client.eye = src - target.loc = src + target.setloc(src) for (var/mob/C in viewers(src)) if(C == user) @@ -197,7 +197,7 @@ if (user.client) user.client.eye = user.client.mob user.client.perspective = MOB_PERSPECTIVE - user.loc = src.loc + user.setloc(src.loc) update() return @@ -308,7 +308,7 @@ // eject the contents of the disposal unit proc/eject() for(var/atom/movable/AM in src) - AM.loc = src.loc + AM.setloc(src.loc) AM.pipe_eject(0) update() @@ -367,7 +367,7 @@ return use_power = 1 - + if(mode != 1) // if off or ready, no need to charge return @@ -447,7 +447,7 @@ for(var/atom/movable/AM in H) target = get_offset_target_turf(src.loc, rand(5)-rand(5), rand(5)-rand(5)) - AM.loc = src.loc + AM.setloc(src.loc) AM.pipe_eject(0) spawn(1) if(AM) @@ -462,7 +462,7 @@ if(istype(I, /obj/item/projectile)) return if(prob(75)) - I.loc = src + I.setloc(src) for(var/mob/M in viewers(src)) M.show_message("\the [I] lands in \the [src].", 3) else @@ -510,7 +510,7 @@ // now everything inside the disposal gets put into the holder // note AM since can contain mobs or objs for(var/atom/movable/AM in D) - AM.loc = src + AM.setloc(src) if(istype(AM, /mob/living/carbon/human)) var/mob/living/carbon/human/H = AM if(M_FAT in H.mutations) // is a human and fat? @@ -587,7 +587,7 @@ // used when a a holder meets a stuck holder proc/merge(var/obj/structure/disposalholder/other) for(var/atom/movable/AM in other) - AM.loc = src // move everything in other holder to this one + AM.setloc(src) // move everything in other holder to this one if(ismob(AM)) var/mob/M = AM if(M.client) // if a client mob, update eye to follow this holder @@ -649,7 +649,7 @@ // this is unlikely, but just dump out everything into the turf in case for(var/atom/movable/AM in H) - AM.loc = T + AM.setloc(T) AM.pipe_eject(0) del(H) ..() @@ -680,9 +680,9 @@ if(H2 && !H2.active) H.merge(H2) - H.loc = P + H.setloc(P) else // if wasn't a pipe, then set loc to turf - H.loc = T + H.setloc(T) return null return P @@ -721,7 +721,7 @@ if(T.density) // dense ouput turf, so stop holder H.active = 0 - H.loc = src + H.setloc(src) return if(T.intact && istype(T,/turf/simulated/floor)) //intact floor, pop the tile var/turf/simulated/floor/F = T @@ -741,7 +741,7 @@ playsound(src, 'sound/machines/hiss.ogg', 50, 0, 0) if(H) for(var/atom/movable/AM in H) - AM.loc = T + AM.setloc(T) AM.pipe_eject(direction) spawn(1) if(AM) @@ -756,7 +756,7 @@ for(var/atom/movable/AM in H) target = get_offset_target_turf(T, rand(5)-rand(5), rand(5)-rand(5)) - AM.loc = T + AM.setloc(T) AM.pipe_eject(0) spawn(1) if(AM) @@ -789,7 +789,7 @@ // this is unlikely, but just dump out everything into the turf in case for(var/atom/movable/AM in H) - AM.loc = T + AM.setloc(T) AM.pipe_eject(0) del(H) return @@ -903,9 +903,6 @@ update() return - - - //a three-way junction with dir being the dominant direction /obj/structure/disposalpipe/junction icon_state = "pipe-j1" @@ -1028,9 +1025,9 @@ if(H2 && !H2.active) H.merge(H2) - H.loc = P + H.setloc(P) else // if wasn't a pipe, then set loc to turf - H.loc = T + H.setloc(T) return null return P @@ -1090,9 +1087,9 @@ if(H2 && !H2.active) H.merge(H2) - H.loc = P + H.setloc(P) else // if wasn't a pipe, then set loc to turf - H.loc = T + H.setloc(T) return null return P @@ -1259,7 +1256,7 @@ if(H) for(var/atom/movable/AM in H) - AM.loc = src.loc + AM.setloc(src.loc) AM.pipe_eject(dir) spawn(5) AM.throw_at(target, 3, 1) diff --git a/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm b/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm index eaf92181b23..10080549788 100644 --- a/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm +++ b/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm @@ -92,7 +92,7 @@ update_coolant() return user.drop_item() - I.loc = src + I.setloc(src) scanned_item = I /obj/machinery/radiocarbon_spectrometer/proc/update_coolant() @@ -144,15 +144,15 @@ data["radiation"] = round(radiation) data["t_left_radspike"] = round(t_left_radspike) data["rad_shield_on"] = rad_shield - + // update the ui if it exists, returns null if no ui is passed/found - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) if (!ui) // the ui does not exist, so we'll create a new() one // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm ui = new(user, src, ui_key, "geoscanner.tmpl", "High Res Radiocarbon Spectrometer", 900, 825) // when the ui is first opened this is the data it will use - ui.set_initial_data(data) + ui.set_initial_data(data) // open the new ui window ui.open() // auto update every Master Controller tick @@ -319,7 +319,7 @@ last_scan_data = P.info P.loc = src.loc - scanned_item.loc = src.loc + scanned_item.setloc(src.loc) scanned_item = null /obj/machinery/radiocarbon_spectrometer/Topic(href, href_list) @@ -355,7 +355,7 @@ if(href_list["ejectItem"]) if(scanned_item) - scanned_item.loc = src.loc + scanned_item.setloc(src.loc) scanned_item = null add_fingerprint(usr)