summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/branch.h
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/branch.h')
-rw-r--r--crawl-ref/source/branch.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/crawl-ref/source/branch.h b/crawl-ref/source/branch.h
index 009bb89bca..9ddc1a1d0a 100644
--- a/crawl-ref/source/branch.h
+++ b/crawl-ref/source/branch.h
@@ -12,6 +12,15 @@
#include "enum.h"
+enum branch_flag_type
+{
+ BFLAG_NONE = 0,
+
+ BFLAG_NO_TELE_CONTROL = (1 << 0), // Teleport control not allowed.
+ BFLAG_NOT_MAPPABLE = (1 << 1), // Branch levels not mappable.
+ BFLAG_NO_MAGIC_MAP = (1 << 2) // Branch levels can't be magic mapped.
+};
+
struct Branch
{
branch_type id;
@@ -19,6 +28,8 @@ struct Branch
int depth;
int startdepth; // which level of the parent branch,
// 1 for first level
+ unsigned long branch_flags;
+ unsigned long default_level_flags;
dungeon_feature_type entry_stairs;
dungeon_feature_type exit_stairs;
const char* shortname; // "Slime Pits"
@@ -42,4 +53,10 @@ Branch& your_branch();
branch_type str_to_branch(const std::string &branch,
branch_type err = NUM_BRANCHES);
+bool set_branch_flags(unsigned long flags, bool silent = false,
+ branch_type branch = NUM_BRANCHES);
+bool unset_branch_flags(unsigned long flags, bool silent = false,
+ branch_type branch = NUM_BRANCHES);
+unsigned long get_branch_flags(branch_type branch = NUM_BRANCHES);
+
#endif