mob
verb
WorkingSaveMap()
var/list/l = block(locate(1,1,1),locate(32,32,1))
var/savefile/F = new("test.sav")
F << l
BrokenSaveMap()
var/list/l = block(locate(1,1,1),locate(32,32,1))
for(var/count in 1 to 1024)
new/obj(l[count])
var/savefile/F = new("test.sav")
F << l
//comment the rest out to confirm that it works completely fine
turf
Write(savefile/F)
..()
BrokenSaveMap() crashes out with an infinite recursion. The default action of turf/Write seems to break everything.
When saving a large number of objects, Write() claims absurd values in the CPU profiler. When saving 1024 turfs, the Self CPU read as 21878.064, while the total CPU read 19.342, and real time was 19.343. Yet the function that called the Write() claims only 0.007 self CPU and 0.125 total CPU.
Code Snippet (if applicable) to Reproduce Problem: