diff --git a/sql/schema/schema.sql b/sql/schema/schema.sql index 26be0e43..b2975d2b 100644 --- a/sql/schema/schema.sql +++ b/sql/schema/schema.sql @@ -576,9 +576,9 @@ CREATE TABLE `zonepositions` ( CREATE TABLE `landplaceditems` ( `ItemId` INT(20) UNSIGNED NOT NULL, - `PosX` INT(10) NOT NULL, - `PosY` INT(10) NOT NULL, - `PosZ` INT(10) NOT NULL, + `PosX` FLOAT NOT NULL, + `PosY` FLOAT NOT NULL, + `PosZ` FLOAT NOT NULL, `Rotation` INT(10) NOT NULL, PRIMARY KEY (`ItemId`) ) diff --git a/src/common/Common.h b/src/common/Common.h index bbd453d4..168155e4 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -856,7 +856,7 @@ namespace Sapphire::Common { uint32_t itemId; uint16_t itemRotation; - Common::FFXIVARR_POSITION3_U16 pos; + Common::FFXIVARR_POSITION3 pos; }; enum HouseSize : uint8_t diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index c949502c..7845240a 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1695,7 +1695,7 @@ struct FFXIVIpcHousingObjectMove : FFXIVIpcBasePacket< HousingObjectMove > uint16_t itemRotation; uint8_t objectArray; uint8_t landId; - Common::FFXIVARR_POSITION3_U16 pos; + Common::FFXIVARR_POSITION3 pos; uint16_t unknown1; uint16_t unknown2; uint16_t unknown3; @@ -1726,7 +1726,7 @@ struct FFXIVIpcHousingInternalObjectSpawn : FFXIVIpcBasePacket< HousingInternalO uint8_t unk2; uint8_t pad2; uint16_t rotation; - Common::FFXIVARR_POSITION3_U16 pos; + Common::FFXIVARR_POSITION3 pos; }; struct FFXIVIpcHousingIndoorInitialize : FFXIVIpcBasePacket< HousingIndoorInitialize > diff --git a/src/world/Inventory/HousingItem.cpp b/src/world/Inventory/HousingItem.cpp index a07282df..44b0da90 100644 --- a/src/world/Inventory/HousingItem.cpp +++ b/src/world/Inventory/HousingItem.cpp @@ -18,12 +18,12 @@ void Sapphire::Inventory::HousingItem::setRot( uint16_t rot ) m_rotation = rot; } -Sapphire::Common::FFXIVARR_POSITION3_U16 Sapphire::Inventory::HousingItem::getPos() const +Sapphire::Common::FFXIVARR_POSITION3 Sapphire::Inventory::HousingItem::getPos() const { return m_position; } -void Sapphire::Inventory::HousingItem::setPos( Sapphire::Common::FFXIVARR_POSITION3_U16 pos ) +void Sapphire::Inventory::HousingItem::setPos( Sapphire::Common::FFXIVARR_POSITION3 pos ) { m_position = pos; } \ No newline at end of file diff --git a/src/world/Inventory/HousingItem.h b/src/world/Inventory/HousingItem.h index 91c3426a..1460d6d6 100644 --- a/src/world/Inventory/HousingItem.h +++ b/src/world/Inventory/HousingItem.h @@ -14,11 +14,11 @@ namespace Sapphire::Inventory void setRot( uint16_t rot ); uint16_t getRot() const; - void setPos( Common::FFXIVARR_POSITION3_U16 pos ); - Common::FFXIVARR_POSITION3_U16 getPos() const; + void setPos( Common::FFXIVARR_POSITION3 pos ); + Common::FFXIVARR_POSITION3 getPos() const; private: - Common::FFXIVARR_POSITION3_U16 m_position; + Common::FFXIVARR_POSITION3 m_position; uint16_t m_rotation; }; } diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index bf2ff370..41c8da64 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -139,9 +139,9 @@ bool Sapphire::World::Manager::HousingMgr::loadEstateInventories() if( isPlacedItemsInventory( static_cast< Common::InventoryType >( containerId ) ) ) { item->setPos( { - res->getUInt16( "PosX" ), - res->getUInt16( "PosY" ), - res->getUInt16( "PosZ" ) + res->getFloat( "PosX" ), + res->getFloat( "PosY" ), + res->getFloat( "PosZ" ) } ); item->setRot( res->getUInt16( "Rotation" ) ); @@ -1007,12 +1007,7 @@ void Sapphire::World::Manager::HousingMgr::reqPlaceHousingItem( Sapphire::Entity return; // set params - item->setPos( { - Util::floatToUInt16( pos.x ), - Util::floatToUInt16( pos.y ), - Util::floatToUInt16( pos.z ) - } ); - + item->setPos( pos ); item->setRot( Util::floatToUInt16Rot( rotation ) ); } else @@ -1281,11 +1276,7 @@ bool Sapphire::World::Manager::HousingMgr::moveInternalItem( Entity::Player& pla if( !item ) return false; - item->setPos( { - Util::floatToUInt16( pos.x ), - Util::floatToUInt16( pos.y ), - Util::floatToUInt16( pos.z ) - } ); + item->setPos( pos ); item->setRot( Util::floatToUInt16Rot( rot ) ); @@ -1324,12 +1315,7 @@ bool Sapphire::World::Manager::HousingMgr::moveExternalItem( Entity::Player& pla if( !item ) return false; - item->setPos( { - Util::floatToUInt16( pos.x ), - Util::floatToUInt16( pos.y ), - Util::floatToUInt16( pos.z ) - } ); - + item->setPos( pos ); item->setRot( Util::floatToUInt16Rot( rot ) ); auto invMgr = framework()->get< InventoryMgr >(); diff --git a/src/world/Territory/Housing/HousingInteriorTerritory.cpp b/src/world/Territory/Housing/HousingInteriorTerritory.cpp index 2ef529c8..9b311177 100644 --- a/src/world/Territory/Housing/HousingInteriorTerritory.cpp +++ b/src/world/Territory/Housing/HousingInteriorTerritory.cpp @@ -196,7 +196,7 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::spawnHousing void Sapphire::World::Territory::Housing::HousingInteriorTerritory::updateHousingObjectPosition( Entity::Player& sourcePlayer, uint16_t slot, - Common::FFXIVARR_POSITION3_U16 pos, + Common::FFXIVARR_POSITION3 pos, uint16_t rot ) { auto& obj = m_housingObjects[ slot ]; diff --git a/src/world/Territory/Housing/HousingInteriorTerritory.h b/src/world/Territory/Housing/HousingInteriorTerritory.h index f1021ccd..352c414e 100644 --- a/src/world/Territory/Housing/HousingInteriorTerritory.h +++ b/src/world/Territory/Housing/HousingInteriorTerritory.h @@ -29,7 +29,7 @@ namespace Sapphire::World::Territory::Housing void spawnHousingObject( uint8_t containerIdx, uint16_t slot, uint16_t containerType, Inventory::HousingItemPtr item ); void updateHousingObjectPosition( - Entity::Player& sourcePlayer, uint16_t slot, Sapphire::Common::FFXIVARR_POSITION3_U16 pos, uint16_t rot ); + Entity::Player& sourcePlayer, uint16_t slot, Sapphire::Common::FFXIVARR_POSITION3 pos, uint16_t rot ); void removeHousingObject( uint16_t slot ); private: