adds implants and hair gradients to serialisation (#18934)

removes organ DNA from serialisation
This commit is contained in:
S34N
2022-09-03 21:14:44 +01:00
committed by GitHub
parent 281766db83
commit 021fd9a416
4 changed files with 24 additions and 15 deletions
@@ -1821,9 +1821,11 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
var/list/limbs_list = list()
var/list/organs_list = list()
var/list/equip_list = list()
var/list/implant_list = list()
data["limbs"] = limbs_list
data["iorgans"] = organs_list
data["equip"] = equip_list
data["implant_list"] = implant_list
data["dna"] = dna.serialize()
data["age"] = age
@@ -1854,12 +1856,16 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
if(thing != null)
equip_list[i] = thing.serialize()
for(var/obj/item/implant/implant in src)
implant_list[implant] = implant.serialize()
return data
/mob/living/carbon/human/deserialize(list/data)
var/list/limbs_list = data["limbs"]
var/list/organs_list = data["iorgans"]
var/list/equip_list = data["equip"]
var/list/implant_list = data["implant_list"]
var/turf/T = get_turf(src)
if(!islist(data["limbs"]))
throw EXCEPTION("Expected a limbs list, but found none")
@@ -1891,6 +1897,13 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
// As above, "New" code handles insertion, DNA sync
list_to_object(organs_list[organ], src)
for(var/thing in implant_list)
var/implant_data = implant_list[thing]
var/path = text2path(implant_data["type"])
var/obj/item/implant/implant = new path(T)
if(!implant.implant(src, src))
qdel(implant)
UpdateAppearance()
// De-serialize equipment