summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/database.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/database.cc')
-rw-r--r--crawl-ref/source/database.cc31
1 files changed, 31 insertions, 0 deletions
diff --git a/crawl-ref/source/database.cc b/crawl-ref/source/database.cc
index 80b2369699..488ece7d42 100644
--- a/crawl-ref/source/database.cc
+++ b/crawl-ref/source/database.cc
@@ -102,6 +102,10 @@ static TextDB AllDBs[] =
TextDB( "db/help", // database for outsourced help texts
"database/help.txt",
NULL),
+
+ TextDB( "db/FAQ", // database for Frequently Asked Questions
+ "database/FAQ.txt",
+ NULL),
};
static TextDB& DescriptionDB = AllDBs[0];
@@ -111,6 +115,7 @@ static TextDB& ShoutDB = AllDBs[3];
static TextDB& MiscDB = AllDBs[4];
static TextDB& QuotesDB = AllDBs[5];
static TextDB& HelpDB = AllDBs[6];
+static TextDB& FAQDB = AllDBs[7];
// ----------------------------------------------------------------------
// TextDB
@@ -700,6 +705,32 @@ std::string getHelpString(const std::string &topic)
}
/////////////////////////////////////////////////////////////////////////////
+// FAQ DB specific functions.
+std::vector<std::string> getAllFAQKeys()
+{
+ if (!FAQDB.get())
+ {
+ std::vector<std::string> empty;
+ return (empty);
+ }
+
+ return database_find_keys(FAQDB.get(), "^q.+", false);
+}
+
+std::string getFAQ_Question(const std::string &key)
+{
+// mprf("Question key: %s", key.c_str());
+ return _query_database(FAQDB.get(), key, false, true);
+}
+
+std::string getFAQ_Answer(const std::string &question)
+{
+ std::string key = "a" + question.substr(1, question.length()-1);
+// mprf("Answer key: %s", key.c_str());
+ return _query_database(FAQDB.get(), key, false, true);
+}
+
+/////////////////////////////////////////////////////////////////////////////
// Miscellaneous DB specific functions.
std::string getMiscString(const std::string &misc,