diff options
author | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-05-28 03:58:15 +0000 |
---|---|---|
committer | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-05-28 03:58:15 +0000 |
commit | bb8e9480efb1259fbb2da1e07bdfc0b613c68eea (patch) | |
tree | 39e4212ac5b39bae9c29959cccac479e3df5f414 /crawl-ref/source/invent.cc | |
parent | 0e9f823830bc5395267bc0eb795d7b1877ae5681 (diff) | |
download | crawl-ref-bb8e9480efb1259fbb2da1e07bdfc0b613c68eea.tar.gz crawl-ref-bb8e9480efb1259fbb2da1e07bdfc0b613c68eea.zip |
Reduce screen-flicker and clearing of the message window when re-doing the
previous command (`) (at least for actions involving selecting an item from
inventory, selecting an ability to use, selecting a spell to cast, and
selecting a spell to memorize).
Not tested with the tiles build.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9839 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/invent.cc')
-rw-r--r-- | crawl-ref/source/invent.cc | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/crawl-ref/source/invent.cc b/crawl-ref/source/invent.cc index 45b22896c0..be0bbc721d 100644 --- a/crawl-ref/source/invent.cc +++ b/crawl-ref/source/invent.cc @@ -896,7 +896,10 @@ unsigned char get_invent(int invent_type) else break; } - redraw_screen(); + + if (!crawl_state.doing_prev_cmd_again) + redraw_screen(); + return select; } // end get_invent() @@ -1206,7 +1209,7 @@ std::vector<SelItem> prompt_invent_items( int count = -1; while (true) { - if (need_redraw) + if (need_redraw && !crawl_state.doing_prev_cmd_again) { redraw_screen(); mesclr( true ); @@ -1258,8 +1261,11 @@ std::vector<SelItem> prompt_invent_items( if (items.size()) { - redraw_screen(); - mesclr(true); + if (!crawl_state.doing_prev_cmd_again) + { + redraw_screen(); + mesclr(true); + } for (unsigned int i = 0; i < items.size(); ++i) items[i].slot = letter_to_index( items[i].slot ); @@ -1566,7 +1572,7 @@ int prompt_invent_item( const char *prompt, while (true) { - if (need_redraw) + if (need_redraw && !crawl_state.doing_prev_cmd_again) { redraw_screen(); mesclr( true ); @@ -1624,8 +1630,11 @@ int prompt_invent_item( const char *prompt, if (count) *count = items[0].quantity; - redraw_screen(); - mesclr( true ); + if (!crawl_state.doing_prev_cmd_again) + { + redraw_screen(); + mesclr( true ); + } } } else if (count != NULL && isdigit( keyin )) |