summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mapmark.h
diff options
context:
space:
mode:
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