Chat toggles for ghost.

This commit is contained in:
eswordthecat
2015-04-02 16:33:15 +08:00
parent 7f96b4bb87
commit 4be9bed2ae
2 changed files with 20 additions and 16 deletions

View File

@@ -27,10 +27,22 @@
return "[pick("whines", "cries", "spooks", "complains", "drones", "mutters")], \"[text]\"";
/mob/dead/observer/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq)
if(radio_freq)
speaker = speaker.GetSource()
if (isnull(client))
return
if (isnull(radio_freq))
if (!(client.prefs.toggles & CHAT_GHOSTEARS))
return
else
if (!(client.prefs.toggles & CHAT_GHOSTRADIO))
return
else
speaker = speaker.GetSource()
var/turf/T = get_turf(speaker)
if(get_dist(T, src) <= world.view) // if this isn't true, we can't be in view, so no need for costlier proc
if(T in view(src))
if (get_dist(T, src) <= world.view) // If this isn't true, we can't be in view, so no need for costlier proc.
if (T in view(src))
message = "<b>[message]</b>"
src << "<a href='?src=\ref[src];follow=\ref[speaker]'>(Follow)</a> [message]"

View File

@@ -164,22 +164,14 @@ var/list/department_radio_keys = list(
return message
/mob/living/send_speech(message, message_range = 7, obj/source = src, bubble_type)
var/list/listening = get_hearers_in_view(message_range, source)
var/list/listening_dead = list()
for(var/mob/M in player_list)
if(client && M.client && M.stat == DEAD && (M.client.prefs.toggles & CHAT_GHOSTEARS)) // client is so that ghosts don't have to listen to mice
listening_dead |= M
listening -= listening_dead //so ghosts dont hear stuff twice
var/list/listeners = get_hearers_in_view(message_range, source) | observers
var/rendered = compose_message(src, languages, message)
for(var/atom/movable/AM in listening)
AM.Hear(rendered, src, languages, message)
for(var/mob/M in listening_dead)
M.Hear(rendered, src, languages, message)
for (var/atom/movable/listener in listeners)
listener.Hear(rendered, src, languages, message)
send_speech_bubble(message, bubble_type, (listening + listening_dead))
send_speech_bubble(message, bubble_type, listeners)
/mob/living/proc/say_test(var/text)
var/ending = copytext(text, length(text))