diff options
author | Jesse Luehrs <doy@tozt.net> | 2010-09-10 00:05:54 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2010-09-10 05:18:02 -0500 |
commit | 1662f12c9852360e36cfe22cca1c68c3956e08f0 (patch) | |
tree | fd3c4658de8371fb6f60e3b5c08ca922b321b0c8 /crawl-ref/source/colour.h | |
parent | 81857496dd958960d6de04aa8d7ee436e90a0f02 (diff) | |
download | crawl-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.h | 21 |
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); |