diff --git a/code/defines/obj.dm b/code/defines/obj.dm
index 739354707bb..29bffd5f3cf 100644
--- a/code/defines/obj.dm
+++ b/code/defines/obj.dm
@@ -56,6 +56,7 @@
var/list/civ = new()
var/list/bot = new()
var/list/misc = new()
+ var/list/isactive = new()
var/dat = {"
- | Name | Rank |
+ | Name | Rank | Activity |
"}
var/even = 0
@@ -77,6 +78,17 @@
var/rank = t.fields["rank"]
var/real_rank = t.fields["real_rank"]
+ var/active = 0
+ for(var/mob/M in player_list) if(M.name == name)
+ // For dead ones, have a chance to get their status wrong
+ if(M.stat == 2)
+ active = M.x % 2 // Should be good enough, avoids their status flipping constantly
+ break
+ else if(M.client && M.client.inactivity <= 10 * 60 * 10)
+ active = 1
+ break
+ isactive[name] = active ? "Active" : "SSD"
+
//world << "[name]: [rank]"
if(real_rank in command_positions)
@@ -106,44 +118,44 @@
if(heads.len > 0)
dat += "| Heads |
"
for(name in heads)
- dat += "| [name] | [heads[name]] |
"
+ dat += "| [name] | [heads[name]] | isactive[name] |
"
even = !even
if(sec.len > 0)
dat += "| Security |
"
for(name in sec)
- dat += "| [name] | [sec[name]] |
"
+ dat += "| [name] | [sec[name]] | isactive[name] |
"
even = !even
if(eng.len > 0)
dat += "| Engineering |
"
for(name in eng)
- dat += "| [name] | [eng[name]] |
"
+ dat += "| [name] | [eng[name]] | isactive[name] |
"
even = !even
if(med.len > 0)
dat += "| Medical |
"
for(name in med)
- dat += "| [name] | [med[name]] |
"
+ dat += "| [name] | [med[name]] | isactive[name] |
"
even = !even
if(sci.len > 0)
dat += "| Science |
"
for(name in sci)
- dat += "| [name] | [sci[name]] |
"
+ dat += "| [name] | [sci[name]] | isactive[name] |
"
even = !even
if(civ.len > 0)
dat += "| Civilian |
"
for(name in civ)
- dat += "| [name] | [civ[name]] |
"
+ dat += "| [name] | [civ[name]] | isactive[name] |
"
even = !even
// in case somebody is insane and added them to the manifest, why not
if(bot.len > 0)
dat += "| Silicon |
"
for(name in bot)
- dat += "| [name] | [bot[name]] |
"
+ dat += "| [name] | [bot[name]] | isactive[name] |
"
even = !even
// misc guys
if(misc.len > 0)
dat += "| Miscellaneous |
"
for(name in misc)
- dat += "| [name] | [misc[name]] |
"
+ dat += "| [name] | [misc[name]] | isactive[name] |
"
even = !even