diff --git a/code/defines/procs/global_lists.dm b/code/defines/procs/global_lists.dm index 3dcf6ee7880..d1eee8028b4 100644 --- a/code/defines/procs/global_lists.dm +++ b/code/defines/procs/global_lists.dm @@ -79,6 +79,10 @@ proc/rebuild_mob_lists() proc/add_to_mob_list(var/mob/A)//Adds an individual mob if(A) mob_list |= A + if(A.stat == 2) + dead_mob_list |= A + if(A.stat != 2) + living_mob_list |= A if(A.client) player_list |= A if(A.client.holder) @@ -86,6 +90,10 @@ proc/add_to_mob_list(var/mob/A)//Adds an individual mob proc/remove_from_mob_list(var/mob/R)//Removes an individual mob mob_list -= R + if(R.stat == 2) + dead_mob_list -= R + if(R.stat != 2) + living_mob_list -= R if(R.client) player_list -= R if(R.client.holder) diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm index db58a3483aa..78aec596c5a 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm @@ -7,7 +7,7 @@ src.real_name = src.name verbs.Add(/mob/living/carbon/alien/humanoid/proc/resin,/mob/living/carbon/alien/humanoid/proc/corrosive_acid) verbs -= /mob/living/carbon/alien/humanoid/verb/ActivateHuggers //<-- pointless - living_mob_list += src + add_to_mob_list(src) //Drones use the same base as generic humanoids. //Drone verbs diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index dd852016924..acbb16d7b08 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -5,7 +5,7 @@ if(name == "alien hunter") name = text("alien hunter ([rand(1, 1000)])") real_name = name - living_mob_list += src + add_to_mob_list(src) /mob/living/carbon/alien/humanoid/hunter diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm index 0cf3a322adb..97ed7cca799 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm @@ -6,7 +6,7 @@ name = text("alien sentinel ([rand(1, 1000)])") real_name = name verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/neurotoxin) - living_mob_list += src + add_to_mob_list(src) /mob/living/carbon/alien/humanoid/sentinel diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 0677e9c7e9b..cf8f37e7f7f 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -14,7 +14,7 @@ real_name = src.name verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/neurotoxin,/mob/living/carbon/alien/humanoid/proc/resin) verbs -= /mob/living/carbon/alien/verb/ventcrawl - living_mob_list += src + add_to_mob_list(src) /mob/living/carbon/alien/humanoid/queen diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index c1f49bbf7fc..54a4a774eb7 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -59,8 +59,7 @@ spawn(0) ainame(src) - living_mob_list += src - mob_list += src + add_to_mob_list(src) return diff --git a/code/modules/mob/living/silicon/robot/death.dm b/code/modules/mob/living/silicon/robot/death.dm index 0ecc28c0738..c3febf18cc3 100644 --- a/code/modules/mob/living/silicon/robot/death.dm +++ b/code/modules/mob/living/silicon/robot/death.dm @@ -15,6 +15,7 @@ robogibs(loc, viruses) living_mob_list -= src + dead_mob_list -= src spawn(15) if(animation) del(animation) if(src) del(src) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 5dfde1342b3..eb71922238b 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -65,7 +65,7 @@ //Improved /N /mob/living/silicon/robot/Del() if(mmi)//Safety for when a cyborg gets dust()ed. Or there is no MMI inside. - living_mob_list += mmi + add_to_mob_list(mmi) var/turf/T = get_turf(loc)//To hopefully prevent run time errors. if(T) mmi.loc = T diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 7c5469fd1ae..c4c8a4ae23e 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1,13 +1,10 @@ /mob/Del()//This makes sure that mobs with clients/keys are not just deleted from the game. ghostize(1) remove_from_mob_list(src) - living_mob_list -= src - dead_mob_list -= src ..() /mob/New() add_to_mob_list(src) - living_mob_list += src//No way this can possibly fail ..() /mob/proc/Cell()