1 #ifdef USE_TILE 2 #pragma once 3 4 #include "map-cell.h" 5 #include "tag-version.h" 6 7 enum halo_type 8 { 9 HALO_NONE = 0, 10 HALO_RANGE = 1, 11 HALO_UMBRA = 2, 12 }; 13 14 struct packed_cell 15 { 16 // For anything that requires multiple dungeon tiles (such as waves) 17 // These tiles will be placed directly on top of the bg tile. 18 enum { MAX_DNGN_OVERLAY = 20 }; 19 int num_dngn_overlay; 20 FixedVector<int, MAX_DNGN_OVERLAY> dngn_overlay; 21 22 tileidx_t fg; 23 tileidx_t bg; 24 tile_flavour flv; 25 tileidx_t cloud; 26 27 // This is directly copied from env.map_knowledge by viewwindow() 28 map_cell map_knowledge; 29 30 bool is_highlighted_summoner; 31 bool is_bloody; 32 bool is_silenced; 33 char halo; 34 bool is_sanctuary; 35 bool is_liquefied; 36 bool mangrove_water; 37 bool awakened_forest; 38 uint8_t orb_glow; 39 char blood_rotation; 40 bool old_blood; 41 uint8_t travel_trail; 42 bool quad_glow; 43 uint8_t disjunct; 44 #if TAG_MAJOR_VERSION == 34 45 uint8_t heat_aura; 46 #endif 47 48 bool operator ==(const packed_cell &other) const; 49 bool operator !=(const packed_cell &other) const { return !(*this == other); } 50 packed_cellpacked_cell51 packed_cell() : num_dngn_overlay(0), fg(0), bg(0), cloud(0), 52 is_highlighted_summoner(false), is_bloody(false), 53 is_silenced(false), halo(HALO_NONE), is_sanctuary(false), 54 is_liquefied(false), mangrove_water(false), 55 awakened_forest(false), orb_glow(0), blood_rotation(0), 56 old_blood(false), travel_trail(0), 57 quad_glow(false), disjunct(false) 58 #if TAG_MAJOR_VERSION == 34 59 , heat_aura(false) 60 #endif 61 {} 62 packed_cellpacked_cell63 packed_cell(const packed_cell* c) : num_dngn_overlay(c->num_dngn_overlay), 64 fg(c->fg), bg(c->bg), flv(c->flv), 65 cloud(c->cloud), 66 map_knowledge(c->map_knowledge), 67 is_highlighted_summoner(c->is_highlighted_summoner), 68 is_bloody(c->is_bloody), 69 is_silenced(c->is_silenced), 70 halo(c->halo), 71 is_sanctuary(c->is_sanctuary), 72 is_liquefied(c->is_liquefied), 73 mangrove_water(c->mangrove_water), 74 awakened_forest(c->awakened_forest), 75 orb_glow(c->orb_glow), 76 blood_rotation(c->blood_rotation), 77 old_blood(c->old_blood), 78 travel_trail(c->travel_trail), 79 quad_glow(c->quad_glow), 80 disjunct(c->disjunct) 81 #if TAG_MAJOR_VERSION == 34 82 , heat_aura(c->heat_aura) 83 #endif 84 {} 85 86 void clear(); 87 }; 88 89 class crawl_view_buffer; 90 91 // For a given location, pack any waves/ink/wall shadow tiles 92 // that require knowledge of the surrounding env cells. 93 void pack_cell_overlays(const coord_def &gc, crawl_view_buffer &vbuf); 94 95 #endif // TILECELL_H 96