diff options
author | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-05-26 15:30:07 +0000 |
---|---|---|
committer | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-05-26 15:30:07 +0000 |
commit | a844f8e10213c19b6e48d6ff98e97bc9f026a42a (patch) | |
tree | 9cada2344ca78a2c2de555dc8b7fa943ee7382fe /crawl-ref/source/newgame.cc | |
parent | 1f1939b11a6ed95f769644c21e53589a1e7abeb9 (diff) | |
download | crawl-ref-a844f8e10213c19b6e48d6ff98e97bc9f026a42a.tar.gz crawl-ref-a844f8e10213c19b6e48d6ff98e97bc9f026a42a.zip |
Better support for settings files that include other files:
- Files can be included as "include foo" in .crawlrc instead of using
the Lua call: : crawl.read_options('foo'). include foo and the Lua
crawl.read_options('foo') are not equivalent - Lua only runs after the
start of a new game, which is too late for some option settings.
- Crawl searches for included files in this sequence:
- Absolute paths: use the path directly (but not if DATA_DIR_PATH is
set, since we don't want Crawl to read arbitrary files on
multiuser systems).
- Search relative to the including file.
- Search relative to any -rcdir(s) provided.
- Search in the data file search path.
- The data file search path now includes settings/ for when we move rc
stuff to settings/
.gitignore: ignore saves and morgue dirs correctly.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5256 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/newgame.cc')
-rw-r--r-- | crawl-ref/source/newgame.cc | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/crawl-ref/source/newgame.cc b/crawl-ref/source/newgame.cc index 2b2baa873a..67b2a69516 100644 --- a/crawl-ref/source/newgame.cc +++ b/crawl-ref/source/newgame.cc @@ -102,7 +102,7 @@ #include "version.h" #include "view.h" -extern std::string init_file_location; +extern std::string init_file_error; #define MIN_START_STAT 1 @@ -2468,15 +2468,31 @@ static void _opening_screen(void) "Please consult crawl_manual.txt for instructions and legal details." "</brown>" EOL; - const bool init_found = - (init_file_location.find("not found") == std::string::npos); + const bool init_found = init_file_error.empty(); if (!init_found) - msg += "<lightred>Init file "; + msg += "<lightred>No init file "; else - msg += "<lightgrey>Init file read: "; + msg += "<lightgrey>(Read options from "; + + if (init_found) + { +#ifdef DGAMELAUNCH + // For dgl installs, show only the last segment of the .crawlrc + // file name so that we don't leak details of the directory + // structure to (untrusted) users. + msg += get_base_filename(Options.filename); +#else + msg += Options.filename; +#endif + msg += ".)"; + } + else + { + msg += init_file_error; + msg += ", using defaults."; + } - msg += init_file_location; msg += EOL; formatted_string::parse_string(msg).display(); |