@@ -394,6 +394,8 @@ RecoResult Recognizer::and_(const std::shared_ptr<MAA_RES_NS::Recognition::AndPa
394394 res = sub_recognizer.recognize (inline_sub.type , inline_sub.param , inline_sub.sub_name );
395395 }
396396
397+ register_sub_result_in_cache (res);
398+
397399 all_hit &= res.box .has_value ();
398400 sub_results.emplace_back (std::move (res));
399401
@@ -477,6 +479,7 @@ RecoResult Recognizer::or_(const std::shared_ptr<MAA_RES_NS::Recognition::OrPara
477479 }
478480
479481 has_hit = res.box .has_value ();
482+ register_sub_result_in_cache (res);
480483 sub_results.emplace_back (std::move (res));
481484
482485 if (has_hit) {
@@ -611,6 +614,20 @@ void Recognizer::save_draws(const std::string& node_name, const RecoResult& resu
611614 MAA_VISION_NS::VisionBase::save_draws (name, result.draws );
612615}
613616
617+ void Recognizer::register_sub_result_in_cache (const RecoResult& res)
618+ {
619+ if (!res.box .has_value () || res.name .empty ()) {
620+ return ;
621+ }
622+
623+ auto & cache = tasker_->runtime_cache ();
624+ auto sub_node_id = TaskBase::generate_node_id ();
625+ cache.set_node_detail (
626+ sub_node_id,
627+ NodeDetail { .node_id = sub_node_id, .name = res.name , .reco_id = res.reco_id , .completed = true });
628+ cache.set_latest_node (res.name , sub_node_id);
629+ }
630+
614631bool Recognizer::debug_mode () const
615632{
616633 return MAA_GLOBAL_NS::OptionMgr::get_instance ().debug_mode ();
0 commit comments