mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 05:30:05 +01:00
[MIRROR] Fix random names breaking preferences [MDB IGNORE] (#9370)
* Fix random names breaking preferences (#62668) The randomization (specifically from the random names secret) overrode your preferences, this fixes that. * Fix random names breaking preferences * Should fix the issue with that damn unit test. Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
This commit is contained in:
co-authored by
Mothblocks
Useroth
GoldenAlpharex
parent
d5d8269ba6
commit
6ac6dae856
@@ -129,7 +129,8 @@ GLOBAL_DATUM(current_anonymous_theme, /datum/anonymous_theme)
|
||||
* * target - mob for preferences and gender
|
||||
*/
|
||||
/datum/anonymous_theme/proc/anonymous_name(mob/target)
|
||||
var/species_type = target.client.prefs.read_preference(/datum/preference/choiced/species)
|
||||
var/datum/client_interface/client = GET_CLIENT(target)
|
||||
var/species_type = client.prefs.read_preference(/datum/preference/choiced/species)
|
||||
var/datum/species/species = new species_type
|
||||
return species.random_name(target.gender,1)
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
if (!..(preferences))
|
||||
return FALSE
|
||||
|
||||
return preferences.parent.get_exp_living(pure_numeric = TRUE) >= PLAYTIME_HARDCORE_RANDOM
|
||||
return preferences.parent?.get_exp_living(pure_numeric = TRUE) >= PLAYTIME_HARDCORE_RANDOM // SKYRAT EDIT - ORIGINAL: return preferences.parent.get_exp_living(pure_numeric = TRUE) >= PLAYTIME_HARDCORE_RANDOM
|
||||
|
||||
/datum/preference/choiced/random_name
|
||||
category = PREFERENCE_CATEGORY_NON_CONTEXTUAL
|
||||
|
||||
@@ -412,13 +412,13 @@
|
||||
src.job = job.title
|
||||
|
||||
if(fully_randomize)
|
||||
if(require_human)
|
||||
player_client.prefs.randomise_appearance_prefs(~RANDOMIZE_SPECIES)
|
||||
else
|
||||
player_client.prefs.randomise_appearance_prefs()
|
||||
|
||||
player_client.prefs.apply_prefs_to(src)
|
||||
|
||||
if(require_human)
|
||||
randomize_human_appearance(~RANDOMIZE_SPECIES)
|
||||
else
|
||||
randomize_human_appearance()
|
||||
|
||||
if (require_human)
|
||||
set_species(/datum/species/human)
|
||||
|
||||
|
||||
@@ -249,4 +249,4 @@
|
||||
continue
|
||||
|
||||
if (preference.is_randomizable())
|
||||
preferences.write_preference(preference, preference.create_random_value(preferences))
|
||||
preference.apply_to_human(src, preference.create_random_value(preferences))
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
|
||||
#include "achievements.dm"
|
||||
#include "anchored_mobs.dm"
|
||||
#include "anonymous_themes.dm"
|
||||
#include "bespoke_id.dm"
|
||||
#include "binary_insert.dm"
|
||||
#include "bloody_footprints.dm"
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
/// Ensure that anonymous themes works without changing your preferences
|
||||
/datum/unit_test/anonymous_themes
|
||||
|
||||
/datum/unit_test/anonymous_themes/Run()
|
||||
GLOB.current_anonymous_theme = new /datum/anonymous_theme
|
||||
|
||||
var/mob/living/carbon/human/human = allocate(/mob/living/carbon/human)
|
||||
|
||||
var/datum/client_interface/client = new
|
||||
human.mock_client = client
|
||||
|
||||
client.prefs = new
|
||||
|
||||
client.prefs.write_preference(GLOB.preference_entries[/datum/preference/name/real_name], "Prefs Biddle")
|
||||
|
||||
human.apply_prefs_job(client, SSjob.GetJobType(/datum/job/assistant))
|
||||
|
||||
TEST_ASSERT_NOTEQUAL(human.real_name, "Prefs Biddle", "apply_prefs_job didn't randomize human name with an anonymous theme")
|
||||
TEST_ASSERT_EQUAL(client.prefs.read_preference(/datum/preference/name/real_name), "Prefs Biddle", "Anonymous theme overrode original prefs")
|
||||
|
||||
/datum/unit_test/anonymous_themes/Destroy()
|
||||
QDEL_NULL(GLOB.current_anonymous_theme)
|
||||
return ..()
|
||||
Reference in New Issue
Block a user