From 90b00a04a903cc01c3e183366529bf32899d9c13 Mon Sep 17 00:00:00 2001 From: Wildkins Date: Tue, 12 Apr 2022 14:18:56 -0400 Subject: [PATCH] Fix lobby ready names runtiming on assistant/no pref (#13474) --- code/modules/mob/abstract/new_player/new_player.dm | 3 ++- .../mob/abstract/new_player/preferences_setup.dm | 12 ++++++------ html/changelogs/johnwildkins-ready.yml | 6 ++++++ 3 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 html/changelogs/johnwildkins-ready.yml diff --git a/code/modules/mob/abstract/new_player/new_player.dm b/code/modules/mob/abstract/new_player/new_player.dm index 81dcd71336e..ef24b2c88df 100644 --- a/code/modules/mob/abstract/new_player/new_player.dm +++ b/code/modules/mob/abstract/new_player/new_player.dm @@ -51,7 +51,8 @@ INITIALIZE_IMMEDIATE(/mob/abstract/new_player) for(var/mob/abstract/new_player/player in player_list) totalPlayers++ if(player.ready) - stat("[copytext_char(player.client.prefs.real_name, 1, 18)]", ("[player.client.prefs.return_chosen_high_job(TRUE)]")) + var/job_ready = player.client.prefs.return_chosen_high_job(TRUE) + stat("[copytext_char(player.client.prefs.real_name, 1, 18)]", job_ready ? "[job_ready]" : "N/A") totalPlayersReady++ /mob/abstract/new_player/Topic(href, href_list[]) diff --git a/code/modules/mob/abstract/new_player/preferences_setup.dm b/code/modules/mob/abstract/new_player/preferences_setup.dm index 54d63b69284..a889c02b2d9 100644 --- a/code/modules/mob/abstract/new_player/preferences_setup.dm +++ b/code/modules/mob/abstract/new_player/preferences_setup.dm @@ -200,10 +200,7 @@ // Determine what job is marked as 'High' priority, and dress them up as such. var/datum/job/previewJob - if(job_civilian_low & ASSISTANT) - previewJob = SSjobs.GetJob("Assistant") - else - previewJob = return_chosen_high_job() + previewJob = return_chosen_high_job() if(previewJob) mannequin.job = previewJob.title @@ -228,14 +225,17 @@ /datum/preferences/proc/return_chosen_high_job(var/title = FALSE) var/datum/job/chosenJob - if(job_civilian_high) + if(job_civilian_low & ASSISTANT) + // Assistant is weird, has to be checked first because it overrides + chosenJob = SSjobs.bitflag_to_job["[SERVICE]"]["[job_civilian_low]"] + else if(job_civilian_high) chosenJob = SSjobs.bitflag_to_job["[SERVICE]"]["[job_civilian_high]"] else if(job_medsci_high) chosenJob = SSjobs.bitflag_to_job["[MEDSCI]"]["[job_medsci_high]"] else if(job_engsec_high) chosenJob = SSjobs.bitflag_to_job["[ENGSEC]"]["[job_engsec_high]"] - if(title) + if(istype(chosenJob) && title) return chosenJob.title return chosenJob diff --git a/html/changelogs/johnwildkins-ready.yml b/html/changelogs/johnwildkins-ready.yml new file mode 100644 index 00000000000..e7b5b268bc7 --- /dev/null +++ b/html/changelogs/johnwildkins-ready.yml @@ -0,0 +1,6 @@ +author: JohnWildkins + +delete-after: True + +changes: + - bugfix: "Fixed lobby ready names causing errors if no high-priority role was selected, or if assistant was enabled."