From 8dead1da6a8d8581882ff3137623f6b3b50dc229 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Sun, 21 Jan 2018 13:32:12 -0500 Subject: [PATCH 1/2] Config dir again except this time it works --- code/_onclick/hud/credits.dm | 2 +- .../configuration/configuration.dm | 23 ++++++++++--------- code/controllers/master.dm | 3 ++- code/controllers/subsystem/job.dm | 2 +- code/controllers/subsystem/mapping.dm | 6 ++--- code/controllers/subsystem/ticker.dm | 4 ++-- code/controllers/subsystem/title.dm | 6 ++++- code/datums/ai_laws.dm | 2 +- code/game/objects/items/AI_modules.dm | 2 +- code/game/world.dm | 4 ++-- code/modules/admin/admin_ranks.dm | 4 ++-- code/modules/admin/verbs/deadsay.dm | 2 +- code/modules/admin/whitelist.dm | 2 +- code/modules/awaymissions/zlevel.dm | 2 +- 14 files changed, 35 insertions(+), 29 deletions(-) diff --git a/code/_onclick/hud/credits.dm b/code/_onclick/hud/credits.dm index 8f20f218ac..702aa1cdcb 100644 --- a/code/_onclick/hud/credits.dm +++ b/code/_onclick/hud/credits.dm @@ -2,7 +2,7 @@ #define CREDIT_SPAWN_SPEED 10 #define CREDIT_ANIMATE_HEIGHT (14 * world.icon_size) #define CREDIT_EASE_DURATION 22 -#define CREDITS_PATH "[GLOB.config_dir]contributors.dmi" +#define CREDITS_PATH "[global.config.directory]/contributors.dmi" /client/proc/RollCredits() set waitfor = FALSE diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index 6e2a050fd0..c1fc1f076e 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -1,9 +1,8 @@ -GLOBAL_VAR_INIT(config_dir, "config/") -GLOBAL_PROTECT(config_dir) - /datum/controller/configuration name = "Configuration" + var/directory = "config" + var/hiding_entries_by_type = TRUE //Set for readability, admins can set this to FALSE if they want to debug it var/list/entries var/list/entries_by_type @@ -20,11 +19,12 @@ GLOBAL_PROTECT(config_dir) var/motd -/datum/controller/configuration/New() - config = src +/datum/controller/configuration/proc/Load() + if(entries) + CRASH("[THIS_PROC_TYPE_WEIRD] called more than once!") InitEntries() LoadModes() - if(fexists("config/config.txt") && LoadEntries("config.txt") <= 1) + if(fexists("[directory]/config.txt") && LoadEntries("config.txt") <= 1) log_config("No $include directives found in config.txt! Loading legacy game_options/dbconfig/comms files...") LoadEntries("game_options.txt") LoadEntries("dbconfig.txt") @@ -74,7 +74,7 @@ GLOBAL_PROTECT(config_dir) stack = stack + filename_to_test log_config("Loading config file [filename]...") - var/list/lines = world.file2list("[GLOB.config_dir][filename]") + var/list/lines = world.file2list("[directory]/[filename]") var/list/_entries = entries for(var/L in lines) if(!L) @@ -131,10 +131,11 @@ GLOBAL_PROTECT(config_dir) ++. /datum/controller/configuration/can_vv_get(var_name) - return (var_name != "entries_by_type" || !hiding_entries_by_type) && ..() + return (var_name != NAMEOF(src, entries_by_type) || !hiding_entries_by_type) && ..() /datum/controller/configuration/vv_edit_var(var_name, var_value) - return !(var_name in list("entries_by_type", "entries")) && ..() + var/list/banned_edits = list(NAMEOF(src, entries_by_type), NAMEOF(src, entries), NAMEOF(src, directory)) + return !(var_name in banned_edits) && ..() /datum/controller/configuration/stat_entry() if(!statclick) @@ -196,14 +197,14 @@ GLOBAL_PROTECT(config_dir) votable_modes += "secret" /datum/controller/configuration/proc/LoadMOTD() - motd = file2text("[GLOB.config_dir]/motd.txt") + motd = file2text("[directory]/motd.txt") var/tm_info = GLOB.revdata.GetTestMergeInfo() if(motd || tm_info) motd = motd ? "[motd]
[tm_info]" : tm_info /datum/controller/configuration/proc/loadmaplist(filename) log_config("Loading config file [filename]...") - filename = "[GLOB.config_dir][filename]" + filename = "[directory]/[filename]" var/list/Lines = world.file2list(filename) var/datum/map_config/currentmap = null diff --git a/code/controllers/master.dm b/code/controllers/master.dm index 92a94bf428..57c2323c42 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -61,8 +61,9 @@ GLOBAL_REAL(Master, /datum/controller/master) = new var/static/current_ticklimit = TICK_LIMIT_RUNNING /datum/controller/master/New() + config = new // Highlander-style: there can only be one! Kill off the old and replace it with the new. - + if(!random_seed) random_seed = rand(1, 1e9) rand_seed(random_seed) diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 87925f80e1..d87496d5ac 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -450,7 +450,7 @@ SUBSYSTEM_DEF(job) /datum/controller/subsystem/job/proc/LoadJobs() - var/jobstext = file2text("config/jobs.txt") + var/jobstext = file2text("[global.config.directory]/jobs.txt") for(var/datum/job/J in occupations) var/regex/jobs = new("[J.title]=(-1|\\d+),(-1|\\d+)") jobs.Find(jobstext) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 90f3380b81..6018445189 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -229,8 +229,8 @@ GLOBAL_LIST_EMPTY(the_station_areas) /datum/controller/subsystem/mapping/proc/preloadRuinTemplates() // Still supporting bans by filename - var/list/banned = generateMapList("config/lavaruinblacklist.txt") - banned += generateMapList("config/spaceruinblacklist.txt") + var/list/banned = generateMapList("[global.config.directory]/lavaruinblacklist.txt") + banned += generateMapList("[global.config.directory]/spaceruinblacklist.txt") for(var/item in sortList(subtypesof(/datum/map_template/ruin), /proc/cmp_ruincost_priority)) var/datum/map_template/ruin/ruin_type = item @@ -251,7 +251,7 @@ GLOBAL_LIST_EMPTY(the_station_areas) space_ruins_templates[R.name] = R /datum/controller/subsystem/mapping/proc/preloadShuttleTemplates() - var/list/unbuyable = generateMapList("config/unbuyableshuttles.txt") + var/list/unbuyable = generateMapList("[global.config.directory]/unbuyableshuttles.txt") for(var/item in subtypesof(/datum/map_template/shuttle)) var/datum/map_template/shuttle/shuttle_type = item diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 1d4316f2b2..4894edb6dd 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -89,7 +89,7 @@ SUBSYSTEM_DEF(ticker) "aiff" = TRUE ) - var/list/provisional_title_music = flist("config/title_music/sounds/") + var/list/provisional_title_music = flist("[global.config.directory]/title_music/sounds/") var/list/music = list() var/use_rare_music = prob(1) @@ -125,7 +125,7 @@ SUBSYSTEM_DEF(ticker) music = world.file2list(ROUND_START_MUSIC_LIST, "\n") login_music = pick(music) else - login_music = "config/title_music/sounds/[pick(music)]" + login_music = "[global.config.directory]/title_music/sounds/[pick(music)]" crewobjlist = typesof(/datum/objective/crew) miscreantobjlist = (typesof(/datum/objective/miscreant) - /datum/objective/miscreant) diff --git a/code/controllers/subsystem/title.dm b/code/controllers/subsystem/title.dm index 4cdde58d33..c8dfdbc898 100644 --- a/code/controllers/subsystem/title.dm +++ b/code/controllers/subsystem/title.dm @@ -17,7 +17,7 @@ SUBSYSTEM_DEF(title) previous_icon = new(previous_icon) fdel("data/previous_title.dat") - var/list/provisional_title_screens = flist("config/title_screens/images/") + var/list/provisional_title_screens = flist("[global.config.directory]/title_screens/images/") var/list/title_screens = list() var/use_rare_screens = prob(1) @@ -34,7 +34,11 @@ SUBSYSTEM_DEF(title) break if(length(title_screens)) +<<<<<<< HEAD file_path = "config/title_screens/images/[pick(title_screens)]" +======= + file_path = "[global.config.directory]/title_screens/images/[pick(title_screens)]" +>>>>>>> 015258d... Config dir again except this time it works (#34606) if(!file_path) file_path = "icons/default_title.dmi" diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index c12a08a792..e45ff4535b 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -190,7 +190,7 @@ /datum/ai_laws/custom/New() //This reads silicon_laws.txt and allows server hosts to set custom AI starting laws. ..() - for(var/line in world.file2list("config/silicon_laws.txt")) + for(var/line in world.file2list("[global.config.directory]/silicon_laws.txt")) if(!line) continue if(findtextEx(line,"#",1,2)) diff --git a/code/game/objects/items/AI_modules.dm b/code/game/objects/items/AI_modules.dm index 512d1fe9b2..cdf9d5e333 100644 --- a/code/game/objects/items/AI_modules.dm +++ b/code/game/objects/items/AI_modules.dm @@ -400,7 +400,7 @@ AI MODULES /obj/item/aiModule/core/full/custom/Initialize() . = ..() - for(var/line in world.file2list("config/silicon_laws.txt")) + for(var/line in world.file2list("[global.config.directory]/silicon_laws.txt")) if(!line) continue if(findtextEx(line,"#",1,2)) diff --git a/code/game/world.dm b/code/game/world.dm index 2da8c849de..8eca2affc2 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -17,7 +17,7 @@ GLOBAL_PROTECT(security_mode) make_datum_references_lists() //initialises global lists for referencing frequently used datums (so that we only ever do it once) - new /datum/controller/configuration + config.Load() //SetupLogs depends on the RoundID, so lets check //DB schema and set RoundID if we can @@ -49,7 +49,7 @@ GLOBAL_PROTECT(security_mode) /world/proc/SetupExternalRSC() #if (PRELOAD_RSC == 0) - GLOB.external_rsc_urls = world.file2list("config/external_rsc_urls.txt","\n") + GLOB.external_rsc_urls = world.file2list("[global.config.directory]/external_rsc_urls.txt","\n") var/i=1 while(i<=GLOB.external_rsc_urls.len) if(GLOB.external_rsc_urls[i]) diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm index 7332eab8d0..6824171f80 100644 --- a/code/modules/admin/admin_ranks.dm +++ b/code/modules/admin/admin_ranks.dm @@ -122,7 +122,7 @@ GLOBAL_PROTECT(admin_ranks) if(CONFIG_GET(flag/admin_legacy_system)) var/previous_rights = 0 //load text from file and process each line separately - for(var/line in world.file2list("config/admin_ranks.txt")) + for(var/line in world.file2list("[global.config.directory]/admin_ranks.txt")) if(!line) continue if(findtextEx(line,"#",1,2)) @@ -195,7 +195,7 @@ GLOBAL_PROTECT(admin_ranks) if(CONFIG_GET(flag/admin_legacy_system)) //load text from file - var/list/lines = world.file2list("config/admins.txt") + var/list/lines = world.file2list("[global.config.directory]/admins.txt") //process each line separately for(var/line in lines) diff --git a/code/modules/admin/verbs/deadsay.dm b/code/modules/admin/verbs/deadsay.dm index 491d058fea..8d24e92e81 100644 --- a/code/modules/admin/verbs/deadsay.dm +++ b/code/modules/admin/verbs/deadsay.dm @@ -19,7 +19,7 @@ if (!msg) return - var/static/nicknames = world.file2list("config/admin_nicknames.txt") + var/static/nicknames = world.file2list("[global.config.directory]/admin_nicknames.txt") var/rendered = "DEAD: ADMIN([src.holder.fakekey ? pick(nicknames) : src.key]) says, \"[msg]\"" diff --git a/code/modules/admin/whitelist.dm b/code/modules/admin/whitelist.dm index 082936e0e8..55206f6deb 100644 --- a/code/modules/admin/whitelist.dm +++ b/code/modules/admin/whitelist.dm @@ -1,4 +1,4 @@ -#define WHITELISTFILE "config/whitelist.txt" +#define WHITELISTFILE "[global.config.directory]/whitelist.txt" GLOBAL_LIST(whitelist) GLOBAL_PROTECT(whitelist) diff --git a/code/modules/awaymissions/zlevel.dm b/code/modules/awaymissions/zlevel.dm index 84e1977179..0f992d55d9 100644 --- a/code/modules/awaymissions/zlevel.dm +++ b/code/modules/awaymissions/zlevel.dm @@ -1,5 +1,5 @@ // How much "space" we give the edge of the map -GLOBAL_LIST_INIT(potentialRandomZlevels, generateMapList(filename = "config/awaymissionconfig.txt")) +GLOBAL_LIST_INIT(potentialRandomZlevels, generateMapList(filename = "[global.config.directory]/awaymissionconfig.txt")) /proc/createRandomZlevel() if(GLOB.awaydestinations.len) //crude, but it saves another var! From 574bc8fe258f9a82eb8f997379c23113505cbad0 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 21 Jan 2018 14:20:22 -0600 Subject: [PATCH 2/2] Update title.dm --- code/controllers/subsystem/title.dm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/controllers/subsystem/title.dm b/code/controllers/subsystem/title.dm index c8dfdbc898..6168ca0905 100644 --- a/code/controllers/subsystem/title.dm +++ b/code/controllers/subsystem/title.dm @@ -34,11 +34,7 @@ SUBSYSTEM_DEF(title) break if(length(title_screens)) -<<<<<<< HEAD - file_path = "config/title_screens/images/[pick(title_screens)]" -======= file_path = "[global.config.directory]/title_screens/images/[pick(title_screens)]" ->>>>>>> 015258d... Config dir again except this time it works (#34606) if(!file_path) file_path = "icons/default_title.dmi"