diff --git a/server/gameserver/mt/SafeArea.cc b/server/gameserver/mt/SafeArea.cc index 13d22a84..37083921 100644 --- a/server/gameserver/mt/SafeArea.cc +++ b/server/gameserver/mt/SafeArea.cc @@ -14,6 +14,22 @@ namespace mt if (!GetByType(type())) { type_hash_[type()] = this; } + if (!boss().empty()) { + std::vector strings; + a8::Split(boss(), strings, ':'); + if (strings.size() != 5) { + abort(); + } + _boss = std::make_shared> + ( + glm::vec3((float)a8::XValue(strings[0]).GetDouble(), + (float)a8::XValue(strings[1]).GetDouble(), + (float)a8::XValue(strings[2]).GetDouble() + ), + (float)a8::XValue(strings[3]).GetDouble(), + a8::XValue(strings[4]).GetInt() + ); + } } const SafeArea* SafeArea::GetByType(int type) diff --git a/server/gameserver/mt/SafeArea.h b/server/gameserver/mt/SafeArea.h index 726cb266..2c38878d 100644 --- a/server/gameserver/mt/SafeArea.h +++ b/server/gameserver/mt/SafeArea.h @@ -12,14 +12,14 @@ namespace mt public: void Init1(); - std::shared_ptr> GetBoss() { return _boss; } + std::shared_ptr> GetBoss() const { return _boss; } static const SafeArea* GetByType(int type); private: static std::map type_hash_; - std::shared_ptr> _boss; + std::shared_ptr> _boss; }; }