summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/newgame.cc
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2008-05-26 15:30:07 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2008-05-26 15:30:07 +0000
commita844f8e10213c19b6e48d6ff98e97bc9f026a42a (patch)
tree9cada2344ca78a2c2de555dc8b7fa943ee7382fe /crawl-ref/source/newgame.cc
parent1f1939b11a6ed95f769644c21e53589a1e7abeb9 (diff)
downloadcrawl-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.cc28
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();