diff --git a/code/game/machinery/computer3/computers/medical.dm b/code/game/machinery/computer3/computers/medical.dm index fa75c69ac6..42fcb9e5e7 100644 --- a/code/game/machinery/computer3/computers/medical.dm +++ b/code/game/machinery/computer3/computers/medical.dm @@ -86,12 +86,13 @@ if(3.0) dat += text("Records Maintenance
\nBackup To Disk
\nUpload From disk
\nDelete All Records
\n
\nBack", src, src, src, src) if(4.0) - var/icon/front = active1.fields["photo_front"] - var/icon/side = active1.fields["photo_side"] - usr << browse_rsc(front, "front.png") - usr << browse_rsc(side, "side.png") dat += "
Medical Record

" if ((istype(src.active1, /datum/data/record) && data_core.general.Find(src.active1))) + var/icon/front = active1.fields["photo_front"] + var/icon/side = active1.fields["photo_side"] + usr << browse_rsc(front, "front.png") + usr << browse_rsc(side, "side.png") + dat += "
Name: [active1.fields["name"]] \ ID: [active1.fields["id"]]
\n \ Sex: [active1.fields["sex"]]
\n \ diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 32d2b314dc..19b5b907a8 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -126,9 +126,6 @@ if(user.last_airflow > world.time - vsc.airflow_delay) //Fakkit return src.add_fingerprint(user) - if(!src.requiresID()) - user = null - if(density) if(allowed(user)) open() else flick("door_deny", src) @@ -193,10 +190,6 @@ return if(src.operating > 0 || isrobot(user)) return //borgs can't attack doors open because it conflicts with their AI-like interaction with them. src.add_fingerprint(user) - if(!Adjacent(user)) - user = null - if(!src.requiresID()) - user = null if(istype(I, /obj/item/stack/sheet/metal)) if(stat & BROKEN) @@ -423,6 +416,11 @@ /obj/machinery/door/proc/requiresID() return 1 +/obj/machinery/door/allowed(mob/M) + if(!requiresID()) + return ..(null) //don't care who they are or what they have, act as if they're NOTHING + return ..(M) + /obj/machinery/door/update_nearby_tiles(need_rebuild) if(!air_master) return 0 diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index eefe844e47..362753cac8 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -234,9 +234,6 @@ src.add_fingerprint(user) - if (!src.requiresID()) - //don't care who they are or what they have, act as if they're NOTHING - user = null if (src.allowed(user)) if (src.density) diff --git a/code/modules/mob/living/silicon/ai/freelook/chunk.dm b/code/modules/mob/living/silicon/ai/freelook/chunk.dm index 11c8715979..90147f5b26 100644 --- a/code/modules/mob/living/silicon/ai/freelook/chunk.dm +++ b/code/modules/mob/living/silicon/ai/freelook/chunk.dm @@ -75,8 +75,9 @@ for(var/camera in cameras) var/obj/machinery/camera/c = camera - if(!c) + if(!istype(c)) cameras -= c + continue if(!c.can_use()) continue diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 3608386f9a..73d7005eb9 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -23,9 +23,9 @@ var/stamps //The (text for the) stamps on the paper. var/fields //Amount of user created fields var/list/stamped - var/ico[0] //Icons and - var/offset_x[0] //offsets stored for later - var/offset_y[0] //usage by the photocopier + var/list/ico[0] //Icons and + var/list/offset_x[0] //offsets stored for later + var/list/offset_y[0] //usage by the photocopier var/rigged = 0 var/spam_flag = 0 diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 83b27b7a2b..7f0ed21c78 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -175,7 +175,7 @@ c.offset_y = copy.offset_y var/list/temp_overlays = copy.overlays //Iterates through stamps var/image/img //and puts a matching - for (var/j = 1, j <= temp_overlays.len, j++) //gray overlay onto the copy + for (var/j = 1, j <= min(temp_overlays.len, copy.ico.len), j++) //gray overlay onto the copy if (findtext(copy.ico[j], "cap") || findtext(copy.ico[j], "cent")) img = image('icons/obj/bureaucracy.dmi', "paper_stamp-circle") else if (findtext(copy.ico[j], "deny")) diff --git a/code/modules/research/xenoarchaeology/finds/finds.dm b/code/modules/research/xenoarchaeology/finds/finds.dm index 518b2ddc40..39b01f0580 100644 --- a/code/modules/research/xenoarchaeology/finds/finds.dm +++ b/code/modules/research/xenoarchaeology/finds/finds.dm @@ -545,13 +545,9 @@ new_item.desc = src.desc if(talkative) - new_item.talking_atom = new() - talking_atom.holder_atom = new_item - talking_atom.init() + new_item.talking_atom = new(new_item) del(src) else if(talkative) - src.talking_atom = new() - talking_atom.holder_atom = src - talking_atom.init() + src.talking_atom = new(src) diff --git a/code/modules/research/xenoarchaeology/finds/finds_talkingitem.dm b/code/modules/research/xenoarchaeology/finds/finds_talkingitem.dm index 65a2e24ca0..58cfdbb031 100644 --- a/code/modules/research/xenoarchaeology/finds/finds_talkingitem.dm +++ b/code/modules/research/xenoarchaeology/finds/finds_talkingitem.dm @@ -14,6 +14,10 @@ var/talk_interval = 50 var/talk_chance = 10 +/datum/talking_atom/New(atom/holder) + holder_atom = holder + init() + /datum/talking_atom/proc/init() if(holder_atom) processing_objects.Add(src) @@ -55,7 +59,7 @@ if(prob(30)) var/list/options = list("[holder_atom] seems to be listening intently to [source]...",\ - "[holder_atom] seems to be focussing on [source]...",\ + "[holder_atom] seems to be focusing on [source]...",\ "[holder_atom] seems to turn it's attention to [source]...") holder_atom.loc.visible_message("\blue \icon[holder_atom] [pick(options)]")