diff --git a/plugins/autotrade.cpp b/plugins/autotrade.cpp index ccc42f0e8..0a2ba8a2e 100644 --- a/plugins/autotrade.cpp +++ b/plugins/autotrade.cpp @@ -490,6 +490,13 @@ struct tradeview_hook : public df::viewscreen_tradegoodsst { INTERPOSE_NEXT(render)(); + if (counteroffer.size() > 0) + { + // The merchant is proposing a counteroffer, + // so there is nothing to mark. + return; + } + // Insert into the blank line between trade items and standard keys. // The blank line at the bottom is taken by the search plugin. auto dim = Screen::getWindowSize(); diff --git a/plugins/search.cpp b/plugins/search.cpp index 18586657b..0309e4861 100644 --- a/plugins/search.cpp +++ b/plugins/search.cpp @@ -408,7 +408,7 @@ protected: //bool redo_search; string search_string; -private: +protected: int *cursor_pos; char select_key; bool valid; @@ -1074,15 +1074,24 @@ class trade_search_merc : public trade_search_base public: virtual void render() const { + if (viewscreen->counteroffer.size() > 0) + { + // The merchant is proposing a counteroffer. + // Not only is there nothing to search, + // but the native hotkeys are where we normally write. + return; + } + print_search_option(2, -1); if (!search_string.empty()) { - make_text_dim(2, 37, 22); - make_text_dim(42, gps->dimx-2, 22); int32_t x = 2; int32_t y = gps->dimy - 3; - OutputString(COLOR_YELLOW, x, y, "Note: Clear search to trade"); + make_text_dim(2, 37, y); + make_text_dim(42, gps->dimx-2, y); + OutputString(COLOR_LIGHTRED, x, y, string(1, select_key + 'A' - 'a')); + OutputString(COLOR_WHITE, x, y, ": Clear search to trade "); } } @@ -1116,15 +1125,24 @@ class trade_search_fort : public trade_search_base public: virtual void render() const { + if (viewscreen->counteroffer.size() > 0) + { + // The merchant is proposing a counteroffer. + // Not only is there nothing to search, + // but the native hotkeys are where we normally write. + return; + } + print_search_option(42, -1); if (!search_string.empty()) { - make_text_dim(2, 37, 22); - make_text_dim(42, gps->dimx-2, 22); int32_t x = 42; int32_t y = gps->dimy - 3; - OutputString(COLOR_YELLOW, x, y, "Note: Clear search to trade"); + make_text_dim(2, 37, y); + make_text_dim(42, gps->dimx-2, y); + OutputString(COLOR_LIGHTRED, x, y, string(1, select_key + 'A' - 'a')); + OutputString(COLOR_WHITE, x, y, ": Clear search to trade "); } }