Persistent data saves at round end instead of server restart (#21199)

* sm counter go up

* AA review

* aa review 2
This commit is contained in:
Contrabang
2023-06-17 05:55:24 -04:00
committed by GitHub
parent 33a97a4c95
commit cd3c1c4919
2 changed files with 13 additions and 0 deletions
+3
View File
@@ -596,6 +596,9 @@ SUBSYSTEM_DEF(ticker)
//Ask the event manager to print round end information
SSevents.RoundEnd()
// Save the data before end of the round griefing
SSpersistent_data.save()
//make big obvious note in game logs that round ended
log_game("///////////////////////////////////////////////////////")
log_game("///////////////////// ROUND ENDED /////////////////////")
@@ -13,6 +13,8 @@ SUBSYSTEM_DEF(persistent_data)
flags = SS_NO_FIRE
/// List of atoms registered into the subsystem for persistent data storage. Can be anything at all
var/list/registered_atoms = list()
/// Set to true after a the end of the round to prevent griefing being saved
var/data_saved = FALSE
/datum/controller/subsystem/persistent_data/Initialize()
// Load all the data of registered atoms
@@ -20,6 +22,14 @@ SUBSYSTEM_DEF(persistent_data)
A.persistent_load()
/datum/controller/subsystem/persistent_data/Shutdown()
save()
/datum/controller/subsystem/persistent_data/proc/save()
// Stops data from being saved twice
if(data_saved)
return
data_saved = TRUE
// Save all the data of registered atoms
for(var/atom/A in registered_atoms)
A.persistent_save()