diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm
index c82f8fa605..bfc2bc6f03 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))
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,7 +172,7 @@
var/datum/data/record/G = new()
G.fields["id"] = id
G.fields["name"] = H.real_name
- G.fields["rank"] = displayed_rank
+ G.fields["rank"] = assignment
G.fields["age"] = H.age
G.fields["species"] = H.dna.species.name
G.fields["fingerprint"] = md5(H.dna.uni_identity)
@@ -223,7 +219,7 @@
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["age"] = H.age
if(H.gender == MALE)
G.fields["gender"] = "Male"
diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm
index 6322bbf7e9..c749e7f5ec 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 += ""
for(var/rank in get_all_jobs())
- temp += "- [rank]
"
+ temp += "- [rank]"
+ var/datum/job/job_datum = SSjob.name_occupations[rank]
+ if(job_datum && length(job_datum.alt_titles))
+ var/how_many_alts = length(job_datum.alt_titles)
+ temp += "Use Title ([how_many_alts + 1] options)"
+ temp += "
"
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 += ""
+ var/chosen_rank = href_list["rank"]
+ temp += "- [chosen_rank]
"
+ var/datum/job/job_datum = SSjob.name_occupations[chosen_rank]
+ if(job_datum && length(job_datum.alt_titles))
+ for(var/rank in job_datum.alt_titles)
+ temp += "- [rank]
"
+ else
+ temp += "- We're very sorry, there was an internal error fetching titles. Report to centcom error: null_job_or_no_titles
"
+ 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") // 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)