dfhack/library/include/df/custom/tile_bitmask.methods.inc

39 lines
733 B
C++

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&15)] & (1 << (x&15)));
}
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&15)] |= (1 << (x&15));
else
bits[(y&15)] &= ~(1 << (x&15));
}
bool has_assignments()
{
for (int i = 0; i < 16; i++)
if (bits[i])
return true;
return false;
}