summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/tilereg.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/tilereg.cc')
-rw-r--r--crawl-ref/source/tilereg.cc143
1 files changed, 70 insertions, 73 deletions
diff --git a/crawl-ref/source/tilereg.cc b/crawl-ref/source/tilereg.cc
index f370bd2dff..042945d912 100644
--- a/crawl-ref/source/tilereg.cc
+++ b/crawl-ref/source/tilereg.cc
@@ -644,9 +644,8 @@ void DungeonRegion::pack_buffers()
if (m_cursor[CURSOR_TUTORIAL] != NO_CURSOR
&& on_screen(m_cursor[CURSOR_TUTORIAL]))
{
- m_buf_main.add(TILE_TUTORIAL_CURSOR,
- m_cursor[CURSOR_TUTORIAL].x,
- m_cursor[CURSOR_TUTORIAL].y);
+ m_buf_main.add(TILE_TUTORIAL_CURSOR, m_cursor[CURSOR_TUTORIAL].x,
+ m_cursor[CURSOR_TUTORIAL].y);
}
for (unsigned int i = 0; i < m_overlays.size(); i++)
@@ -825,6 +824,7 @@ int DungeonRegion::handle_mouse(MouseEvent &event)
&& event.event == MouseEvent::PRESS
&& event.button == MouseEvent::LEFT)
{
+ you.last_clicked_grid = m_cursor[CURSOR_MOUSE];
return CK_MOUSE_CLICK;
}
@@ -864,6 +864,7 @@ int DungeonRegion::handle_mouse(MouseEvent &event)
else if (event.event == MouseEvent::PRESS
&& event.button == MouseEvent::LEFT && on_screen(gc))
{
+ you.last_clicked_grid = m_cursor[CURSOR_MOUSE];
return CK_MOUSE_CLICK;
}
@@ -913,6 +914,7 @@ int DungeonRegion::handle_mouse(MouseEvent &event)
if (event.button != MouseEvent::LEFT)
return 0;
+ you.last_clicked_grid = m_cursor[CURSOR_MOUSE];
return _click_travel(gc, event);
}
@@ -991,12 +993,12 @@ bool DungeonRegion::update_tip_text(std::string& tip)
// and some parsing of formatting to get that to work.
if (mouse_control::current_mode() != MOUSE_MODE_COMMAND)
- return false;
+ return (false);
if (m_cursor[CURSOR_MOUSE] == NO_CURSOR)
- return false;
+ return (false);
if (!map_bounds(m_cursor[CURSOR_MOUSE]))
- return false;
+ return (false);
if (m_cursor[CURSOR_MOUSE] == you.pos())
{
@@ -1043,14 +1045,12 @@ bool DungeonRegion::update_tip_text(std::string& tip)
else
{
if (i_feel_safe() && !grid_is_solid(m_cursor[CURSOR_MOUSE]))
- {
tip = "[L-Click] Travel\n";
- }
tip += "[R-Click] Describe";
}
- return true;
+ return (true);
}
class alt_desc_proc
@@ -1097,16 +1097,14 @@ public:
{
int loc = -1;
for (size_t i = 1; i < str.size(); i++)
- {
if (str[i] == '\n' && str[i-1] == '\n')
loc = i;
- }
if (loc == -1)
- return false;
+ return (false);
str.resize(loc);
- return true;
+ return (true);
}
void get_string(std::string &str)
@@ -1131,17 +1129,18 @@ protected:
bool DungeonRegion::update_alt_text(std::string &alt)
{
if (mouse_control::current_mode() != MOUSE_MODE_COMMAND)
- return false;
+ return (false);
const coord_def &gc = m_cursor[CURSOR_MOUSE];
if (gc == NO_CURSOR)
- return false;
+ return (false);
if (!map_bounds(gc))
- return false;
-
+ return (false);
if (!see_grid(gc))
- return false;
+ return (false);
+ if (you.last_clicked_grid == gc)
+ return (false);
describe_info inf;
get_square_desc(gc, inf);
@@ -1155,10 +1154,10 @@ bool DungeonRegion::update_alt_text(std::string &alt)
if (alt == "Floor.")
{
alt.clear();
- return false;
+ return (false);
}
- return true;
+ return (true);
}
void DungeonRegion::clear_text_tags(text_tag_type type)
@@ -1559,7 +1558,7 @@ static bool _can_use_item(const item_def &item, bool equipped)
{
// Misc. items/rods can always be evoked, cursed or not.
if (item.base_type == OBJ_MISCELLANY || item_is_rod(item))
- return true;
+ return (true);
// You can't unwield/fire a wielded cursed weapon/staff
// but cursed armour and rings can be unwielded without problems.
@@ -1571,17 +1570,17 @@ static bool _can_use_item(const item_def &item, bool equipped)
return (item.base_type != OBJ_POTIONS && item.base_type != OBJ_FOOD);
// In all other cases you can use the item in some way.
- return true;
+ return (true);
}
bool InventoryRegion::update_tip_text(std::string& tip)
{
if (m_cursor == NO_CURSOR)
- return false;
+ return (false);
unsigned int item_idx = cursor_index();
if (item_idx >= m_items.size() || m_items[item_idx].empty())
- return false;
+ return (false);
int idx = m_items[item_idx].idx;
@@ -1606,7 +1605,7 @@ bool InventoryRegion::update_tip_text(std::string& tip)
tip += item.name(DESC_NOCAP_A);
if (!display_actions)
- return true;
+ return (true);
tip += "\n[L-Click] Pick up (g)";
if (item.base_type == OBJ_CORPSES
@@ -1636,7 +1635,7 @@ bool InventoryRegion::update_tip_text(std::string& tip)
tip = item.name(DESC_INVENTORY_EQUIP);
if (!display_actions)
- return true;
+ return (true);
int type = item.base_type;
const bool equipped = m_items[item_idx].flag & TILEI_FLAG_EQUIP;
@@ -1706,11 +1705,10 @@ bool InventoryRegion::update_tip_text(std::string& tip)
if (wielded)
tip += "\n[Ctrl-L-Click] Unwield";
- else if ( item.sub_type == MI_STONE
- && player_knows_spell(SPELL_SANDBLAST)
- || item.sub_type == MI_ARROW
- && player_knows_spell(
- SPELL_STICKS_TO_SNAKES) )
+ else if (item.sub_type == MI_STONE
+ && player_knows_spell(SPELL_SANDBLAST)
+ || item.sub_type == MI_ARROW
+ && player_knows_spell(SPELL_STICKS_TO_SNAKES))
{
// For Sandblast and Sticks to Snakes,
// respectively.
@@ -1743,10 +1741,9 @@ bool InventoryRegion::update_tip_text(std::string& tip)
// For Sublimation of Blood.
if (wielded)
tip += "\n[Ctrl-L-Click] Unwield";
- else if ( item_type_known(item)
- && is_blood_potion(item)
- && player_knows_spell(
- SPELL_SUBLIMATION_OF_BLOOD) )
+ else if (item_type_known(item)
+ && is_blood_potion(item)
+ && player_knows_spell(SPELL_SUBLIMATION_OF_BLOOD))
{
tip += "\n[Ctrl-L-Click] Wield (w)";
}
@@ -1799,17 +1796,17 @@ bool InventoryRegion::update_tip_text(std::string& tip)
}
}
- return true;
+ return (true);
}
bool InventoryRegion::update_alt_text(std::string &alt)
{
if (m_cursor == NO_CURSOR)
- return false;
+ return (false);
unsigned int item_idx = cursor_index();
if (item_idx >= m_items.size() || m_items[item_idx].empty())
- return false;
+ return (false);
int idx = m_items[item_idx].idx;
@@ -1827,7 +1824,7 @@ bool InventoryRegion::update_alt_text(std::string &alt)
proc.get_string(alt);
- return true;
+ return (true);
}
MapRegion::MapRegion(int pixsz) :
@@ -1856,27 +1853,27 @@ void MapRegion::init_colours()
{
// TODO enne - the options array for colours should be
// tied to the map feature enumeration to avoid this function.
- m_colours[MF_UNSEEN] = (map_colour)Options.tile_unseen_col;
- m_colours[MF_FLOOR] = (map_colour)Options.tile_floor_col;
- m_colours[MF_WALL] = (map_colour)Options.tile_wall_col;
- m_colours[MF_MAP_FLOOR] = (map_colour)Options.tile_floor_col; // TODO enne
- m_colours[MF_MAP_WALL] = (map_colour)Options.tile_mapped_wall_col;
- m_colours[MF_DOOR] = (map_colour)Options.tile_door_col;
- m_colours[MF_ITEM] = (map_colour)Options.tile_item_col;
- m_colours[MF_MONS_HOSTILE] = (map_colour)Options.tile_monster_col;
+ m_colours[MF_UNSEEN] = (map_colour)Options.tile_unseen_col;
+ m_colours[MF_FLOOR] = (map_colour)Options.tile_floor_col;
+ m_colours[MF_WALL] = (map_colour)Options.tile_wall_col;
+ m_colours[MF_MAP_FLOOR] = (map_colour)Options.tile_floor_col; // TODO enne
+ m_colours[MF_MAP_WALL] = (map_colour)Options.tile_mapped_wall_col;
+ m_colours[MF_DOOR] = (map_colour)Options.tile_door_col;
+ m_colours[MF_ITEM] = (map_colour)Options.tile_item_col;
+ m_colours[MF_MONS_HOSTILE] = (map_colour)Options.tile_monster_col;
m_colours[MF_MONS_FRIENDLY] = (map_colour)Options.tile_friendly_col;
- m_colours[MF_MONS_NEUTRAL] = (map_colour)Options.tile_neutral_col;
- m_colours[MF_MONS_NO_EXP] = (map_colour)Options.tile_plant_col;
- m_colours[MF_STAIR_UP] = (map_colour)Options.tile_upstairs_col;
- m_colours[MF_STAIR_DOWN] = (map_colour)Options.tile_downstairs_col;
- m_colours[MF_STAIR_BRANCH] = (map_colour)Options.tile_feature_col;
- m_colours[MF_FEATURE] = (map_colour)Options.tile_feature_col;
- m_colours[MF_WATER] = (map_colour)Options.tile_water_col;
- m_colours[MF_LAVA] = (map_colour)Options.tile_lava_col;
- m_colours[MF_TRAP] = (map_colour)Options.tile_trap_col;
- m_colours[MF_EXCL_ROOT] = (map_colour)Options.tile_excl_centre_col;
- m_colours[MF_EXCL] = (map_colour)Options.tile_excluded_col;
- m_colours[MF_PLAYER] = (map_colour)Options.tile_player_col;
+ m_colours[MF_MONS_NEUTRAL] = (map_colour)Options.tile_neutral_col;
+ m_colours[MF_MONS_NO_EXP] = (map_colour)Options.tile_plant_col;
+ m_colours[MF_STAIR_UP] = (map_colour)Options.tile_upstairs_col;
+ m_colours[MF_STAIR_DOWN] = (map_colour)Options.tile_downstairs_col;
+ m_colours[MF_STAIR_BRANCH] = (map_colour)Options.tile_feature_col;
+ m_colours[MF_FEATURE] = (map_colour)Options.tile_feature_col;
+ m_colours[MF_WATER] = (map_colour)Options.tile_water_col;
+ m_colours[MF_LAVA] = (map_colour)Options.tile_lava_col;
+ m_colours[MF_TRAP] = (map_colour)Options.tile_trap_col;
+ m_colours[MF_EXCL_ROOT] = (map_colour)Options.tile_excl_centre_col;
+ m_colours[MF_EXCL] = (map_colour)Options.tile_excluded_col;
+ m_colours[MF_PLAYER] = (map_colour)Options.tile_player_col;
}
MapRegion::~MapRegion()
@@ -2070,10 +2067,10 @@ int MapRegion::handle_mouse(MouseEvent &event)
bool MapRegion::update_tip_text(std::string& tip)
{
if (mouse_control::current_mode() != MOUSE_MODE_COMMAND)
- return false;
+ return (false);
tip = "[L-Click] Travel / [R-Click] View";
- return true;
+ return (true);
}
void TextRegion::scroll()
@@ -2334,10 +2331,10 @@ int StatRegion::handle_mouse(MouseEvent &event)
bool StatRegion::update_tip_text(std::string& tip)
{
if (mouse_control::current_mode() != MOUSE_MODE_COMMAND)
- return false;
+ return (false);
tip = "[L-Click] Rest / Search for a while";
- return true;
+ return (true);
}
MessageRegion::MessageRegion(FTFont *font) : TextRegion(font), m_overlay(false)
@@ -2364,10 +2361,10 @@ int MessageRegion::handle_mouse(MouseEvent &event)
bool MessageRegion::update_tip_text(std::string& tip)
{
if (mouse_control::current_mode() != MOUSE_MODE_COMMAND)
- return false;
+ return (false);
tip = "[L-Click] Browse message history";
- return true;
+ return (true);
}
void MessageRegion::set_overlay(bool is_overlay)
@@ -2815,15 +2812,15 @@ bool ImageManager::load_textures()
{
GenericTexture::MipMapOptions mip = GenericTexture::MIPMAP_CREATE;
if (!m_textures[TEX_DUNGEON].load_texture("dngn.png", mip))
- return false;
+ return (false);
if (!m_textures[TEX_DOLL].load_texture("player.png", mip))
- return false;
+ return (false);
m_textures[TEX_DUNGEON].set_info(TILE_DNGN_MAX, &tile_dngn_info);
m_textures[TEX_DOLL].set_info(TILEP_PLAYER_MAX, &tile_player_info);
- return true;
+ return (true);
}
static void _copy_onto(unsigned char *pixels, int width,
@@ -2916,13 +2913,13 @@ static bool _copy_under(unsigned char *pixels, int width,
const tile_info &over = tile_main_info(idx_over);
if (over.width != under.width || over.height != under.height)
- return false;
+ return (false);
if (over.ex - over.sx != over.width || over.ey - over.sy != over.height)
- return false;
+ return (false);
if (over.offset_x != 0 || over.offset_y != 0)
- return false;
+ return (false);
size_t image_size = under.width * under.height * 4;
@@ -2940,7 +2937,7 @@ static bool _copy_under(unsigned char *pixels, int width,
delete[] under_pixels;
delete[] over_pixels;
- return true;
+ return (true);
}
static bool _process_item_image(unsigned char *pixels, unsigned int width,
@@ -2992,7 +2989,7 @@ static bool _process_item_image(unsigned char *pixels, unsigned int width,
success &= _copy_under(pixels, width, height, tile0, tile1);
}
- return true;
+ return (true);
}
bool ImageManager::load_item_texture()