diff options
Diffstat (limited to 'crawl-ref/source/mapmark.h')
-rw-r--r-- | crawl-ref/source/mapmark.h | 20 |
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 |