summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/colour.h
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2010-09-10 00:05:54 -0500
committerJesse Luehrs <doy@tozt.net>2010-09-10 05:18:02 -0500
commit1662f12c9852360e36cfe22cca1c68c3956e08f0 (patch)
treefd3c4658de8371fb6f60e3b5c08ca922b321b0c8 /crawl-ref/source/colour.h
parent81857496dd958960d6de04aa8d7ee436e90a0f02 (diff)
downloadcrawl-ref-1662f12c9852360e36cfe22cca1c68c3956e08f0.tar.gz
crawl-ref-1662f12c9852360e36cfe22cca1c68c3956e08f0.zip
make add_element_colour public
Diffstat (limited to 'crawl-ref/source/colour.h')
-rw-r--r--crawl-ref/source/colour.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/crawl-ref/source/colour.h b/crawl-ref/source/colour.h
index c1abe01b71..ba63c9f954 100644
--- a/crawl-ref/source/colour.h
+++ b/crawl-ref/source/colour.h
@@ -51,12 +51,33 @@ enum element_type
ETC_RANDOM, // any colour (except BLACK)
};
+typedef int (*element_colour_calculator)(int, const coord_def&);
+
+struct element_colour_calc
+{
+ element_type type;
+
+ element_colour_calc(element_type _type,
+ element_colour_calculator _calc)
+ : type(_type), calc(_calc)
+ {};
+
+ virtual int get(const coord_def& loc = coord_def(),
+ bool non_random = false);
+
+protected:
+ int rand(bool non_random);
+
+ element_colour_calculator calc;
+};
+
int str_to_colour(const std::string &str, int default_colour = -1,
bool accept_number = true);
const std::string colour_to_str(uint8_t colour);
unsigned int str_to_tile_colour(std::string colour);
void init_element_colours();
+void add_element_colour(element_colour_calc *colour);
uint8_t random_colour();
uint8_t random_uncommon_colour();
uint8_t make_low_colour(uint8_t colour);