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,6 +732,18 @@ namespace Core::Common
MountSkill = 0xD,
};
enum HousePartSlot
{
ExteriorRoof,
ExteriorWall,
ExteriorWindow,
ExteriorDoor,
OtherFloorWall,
OtherFloorFlooring,
BasementWall,
YardSign
};
//Structs
struct LandStruct
{
@ -742,14 +754,7 @@ struct LandStruct
uint32_t fcId; //8
uint32_t fcIcon;// 12
uint32_t fcIconColor; // 16
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
uint16_t housePart[ 8 ]; // 34
uint8_t color[ 8 ]; // 36
//44
};
@ -773,6 +778,27 @@ struct YardObject
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 >;
}

View file

@ -78,7 +78,7 @@ void Core::Land::load()
"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 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 info = pExdData->get< Core::Data::HousingPreset >( convertItemIdToHousingItemId( id ) );
setRoof( info->exteriorRoof );
setWall( info->exteriorWall );
setWindow( info->exteriorWindow );
setBasementWall( info->basementWall );
setFloorFlooring( info->otherFloorFlooring );
setFloorWall( info->otherFloorWall );
setHousePart( Common::HousePartSlot::ExteriorRoof, info->exteriorRoof );
setHousePart( Common::HousePartSlot::ExteriorWall, info->exteriorWall );
setHousePart( Common::HousePartSlot::ExteriorWindow, info->exteriorWindow );
setHousePart( Common::HousePartSlot::BasementWall, info->basementWall );
setHousePart( Common::HousePartSlot::OtherFloorFlooring, info->otherFloorFlooring );
setHousePart( Common::HousePartSlot::OtherFloorWall, info->otherFloorWall );
}
//Primary State
@ -162,94 +162,14 @@ uint32_t Core::Land::getFcColor()
}
//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 );
}
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;
return m_land.housePart[ slot ];
}
//Color

View file

@ -8,27 +8,6 @@ namespace Core
class Land
{
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 );
virtual ~Land();
@ -54,25 +33,9 @@ namespace Core
uint32_t getFcColor();
//House data
void setRoof( 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 );
void setHousePart( Common::HousePartSlot slot, uint16_t itemId );
uint16_t getRoof();
uint16_t getFacade();
uint16_t getWindow();
uint16_t getDoor();
uint16_t getFloorWall();
uint16_t getFloorFlooring();
uint16_t getWall();
uint16_t getSign();
uint16_t getBasememtWall();
uint16_t getHousePart( Common::HousePartSlot slot );
//Color
void setColor( uint8_t slot, uint8_t color );
@ -91,7 +54,7 @@ namespace Core
uint32_t getMaxItems();
private:
uint32_t convertItemIdToHousingItemId( uint32_t itemId );
uint16_t convertItemIdToHousingItemId( uint16_t itemId );
void Init();
uint32_t m_landKey;