Quirk preferences fixes (#44823)

Removes the useless split by value lists. Updates savefile after
removing invalid quirks. I'd prefer usual savefile validation but quirk
lists are built pretty late. Other solution would be hooking all prefs
to after quirk SS initializes, this seems less intrusive if ugly but
I'm open to alternative suggestions.
This commit is contained in:
AnturK
2019-06-30 05:07:21 +02:00
committed by Tad Hardesty
parent 610f0cf2b6
commit d8b023774e
3 changed files with 26 additions and 47 deletions
@@ -30,9 +30,14 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
quirk_points[initial(T.name)] = initial(T.value)
/datum/controller/subsystem/processing/quirks/proc/AssignQuirks(mob/living/user, client/cli, spawn_effects)
var/badquirk = FALSE
for(var/V in cli.prefs.all_quirks)
var/datum/quirk/Q = quirks[V]
if(Q)
user.add_quirk(Q, spawn_effects)
else
stack_trace("Invalid quirk \"[V]\" in client [cli.ckey] preferences")
cli.prefs.all_quirks -= V
badquirk = TRUE
if(badquirk)
cli.prefs.save_character()