diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 51f34cf712..867c6a9594 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -142,18 +142,14 @@ var/static/list/show_directions = list(SOUTH, WEST) if(H.mind && (H.mind.assigned_role != H.mind.special_role) && (H.mind.assigned_role != "Stowaway")) var/assignment - var/displayed_rank if(H.mind.assigned_role) assignment = H.mind.assigned_role else if(H.job) assignment = H.job else assignment = "Unassigned" - if(C && C.prefs && C.prefs.alt_titles_preferences[assignment]) - assignment = C.prefs.alt_titles_preferences[assignment] - - if(assignment) - displayed_rank = C.prefs.alt_titles_preferences[assignment] + if(C && C.prefs && C.prefs.alt_titles_preferences[assignment]) + assignment = C.prefs.alt_titles_preferences[assignment] var/static/record_id_num = 1001 var/id = num2hex(record_id_num++,6) @@ -176,10 +172,8 @@ var/datum/data/record/G = new() G.fields["id"] = id G.fields["name"] = H.real_name - if(!displayed_rank) - G.fields["rank"] = assignment - else - G.fields["rank"] = "[displayed_rank], [assignment]" + G.fields["rank"] = assignment + G.fields["real_rank"] = GetJobName(assignment) G.fields["age"] = H.age G.fields["species"] = H.dna.species.name G.fields["fingerprint"] = md5(H.dna.uni_identity) @@ -226,7 +220,8 @@ var/datum/data/record/L = new() L.fields["id"] = md5("[H.real_name][H.mind.assigned_role]") //surely this should just be id, like the others? L.fields["name"] = H.real_name - L.fields["rank"] = displayed_rank + L.fields["rank"] = assignment + L.fields["real_rank"] = GetJobName(assignment) L.fields["age"] = H.age if(H.gender == MALE) G.fields["gender"] = "Male" diff --git a/code/datums/world_topic.dm b/code/datums/world_topic.dm index e7d8afd1f1..45046e3070 100644 --- a/code/datums/world_topic.dm +++ b/code/datums/world_topic.dm @@ -26,7 +26,7 @@ var/require_comms_key = FALSE /datum/world_topic/proc/TryRun(list/input, addr) - key_valid = config && (CONFIG_GET(string/comms_key) == input["key"]) + key_valid = (CONFIG_GET(string/comms_key) == input["key"]) && CONFIG_GET(string/comms_key) && input["key"] if(require_comms_key && !key_valid) return "Bad Key" input -= "key" diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 6322bbf7e9..4e462a7ebf 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -175,7 +175,12 @@ Gender: [active1.fields["gender"]]  Age: [active1.fields["age"]] "} dat += "Species: [active1.fields["species"]] " - dat += {"Rank: [active1.fields["rank"]]  + var/record_rank = GetJobName(active1.fields["rank"]) + var/datum/job/job_datum = SSjob.name_occupations[record_rank] + var/how_many_alts = job_datum ? length(job_datum.alt_titles) : null + dat += {"Rank: [active1.fields["rank"]]  +
+ Change title ([how_many_alts + 1] options) Fingerprint: [active1.fields["fingerprint"]]  Physical Status: [active1.fields["p_stat"]]  Mental Status: [active1.fields["m_stat"]]  @@ -692,23 +697,44 @@ What a mess.*/ temp += "
  • Discharged
  • " temp += "" if("rank") - if(istype(active1, /datum/data/record) && ((ACCESS_CAPTAIN in logged_access) || (ACCESS_HOP in logged_access))) + if(istype(active1, /datum/data/record) && ((ACCESS_CAPTAIN in logged_access) || (ACCESS_HOP in logged_access) || (ACCESS_CENT_GENERAL in logged_access))) temp = "
    Rank:
    " temp += "" else alert(usr, "You do not have the required rank to do this!") + if("alt_title") + if(istype(active1, /datum/data/record) && ((ACCESS_CAPTAIN in logged_access) || (ACCESS_HOP in logged_access) || (ACCESS_CENT_GENERAL in logged_access))) + temp = "
    Rank Title:
    " + temp += "" + else + alert(usr, "You do not have the required rank to do this!") + //TEMPORARY MENU FUNCTIONS else//To properly clear as per clear screen. temp=null switch(href_list["choice"]) if("Change Rank") if(active1) - active1.fields["rank"] = href_list["rank"] - if(href_list["rank"] in get_all_jobs()) - active1.fields["real_rank"] = href_list["real_rank"] + if(GetJobName(href_list["rank"]) != "Unknown" && GetJobName(href_list["rank"]) != "Centcom") // hi hello you looking, stop trying to exploit html + active1.fields["rank"] = href_list["rank"] + active1.fields["real_rank"] = GetJobName(href_list["rank"]) if("Change Criminal Status") if(active2) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 2ab86e349c..2834486643 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1014,7 +1014,7 @@ log_admin("[key_name(usr)] stuffed [frommob.key] into [tomob.name].") SSblackbox.record_feedback("tally", "admin_verb", 1, "Ghost Drag Control") - tomob.ckey = frommob.ckey + tomob.key = frommob.key qdel(frommob) return TRUE diff --git a/code/modules/mob/dead/observer/respawn.dm b/code/modules/mob/dead/observer/respawn.dm index bf7ed9658f..10b20291ea 100644 --- a/code/modules/mob/dead/observer/respawn.dm +++ b/code/modules/mob/dead/observer/respawn.dm @@ -190,5 +190,5 @@ client.view_size.resetToDefault() var/mob/dead/new_player/M = new /mob/dead/new_player - M.ckey = ckey + M.key = key return M diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 44f8236aac..3ccc6e6c4b 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -1032,7 +1032,7 @@ if(GLOB.announcement_systems.len) // Sends an announcement the AI has cryoed. var/obj/machinery/announcement_system/announcer = pick(GLOB.announcement_systems) - announcer.announce("CRYOSTORAGE", src.real_name, announce_rank, announce_rank, list()) + announcer.announce("CRYOSTORAGE", real_name, announce_rank, announce_rank, list()) new /obj/structure/ai_core/latejoin_inactive(loc) if(src.mind) //Handle job slot/tater cleanup. diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index fcf9b0fa8c..7c4f0fd510 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -538,7 +538,7 @@ client.prefs.chat_toggles ^= CHAT_OOC if (!(client.prefs.chat_toggles & CHAT_OOC) && isdead(new_mob)) client.prefs.chat_toggles ^= CHAT_OOC - new_mob.ckey = ckey + new_mob.key = key if(send_signal) SEND_SIGNAL(src, COMSIG_MOB_KEY_CHANGE, new_mob, src) //splurt changeh diff --git a/html/changelogs/archive/2024-12.yml b/html/changelogs/archive/2024-12.yml index fbbb750665..d2af91f493 100644 --- a/html/changelogs/archive/2024-12.yml +++ b/html/changelogs/archive/2024-12.yml @@ -36,3 +36,10 @@ - bugfix: Misc things, like removing the bombs - rscadd: Medical patient rooms, for "fun" - rscadd: A work-around fix for medical having issues monitoring crew +2024-12-04: + SandPoot: + - rscadd: Higher staff can now set titles for you on the manifest using the security + console. + - bugfix: Manifest will no longer have people with null jobs. + - bugfix: High security vulnerability, you can no longer set your rank to be anything + (see pr for info).