From adb059fbe4a0ea1b752d244f7d396c9de7a0d59c Mon Sep 17 00:00:00 2001 From: Heroman Date: Mon, 29 Mar 2021 21:08:25 +1000 Subject: [PATCH] Makes manifest preserve original position of Custom jobs --- code/datums/datacore.dm | 17 ++++++++++++----- code/game/machinery/computer/card.dm | 2 +- code/modules/tgui/modules/ntos-only/cardmod.dm | 2 +- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 8e687e9a3d..35ec548bd8 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -288,7 +288,7 @@ var/global/list/PDA_Manifest = list() manifest_inject(H) return -/datum/datacore/proc/manifest_modify(var/name, var/assignment) +/datum/datacore/proc/manifest_modify(var/name, var/assignment, var/rank) ResetPDAManifest() var/datum/data/record/foundrecord var/real_title = assignment @@ -302,11 +302,18 @@ var/global/list/PDA_Manifest = list() var/list/all_jobs = get_job_datums() for(var/datum/job/J in all_jobs) - var/list/alttitles = get_alternate_titles(J.title) - if(!J) continue - if(assignment in alttitles) - real_title = J.title + if(J.title == rank) //If we have a rank, just default to using that. + real_title = rank break + else if(J.title == assignment) + real_title = rank + break + else + var/list/alttitles = get_alternate_titles(J.title) + if(!J) continue + if(assignment in alttitles) + real_title = J.title + break if(foundrecord) foundrecord.fields["rank"] = assignment diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 58c5e57f7b..2718be034a 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -153,7 +153,7 @@ switch(href_list["choice"]) if ("modify") if (modify) - data_core.manifest_modify(modify.registered_name, modify.assignment) + data_core.manifest_modify(modify.registered_name, modify.assignment, modify.rank) modify.name = text("[modify.registered_name]'s ID Card ([modify.assignment])") if(ishuman(usr)) modify.forceMove(get_turf(src)) diff --git a/code/modules/tgui/modules/ntos-only/cardmod.dm b/code/modules/tgui/modules/ntos-only/cardmod.dm index f96a267288..c9c13f5b33 100644 --- a/code/modules/tgui/modules/ntos-only/cardmod.dm +++ b/code/modules/tgui/modules/ntos-only/cardmod.dm @@ -167,7 +167,7 @@ if("modify") if(computer && computer.card_slot) if(id_card) - data_core.manifest_modify(id_card.registered_name, id_card.assignment) + data_core.manifest_modify(id_card.registered_name, id_card.assignment, id_card.rank) computer.proc_eject_id(usr) . = TRUE if("terminate")