Merge pull request #7257 from Lo6a4evskiy/Sec_record_photo

Adds photos and some other stuff to security and medical records
This commit is contained in:
Swag McYolosteinen
2015-02-05 18:45:53 +01:00
13 changed files with 727 additions and 304 deletions
+188 -21
View File
@@ -1,6 +1,5 @@
/obj/effect/datacore
name = "datacore"
/datum/datacore
var/medical[] = list()
var/medicalPrintCount = 0
var/general[] = list()
@@ -25,7 +24,7 @@
var/time = ""
var/dataId = 0
/obj/effect/datacore/proc/createCrimeEntry(cname = "", cdetails = "", author = "", time = "")
/datum/datacore/proc/createCrimeEntry(cname = "", cdetails = "", author = "", time = "")
var/datum/data/crime/c = new /datum/data/crime
c.crimeName = cname
c.crimeDetails = cdetails
@@ -34,14 +33,14 @@
c.dataId = ++securityCrimeCounter
return c
/obj/effect/datacore/proc/addMinorCrime(id = "", var/datum/data/crime/crime)
/datum/datacore/proc/addMinorCrime(id = "", var/datum/data/crime/crime)
for(var/datum/data/record/R in security)
if(R.fields["id"] == id)
var/list/crimes = R.fields["mi_crim"]
crimes |= crime
return
/obj/effect/datacore/proc/removeMinorCrime(id, cDataId)
/datum/datacore/proc/removeMinorCrime(id, cDataId)
for(var/datum/data/record/R in security)
if(R.fields["id"] == id)
var/list/crimes = R.fields["mi_crim"]
@@ -50,7 +49,7 @@
crimes -= crime
return
/obj/effect/datacore/proc/removeMajorCrime(id, cDataId)
/datum/datacore/proc/removeMajorCrime(id, cDataId)
for(var/datum/data/record/R in security)
if(R.fields["id"] == id)
var/list/crimes = R.fields["ma_crim"]
@@ -59,14 +58,14 @@
crimes -= crime
return
/obj/effect/datacore/proc/addMajorCrime(id = "", var/datum/data/crime/crime)
/datum/datacore/proc/addMajorCrime(id = "", var/datum/data/crime/crime)
for(var/datum/data/record/R in security)
if(R.fields["id"] == id)
var/list/crimes = R.fields["ma_crim"]
crimes |= crime
return
/obj/effect/datacore/proc/manifest(var/nosleep = 0)
/datum/datacore/proc/manifest(var/nosleep = 0)
spawn()
if(!nosleep)
sleep(40)
@@ -74,12 +73,12 @@
manifest_inject(H)
return
/obj/effect/datacore/proc/manifest_modify(var/name, var/assignment)
/datum/datacore/proc/manifest_modify(var/name, var/assignment)
var/datum/data/record/foundrecord = find_record("name", name, data_core.general)
if(foundrecord)
foundrecord.fields["rank"] = assignment
/obj/effect/datacore/proc/get_manifest(monochrome, OOC)
/datum/datacore/proc/get_manifest(monochrome, OOC)
var/list/heads = list()
var/list/sec = list()
var/list/eng = list()
@@ -135,49 +134,49 @@
misc[name] = rank
if(heads.len > 0)
dat += "<tr><th colspan=3>Heads</th></tr>"
for(name in heads)
for(var/name in heads)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[heads[name]]</td></tr>"
even = !even
if(sec.len > 0)
dat += "<tr><th colspan=3>Security</th></tr>"
for(name in sec)
for(var/name in sec)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[sec[name]]</td></tr>"
even = !even
if(eng.len > 0)
dat += "<tr><th colspan=3>Engineering</th></tr>"
for(name in eng)
for(var/name in eng)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[eng[name]]</td></tr>"
even = !even
if(med.len > 0)
dat += "<tr><th colspan=3>Medical</th></tr>"
for(name in med)
for(var/name in med)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[med[name]]</td></tr>"
even = !even
if(sci.len > 0)
dat += "<tr><th colspan=3>Science</th></tr>"
for(name in sci)
for(var/name in sci)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[sci[name]]</td></tr>"
even = !even
if(sup.len > 0)
dat += "<tr><th colspan=3>Supply</th></tr>"
for(name in sup)
for(var/name in sup)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[sup[name]]</td></tr>"
even = !even
if(civ.len > 0)
dat += "<tr><th colspan=3>Civilian</th></tr>"
for(name in civ)
for(var/name in civ)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[civ[name]]</td></tr>"
even = !even
// in case somebody is insane and added them to the manifest, why not
if(bot.len > 0)
dat += "<tr><th colspan=3>Silicon</th></tr>"
for(name in bot)
for(var/name in bot)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[bot[name]]</td></tr>"
even = !even
// misc guys
if(misc.len > 0)
dat += "<tr><th colspan=3>Miscellaneous</th></tr>"
for(name in misc)
for(var/name in misc)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[misc[name]]</td></tr>"
even = !even
@@ -188,7 +187,7 @@
var/record_id_num = 1001
/obj/effect/datacore/proc/manifest_inject(var/mob/living/carbon/human/H)
/datum/datacore/proc/manifest_inject(var/mob/living/carbon/human/H)
if(H.mind && (H.mind.assigned_role != "MODE"))
var/assignment
if(H.mind.assigned_role)
@@ -199,6 +198,11 @@ var/record_id_num = 1001
assignment = "Unassigned"
var/id = num2hex(record_id_num++,6)
var/image = get_id_photo(H)
var/obj/item/weapon/photo/photo_front = new()
var/obj/item/weapon/photo/photo_side = new()
photo_front.photocreate(null, icon(image, dir = SOUTH))
photo_side.photocreate(null, icon(image, dir = WEST))
//These records should ~really~ be merged or something
//General Record
@@ -207,10 +211,14 @@ var/record_id_num = 1001
G.fields["name"] = H.real_name
G.fields["rank"] = assignment
G.fields["age"] = H.age
if(config.mutant_races)
G.fields["species"] = H.dna.species.name
G.fields["fingerprint"] = md5(H.dna.uni_identity)
G.fields["p_stat"] = "Active"
G.fields["m_stat"] = "Stable"
G.fields["sex"] = H.gender
G.fields["photo_front"] = photo_front
G.fields["photo_side"] = photo_side
general += G
//Medical Record
@@ -251,7 +259,166 @@ var/record_id_num = 1001
L.fields["b_dna"] = H.dna.unique_enzymes
L.fields["enzymes"] = H.dna.struc_enzymes
L.fields["identity"] = H.dna.uni_identity
L.fields["image"] = getFlatIcon(H) //This is god-awful
L.fields["image"] = image
locked += L
return
/datum/datacore/proc/get_id_photo(var/mob/living/carbon/human/H)
var/icon/photo = null
var/g = (H.gender == FEMALE) ? "f" : "m"
if(!config.mutant_races || H.dna.species.use_skintones)
photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.skin_tone]_[g]_s")
else
photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.dna.species.id]_[g]_s")
photo.Blend("#[H.dna.mutant_color]", ICON_MULTIPLY)
var/icon/eyes_s
if(EYECOLOR in H.dna.species.specflags)
eyes_s = icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = "[H.dna.species.eyes]_s")
eyes_s.Blend("#[H.eye_color]", ICON_MULTIPLY)
var/datum/sprite_accessory/S
S = hair_styles_list[H.hair_style]
if(S && (HAIR in H.dna.species.specflags))
var/icon/hair_s = icon("icon" = S.icon, "icon_state" = "[S.icon_state]_s")
hair_s.Blend("#[H.hair_color]", ICON_MULTIPLY)
eyes_s.Blend(hair_s, ICON_OVERLAY)
S = facial_hair_styles_list[H.facial_hair_style]
if(S && (FACEHAIR in H.dna.species.specflags))
var/icon/facial_s = icon("icon" = S.icon, "icon_state" = "[S.icon_state]_s")
facial_s.Blend("#[H.facial_hair_color]", ICON_MULTIPLY)
eyes_s.Blend(facial_s, ICON_OVERLAY)
if(eyes_s)
photo.Blend(eyes_s, ICON_OVERLAY)
var/icon/clothes_s = null
switch(H.mind.assigned_role)
if("Assistant")
clothes_s = icon('icons/mob/uniform.dmi', "grey_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Scientist")
clothes_s = icon('icons/mob/uniform.dmi', "toxinswhite_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/suit.dmi', "labcoat_tox"), ICON_OVERLAY)
if("Station Engineer")
clothes_s = icon('icons/mob/uniform.dmi', "engine_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
if("Security Officer")
clothes_s = icon('icons/mob/uniform.dmi', "security_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/suit.dmi', "armor"), ICON_OVERLAY)
if("Medical Doctor")
clothes_s = icon('icons/mob/uniform.dmi', "medical_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/suit.dmi', "labcoat"), ICON_OVERLAY)
if("Cargo Technician")
clothes_s = icon('icons/mob/uniform.dmi', "cargo_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Shaft Miner")
clothes_s = icon('icons/mob/uniform.dmi', "miner_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Atmospheric Technician")
clothes_s = icon('icons/mob/uniform.dmi', "atmos_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
if("Botanist")
clothes_s = icon('icons/mob/uniform.dmi', "hydroponics_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/hands.dmi', "ggloves"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/suit.dmi', "apron"), ICON_OVERLAY)
if("Chemist")
clothes_s = icon('icons/mob/uniform.dmi', "chemistrywhite_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/suit.dmi', "labcoat_chem"), ICON_OVERLAY)
if("Cook")
clothes_s = icon('icons/mob/uniform.dmi', "chef_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/suit.dmi', "chef"), ICON_OVERLAY)
if("Janitor")
clothes_s = icon('icons/mob/uniform.dmi', "janitor_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Geneticist")
clothes_s = icon('icons/mob/uniform.dmi', "geneticswhite_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/suit.dmi', "labcoat_gen"), ICON_OVERLAY)
if("Virologist")
clothes_s = icon('icons/mob/uniform.dmi', "virologywhite_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/suit.dmi', "labcoat_vir"), ICON_OVERLAY)
if("Roboticist")
clothes_s = icon('icons/mob/uniform.dmi', "robotics_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/suit.dmi', "labcoat"), ICON_OVERLAY)
if("Lawyer")
clothes_s = icon('icons/mob/uniform.dmi', "bluesuit_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/suit.dmi', "suitjacket_blue"), ICON_OVERLAY)
if("Clown")
clothes_s = icon('icons/mob/uniform.dmi', "clown_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "clown"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/mask.dmi', "clown"), ICON_OVERLAY)
if("Mime")
clothes_s = icon('icons/mob/uniform.dmi', "mime_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/hands.dmi', "lgloves"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/mask.dmi', "mime"), ICON_OVERLAY)
clothes_s.Blend(icon('icons/mob/suit.dmi', "suspenders"), ICON_OVERLAY)
if("Bartender")
clothes_s = icon('icons/mob/uniform.dmi', "ba_suit_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/suit.dmi', "armoralt"), ICON_OVERLAY)
if("Quartermaster")
clothes_s = icon('icons/mob/uniform.dmi', "qm_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
if("Chaplain")
clothes_s = icon('icons/mob/uniform.dmi', "chapblack_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Research Director")
clothes_s = icon('icons/mob/uniform.dmi', "director_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/suit.dmi', "labcoat"), ICON_OVERLAY)
if("Chief Medical Officer")
clothes_s = icon('icons/mob/uniform.dmi', "cmo_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/suit.dmi', "labcoat_cmo"), ICON_OVERLAY)
if("Captain")
clothes_s = icon('icons/mob/uniform.dmi', "captain_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/suit.dmi', "capcarapace"), ICON_OVERLAY)
if("Head of Security")
clothes_s = icon('icons/mob/uniform.dmi', "hos_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/suit.dmi', "hostrench"), ICON_OVERLAY)
if("Warden")
clothes_s = icon('icons/mob/uniform.dmi', "warden_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/suit.dmi', "warden_jacket"), ICON_OVERLAY)
if("Detective")
clothes_s = icon('icons/mob/uniform.dmi', "detective_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/mask.dmi', "cigaron"), ICON_OVERLAY)
clothes_s.Blend(icon('icons/mob/head.dmi', "detective"), ICON_OVERLAY)
clothes_s.Blend(icon('icons/mob/suit.dmi', "detective"), ICON_OVERLAY)
if("Chief Engineer")
clothes_s = icon('icons/mob/uniform.dmi', "chief_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
clothes_s.Blend(icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
if("Head of Personnel")
clothes_s = icon('icons/mob/uniform.dmi', "hop_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
if("Librarian")
clothes_s = icon('icons/mob/uniform.dmi', "red_suit_s")
clothes_s.Blend(icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if(clothes_s)
photo.Blend(clothes_s, ICON_OVERLAY)
return photo