2018-11-10 19:00:13 +01:00
|
|
|
#ifndef SAPPHIRE_HOUSINGMGR_H
|
|
|
|
#define SAPPHIRE_HOUSINGMGR_H
|
|
|
|
|
|
|
|
#include "Forwards.h"
|
2018-12-01 00:27:16 +11:00
|
|
|
#include "Territory/HousingZone.h"
|
2018-11-10 19:00:13 +01:00
|
|
|
#include <set>
|
|
|
|
#include <unordered_map>
|
|
|
|
|
2018-11-29 16:55:48 +01:00
|
|
|
namespace Sapphire::Data
|
2018-11-10 19:00:13 +01:00
|
|
|
{
|
2018-11-29 16:55:48 +01:00
|
|
|
using HousingZonePtr = std::shared_ptr< HousingZone >;
|
|
|
|
}
|
2018-11-10 19:00:13 +01:00
|
|
|
|
2018-12-01 00:27:16 +11:00
|
|
|
namespace Sapphire::World::Manager
|
2018-11-29 16:55:48 +01:00
|
|
|
{
|
2018-11-10 19:00:13 +01:00
|
|
|
class HousingMgr
|
|
|
|
{
|
|
|
|
|
|
|
|
public:
|
|
|
|
HousingMgr();
|
|
|
|
virtual ~HousingMgr();
|
|
|
|
|
|
|
|
bool init();
|
|
|
|
|
2018-11-16 17:07:22 +01:00
|
|
|
uint32_t toLandSetId( uint16_t territoryTypeId, uint8_t wardId ) const;
|
2018-11-29 16:55:48 +01:00
|
|
|
Sapphire::Data::HousingZonePtr getHousingZoneByLandSetId( uint32_t id );
|
|
|
|
Sapphire::LandPtr getLandByOwnerId( uint32_t id );
|
2018-11-10 19:00:13 +01:00
|
|
|
|
2018-12-05 16:55:14 +11:00
|
|
|
void sendLandSignOwned( Entity::Player& player, const Common::LandIdent ident );
|
|
|
|
void sendLandSignFree( Entity::Player& player, const Common::LandIdent ident );
|
2018-11-19 09:40:44 +01:00
|
|
|
LandPurchaseResult purchaseLand( Entity::Player& player, uint8_t plot, uint8_t state );
|
2018-11-13 23:46:10 +01:00
|
|
|
|
2018-12-05 16:55:14 +11:00
|
|
|
Common::LandIdent clientTriggerParamsToLandIdent( uint32_t param11, uint32_t param12 ) const;
|
|
|
|
|
2018-11-20 22:52:57 +11:00
|
|
|
void sendWardLandInfo( Entity::Player& player, uint8_t wardId, uint16_t territoryTypeId );
|
|
|
|
|
2018-11-17 01:16:44 +01:00
|
|
|
bool relinquishLand( Entity::Player& player, uint8_t plot );
|
|
|
|
|
2018-11-24 15:17:18 +11:00
|
|
|
void buildPresetEstate( Entity::Player& player, uint8_t plotNum, uint32_t presetItem );
|
|
|
|
|
2018-12-05 16:55:14 +11:00
|
|
|
void requestEstateRename( Entity::Player& player, const Common::LandIdent ident );
|
2018-11-28 21:59:28 +11:00
|
|
|
|
2018-12-05 16:55:14 +11:00
|
|
|
void requestEstateEditGreeting( Entity::Player& player, const Common::LandIdent ident );
|
|
|
|
void updateEstateGreeting( Entity::Player& player, const Common::LandIdent ident, const std::string& greeting );
|
2018-11-28 21:24:00 +11:00
|
|
|
|
2018-12-05 16:55:14 +11:00
|
|
|
void requestEstateEditGuestAccess( Entity::Player& player, const Common::LandIdent ident );
|
2018-11-29 00:19:37 +11:00
|
|
|
|
2018-12-04 22:20:41 +11:00
|
|
|
void sendEstateGreeting( Entity::Player& player, const Common::LandIdent ident );
|
|
|
|
|
2018-11-10 19:00:13 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // SAPPHIRE_HOUSINGMGR_H
|