diff --git a/code/modules/mob/language.dm b/code/modules/mob/language.dm
index 8818d32326f..2f9969cb3ac 100644
--- a/code/modules/mob/language.dm
+++ b/code/modules/mob/language.dm
@@ -6,7 +6,7 @@
var/name = "an unknown language" // Fluff name of language if any.
var/desc = "A language." // Short description for 'Check Languages'.
var/speech_verb = "says" // 'says', 'hisses', 'farts'.
- var/colour = "body" // CSS style to use for strings in this language.
+ var/colour = "say_quote" // CSS style to use for strings in this language.
var/key = "x" // Character used to speak in language eg. :o for Unathi.
var/flags = 0 // Various language flags.
var/native // If set, non-native speakers will have trouble speaking.
@@ -62,7 +62,6 @@
/datum/language/human
name = "Sol Common"
desc = "A bastardized hybrid of informal English and elements of Mandarin Chinese; the common language of the Sol system."
- colour = "rough"
key = "1"
flags = RESTRICTED
@@ -72,30 +71,35 @@
name = "Tradeband"
desc = "Maintained by the various trading cartels in major systems, this elegant, structured language is used for bartering and bargaining."
speech_verb = "enunciates"
- colour = "say_quote"
key = "2"
/datum/language/gutter
name = "Gutter"
desc = "Much like Standard, this crude pidgin tongue descended from numerous languages and serves as Tradeband for criminal elements."
speech_verb = "growls"
- colour = "rough"
key = "3"
// Language handling.
/mob/proc/add_language(var/language)
+ for(var/datum/language/L in languages)
+ if(L && L.name == language)
+ return 0
+
var/datum/language/new_language = all_languages[language]
- if(!istype(new_language) || new_language in languages)
+ if(!istype(new_language,/datum/language))
return 0
- languages.Add(new_language)
+ languages += new_language
return 1
/mob/proc/remove_language(var/rem_language)
- languages.Remove(all_languages[rem_language])
+ for(var/datum/language/L in languages)
+ if(L && L.name == rem_language)
+ languages -= L
+ return 1
return 0
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 8ad1f4d427c..06e804e4e91 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -61,6 +61,11 @@
if(!species)
set_species("Human")
+ if(species.language)
+ var/datum/language/L = all_languages[species.language]
+ if(L)
+ languages += L
+
var/datum/reagents/R = new/datum/reagents(1000)
reagents = R
R.my_atom = src
@@ -1349,9 +1354,6 @@ mob/living/carbon/human/yank_out_object()
if(species && (species.name && species.name == new_species))
return 1
- if(species && species.language)
- remove_language(species.language)
-
species = all_species[new_species]
see_in_dark = species.darksight
@@ -1365,9 +1367,6 @@ mob/living/carbon/human/yank_out_object()
mutations+=species.default_mutations
- if(species.language)
- add_language(species.language)
-
spawn(0)
update_icons()
@@ -1424,7 +1423,7 @@ mob/living/carbon/human/yank_out_object()
src << "You ran out of blood to write with!"
var/obj/effect/decal/cleanable/blood/writing/W = new(T)
- W.message = message
+
W.add_fingerprint(src)
/mob/living/carbon/human/proc/expose_brain()
@@ -1434,4 +1433,5 @@ mob/living/carbon/human/yank_out_object()
h_style = "Bald"
drop_from_inventory(head)
update_hair()
- update_body()
\ No newline at end of file
+ update_body()
+
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 5412389f09b..0dc6be11b08 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -109,7 +109,7 @@ var/list/department_radio_keys = list(
if(client.prefs.muted & MUTE_IC)
src << "\red You cannot speak in IC (muted)."
return
- if (src.client.handle_spam_prevention(message, MUTE_IC))
+ if (src.client.handle_spam_prevention(message,MUTE_IC))
return
// undo last word status.
@@ -180,7 +180,7 @@ var/list/department_radio_keys = list(
if(src.stunned > 2 || (traumatic_shock > 61 && prob(50)))
message_mode = null //Stunned people shouldn't be able to physically turn on their radio/hold down the button to speak into it
- message = capitalize(trim_left(message))
+ message = capitalize(message)
if (!message)
return
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index 1a84411fe0d..806361514dc 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -303,9 +303,6 @@
src << alert("[rank] is not available. Please try another.")
return 0
- spawning = 1
- close_spawn_windows()
-
job_master.AssignRole(src, rank, 1)
var/mob/living/carbon/human/character = create_character() //creates the human and transfers vars and mind
@@ -377,7 +374,6 @@
if(client.prefs.species)
chosen_species = all_species[client.prefs.species]
if(chosen_species)
-
if(is_alien_whitelisted(src, client.prefs.species) || !config.usealienwhitelist || !(chosen_species.flags & IS_WHITELISTED) || (client.holder.rights & R_ADMIN) )// Have to recheck admin due to no usr at roundstart. Latejoins are fine though.
switch(chosen_species.name)
if("Slime People")
@@ -399,10 +395,13 @@
if("Human")
new_character = new /mob/living/carbon/human/human(loc)
// new_character.set_species(client.prefs.species)
+ if(chosen_species.language)
+ new_character.add_language(chosen_species.language)
else
new_character = new /mob/living/carbon/human(loc)
new_character.lastarea = get_area(loc)
+
var/datum/language/chosen_language
if(client.prefs.language)
chosen_language = all_languages["[client.prefs.language]"]
diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm
index b5117066378..b4c082c399c 100644
--- a/code/modules/mob/say.dm
+++ b/code/modules/mob/say.dm
@@ -101,28 +101,30 @@
//tcomms code is still runtiming somewhere here
var/ending = copytext(text, length(text))
- var/speech_verb = "says"
- var/speech_style = "body"
+ var/speechverb = ""
if (speaking)
- speech_verb = speaking.speech_verb
- speech_style = speaking.colour
+ speechverb = "[speaking.speech_verb], \""
else if(speak_emote && speak_emote.len)
- speech_verb = pick(speak_emote)
+ speechverb = "[pick(speak_emote)], \""
else if (src.stuttering)
- speech_verb = "stammers"
+ speechverb = "stammers, \""
else if (src.slurring)
- speech_verb = "slurrs"
+ speechverb = "slurrs, \""
else if (ending == "?")
- speech_verb = "asks"
+ speechverb = "asks, \""
else if (ending == "!")
- speech_verb = "exclaims"
+ speechverb = "exclaims, \""
else if(isliving(src))
var/mob/living/L = src
if (L.getBrainLoss() >= 60)
- speech_verb = "gibbers"
+ speechverb = "gibbers, \""
+ else
+ speechverb = "says, \""
+ else
+ speechverb = "says, \""
- return "[speech_verb], \"[text]\""
+ return "[speechverb][text]\""
/mob/proc/emote(var/act, var/type, var/message)
if(act == "me")
diff --git a/code/stylesheet.dm b/code/stylesheet.dm
index b7846429a66..fda3fb64e25 100644
--- a/code/stylesheet.dm
+++ b/code/stylesheet.dm
@@ -63,7 +63,6 @@ h1.alert, h2.alert {color: #000000;}
.skrell {color: #00CED1;}
.soghun {color: #228B22;}
.vox {color: #AA00AA;}
-.rough {font-family: "Trebuchet MS", cursive, sans-serif;}
.say_quote {font-family: Georgia, Verdana, sans-serif;}
.interface {color: #330033;}