When saving a list that has a blank string (""), it's rewritten as null. I can only imagine this has to do with the savefile changes brought on by 515.
515 is capable of loading a savefile that has, for example, list("") in it and loads it correctly. It just writes null in place of "" when writing a list.
I'm going to provide a code snippet. You can demonstrate the problem by performing the "savetest" verb, then the "loadandtest" verb.
You can observe the differences in the write functionality between 514 and 515 by performing the "savetest" verb on 514 and performing the "loadandtest" verb on 515.
Code Snippet (if applicable) to Reproduce Problem:
obj/myObj
var/list/blankStringList = list("")
proc/save()
var/obj/myObj/initialObject = new
var/savefile/S = new("test.sav")
S["Thing"] << initialObject
world<<"BYOND ver [world.byond_version]: saved to test.sav"
proc/load()
var/savefile/S = new("test.sav")
var/obj/myObj/differentObject
S["Thing"] >> differentObject
if(differentObject.blankStringList[1] == "")
world<<"BYOND ver [world.byond_version]: blank string"
else
world<<"BYOND ver [world.byond_version]: null"
mob/verb/savetest()
save()
mob/verb/loadandtest()
load()
Expected Results:
"BYOND ver 515: blank string"
Savefile contents:
Thing = object(".0")
.0
type = /obj/myObj
blankStringList = list("")
Actual Results:
"BYOND ver 515: null"
Savefile contents:
Thing = object(".0")
.0
type = /obj/myObj
blankStringList = list(null)
Did the problem NOT occur in any earlier versions? If so, what was the last version that worked?
Explained above.
Savefile contents: