From 407315d40fdb13e9f9331753cdbcf2be774027ab Mon Sep 17 00:00:00 2001 From: MistEO Date: Thu, 22 Dec 2022 00:44:13 +0800 Subject: [PATCH] fix: run time error --- src/MaaCore/Task/BattleHelper.cpp | 5 ----- src/MaaCore/Task/BattleHelper.h | 2 +- src/MaaCore/Task/Miscellaneous/BattleProcessTask.h | 1 + src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.h | 1 + 4 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/MaaCore/Task/BattleHelper.cpp b/src/MaaCore/Task/BattleHelper.cpp index 6d319840fb..ca5ea3c0fa 100644 --- a/src/MaaCore/Task/BattleHelper.cpp +++ b/src/MaaCore/Task/BattleHelper.cpp @@ -462,8 +462,3 @@ std::optional asst::BattleHelper::get_oper_rect_on_deployment(const return oper_iter->second.rect; } - -asst::AbstractTask& asst::BattleHelper::this_task() -{ - return *dynamic_cast(this); -} diff --git a/src/MaaCore/Task/BattleHelper.h b/src/MaaCore/Task/BattleHelper.h index 28e1cf78f6..29c9193c57 100644 --- a/src/MaaCore/Task/BattleHelper.h +++ b/src/MaaCore/Task/BattleHelper.h @@ -69,7 +69,7 @@ namespace asst std::map m_used_tiles; private: - virtual AbstractTask& this_task(); + virtual AbstractTask& this_task() = 0; InstHelper m_inst_helper; }; diff --git a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.h b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.h index ca36fa9917..1de7a09088 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.h +++ b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.h @@ -19,6 +19,7 @@ namespace asst protected: virtual bool _run() override; + virtual AbstractTask& this_task() override { return *this; } bool do_action(size_t action_index); void notify_action(const battle::copilot::Action& action); diff --git a/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.h index b6a0de8f93..ae92c8b147 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.h @@ -27,6 +27,7 @@ namespace asst protected: virtual bool _run() override; + virtual AbstractTask& this_task() override { return *this; } // 有些特殊的角色,他的职业并不一定和正常的位置相对应,比如“掠风”是地面辅助 // get_role_location_type 可以仅知道干员职业的情况下,大概猜测一下位置