diff --git a/src/MeoAssistant/BattleImageAnalyzer.cpp b/src/MeoAssistant/BattleImageAnalyzer.cpp index c16ca1f49f..025ea258fd 100644 --- a/src/MeoAssistant/BattleImageAnalyzer.cpp +++ b/src/MeoAssistant/BattleImageAnalyzer.cpp @@ -132,6 +132,9 @@ bool asst::BattleImageAnalyzer::opers_analyze() for (const MatchRect& flag_mrect : flags_analyzer.get_result()) { BattleRealTimeOper oper; oper.rect = flag_mrect.rect.move(click_move); + if (oper.rect.x + oper.rect.width >= m_image.cols) { + oper.rect.width = m_image.cols - oper.rect.x; + } oper.avatar = m_image(utils::make_rect(oper.rect)); Rect available_rect = flag_mrect.rect.move(avlb_move); @@ -147,6 +150,9 @@ bool asst::BattleImageAnalyzer::opers_analyze() #endif Rect cooling_rect = flag_mrect.rect.move(cooling_move); + if (cooling_rect.x + cooling_rect.width >= m_image.cols) { + cooling_rect.width = m_image.cols - cooling_rect.x; + } oper.cooling = oper_cooling_analyze(cooling_rect); if (oper.cooling && oper.available) { Log.error("oper is available, but with cooling");