8 #ifndef _CUSTOMHOUSES_H 9 #define _CUSTOMHOUSES_H 17 #include "../../clib/rawtypes.h" 52 #define CUSTOM_HOUSE_NUM_PLANES 6 53 #define STAIR_MULTIID_MIN 0x1DB0 54 #define STAIR_MULTIID_MAX 0x1DF3 55 #define DIRTY_TILE 0x31F4 56 #define TELEPORTER_START 0x181D 57 #define TELEPORTER_END 0x1828 75 typedef std::vector<std::vector<std::list<CUSTOM_HOUSE_ELEMENT>>>
HouseFloor;
91 void SetHeight(
u32 _height );
92 void SetWidth(
u32 _width );
93 size_t estimatedSize()
const;
94 HouseFloorZColumn* GetElementsAt(
s32 xoffset,
s32 yoffset );
109 size_t estimatedSize()
const;
110 void InitDesign(
u32 _height,
u32 _width,
s32 xoffset,
s32 yoffset );
115 void AddMultiAtOffset(
u16 multiid,
s8 x,
s8 y,
s8 z );
117 bool Erase(
u32 xoffset,
u32 yoffset,
u8 z,
int minheight = 0 );
118 bool EraseGraphicAt(
u16 graphic,
u32 xoffset,
u32 yoffset,
u8 z );
120 void ReplaceDirtFloor(
u32 x,
u32 y );
122 bool IsEmpty()
const;
124 unsigned char* Compress(
int floor,
u32* uncompr_length,
u32* compr_length );
126 unsigned int TotalSize()
const;
127 unsigned char NumUsedPlanes()
const;
138 static bool IsStair(
u16 id,
int& dir );
139 static bool IsStairBlock(
u16 id );
147 void testprint( std::ostream& os )
const;
149 void AddComponents(
UHouse* house );
150 void FillComponents(
UHouse* house,
bool add_as_component =
true );
151 static void ClearComponents(
UHouse* house );
156 static char z_to_custom_house_table(
char z );
std::list< CUSTOM_HOUSE_ELEMENT > HouseFloorZColumn
void CustomHousesErase(Core::PKTBI_D7 *msg)
bool ValidLocation(u32 xidx, u32 yidx)
void CustomHousesSynch(Core::PKTBI_D7 *msg)
std::vector< std::vector< std::list< CUSTOM_HOUSE_ELEMENT > > > HouseFloor
std::vector< std::list< CUSTOM_HOUSE_ELEMENT > > HouseFloorRow
void CustomHouseStopEditing(Mobile::Character *chr, UHouse *house)
void CustomHousesCommit(Core::PKTBI_D7 *msg)
void CustomHousesQuit(Core::PKTBI_D7 *msg)
void CustomHousesRoofRemove(Core::PKTBI_D7 *msg)
void CustomHousesSendFullToInRange(UHouse *house, int design, int range)
void CustomHousesBackup(Core::PKTBI_D7 *msg)
void CustomHousesClear(Core::PKTBI_D7 *msg)
void CustomHousesSelectFloor(Core::PKTBI_D7 *msg)
void CustomHousesSendFull(UHouse *house, Network::Client *client, int design)
void CustomHousesRestore(Core::PKTBI_D7 *msg)
#define CUSTOM_HOUSE_NUM_PLANES
void CustomHousesAdd(Core::PKTBI_D7 *msg)
void CustomHousesRoofSelect(Core::PKTBI_D7 *msg)
void CustomHousesRevert(Core::PKTBI_D7 *msg)
void CustomHousesAddMulti(Core::PKTBI_D7 *msg)
void CustomHousesSendShort(UHouse *house, Network::Client *client)