diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 9eadec2ba93..350218bcf4a 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1099,9 +1099,18 @@ to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.", confidential = TRUE) return + var/move = TRUE + switch(alert(usr,"Move new AI to AI spawn location?","Move AI?", "Yes", "No","Cancel")) + if("Cancel") + return + if("No") + move = FALSE + if(QDELETED(H)) + to_chat(usr, "Subject was deleted already. Transform canceled.") + return message_admins("Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!") log_admin("[key_name(usr)] AIized [key_name(H)].") - H.AIize(TRUE, H.client) + H.AIize(TRUE, H.client, move) else if(href_list["makealien"]) if(!check_rights(R_SPAWN)) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 95aa443b25a..93700e92bc8 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -77,20 +77,24 @@ invisibility = INVISIBILITY_MAXIMUM return ..() -/mob/proc/AIize(transfer_after = TRUE, client/preference_source) +/mob/proc/AIize(transfer_after = TRUE, client/preference_source, move = TRUE) var/list/turf/landmark_loc = list() - for(var/obj/effect/landmark/start/ai/sloc in GLOB.landmarks_list) - if(locate(/mob/living/silicon/ai) in sloc.loc) - continue - if(sloc.primary_ai) - LAZYCLEARLIST(landmark_loc) - landmark_loc += sloc.loc - break - landmark_loc += sloc.loc - if(!landmark_loc.len) - to_chat(src, "Oh god sorry we can't find an unoccupied AI spawn location, so we're spawning you on top of someone.") + + if(!move) + landmark_loc += loc + else for(var/obj/effect/landmark/start/ai/sloc in GLOB.landmarks_list) + if(locate(/mob/living/silicon/ai) in sloc.loc) + continue + if(sloc.primary_ai) + LAZYCLEARLIST(landmark_loc) + landmark_loc += sloc.loc + break landmark_loc += sloc.loc + if(!landmark_loc.len) + to_chat(src, "Oh god sorry we can't find an unoccupied AI spawn location, so we're spawning you on top of someone.") + for(var/obj/effect/landmark/start/ai/sloc in GLOB.landmarks_list) + landmark_loc += sloc.loc if(!landmark_loc.len) message_admins("Could not find ai landmark for [src]. Yell at a mapper! We are spawning them at their current location.")