Sync to changes in the data structure definitions.

develop
Alexander Gavrilov 2012-04-19 11:03:29 +04:00
parent c17529a794
commit f655a0986d
6 changed files with 52 additions and 25 deletions

@ -1,26 +1,21 @@
inline bool getassignment( const df::coord2d &xy )
{
return getassignment(xy.x,xy.y);
return tile_bitmask.getassignment(xy);
}
inline bool getassignment( int x, int y )
{
return (tile_bitmask[y] & (1 << x));
return tile_bitmask.getassignment(x,y);
}
inline void setassignment( const df::coord2d &xy, bool bit )
{
return setassignment(xy.x,xy.y, bit);
return tile_bitmask.setassignment(xy, bit);
}
inline void setassignment( int x, int y, bool bit )
{
if(bit)
tile_bitmask[y] |= (1 << x);
else
tile_bitmask[y] &= ~(1 << x);
return tile_bitmask.setassignment(x, y, bit);
}
bool has_assignments()
{
for (int i = 0; i < 16; i++)
if (tile_bitmask[i])
return true;
return false;
return tile_bitmask.has_assignments();
}

@ -1,26 +1,20 @@
inline bool getassignment( const df::coord2d &xy )
{
return getassignment(xy.x,xy.y);
return tile_bitmask.getassignment(xy);
}
inline bool getassignment( int x, int y )
{
return (tile_bitmask[y] & (1 << x));
return tile_bitmask.getassignment(x,y);
}
inline void setassignment( const df::coord2d &xy, bool bit )
{
return setassignment(xy.x,xy.y, bit);
return tile_bitmask.setassignment(xy, bit);
}
inline void setassignment( int x, int y, bool bit )
{
if(bit)
tile_bitmask[y] |= (1 << x);
else
tile_bitmask[y] &= ~(1 << x);
return tile_bitmask.setassignment(x, y, bit);
}
bool has_assignments()
{
for (int i = 0; i < 16; i++)
if (tile_bitmask[i])
return true;
return false;
return tile_bitmask.has_assignments();
}

@ -0,0 +1,38 @@
inline uint16_t &operator[] (int y)
{
return bits[y];
}
void clear()
{
memset(bits,0,sizeof(bits));
}
void set_all()
{
memset(bits,0xFF,sizeof(bits));
}
inline bool getassignment( const df::coord2d &xy )
{
return getassignment(xy.x,xy.y);
}
inline bool getassignment( int x, int y )
{
return (bits[y] & (1 << x));
}
inline void setassignment( const df::coord2d &xy, bool bit )
{
return setassignment(xy.x,xy.y, bit);
}
inline void setassignment( int x, int y, bool bit )
{
if(bit)
bits[y] |= (1 << x);
else
bits[y] &= ~(1 << x);
}
bool has_assignments()
{
for (int i = 0; i < 16; i++)
if (bits[i])
return true;
return false;
}

@ -770,7 +770,7 @@ df::block_burrow *Maps::getBlockBurrowMask(df::burrow *burrow, df::map_block *bl
link->item = new df::block_burrow;
link->item->id = burrow->id;
memset(link->item->tile_bitmask,0,sizeof(link->item->tile_bitmask));
link->item->tile_bitmask.clear();
link->item->link = link;
link->next = NULL;

@ -1 +1 @@
Subproject commit e8036d3f13c6be0141899baae90f605ad11d5385
Subproject commit a1e342afe5a5e1e07672cd8b6553953bc251a05d

@ -119,7 +119,7 @@ command_result writeFlag (color_ostream &out, vector <string> & parameters)
MapExtras::MapCache * MCache = new MapExtras::MapCache();
t_occupancy oc = MCache->occupancyAt(cursor);
oc.bits.building = value;
oc.bits.building = df::tile_building_occ(value);
MCache->setOccupancyAt(cursor, oc);
MCache->WriteAll();