From 8565ad1cd5b97f1ff554f22bcc27a459a3d1dbe2 Mon Sep 17 00:00:00 2001 From: Mordred Date: Wed, 25 Jan 2023 22:03:29 +0100 Subject: [PATCH] WiP Fix house inventory not working, added debug print for item inventory size mismatch. --- src/world/Inventory/ItemContainer.cpp | 3 +++ src/world/Manager/HousingMgr.cpp | 7 ++++--- src/world/Territory/HousingZone.cpp | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/world/Inventory/ItemContainer.cpp b/src/world/Inventory/ItemContainer.cpp index c8e59618..16ca0785 100644 --- a/src/world/Inventory/ItemContainer.cpp +++ b/src/world/Inventory/ItemContainer.cpp @@ -92,7 +92,10 @@ Sapphire::ItemPtr Sapphire::ItemContainer::getItem( uint16_t slotId ) void Sapphire::ItemContainer::setItem( uint16_t slotId, ItemPtr pItem ) { if( slotId > m_size ) + { + Logger::error( "Unable to place item {}, {} exceeds max size of {}", pItem->getId(), slotId, m_size ); return; + } m_itemMap[ slotId ] = pItem; } diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index 37ebddf9..b26a6e30 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -266,8 +266,8 @@ void HousingMgr::initLandCache() makeContainer( Common::InventoryType::HousingExteriorStoreroom, entry.m_maxPlacedExternalItems ); // fixed containers - makeContainer( Common::InventoryType::HousingInteriorAppearance, 10 ); - makeContainer( Common::InventoryType::HousingExteriorAppearance, 9 ); + makeContainer( Common::InventoryType::HousingInteriorAppearance, 20 ); + makeContainer( Common::InventoryType::HousingExteriorAppearance, 20 ); } } @@ -702,6 +702,7 @@ void HousingMgr::buildPresetEstate( Entity::Player& player, HousingZone& zone, u if( !initHouseModels( player, pLand, presetCatalogId ) ) { pLand->setHouse( nullptr ); + Logger::error( "House failed building because of initHouseModels failed" ); return; } @@ -727,7 +728,7 @@ void HousingMgr::buildPresetEstate( Entity::Player& player, HousingZone& zone, u player.setLandFlags( Common::LandFlagsSlot::Private, Common::HOUSING_LAND_STATUS::HOUSING_LAND_STATUS_BUILDHOUSE, ident ); player.sendLandFlagsSlot( Common::LandFlagsSlot::Private ); - zone.registerEstateEntranceEObj( plotNum ); + //zone.registerEstateEntranceEObj( plotNum ); } void HousingMgr::requestEstateRename( Entity::Player& player, const Common::LandIdent ident ) diff --git a/src/world/Territory/HousingZone.cpp b/src/world/Territory/HousingZone.cpp index 0c2f466b..5e9859c9 100644 --- a/src/world/Territory/HousingZone.cpp +++ b/src/world/Territory/HousingZone.cpp @@ -299,7 +299,7 @@ Sapphire::Entity::EventObjectPtr Sapphire::HousingZone::registerEstateEntranceEO assert( land ); auto eObj = Entity::make_EventObject( getNextEObjId(), 2002737, 0, 0, 4, land->getMapMarkerPosition(), 0.f, "entrance", 0 ); - eObj->setHousingLink( landId << 8 ); + eObj->setHousingLink( static_cast< uint32_t >( landId ) << 8 ); eObj->setScale( 1.f ); addEObj( eObj );