summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mapmark.h
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-07-27 17:26:00 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-07-27 17:26:00 +0000
commit9b909453a2e070df3ac33277d0a7f07deb6e9132 (patch)
tree531e033aec96fd1e97e797659a3d8790daad5eae /crawl-ref/source/mapmark.h
parente3698852a27d5565ba1381bd600776f5080ab9c9 (diff)
downloadcrawl-ref-9b909453a2e070df3ac33277d0a7f07deb6e9132.tar.gz
crawl-ref-9b909453a2e070df3ac33277d0a7f07deb6e9132.zip
Reworked Bazaars as a special case of portal vaults. The level-type is now
called portal vault. The dungeon builder bases its behaviour on the level_type_name, which must be set as the "dst" property on the portal leading to the bazaar/portal vault. Added WELCOME: directive to .des files to allow maps to specify a welcome message when the player enters the level (only relevant to encompass maps). Readjusted kenku flight speed. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1941 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/mapmark.h')
-rw-r--r--crawl-ref/source/mapmark.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/crawl-ref/source/mapmark.h b/crawl-ref/source/mapmark.h
index eacddcf266..dc18f77946 100644
--- a/crawl-ref/source/mapmark.h
+++ b/crawl-ref/source/mapmark.h
@@ -14,6 +14,7 @@ enum map_marker_type
{
MAT_FEATURE, // Stock marker.
MAT_LUA_MARKER,
+ MAT_FEATURE_NAME,
NUM_MAP_MARKER_TYPES,
MAT_ANY
};
@@ -29,8 +30,10 @@ public:
virtual void activate();
virtual void write(tagHeader &) const;
virtual void read(tagHeader &);
- virtual std::string describe() const = 0;
-
+ virtual std::string debug_describe() const = 0;
+ virtual std::string feature_description() const;
+ virtual std::string property(const std::string &pname) const;
+
static map_marker *read_marker(tagHeader&);
static map_marker *parse_marker(const std::string &text,
const std::string &ctx = "")
@@ -57,7 +60,7 @@ public:
map_feature_marker(const map_feature_marker &other);
void write(tagHeader &) const;
void read(tagHeader &);
- std::string describe() const;
+ std::string debug_describe() const;
static map_marker *read(tagHeader &, map_marker_type);
static map_marker *parse(const std::string &s, const std::string &)
throw (std::string);
@@ -78,8 +81,10 @@ public:
void write(tagHeader &) const;
void read(tagHeader &);
- std::string describe() const;
-
+ std::string debug_describe() const;
+ std::string feature_description() const;
+ std::string property(const std::string &pname) const;
+
void notify_dgn_event(const dgn_event &e);
static map_marker *read(tagHeader &, map_marker_type);
@@ -91,7 +96,8 @@ private:
void check_register_table();
bool get_table() const;
void push_fn_args(const char *fn) const;
- bool callfn(const char *fn, bool warn_err = false) const;
+ bool callfn(const char *fn, bool warn_err = false, int args = -1) const;
+ std::string call_str_fn(const char *fn) const;
};
void env_activate_markers();
@@ -101,5 +107,7 @@ void env_remove_markers_at(const coord_def &c, map_marker_type);
map_marker *env_find_marker(const coord_def &c, map_marker_type);
std::vector<map_marker*> env_get_markers(const coord_def &c);
void env_clear_markers();
+std::string env_property_at(const coord_def &c, map_marker_type,
+ const std::string &key);
#endif