load()
if(!name || !path) return src
var/savefile/s = new(path)
s >> src
return src
Problem description:
What exactly happens if I output an object written to a savefile to another object? I believe it calls object.Read() right?
Also, what if the saved object has a different type than the object it's being Read to? Will it just copy over variables that they both have?
At runtime everything's basically the same when it comes down to it,
That simply sets my_obj to a reference to an /obj/my_obj on your loc, if one is there, when you load from a savefile all you're doing is changing the variable to reference a different object, the object the variable was pointing to still exists, it's just not being referenced by that variable anymore.
In the case of turfs and areas, they'll be replaced (as is the case of creating new turfs/areas at the same location as another) if something with the same location is loaded from a savefile.
More than one object can exist on a tile though, so if you save location data and load it, you'll just be loading that object back to where it was, existing objects on that tile won't be effected unless you tell them to be.