Language icons

This commit is contained in:
Jack Edge
2017-04-23 13:18:30 +01:00
parent cbe73c71ee
commit e858379cce
12 changed files with 63 additions and 5 deletions

View File

@@ -1,2 +1,4 @@
#define NO_STUTTER 1 #define NO_STUTTER 1
#define TONGUELESS_SPEECH 2 #define TONGUELESS_SPEECH 2
#define LANGUAGE_HIDE_ICON_IF_UNDERSTOOD 4
#define LANGUAGE_HIDE_ICON_IF_NOT_UNDERSTOOD 8

View File

@@ -59,7 +59,12 @@ GLOBAL_LIST_INIT(freqtospan, list(
//Message //Message
var/messagepart = " <span class='message'>[lang_treat(speaker, message_language, raw_message, spans, message_mode)]</span></span>" var/messagepart = " <span class='message'>[lang_treat(speaker, message_language, raw_message, spans, message_mode)]</span></span>"
return "[spanpart1][spanpart2][freqpart][compose_track_href(speaker, namepart)][namepart][compose_job(speaker, message_language, raw_message, radio_freq)][endspanpart][messagepart]" var/languageicon = ""
var/datum/language/D = get_language_instance(message_language)
if(D.display_icon(src))
languageicon = D.get_icon()
return "[spanpart1][spanpart2][freqpart][compose_track_href(speaker, namepart)][namepart][compose_job(speaker, message_language, raw_message, radio_freq)][endspanpart][languageicon][messagepart]"
/atom/movable/proc/compose_track_href(atom/movable/speaker, message_langs, raw_message, radio_freq) /atom/movable/proc/compose_track_href(atom/movable/speaker, message_langs, raw_message, radio_freq)
return "" return ""
@@ -93,7 +98,7 @@ GLOBAL_LIST_INIT(freqtospan, list(
return speaker.say_quote(raw_message, spans, message_mode) return speaker.say_quote(raw_message, spans, message_mode)
else if(language) else if(language)
var/atom/movable/AM = speaker.GetSource() var/atom/movable/AM = speaker.GetSource()
var/datum/language/D = new language var/datum/language/D = get_language_instance(language)
raw_message = D.scramble(raw_message) raw_message = D.scramble(raw_message)
if(AM) if(AM)
return AM.say_quote(raw_message, spans, message_mode) return AM.say_quote(raw_message, spans, message_mode)

View File

@@ -5,9 +5,12 @@
speech_verb = "says" speech_verb = "says"
whisper_verb = "whispers" whisper_verb = "whispers"
key = "0" key = "0"
flags = TONGUELESS_SPEECH flags = TONGUELESS_SPEECH | LANGUAGE_HIDE_ICON_IF_UNDERSTOOD
default_priority = 100 default_priority = 100
icon = 'icons/obj/cardboard_cutout.dmi'
icon_state = "cutout_greytide"
//Syllable Lists //Syllable Lists
/* /*
This list really long, mainly because I can't make up my mind about which mandarin syllables should be removed, This list really long, mainly because I can't make up my mind about which mandarin syllables should be removed,

View File

@@ -12,3 +12,6 @@
space_chance = 0 space_chance = 0
sentence_chance = 0 sentence_chance = 0
default_priority = 20 default_priority = 20
icon = 'icons/mob/drone.dmi'
icon_state = "drone_repair"

View File

@@ -21,6 +21,22 @@
var/static/list/scramble_cache = list() var/static/list/scramble_cache = list()
var/default_priority = 0 // the language that an atom knows with the highest "default_priority" is selected by default. var/default_priority = 0 // the language that an atom knows with the highest "default_priority" is selected by default.
var/icon
var/icon_state
/datum/language/proc/display_icon(atom/movable/hearer)
if(isobserver(hearer))
return TRUE
var/understands = hearer.has_language(src.type)
if(flags & LANGUAGE_HIDE_ICON_IF_UNDERSTOOD && understands)
return FALSE
if(flags & LANGUAGE_HIDE_ICON_IF_NOT_UNDERSTOOD && !understands)
return FALSE
return TRUE
/datum/language/proc/get_icon()
return "<img class=icon src=\ref[icon] iconstate='[icon_state]'>"
/datum/language/proc/get_random_name(gender, name_count=2, syllable_count=4, syllable_divisor=2) /datum/language/proc/get_random_name(gender, name_count=2, syllable_count=4, syllable_divisor=2)
if(!syllables || !syllables.len) if(!syllables || !syllables.len)
if(gender==FEMALE) if(gender==FEMALE)
@@ -93,3 +109,13 @@
return speech_verb return speech_verb
#undef SCRAMBLE_CACHE_LEN #undef SCRAMBLE_CACHE_LEN
/proc/get_language_instance(langtype)
if(!ispath(langtype, /datum/language))
return
if(!GLOB.language_datums[langtype])
var/datum/language/langdatum = new langtype
GLOB.language_datums[langtype] = langdatum
. = GLOB.language_datums[langtype]

View File

@@ -11,6 +11,9 @@
space_chance = 10 space_chance = 10
default_priority = 90 default_priority = 90
icon = 'icons/mob/robots.dmi'
icon_state = "robot_old"
/datum/language/machine/get_random_name() /datum/language/machine/get_random_name()
if(prob(70)) if(prob(70))
return "[pick(GLOB.posibrain_names)]-[rand(100, 999)]" return "[pick(GLOB.posibrain_names)]-[rand(100, 999)]"

View File

@@ -9,3 +9,6 @@
space_chance = 100 space_chance = 100
syllables = list("oop", "aak", "chee", "eek") syllables = list("oop", "aak", "chee", "eek")
default_priority = 80 default_priority = 80
icon = 'icons/obj/hydroponics/harvest.dmi'
icon_state = "banana"

View File

@@ -8,5 +8,8 @@
default_priority = 10 default_priority = 10
spans = list(SPAN_ROBOT, "brass") spans = list(SPAN_ROBOT, "brass")
icon = 'icons/obj/clockwork_objects.dmi'
icon_state = "wall_gear"
/datum/language/ratvar/scramble(var/input) /datum/language/ratvar/scramble(var/input)
. = text2ratvar(input) . = text2ratvar(input)

View File

@@ -8,3 +8,6 @@
key = "k" key = "k"
syllables = list("qr","qrr","xuq","qil","quum","xuqm","vol","xrim","zaoo","qu-uu","qix","qoo","zix","*","!") syllables = list("qr","qrr","xuq","qil","quum","xuqm","vol","xrim","zaoo","qu-uu","qix","qoo","zix","*","!")
default_priority = 70 default_priority = 70
icon = 'icons/mob/slimes.dmi'
icon_state = "grey adult slime"

View File

@@ -10,6 +10,10 @@
space_chance = 100 space_chance = 100
sentence_chance = 0 sentence_chance = 0
default_priority = 60 default_priority = 60
icon = 'icons/mob/swarmer.dmi'
icon_state = "swarmer"
// since various flats and sharps are the same, // since various flats and sharps are the same,
// all non-accidental notes are doubled in the list // all non-accidental notes are doubled in the list
/* The list with unicode symbols for the accents. /* The list with unicode symbols for the accents.

View File

@@ -8,3 +8,6 @@
key = "4" key = "4"
syllables = list("sss","sSs","SSS") syllables = list("sss","sSs","SSS")
default_priority = 50 default_priority = 50
icon = 'icons/mob/alien.dmi'
icon_state = "alienq"