2018-11-01 23:56:43 +01:00
|
|
|
#ifndef LAND_H_
|
|
|
|
#define LAND_H_
|
2018-11-01 00:18:19 +01:00
|
|
|
#include <Common.h>
|
|
|
|
#include "ForwardsZone.h"
|
|
|
|
|
|
|
|
namespace Core
|
|
|
|
{
|
2018-11-01 23:56:43 +01:00
|
|
|
class Land
|
2018-11-01 00:18:19 +01:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
|
2018-11-01 23:56:43 +01:00
|
|
|
Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId );
|
|
|
|
virtual ~Land();
|
2018-11-01 00:18:19 +01:00
|
|
|
|
|
|
|
void load();
|
|
|
|
|
|
|
|
//Primary state
|
|
|
|
void setHouseSize( uint8_t size );
|
|
|
|
void setState( uint8_t state );
|
|
|
|
void setOwnership( uint8_t state );
|
|
|
|
void setSharing( uint8_t state );
|
|
|
|
|
|
|
|
//Gerneral
|
|
|
|
uint8_t getHouseSize();
|
|
|
|
uint8_t getState();
|
|
|
|
uint8_t getOwnership();
|
|
|
|
uint8_t getSharing();
|
|
|
|
|
|
|
|
//Free Comapny
|
|
|
|
void setFreeCompany( uint32_t id, uint32_t icon, uint32_t color );
|
|
|
|
uint32_t getFcId();
|
|
|
|
uint32_t getFcIcon();
|
|
|
|
uint32_t getFcColor();
|
|
|
|
|
|
|
|
//House data
|
2018-11-02 19:21:12 +01:00
|
|
|
void setHousePart( Common::HousePartSlot slot, uint16_t itemId );
|
|
|
|
|
|
|
|
uint16_t getHousePart( Common::HousePartSlot slot );
|
2018-11-01 00:18:19 +01:00
|
|
|
|
|
|
|
//Color
|
|
|
|
void setColor( uint8_t slot, uint8_t color );
|
|
|
|
uint8_t getColor( uint8_t slot );
|
|
|
|
//Player
|
|
|
|
void setPlayerOwner( uint32_t id );
|
|
|
|
uint32_t getPlayerOwner();
|
|
|
|
//Housing Functions
|
|
|
|
void setPreset( uint32_t itemId );
|
|
|
|
void UpdateDatabase();
|
|
|
|
void Update( uint32_t currTime );
|
|
|
|
void onUpdate();
|
2018-11-01 23:56:43 +01:00
|
|
|
uint32_t getLandKey();
|
2018-11-01 00:18:19 +01:00
|
|
|
|
2018-11-03 00:47:45 +01:00
|
|
|
const Common::LandStruct& getLand();
|
2018-11-01 00:18:19 +01:00
|
|
|
uint32_t getMaxItems();
|
|
|
|
|
|
|
|
private:
|
2018-11-02 19:21:12 +01:00
|
|
|
uint16_t convertItemIdToHousingItemId( uint16_t itemId );
|
2018-11-03 00:47:45 +01:00
|
|
|
void init();
|
2018-11-01 00:18:19 +01:00
|
|
|
|
2018-11-01 23:56:43 +01:00
|
|
|
uint32_t m_landKey;
|
2018-11-01 00:18:19 +01:00
|
|
|
uint8_t m_wardNum;
|
2018-11-01 23:56:43 +01:00
|
|
|
uint8_t m_landId;
|
2018-11-01 00:18:19 +01:00
|
|
|
uint16_t m_zoneId;
|
2018-11-01 23:56:43 +01:00
|
|
|
Common::LandStruct m_land;
|
2018-11-01 00:18:19 +01:00
|
|
|
uint32_t m_ownerPlayerId;
|
|
|
|
|
|
|
|
|
|
|
|
//item storage
|
|
|
|
Core::ItemContainerPtr ItemsOutdoorContainer;
|
|
|
|
uint32_t m_maxItems;
|
|
|
|
|
|
|
|
//price
|
|
|
|
uint32_t m_initPrice;
|
|
|
|
uint32_t m_nextDrop;
|
|
|
|
uint32_t m_currentPrice;
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
#endif
|