mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Merge pull request #5847 from Rykka-Stormheart/shep-dev-def-langhiss
Preferred Language + Autohiss Default Options
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
/datum/preferences
|
/datum/preferences
|
||||||
var/extra_languages = 0
|
var/extra_languages = 0
|
||||||
|
var/preferred_language = "common" // CHOMPStation Edit: Allow selecting a preferred language
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/general/language
|
/datum/category_item/player_setup_item/general/language
|
||||||
name = "Language"
|
name = "Language"
|
||||||
@@ -14,6 +15,7 @@
|
|||||||
S["language_prefixes"] >> pref.language_prefixes
|
S["language_prefixes"] >> pref.language_prefixes
|
||||||
//CHOMPEdit Begin
|
//CHOMPEdit Begin
|
||||||
S["species"] >> pref.species
|
S["species"] >> pref.species
|
||||||
|
S["preflang"] >> pref.preferred_language
|
||||||
//CHOMPEdit End
|
//CHOMPEdit End
|
||||||
S["language_custom_keys"] >> pref.language_custom_keys
|
S["language_custom_keys"] >> pref.language_custom_keys
|
||||||
|
|
||||||
@@ -24,6 +26,7 @@
|
|||||||
testing("LANGSANI: Loaded from [pref.client]'s character [pref.real_name || "-name not yet loaded-"] savefile: [english_list(pref.alternate_languages || list())]")
|
testing("LANGSANI: Loaded from [pref.client]'s character [pref.real_name || "-name not yet loaded-"] savefile: [english_list(pref.alternate_languages || list())]")
|
||||||
S["language_prefixes"] << pref.language_prefixes
|
S["language_prefixes"] << pref.language_prefixes
|
||||||
S["language_custom_keys"] << pref.language_custom_keys
|
S["language_custom_keys"] << pref.language_custom_keys
|
||||||
|
S["preflang"] << pref.preferred_language // CHOMPStation Edit
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/general/language/sanitize_character()
|
/datum/category_item/player_setup_item/general/language/sanitize_character()
|
||||||
if(!islist(pref.alternate_languages)) pref.alternate_languages = list()
|
if(!islist(pref.alternate_languages)) pref.alternate_languages = list()
|
||||||
@@ -35,6 +38,11 @@
|
|||||||
testing("LANGSANI: Truncated [pref.client]'s character [pref.real_name || "-name not yet loaded-"] language list because it was too long (len: [pref.alternate_languages.len], allowed: [S.num_alternate_languages])")
|
testing("LANGSANI: Truncated [pref.client]'s character [pref.real_name || "-name not yet loaded-"] language list because it was too long (len: [pref.alternate_languages.len], allowed: [S.num_alternate_languages])")
|
||||||
pref.alternate_languages.len = (S.num_alternate_languages + pref.extra_languages) // Truncate to allowed length
|
pref.alternate_languages.len = (S.num_alternate_languages + pref.extra_languages) // Truncate to allowed length
|
||||||
|
|
||||||
|
// CHOMPStation Edit Start
|
||||||
|
if(!(pref.preferred_language in pref.alternate_languages) || !pref.preferred_language) // Safety handling for if our preferred language is ever somehow removed from the character's list of langauges, or they don't have one set
|
||||||
|
pref.preferred_language = S.language // Reset to default, for safety
|
||||||
|
// CHOMPStation Edit end
|
||||||
|
|
||||||
// Sanitize illegal languages
|
// Sanitize illegal languages
|
||||||
for(var/language in pref.alternate_languages)
|
for(var/language in pref.alternate_languages)
|
||||||
var/datum/language/L = GLOB.all_languages[language]
|
var/datum/language/L = GLOB.all_languages[language]
|
||||||
@@ -79,6 +87,7 @@
|
|||||||
|
|
||||||
. += "<b>Language Keys</b><br>"
|
. += "<b>Language Keys</b><br>"
|
||||||
. += " [jointext(pref.language_prefixes, " ")] <a href='?src=\ref[src];change_prefix=1'>Change</a> <a href='?src=\ref[src];reset_prefix=1'>Reset</a><br>"
|
. += " [jointext(pref.language_prefixes, " ")] <a href='?src=\ref[src];change_prefix=1'>Change</a> <a href='?src=\ref[src];reset_prefix=1'>Reset</a><br>"
|
||||||
|
. += "<b>Preferred Language</b> <a href='?src=\ref[src];pref_lang=1'>[pref.preferred_language]</a><br>" // CHOMPStation Add
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/general/language/OnTopic(var/href,var/list/href_list, var/mob/user)
|
/datum/category_item/player_setup_item/general/language/OnTopic(var/href,var/list/href_list, var/mob/user)
|
||||||
if(href_list["remove_language"])
|
if(href_list["remove_language"])
|
||||||
@@ -166,4 +175,22 @@
|
|||||||
|
|
||||||
return TOPIC_REFRESH
|
return TOPIC_REFRESH
|
||||||
|
|
||||||
|
// CHOMPStation Add: Preferred Language
|
||||||
|
else if(href_list["pref_lang"])
|
||||||
|
if(pref.species) // Safety to prevent a null runtime here
|
||||||
|
var/datum/species/S = GLOB.all_species[pref.species]
|
||||||
|
var/list/lang_opts = list(S.language) + pref.alternate_languages
|
||||||
|
var/selection = tgui_input_list(user, "Choose your preferred spoken language:", "Preferred Spoken Language", lang_opts, pref.preferred_language)
|
||||||
|
if(!selection) // Set our preferred to default, just in case.
|
||||||
|
tgui_alert_async(user, "Preferred Language not modified.", "Selection Canceled")
|
||||||
|
if(selection)
|
||||||
|
pref.preferred_language = selection
|
||||||
|
if(selection == "common" || selection == S.language)
|
||||||
|
tgui_alert_async(user, "You will now speak your standard default language, [S.language ? S.language : "common"], if you do not specify a language when speaking.", "Preferred Set to Default")
|
||||||
|
else // Did they set anything else?
|
||||||
|
tgui_alert_async(user, "You will now speak [pref.preferred_language] if you do not specify a language when speaking.", "Preferred Language Set")
|
||||||
|
return TOPIC_REFRESH
|
||||||
|
// CHOMPStation Add End
|
||||||
|
|
||||||
|
|
||||||
return ..()
|
return ..()
|
||||||
|
|||||||
@@ -1,6 +1,13 @@
|
|||||||
// Define a place to save appearance in character setup
|
// Define a place to save appearance in character setup
|
||||||
|
// CHOMPStation Add Start: Doing this here bc AUTOHISS_FULL is more readable than #
|
||||||
|
#define AUTOHISS_OFF 0
|
||||||
|
#define AUTOHISS_BASIC 1
|
||||||
|
#define AUTOHISS_FULL 2
|
||||||
|
// CHOMPStation Add End
|
||||||
|
|
||||||
/datum/preferences
|
/datum/preferences
|
||||||
var/vore_egg_type = "Egg" //The egg type they have.
|
var/vore_egg_type = "Egg" //The egg type they have.
|
||||||
|
var/autohiss = "Full" // CHOMPStation Add: Whether we have Autohiss on. I'm hijacking the egg panel bc this one has a shitton of unused space.
|
||||||
|
|
||||||
// Definition of the stuff for the egg type.
|
// Definition of the stuff for the egg type.
|
||||||
/datum/category_item/player_setup_item/vore/egg
|
/datum/category_item/player_setup_item/vore/egg
|
||||||
@@ -9,19 +16,35 @@
|
|||||||
|
|
||||||
/datum/category_item/player_setup_item/vore/egg/load_character(var/savefile/S)
|
/datum/category_item/player_setup_item/vore/egg/load_character(var/savefile/S)
|
||||||
S["vore_egg_type"] >> pref.vore_egg_type
|
S["vore_egg_type"] >> pref.vore_egg_type
|
||||||
|
S["autohiss"] >> pref.autohiss // CHOMPStation Add
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/vore/egg/save_character(var/savefile/S)
|
/datum/category_item/player_setup_item/vore/egg/save_character(var/savefile/S)
|
||||||
S["vore_egg_type"] << pref.vore_egg_type
|
S["vore_egg_type"] << pref.vore_egg_type
|
||||||
|
S["autohiss"] << pref.autohiss // CHOMPStation Add
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/vore/egg/sanitize_character()
|
/datum/category_item/player_setup_item/vore/egg/sanitize_character()
|
||||||
pref.vore_egg_type = sanitize_inlist(pref.vore_egg_type, global_vore_egg_types, initial(pref.vore_egg_type))
|
pref.vore_egg_type = sanitize_inlist(pref.vore_egg_type, global_vore_egg_types, initial(pref.vore_egg_type))
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/vore/egg/copy_to_mob(var/mob/living/carbon/human/character)
|
/datum/category_item/player_setup_item/vore/egg/copy_to_mob(var/mob/living/carbon/human/character)
|
||||||
character.vore_egg_type = pref.vore_egg_type
|
character.vore_egg_type = pref.vore_egg_type
|
||||||
|
// CHOMPStation Add
|
||||||
|
if(pref.client) // Safety, just in case so we don't runtime.
|
||||||
|
if(!pref.autohiss)
|
||||||
|
pref.client.autohiss_mode = AUTOHISS_FULL
|
||||||
|
else
|
||||||
|
switch(pref.autohiss)
|
||||||
|
if("Full")
|
||||||
|
pref.client.autohiss_mode = AUTOHISS_FULL
|
||||||
|
if("Basic")
|
||||||
|
pref.client.autohiss_mode = AUTOHISS_BASIC
|
||||||
|
if("Off")
|
||||||
|
pref.client.autohiss_mode = AUTOHISS_OFF
|
||||||
|
// CHOMPStation Add
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/vore/egg/content(var/mob/user)
|
/datum/category_item/player_setup_item/vore/egg/content(var/mob/user)
|
||||||
. += "<br>"
|
. += "<br>"
|
||||||
. += " Egg Type: <a href='?src=\ref[src];vore_egg_type=1'>[pref.vore_egg_type]</a><br>"
|
. += " Egg Type: <a href='?src=\ref[src];vore_egg_type=1'>[pref.vore_egg_type]</a><br>"
|
||||||
|
. += "<b>Autohiss Default Setting:</b> <a href='?src=\ref[src];autohiss=1'>[pref.autohiss]</a><br>" // CHOMPStation Add
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/vore/egg/OnTopic(var/href, var/list/href_list, var/mob/user)
|
/datum/category_item/player_setup_item/vore/egg/OnTopic(var/href, var/list/href_list, var/mob/user)
|
||||||
if(!CanUseTopic(user))
|
if(!CanUseTopic(user))
|
||||||
@@ -33,5 +56,21 @@
|
|||||||
if(selection)
|
if(selection)
|
||||||
pref.vore_egg_type = selection
|
pref.vore_egg_type = selection
|
||||||
return TOPIC_REFRESH
|
return TOPIC_REFRESH
|
||||||
|
// CHOMPStation Add Start
|
||||||
|
else if(href_list["autohiss"])
|
||||||
|
var/list/autohiss_selection = list("Full", "Basic", "Off")
|
||||||
|
var/selection = tgui_input_list(user, "Choose your default autohiss setting:", "Character Preference", autohiss_selection, pref.autohiss)
|
||||||
|
if(selection)
|
||||||
|
pref.autohiss = selection
|
||||||
|
else if(!selection)
|
||||||
|
pref.autohiss = "Full"
|
||||||
|
return TOPIC_REFRESH
|
||||||
|
// CHOMPStation Add End
|
||||||
else
|
else
|
||||||
return
|
return
|
||||||
|
|
||||||
|
// CHOMPStation Add Start: Doing this here bc AUTOHISS_FULL is more readable than #
|
||||||
|
#undef AUTOHISS_OFF
|
||||||
|
#undef AUTOHISS_BASIC
|
||||||
|
#undef AUTOHISS_FULL
|
||||||
|
// CHOMPStation Add End
|
||||||
|
|||||||
@@ -647,6 +647,12 @@
|
|||||||
var/datum/language/keylang = GLOB.all_languages[client.prefs.language_custom_keys[key]]
|
var/datum/language/keylang = GLOB.all_languages[client.prefs.language_custom_keys[key]]
|
||||||
if(keylang)
|
if(keylang)
|
||||||
new_character.language_keys[key] = keylang
|
new_character.language_keys[key] = keylang
|
||||||
|
// CHOMPStation Add: Preferred Language Setting;
|
||||||
|
if(client.prefs.preferred_language) // Do we have a preferred language?
|
||||||
|
var/datum/language/def_lang = GLOB.all_languages[client.prefs.preferred_language]
|
||||||
|
if(def_lang)
|
||||||
|
new_character.default_language = def_lang
|
||||||
|
// CHOMPStation Add End
|
||||||
// And uncomment this, too.
|
// And uncomment this, too.
|
||||||
//new_character.dna.UpdateSE()
|
//new_character.dna.UpdateSE()
|
||||||
|
|
||||||
|
|||||||
@@ -172,6 +172,12 @@
|
|||||||
var/datum/language/keylang = GLOB.all_languages[ghost_client.prefs.language_custom_keys[key]]
|
var/datum/language/keylang = GLOB.all_languages[ghost_client.prefs.language_custom_keys[key]]
|
||||||
if(keylang)
|
if(keylang)
|
||||||
new_character.language_keys[key] = keylang
|
new_character.language_keys[key] = keylang
|
||||||
|
// CHOMPStation Add: Preferred Language Setting;
|
||||||
|
if(ghost_client.prefs.preferred_language) // Do we have a preferred language?
|
||||||
|
var/datum/language/def_lang = GLOB.all_languages[ghost_client.prefs.preferred_language]
|
||||||
|
if(def_lang)
|
||||||
|
new_character.default_language = def_lang
|
||||||
|
// CHOMPStation Add End
|
||||||
|
|
||||||
//If desired, apply equipment.
|
//If desired, apply equipment.
|
||||||
if(equip_body)
|
if(equip_body)
|
||||||
|
|||||||
@@ -166,6 +166,12 @@ Please do not abuse this ability.
|
|||||||
var/datum/language/keylang = GLOB.all_languages[prey.prefs.language_custom_keys[key]]
|
var/datum/language/keylang = GLOB.all_languages[prey.prefs.language_custom_keys[key]]
|
||||||
if(keylang)
|
if(keylang)
|
||||||
new_character.language_keys[key] = keylang
|
new_character.language_keys[key] = keylang
|
||||||
|
// CHOMPStation Add: Preferred Language Setting;
|
||||||
|
if(prey.prefs.preferred_language) // Do we have a preferred language?
|
||||||
|
var/datum/language/def_lang = GLOB.all_languages[prey.prefs.preferred_language]
|
||||||
|
if(def_lang)
|
||||||
|
new_character.default_language = def_lang
|
||||||
|
// CHOMPStation Add End
|
||||||
|
|
||||||
new_character.regenerate_icons()
|
new_character.regenerate_icons()
|
||||||
|
|
||||||
@@ -179,4 +185,4 @@ Please do not abuse this ability.
|
|||||||
log_admin("[prey] (as [new_character.real_name] has spawned inside one of [pred]'s bellies.") // Log it. Avoid abuse.
|
log_admin("[prey] (as [new_character.real_name] has spawned inside one of [pred]'s bellies.") // Log it. Avoid abuse.
|
||||||
message_admins("[prey] (as [new_character.real_name] has spawned inside one of [pred]'s bellies.", 1)
|
message_admins("[prey] (as [new_character.real_name] has spawned inside one of [pred]'s bellies.", 1)
|
||||||
|
|
||||||
return new_character // incase its ever needed
|
return new_character // incase its ever needed
|
||||||
|
|||||||
Reference in New Issue
Block a user