diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 92bb7607567..2135ca27d95 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -679,12 +679,15 @@ if(!visible) alpha = 0 - if(SStitle.title_screen) - icon = SStitle.title_screen.icon + + if(!use_previous_title) + if(SStitle.icon) + icon = SStitle.icon + else + if(SStitle.previous_icon) + icon = SStitle.previous_icon holder.screen += src - if(use_previous_title && !SSmapping.previous_map_config.defaulted) - holder.screen -= src //Yell at Cyberboss to finish this ..() diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 574dce5bd5f..6e89793aec1 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -8,7 +8,6 @@ var/datum/controller/subsystem/mapping/SSmapping var/list/nuke_tiles = list() var/list/nuke_threats = list() - var/datum/map_config/previous_map_config var/datum/map_config/config var/datum/map_config/next_map_config @@ -23,10 +22,6 @@ var/datum/controller/subsystem/mapping/SSmapping /datum/controller/subsystem/mapping/New() NEW_SS_GLOBAL(SSmapping) - if(!previous_map_config) - previous_map_config = new("data/previous_map.json", delete_after = TRUE) - if(previous_map_config.defaulted) - previous_map_config = null if(!config) #ifdef FORCE_MAP config = new(FORCE_MAP) @@ -97,7 +92,6 @@ var/datum/controller/subsystem/mapping/SSmapping shuttle_templates = SSmapping.shuttle_templates shelter_templates = SSmapping.shelter_templates - previous_map_config = SSmapping.previous_map_config config = SSmapping.config next_map_config = SSmapping.next_map_config @@ -194,10 +188,6 @@ var/datum/controller/subsystem/mapping/SSmapping next_map_config = VM return TRUE -/datum/controller/subsystem/mapping/Shutdown() - if(config) - config.MakePreviousMap() - /datum/controller/subsystem/mapping/proc/preloadTemplates(path = "_maps/templates/") //see master controller setup var/list/filelist = flist(path) for(var/map in filelist) diff --git a/code/controllers/subsystem/title_screen.dm b/code/controllers/subsystem/title_screen.dm index 1b4bd160539..6dd4c145d72 100644 --- a/code/controllers/subsystem/title_screen.dm +++ b/code/controllers/subsystem/title_screen.dm @@ -2,38 +2,53 @@ var/datum/controller/subsystem/title/SStitle /datum/controller/subsystem/title name = "Title Screen" - init_order = 15 - flags = SS_NO_FIRE - var/turf/closed/indestructible/splashscreen/title_screen + flags = SS_NO_FIRE|SS_NO_INIT + + var/file_path + var/icon/icon + var/icon/previous_icon + var/turf/closed/indestructible/splashscreen/splash_turf /datum/controller/subsystem/title/New() NEW_SS_GLOBAL(SStitle) -/datum/controller/subsystem/title/Initialize() + if(file_path && icon) + return + + if(fexists("data/previous_title.dat")) + previous_icon = new("data/previous_title.dat") + fdel("data/previous_title.dat") //linger not + var/list/provisional_title_screens = flist("config/title_screens/images/") var/list/title_screens = list() - var/use_rare_screens = FALSE + var/use_rare_screens = prob(1) - if(title_screen) - if(prob(1)) - use_rare_screens = TRUE + for(var/S in provisional_title_screens) + var/list/L = splittext(S,"+") + if((L.len == 1 && L[1] != "blank.png")|| (L.len > 1 && ((use_rare_screens && lowertext(L[1]) == "rare") || (lowertext(L[1]) == lowertext(SSmapping.config.map_name))))) + title_screens += S - for(var/S in provisional_title_screens) - var/list/L = splittext(S,"+") - if((L.len == 1 && L[1] != "blank.png")|| (L.len > 1 && ((use_rare_screens && lowertext(L[1]) == "rare") || (lowertext(L[1]) == lowertext(SSmapping.config.map_name))))) - title_screens += S + if(!isemptylist(title_screens)) + if(length(title_screens) > 1) + for(var/S in title_screens) + var/list/L = splittext(S,".") + if(L.len != 2 || L[1] != "default") + continue + title_screens -= S + break - if(!isemptylist(title_screens)) - if(length(title_screens) > 1) - for(var/S in title_screens) - var/list/L = splittext(S,".") - if(L.len != 2 || L[1] != "default") - continue - title_screens -= S - break + file_path = "config/title_screens/images/[pick(title_screens)]" + icon = new(file_path) - var/path_string = "config/title_screens/images/[pick(title_screens)]" - var/icon/screen_to_use = new(path_string) + if(splash_turf) + splash_turf.icon = icon - title_screen.icon = screen_to_use - ..() \ No newline at end of file +/datum/controller/subsystem/title/Shutdown() + if(file_path) + fcopy(file_path, "data/previous_title.dat") + +/datum/controller/subsystem/title/Recover() + icon = SStitle.icon + splash_turf = SStitle.splash_turf + file_path = SStitle.file_path + previous_icon = SStitle.previous_icon \ No newline at end of file diff --git a/code/datums/map_config.dm b/code/datums/map_config.dm index 1d4490b39c4..126564c8c97 100644 --- a/code/datums/map_config.dm +++ b/code/datums/map_config.dm @@ -141,6 +141,3 @@ /datum/map_config/proc/MakeNextMap() return config_filename == "data/next_map.json" || fcopy(config_filename, "data/next_map.json") - -/datum/map_config/proc/MakePreviousMap() - return config_filename == "data/previous_map.json" || fcopy(config_filename, "data/previous_map.json") \ No newline at end of file diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm index 3f097953e95..a59635f1f52 100644 --- a/code/game/turfs/closed.dm +++ b/code/game/turfs/closed.dm @@ -34,7 +34,9 @@ layer = FLY_LAYER /turf/closed/indestructible/splashscreen/New() - SStitle.title_screen = src + SStitle.splash_turf = src + if(SStitle.icon) + icon = SStitle.icon ..() /turf/closed/indestructible/riveted