diff --git a/rsrc/dialogs/get-response.xml b/rsrc/dialogs/get-response.xml index 005d0628..237f5ec2 100644 --- a/rsrc/dialogs/get-response.xml +++ b/rsrc/dialogs/get-response.xml @@ -1,9 +1,10 @@ - + You respond: + diff --git a/src/game/boe.items.cpp b/src/game/boe.items.cpp index 9b3a1cf5..9f93b5e5 100644 --- a/src/game/boe.items.cpp +++ b/src/game/boe.items.cpp @@ -830,9 +830,10 @@ void place_treasure(location where,short level,short loot,short mode) { } } -static bool get_text_response_event_filter(cDialog& me, std::string, eKeyMod) { +static bool get_text_response_event_filter(cDialog& me, std::string item_hit, eKeyMod) { me.toast(true); - me.setResult(me["response"].getText()); + if(item_hit == "cancel") me.setResult(std::string {""}); + else me.setResult(me["response"].getText()); return true; } @@ -840,7 +841,7 @@ std::string get_text_response(std::string prompt, pic_num_t pic) { set_cursor(sword_curs); cDialog strPanel(*ResMgr::dialogs.get("get-response")); - strPanel.attachClickHandlers(get_text_response_event_filter, {"okay"}); + strPanel.attachClickHandlers(get_text_response_event_filter, {"okay", "cancel"}); if(!prompt.empty()) { dynamic_cast(strPanel["pic"]).setPict(pic); strPanel["prompt"].setText(prompt);