diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index cb4ff6f7..683d5eb2 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -662,7 +662,7 @@ Sapphire::World::Manager::HousingMgr::ContainerIdToContainerMap& return getEstateInventory( u64ident ); } -void Sapphire::World::Manager::HousingMgr::updateHouseModels( Sapphire::HousePtr house ) +void Sapphire::World::Manager::HousingMgr::updateHouseModelsFromDb( Sapphire::HousePtr house ) { assert( house ); @@ -680,7 +680,8 @@ void Sapphire::World::Manager::HousingMgr::updateHouseModels( Sapphire::HousePtr { for( auto& item : extContainer->second->getItemMap() ) { - house->setHouseModel( static_cast< Common::HousePartSlot >( item.first ), getItemData( item.second->getId() ) ); + house->setExteriorModel( static_cast< Common::HousePartSlot >( item.first ), + getItemData( item.second->getId() ), item.second->getStain() ); } } else @@ -693,8 +694,8 @@ void Sapphire::World::Manager::HousingMgr::updateHouseModels( Sapphire::HousePtr { for( auto& item : intContainer->second->getItemMap() ) { - house->setHouseInteriorModel( static_cast< Common::HousingInteriorSlot >( item.first ), - getItemData( item.second->getId() ) ); + house->setInteriorModel( static_cast< Common::HousingInteriorSlot >( item.first ), + getItemData( item.second->getId() ) ); } } else diff --git a/src/world/Manager/HousingMgr.h b/src/world/Manager/HousingMgr.h index d0c59a6c..73884044 100644 --- a/src/world/Manager/HousingMgr.h +++ b/src/world/Manager/HousingMgr.h @@ -97,7 +97,7 @@ namespace Sapphire::World::Manager * * @param house The house to update the models for */ - void updateHouseModels( HousePtr house ); + void updateHouseModelsFromDb( HousePtr house ); /*! * @brief Sends the house inventory for the specified type to a player. diff --git a/src/world/Territory/House.cpp b/src/world/Territory/House.cpp index ebacabe0..09802a5f 100644 --- a/src/world/Territory/House.cpp +++ b/src/world/Territory/House.cpp @@ -20,9 +20,7 @@ Sapphire::House::House( uint32_t houseId, uint32_t landSetId, Common::LandIdent m_landIdent( ident ), m_estateName( estateName ), m_estateComment( estateComment ) -{ - -} +{} Sapphire::House::~House() = default; @@ -60,39 +58,9 @@ uint32_t Sapphire::House::getHouseId() const return m_houseId; } -uint8_t Sapphire::House::getHouseModelColor( Common::HousePartSlot slot ) const -{ - return m_houseModelsCache[ slot ].second; -} - -uint32_t Sapphire::House::getHouseInteriorModel( Common::HousingInteriorSlot slot ) const -{ - return m_houseInteriorModels[ slot ]; -} - -void Sapphire::House::setHouseModel( Common::HousePartSlot slot, uint32_t id ) -{ - m_houseModelsCache[ slot ].first = id; -} - -void Sapphire::House::setHouseModelColor( Common::HousePartSlot slot, uint32_t id ) -{ - m_houseModelsCache[ slot ].second = id; -} - -void Sapphire::House::setHouseInteriorModel( Common::HousingInteriorSlot slot, uint32_t id ) -{ - m_houseInteriorModels[ slot ] = id; -} - -uint32_t Sapphire::House::getHouseModel( Common::HousePartSlot slot ) const -{ - return m_houseModelsCache[ slot ].first; -} - Sapphire::House::HouseModelsArray const& Sapphire::House::getHouseModels() const { - return m_houseModelsCache; + return m_exteriorModelCache; } const std::string& Sapphire::House::getHouseName() const @@ -117,4 +85,24 @@ void Sapphire::House::setHouseName( const std::string& name ) m_estateName = name; updateHouseDb(); +} + +void Sapphire::House::setExteriorModel( Sapphire::Common::HousePartSlot slot, uint32_t modelId, uint16_t stain ) +{ + m_exteriorModelCache[ slot ] = std::make_pair( modelId, stain ); +} + +Sapphire::House::HousePart Sapphire::House::getExteriorModel( Sapphire::Common::HousePartSlot slot ) +{ + return m_exteriorModelCache[ slot ]; +} + +void Sapphire::House::setInteriorModel( Sapphire::Common::HousingInteriorSlot slot, uint32_t modelId ) +{ + m_interiorModelCache[ slot ] = modelId; +} + +uint32_t Sapphire::House::getInteriorModel( Sapphire::Common::HousingInteriorSlot slot ) +{ + return m_interiorModelCache[ slot ]; } \ No newline at end of file diff --git a/src/world/Territory/House.h b/src/world/Territory/House.h index c45e30db..ce73088b 100644 --- a/src/world/Territory/House.h +++ b/src/world/Territory/House.h @@ -16,7 +16,7 @@ namespace Sapphire const std::string& estateComment ); virtual ~House(); - using HousePart = std::pair< uint32_t, uint8_t >; + using HousePart = std::pair< uint32_t, uint16_t >; using HouseModelsArray = std::array< HousePart, 8 >; //gerneral @@ -31,12 +31,11 @@ namespace Sapphire void setHouseGreeting( const std::string& greeting ); //functions - void setHouseModel( Common::HousePartSlot slot, uint32_t id ); - void setHouseModelColor( Common::HousePartSlot slot, uint32_t id ); - void setHouseInteriorModel( Common::HousingInteriorSlot slot, uint32_t id ); - uint32_t getHouseModel( Common::HousePartSlot slot ) const; - uint8_t getHouseModelColor( Common::HousePartSlot slot ) const; - uint32_t getHouseInteriorModel( Common::HousingInteriorSlot slot ) const; + void setExteriorModel( Common::HousePartSlot slot, uint32_t modelId, uint16_t stain ); + HousePart getExteriorModel( Common::HousePartSlot slot ); + + void setInteriorModel( Common::HousingInteriorSlot slot, uint32_t modelId ); + uint32_t getInteriorModel( Common::HousingInteriorSlot slot ); HouseModelsArray const& getHouseModels() const; @@ -49,8 +48,8 @@ namespace Sapphire uint64_t m_buildTime; - HouseModelsArray m_houseModelsCache; - uint32_t m_houseInteriorModels[10]; + HouseModelsArray m_exteriorModelCache; + uint32_t m_interiorModelCache[10]; std::string m_estateComment; std::string m_estateName; diff --git a/src/world/Territory/Housing/HousingInteriorTerritory.cpp b/src/world/Territory/Housing/HousingInteriorTerritory.cpp index e1b87f46..f7487ee6 100644 --- a/src/world/Territory/Housing/HousingInteriorTerritory.cpp +++ b/src/world/Territory/Housing/HousingInteriorTerritory.cpp @@ -68,7 +68,7 @@ void Housing::HousingInteriorTerritory::onPlayerZoneIn( Entity::Player& player ) for( auto i = 0; i < 10; i++ ) { - indoorInitPacket->data().indoorItems[ i ] = pHouse->getHouseInteriorModel( + indoorInitPacket->data().indoorItems[ i ] = pHouse->getInteriorModel( static_cast< Common::HousingInteriorSlot >( i ) ); } diff --git a/src/world/Territory/HousingZone.cpp b/src/world/Territory/HousingZone.cpp index 075059e2..9e9d6e51 100644 --- a/src/world/Territory/HousingZone.cpp +++ b/src/world/Territory/HousingZone.cpp @@ -85,7 +85,7 @@ bool Sapphire::HousingZone::init() { auto house = make_House( entry.m_houseId, m_landSetId, land->getLandIdent(), entry.m_estateName, entry.m_estateComment ); - housingMgr->updateHouseModels( house ); + housingMgr->updateHouseModelsFromDb( house ); land->setHouse( house ); } diff --git a/src/world/Territory/Land.cpp b/src/world/Territory/Land.cpp index aaa4ef63..9aed4973 100644 --- a/src/world/Territory/Land.cpp +++ b/src/world/Territory/Land.cpp @@ -313,35 +313,35 @@ bool Sapphire::Land::setPreset( uint32_t itemId ) } - getHouse()->setHouseModel( Common::HousePartSlot::ExteriorRoof, - convertItemIdToHousingItemId( housingPreset->exteriorRoof ) ); - getHouse()->setHouseModel( Common::HousePartSlot::ExteriorWall, - convertItemIdToHousingItemId( housingPreset->exteriorWall ) ); - getHouse()->setHouseModel( Common::HousePartSlot::ExteriorWindow, - convertItemIdToHousingItemId( housingPreset->exteriorWindow ) ); - getHouse()->setHouseModel( Common::HousePartSlot::ExteriorDoor, - convertItemIdToHousingItemId( housingPreset->exteriorDoor ) ); - - getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorWall, - convertItemIdToHousingItemId( housingPreset->interiorWall ) ); - getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorFloor, - convertItemIdToHousingItemId( housingPreset->interiorFlooring ) ); - getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorLight, - convertItemIdToHousingItemId( housingPreset->interiorLighting ) ); - getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorWall_Attic, - convertItemIdToHousingItemId( housingPreset->otherFloorWall ) ); - getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorFloor_Attic, - convertItemIdToHousingItemId( housingPreset->otherFloorFlooring ) ); - getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorLight_Attic, - convertItemIdToHousingItemId( housingPreset->otherFloorLighting ) ); - getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorWall_Basement, - convertItemIdToHousingItemId( housingPreset->basementWall ) ); - getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorFloor_Basement, - convertItemIdToHousingItemId( housingPreset->basementFlooring ) ); - getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorLight_Basement, - convertItemIdToHousingItemId( housingPreset->basementLighting ) ); - getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorLight_Mansion, - convertItemIdToHousingItemId( housingPreset->mansionLighting ) ); +// getHouse()->setHouseModel( Common::HousePartSlot::ExteriorRoof, +// convertItemIdToHousingItemId( housingPreset->exteriorRoof ) ); +// getHouse()->setHouseModel( Common::HousePartSlot::ExteriorWall, +// convertItemIdToHousingItemId( housingPreset->exteriorWall ) ); +// getHouse()->setHouseModel( Common::HousePartSlot::ExteriorWindow, +// convertItemIdToHousingItemId( housingPreset->exteriorWindow ) ); +// getHouse()->setHouseModel( Common::HousePartSlot::ExteriorDoor, +// convertItemIdToHousingItemId( housingPreset->exteriorDoor ) ); +// +// getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorWall, +// convertItemIdToHousingItemId( housingPreset->interiorWall ) ); +// getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorFloor, +// convertItemIdToHousingItemId( housingPreset->interiorFlooring ) ); +// getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorLight, +// convertItemIdToHousingItemId( housingPreset->interiorLighting ) ); +// getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorWall_Attic, +// convertItemIdToHousingItemId( housingPreset->otherFloorWall ) ); +// getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorFloor_Attic, +// convertItemIdToHousingItemId( housingPreset->otherFloorFlooring ) ); +// getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorLight_Attic, +// convertItemIdToHousingItemId( housingPreset->otherFloorLighting ) ); +// getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorWall_Basement, +// convertItemIdToHousingItemId( housingPreset->basementWall ) ); +// getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorFloor_Basement, +// convertItemIdToHousingItemId( housingPreset->basementFlooring ) ); +// getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorLight_Basement, +// convertItemIdToHousingItemId( housingPreset->basementLighting ) ); +// getHouse()->setHouseInteriorModel( Common::HousingInteriorSlot::InteriorLight_Mansion, +// convertItemIdToHousingItemId( housingPreset->mansionLighting ) ); return true;