ID:146205
 
Code:
mob
superchar
Greater_Admin
verb/Save()
set category = "Admin"
world << "The server is saving."
for(var/mob/M in world)
M.loc = locate(93,89,1)
sleep(5)
for(var/obj/O in world)
O.Setlocation()
for(var/area/Buildingareas/X in world)
X.Saveworld()
world << "Finished saving."
verb/Initialize()
set category = "Admin"
switch(alert("Initialize?","Initialize","Yes","No"))
if("Yes")
for(var/area/Buildingareas/theatom in world)
for(var/obj/O in theatom)
O.loc = locate(O.lx,O.ly,O.lz)
usr << "Locating [O]"

mob
superchar
Greater_Admin
host
Login()
day = dayx
for(var/area/Buildingareas/X in world)
X.Loadworld(X)
..()

obj
proc/Setlocation()
lx = x
ly = y
lz = z

area
Buildingareas
Saveworld()
var/savefile/areasave = new(name)
Write(areasave)
Loadworld(theatom)
var/savefile/areaload = new(name)
Read(areaload)
for(var/mob/themob in src)
del themob

Problem description:
When saving and loading, the objects in the area are doubled.
Example: There is one object called 'Cheater' in /area/Buildingareas/Area1.
I use the Save verb. I reboot the world. (I use Initialize, but that doesn't matter.)
When I go check Area1, instead of 1, there are two Cheaters.
Never mind. It seems that the player savefile stores the area, as var/area/home is that area.