From 59d5a0680facb9199cf7ab95456d63a9e0a9c011 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 23 Jun 2023 20:10:08 +0800 Subject: [PATCH] 1 --- server/gameserver/base_agent.h | 2 +- server/gameserver/btcontext.h | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/server/gameserver/base_agent.h b/server/gameserver/base_agent.h index 16ed780f..3c0fc0fb 100644 --- a/server/gameserver/base_agent.h +++ b/server/gameserver/base_agent.h @@ -14,7 +14,7 @@ class Context : public BtContext \ ~Context() { if (_destory_cb) { _destory_cb(); };}; \ }; \ auto context = std::make_shared(); \ -context->owner = owner; \ +context->SetOwner(owner); \ return context; \ }(GetOwner()->GetWeakPtrRef(), this) diff --git a/server/gameserver/btcontext.h b/server/gameserver/btcontext.h index d024bf7d..4d352a15 100644 --- a/server/gameserver/btcontext.h +++ b/server/gameserver/btcontext.h @@ -7,15 +7,16 @@ class BtContext : public std::enable_shared_from_this { public: - CreatureWeakPtr owner; - virtual ~BtContext(); + void SetOwner(CreatureWeakPtr owner) { owner_ = owner;} + CreatureWeakPtr GetOwner() { return owner_; } void AddHandler(CreatureWeakPtr target, std::weak_ptr handler); void AddEvent(std::shared_ptr event); bool HasEvent(); void FireEvent(BaseAgent* agent); private: + CreatureWeakPtr owner_; std::vector> events_; std::vector>> handlers_;