1
Fork 0
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:
Mordred 2018-11-02 19:21:12 +01:00
parent 5479a77d6d
commit 6347d7ed27
3 changed files with 78 additions and 169 deletions

View file

@ -732,9 +732,21 @@ namespace Core::Common
MountSkill = 0xD, MountSkill = 0xD,
}; };
//Structs enum HousePartSlot
struct LandStruct {
{ ExteriorRoof,
ExteriorWall,
ExteriorWindow,
ExteriorDoor,
OtherFloorWall,
OtherFloorFlooring,
BasementWall,
YardSign
};
//Structs
struct LandStruct
{
uint8_t houseSize; //0 uint8_t houseSize; //0
uint8_t houseState; // 2 uint8_t houseState; // 2
uint8_t iconColor; // 4 uint8_t iconColor; // 4
@ -742,36 +754,50 @@ struct LandStruct
uint32_t fcId; //8 uint32_t fcId; //8
uint32_t fcIcon;// 12 uint32_t fcIcon;// 12
uint32_t fcIconColor; // 16 uint32_t fcIconColor; // 16
uint16_t exteriorRoof; //20 uint16_t housePart[ 8 ]; // 34
uint16_t exteriorWall; //22 uint8_t color[ 8 ]; // 36
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 //44
}; };
struct HousePermissionSet struct HousePermissionSet
{ {
uint16_t landSetId; //00 uint16_t landSetId; //00
uint16_t wardNum; //02 uint16_t wardNum; //02
uint16_t zoneId; //04 uint16_t zoneId; //04
uint16_t worldId; //06 uint16_t worldId; //06
uint32_t permissionMask; //08 uint32_t permissionMask; //08
uint32_t unkown1; //12 uint32_t unkown1; //12
}; };
struct YardObject struct YardObject
{ {
uint32_t itemId; uint32_t itemId;
uint16_t itemRotation; uint16_t itemRotation;
uint16_t pos_x; uint16_t pos_x;
uint16_t pos_y; uint16_t pos_y;
uint16_t pos_z; 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 >;

View file

@ -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

View file

@ -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;