diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 7f5615cfa7..fda74c2ac8 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -495,6 +495,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 f297662c2d..4c61b09ca3 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 a13858296a..39ff2a7da9 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 08f240ac31..4f6642f051 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -370,6 +370,34 @@ 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?",\ + "My nipples are so stiff, but Zelda ain't here. :(",\ + "Leon senpai, play more Spessmans. :(",\ + "If only Serdy were here...",\ + "Panic bunker can't keep my love for you out.",\ + "Cebu needs to Awoo herself back into my heart.",\ + "I don't even have a Turry to snuggle viciously here.",\ + "MOM, WHERE ARE YOU???",\ + "It's a beautiful day outside. Birds are singing, flowers are blooming. On days like this...kids like you...SHOULD BE BURNING IN HELL.",\ + "Sometimes when I have sex, I think about putting an entire peanut butter and jelly sandwich in the VCR.",\ + "Forever alone :("\ + ) + + send2irc("Server", "[cheesy_message] (No admins online)") GLOB.ahelp_tickets.ClientLogout(src) GLOB.directory -= ckey @@ -613,4 +641,4 @@ GLOBAL_LIST(external_rsc_urls) if (isnull(new_size)) CRASH("change_view called without argument.") - view = new_size \ No newline at end of file + view = new_size diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm index 6365ab04f4..94b26fd229 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 38d83af1a4..e9efce3fa6 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 9f439d8372..90a331f03c 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() @@ -41,4 +39,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 b3d708eee9..770ec01d42 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