diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm
index d3e7e4c178c..81f58d19d0c 100644
--- a/code/game/machinery/computer/medical.dm
+++ b/code/game/machinery/computer/medical.dm
@@ -145,12 +145,19 @@
src.active1 = null
src.active2 = null
else if (href_list["login"])
- if (istype(usr, /mob/living/silicon))
+ if (istype(usr, /mob/living/silicon/ai))
src.active1 = null
src.active2 = null
- src.authenticated = 1
+ src.authenticated = usr.name
src.rank = "AI"
src.screen = 1
+ else if (istype(usr, /mob/living/silicon/robot))
+ src.active1 = null
+ src.active2 = null
+ src.authenticated = usr.name
+ var/mob/living/silicon/robot/R = usr
+ src.rank = R.braintype
+ src.screen = 1
else if (istype(src.scan, /obj/item/weapon/card/id))
src.active1 = null
src.active2 = null
@@ -388,7 +395,7 @@
var/counter = 1
while(src.active2.fields[text("com_[]", counter)])
counter++
- src.active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [], 2053
[]", src.authenticated, src.rank, time2text(world.realtime, "DDD MMM DD hh:mm:ss"), t1)
+ src.active2.fields[text("com_[counter]")] = text("Made by [authenticated] ([rank]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], 2557
[t1]")
if (href_list["del_c"])
if ((istype(src.active2, /datum/data/record) && src.active2.fields[text("com_[]", href_list["del_c"])]))
diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm
index deb6e9e8c88..ab7c7c08180 100644
--- a/code/game/machinery/computer/security.dm
+++ b/code/game/machinery/computer/security.dm
@@ -245,12 +245,19 @@ What a mess.*/
active2 = null
if("Log In")
- if (istype(usr, /mob/living/silicon))
- active1 = null
- active2 = null
- authenticated = 1
- rank = "AI"
- screen = 1
+ if (istype(usr, /mob/living/silicon/ai))
+ src.active1 = null
+ src.active2 = null
+ src.authenticated = usr.name
+ src.rank = "AI"
+ src.screen = 1
+ else if (istype(usr, /mob/living/silicon/robot))
+ src.active1 = null
+ src.active2 = null
+ src.authenticated = usr.name
+ var/mob/living/silicon/robot/R = usr
+ src.rank = R.braintype
+ src.screen = 1
else if (istype(scan, /obj/item/weapon/card/id))
active1 = null
active2 = null
@@ -362,7 +369,7 @@ What a mess.*/
var/counter = 1
while(active2.fields[text("com_[]", counter)])
counter++
- active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [], 2053
[]", authenticated, rank, time2text(world.realtime, "DDD MMM DD hh:mm:ss"), t1)
+ active2.fields[text("com_[counter]")] = text("Made by [authenticated] ([rank]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], 2557
[t1]")
if ("Delete Record (ALL)")
if (active1)
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 4dcc3833848..20f56dd0228 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -387,60 +387,50 @@
msg += "[t_He] [t_is] repulsively uncanny!\n"
- if(istype(usr, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = usr
- if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud))
- if(usr.stat || H != usr) //|| !usr.canmove || usr.restrained()) Fluff: Sechuds have eye-tracking technology and sets 'arrest' to people that the wearer looks and blinks at.
- return //Non-fluff: This allows sec to set people to arrest as they get disarmed or beaten
+ if(hasHUD(usr,"security"))
+ var/perpname = "wot"
+ var/criminal = "None"
- var/perpname = "wot"
- var/criminal = "None"
-
- if(wear_id)
- var/obj/item/weapon/card/id/I = wear_id.GetID()
- if(I)
- perpname = I.registered_name
- else
- perpname = name
+ if(wear_id)
+ var/obj/item/weapon/card/id/I = wear_id.GetID()
+ if(I)
+ perpname = I.registered_name
else
perpname = name
+ else
+ perpname = name
- if(perpname)
- for (var/datum/data/record/E in data_core.general)
- if(E.fields["name"] == perpname)
- for (var/datum/data/record/R in data_core.security)
- if(R.fields["id"] == E.fields["id"])
- criminal = R.fields["criminal"]
-
-
- msg += "Criminal status: \[[criminal]\]\n"
- msg += "Security records: \[View\] \[Add comment\]\n"
- //msg += "\[Set Hostile Identification\]\n"
-
- if(istype(usr, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = usr
- if(istype(H.glasses, /obj/item/clothing/glasses/hud/health))
- var/perpname = "wot"
- var/medical = "None"
-
- if(wear_id)
- if(istype(wear_id,/obj/item/weapon/card/id))
- perpname = wear_id:registered_name
- else if(istype(wear_id,/obj/item/device/pda))
- var/obj/item/device/pda/tempPda = wear_id
- perpname = tempPda.owner
- else
- perpname = src.name
-
+ if(perpname)
for (var/datum/data/record/E in data_core.general)
- if (E.fields["name"] == perpname)
- for (var/datum/data/record/R in data_core.general)
- if (R.fields["id"] == E.fields["id"])
- medical = R.fields["p_stat"]
+ if(E.fields["name"] == perpname)
+ for (var/datum/data/record/R in data_core.security)
+ if(R.fields["id"] == E.fields["id"])
+ criminal = R.fields["criminal"]
+ msg += "Criminal status: \[[criminal]\]\n"
+ msg += "Security records: \[View\] \[Add comment\]\n"
- msg += "Physical status: \[[medical]\]\n"
- msg += "Medical records: \[View\] \[Add comment\]\n"
+ if(hasHUD(usr,"medical"))
+ var/perpname = "wot"
+ var/medical = "None"
+
+ if(wear_id)
+ if(istype(wear_id,/obj/item/weapon/card/id))
+ perpname = wear_id:registered_name
+ else if(istype(wear_id,/obj/item/device/pda))
+ var/obj/item/device/pda/tempPda = wear_id
+ perpname = tempPda.owner
+ else
+ perpname = src.name
+
+ for (var/datum/data/record/E in data_core.general)
+ if (E.fields["name"] == perpname)
+ for (var/datum/data/record/R in data_core.general)
+ if (R.fields["id"] == E.fields["id"])
+ medical = R.fields["p_stat"]
+
+ msg += "Physical status: \[[medical]\]\n"
+ msg += "Medical records: \[View\] \[Add comment\]\n"
if(print_flavor_text()) msg += "[print_flavor_text()]\n"
@@ -452,3 +442,26 @@
msg += "\n[t_He] is [pose]"
usr << msg
+
+//Helper procedure. Called by /mob/living/carbon/human/examine() and /mob/living/carbon/human/Topic() to determine HUD access to security and medical records.
+/proc/hasHUD(mob/M as mob, hudtype)
+ if(istype(M, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = M
+ switch(hudtype)
+ if("security")
+ return istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud)
+ if("medical")
+ return istype(H.glasses, /obj/item/clothing/glasses/hud/health)
+ else
+ return 0
+ else if(istype(M, /mob/living/silicon/robot))
+ var/mob/living/silicon/robot/R = M
+ switch(hudtype)
+ if("security")
+ return istype(R.module_state_1, /obj/item/borg/sight/hud/sec) || istype(R.module_state_2, /obj/item/borg/sight/hud/sec) || istype(R.module_state_3, /obj/item/borg/sight/hud/sec)
+ if("medical")
+ return istype(R.module_state_1, /obj/item/borg/sight/hud/med) || istype(R.module_state_2, /obj/item/borg/sight/hud/med) || istype(R.module_state_3, /obj/item/borg/sight/hud/med)
+ else
+ return 0
+ else
+ return 0
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index ae6c854872a..bf9f230fe51 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -499,267 +499,258 @@
return
if (href_list["criminal"])
- if(istype(usr, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = usr
- if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud))
+ if(hasHUD(usr,"security"))
- /* // Uncomment if you want sechuds to need security access
- var/allowed_access = 0
- if(H.wear_id)
- var/list/access = H.wear_id.GetAccess()
- if(access_security in access)
- allowed_access = 1
- return
-
- if(!allowed_access)
- H << "ERROR: Invalid Access"
- return
- */
-
- var/modified = 0
- var/perpname = "wot"
- if(wear_id)
- var/obj/item/weapon/card/id/I = wear_id.GetID()
- if(I)
- perpname = I.registered_name
- else
- perpname = name
+ var/modified = 0
+ var/perpname = "wot"
+ if(wear_id)
+ var/obj/item/weapon/card/id/I = wear_id.GetID()
+ if(I)
+ perpname = I.registered_name
else
perpname = name
+ else
+ perpname = name
- if(perpname)
- for (var/datum/data/record/E in data_core.general)
- if (E.fields["name"] == perpname)
- for (var/datum/data/record/R in data_core.security)
- if (R.fields["id"] == E.fields["id"])
-
- var/setcriminal = input(usr, "Specify a new criminal status for this person.", "Security HUD", R.fields["criminal"]) in list("None", "*Arrest*", "Incarcerated", "Parolled", "Released", "Cancel")
-
- if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud))
- if(setcriminal != "Cancel")
- R.fields["criminal"] = setcriminal
- modified = 1
-
- spawn()
- H.handle_regular_hud_updates()
-
- if(!modified)
- usr << "\red Unable to locate a data core entry for this person."
-
- if (href_list["secrecord"])
- if(istype(usr, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = usr
- if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud))
- var/perpname = "wot"
- var/read = 0
-
- if(wear_id)
- if(istype(wear_id,/obj/item/weapon/card/id))
- perpname = wear_id:registered_name
- else if(istype(wear_id,/obj/item/device/pda))
- var/obj/item/device/pda/tempPda = wear_id
- perpname = tempPda.owner
- else
- perpname = src.name
+ if(perpname)
for (var/datum/data/record/E in data_core.general)
if (E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.security)
if (R.fields["id"] == E.fields["id"])
- if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud))
- usr << "Name: [R.fields["name"]] Criminal Status: [R.fields["criminal"]]"
- usr << "Minor Crimes: [R.fields["mi_crim"]]"
- usr << "Details: [R.fields["mi_crim_d"]]"
- usr << "Major Crimes: [R.fields["ma_crim"]]"
- usr << "Details: [R.fields["ma_crim_d"]]"
- usr << "Notes: [R.fields["notes"]]"
- usr << "\[View Comment Log\]"
- read = 1
- if(!read)
- usr << "\red Unable to locate a data core entry for this person."
+ var/setcriminal = input(usr, "Specify a new criminal status for this person.", "Security HUD", R.fields["criminal"]) in list("None", "*Arrest*", "Incarcerated", "Parolled", "Released", "Cancel")
- if (href_list["secrecordComment"])
- if(istype(usr, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = usr
- if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud))
- var/perpname = "wot"
- var/read = 0
-
- if(wear_id)
- if(istype(wear_id,/obj/item/weapon/card/id))
- perpname = wear_id:registered_name
- else if(istype(wear_id,/obj/item/device/pda))
- var/obj/item/device/pda/tempPda = wear_id
- perpname = tempPda.owner
- else
- perpname = src.name
- for (var/datum/data/record/E in data_core.general)
- if (E.fields["name"] == perpname)
- for (var/datum/data/record/R in data_core.security)
- if (R.fields["id"] == E.fields["id"])
- if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud))
- read = 1
- var/counter = 1
- while(R.fields[text("com_[]", counter)])
- usr << text("[]", R.fields[text("com_[]", counter)])
- counter++
- if (counter == 1)
- usr << "No comment found"
- usr << "\[Add comment\]"
-
- if(!read)
- usr << "\red Unable to locate a data core entry for this person."
-
- if (href_list["secrecordadd"])
- if(istype(usr, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = usr
- if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud))
- var/perpname = "wot"
- if(wear_id)
- if(istype(wear_id,/obj/item/weapon/card/id))
- perpname = wear_id:registered_name
- else if(istype(wear_id,/obj/item/device/pda))
- var/obj/item/device/pda/tempPda = wear_id
- perpname = tempPda.owner
- else
- perpname = src.name
- for (var/datum/data/record/E in data_core.general)
- if (E.fields["name"] == perpname)
- for (var/datum/data/record/R in data_core.security)
- if (R.fields["id"] == E.fields["id"])
- if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud))
- var/t1 = copytext(sanitize(input("Add Comment:", "Sec. records", null, null) as message),1,MAX_MESSAGE_LEN)
- if ((!( t1 ) || src.stat || src.restrained() || !(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud))))
- return
- var/counter = 1
- while(R.fields[text("com_[]", counter)])
- counter++
- R.fields[text("com_[]", counter)] = text("Made by [] ([]) on [], 2053
[]",H.get_authentification_name(), H.get_assignment(), time2text(world.realtime, "DDD MMM DD hh:mm:ss"), t1)
-
- if (href_list["medical"])
- if(istype(usr, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = usr
- if(istype(H.glasses, /obj/item/clothing/glasses/hud/health))
- var/perpname = "wot"
- var/modified = 0
-
- if(wear_id)
- if(istype(wear_id,/obj/item/weapon/card/id))
- perpname = wear_id:registered_name
- else if(istype(wear_id,/obj/item/device/pda))
- var/obj/item/device/pda/tempPda = wear_id
- perpname = tempPda.owner
- else
- perpname = src.name
-
- for (var/datum/data/record/E in data_core.general)
- if (E.fields["name"] == perpname)
- for (var/datum/data/record/R in data_core.general)
- if (R.fields["id"] == E.fields["id"])
-
- var/setmedical = input(usr, "Specify a new medical status for this person.", "Medical HUD", R.fields["p_stat"]) in list("*Deceased*", "*Unconscious*", "Physically Unfit", "Active", "Cancel")
-
- if(istype(H.glasses, /obj/item/clothing/glasses/hud/health))
- if(setmedical != "Cancel")
- R.fields["p_stat"] = setmedical
+ if(hasHUD(usr, "security"))
+ if(setcriminal != "Cancel")
+ R.fields["criminal"] = setcriminal
modified = 1
spawn()
- H.handle_regular_hud_updates()
+ if(istype(usr,/mob/living/carbon/human))
+ var/mob/living/carbon/human/U = usr
+ U.handle_regular_hud_updates()
+ if(istype(usr,/mob/living/silicon/robot))
+ var/mob/living/silicon/robot/U = usr
+ U.handle_regular_hud_updates()
- if(!modified)
- usr << "\red Unable to locate a data core entry for this person."
+ if(!modified)
+ usr << "\red Unable to locate a data core entry for this person."
+
+ if (href_list["secrecord"])
+ if(hasHUD(usr,"security"))
+ var/perpname = "wot"
+ var/read = 0
+
+ if(wear_id)
+ if(istype(wear_id,/obj/item/weapon/card/id))
+ perpname = wear_id:registered_name
+ else if(istype(wear_id,/obj/item/device/pda))
+ var/obj/item/device/pda/tempPda = wear_id
+ perpname = tempPda.owner
+ else
+ perpname = src.name
+ for (var/datum/data/record/E in data_core.general)
+ if (E.fields["name"] == perpname)
+ for (var/datum/data/record/R in data_core.security)
+ if (R.fields["id"] == E.fields["id"])
+ if(hasHUD(usr,"security"))
+ usr << "Name: [R.fields["name"]] Criminal Status: [R.fields["criminal"]]"
+ usr << "Minor Crimes: [R.fields["mi_crim"]]"
+ usr << "Details: [R.fields["mi_crim_d"]]"
+ usr << "Major Crimes: [R.fields["ma_crim"]]"
+ usr << "Details: [R.fields["ma_crim_d"]]"
+ usr << "Notes: [R.fields["notes"]]"
+ usr << "\[View Comment Log\]"
+ read = 1
+
+ if(!read)
+ usr << "\red Unable to locate a data core entry for this person."
+
+ if (href_list["secrecordComment"])
+ if(hasHUD(usr,"security"))
+ var/perpname = "wot"
+ var/read = 0
+
+ if(wear_id)
+ if(istype(wear_id,/obj/item/weapon/card/id))
+ perpname = wear_id:registered_name
+ else if(istype(wear_id,/obj/item/device/pda))
+ var/obj/item/device/pda/tempPda = wear_id
+ perpname = tempPda.owner
+ else
+ perpname = src.name
+ for (var/datum/data/record/E in data_core.general)
+ if (E.fields["name"] == perpname)
+ for (var/datum/data/record/R in data_core.security)
+ if (R.fields["id"] == E.fields["id"])
+ if(hasHUD(usr,"security"))
+ read = 1
+ var/counter = 1
+ while(R.fields[text("com_[]", counter)])
+ usr << text("[]", R.fields[text("com_[]", counter)])
+ counter++
+ if (counter == 1)
+ usr << "No comment found"
+ usr << "\[Add comment\]"
+
+ if(!read)
+ usr << "\red Unable to locate a data core entry for this person."
+
+ if (href_list["secrecordadd"])
+ if(hasHUD(usr,"security"))
+ var/perpname = "wot"
+ if(wear_id)
+ if(istype(wear_id,/obj/item/weapon/card/id))
+ perpname = wear_id:registered_name
+ else if(istype(wear_id,/obj/item/device/pda))
+ var/obj/item/device/pda/tempPda = wear_id
+ perpname = tempPda.owner
+ else
+ perpname = src.name
+ for (var/datum/data/record/E in data_core.general)
+ if (E.fields["name"] == perpname)
+ for (var/datum/data/record/R in data_core.security)
+ if (R.fields["id"] == E.fields["id"])
+ if(hasHUD(usr,"security"))
+ var/t1 = copytext(sanitize(input("Add Comment:", "Sec. records", null, null) as message),1,MAX_MESSAGE_LEN)
+ if ( !(t1) || usr.stat || usr.restrained() || !(hasHUD(usr,"security")) )
+ return
+ var/counter = 1
+ while(R.fields[text("com_[]", counter)])
+ counter++
+ if(istype(usr,/mob/living/carbon/human))
+ var/mob/living/carbon/human/U = usr
+ R.fields[text("com_[counter]")] = text("Made by [U.get_authentification_name()] ([U.get_assignment()]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], 2557
[t1]")
+ if(istype(usr,/mob/living/silicon/robot))
+ var/mob/living/silicon/robot/U = usr
+ R.fields[text("com_[counter]")] = text("Made by [U.name] ([U.braintype]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], 2557
[t1]")
+
+ if (href_list["medical"])
+ if(hasHUD(usr,"medical"))
+ var/perpname = "wot"
+ var/modified = 0
+
+ if(wear_id)
+ if(istype(wear_id,/obj/item/weapon/card/id))
+ perpname = wear_id:registered_name
+ else if(istype(wear_id,/obj/item/device/pda))
+ var/obj/item/device/pda/tempPda = wear_id
+ perpname = tempPda.owner
+ else
+ perpname = src.name
+
+ for (var/datum/data/record/E in data_core.general)
+ if (E.fields["name"] == perpname)
+ for (var/datum/data/record/R in data_core.general)
+ if (R.fields["id"] == E.fields["id"])
+
+ var/setmedical = input(usr, "Specify a new medical status for this person.", "Medical HUD", R.fields["p_stat"]) in list("*Deceased*", "*Unconscious*", "Physically Unfit", "Active", "Cancel")
+
+ if(hasHUD(usr,"medical"))
+ if(setmedical != "Cancel")
+ R.fields["p_stat"] = setmedical
+ modified = 1
+
+ spawn()
+ if(istype(usr,/mob/living/carbon/human))
+ var/mob/living/carbon/human/U = usr
+ U.handle_regular_hud_updates()
+ if(istype(usr,/mob/living/silicon/robot))
+ var/mob/living/silicon/robot/U = usr
+ U.handle_regular_hud_updates()
+
+ if(!modified)
+ usr << "\red Unable to locate a data core entry for this person."
if (href_list["medrecord"])
- if(istype(usr, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = usr
- if(istype(H.glasses, /obj/item/clothing/glasses/hud/health))
- var/perpname = "wot"
- var/read = 0
+ if(hasHUD(usr,"medical"))
+ var/perpname = "wot"
+ var/read = 0
- if(wear_id)
- if(istype(wear_id,/obj/item/weapon/card/id))
- perpname = wear_id:registered_name
- else if(istype(wear_id,/obj/item/device/pda))
- var/obj/item/device/pda/tempPda = wear_id
- perpname = tempPda.owner
- else
- perpname = src.name
- for (var/datum/data/record/E in data_core.general)
- if (E.fields["name"] == perpname)
- for (var/datum/data/record/R in data_core.medical)
- if (R.fields["id"] == E.fields["id"])
- if(istype(H.glasses, /obj/item/clothing/glasses/hud/health))
- usr << "Name: [R.fields["name"]] Blood Type: [R.fields["b_type"]]"
- usr << "DNA: [R.fields["b_dna"]]"
- usr << "Minor Disabilities: [R.fields["mi_dis"]]"
- usr << "Details: [R.fields["mi_dis_d"]]"
- usr << "Major Disabilities: [R.fields["ma_dis"]]"
- usr << "Details: [R.fields["ma_dis_d"]]"
- usr << "Notes: [R.fields["notes"]]"
- usr << "\[View Comment Log\]"
- read = 1
+ if(wear_id)
+ if(istype(wear_id,/obj/item/weapon/card/id))
+ perpname = wear_id:registered_name
+ else if(istype(wear_id,/obj/item/device/pda))
+ var/obj/item/device/pda/tempPda = wear_id
+ perpname = tempPda.owner
+ else
+ perpname = src.name
+ for (var/datum/data/record/E in data_core.general)
+ if (E.fields["name"] == perpname)
+ for (var/datum/data/record/R in data_core.medical)
+ if (R.fields["id"] == E.fields["id"])
+ if(hasHUD(usr,"medical"))
+ usr << "Name: [R.fields["name"]] Blood Type: [R.fields["b_type"]]"
+ usr << "DNA: [R.fields["b_dna"]]"
+ usr << "Minor Disabilities: [R.fields["mi_dis"]]"
+ usr << "Details: [R.fields["mi_dis_d"]]"
+ usr << "Major Disabilities: [R.fields["ma_dis"]]"
+ usr << "Details: [R.fields["ma_dis_d"]]"
+ usr << "Notes: [R.fields["notes"]]"
+ usr << "\[View Comment Log\]"
+ read = 1
- if(!read)
- usr << "\red Unable to locate a data core entry for this person."
+ if(!read)
+ usr << "\red Unable to locate a data core entry for this person."
if (href_list["medrecordComment"])
- if(istype(usr, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = usr
- if(istype(H.glasses, /obj/item/clothing/glasses/hud/health))
- var/perpname = "wot"
- var/read = 0
+ if(hasHUD(usr,"medical"))
+ var/perpname = "wot"
+ var/read = 0
- if(wear_id)
- if(istype(wear_id,/obj/item/weapon/card/id))
- perpname = wear_id:registered_name
- else if(istype(wear_id,/obj/item/device/pda))
- var/obj/item/device/pda/tempPda = wear_id
- perpname = tempPda.owner
- else
- perpname = src.name
- for (var/datum/data/record/E in data_core.general)
- if (E.fields["name"] == perpname)
- for (var/datum/data/record/R in data_core.medical)
- if (R.fields["id"] == E.fields["id"])
- if(istype(H.glasses, /obj/item/clothing/glasses/hud/health))
- read = 1
- var/counter = 1
- while(R.fields[text("com_[]", counter)])
- usr << text("[]", R.fields[text("com_[]", counter)])
- counter++
- if (counter == 1)
- usr << "No comment found"
- usr << "\[Add comment\]"
+ if(wear_id)
+ if(istype(wear_id,/obj/item/weapon/card/id))
+ perpname = wear_id:registered_name
+ else if(istype(wear_id,/obj/item/device/pda))
+ var/obj/item/device/pda/tempPda = wear_id
+ perpname = tempPda.owner
+ else
+ perpname = src.name
+ for (var/datum/data/record/E in data_core.general)
+ if (E.fields["name"] == perpname)
+ for (var/datum/data/record/R in data_core.medical)
+ if (R.fields["id"] == E.fields["id"])
+ if(hasHUD(usr,"medical"))
+ read = 1
+ var/counter = 1
+ while(R.fields[text("com_[]", counter)])
+ usr << text("[]", R.fields[text("com_[]", counter)])
+ counter++
+ if (counter == 1)
+ usr << "No comment found"
+ usr << "\[Add comment\]"
- if(!read)
- usr << "\red Unable to locate a data core entry for this person."
+ if(!read)
+ usr << "\red Unable to locate a data core entry for this person."
if (href_list["medrecordadd"])
- if(istype(usr, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = usr
- if(istype(H.glasses, /obj/item/clothing/glasses/hud/health))
- var/perpname = "wot"
- if(wear_id)
- if(istype(wear_id,/obj/item/weapon/card/id))
- perpname = wear_id:registered_name
- else if(istype(wear_id,/obj/item/device/pda))
- var/obj/item/device/pda/tempPda = wear_id
- perpname = tempPda.owner
- else
- perpname = src.name
- for (var/datum/data/record/E in data_core.general)
- if (E.fields["name"] == perpname)
- for (var/datum/data/record/R in data_core.medical)
- if (R.fields["id"] == E.fields["id"])
- if(istype(H.glasses, /obj/item/clothing/glasses/hud/health))
- var/t1 = copytext(sanitize(input("Add Comment:", "Med. records", null, null) as message),1,MAX_MESSAGE_LEN)
- if ((!( t1 ) || src.stat || src.restrained() || !(istype(H.glasses, /obj/item/clothing/glasses/hud/health))))
- return
- var/counter = 1
- while(R.fields[text("com_[]", counter)])
- counter++
- R.fields[text("com_[]", counter)] = text("Made by [] ([]) on [], 2053
[]",H.get_authentification_name(), H.get_assignment(), time2text(world.realtime, "DDD MMM DD hh:mm:ss"), t1)
+ if(hasHUD(usr,"medical"))
+ var/perpname = "wot"
+ if(wear_id)
+ if(istype(wear_id,/obj/item/weapon/card/id))
+ perpname = wear_id:registered_name
+ else if(istype(wear_id,/obj/item/device/pda))
+ var/obj/item/device/pda/tempPda = wear_id
+ perpname = tempPda.owner
+ else
+ perpname = src.name
+ for (var/datum/data/record/E in data_core.general)
+ if (E.fields["name"] == perpname)
+ for (var/datum/data/record/R in data_core.medical)
+ if (R.fields["id"] == E.fields["id"])
+ if(hasHUD(usr,"medical"))
+ var/t1 = copytext(sanitize(input("Add Comment:", "Med. records", null, null) as message),1,MAX_MESSAGE_LEN)
+ if ( !(t1) || src.stat || src.restrained() || !(hasHUD(usr,"medical")) )
+ return
+ var/counter = 1
+ while(R.fields[text("com_[]", counter)])
+ counter++
+ if(istype(usr,/mob/living/carbon/human))
+ var/mob/living/carbon/human/U = usr
+ R.fields[text("com_[counter]")] = text("Made by [U.get_authentification_name()] ([U.get_assignment()]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], 2557
[t1]")
+ if(istype(usr,/mob/living/silicon/robot))
+ var/mob/living/silicon/robot/U = usr
+ R.fields[text("com_[counter]")] = text("Made by [U.name] ([U.braintype]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], 2557
[t1]")
..()
return
@@ -1226,4 +1217,4 @@ mob/living/carbon/human/yank_out_object()
organ.status |= ORGAN_BLEEDING
organ.take_damage(rand(1,3), 0, 0)
- src.adjustToxLoss(rand(1,3))
+ src.adjustToxLoss(rand(1,3))
diff --git a/html/changelog.html b/html/changelog.html
index f79db2c571d..83de3037b73 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -57,6 +57,13 @@ Stuff which is in development and not yet visible to players or just code relate
(ie. code improvements for expandability, etc.) should not be listed here. They
should be listed in the changelog upon commit though. Thanks. -->
+