diff options
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 )) |