1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-27 06:47:45 +00:00

it works (again!)

This commit is contained in:
NotAdam 2018-12-29 13:05:13 +11:00
parent ceebb27c1c
commit 4d9802bdbb
13 changed files with 81 additions and 84 deletions

View file

@ -589,7 +589,7 @@ Sapphire::ItemPtr Sapphire::Entity::Player::createItem( uint32_t catalogId, uint
uint8_t flags = 0;
ItemPtr pItem = make_Item( Items::Util::getNextUId(), catalogId, m_pFw );
ItemPtr pItem = make_Item( itemMgr->getNextUId(), catalogId, m_pFw );
pItem->setStackSize( quantity );

View file

@ -1,7 +1,7 @@
#include "HousingItem.h"
Sapphire::Inventory::HousingItem::HousingItem( uint64_t uId, uint32_t catalogId ) :
Sapphire::Item( uId, catalogId, false )
Sapphire::Inventory::HousingItem::HousingItem( uint64_t uId, uint32_t catalogId, FrameworkPtr pFw ) :
Sapphire::Item( uId, catalogId, pFw, false )
{
m_stackSize = 1;
m_spiritBond = 1;

View file

@ -8,7 +8,7 @@ namespace Sapphire::Inventory
class HousingItem : public Item
{
public:
HousingItem( uint64_t uId, uint32_t catalogId );
HousingItem( uint64_t uId, uint32_t catalogId, FrameworkPtr pFw );
virtual ~HousingItem() = default;
void setRot( uint16_t rot );

View file

@ -43,7 +43,7 @@ void Sapphire::ItemContainer::removeItem( uint16_t slotId )
if( it != m_itemMap.end() )
{
if( m_removeItemOnContainerRemove )
if( m_isPersistentStorage )
pDb->execute( "DELETE FROM charaglobalitem WHERE itemId = " + std::to_string( it->second->getUId() ) );
m_itemMap.erase( it );
@ -115,7 +115,7 @@ bool Sapphire::ItemContainer::isMultiStorage() const
bool Sapphire::ItemContainer::isPersistentStorage() const
{
return m_removeItemOnContainerRemove;
return m_isPersistentStorage;
}

View file

@ -75,9 +75,7 @@ Sapphire::World::Manager::HousingMgr::~HousingMgr() = default;
bool Sapphire::World::Manager::HousingMgr::init()
{
auto log = g_fw.get< Sapphire::Logger >();
log->info( "HousingMgr: Caching housing land init data" );
Logger::info( "HousingMgr: Caching housing land init data" );
//LAND_SEL_ALL
// 18 wards per territory, 4 territories
@ -85,7 +83,7 @@ bool Sapphire::World::Manager::HousingMgr::init()
initLandCache();
log->debug( "HousingMgr: Checking land counts" );
Logger::debug( "HousingMgr: Checking land counts" );
uint32_t houseCount = 0;
for( auto& landSet : m_landCache )
@ -96,12 +94,12 @@ bool Sapphire::World::Manager::HousingMgr::init()
if( landSet.second.size() != 60 )
{
log->fatal( "LandSet " + std::to_string( landSet.first ) + " is missing land entries. Only have " + std::to_string( count ) + " land entries." );
Logger::fatal( "LandSet " + std::to_string( landSet.first ) + " is missing land entries. Only have " + std::to_string( count ) + " land entries." );
return false;
}
}
log->info( "HousingMgr: Cached " + std::to_string( houseCount ) + " houses" );
Logger::info( "HousingMgr: Cached " + std::to_string( houseCount ) + " houses" );
/////
@ -113,11 +111,9 @@ bool Sapphire::World::Manager::HousingMgr::init()
bool Sapphire::World::Manager::HousingMgr::loadEstateInventories()
{
auto log = g_fw.get< Sapphire::Logger >();
Logger::info( "HousingMgr: Loading inventories for estates" );
log->info( "HousingMgr: Loading inventories for estates" );
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto stmt = pDb->getPreparedStatement( Db::LAND_INV_SEL_ALL );
auto res = pDb->query( stmt );
@ -134,7 +130,7 @@ bool Sapphire::World::Manager::HousingMgr::loadEstateInventories()
auto stain = res->getUInt8( "stain" );
auto characterId = res->getUInt64( "CharacterId" );
auto item = Inventory::make_HousingItem( itemId, catalogId );
auto item = Inventory::make_HousingItem( itemId, catalogId, framework() );
item->setStain( stain );
item->setStackSize( 1 );
// todo: need to set the owner character id on the item
@ -162,15 +158,14 @@ bool Sapphire::World::Manager::HousingMgr::loadEstateInventories()
itemCount++;
}
log->debug( "HousingMgr: Loaded " + std::to_string( itemCount ) + " inventory items" );
Logger::debug( "HousingMgr: Loaded " + std::to_string( itemCount ) + " inventory items" );
return true;
}
void Sapphire::World::Manager::HousingMgr::initLandCache()
{
auto log = g_fw.get< Sapphire::Logger >();
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto stmt = pDb->getPreparedStatement( Db::LAND_SEL_ALL );
auto res = pDb->query( stmt );
@ -221,8 +216,8 @@ void Sapphire::World::Manager::HousingMgr::initLandCache()
break;
default:
// this should never ever happen, if it does the db is fucked
log->error( "HousingMgr: Plot " + std::to_string( entry.m_landId ) + " in landset " + std::to_string( entry.m_landSetId ) +
" has an invalid land size, defaulting to cottage." );
Logger::error( "HousingMgr: Plot " + std::to_string( entry.m_landId ) + " in landset " + std::to_string( entry.m_landSetId ) +
" has an invalid land size, defaulting to cottage." );
entry.m_maxPlacedExternalItems = 20;
entry.m_maxPlacedInternalItems = 200;
break;
@ -238,9 +233,9 @@ void Sapphire::World::Manager::HousingMgr::initLandCache()
auto& containers = getEstateInventory( ident );
auto makeContainer = [ &containers ]( Common::InventoryType type, uint16_t size )
auto makeContainer = [ &containers, this ]( Common::InventoryType type, uint16_t size )
{
containers[ type ] = make_ItemContainer( type, size, "houseiteminventory", false, false );
containers[ type ] = make_ItemContainer( type, size, "houseiteminventory", false, framework(), false );
};
uint16_t count = 0;
@ -270,7 +265,7 @@ void Sapphire::World::Manager::HousingMgr::initLandCache()
uint64_t Sapphire::World::Manager::HousingMgr::getNextHouseId()
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pQR = pDb->query( "SELECT MAX( HouseId ) FROM house" );
if( !pQR->next() )
@ -555,15 +550,15 @@ bool Sapphire::World::Manager::HousingMgr::initHouseModels( Entity::Player& play
auto itemMax = land->getInventoryItemMax();
// type, maxSize, tableName, isMultiStorage
auto intContainer = make_ItemContainer( InventoryType::HousingInteriorAppearance, itemMax.second, "houseiteminventory", true );
auto extContainer = make_ItemContainer( InventoryType::HousingExteriorAppearance, itemMax.first, "houseiteminventory", true );
auto intContainer = make_ItemContainer( InventoryType::HousingInteriorAppearance, itemMax.second, "houseiteminventory", true, framework() );
auto extContainer = make_ItemContainer( InventoryType::HousingExteriorAppearance, itemMax.first, "houseiteminventory", true, framework() );
// add containers to inv collection
auto& houseInventory = getEstateInventory( house->getLandIdent() );
houseInventory[ InventoryType::HousingInteriorAppearance ] = intContainer;
houseInventory[ InventoryType::HousingExteriorAppearance ] = extContainer;
auto exdData = g_fw.get< Sapphire::Data::ExdDataGenerated >();
auto exdData = framework()->get< Sapphire::Data::ExdDataGenerated >();
auto preset = exdData->get< Sapphire::Data::HousingPreset >( getItemAdditionalData( presetCatalogId ) );
if( !preset )
return false;
@ -604,7 +599,7 @@ bool Sapphire::World::Manager::HousingMgr::initHouseModels( Entity::Player& play
}
};
auto invMgr = g_fw.get< InventoryMgr >();
auto invMgr = framework()->get< InventoryMgr >();
// create and link items
for( auto& destContainer : invMap )
@ -633,7 +628,7 @@ bool Sapphire::World::Manager::HousingMgr::initHouseModels( Entity::Player& play
void Sapphire::World::Manager::HousingMgr::createHouse( Sapphire::HousePtr house ) const
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto stmt = pDb->getPreparedStatement( Db::HOUSING_HOUSE_INS );
// LandSetId, HouseId, HouseName
@ -665,7 +660,7 @@ void Sapphire::World::Manager::HousingMgr::buildPresetEstate( Entity::Player& pl
// create house
auto ident = pLand->getLandIdent();
auto house = make_House( getNextHouseId(), pLand->getLandSetId(), ident,
"Estate #" + std::to_string( ident.landId + 1 ), "" );
"Estate #" + std::to_string( ident.landId + 1 ), "", framework() );
pLand->setHouse( house );
@ -854,7 +849,7 @@ void Sapphire::World::Manager::HousingMgr::sendEstateInventory( Entity::Player&
if( needle == containers.end() )
return;
auto invMgr = g_fw.get< Manager::InventoryMgr >();
auto invMgr = framework()->get< Manager::InventoryMgr >();
invMgr->sendInventoryContainer( player, needle->second );
}
@ -909,7 +904,7 @@ void Sapphire::World::Manager::HousingMgr::updateHouseModels( Sapphire::HousePtr
}
else
{
g_fw.get< Logger >()->error( "Plot " + std::to_string( house->getLandIdent().landId ) + " has an invalid inventory configuration for outdoor appearance." );
framework()->get< Logger >()->error( "Plot " + std::to_string( house->getLandIdent().landId ) + " has an invalid inventory configuration for outdoor appearance." );
}
auto intContainer = containers.find( static_cast< uint16_t >( InventoryType::HousingInteriorAppearance ) );
@ -923,13 +918,13 @@ void Sapphire::World::Manager::HousingMgr::updateHouseModels( Sapphire::HousePtr
}
else
{
g_fw.get< Logger >()->error( "Plot " + std::to_string( house->getLandIdent().landId ) + " has an invalid inventory configuration for indoor appearance." );
framework()->get< Logger >()->error( "Plot " + std::to_string( house->getLandIdent().landId ) + " has an invalid inventory configuration for indoor appearance." );
}
}
uint32_t Sapphire::World::Manager::HousingMgr::getItemAdditionalData( uint32_t catalogId )
{
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pExdData = framework()->get< Data::ExdDataGenerated >();
auto info = pExdData->get< Sapphire::Data::Item >( catalogId );
return info->additionalData;
}
@ -1001,7 +996,7 @@ void Sapphire::World::Manager::HousingMgr::reqPlaceHousingItem( Sapphire::Entity
{
auto tmpItem = player.dropInventoryItem( static_cast< Common::InventoryType >( containerId ), slotId );
item = Inventory::make_HousingItem( tmpItem->getUId(), tmpItem->getId() );
item = Inventory::make_HousingItem( tmpItem->getUId(), tmpItem->getId(), framework() );
// set params
item->setPos( {
@ -1037,7 +1032,7 @@ bool Sapphire::World::Manager::HousingMgr::placeExternalItem( Entity::Player& pl
Inventory::HousingItemPtr item,
Common::LandIdent ident )
{
auto invMgr = g_fw.get< InventoryMgr >();
auto invMgr = framework()->get< InventoryMgr >();
auto& container = getEstateInventory( ident )[ InventoryType::HousingExteriorPlacedItems ];
@ -1070,7 +1065,7 @@ bool Sapphire::World::Manager::HousingMgr::placeExternalItem( Entity::Player& pl
bool Sapphire::World::Manager::HousingMgr::placeInteriorItem( Entity::Player& player,
Inventory::HousingItemPtr item )
{
auto invMgr = g_fw.get< InventoryMgr >();
auto invMgr = framework()->get< InventoryMgr >();
auto zone = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentZone() );
assert( zone );
@ -1144,7 +1139,7 @@ void Sapphire::World::Manager::HousingMgr::sendInternalEstateInventoryBatch( Sap
else
containerIds = m_internalPlacedItemContainers;
auto invMgr = g_fw.get< Manager::InventoryMgr >();
auto invMgr = framework()->get< Manager::InventoryMgr >();
auto& containers = getEstateInventory( zone->getLandIdent() );
for( auto containerId : containerIds )
@ -1221,7 +1216,7 @@ bool Sapphire::World::Manager::HousingMgr::moveInternalItem( Entity::Player& pla
item->setRot( Util::floatToUInt16Rot( rot ) );
// save
auto invMgr = g_fw.get< InventoryMgr >();
auto invMgr = framework()->get< InventoryMgr >();
invMgr->updateHousingItemPosition( item );
terri.updateHousingObjectPosition( player, slot, item->getPos(), item->getRot() );
@ -1264,7 +1259,7 @@ bool Sapphire::World::Manager::HousingMgr::moveExternalItem( Entity::Player& pla
item->setRot( Util::floatToUInt16Rot( rot ) );
auto invMgr = g_fw.get< InventoryMgr >();
auto invMgr = framework()->get< InventoryMgr >();
invMgr->updateHousingItemPosition( item );
terri.updateYardObjectPos( player, slot, ident.landId, *item );
@ -1353,7 +1348,7 @@ bool Sapphire::World::Manager::HousingMgr::removeInternalItem( Entity::Player& p
if( !player.getFreeInventoryContainerSlot( containerPair ) )
return false;
auto invMgr = g_fw.get< InventoryMgr >();
auto invMgr = framework()->get< InventoryMgr >();
// remove it from housing inventory
container->removeItem( slotId );
@ -1375,7 +1370,7 @@ bool Sapphire::World::Manager::HousingMgr::removeInternalItem( Entity::Player& p
if( !freeContainer )
return false;
auto invMgr = g_fw.get< InventoryMgr >();
auto invMgr = framework()->get< InventoryMgr >();
container->removeItem( slotId );
invMgr->sendInventoryContainer( player, container );
@ -1410,7 +1405,7 @@ bool Sapphire::World::Manager::HousingMgr::removeExternalItem( Entity::Player& p
if( !item )
return false;
auto invMgr = g_fw.get< InventoryMgr >();
auto invMgr = framework()->get< InventoryMgr >();
if( sendToStoreroom )
{
@ -1495,7 +1490,7 @@ void Sapphire::World::Manager::HousingMgr::reqEstateExteriorRemodel( Sapphire::E
if( needle == inv.end() )
return;
auto invMgr = g_fw.get< InventoryMgr >();
auto invMgr = framework()->get< InventoryMgr >();
invMgr->sendInventoryContainer( player, needle->second );
@ -1526,7 +1521,7 @@ void Sapphire::World::Manager::HousingMgr::reqEstateInteriorRemodel( Sapphire::E
if( needle == inv.end() )
return;
auto invMgr = g_fw.get< InventoryMgr >();
auto invMgr = framework()->get< InventoryMgr >();
invMgr->sendInventoryContainer( player, needle->second );

View file

@ -4,7 +4,7 @@
#include "Actor/Player.h"
#include "Inventory/ItemContainer.h"
#include "Inventory/HousingItem.h"
#include "Inventory/ItemUtil.h"
#include "Manager/ItemMgr.h"
#include <Network/PacketDef/Zone/ServerZoneDef.h>
#include <Network/GamePacketNew.h>
@ -13,10 +13,12 @@
#include "Framework.h"
extern Sapphire::Framework g_fw;
using namespace Sapphire::Network::Packets;
Sapphire::World::Manager::InventoryMgr::InventoryMgr( Sapphire::FrameworkPtr pFw ) :
BaseManager( pFw )
{ }
void Sapphire::World::Manager::InventoryMgr::sendInventoryContainer( Sapphire::Entity::Player& player,
Sapphire::ItemContainerPtr container )
{
@ -69,14 +71,15 @@ void Sapphire::World::Manager::InventoryMgr::sendInventoryContainer( Sapphire::E
Sapphire::ItemPtr Sapphire::World::Manager::InventoryMgr::createItem( Entity::Player& player,
uint32_t catalogId, uint32_t quantity )
{
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pExdData = framework()->get< Data::ExdDataGenerated >();
auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto itemMgr = framework()->get< Manager::ItemMgr >();
auto itemInfo = pExdData->get< Sapphire::Data::Item >( catalogId );
if( !itemInfo )
return nullptr;
auto item = make_Item( Items::Util::getNextUId(), catalogId );
auto item = make_Item( itemMgr->getNextUId(), catalogId, framework() );
item->setStackSize( std::max< uint32_t >( 1, quantity ) );
@ -100,7 +103,7 @@ void Sapphire::World::Manager::InventoryMgr::removeItemFromHousingContainer( Sap
uint16_t containerId,
uint16_t slotId )
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto stmt = pDb->getPreparedStatement( Db::LAND_INV_DEL );
@ -117,7 +120,7 @@ void Sapphire::World::Manager::InventoryMgr::saveHousingContainerItem( uint64_t
uint16_t containerId, uint16_t slotId,
uint64_t itemId )
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto stmt = pDb->getPreparedStatement( Db::LAND_INV_UP );
// LandIdent, ContainerId, SlotId, ItemId, ItemId
@ -136,7 +139,7 @@ void Sapphire::World::Manager::InventoryMgr::saveHousingContainerItem( uint64_t
void Sapphire::World::Manager::InventoryMgr::updateHousingItemPosition( Sapphire::Inventory::HousingItemPtr item )
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto stmt = pDb->getPreparedStatement( Db::LAND_INV_UP_ITEMPOS );
// ItemId, PosX, PosY, PosZ, Rotation, PosX, PosY, PosZ, Rotation
@ -161,7 +164,7 @@ void Sapphire::World::Manager::InventoryMgr::updateHousingItemPosition( Sapphire
void Sapphire::World::Manager::InventoryMgr::removeHousingItemPosition( Sapphire::Inventory::HousingItem& item )
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto stmt = pDb->getPreparedStatement( Db::LAND_INV_DEL_ITEMPOS );
@ -172,7 +175,7 @@ void Sapphire::World::Manager::InventoryMgr::removeHousingItemPosition( Sapphire
void Sapphire::World::Manager::InventoryMgr::saveItem( Sapphire::Entity::Player& player, Sapphire::ItemPtr item )
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto stmt = pDb->getPreparedStatement( Db::CHARA_ITEMGLOBAL_INS );
stmt->setUInt( 1, player.getId() );

View file

@ -2,13 +2,16 @@
#define SAPPHIRE_INVENTORYMGR_H
#include "ForwardsZone.h"
#include "BaseManager.h"
namespace Sapphire::World::Manager
{
class InventoryMgr
class InventoryMgr : public Sapphire::World::Manager::BaseManager
{
public:
explicit InventoryMgr( Sapphire::FrameworkPtr pFw );
/*!
* @brief Sends an item container to a player
*

View file

@ -137,8 +137,6 @@ Sapphire::ItemPtr Sapphire::World::Manager::ItemMgr::loadItem( uint64_t uId )
ItemPtr pItem = make_Item( uId,
itemRes->getUInt( 1 ),
itemInfo->modelMain,
itemInfo->modelSub,
framework(),
isHq );

View file

@ -79,11 +79,11 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw,
const auto param4 = packet.data().param4;
const auto param5 = packet.data().param5;
pLog->debug( "[" + std::to_string( m_pSession->getId() ) + "] Incoming action: " +
Util::intToHexString( static_cast< uint32_t >( commandId & 0xFFFF ), 4 ) +
"\nparam1: " + Util::intToHexString( static_cast< uint64_t >( param1 & 0xFFFFFFFFFFFFFFF ), 16 ) +
"\nparam2: " + Util::intToHexString( static_cast< uint32_t >( param2 & 0xFFFFFFFF ), 8 ) +
"\nparam3: " + Util::intToHexString( static_cast< uint64_t >( param3 & 0xFFFFFFFFFFFFFFF ), 16 )
Logger::debug( "[" + std::to_string( m_pSession->getId() ) + "] Incoming action: " +
Util::intToHexString( static_cast< uint32_t >( commandId & 0xFFFF ), 4 ) +
"\nparam1: " + Util::intToHexString( static_cast< uint64_t >( param1 & 0xFFFFFFFFFFFFFFF ), 16 ) +
"\nparam2: " + Util::intToHexString( static_cast< uint32_t >( param2 & 0xFFFFFFFF ), 8 ) +
"\nparam3: " + Util::intToHexString( static_cast< uint64_t >( param3 & 0xFFFFFFFFFFFFFFF ), 16 )
);
//g_log.Log(LoggingSeverity::debug, "[" + std::to_string(m_pSession->getId()) + "] " + pInPacket->toString());
@ -437,10 +437,6 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw,
}
case ClientTriggerType::RequestEstateInventory:
{
// only sent if param1 is 1, because the client sends this with 0 when you open the ui for whatever reason
if( param1 != 1 )
return;
auto housingMgr = pFw->get< HousingMgr >();
if( !housingMgr )
break;
@ -457,7 +453,7 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw,
}
case ClientTriggerType::RequestHousingItemRemove:
{
auto housingMgr = g_fw.get< HousingMgr >();
auto housingMgr = m_pFw->get< HousingMgr >();
auto slot = param4 & 0xFF;
auto sendToStoreroom = ( param4 >> 16 ) != 0;
@ -469,7 +465,7 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw,
}
case ClientTriggerType::RequestEstateExteriorRemodel:
{
auto housingMgr = g_fw.get< HousingMgr >();
auto housingMgr = m_pFw->get< HousingMgr >();
housingMgr->reqEstateExteriorRemodel( player, param11 );
@ -477,7 +473,7 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw,
}
case ClientTriggerType::RequestEstateInteriorRemodel:
{
auto housingMgr = g_fw.get< HousingMgr >();
auto housingMgr = m_pFw->get< HousingMgr >();
housingMgr->reqEstateInteriorRemodel( player );

View file

@ -723,10 +723,11 @@ void Sapphire::Network::GameConnection::housingUpdateGreetingHandler( FrameworkP
pHousingMgr->updateEstateGreeting( player, packet.data().ident, std::string( packet.data().greeting ) );
}
void Sapphire::Network::GameConnection::reqPlaceHousingItem( const Packets::FFXIVARR_PACKET_RAW& inPacket,
void Sapphire::Network::GameConnection::reqPlaceHousingItem( FrameworkPtr pFw,
const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player )
{
auto housingMgr = g_fw.get< HousingMgr >();
auto housingMgr = pFw->get< HousingMgr >();
const auto packet = ZoneChannelPacket< Client::FFXIVIpcReqPlaceHousingItem >( inPacket );
const auto& data = packet.data();
@ -734,10 +735,11 @@ void Sapphire::Network::GameConnection::reqPlaceHousingItem( const Packets::FFXI
data.position, data.rotation );
}
void Sapphire::Network::GameConnection::reqMoveHousingItem( const Packets::FFXIVARR_PACKET_RAW& inPacket,
void Sapphire::Network::GameConnection::reqMoveHousingItem( FrameworkPtr pFw,
const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player )
{
auto housingMgr = g_fw.get< HousingMgr >();
auto housingMgr = pFw->get< HousingMgr >();
const auto packet = ZoneChannelPacket< Client::FFXIVIpcHousingUpdateObjectPosition >( inPacket );
const auto& data = packet.data();

View file

@ -150,7 +150,7 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] )
framework()->set< Manager::TerritoryMgr >( pTeriMgr );
if( !pHousingMgr->init() )
{
pLog->fatal( "Failed to setup housing!" );
Logger::fatal( "Failed to setup housing!" );
return;
}
@ -171,7 +171,7 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] )
auto pDebugCom = std::make_shared< DebugCommandMgr >( framework() );
auto pPlayerMgr = std::make_shared< Manager::PlayerMgr >( framework() );
auto pShopMgr = std::make_shared< Manager::ShopMgr >( framework() );
auto pInventoryMgr = std::make_shared< Manager::InventoryMgr >();
auto pInventoryMgr = std::make_shared< Manager::InventoryMgr >( framework() );
auto pEventMgr = std::make_shared< Manager::EventMgr >( framework() );
auto pItemMgr = std::make_shared< Manager::ItemMgr >( framework() );

View file

@ -112,7 +112,7 @@ const Common::LandIdent Sapphire::World::Territory::Housing::HousingInteriorTerr
void Sapphire::World::Territory::Housing::HousingInteriorTerritory::updateHousingObjects()
{
auto housingMgr = g_fw.get< Manager::HousingMgr >();
auto housingMgr = m_pFw->get< Manager::HousingMgr >();
auto containerIds = {
InventoryType::HousingInteriorPlacedItems1,
@ -163,7 +163,7 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::spawnHousing
uint16_t containerType,
Inventory::HousingItemPtr item )
{
auto housingMgr = g_fw.get< Manager::HousingMgr >();
auto housingMgr = m_pFw->get< Manager::HousingMgr >();
auto offset = ( containerIdx * 50 ) + slot;
auto obj = housingMgr->getYardObjectForItem( item );

View file

@ -114,14 +114,14 @@ bool Sapphire::HousingZone::init()
arr.fill( obj );
}
auto housingMgr = g_fw.get< World::Manager::HousingMgr >();
auto housingMgr = m_pFw->get< World::Manager::HousingMgr >();
auto landCache = housingMgr->getLandCacheMap();
// make sure the landset exists
auto landSetCache = landCache.find( m_landSetId );
if( landSetCache == landCache.end() )
{
g_fw.get< Sapphire::Logger >()->fatal( "LandSet " + std::to_string( m_landSetId ) + " is missing from the land cache." );
Logger::fatal( "LandSet " + std::to_string( m_landSetId ) + " is missing from the land cache." );
return false;
}
@ -134,7 +134,7 @@ bool Sapphire::HousingZone::init()
if( entry.m_houseId )
{
auto house = make_House( entry.m_houseId, m_landSetId, land->getLandIdent(), entry.m_estateName,
entry.m_estateComment );
entry.m_estateComment, m_pFw );
housingMgr->updateHouseModels( house );
land->setHouse( house );
@ -328,7 +328,7 @@ Sapphire::Entity::EventObjectPtr Sapphire::HousingZone::registerEstateEntranceEO
void Sapphire::HousingZone::updateYardObjects( Sapphire::Common::LandIdent ident )
{
auto housingMgr = g_fw.get< World::Manager::HousingMgr >();
auto housingMgr = m_pFw->get< World::Manager::HousingMgr >();
auto& landStorage = housingMgr->getEstateInventory( ident );
auto yardContainer = landStorage[ InventoryType::HousingExteriorPlacedItems ];