diff options
Diffstat (limited to 'crawl-ref/source/tilesdl.cc')
-rw-r--r-- | crawl-ref/source/tilesdl.cc | 59 |
1 files changed, 15 insertions, 44 deletions
diff --git a/crawl-ref/source/tilesdl.cc b/crawl-ref/source/tilesdl.cc index 27b62eb332..badcfd4656 100644 --- a/crawl-ref/source/tilesdl.cc +++ b/crawl-ref/source/tilesdl.cc @@ -98,7 +98,7 @@ void TilesFramework::shutdown() delete m_region_map; delete m_region_self_inv; delete m_region_crt; - delete m_region_menu_inv; + delete m_region_menu; m_region_tile = NULL; m_region_stat = NULL; @@ -106,7 +106,7 @@ void TilesFramework::shutdown() m_region_map = NULL; m_region_self_inv = NULL; m_region_crt = NULL; - m_region_menu_inv = NULL; + m_region_menu = NULL; for (unsigned int i = 0; i < LAYER_MAX; i++) { @@ -175,7 +175,7 @@ bool TilesFramework::initialise() return false; int crt_font = load_font(Options.tile_font_crt_file.c_str(), - Options.tile_font_crt_size, true, false); + Options.tile_font_crt_size, true, true); int msg_font = load_font(Options.tile_font_msg_file.c_str(), Options.tile_font_msg_size, true, false); int stat_font = load_font(Options.tile_font_stat_file.c_str(), @@ -200,8 +200,7 @@ bool TilesFramework::initialise() m_region_msg = new MessageRegion(m_fonts[msg_font].font); m_region_stat = new StatRegion(m_fonts[stat_font].font); m_region_crt = new CRTRegion(m_fonts[crt_font].font); - m_region_menu_inv = new InventoryRegion(&m_image, m_fonts[lbl_font].font, - TILE_X, TILE_Y); + m_region_menu = new MenuRegion(&m_image, m_fonts[crt_font].font); m_layers[LAYER_NORMAL].m_regions.push_back(m_region_tile); m_layers[LAYER_NORMAL].m_regions.push_back(m_region_map); @@ -210,7 +209,7 @@ bool TilesFramework::initialise() m_layers[LAYER_NORMAL].m_regions.push_back(m_region_stat); m_layers[LAYER_CRT].m_regions.push_back(m_region_crt); - m_layers[LAYER_CRT].m_regions.push_back(m_region_menu_inv); + m_layers[LAYER_CRT].m_regions.push_back(m_region_menu); cgotoxy(1, 1, GOTO_CRT); @@ -229,8 +228,11 @@ int TilesFramework::load_font(const char *font_file, int font_size, for (unsigned int i = 0; i < m_fonts.size(); i++) { font_info &finfo = m_fonts[i]; - if (finfo.name == font_file && finfo.size == font_size) + if (finfo.name == font_file && finfo.size == font_size + && outline == finfo.outline) + { return i; + } } if (!font->load_font(font_file, font_size, outline)) @@ -246,6 +248,7 @@ int TilesFramework::load_font(const char *font_file, int font_size, finfo.name = font_file; finfo.size = font_size; finfo.font = font; + finfo.outline = outline; m_fonts.push_back(finfo); return (m_fonts.size() - 1); @@ -730,7 +733,6 @@ void TilesFramework::do_layout() m_region_stat->resize(crawl_view.hudsz.x, crawl_view.hudsz.y); m_region_msg->resize(crawl_view.msgsz.x, crawl_view.msgsz.y); m_region_map->resize(GXM, GYM); - m_region_menu_inv->resize(24, 1); // Place regions for normal layer const int margin = 4; @@ -861,25 +863,9 @@ void TilesFramework::do_layout() // Place regions for crt layer m_region_crt->place(0, 0, margin); - - while (m_region_crt->ey + m_region_menu_inv->wy > m_windowsz.y) - { - m_region_crt->resize(m_region_crt->mx, m_region_crt->my - 1); - } - while (m_region_crt->ex > m_windowsz.x) - { - m_region_crt->resize(m_region_crt->mx - 1, m_region_crt->my); - } - - m_region_menu_inv->place(0, m_region_crt->ey, margin); - m_region_menu_inv->resize_to_fit(m_windowsz.x, m_windowsz.y - - m_region_menu_inv->sy); - - // Depending on the font, the menu inventory may hold fewer items - // than the crt menu can display. Decrease the lines if necessary. - const int ex = 3; - if (m_region_crt->my - ex > m_region_menu_inv->mx) - m_region_crt->resize(m_region_crt->mx, m_region_menu_inv->mx + ex); + m_region_crt->resize_to_fit(m_windowsz.x, m_windowsz.y); + m_region_menu->place(0, 0, margin); + m_region_menu->resize_to_fit(m_windowsz.x, m_windowsz.y); crawl_view.init_view(); } @@ -894,8 +880,8 @@ void TilesFramework::clrscr() m_region_msg->clear(); if (m_region_crt) m_region_crt->clear(); - if (m_region_menu_inv) - m_region_menu_inv->clear(); + if (m_region_menu) + m_region_menu->clear(); cgotoxy(1,1); } @@ -1217,21 +1203,6 @@ void TilesFramework::update_inventory() m_region_self_inv->update(inv.size(), &inv[0]); } -void TilesFramework::update_menu_inventory(unsigned int slot, - const item_def &item, - bool selected, char key) -{ - InventoryTile desc; - _fill_item_info(desc, item); - desc.key = key; - desc.idx = (desc.flag & TILEI_FLAG_FLOOR) ? item.index() : - letter_to_index(key); - if (selected) - desc.flag |= TILEI_FLAG_SELECT; - - m_region_menu_inv->update_slot(slot, desc); -} - void TilesFramework::place_cursor(cursor_type type, const coord_def &gc) { m_region_tile->place_cursor(type, gc); |