This commit is contained in:
silicons
2020-12-28 12:15:55 -08:00
parent 51d1e3a87f
commit 0c87c3b0e0
5 changed files with 21 additions and 9 deletions
@@ -6,6 +6,11 @@ SUBSYSTEM_DEF(persistence)
init_order = INIT_ORDER_PERSISTENCE
flags = SS_NO_FIRE
/// Marks if the station got horribly destroyed
var/station_was_destroyed = FALSE
/// Marks if persistence save should be disabled
var/station_persistence_save_disabled = FALSE
var/list/obj/structure/chisel_message/chisel_messages = list()
var/list/saved_messages = list()
var/list/spawned_objects = list()
@@ -37,45 +42,47 @@ SUBSYSTEM_DEF(persistence)
/datum/controller/subsystem/persistence/proc/CollectData()
SaveServerPersistence()
if(station_persistence_save_disabled)
return
SaveGamePersistence()
var/map_persistence_path = get_map_persistence_path()
if(map_persistence_path)
SaveMapPersistence()
/**
* Loads persistent data relevant to the server: Configurations, past gamemodes, votes, etc
* Loads persistent data relevant to the server: Configurations, past gamemodes, votes, antag rep, etc
*/
/datum/controller/subsystem/persistence/proc/LoadServerPersistence()
for(var/client/C in GLOB.clients)
LoadSavedVote(C.ckey)
if(CONFIG_GET(flag/use_antag_rep))
LoadAntagReputation()
LoadRandomizedRecipes()
/**
* Saves persistent data relevant to the server: Configurations, past gamemodes, votes, etc
* Saves persistent data relevant to the server: Configurations, past gamemodes, votes, antag rep, etc
*/
/datum/controller/subsystem/persistence/proc/SaveServerPersistence()
if(CONFIG_GET(flag/use_antag_rep))
CollectAntagReputation()
SaveRandomizedRecipes()
/**
* Loads persistent data relevant to the game in general: Trophies, antag reputation, etc
* Loads persistent data relevant to the game in general: Photos, etc
*
* Legacy map persistence systems also use this.
*/
/datum/controller/subsystem/persistence/proc/LoadGamePersistence()
LoadChiselMessages()
LoadPhotoPersistence()
LoadRandomizedRecipes()
LoadPaintings()
/**
* Saves persistent data relevant to the game in general: Trophies, antag reputation, etc
* Saves persistent data relevant to the game in general: Photos, etc
*
* Legacy map persistence systems also use this.
*/
/datum/controller/subsystem/persistence/proc/SaveGamePersistence()
SaveRandomizedRecipes()
CollectChiselMessages()
SavePhotoPersistence() //THIS IS PERSISTENCE, NOT THE LOGGING PORTION.
SavePaintings()
@@ -86,7 +86,7 @@
/datum/controller/subsystem/persistence/proc/SaveMapDebris()
if(fexists("[get_map_persistence_path()]/debris.json"))
fdel("[get_map_persistence_path()]/debris.json")
if(CONFIG_GET(flag/persistent_debris_wipe_on_nuke) && SSticker?.mode?.station_was_nuked)
if(CONFIG_GET(flag/persistent_debris_wipe_on_nuke) && station_was_destroyed)
return // local janitor cheers on nukeop team to save some work
var/list/data = list()
var/list/z_lookup = SSmapping.z_to_station_z_index