From 9fb1b94f34156b49af6b4e7bca2ff2e0dc2f9788 Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Tue, 11 Oct 2022 20:34:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=89=B9=E5=8C=96=E6=97=B6=20next=20=E7=AD=89=E4=B8=8D?= =?UTF-8?q?=E5=B8=A6=E5=89=8D=E7=BC=80=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MeoAssistant/TaskData.cpp | 7 ++++--- src/MeoAssistant/TaskData.h | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/MeoAssistant/TaskData.cpp b/src/MeoAssistant/TaskData.cpp index c799efad93..7b331c117e 100644 --- a/src/MeoAssistant/TaskData.cpp +++ b/src/MeoAssistant/TaskData.cpp @@ -52,7 +52,7 @@ bool asst::TaskData::parse(const json::value& json) for (const auto& [name, pos, task_json] : template_task_info) { // 可能某个名字里带@的任务不是模板任务特化,只是普通的基类任务,这里最后一个参数可能为 nullptr - auto task_info_ptr = generate_task_info(name, task_json, get(name.substr(pos))); + auto task_info_ptr = generate_task_info(name, task_json, get(name.substr(pos)), name.substr(0, pos)); if (task_info_ptr == nullptr) { return false; } @@ -74,7 +74,8 @@ bool asst::TaskData::parse(const json::value& json) std::shared_ptr asst::TaskData::generate_task_info(const std::string& name, const json::value& task_json, - std::shared_ptr default_ptr) + std::shared_ptr default_ptr, + const std::string& task_prefix) { if (default_ptr == nullptr) { default_ptr = default_task_info_ptr; @@ -115,7 +116,7 @@ std::shared_ptr asst::TaskData::generate_task_info(const std::st } // 不管什么algorithm,都有基础成员(next, roi, 等等) - if (!append_base_task_info(task_info_ptr, name, task_json, default_ptr)) { + if (!append_base_task_info(task_info_ptr, name, task_json, default_ptr, task_prefix)) { return nullptr; } task_info_ptr->algorithm = algorithm; diff --git a/src/MeoAssistant/TaskData.h b/src/MeoAssistant/TaskData.h index 8bc78849ad..154dfaf275 100644 --- a/src/MeoAssistant/TaskData.h +++ b/src/MeoAssistant/TaskData.h @@ -70,7 +70,8 @@ namespace asst // 这是下面几个函数的封装 std::shared_ptr generate_task_info(const std::string& name, const json::value&, - std::shared_ptr default_ptr); + std::shared_ptr default_ptr, + const std::string& task_prefix = ""); std::shared_ptr generate_match_task_info(const std::string& name, const json::value&, std::shared_ptr default_ptr);