diff --git a/src/servers/sapphire_zone/Manager/HousingMgr.cpp b/src/servers/sapphire_zone/Manager/HousingMgr.cpp index 1f5f6bab..46d8c053 100644 --- a/src/servers/sapphire_zone/Manager/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Manager/HousingMgr.cpp @@ -356,8 +356,7 @@ void Sapphire::World::Manager::HousingMgr::buildPresetEstate( Entity::Player& pl player.setLandFlags( LandFlagsSlot::Private, EstateBuilt, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); player.sendLandFlagsSlot( LandFlagsSlot::Private ); - auto eobj = hZone->registerEObj( "entrance", 2002737, 0, 4, pLand->getMapMarkerPosition(), 1.f, 0.f ); - eobj->setHousingLink( plotNum << 8 ); + hZone->registerHouseEntranceEObj( plotNum ); } void Sapphire::World::Manager::HousingMgr::requestEstateRename( Entity::Player& player, const Common::LandIdent ident ) diff --git a/src/servers/sapphire_zone/Territory/HousingZone.cpp b/src/servers/sapphire_zone/Territory/HousingZone.cpp index b5304093..5f47d22f 100644 --- a/src/servers/sapphire_zone/Territory/HousingZone.cpp +++ b/src/servers/sapphire_zone/Territory/HousingZone.cpp @@ -69,8 +69,7 @@ bool Sapphire::HousingZone::init() if( auto house = pLand->getHouse() ) { - auto eobj = registerEObj( "entrance", 2002737, 0, 4, pLand->getMapMarkerPosition(), 1.f, 0.f ); - eobj->setHousingLink( landId << 8 ); + registerHouseEntranceEObj( landId << 8 ); } } @@ -230,4 +229,18 @@ Sapphire::LandPtr Sapphire::HousingZone::getLand( uint8_t id ) return nullptr; return it->second; +} + +Sapphire::Entity::EventObjectPtr Sapphire::HousingZone::registerHouseEntranceEObj( uint8_t plotId ) +{ + auto land = getLand( plotId ); + assert( land ); + + auto eObj = Entity::make_EventObject( getNextEObjId(), 2002737, 0, 4, land->getMapMarkerPosition(), 0.f, "entrance" ); + eObj->setHousingLink( plotId << 8 ); + eObj->setScale( 1.f ); + + registerEObj( eObj ); + + return eObj; } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Territory/HousingZone.h b/src/servers/sapphire_zone/Territory/HousingZone.h index 985bbbba..3868f31a 100644 --- a/src/servers/sapphire_zone/Territory/HousingZone.h +++ b/src/servers/sapphire_zone/Territory/HousingZone.h @@ -50,6 +50,8 @@ namespace Sapphire uint32_t getLandSetId() const; Sapphire::LandPtr getLand( uint8_t id ); + Entity::EventObjectPtr registerHouseEntranceEObj( uint8_t plotId ); + private: using LandPtrMap = std::unordered_map< uint8_t, Sapphire::LandPtr >; const uint32_t m_landSetMax = 18;