mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-05-06 02:37:47 +00:00
More housing cleanup
This commit is contained in:
parent
5479a77d6d
commit
6347d7ed27
3 changed files with 78 additions and 169 deletions
|
@ -732,46 +732,72 @@ namespace Core::Common
|
||||||
MountSkill = 0xD,
|
MountSkill = 0xD,
|
||||||
};
|
};
|
||||||
|
|
||||||
//Structs
|
enum HousePartSlot
|
||||||
struct LandStruct
|
{
|
||||||
{
|
ExteriorRoof,
|
||||||
uint8_t houseSize; //0
|
ExteriorWall,
|
||||||
uint8_t houseState; // 2
|
ExteriorWindow,
|
||||||
uint8_t iconColor; // 4
|
ExteriorDoor,
|
||||||
uint8_t iconAddIcon; // 6
|
OtherFloorWall,
|
||||||
uint32_t fcId; //8
|
OtherFloorFlooring,
|
||||||
uint32_t fcIcon;// 12
|
BasementWall,
|
||||||
uint32_t fcIconColor; // 16
|
YardSign
|
||||||
uint16_t exteriorRoof; //20
|
};
|
||||||
uint16_t exteriorWall; //22
|
|
||||||
uint16_t exteriorWindow; //24
|
|
||||||
uint16_t exteriorDoor;// 26
|
|
||||||
uint16_t otherFloorWall; // 28
|
|
||||||
uint16_t otherFloorFlooring; //30
|
|
||||||
uint16_t basementWall; // 32
|
|
||||||
uint16_t gardenSign; // 34
|
|
||||||
uint8_t color[8]; // 36
|
|
||||||
//44
|
|
||||||
};
|
|
||||||
|
|
||||||
struct HousePermissionSet
|
//Structs
|
||||||
{
|
struct LandStruct
|
||||||
uint16_t landSetId; //00
|
{
|
||||||
uint16_t wardNum; //02
|
uint8_t houseSize; //0
|
||||||
uint16_t zoneId; //04
|
uint8_t houseState; // 2
|
||||||
uint16_t worldId; //06
|
uint8_t iconColor; // 4
|
||||||
uint32_t permissionMask; //08
|
uint8_t iconAddIcon; // 6
|
||||||
uint32_t unkown1; //12
|
uint32_t fcId; //8
|
||||||
};
|
uint32_t fcIcon;// 12
|
||||||
|
uint32_t fcIconColor; // 16
|
||||||
|
uint16_t housePart[ 8 ]; // 34
|
||||||
|
uint8_t color[ 8 ]; // 36
|
||||||
|
//44
|
||||||
|
};
|
||||||
|
|
||||||
struct YardObject
|
struct HousePermissionSet
|
||||||
{
|
{
|
||||||
uint32_t itemId;
|
uint16_t landSetId; //00
|
||||||
uint16_t itemRotation;
|
uint16_t wardNum; //02
|
||||||
uint16_t pos_x;
|
uint16_t zoneId; //04
|
||||||
uint16_t pos_y;
|
uint16_t worldId; //06
|
||||||
uint16_t pos_z;
|
uint32_t permissionMask; //08
|
||||||
};
|
uint32_t unkown1; //12
|
||||||
|
};
|
||||||
|
|
||||||
|
struct YardObject
|
||||||
|
{
|
||||||
|
uint32_t itemId;
|
||||||
|
uint16_t itemRotation;
|
||||||
|
uint16_t pos_x;
|
||||||
|
uint16_t pos_y;
|
||||||
|
uint16_t pos_z;
|
||||||
|
};
|
||||||
|
|
||||||
|
enum HouseSizeType : uint8_t
|
||||||
|
{
|
||||||
|
//noneHouse,
|
||||||
|
smallHouse,
|
||||||
|
mediumHouse,
|
||||||
|
bigHouse
|
||||||
|
};
|
||||||
|
|
||||||
|
enum HouseStateType : uint8_t
|
||||||
|
{
|
||||||
|
none,
|
||||||
|
forSale,
|
||||||
|
sold,
|
||||||
|
fcHouse,
|
||||||
|
privateHouse
|
||||||
|
};
|
||||||
|
enum HouseIconAdd : uint8_t
|
||||||
|
{
|
||||||
|
heart = 0x06
|
||||||
|
};
|
||||||
|
|
||||||
using PlayerStateFlagList = std::vector< PlayerStateFlag >;
|
using PlayerStateFlagList = std::vector< PlayerStateFlag >;
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,7 @@ void Core::Land::load()
|
||||||
"housingoutdooritems", true );*/
|
"housingoutdooritems", true );*/
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t Core::Land::convertItemIdToHousingItemId( uint32_t itemId )
|
uint16_t Core::Land::convertItemIdToHousingItemId( uint16_t itemId )
|
||||||
{
|
{
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
||||||
auto info = pExdData->get< Core::Data::Item >( itemId );
|
auto info = pExdData->get< Core::Data::Item >( itemId );
|
||||||
|
@ -89,12 +89,12 @@ void Core::Land::setPreset( uint32_t id )
|
||||||
{
|
{
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
||||||
auto info = pExdData->get< Core::Data::HousingPreset >( convertItemIdToHousingItemId( id ) );
|
auto info = pExdData->get< Core::Data::HousingPreset >( convertItemIdToHousingItemId( id ) );
|
||||||
setRoof( info->exteriorRoof );
|
setHousePart( Common::HousePartSlot::ExteriorRoof, info->exteriorRoof );
|
||||||
setWall( info->exteriorWall );
|
setHousePart( Common::HousePartSlot::ExteriorWall, info->exteriorWall );
|
||||||
setWindow( info->exteriorWindow );
|
setHousePart( Common::HousePartSlot::ExteriorWindow, info->exteriorWindow );
|
||||||
setBasementWall( info->basementWall );
|
setHousePart( Common::HousePartSlot::BasementWall, info->basementWall );
|
||||||
setFloorFlooring( info->otherFloorFlooring );
|
setHousePart( Common::HousePartSlot::OtherFloorFlooring, info->otherFloorFlooring );
|
||||||
setFloorWall( info->otherFloorWall );
|
setHousePart( Common::HousePartSlot::OtherFloorWall, info->otherFloorWall );
|
||||||
}
|
}
|
||||||
|
|
||||||
//Primary State
|
//Primary State
|
||||||
|
@ -162,94 +162,14 @@ uint32_t Core::Land::getFcColor()
|
||||||
}
|
}
|
||||||
|
|
||||||
//House Data
|
//House Data
|
||||||
void Core::Land::setRoof( uint16_t id )
|
void Core::Land::setHousePart( Common::HousePartSlot slot, uint16_t id )
|
||||||
{
|
{
|
||||||
m_land.exteriorRoof = convertItemIdToHousingItemId( id );
|
m_land.housePart[ slot ] = convertItemIdToHousingItemId( id );
|
||||||
}
|
}
|
||||||
|
|
||||||
void Core::Land::setFacade( uint16_t id )
|
uint16_t Core::Land::getHousePart( Common::HousePartSlot slot )
|
||||||
{
|
{
|
||||||
m_land.exteriorWall = convertItemIdToHousingItemId( id );
|
return m_land.housePart[ slot ];
|
||||||
}
|
|
||||||
|
|
||||||
void Core::Land::setWindow( uint16_t id )
|
|
||||||
{
|
|
||||||
m_land.exteriorWindow = convertItemIdToHousingItemId( id );
|
|
||||||
}
|
|
||||||
|
|
||||||
void Core::Land::setDoor( uint16_t id )
|
|
||||||
{
|
|
||||||
m_land.exteriorDoor = convertItemIdToHousingItemId( id );
|
|
||||||
}
|
|
||||||
|
|
||||||
void Core::Land::setFloorWall( uint16_t id )
|
|
||||||
{
|
|
||||||
m_land.otherFloorWall = convertItemIdToHousingItemId( id );
|
|
||||||
}
|
|
||||||
|
|
||||||
void Core::Land::setFloorFlooring( uint16_t id )
|
|
||||||
{
|
|
||||||
m_land.otherFloorFlooring = convertItemIdToHousingItemId( id );
|
|
||||||
}
|
|
||||||
|
|
||||||
void Core::Land::setWall( uint16_t id )
|
|
||||||
{
|
|
||||||
m_land.exteriorWall = convertItemIdToHousingItemId( id );
|
|
||||||
}
|
|
||||||
|
|
||||||
void Core::Land::setSign( uint16_t id )
|
|
||||||
{
|
|
||||||
m_land.gardenSign = convertItemIdToHousingItemId( id );
|
|
||||||
}
|
|
||||||
|
|
||||||
void Core::Land::setBasementWall( uint16_t id )
|
|
||||||
{
|
|
||||||
m_land.basementWall = convertItemIdToHousingItemId( id );
|
|
||||||
}
|
|
||||||
|
|
||||||
uint16_t Core::Land::getRoof()
|
|
||||||
{
|
|
||||||
return m_land.exteriorRoof;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint16_t Core::Land::getFacade()
|
|
||||||
{
|
|
||||||
return m_land.exteriorWall;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint16_t Core::Land::getWindow()
|
|
||||||
{
|
|
||||||
return m_land.exteriorWindow;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint16_t Core::Land::getDoor()
|
|
||||||
{
|
|
||||||
return m_land.exteriorDoor;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint16_t Core::Land::getSign()
|
|
||||||
{
|
|
||||||
return m_land.gardenSign;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint16_t Core::Land::getWall()
|
|
||||||
{
|
|
||||||
return m_land.basementWall;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint16_t Core::Land::getFloorWall()
|
|
||||||
{
|
|
||||||
return m_land.otherFloorFlooring;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint16_t Core::Land::getFloorFlooring()
|
|
||||||
{
|
|
||||||
return m_land.otherFloorFlooring;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint16_t Core::Land::getBasememtWall()
|
|
||||||
{
|
|
||||||
return m_land.basementWall;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Color
|
//Color
|
||||||
|
|
|
@ -8,27 +8,6 @@ namespace Core
|
||||||
class Land
|
class Land
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
enum HouseSizeType : uint8_t
|
|
||||||
{
|
|
||||||
//noneHouse,
|
|
||||||
smallHouse,
|
|
||||||
mediumHouse,
|
|
||||||
bigHouse
|
|
||||||
};
|
|
||||||
|
|
||||||
enum HouseStateType : uint8_t
|
|
||||||
{
|
|
||||||
none,
|
|
||||||
forSale,
|
|
||||||
sold,
|
|
||||||
fcHouse,
|
|
||||||
privateHouse
|
|
||||||
};
|
|
||||||
|
|
||||||
enum HouseIconAdd : uint8_t
|
|
||||||
{
|
|
||||||
heart = 0x06
|
|
||||||
};
|
|
||||||
|
|
||||||
Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId );
|
Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId );
|
||||||
virtual ~Land();
|
virtual ~Land();
|
||||||
|
@ -54,25 +33,9 @@ namespace Core
|
||||||
uint32_t getFcColor();
|
uint32_t getFcColor();
|
||||||
|
|
||||||
//House data
|
//House data
|
||||||
void setRoof( uint16_t itemId );
|
void setHousePart( Common::HousePartSlot slot, uint16_t itemId );
|
||||||
void setFacade( uint16_t itemId );
|
|
||||||
void setWindow( uint16_t itemId );
|
|
||||||
void setDoor( uint16_t itemId );
|
|
||||||
void setFloorWall( uint16_t itemId );
|
|
||||||
void setFloorFlooring( uint16_t itemId );
|
|
||||||
void setWall( uint16_t itemId );
|
|
||||||
void setSign( uint16_t itemId );
|
|
||||||
void setBasementWall( uint16_t itemId );
|
|
||||||
|
|
||||||
uint16_t getRoof();
|
uint16_t getHousePart( Common::HousePartSlot slot );
|
||||||
uint16_t getFacade();
|
|
||||||
uint16_t getWindow();
|
|
||||||
uint16_t getDoor();
|
|
||||||
uint16_t getFloorWall();
|
|
||||||
uint16_t getFloorFlooring();
|
|
||||||
uint16_t getWall();
|
|
||||||
uint16_t getSign();
|
|
||||||
uint16_t getBasememtWall();
|
|
||||||
|
|
||||||
//Color
|
//Color
|
||||||
void setColor( uint8_t slot, uint8_t color );
|
void setColor( uint8_t slot, uint8_t color );
|
||||||
|
@ -91,7 +54,7 @@ namespace Core
|
||||||
uint32_t getMaxItems();
|
uint32_t getMaxItems();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint32_t convertItemIdToHousingItemId( uint32_t itemId );
|
uint16_t convertItemIdToHousingItemId( uint16_t itemId );
|
||||||
void Init();
|
void Init();
|
||||||
|
|
||||||
uint32_t m_landKey;
|
uint32_t m_landKey;
|
||||||
|
|
Loading…
Add table
Reference in a new issue