diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index d79785eb823..3cc9f01be64 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -239,6 +239,7 @@ client body += "" body += "" body += "" +// body += "" if(ishuman(D)) body += "" body += "" @@ -497,6 +498,20 @@ client togglebuildmode(MOB) href_list["datumrefresh"] = href_list["build_mode"] +/* else if (href_list["direct_control"]) + if(!href_list["direct_control"]) + return + var/mob/MOB = locate(href_list["direct_control"]) + if(!MOB) + return + if(!ismob(MOB)) + return + if(!src.holder) + return + + if(usr.client) + usr.client.cmd_assume_direct_control(MOB)*/ + else if (href_list["delall"]) if(!href_list["delall"]) return diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index ecabec80f83..934acd653db 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -188,7 +188,7 @@ if("Librarian") // -- TLE return list(access_library) if("Lawyer") //Muskets 160910 - return list(access_maint_tunnels, access_lawyer, access_court) + return list(access_lawyer, access_court) if("Captain") return get_all_accesses() if("Security Officer") @@ -219,9 +219,9 @@ if("Janitor") return list(access_janitor, access_maint_tunnels) if("Clown") - return list(access_maint_tunnels, access_clown, access_theatre) + return list(access_clown, access_theatre) if("Mime") - return list(access_maint_tunnels, access_mime, access_theatre) + return list(access_mime, access_theatre) if("Chef") return list(access_kitchen) if("Roboticist") @@ -229,7 +229,7 @@ if("Cargo Technician") return list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting) if("Shaft Miner") - return list(access_maint_tunnels, access_mining, access_mint, access_mining_station) + return list(access_mining, access_mint, access_mining_station) if("Quartermaster") return list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mint, access_mining) if("Chief Engineer") @@ -239,7 +239,7 @@ access_mint, access_ce, access_RC_announce, access_keycard_auth, access_tcomsat) if("Research Director") return list(access_medlab, access_rd, - access_maint_tunnels, access_heads, access_tox, + access_heads, access_tox, access_tox_storage, access_chemistry, access_teleporter, access_research, access_robotics, access_xenobiology, access_RC_announce, access_keycard_auth, access_tcomsat) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 82149e232d1..277d6e5ec30 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -265,6 +265,7 @@ //verbs += /client/proc/cmd_admin_emp --Merged with view variables //verbs += /client/proc/give_spell --Merged with view variables //verbs += /client/proc/cmd_admin_ninjafy --Merged with view variables + //verbs += /client/proc/cmd_switch_radio --removed as tcommsat is staying // Moved over from tg's Game Master: verbs += /obj/admins/proc/toggle_aliens //toggle aliens verbs += /obj/admins/proc/toggle_space_ninja //toggle ninjas diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 0899491ab8a..02043fd7de0 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -5,6 +5,7 @@ origin_tech = "magnets=3;biotech=2" var list/icon/current = list() //the current hud icons + proc process_hud(var/mob/M) return @@ -88,25 +89,28 @@ var/client/C = M.client var/icon/tempHud = 'hud.dmi' for(var/mob/living/carbon/human/perp in view(M)) + if(!C) continue + var/perpname = "wot" if(perp.wear_id) C.images += image(tempHud,perp,"hud[ckey(perp:wear_id:GetJobName())]") - var/perpname = "wot" if(istype(perp.wear_id,/obj/item/weapon/card/id)) perpname = perp.wear_id:registered_name else if(istype(perp.wear_id,/obj/item/device/pda)) var/obj/item/device/pda/tempPda = perp.wear_id perpname = tempPda.owner - 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"]) && (R.fields["criminal"] == "*Arrest*")) - C.images += image(tempHud,perp,"hudwanted") - break - else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Incarcerated")) - C.images += image(tempHud,perp,"hudprisoner") - break else + perpname = perp.name C.images += image(tempHud,perp,"hudunknown") + + 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"]) && (R.fields["criminal"] == "*Arrest*")) + C.images += image(tempHud,perp,"hudwanted") + break + else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Incarcerated")) + C.images += image(tempHud,perp,"hudprisoner") + break for(var/named in perp.organs) var/datum/organ/external/E = perp.organs[named] for(var/obj/item/weapon/implant/I in E.implant) @@ -116,3 +120,4 @@ if(istype(I,/obj/item/weapon/implant/loyalty)) C.images += image(tempHud,perp,"hud_imp_loyal") + diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 024bb726c99..8167317b46d 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -524,6 +524,31 @@ // usr << "\red [src.name] is bleeding from a [sizetext] on [t_his] [temp.display_name]." // continue + 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/criminal = "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.security) + if (R.fields["id"] == E.fields["id"]) + criminal = R.fields["criminal"] + + + msg += "Criminal status: \[[criminal]\]\n" + //msg += "\[Set Hostile Identification\]\n" + if(print_flavor_text()) msg += "[print_flavor_text()]\n" msg += "\blue *---------*" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 39ba8fc0b17..9f88a62a75c 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -2582,6 +2582,40 @@ It can still be worn/put on as normal. spawn( 0 ) O.process() 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)) + 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.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." ..() return