diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index f89488e9c4d..b10f02e8934 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -443,36 +443,29 @@ Turf and target are seperate in case you want to teleport some distance from a t return creatures +var/list/sortMobsOrder = list( "/mob/living/silicon/ai", + "/mob/living/silicon/pai", + "/mob/living/silicon/robot", + "/mob/living/carbon/human", + "/mob/spirit/mask", + "/mob/living/carbon/brain", + "/mob/living/carbon/alien", + "/mob/dead/observer", + "/mob/new_player", + "/mob/living/carbon/monkey", + "/mob/living/carbon/slime", + "/mob/living/simple_animal", + "/mob/living/silicon/hivebot", + "/mob/living/silicon/hive_mainframe" ) + //Orders mobs by type then by name /proc/sortmobs() var/list/moblist = list() var/list/sortmob = sortAtom(mob_list) - for(var/mob/living/silicon/ai/M in sortmob) - moblist.Add(M) - for(var/mob/living/silicon/pai/M in sortmob) - moblist.Add(M) - for(var/mob/living/silicon/robot/M in sortmob) - moblist.Add(M) - for(var/mob/living/carbon/human/M in sortmob) - moblist.Add(M) - for(var/mob/living/carbon/brain/M in sortmob) - moblist.Add(M) - for(var/mob/living/carbon/alien/M in sortmob) - moblist.Add(M) - for(var/mob/dead/observer/M in sortmob) - moblist.Add(M) - for(var/mob/new_player/M in sortmob) - moblist.Add(M) - for(var/mob/living/carbon/monkey/M in sortmob) - moblist.Add(M) - for(var/mob/living/carbon/slime/M in sortmob) - moblist.Add(M) - for(var/mob/living/simple_animal/M in sortmob) - moblist.Add(M) -// for(var/mob/living/silicon/hivebot/M in world) -// mob_list.Add(M) -// for(var/mob/living/silicon/hive_mainframe/M in world) -// mob_list.Add(M) + for (var/path in sortMobsOrder) + for (var/mob/sorting in sortmob) + if (istype(sorting,text2path(path))) + moblist.Add(sorting) return moblist //E = MC^2 diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index 87ed4787058..34c844487c1 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -265,6 +265,9 @@ else if(isobserver(M)) M_job = "Ghost" + + else if(isSpirit(M)) + M_job = (ismask(M)) ? "Mask" : "Spirit" M_job = replacetext(M_job, "'", "") M_job = replacetext(M_job, "\"", "") @@ -348,6 +351,10 @@ dat += "Monkey" else if(isalien(M)) dat += "Alien" + else if(ismask(M)) + dat += "Mask" + else if(isSpirit(M)) + dat += "Spirit" else dat += "Unknown" diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 66c665644f3..bef1dd940da 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -120,6 +120,11 @@ proc/isobserver(A) return 1 return 0 +/proc/ismask(A) + if(istype(A, /mob/spirit/mask)) + return 1 + return 0 + proc/isorgan(A) if(istype(A, /datum/organ/external)) return 1