Files
vgstation13/code/modules/mob/logout.dm
clusterfack a09c1648bd Probably stops huds breaking
- Added a thing to remove screen obj references to logout in addition to being called in destroy instead of relying fully on the reset screen obj proc.

- Moved some hud creation from AI to the hud datums where it should have been, might fix an issue or two

- My teeth still hurt from the dentist

- Adds robot module backgrounds to one of the screen objs that should be removed on logout as well so all screen objs should always be accounted for going in/out

Man you have to be reeeally careful with pooling about this kind of shit.
2015-08-03 15:10:58 -05:00

27 lines
892 B
Plaintext

/mob/Logout()
if (isobj(loc))
var/obj/location = loc
location.on_log()
for(var/mob/virtualhearer/VH in virtualhearers)
if(VH.attached == src)
returnToPool(VH)
nanomanager.user_logout(src) // this is used to clean up (remove) this user's Nano UIs
player_list -= src
log_access("Logout: [key_name(src)] ([formatLocation(loc)])")
remove_screen_objs() //Used to remove hud elements
if(admin_datums[src.ckey])
if (ticker && ticker.current_state == GAME_STATE_PLAYING) //Only report this stuff if we are currently playing.
var/admins_number = admins.len
message_admins("Admin logout: [key_name(src)]")
if(admins_number == 0) //Apparently the admin logging out is no longer an admin at this point, so we have to check this towards 0 and not towards 1. Awell.
send2adminirc("[key_name(src)] logged out - no more admins online.")
..()