diff --git a/code/game/atoms.dm b/code/game/atoms.dm index f34e532fb3e..a80b5a17817 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -500,6 +500,10 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons) /atom/proc/mech_melee_attack(obj/mecha/M) return +//If a mob logouts/logins in side of an object you can use this proc +/atom/proc/on_log(login) + if(loc) + loc.on_log(login) /* diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 0a4c310e75f..4b20f12bf82 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -165,14 +165,6 @@ /obj/proc/hide(h) return -//If a mob logouts/logins in side of an object you can use this proc -/obj/proc/on_log() - ..() - if(isobj(loc)) - var/obj/Loc=loc - Loc.on_log() - - /obj/singularity_pull(S, current_size) if(!anchored || current_size >= STAGE_FIVE) step_towards(src,S) diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index bdf83fc0cfe..3edb53a1ff4 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -24,9 +24,6 @@ var/locked = 0 var/opendir = SOUTH -/obj/structure/bodycontainer/New() - ..() - /obj/structure/bodycontainer/Destroy() open() if(connected) @@ -34,7 +31,8 @@ connected = null return ..() -/obj/structure/bodycontainer/on_log() +/obj/structure/bodycontainer/on_log(login) + ..() update_icon() /obj/structure/bodycontainer/update_icon() diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 5de492f7113..576e7baa869 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -340,6 +340,25 @@ GLOBAL_LIST(external_rsc_urls) adminGreet(1) holder.owner = null GLOB.admins -= src + + if (!GLOB.admins.len && SSticker.current_state == GAME_STATE_PLAYING) //Only report this stuff if we are currently playing. + if(!GLOB.admins.len) //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. + var/cheesy_message = pick( + "I have no admins online!",\ + "I'm all alone :(",\ + "I'm feeling lonely :(",\ + "I'm so lonely :(",\ + "Why does nobody love me? :(",\ + "I want a man :(",\ + "Where has everyone gone?",\ + "I need a hug :(",\ + "Someone come hold me :(",\ + "I need someone on me :(",\ + "What happened? Where has everyone gone?",\ + "Forever alone :("\ + ) + + send2irc("Server", "[cheesy_message] (No admins online)") GLOB.ahelp_tickets.ClientLogout(src) GLOB.directory -= ckey diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm index ea406eeb301..97ffa72aecb 100644 --- a/code/modules/mob/living/login.dm +++ b/code/modules/mob/living/login.dm @@ -5,7 +5,7 @@ mind.show_memory(src, 0) //Round specific stuff - if(SSticker && SSticker.mode) + if(SSticker.mode) switch(SSticker.mode.name) if("sandbox") CanBuild() diff --git a/code/modules/mob/living/silicon/login.dm b/code/modules/mob/living/silicon/login.dm index e22e104f1dd..9474b787ead 100644 --- a/code/modules/mob/living/silicon/login.dm +++ b/code/modules/mob/living/silicon/login.dm @@ -1,5 +1,5 @@ /mob/living/silicon/Login() - if(mind && SSticker && SSticker.mode) + if(mind && SSticker.mode) SSticker.mode.remove_cultist(mind, 0, 0) SSticker.mode.remove_revolutionary(mind, 0) SSticker.mode.remove_gangster(mind, remove_bosses=1) diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 754be994508..2e642ff6a7c 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -15,13 +15,11 @@ next_move = 1 ..() - if (key != client.key) - key = client.key + reset_perspective(loc) - if(isobj(loc)) - var/obj/Loc=loc - Loc.on_log() + if(loc) + loc.on_log(TRUE) //readd this mob's HUDs (antag, med, etc) reload_huds() @@ -47,4 +45,4 @@ if(client) client.click_intercept = null - client.view = world.view // Resets the client.view in case it was changed. \ No newline at end of file + client.view = world.view // Resets the client.view in case it was changed. \ No newline at end of file diff --git a/code/modules/mob/logout.dm b/code/modules/mob/logout.dm index 0a6fcb00171..aadb7e6d588 100644 --- a/code/modules/mob/logout.dm +++ b/code/modules/mob/logout.dm @@ -2,34 +2,10 @@ SStgui.on_logout(src) unset_machine() GLOB.player_list -= src - if(GLOB.admin_datums[src.ckey]) - if (SSticker && SSticker.current_state == GAME_STATE_PLAYING) //Only report this stuff if we are currently playing. - var/admins_number = GLOB.admins.len - 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. - var/cheesy_message = pick( list( \ - "I have no admins online!",\ - "I'm all alone :(",\ - "I'm feeling lonely :(",\ - "I'm so lonely :(",\ - "Why does nobody love me? :(",\ - "I want a man :(",\ - "Where has everyone gone?",\ - "I need a hug :(",\ - "Someone come hold me :(",\ - "I need someone on me :(",\ - "What happened? Where has everyone gone?",\ - "Forever alone :("\ - ) ) - if(cheesy_message) - cheesy_message += " (No admins online)" - - - send2irc("Server", "[cheesy_message]") ..() - if(isobj(loc)) - var/obj/Loc=loc - Loc.on_log() + if(loc) + loc.on_log(FALSE) - return 1 \ No newline at end of file + return TRUE \ No newline at end of file