From 3a3b036bbd1dde390fc0c4c06c882ad90c8ce424 Mon Sep 17 00:00:00 2001 From: AnturK Date: Sun, 12 May 2019 00:59:54 +0200 Subject: [PATCH] Fixes additional ai's spawning. (#43915) * Fixes ai/cyborg job passing through human preview * Also in the future. * bleh --- code/modules/jobs/job_types/ai.dm | 2 ++ code/modules/jobs/job_types/cyborg.dm | 2 ++ .../mob/dead/new_player/preferences_setup.dm | 28 +++++++++---------- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/code/modules/jobs/job_types/ai.dm b/code/modules/jobs/job_types/ai.dm index b56d5ccfc86..0eca408139e 100644 --- a/code/modules/jobs/job_types/ai.dm +++ b/code/modules/jobs/job_types/ai.dm @@ -17,6 +17,8 @@ var/do_special_check = TRUE /datum/job/ai/equip(mob/living/carbon/human/H, visualsOnly, announce, latejoin, datum/outfit/outfit_override, client/preference_source = null) + if(visualsOnly) + CRASH("dynamic preview is unsupported") . = H.AIize(latejoin,preference_source) /datum/job/ai/after_spawn(mob/H, mob/M, latejoin) diff --git a/code/modules/jobs/job_types/cyborg.dm b/code/modules/jobs/job_types/cyborg.dm index d214d6623ec..70d96cc0734 100644 --- a/code/modules/jobs/job_types/cyborg.dm +++ b/code/modules/jobs/job_types/cyborg.dm @@ -15,6 +15,8 @@ display_order = JOB_DISPLAY_ORDER_CYBORG /datum/job/cyborg/equip(mob/living/carbon/human/H, visualsOnly = FALSE, announce = TRUE, latejoin = FALSE, datum/outfit/outfit_override = null, client/preference_source = null) + if(visualsOnly) + CRASH("dynamic preview is unsupported") return H.Robotize(FALSE, latejoin) /datum/job/cyborg/after_spawn(mob/living/silicon/robot/R, mob/M) diff --git a/code/modules/mob/dead/new_player/preferences_setup.dm b/code/modules/mob/dead/new_player/preferences_setup.dm index 633fdae0921..bc458ef300f 100644 --- a/code/modules/mob/dead/new_player/preferences_setup.dm +++ b/code/modules/mob/dead/new_player/preferences_setup.dm @@ -21,20 +21,6 @@ age = rand(AGE_MIN,AGE_MAX) /datum/preferences/proc/update_preview_icon() - // Silicons only need a very basic preview since there is no customization for them. - var/datum/job/J = SSjob.GetJobType(/datum/job/ai) - if(job_preferences[J.title] == JP_HIGH) - parent.show_character_previews(image('icons/mob/ai.dmi', icon_state = resolve_ai_icon(preferred_ai_core_display), dir = SOUTH)) - return - J = SSjob.GetJobType(/datum/job/cyborg) - if(job_preferences[J.title] == JP_HIGH) - parent.show_character_previews(image('icons/mob/robots.dmi', icon_state = "robot", dir = SOUTH)) - return - - // Set up the dummy for its photoshoot - var/mob/living/carbon/human/dummy/mannequin = generate_or_wait_for_human_dummy(DUMMY_HUMAN_SLOT_PREFERENCES) - copy_to(mannequin) - // Determine what job is marked as 'High' priority, and dress them up as such. var/datum/job/previewJob var/highest_pref = 0 @@ -43,9 +29,23 @@ previewJob = SSjob.GetJob(job) highest_pref = job_preferences[job] + if(previewJob) + // Silicons only need a very basic preview since there is no customization for them. + if(istype(previewJob,/datum/job/ai)) + parent.show_character_previews(image('icons/mob/ai.dmi', icon_state = resolve_ai_icon(preferred_ai_core_display), dir = SOUTH)) + return + if(istype(previewJob,/datum/job/cyborg)) + parent.show_character_previews(image('icons/mob/robots.dmi', icon_state = "robot", dir = SOUTH)) + return + + // Set up the dummy for its photoshoot + var/mob/living/carbon/human/dummy/mannequin = generate_or_wait_for_human_dummy(DUMMY_HUMAN_SLOT_PREFERENCES) + copy_to(mannequin) + if(previewJob) mannequin.job = previewJob.title previewJob.equip(mannequin, TRUE, preference_source = parent) + COMPILE_OVERLAYS(mannequin) parent.show_character_previews(new /mutable_appearance(mannequin)) unset_busy_human_dummy(DUMMY_HUMAN_SLOT_PREFERENCES)