mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
Max cap on map persistence (#26402)
* Max cap on map persistence * The dangers of copypasting
This commit is contained in:
@@ -53,7 +53,7 @@ var/datum/subsystem/persistence_map/SSpersistence_map
|
|||||||
T.writeSavefile()
|
T.writeSavefile()
|
||||||
else
|
else
|
||||||
T.deleteSavefile()
|
T.deleteSavefile()
|
||||||
log_debug("[time_stamp()] - Map persistence finished in [stop_watch(watch)]s.")
|
log_debug("Map persistence finished in [stop_watch(watch)]s.")
|
||||||
finished = TRUE
|
finished = TRUE
|
||||||
|
|
||||||
/datum/subsystem/persistence_map/proc/qdelAllFilth(var/whodunnit)
|
/datum/subsystem/persistence_map/proc/qdelAllFilth(var/whodunnit)
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
var/filename
|
var/filename
|
||||||
var/list/tracking = list()
|
var/list/tracking = list()
|
||||||
var/list/tracked_types = list()
|
var/list/tracked_types = list()
|
||||||
|
var/arbitrary_max_objects = 500
|
||||||
var/max_per_turf = 5
|
var/max_per_turf = 5
|
||||||
var/max_age = 5
|
var/max_age = 5
|
||||||
var/filth = FALSE
|
var/filth = FALSE
|
||||||
@@ -30,8 +31,12 @@
|
|||||||
fdel(writing)
|
fdel(writing)
|
||||||
|
|
||||||
//Note: We save all items. Even if they're in space etc. Next round will be in charge of seeing if they're valid. I don't expect any significant performance loss from this, but if so, this can be changed easily.
|
//Note: We save all items. Even if they're in space etc. Next round will be in charge of seeing if they're valid. I don't expect any significant performance loss from this, but if so, this can be changed easily.
|
||||||
|
//Note 2: The cap was added because reading 30k of objects crashes the server
|
||||||
/datum/map_persistence_type/proc/writeSavefile()
|
/datum/map_persistence_type/proc/writeSavefile()
|
||||||
var/list/finished_list = list()
|
var/list/finished_list = list()
|
||||||
|
if(tracking.len > arbitrary_max_objects)
|
||||||
|
log_debug("Map persistence \"[name]\" hit the cap. [tracking.len - arbitrary_max_objects] objects did not make it.")
|
||||||
|
tracking.Cut(arbitrary_max_objects)
|
||||||
for(var/atom/A in tracking)
|
for(var/atom/A in tracking)
|
||||||
if(A.getPersistenceAge() >= max_age) //This used to be in canTrack() but I moved it here in case an admin varedits an atom's age or something.
|
if(A.getPersistenceAge() >= max_age) //This used to be in canTrack() but I moved it here in case an admin varedits an atom's age or something.
|
||||||
continue
|
continue
|
||||||
|
|||||||
Reference in New Issue
Block a user