diff --git a/server/gameserver/trigger.cc b/server/gameserver/trigger.cc index 8f5f7393..18596536 100644 --- a/server/gameserver/trigger.cc +++ b/server/gameserver/trigger.cc @@ -371,7 +371,12 @@ void Trigger::RemoveBuffs(int cond, std::vector& buffids) } } -void Trigger::AddListener(int event_id, std::function cb) +std::weak_ptr Trigger::AddListener(int event_id, std::function cb) +{ + +} + +void Trigger::RemoveEventHandler(std::weak_ptr handler) { } diff --git a/server/gameserver/trigger.h b/server/gameserver/trigger.h index 6de64b8f..409d0a8e 100644 --- a/server/gameserver/trigger.h +++ b/server/gameserver/trigger.h @@ -6,6 +6,12 @@ namespace MetaData struct Equip; }; +struct EventHandler +{ + std::function cb; + list_head entry; +}; + class Weapon; class Creature; class Skill; @@ -28,7 +34,8 @@ public: void Die(); void ActiveBuff(MetaData::Buff* buff_meta); void DeactiveBuff(MetaData::Buff* buff_meta); - void AddListener(int event_id, std::function cb); + std::weak_ptr AddListener(int event_id, std::function cb); + void RemoveEventHandler(std::weak_ptr handler); private: void TraverseCondBuffs(int cond, std::function func); @@ -41,5 +48,5 @@ public: private: Creature* owner_ = nullptr; int kill_num_ = 0; - std::map> listeners_hash_; + std::map listeners_hash_; };