diff --git a/src/MeoAssistant/AutoRecruitTask.cpp b/src/MeoAssistant/AutoRecruitTask.cpp index f586da69f6..3c9ffb5e35 100644 --- a/src/MeoAssistant/AutoRecruitTask.cpp +++ b/src/MeoAssistant/AutoRecruitTask.cpp @@ -359,7 +359,7 @@ asst::AutoRecruitTask::calc_task_result_type asst::AutoRecruitTask::recruit_calc json::value info = basic_info(); std::vector tag_name_vector; ranges::transform(tags, std::back_inserter(tag_name_vector), std::mem_fn(&TextRect::text)); - info["details"]["tags"] = json::array(get_tags_name(tag_name_vector)); + info["details"]["tags"] = json::array(get_tag_names(tag_name_vector)); // tags result { @@ -436,7 +436,7 @@ asst::AutoRecruitTask::calc_task_result_type asst::AutoRecruitTask::recruit_calc std::vector result_json_vector; for (const auto& comb : result_vec) { json::value comb_json; - comb_json["tags"] = json::array(get_tags_name(comb.tags)); + comb_json["tags"] = json::array(get_tag_names(comb.tags)); std::vector opers_json_vector; for (const RecruitOperInfo& oper_info : ranges::reverse_view(comb.opers)) { // print reversely @@ -568,7 +568,7 @@ asst::AutoRecruitTask::calc_task_result_type asst::AutoRecruitTask::recruit_calc { json::value cb_info = basic_info(); cb_info["what"] = "RecruitTagsSelected"; - cb_info["details"] = json::object { { "tags", json::array(get_tags_name(final_combination.tags)) } }; + cb_info["details"] = json::object { { "tags", json::array(get_tag_names(final_combination.tags)) } }; callback(AsstMsg::SubTaskExtraInfo, cb_info); } @@ -677,9 +677,9 @@ bool asst::AutoRecruitTask::hire_all() return true; } -std::vector asst::AutoRecruitTask::get_tags_name(std::vector ids) +std::vector asst::AutoRecruitTask::get_tag_names(const std::vector& ids) const { - std::vector names; + std::vector names; for (const std::string& id : ids) { names.emplace_back(RecruitData.get_tag_name(id)); } diff --git a/src/MeoAssistant/AutoRecruitTask.h b/src/MeoAssistant/AutoRecruitTask.h index a65b785308..944d7376f5 100644 --- a/src/MeoAssistant/AutoRecruitTask.h +++ b/src/MeoAssistant/AutoRecruitTask.h @@ -1,12 +1,13 @@ #pragma once #include "AbstractTask.h" -#include "AsstTypes.h" - #include #include #include +#include "AsstTypes.h" +#include "RecruitConfiger.h" + namespace asst { class ReportDataTask; @@ -45,7 +46,7 @@ namespace asst bool hire_all(const cv::Mat&); bool hire_all(); bool initialize_dirty_slot_info(const cv::Mat&); - std::vector get_tags_name(std::vector ids); + std::vector get_tag_names(const std::vector& ids) const; static std::vector start_recruit_analyze(const cv::Mat& image); void upload_result(const json::value& details); diff --git a/src/MeoAssistant/RecruitConfiger.cpp b/src/MeoAssistant/RecruitConfiger.cpp index 35fdfb37ca..7cf8d8b513 100644 --- a/src/MeoAssistant/RecruitConfiger.cpp +++ b/src/MeoAssistant/RecruitConfiger.cpp @@ -6,7 +6,7 @@ #include "Logger.hpp" -std::string asst::RecruitConfiger::get_tag_name(const std::string& id) const noexcept +std::string asst::RecruitConfiger::get_tag_name(const TagId& id) const noexcept { auto iter = m_all_tags_name.find(id); if (iter == m_all_tags_name.cend()) { diff --git a/src/MeoAssistant/RecruitConfiger.h b/src/MeoAssistant/RecruitConfiger.h index d0f068f440..48d06e1c82 100644 --- a/src/MeoAssistant/RecruitConfiger.h +++ b/src/MeoAssistant/RecruitConfiger.h @@ -81,13 +81,15 @@ namespace asst class RecruitConfiger final : public SingletonHolder, public AbstractConfiger { + public: + using TagId = std::string; public: virtual ~RecruitConfiger() override = default; static constexpr int CorrectNumberOfTags = 5; const std::unordered_set& get_all_tags() const noexcept { return m_all_tags; } const std::vector& get_all_opers() const noexcept { return m_all_opers; } - std::string get_tag_name(const std::string& id) const noexcept; + std::string get_tag_name(const TagId& id) const noexcept; protected: virtual bool parse(const json::value& json) override; @@ -96,7 +98,7 @@ namespace asst std::unordered_set m_all_tags; std::vector m_all_opers; - std::unordered_map m_all_tags_name; + std::unordered_map m_all_tags_name; }; inline static auto& RecruitData = RecruitConfiger::get_instance(); } // namespace asst