Moves languages to use more defines. Redoes Diona splitting

This commit is contained in:
Anewbe
2017-01-14 22:47:12 -06:00
parent 93a630e2e8
commit 2d72e609d1
24 changed files with 167 additions and 76 deletions

View File

@@ -160,12 +160,15 @@
// Can we speak this language, as opposed to just understanding it?
/mob/proc/can_speak(datum/language/speaking)
//Prevents someone from speaking a null language.
if(speaking)
return (speaking.can_speak_special(src) && (universal_speak || (speaking && (speaking.flags & INNATE)) || speaking in src.languages))
else
if(!speaking)
log_debug("[src] attempted to speak a null language.")
return 0
if (only_species_language && speaking != all_languages[species_language])
return 0
return (speaking.can_speak_special(src) && (universal_speak || (speaking && (speaking.flags & INNATE)) || speaking in src.languages))
/mob/proc/get_language_prefix()
if(client && client.prefs.language_prefixes && client.prefs.language_prefixes.len)
return client.prefs.language_prefixes[1]
@@ -213,7 +216,10 @@
/mob/living/Topic(href, href_list)
if(href_list["default_lang"])
if(href_list["default_lang"] == "reset")
set_default_language(null)
if (species_language)
set_default_language(all_languages[species_language])
else
set_default_language(null)
else
var/datum/language/L = locate(href_list["default_lang"])
if(L && (L in languages))
@@ -223,4 +229,10 @@
else
return ..()
/proc/transfer_languages(var/mob/source, var/mob/target, var/except_flags)
for(var/datum/language/L in source.languages)
if(L.flags & except_flags)
continue
target.add_language(L.name)
#undef SCRAMBLE_CACHE_LEN