From 07e56b7e59d17823968943b0dbb79671fd156684 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 23 Jun 2023 19:37:25 +0800 Subject: [PATCH] 1 --- server/gameserver/base_agent.cc | 2 +- server/gameserver/base_agent.h | 2 +- server/gameserver/btcoroutine.cc | 8 ++++---- server/gameserver/btcoroutine.h | 16 +++++++++++----- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/server/gameserver/base_agent.cc b/server/gameserver/base_agent.cc index 7dc12651..e3ff20cb 100644 --- a/server/gameserver/base_agent.cc +++ b/server/gameserver/base_agent.cc @@ -109,7 +109,7 @@ behaviac::EBTStatus BaseAgent::StartCoroutine(std::shared_ptr corou #ifdef DEBUG last_status_ = behaviac::BT_INVALID; status_frameno_ = GetOwner()->room->GetFrameNo(); - status_name_ = coroutine_->name; + status_name_ = coroutine_->GetName(); #endif status_ = behaviac::BT_RUNNING; return status_; diff --git a/server/gameserver/base_agent.h b/server/gameserver/base_agent.h index 2ecd8395..93a39058 100644 --- a/server/gameserver/base_agent.h +++ b/server/gameserver/base_agent.h @@ -27,7 +27,7 @@ namespace a8 } } -struct BtCoroutine; +class BtCoroutine; class Creature; class BaseAgent : public behaviac::Agent { diff --git a/server/gameserver/btcoroutine.cc b/server/gameserver/btcoroutine.cc index 8c711e2b..101e4f64 100644 --- a/server/gameserver/btcoroutine.cc +++ b/server/gameserver/btcoroutine.cc @@ -9,8 +9,8 @@ bool BtCoroutine::HasEvent() { - if (!context->events.empty()) { - auto event = context->events.at(context->events.size() - 1); + if (!context_->events.empty()) { + auto event = context_->events.at(context_->events.size() - 1); return event->HasEvent(); } return false; @@ -18,8 +18,8 @@ bool BtCoroutine::HasEvent() void BtCoroutine::FireEvent(BaseAgent* agent) { - if (!context->events.empty()) { - auto event = context->events.at(context->events.size() - 1); + if (!context_->events.empty()) { + auto event = context_->events.at(context_->events.size() - 1); if (event->HasEvent()) { event->FireEvent(agent); } diff --git a/server/gameserver/btcoroutine.h b/server/gameserver/btcoroutine.h index a09bf729..66952997 100644 --- a/server/gameserver/btcoroutine.h +++ b/server/gameserver/btcoroutine.h @@ -5,20 +5,26 @@ struct BtContext; class BaseAgent; -struct BtCoroutine +class BtCoroutine { - std::shared_ptr context; - const char* name = nullptr; + public: + std::function runing_cb; long long sleep_end_frameno = 0; int sleep_time = 0; BtCoroutine(std::shared_ptr context, const char* name) { - this->context = context; - this->name = name; + this->context_ = context; + this->name_ = name; } bool HasEvent(); void FireEvent(BaseAgent* agent); + const char* GetName() const { return name_; } + +private: + std::shared_ptr context_; + const char* name_ = nullptr; + };