diff --git a/server/robotserver/android_agent.h b/server/robotserver/android_agent.h index 38f401aa..f69e4730 100644 --- a/server/robotserver/android_agent.h +++ b/server/robotserver/android_agent.h @@ -33,6 +33,8 @@ public: behaviac::EBTStatus CoJoin(); behaviac::EBTStatus CoUpdateGame(); + void SetOwner(std::shared_ptr owner) { owner_ = owner; } + public: private: diff --git a/server/robotserver/player.cc b/server/robotserver/player.cc index bf4893ac..618476bf 100644 --- a/server/robotserver/player.cc +++ b/server/robotserver/player.cc @@ -26,6 +26,7 @@ void Player::Init(int idx, const std::string& account_id) if (!agent_) { abort(); } + agent_->SetOwner(shared_from_this()); f8::BtMgr::Instance()->BtLoad(agent_, "android/test"); f8::BtMgr::Instance()->BtSetCurrent(agent_, "android/test"); diff --git a/server/robotserver/player.h b/server/robotserver/player.h index 4894ce7b..c4a5c665 100644 --- a/server/robotserver/player.h +++ b/server/robotserver/player.h @@ -10,7 +10,7 @@ namespace a8 } class AndroidAgent; -class Player +class Player : public std::enable_shared_from_this { public: enum { HID = HID_Player };