From 15ac3937739fcdd09c160c9929d6c0c62ea05d2f Mon Sep 17 00:00:00 2001 From: AnturK Date: Sun, 15 Apr 2018 15:40:55 +0200 Subject: [PATCH] Filters out duplicate trophies. --- code/controllers/subsystem/persistence.dm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm index 1b17414cc3..0b3fb74cad 100644 --- a/code/controllers/subsystem/persistence.dm +++ b/code/controllers/subsystem/persistence.dm @@ -251,10 +251,21 @@ SUBSYSTEM_DEF(persistence) /datum/controller/subsystem/persistence/proc/CollectTrophies() var/json_file = file("data/npc_saves/TrophyItems.json") var/list/file_data = list() - file_data["data"] = saved_trophies + file_data["data"] = remove_duplicate_trophies(saved_trophies) fdel(json_file) WRITE_FILE(json_file, json_encode(file_data)) +/datum/controller/subsystem/persistence/proc/remove_duplicate_trophies(list/trophies) + var/list/ukeys = list() + . = list() + for(var/trophy in trophies) + var/tkey = "[trophy["path"]]-[trophy["message"]]" + if(ukeys[tkey]) + continue + else + . += trophy + ukeys[tkey] = TRUE + /datum/controller/subsystem/persistence/proc/SaveTrophy(obj/structure/displaycase/trophy/T) if(!T.added_roundstart && T.showpiece) var/list/data = list()