diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index aee974ce57b..42a021881fa 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -136,7 +136,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(!loaded_preferences_successfully) save_preferences() - save_character() //let's save this new random character so it doesn't keep generating new ones. + save_character(TRUE) //let's save this new random character so it doesn't keep generating new ones. // BUBBER EDIT /datum/preferences/ui_interact(mob/user, datum/tgui/ui) // There used to be code here that readded the preview view if you "rejoined" diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 65aa5642b8b..07f38cb7668 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -25,7 +25,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car */ /datum/preferences/proc/save_data_needs_update(list/save_data) if(!save_data) // empty list, either savefile isnt loaded or its a new char - return -1 + return -3 // BUBBER EDIT if(save_data["version"] < SAVEFILE_VERSION_MIN) return -2 if(save_data["version"] < SAVEFILE_VERSION_MAX) @@ -328,7 +328,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car all_quirks = SSquirks.filter_invalid_quirks(SANITIZE_LIST(all_quirks), augments)// SKYRAT EDIT - AUGMENTS+ validate_quirks() - return TRUE + return needs_update != -3 // BUBBER EDIT /datum/preferences/proc/save_character(update) // Skyrat edit - Choose when to update (This is stupid) SHOULD_NOT_SLEEP(TRUE) @@ -343,7 +343,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if (preference.savefile_identifier != PREFERENCE_CHARACTER) continue - if (!(preference.type in recently_updated_keys)) + if (!update && !(preference.type in recently_updated_keys)) // BUBBER EDIT continue recently_updated_keys -= preference.type @@ -376,7 +376,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if (!load_character(new_slot)) tainted_character_profiles = TRUE randomise_appearance_prefs() - save_character() + save_character(TRUE) // BUBBER EDIT for (var/datum/preference_middleware/preference_middleware as anything in middleware) preference_middleware.on_new_character(usr) diff --git a/modular_skyrat/master_files/code/modules/client/preferences_savefile.dm b/modular_skyrat/master_files/code/modules/client/preferences_savefile.dm index 4b5402ea9ab..4b4aafb5512 100644 --- a/modular_skyrat/master_files/code/modules/client/preferences_savefile.dm +++ b/modular_skyrat/master_files/code/modules/client/preferences_savefile.dm @@ -25,7 +25,7 @@ /datum/preferences/proc/savefile_needs_update_skyrat(list/save_data) var/savefile_version = save_data["modular_version"] - if(save_data.len && savefile_version < MODULAR_SAVEFILE_VERSION_MAX) + if(savefile_version && savefile_version < MODULAR_SAVEFILE_VERSION_MAX) // BUBBER EDIT return savefile_version return MODULAR_SAVEFILE_UP_TO_DATE @@ -79,7 +79,7 @@ languages = save_languages tgui_prefs_migration = save_data["tgui_prefs_migration"] - if(!tgui_prefs_migration && save_data.len) // If save_data is empty, this is definitely a new character + if(!tgui_prefs_migration && save_data["modular_version"] && save_data["modular_version"] < MODULAR_SAVEFILE_VERSION_MAX) // BUBBER EDIT - if we're missing version from migration, then the char is new. Won't be able to migrate either. to_chat(parent, examine_block(span_redtext("PREFERENCE MIGRATION BEGINNING.\ \nDO NOT INTERACT WITH YOUR PREFERENCES UNTIL THIS PROCESS HAS BEEN COMPLETED.\ \nDO NOT DISCONNECT UNTIL THIS PROCESS HAS BEEN COMPLETED.\ @@ -284,8 +284,9 @@ save_data["alt_job_titles"] = alt_job_titles save_data["languages"] = languages save_data["food_preferences"] = food_preferences - if(updated) - save_data["modular_version"] = MODULAR_SAVEFILE_VERSION_MAX + //if(updated) // BUBBER EDIT - This is bullshit, results in newly created characters getting invalid data. Load character should forcefully migrate it, so we can safely assume its up to date + // save_data["modular_version"] = MODULAR_SAVEFILE_VERSION_MAX + save_data["modular_version"] = MODULAR_SAVEFILE_VERSION_MAX /datum/preferences/proc/update_body_parts(datum/preference/preference) diff --git a/modular_zubbers/code/modules/client/verbs/character_directory.dm b/modular_zubbers/code/modules/client/verbs/character_directory.dm index 9e90850dae1..bbae72f6561 100644 --- a/modular_zubbers/code/modules/client/verbs/character_directory.dm +++ b/modular_zubbers/code/modules/client/verbs/character_directory.dm @@ -84,6 +84,7 @@ GLOBAL_DATUM(character_directory, /datum/character_directory) /// Saves us on copypaste code /datum/preference/choiced/directory_character_prefs savefile_key = "char_directory_char_prefs" // This is so unit checks don't scream + abstract_type = /datum/preference/choiced/directory_character_prefs /datum/preference/choiced/directory_character_prefs/init_possible_values() return list("Yes", "No", "No ERP", "Check OOC", "Unset", "Maybe")