diff options
author | Adam Borowski <kilobyte@angband.pl> | 2011-08-17 12:52:45 +0200 |
---|---|---|
committer | Adam Borowski <kilobyte@angband.pl> | 2011-08-17 19:44:55 +0200 |
commit | 34672bc676f3048429bd7fc14e80e628381d8563 (patch) | |
tree | 48cdead718e90ca21a66bc5b871267cb30901830 /crawl-ref/source/colour.cc | |
parent | 8201a87d72c60500a44b238fa1a0c720d187eebc (diff) | |
download | crawl-ref-34672bc676f3048429bd7fc14e80e628381d8563.tar.gz crawl-ref-34672bc676f3048429bd7fc14e80e628381d8563.zip |
Get rid of an useless std::map<uint8_t>.
Diffstat (limited to 'crawl-ref/source/colour.cc')
-rw-r--r-- | crawl-ref/source/colour.cc | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/crawl-ref/source/colour.cc b/crawl-ref/source/colour.cc index 8ac6c92d95..88f464d6ad 100644 --- a/crawl-ref/source/colour.cc +++ b/crawl-ref/source/colour.cc @@ -14,7 +14,7 @@ #include <utility> #include <math.h> -static std::map<element_type, element_colour_calc*> element_colours; +static element_colour_calc* element_colours[NUM_COLOURS] = {}; static std::map<std::string, element_colour_calc*> element_colours_str; typedef std::vector< std::pair<int, int> > random_colour_map; @@ -272,6 +272,7 @@ void add_element_colour(element_colour_calc *colour) { // or else lookups won't work: we strip high bits (because of colflags) ASSERT(colour->type < 128); + COMPILE_CHECK(NUM_COLOURS <= 128); if (colour->type >= ETC_FIRST_LUA) { ASSERT(element_colours[colour->type] == element_colours_str[colour->name]); @@ -279,7 +280,7 @@ void add_element_colour(element_colour_calc *colour) } else { - ASSERT(element_colours.find(colour->type) == element_colours.end()); + ASSERT(!element_colours[colour->type]); ASSERT(element_colours_str.find(colour->name) == element_colours_str.end()); } element_colours[colour->type] = colour; @@ -551,10 +552,12 @@ void init_element_colours() void clear_colours_on_exit() { - for (std::map<element_type, element_colour_calc*>::const_iterator it = element_colours.begin(); it != element_colours.end(); ++it) - delete it->second; + for (int i = 0; i < NUM_COLOURS; i++) + { + delete element_colours[i]; + element_colours[i] = 0; + } - element_colours.clear(); element_colours_str.clear(); } @@ -567,12 +570,8 @@ int element_colour(int element, bool no_random, const coord_def& loc) // Strip COLFLAGs just in case. element &= 0x007f; - std::map<element_type, element_colour_calc*>::const_iterator colour_it - = element_colours.find((element_type)element); - ASSERT(colour_it != element_colours.end()); - ASSERT(colour_it->second); - - int ret = colour_it->second->get(loc, no_random); + ASSERT(element_colours[element]); + int ret = element_colours[element]->get(loc, no_random); ASSERT(!is_element_colour(ret)); |